Merge commit 'eb16165694f868d73e57b6aed5c26ba5e98229de' - hugo - [fork] hugo port for 9front
(HTM) git clone git@git.drkhsh.at/hugo.git
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) Submodules
(DIR) README
(DIR) LICENSE
---
(DIR) commit b17a61a6056a516949dd9aa11034c39c9ad8e37e
(DIR) parent 7829474088f835251f04caa1121d47e35fe89f7e
(HTM) Author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Date: Wed, 12 Dec 2018 09:06:42 +0100
Merge commit 'eb16165694f868d73e57b6aed5c26ba5e98229de'
Diffstat:
A docs/.github/stale.yml | 21 +++++++++++++++++++++
M docs/content/en/content-management… | 4 +---
M docs/content/en/content-management… | 13 +++++++------
M docs/content/en/content-management… | 2 +-
M docs/content/en/contribute/themes.… | 2 +-
M docs/content/en/functions/dict.md | 15 ++++++++++-----
M docs/content/en/functions/imageCon… | 1 +
M docs/content/en/functions/intersec… | 3 ++-
M docs/content/en/functions/lang.Mer… | 14 +++++---------
M docs/content/en/functions/partialC… | 7 ++++++-
A docs/content/en/functions/path.Bas… | 31 +++++++++++++++++++++++++++++++
A docs/content/en/functions/path.Dir… | 32 +++++++++++++++++++++++++++++++
A docs/content/en/functions/path.Ext… | 29 +++++++++++++++++++++++++++++
A docs/content/en/functions/path.Joi… | 29 +++++++++++++++++++++++++++++
A docs/content/en/functions/path.Spl… | 31 +++++++++++++++++++++++++++++++
M docs/content/en/functions/render.md | 5 ++---
A docs/content/en/functions/template… | 38 +++++++++++++++++++++++++++++++
M docs/content/en/functions/union.md | 1 +
M docs/content/en/getting-started/co… | 6 +++---
M docs/content/en/hosting-and-deploy… | 6 ++++++
A docs/content/en/news/0.50-relnotes… | 0
M docs/content/en/news/0.50-relnotes… | 6 +++---
A docs/content/en/news/0.51-relnotes… | 0
M docs/content/en/news/0.51-relnotes… | 6 +++---
A docs/content/en/news/0.52-relnotes… | 0
M docs/content/en/news/0.52-relnotes… | 6 +++---
M docs/content/en/templates/files.md | 2 +-
M docs/content/en/templates/partials… | 4 ++++
M docs/content/en/themes/creating.md | 4 ++--
M docs/content/en/tools/search.md | 1 +
M docs/content/en/variables/files.md | 7 +++++--
M docs/content/en/variables/page.md | 6 ++++++
M docs/netlify.toml | 16 ++++++++--------
A docs/resources/_gen/assets/css/out… | 2 ++
A docs/resources/_gen/assets/css/out… | 2 ++
A docs/resources/_gen/assets/js/outp… | 19 +++++++++++++++++++
A docs/resources/_gen/assets/js/outp… | 2 ++
A docs/resources/_gen/images/news/0.… | 0
A docs/resources/_gen/images/news/0.… | 0
A docs/resources/_gen/images/news/0.… | 0
A docs/resources/_gen/images/news/0.… | 0
A docs/resources/_gen/images/news/0.… | 0
A docs/resources/_gen/images/news/0.… | 0
M docs/themes/gohugoioTheme/README.md | 38 ++++++++++++++++++++++++++++++-
R docs/themes/gohugoioTheme/src/css/… | 0
R docs/themes/gohugoioTheme/src/css/… | 0
R docs/themes/gohugoioTheme/src/css/… | 0
R docs/themes/gohugoioTheme/src/css/… | 0
R docs/themes/gohugoioTheme/src/css/… | 0
R docs/themes/gohugoioTheme/src/css/… | 0
R docs/themes/gohugoioTheme/src/css/… | 0
R docs/themes/gohugoioTheme/src/css/… | 0
R docs/themes/gohugoioTheme/src/css/… | 0
R docs/themes/gohugoioTheme/src/css/… | 0
R docs/themes/gohugoioTheme/src/css/… | 0
R docs/themes/gohugoioTheme/src/css/… | 0
R docs/themes/gohugoioTheme/src/css/… | 0
R docs/themes/gohugoioTheme/src/css/… | 0
R docs/themes/gohugoioTheme/src/css/… | 0
R docs/themes/gohugoioTheme/src/css/… | 0
R docs/themes/gohugoioTheme/src/css/… | 0
R docs/themes/gohugoioTheme/src/css/… | 0
R docs/themes/gohugoioTheme/src/css/… | 0
R docs/themes/gohugoioTheme/src/css/… | 0
R docs/themes/gohugoioTheme/src/css/… | 0
R docs/themes/gohugoioTheme/src/css/… | 0
R docs/themes/gohugoioTheme/src/css/… | 0
A docs/themes/gohugoioTheme/assets/c… | 39 +++++++++++++++++++++++++++++++
A docs/themes/gohugoioTheme/assets/i… | 16 ++++++++++++++++
R docs/themes/gohugoioTheme/src/js/a… | 0
R docs/themes/gohugoioTheme/src/js/c… | 0
R docs/themes/gohugoioTheme/src/js/c… | 0
R docs/themes/gohugoioTheme/src/js/d… | 0
C docs/themes/gohugoioTheme/layouts/… | 0
R docs/themes/gohugoioTheme/src/js/h… | 0
R docs/themes/gohugoioTheme/src/js/l… | 0
R docs/themes/gohugoioTheme/src/js/m… | 0
R docs/themes/gohugoioTheme/src/js/m… | 0
R docs/themes/gohugoioTheme/src/js/n… | 0
R docs/themes/gohugoioTheme/src/js/s… | 0
R docs/themes/gohugoioTheme/src/js/s… | 0
R docs/themes/gohugoioTheme/src/js/t… | 0
A docs/themes/gohugoioTheme/assets/o… | 2605 +++++++++++++++++++++++++++++++
A docs/themes/gohugoioTheme/assets/o… | 19 +++++++++++++++++++
M docs/themes/gohugoioTheme/layouts/… | 2 +-
M docs/themes/gohugoioTheme/layouts/… | 24 +++++++++++++++---------
M docs/themes/gohugoioTheme/layouts/… | 24 ++++++++++++++++++++++--
M docs/themes/gohugoioTheme/layouts/… | 2 ++
M docs/themes/gohugoioTheme/layouts/… | 2 +-
M docs/themes/gohugoioTheme/layouts/… | 2 +-
M docs/themes/gohugoioTheme/layouts/… | 2 +-
R docs/themes/gohugoioTheme/layouts/… | 0
M docs/themes/gohugoioTheme/layouts/… | 4 +++-
M docs/themes/gohugoioTheme/layouts/… | 9 ++++++++-
M docs/themes/gohugoioTheme/layouts/… | 2 +-
M docs/themes/gohugoioTheme/layouts/… | 13 ++++++++++---
A docs/themes/gohugoioTheme/package-… | 7647 ++++++++++++++++++++++++++++++
A docs/themes/gohugoioTheme/package.… | 36 +++++++++++++++++++++++++++++++
D docs/themes/gohugoioTheme/src/css/… | 29 -----------------------------
D docs/themes/gohugoioTheme/src/css/… | 30 ------------------------------
D docs/themes/gohugoioTheme/src/css/… | 30 ------------------------------
D docs/themes/gohugoioTheme/src/css/… | 30 ------------------------------
D docs/themes/gohugoioTheme/src/css/… | 30 ------------------------------
D docs/themes/gohugoioTheme/src/css/… | 30 ------------------------------
D docs/themes/gohugoioTheme/src/css/… | 30 ------------------------------
D docs/themes/gohugoioTheme/src/css/… | 43 ------------------------------
D docs/themes/gohugoioTheme/src/css/… | 15 ---------------
D docs/themes/gohugoioTheme/src/js/f… | 0
D docs/themes/gohugoioTheme/src/pack… | 5887 -------------------------------
D docs/themes/gohugoioTheme/src/pack… | 36 -------------------------------
D docs/themes/gohugoioTheme/src/read… | 39 -------------------------------
D docs/themes/gohugoioTheme/src/webp… | 50 -------------------------------
D docs/themes/gohugoioTheme/static/d… | 11891 -------------------------------
D docs/themes/gohugoioTheme/static/d… | 2 --
D docs/themes/gohugoioTheme/static/f… | 0
D docs/themes/gohugoioTheme/static/f… | 310 -------------------------------
D docs/themes/gohugoioTheme/static/f… | 0
D docs/themes/gohugoioTheme/static/f… | 0
D docs/themes/gohugoioTheme/static/f… | 0
D docs/themes/gohugoioTheme/static/f… | 324 ------------------------------
D docs/themes/gohugoioTheme/static/f… | 0
D docs/themes/gohugoioTheme/static/f… | 0
D docs/themes/gohugoioTheme/static/f… | 0
D docs/themes/gohugoioTheme/static/f… | 309 -------------------------------
D docs/themes/gohugoioTheme/static/f… | 0
D docs/themes/gohugoioTheme/static/f… | 0
D docs/themes/gohugoioTheme/static/f… | 0
D docs/themes/gohugoioTheme/static/f… | 324 ------------------------------
D docs/themes/gohugoioTheme/static/f… | 0
D docs/themes/gohugoioTheme/static/f… | 0
D docs/themes/gohugoioTheme/static/f… | 0
D docs/themes/gohugoioTheme/static/f… | 310 -------------------------------
D docs/themes/gohugoioTheme/static/f… | 0
D docs/themes/gohugoioTheme/static/f… | 0
D docs/themes/gohugoioTheme/static/f… | 0
D docs/themes/gohugoioTheme/static/f… | 323 -------------------------------
D docs/themes/gohugoioTheme/static/f… | 0
D docs/themes/gohugoioTheme/static/f… | 0
D docs/themes/gohugoioTheme/static/f… | 0
D docs/themes/gohugoioTheme/static/f… | 309 -------------------------------
D docs/themes/gohugoioTheme/static/f… | 0
D docs/themes/gohugoioTheme/static/f… | 0
D docs/themes/gohugoioTheme/static/f… | 0
D docs/themes/gohugoioTheme/static/f… | 324 ------------------------------
D docs/themes/gohugoioTheme/static/f… | 0
D docs/themes/gohugoioTheme/static/f… | 0
D docs/themes/gohugoioTheme/static/f… | 0
D docs/themes/gohugoioTheme/static/f… | 308 -------------------------------
D docs/themes/gohugoioTheme/static/f… | 0
D docs/themes/gohugoioTheme/static/f… | 0
D docs/themes/gohugoioTheme/static/f… | 0
D docs/themes/gohugoioTheme/static/f… | 322 -------------------------------
D docs/themes/gohugoioTheme/static/f… | 0
D docs/themes/gohugoioTheme/static/f… | 0
D docs/themes/gohugoioTheme/static/f… | 0
D docs/themes/gohugoioTheme/static/f… | 310 -------------------------------
D docs/themes/gohugoioTheme/static/f… | 0
D docs/themes/gohugoioTheme/static/f… | 0
D docs/themes/gohugoioTheme/static/f… | 0
D docs/themes/gohugoioTheme/static/f… | 319 -------------------------------
D docs/themes/gohugoioTheme/static/f… | 0
D docs/themes/gohugoioTheme/static/f… | 0
D docs/themes/gohugoioTheme/static/f… | 0
D docs/themes/gohugoioTheme/static/f… | 309 -------------------------------
D docs/themes/gohugoioTheme/static/f… | 0
D docs/themes/gohugoioTheme/static/f… | 0
D docs/themes/gohugoioTheme/static/f… | 0
D docs/themes/gohugoioTheme/static/f… | 320 -------------------------------
D docs/themes/gohugoioTheme/static/f… | 0
D docs/themes/gohugoioTheme/static/f… | 0
A docs/themes/gohugoioTheme/static/f… | 0
A docs/themes/gohugoioTheme/static/f… | 0
A docs/themes/gohugoioTheme/static/f… | 0
A docs/themes/gohugoioTheme/static/f… | 0
A docs/themes/gohugoioTheme/static/f… | 0
A docs/themes/gohugoioTheme/static/f… | 0
A docs/themes/gohugoioTheme/static/f… | 0
A docs/themes/gohugoioTheme/static/f… | 0
A docs/themes/gohugoioTheme/static/f… | 0
A docs/themes/gohugoioTheme/static/f… | 0
A docs/themes/gohugoioTheme/static/f… | 0
A docs/themes/gohugoioTheme/static/f… | 0
A docs/themes/gohugoioTheme/static/f… | 0
A docs/themes/gohugoioTheme/static/f… | 0
A docs/themes/gohugoioTheme/static/f… | 0
A docs/themes/gohugoioTheme/static/f… | 0
A docs/themes/gohugoioTheme/static/f… | 0
A docs/themes/gohugoioTheme/static/f… | 0
A docs/themes/gohugoioTheme/static/f… | 0
A docs/themes/gohugoioTheme/static/f… | 0
A docs/themes/gohugoioTheme/static/f… | 0
A docs/themes/gohugoioTheme/static/f… | 0
A docs/themes/gohugoioTheme/static/f… | 0
A docs/themes/gohugoioTheme/static/f… | 0
A docs/themes/gohugoioTheme/static/f… | 0
A docs/themes/gohugoioTheme/static/f… | 0
A docs/themes/gohugoioTheme/static/f… | 0
A docs/themes/gohugoioTheme/static/f… | 0
R docs/themes/gohugoioTheme/layouts/… | 0
R docs/themes/gohugoioTheme/layouts/… | 0
A docs/themes/gohugoioTheme/webpack.… | 123 +++++++++++++++++++++++++++++++
201 files changed, 10905 insertions(+), 22670 deletions(-)
---
(DIR) diff --git a/docs/.github/stale.yml b/docs/.github/stale.yml
@@ -0,0 +1,21 @@
+# Number of days of inactivity before an issue becomes stale
+daysUntilStale: 120
+# Number of days of inactivity before a stale issue is closed
+daysUntilClose: 30
+# Issues with these labels will never be considered stale
+exemptLabels:
+ - Keep
+ - Security
+# Label to use when marking an issue as stale
+staleLabel: Stale
+# Comment to post when marking an issue as stale. Set to `false` to disable
+markComment: >
+ This issue has been automatically marked as stale because it has not had
+ recent activity. The resources of the Hugo team are limited, and so we are asking for your help.
+
+ If you still think this is important, please tell us why.
+
+ This issue will automatically be closed in the near future if no further activity occurs. Thank you for all your contributions.
+
+# Comment to post when closing a stale issue. Set to `false` to disable
+closeComment: false
(DIR) diff --git a/docs/content/en/content-management/front-matter.md b/docs/content/en/content-management/front-matter.md
@@ -37,7 +37,6 @@ JSON
### Example
{{< code-toggle >}}
-+++
title = "spf13-vim 3.0 release and new website"
description = "spf13-vim is a cross platform distribution of vim plugins and resources for Vim."
tags = [ ".vimrc", "plugins", "spf13-vim", "vim" ]
@@ -47,8 +46,7 @@ categories = [
"VIM"
]
slug = "spf13-vim-3-0-release-and-new-website"
-+++
-{{</ code-toggle >}}
+{{< /code-toggle >}}
## Front Matter Variables
(DIR) diff --git a/docs/content/en/content-management/multilingual.md b/docs/content/en/content-management/multilingual.md
@@ -349,12 +349,6 @@ And then in the template:
```
{{ i18n "readingTime" .ReadingTime }}
```
-To track down missing translation strings, run Hugo with the `--i18n-warnings` flag:
-
-```
- hugo --i18n-warnings | grep i18n
-i18n|MISSING_TRANSLATION|en|wordCount
-```
## Customize Dates
@@ -438,6 +432,13 @@ Hugo will generate your website with these missing translation placeholders. It
For merging of content from other languages (i.e. missing content translations), see [lang.Merge](/functions/lang.merge/).
+To track down missing translation strings, run Hugo with the `--i18n-warnings` flag:
+
+```
+ hugo --i18n-warnings | grep i18n
+i18n|MISSING_TRANSLATION|en|wordCount
+```
+
## Multilingual Themes support
To support Multilingual mode in your themes, some considerations must be taken for the URLs in the templates. If there is more than one language, URLs must meet the following criteria:
(DIR) diff --git a/docs/content/en/content-management/shortcodes.md b/docs/content/en/content-management/shortcodes.md
@@ -249,7 +249,7 @@ Gets a value from the current `Page's` params set in front matter, with a fall b
{{</* param testparam */>}}
```
-Since `testparam` is a param defined in front matter of this page wi the value `Hugo Rocks!`, the above will print:
+Since `testparam` is a param defined in front matter of this page with the value `Hugo Rocks!`, the above will print:
{{< param testparam >}}
(DIR) diff --git a/docs/content/en/contribute/themes.md b/docs/content/en/contribute/themes.md
@@ -22,7 +22,7 @@ toc: true
A collection of all themes created by the Hugo community, including screenshots and demos, can be found at <https://themes.gohugo.io>. Every theme in this list will automatically be added to the theme site. Theme updates aren't scheduled but usually happen at least once a week.
-## tl;dr
+## Adding a theme to the list
1. Create your theme using `hugo new theme <THEMENAME>`;
2. Test your theme against <https://github.com/gohugoio/hugoBasicExample> \*
(DIR) diff --git a/docs/content/en/functions/dict.md b/docs/content/en/functions/dict.md
@@ -22,20 +22,25 @@ aliases: []
`dict` is especially useful for passing more than one value to a partial template.
-## Example: `dict` with Embedded SVGs
+## Example: Using `dict` to pass multiple values to a `partial`
-The partial below creates a SVG and expects `fill` `height` and `width` from the caller:
+The partial below creates a SVG and expects `fill`, `height` and `width` from the caller:
+
+**Partial definition**
{{< code file="layouts/partials/svgs/external-links.svg" download="external-links.svg" >}}
-<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="{{ .fill }}" width="{{ .size }}" height="{{ .size }}" viewBox="0 0 32 32" aria-label="External Link">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
+fill="{{ .fill }}" width="{{ .width }}" height="{{ .height }}" viewBox="0 0 32 32" aria-label="External Link">
<path d="M25.152 16.576v5.696q0 2.144-1.504 3.648t-3.648 1.504h-14.848q-2.144 0-3.648-1.504t-1.504-3.648v-14.848q0-2.112 1.504-3.616t3.648-1.536h12.576q0.224 0 0.384 0.16t0.16 0.416v1.152q0 0.256-0.16 0.416t-0.384 0.16h-12.576q-1.184 0-2.016 0.832t-0.864 2.016v14.848q0 1.184 0.864 2.016t2.016 0.864h14.848q1.184 0 2.016-0.864t0.832-2.016v-5.696q0-0.256 0.16-0.416t0.416-0.16h1.152q0.256 0 0.416 0.16t0.16 0.416zM32 1.152v9.12q0 0.48-0.352 0.8t-0.8 0.352-0.8-0.352l-3.136-3.136-11.648 11.648q-0.16 0.192-0.416 0.192t-0.384-0.192l-2.048-2.048q-0.192-0.16-0.192-0.384t0.192-0.416l11.648-11.648-3.136-3.136q-0.352-0.352-0.352-0.8t0.352-0.8 0.8-0.352h9.12q0.48 0 0.8 0.352t0.352 0.8z"></path>
</svg>
{{< /code >}}
-These values can be stored in one object with `dict` and passed to the partial:
+**Partial call**
+
+The `fill`, `height` and `width` values can be stored in one object with `dict` and passed to the partial:
{{< code file="layouts/_default/list.html" >}}
-{{ partial "svg/link-ext.svg" (dict "fill" "#01589B" "size" 10 "width" 20 ) }}
+{{ partial "svgs/external-links.svg" (dict "fill" "#01589B" "width" 10 "height" 20 ) }}
{{< /code >}}
(DIR) diff --git a/docs/content/en/functions/imageConfig.md b/docs/content/en/functions/imageConfig.md
@@ -1,4 +1,5 @@
---
+title: imageConfig
linktitle: imageConfig
description: Parses the image and returns the height, width, and color model.
godocref:
(DIR) diff --git a/docs/content/en/functions/intersect.md b/docs/content/en/functions/intersect.md
@@ -18,9 +18,10 @@ relatedfuncs: []
deprecated: false
aliases: []
---
-
An useful example is to use it as `AND` filters when combined with where:
+## AND filter in where query
+
```
{{ $pages := where .Site.RegularPages "Type" "not in" (slice "page" "about") }}
{{ $pages := $pages | union (where .Site.RegularPages "Params.pinned" true) }}
(DIR) diff --git a/docs/content/en/functions/lang.Merge.md b/docs/content/en/functions/lang.Merge.md
@@ -29,17 +29,13 @@ As an example:
Will "fill in the gaps" in the current site with, from left to right, content from the French site, and lastly the English.
-A more practical example is to fill in the missing translations for the "minority languages" with content from the main language:
-
+A more practical example is to fill in the missing translations from the other languages:
```bash
- {{ $pages := .Site.RegularPages }}
- {{ .Scratch.Set "pages" $pages }}
- {{ $mainSite := .Sites.First }}
- {{ if ne $mainSite .Site }}
- {{ .Scratch.Set "pages" ($pages | lang.Merge $mainSite.RegularPages) }}
- {{ end }}
- {{ $pages := .Scratch.Get "pages" }}
+{{ $pages := .Site.RegularPages }}
+{{ range .Site.Home.Translations }}
+{{ $pages = $pages | lang.Merge .Site.RegularPages }}
+{{ end }}
```
{{% note %}}
(DIR) diff --git a/docs/content/en/functions/partialCached.md b/docs/content/en/functions/partialCached.md
@@ -19,7 +19,12 @@ deprecated: false
aliases: []
---
-The `partialCached` template function can offer significant performance gains for complex templates that don't need to be re-rendered on every invocation. Here is the simplest usage:
+The `partialCached` template function can offer significant performance gains for complex templates that don't need to be re-rendered on every invocation.
+
+
+**Note:** Each Site (or language) has its own `partialCached` cache, so each site will execute a partial once.
+
+Here is the simplest usage:
```
{{ partialCached "footer.html" . }}
(DIR) diff --git a/docs/content/en/functions/path.Base.md b/docs/content/en/functions/path.Base.md
@@ -0,0 +1,31 @@
+---
+title: path.Base
+description: Base returns the last element of a path.
+godocref:
+date: 2018-11-28
+publishdate: 2018-11-28
+lastmod: 2018-11-28
+categories: [functions]
+menu:
+ docs:
+ parent: "functions"
+keywords: [path, base]
+signature: ["path.Base PATH"]
+workson: []
+hugoversion: "0.40"
+relatedfuncs: [path.Dir, path.Ext, path.Split]
+deprecated: false
+---
+
+`path.Base` returns the last element of `PATH`.
+
+If `PATH` is empty, `.` is returned.
+
+**Note:** On Windows, `PATH` is converted to slash (`/`) separators.
+
+```
+{{ path.Base "a/news.html" }} → "news.html"
+{{ path.Base "news.html" }} → "news.html"
+{{ path.Base "a/b/c" }} → "c"
+{{ path.Base "/x/y/z/" }} → "z"
+```
(DIR) diff --git a/docs/content/en/functions/path.Dir.md b/docs/content/en/functions/path.Dir.md
@@ -0,0 +1,32 @@
+---
+title: path.Dir
+description: Dir returns all but the last element of a path.
+godocref:
+date: 2018-11-28
+publishdate: 2018-11-28
+lastmod: 2018-11-28
+categories: [functions]
+menu:
+ docs:
+ parent: "functions"
+keywords: [path, dir]
+signature: ["path.Dir PATH"]
+workson: []
+hugoversion: "0.40"
+relatedfuncs: [path.Base, path.Ext, path.Split]
+deprecated: false
+---
+
+`path.Dir` returns all but the last element of `PATH`, typically `PATH`'s directory.
+
+The returned path will never end in a slash.
+If `PATH` is empty, `.` is returned.
+
+**Note:** On Windows, `PATH` is converted to slash (`/`) separators.
+
+```
+{{ path.Dir "a/news.html" }} → "a"
+{{ path.Dir "news.html" }} → "."
+{{ path.Dir "a/b/c" }} → "a/b"
+{{ path.Dir "/x/y/z" }} → "/x/y"
+```
(DIR) diff --git a/docs/content/en/functions/path.Ext.md b/docs/content/en/functions/path.Ext.md
@@ -0,0 +1,29 @@
+---
+title: path.Ext
+description: Ext returns the file name extension of a path.
+godocref:
+date: 2018-11-28
+publishdate: 2018-11-28
+lastmod: 2018-11-28
+categories: [functions]
+menu:
+ docs:
+ parent: "functions"
+keywords: [path, ext, extension]
+signature: ["path.Ext PATH"]
+workson: []
+hugoversion: "0.40"
+relatedfuncs: [path.Base, path.Dir, path.Split]
+deprecated: false
+---
+
+`path.Ext` returns the file name extension `PATH`.
+
+The extension is the suffix beginning at the final dot in the final slash-separated element `PATH`;
+it is empty if there is no dot.
+
+**Note:** On Windows, `PATH` is converted to slash (`/`) separators.
+
+```
+{{ path.Ext "a/b/c/news.html" }} → ".html"
+```
(DIR) diff --git a/docs/content/en/functions/path.Join.md b/docs/content/en/functions/path.Join.md
@@ -0,0 +1,29 @@
+---
+title: path.Join
+description: Join path elements into a single path.
+godocref:
+date: 2018-11-28
+publishdate: 2018-11-28
+lastmod: 2018-11-28
+categories: [functions]
+menu:
+ docs:
+ parent: "functions"
+keywords: [path, join]
+signature: ["path.Join ELEMENT..."]
+workson: []
+hugoversion: "0.39"
+relatedfuncs: [path.Split]
+deprecated: false
+---
+
+`path.Join` joins path elements into a single path, adding a separating slash if necessary.
+All empty strings are ignored.
+
+**Note:** All path elements on Windows are converted to slash ('/') separators.
+
+```
+{{ path.Join "partial" "news.html" }} → "partial/news.html"
+{{ path.Join "partial/" "news.html" }} → "partial/news.html"
+{{ path.Join "foo/baz" "bar" }} → "foo/baz/bar"
+```
(DIR) diff --git a/docs/content/en/functions/path.Split.md b/docs/content/en/functions/path.Split.md
@@ -0,0 +1,31 @@
+---
+title: path.Split
+description: Split path immediately following the final slash.
+godocref:
+date: 2018-11-28
+publishdate: 2018-11-28
+lastmod: 2018-11-28
+categories: [functions]
+menu:
+ docs:
+ parent: "functions"
+keywords: [path, split]
+signature: ["path.Split PATH"]
+workson: []
+hugoversion: "0.39"
+relatedfuncs: [path.Split]
+deprecated: false
+---
+
+`path.Split` splits `PATH` immediately following the final slash, separating it into a directory and a base component.
+
+The returned values have the property that `PATH` = `DIR`+`BASE`.
+If there is no slash in `PATH`, it returns an empty directory and the base is set to `PATH`.
+
+**Note:** On Windows, `PATH` is converted to slash (`/`) separators.
+
+```
+{{ path.Split "a/news.html" }} → "a/", "news.html"
+{{ path.Split "news.html" }} → "", "news.html"
+{{ path.Split "a/b/c" }} → "a/b/", "c"
+```
(DIR) diff --git a/docs/content/en/functions/render.md b/docs/content/en/functions/render.md
@@ -1,6 +1,5 @@
---
-title: render
-# linktitle: Render
+title: .Render
description: Takes a view to apply when rendering content.
godocref:
date: 2017-02-01
@@ -11,7 +10,7 @@ menu:
docs:
parent: "functions"
keywords: [views]
-signature: ["render LAYOUT"]
+signature: [".Render LAYOUT"]
workson: []
hugoversion:
relatedfuncs: []
(DIR) diff --git a/docs/content/en/functions/templates.Exists.md b/docs/content/en/functions/templates.Exists.md
@@ -0,0 +1,37 @@
+---
+title: templates.Exists
+linktitle: ""
+description: "Checks whether a template file exists under the given path relative to the `layouts` directory."
+godocref: ""
+date: 2018-11-01
+publishdate: 2018-11-01
+lastmod: 2018-11-01
+categories: [functions]
+tags: []
+menu:
+ docs:
+ parent: "functions"
+ns: ""
+keywords: ["templates", "template", "layouts"]
+signature: ["templates.Exists PATH"]
+workson: []
+hugoversion: "0.46"
+aliases: []
+relatedfuncs: []
+toc: false
+deprecated: false
+---
+
+A template file is any file living below the `layouts` directories of either the project or any of its theme components incudling partials and shortcodes.
+
+The function is particulary handy with dynamic path. The following example ensures the build will not break on a `.Type` missing its dedicated `header` partial.
+
+```go-html-template
+{{ $partialPath := printf "headers/%s.html" .Type }}
+{{ if templates.Exists ( printf "partials/%s" $partialPath ) }}
+ {{ partial $partialPath . }}
+{{ else }}
+ {{ partial "headers/default.html" . }}
+{{ end }}
+
+```
+\ No newline at end of file
(DIR) diff --git a/docs/content/en/functions/union.md b/docs/content/en/functions/union.md
@@ -35,6 +35,7 @@ Given two arrays (or slices) A and B, this function will return a new array that
<!-- returns an error because both arrays/slices have to be of the same type -->
```
+## OR filter in where query
This is also very useful to use as `OR` filters when combined with where:
(DIR) diff --git a/docs/content/en/getting-started/configuration.md b/docs/content/en/getting-started/configuration.md
@@ -437,15 +437,15 @@ You can override any of these cache setting in your own `config.toml`.
:cacheDir
: This is the value of the `cacheDir` config option if set (can also be set via OS env variable `HUGO_CACHEDIR`). It will fall back to `/opt/build/cache/hugo_cache/` on Netlify, or a `hugo_cache` directory below the OS temp dir for the others. This means that if you run your builds on Netlify, all caches configured with `:cacheDir` will be saved and restored on the next build. For other CI vendors, please read their documentation. For an CircleCI example, see [this configuration](https://github.com/bep/hugo-sass-test/blob/6c3960a8f4b90e8938228688bc49bdcdd6b2d99e/.circleci/config.yml).
-:project
+`:project`
The base directory name of the current Hugo project. This means that, in its default setting, every project will have separated file caches, which means that when you do `hugo --gc` you will not touch files related to other Hugo projects running on the same PC.
-:resourceDir
+`:resourceDir`
: This is the value of the `resourceDir` config option.
maxAge
-: This is the duration before a cache entry will be evicted, -1 means forever and 0 effectively turns that particular cache off. Uses Go's `time.Duration`, so valid values are `"10s"` (10 seconds), `"10m"` (10 minutes) and `"10m"` (10 hours).
+: This is the duration before a cache entry will be evicted, -1 means forever and 0 effectively turns that particular cache off. Uses Go's `time.Duration`, so valid values are `"10s"` (10 seconds), `"10m"` (10 minutes) and `"10h"` (10 hours).
dir
: The absolute path to where the files for this cache will be stored. Allowed starting placeholders are `:cacheDir` and `:resourceDir` (see above).
(DIR) diff --git a/docs/content/en/hosting-and-deployment/hosting-on-netlify.md b/docs/content/en/hosting-and-deployment/hosting-on-netlify.md
@@ -128,6 +128,12 @@ You can checkout a specific version as follows:
git checkout tags/<version-name>
```
+You can update a theme to the latest version by executing the following command in the *root* directory of your project:
+
+```
+git submodule update --rebase --remote
+```
+
## Next Steps
You now have a live website served over https, distributed through CDN, and configured for continuous deployment. Dig deeper into the Netlify documentation:
(DIR) diff --git a/docs/content/en/news/0.50-relnotes/featured-hugo-50-poster.png b/docs/content/en/news/0.50-relnotes/featured-hugo-50-poster.png
Binary files differ.
(DIR) diff --git a/docs/content/en/news/0.50-relnotes/index.md b/docs/content/en/news/0.50-relnotes/index.md
@@ -1,12 +1,12 @@
---
date: 2018-10-29
-title: "0.50"
-description: "0.50"
+title: "Hugo 0.50: Errors so Good, You’ll Want to Fail!"
+description: "Errors with full filename and line and column number, shown in browser. And improved Fast Render Mode …"
categories: ["Releases"]
---
- Hugo `0.50` brings **greatly improved error messages**, and we now also show them in the browser. Having error messages with filename, line- and column number greatly simplify troubleshooting. Many editors (like VS Code) even let you click and navigate directly to the problematic line. If your editor requires a different log format, you can set it via the `HUGO_FILE_LOG_FORMAT` OS environment variable:
+Hugo `0.50` brings **greatly improved error messages**, and we now also show them in the browser. Having error messages with filename, line- and column number greatly simplify troubleshooting. Many editors (like VS Code) even let you click and navigate directly to the problematic line. If your editor requires a different log format, you can set it via the `HUGO_FILE_LOG_FORMAT` OS environment variable:
```bash
(DIR) diff --git a/docs/content/en/news/0.51-relnotes/featured-hugo-51-poster.png b/docs/content/en/news/0.51-relnotes/featured-hugo-51-poster.png
Binary files differ.
(DIR) diff --git a/docs/content/en/news/0.51-relnotes/index.md b/docs/content/en/news/0.51-relnotes/index.md
@@ -1,12 +1,12 @@
---
date: 2018-11-07
-title: "0.51"
-description: "0.51"
+title: "Hugo 0.51: The 30K Stars Edition!"
+description: "Bug fixes, new template functions and more error improvements."
categories: ["Releases"]
---
- Hugo reached [30 000 stars on GitHub](https://github.com/gohugoio/hugo/stargazers) this week, which is a good occasion to do a follow-up release of the great Hugo `0.50`. This is mostly a bug fix release, but it also adds some useful new functionality, two examples are the new template funcs `complement` and `symdiff`. This release also continues the work on improving Hugo's error messages. And with `.Position` now available on shortcodes, you can also improve your own error messages inside your custom shortcodes:
+Hugo reached [30 000 stars on GitHub](https://github.com/gohugoio/hugo/stargazers) this week, which is a good occasion to do a follow-up release of the great Hugo `0.50`. This is mostly a bug fix release, but it also adds some useful new functionality, two examples are the new template funcs [complement](https://gohugo.io/functions/complement/) and [symdiff](https://gohugo.io/functions/symdiff/). This release also continues the work on improving Hugo's error messages. And with `.Position` now available on shortcodes, you can also improve your own error messages inside your custom shortcodes:
```bash
(DIR) diff --git a/docs/content/en/news/0.52-relnotes/featured-hugo-52-poster.png b/docs/content/en/news/0.52-relnotes/featured-hugo-52-poster.png
Binary files differ.
(DIR) diff --git a/docs/content/en/news/0.52-relnotes/index.md b/docs/content/en/news/0.52-relnotes/index.md
@@ -1,12 +1,12 @@
---
date: 2018-11-28
-title: "0.52"
-description: "0.52"
+title: "And Now: Hugo 0.52"
+description: "Configurable file caches, inline shortcodes, and more ..."
categories: ["Releases"]
---
- The two big new items in this release is [Inline Shortcodes](https://gohugo.io//templates/shortcode-templates/#inline-shortcodes) and [Consolidated File Caches](https://gohugo.io//templates/shortcode-templates/getting-started/configuration/#configure-file-caches). In Hugo we really care about build speed, and caching is important. With this release, you get much better control over your cache configuration, which is especially useful when building on a Continous Integration server (Netlify, CircleCI or similar). Inline Shortcodes was implemented to help the Bootstrap project [move their documentation](https://github.com/twbs/bootstrap/issues/24475#issuecomment-441238128) to Hugo. Note that this feature is disabled by default. To enable, set `enableInlineShortcodes = true` in your site config. Worth mentioning is also the new `param` shortcode, which looks up the param in page front matter with the site's parameter as a fall back.
+The two big new items in this release is [Inline Shortcodes](https://gohugo.io//templates/shortcode-templates/#inline-shortcodes) and [Consolidated File Caches](https://gohugo.io/getting-started/configuration/#configure-file-caches). In Hugo we really care about build speed, and caching is important. With this release, you get much better control over your cache configuration, which is especially useful when building on a Continous Integration server (Netlify, CircleCI or similar). Inline Shortcodes was implemented to help the Bootstrap project [move their documentation site](https://github.com/twbs/bootstrap/issues/24475#issuecomment-441238128) to Hugo. Note that this feature is disabled by default. To enable, set `enableInlineShortcodes = true` in your site config. Worth mentioning is also the new `param` shortcode, which looks up the param in page front matter with the site's parameter as a fall back.
This release represents **33 contributions by 7 contributors** to the main Hugo code base.
[@bep](https://github.com/bep) leads the Hugo development with a significant amount of contributions, but also a big shoutout to [@moorereason](https://github.com/moorereason), [@emirb](https://github.com/emirb), and [@allizad](https://github.com/allizad) for their ongoing contributions.
(DIR) diff --git a/docs/content/en/templates/files.md b/docs/content/en/templates/files.md
@@ -48,7 +48,7 @@ You can then call the shortcode as follows inside of your content's markup:
The above shortcode [is part of the code for the Hugo docs][dirindex]. Here it lists this site's CSS files:
-{{< directoryindex path="/themes/gohugoioTheme/static/dist" pathURL="/css" >}}
+{{< directoryindex path="/themes/gohugoioTheme/static" pathURL="/css" >}}
{{% note "Slashes are Important" %}}
The initial slash `/` in `pathURL` is important in the `directoryindex` shortcode. Otherwise, `pathURL` becomes relative to the current web page.
(DIR) diff --git a/docs/content/en/templates/partials.md b/docs/content/en/templates/partials.md
@@ -60,6 +60,10 @@ All partials are called within your templates using the following pattern:
One of the most common mistakes with new Hugo users is failing to pass a context to the partial call. In the pattern above, note how "the dot" (`.`) is required as the second argument to give the partial context. You can read more about "the dot" in the [Hugo templating introduction](/templates/introduction/).
{{% /note %}}
+{{% note %}}
+`<PARTIAL>` including `baseof` is reserved. ([#5373](https://github.com/gohugoio/hugo/issues/5373))
+{{% /note %}}
+
As shown in the above example directory structure, you can nest your directories within `partials` for better source organization. You only need to call the nested partial's path relative to the `partials` directory:
```
(DIR) diff --git a/docs/content/en/themes/creating.md b/docs/content/en/themes/creating.md
@@ -19,8 +19,8 @@ toc: true
wip: true
---
-{{% warning "Use Relative Links" %}}
-If you're creating a theme with plans to share it with the community, use relative URLs since users of your theme may not publish from the root of their website. See [relURL](/functions/relurl) and [absURL](/functions/absurl).
+{{% warning "Use Absolute Links" %}}
+If you're creating a theme with plans to share it on the [Hugo Themes website](https://themes.gohugo.io/) please note that your theme's demo will be available in a sub-directory of website and for the theme's assets to load properly you will need to create absolute paths in the templates by using either the [absURL](/functions/absurl) function or `.Permalink`. Also make sure not to use a forward slash `/` in the beginning of a `PATH`, because Hugo will turn it into a relative URL and the `absURL` function will have no effect.
{{% /warning %}}
Hugo can initialize a new blank theme directory within your existing `themes` using the `hugo new` command:
(DIR) diff --git a/docs/content/en/tools/search.md b/docs/content/en/tools/search.md
@@ -30,3 +30,4 @@ A static website with a dynamic search function? Yes. As alternatives to embedda
## Commercial Search Services
* [Algolia](https://www.algolia.com/)'s Search API makes it easy to deliver a great search experience in your apps and websites. Algolia Search provides hosted full-text, numerical, faceted, and geolocalized search.
+* [Bonsai](https://www.bonsai.io) is a fully-managed hosted Elasticsearch service that is fast, reliable, and simple to set up. Easily ingest your docs from Hugo into Elasticsearch following [this guide from the docs](https://docs.bonsai.io/docs/hugo).
(DIR) diff --git a/docs/content/en/variables/files.md b/docs/content/en/variables/files.md
@@ -33,9 +33,13 @@ The `.File` object contains the following fields:
.File.TranslationBaseName
: the filename without extension or optional language identifier (e.g., `foo`)
+.File.ContentBaseName
+: is a either TranslationBaseName or name of containing folder if file is a leaf bundle.
+
.File.BaseFileName
: the filename without extension (e.g., `foo.en`)
+
.File.Ext
: the file extension of the content file (e.g., `md`); this can also be called using `.File.Extension` as well. Note that it is *only* the extension without `.`.
@@ -45,4 +49,4 @@ The `.File` object contains the following fields:
.File.Dir
: given the path `content/posts/dir1/dir2/`, the relative directory path of the content file will be returned (e.g., `posts/dir1/dir2/`)
-[Multilingual]: /content-management/multilingual/
-\ No newline at end of file
+[Multilingual]: /content-management/multilingual/
(DIR) diff --git a/docs/content/en/variables/page.md b/docs/content/en/variables/page.md
@@ -156,6 +156,12 @@ http://remarkjs.com)
.Site
: see [Site Variables](/variables/site/).
+.Sites
+: returns all sites (languages). A typical use case would be to link back to the main language: `<a href="{{ .Sites.First.Home.RelPermalink }}">...</a>`.
+
+.Sites.First
+: returns the site for the first language. If this is not a multilingual setup, it will return itself.
+
.Summary
: a generated summary of the content for easily showing a snippet in a summary view. The breakpoint can be set manually by inserting <code><!--more--></code> at the appropriate place in the content page. See [Content Summaries](/content-management/summaries/) for more details.
(DIR) diff --git a/docs/netlify.toml b/docs/netlify.toml
@@ -1,30 +1,30 @@
[build]
publish = "public"
-command = "hugo"
+command = "hugo --gc --minify"
[context.production.environment]
-HUGO_VERSION = "0.49.2"
+HUGO_VERSION = "0.52"
HUGO_ENV = "production"
HUGO_ENABLEGITINFO = "true"
[context.split1]
-command = "hugo --enableGitInfo"
+command = "hugo --gc --minify --enableGitInfo"
[context.split1.environment]
-HUGO_VERSION = "0.49.2"
+HUGO_VERSION = "0.52"
HUGO_ENV = "production"
[context.deploy-preview]
-command = "hugo --buildFuture -b $DEPLOY_PRIME_URL"
+command = "hugo --gc --minify --buildFuture -b $DEPLOY_PRIME_URL"
[context.deploy-preview.environment]
-HUGO_VERSION = "0.49.2"
+HUGO_VERSION = "0.52"
[context.branch-deploy]
-command = "hugo -b $DEPLOY_PRIME_URL"
+command = "hugo --gc --minify -b $DEPLOY_PRIME_URL"
[context.branch-deploy.environment]
-HUGO_VERSION = "0.49.2"
+HUGO_VERSION = "0.52"
[context.next.environment]
HUGO_ENABLEGITINFO = "true"
(DIR) diff --git a/docs/resources/_gen/assets/css/output/css/app.css_d11fe7b62c27961c87ecd0f2490357b9.content b/docs/resources/_gen/assets/css/output/css/app.css_d11fe7b62c27961c87ecd0f2490357b9.content
@@ -0,0 +1 @@
+@font-face{font-family:muli;font-style:normal;font-display:swap;font-weight:200;src:local('Muli Extra Light '),local('Muli-Extra Light'),url(/fonts/muli-latin-200.woff2) format('woff2'),url(/fonts/muli-latin-200.woff) format('woff')}@font-face{font-family:muli;font-style:italic;font-display:swap;font-weight:200;src:local('Muli Extra Light italic'),local('Muli-Extra Lightitalic'),url(/fonts/muli-latin-200italic.woff2) format('woff2'),url(/fonts/muli-latin-200italic.woff) format('woff')}@font-face{font-family:muli;font-style:normal;font-display:swap;font-weight:300;src:local('Muli Light '),local(Muli-Light),url(/fonts/muli-latin-300.woff2) format('woff2'),url(/fonts/muli-latin-300.woff) format('woff')}@font-face{font-family:muli;font-style:italic;font-display:swap;font-weight:300;src:local('Muli Light italic'),local(Muli-Lightitalic),url(/fonts/muli-latin-300italic.woff2) format('woff2'),url(/fonts/muli-latin-300italic.woff) format('woff')}@font-face{font-family:muli;font-style:normal;font-display:swap;font-weight:400;src:local('Muli Regular '),local(Muli-Regular),url(/fonts/muli-latin-400.woff2) format('woff2'),url(/fonts/muli-latin-400.woff) format('woff')}@font-face{font-family:muli;font-style:italic;font-display:swap;font-weight:400;src:local('Muli Regular italic'),local(Muli-Regularitalic),url(/fonts/muli-latin-400italic.woff2) format('woff2'),url(/fonts/muli-latin-400italic.woff) format('woff')}@font-face{font-family:muli;font-style:normal;font-display:swap;font-weight:600;src:local('Muli SemiBold '),local(Muli-SemiBold),url(/fonts/muli-latin-600.woff2) format('woff2'),url(/fonts/muli-latin-600.woff) format('woff')}@font-face{font-family:muli;font-style:italic;font-display:swap;font-weight:600;src:local('Muli SemiBold italic'),local(Muli-SemiBolditalic),url(/fonts/muli-latin-600italic.woff2) format('woff2'),url(/fonts/muli-latin-600italic.woff) format('woff')}@font-face{font-family:muli;font-style:normal;font-display:swap;font-weight:700;src:local('Muli Bold '),local(Muli-Bold),url(/fonts/muli-latin-700.woff2) format('woff2'),url(/fonts/muli-latin-700.woff) format('woff')}@font-face{font-family:muli;font-style:italic;font-display:swap;font-weight:700;src:local('Muli Bold italic'),local(Muli-Bolditalic),url(/fonts/muli-latin-700italic.woff2) format('woff2'),url(/fonts/muli-latin-700italic.woff) format('woff')}@font-face{font-family:muli;font-style:normal;font-display:swap;font-weight:800;src:local('Muli ExtraBold '),local(Muli-ExtraBold),url(/fonts/muli-latin-800.woff2) format('woff2'),url(/fonts/muli-latin-800.woff) format('woff')}@font-face{font-family:muli;font-style:italic;font-display:swap;font-weight:800;src:local('Muli ExtraBold italic'),local(Muli-ExtraBolditalic),url(/fonts/muli-latin-800italic.woff2) format('woff2'),url(/fonts/muli-latin-800italic.woff) format('woff')}@font-face{font-family:muli;font-style:normal;font-display:swap;font-weight:900;src:local('Muli Black '),local(Muli-Black),url(/fonts/muli-latin-900.woff2) format('woff2'),url(/fonts/muli-latin-900.woff) format('woff')}@font-face{font-family:muli;font-style:italic;font-display:swap;font-weight:900;src:local('Muli Black italic'),local(Muli-Blackitalic),url(/fonts/muli-latin-900italic.woff2) format('woff2'),url(/fonts/muli-latin-900italic.woff) format('woff')}/*!TACHYONS v4.7.0 | http://tachyons.io*//*!normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css*/html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}h1{font-size:2em;margin:.67em 0}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:#0000}b,strong{font-weight:bolder}code{font-family:monospace,monospace;font-size:1em}small{font-size:80%}img{border-style:none}button,input{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}[type=checkbox],[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}template{display:none}[hidden]{display:none}html,body,div,article,aside,section,main,nav,footer,header,form,fieldset,legend,pre,code,a,h1,h2,h3,h4,h5,h6,p,ul,li,blockquote,figcaption,table,td,th,tr,input[type=email],input[type=number],input[type=password],input[type=tel],input[type=text],input[type=url]{-webkit-box-sizing:border-box;box-sizing:border-box}img{max-width:100%}.cover{background-size:cover!important}.ba{border-style:solid;border-width:1px}.bt{border-top-style:solid;border-top-width:1px}.br{border-right-style:solid;border-right-width:1px}.bb{border-bottom-style:solid;border-bottom-width:1px}.bl{border-left-style:solid;border-left-width:1px}.bn{border-style:none;border-width:0}@media screen and (min-width:60em){.bl-l{border-left-style:solid;border-left-width:1px}}.b--dark-gray{border-color:#333}.b--mid-gray{border-color:#555}.b--moon-gray{border-color:#ccc}.b--light-gray{border-color:#eee}.b--white-40{border-color:#fff6}.b--black-10{border-color:#0000001a}.b--blue{border-color:#0594cb}.br1{border-radius:.125rem}.br2{border-radius:.25rem}.br3{border-radius:.5rem}.br-100{border-radius:100%}.bw1{border-width:.125rem}.shadow-2{-webkit-box-shadow:0 0 8px 2px #0003;box-shadow:0 0 8px 2px #0003}.shadow-5{-webkit-box-shadow:4px 4px 8px 0 #0003;box-shadow:4px 4px 8px 0 #0003}.top-0{top:0}.right-0{right:0}.bottom-0{bottom:0}.left-0{left:0}.cf:before,.cf:after{content:" ";display:table}.cf:after{clear:both}.cf{*zoom:1}.dn{display:none}.db{display:block}.dib{display:inline-block}@media screen and (min-width:30em){.dib-ns{display:inline-block}}@media screen and (min-width:60em){.dn-l{display:none}.db-l{display:block}.dib-l{display:inline-block}}.flex{display:-webkit-box;display:-ms-flexbox;display:flex}.flex-auto{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;min-width:0;min-height:0}.flex-none{-webkit-box-flex:0;-ms-flex:none;flex:none}.flex-column{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.flex-wrap{-ms-flex-wrap:wrap;flex-wrap:wrap}.flex-nowrap{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.items-center{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.items-stretch{-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.justify-start{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.justify-end{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.justify-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.justify-between{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.order-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}@media screen and (min-width:30em){.flex-ns{display:-webkit-box;display:-ms-flexbox;display:flex}.flex-auto-ns{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;min-width:0;min-height:0}}@media screen and (min-width:60em){.flex-l{display:-webkit-box;display:-ms-flexbox;display:flex}.order-0-l{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-1-l{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}}.fn{float:none}.i{font-style:italic}.b{font-weight:700}.fw2{font-weight:200}.fw4{font-weight:400}.fw7{font-weight:700}.fw8{font-weight:800}.fw9{font-weight:900}.input-reset{-webkit-appearance:none;-moz-appearance:none}.input-reset::-moz-focus-inner{border:0;padding:0}.h1{height:1rem}.h2{height:2rem}.h3{height:4rem}.h4{height:8rem}.h5{height:16rem}.h-100{height:100%}.min-vh-100{min-height:100vh}.tracked{letter-spacing:.1em}.lh-solid{line-height:1}.lh-title{line-height:1.25}.lh-copy{line-height:1.5}.link{text-decoration:none;-webkit-transition:color .15s ease-in;transition:color .15s ease-in}.link:link,.link:visited{-webkit-transition:color .15s ease-in;transition:color .15s ease-in}.link:hover{-webkit-transition:color .15s ease-in;transition:color .15s ease-in}.link:active{-webkit-transition:color .15s ease-in;transition:color .15s ease-in}.link:focus{-webkit-transition:color .15s ease-in;transition:color .15s ease-in;outline:1px dotted currentColor}.list{list-style-type:none}.mw-100{max-width:100%}.mw3{max-width:4rem}.mw5{max-width:16rem}.mw7{max-width:48rem}.mw9{max-width:96rem}@media screen and (min-width:60em){.mw5-l{max-width:16rem}}.w3{width:4rem}.w4{width:8rem}.w5{width:16rem}.w-20{width:20%}.w-70{width:70%}.w-80{width:80%}.w-90{width:90%}.w-100{width:100%}.w-auto{width:auto}@media screen and (min-width:30em){.w4-ns{width:8rem}.w-20-ns{width:20%}.w-50-ns{width:50%}.w-70-ns{width:70%}.w-80-ns{width:80%}.w-90-ns{width:90%}}@media screen and (min-width:30em) and (max-width:60em){.w-50-m{width:50%}}@media screen and (min-width:60em){.w-10-l{width:10%}.w-20-l{width:20%}.w-25-l{width:25%}.w-30-l{width:30%}.w-40-l{width:40%}.w-50-l{width:50%}.w-60-l{width:60%}.w-80-l{width:80%}.w-90-l{width:90%}.w-third-l{width:33.33333%}}.overflow-hidden{overflow:hidden}.overflow-x-scroll{overflow-x:scroll}.static{position:static}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}@media screen and (min-width:60em){.absolute-l{position:absolute}}.o-100{opacity:1}.o-80{opacity:.8}.o-50{opacity:.5}.o-10{opacity:.1}.o-0{opacity:0}.black-70{color:#000000b2}.black-60{color:#0009}.white-90{color:#ffffffe5}.black{color:#000}.near-black{color:#111}.dark-gray{color:#333}.mid-gray{color:#555}.gray{color:#777}.silver{color:#999}.light-silver{color:#aaa}.moon-gray{color:#ccc}.light-gray{color:#eee}.white{color:#fff}.light-green{color:#9eebcf}.blue{color:#0594cb}.bg-black{background-color:#000}.bg-light-gray{background-color:#eee}.bg-near-white{background-color:#f4f4f4}.bg-white{background-color:#fff}.bg-blue{background-color:#0594cb}.hover-black:hover,.hover-black:focus{color:#000}.hover-white:hover,.hover-white:focus{color:#fff}.hover-bg-black:hover,.hover-bg-black:focus{background-color:#000}.hover-bg-gray:hover,.hover-bg-gray:focus{background-color:#777}.hover-bg-light-gray:hover,.hover-bg-light-gray:focus{background-color:#eee}.hover-bg-near-white:hover,.hover-bg-near-white:focus{background-color:#f4f4f4}.hover-blue:hover,.hover-blue:focus{color:#0594cb}.hover-bg-green:hover,.hover-bg-green:focus{background-color:#19a974}.pa0{padding:0}.pa1{padding:.25rem}.pa2{padding:.5rem}.pa3{padding:1rem}.pa4{padding:2rem}.pa5{padding:4rem}.pl0{padding-left:0}.pl1{padding-left:.25rem}.pl2{padding-left:.5rem}.pl3{padding-left:1rem}.pl4{padding-left:2rem}.pr1{padding-right:.25rem}.pr2{padding-right:.5rem}.pr3{padding-right:1rem}.pb1{padding-bottom:.25rem}.pb2{padding-bottom:.5rem}.pb3{padding-bottom:1rem}.pb4{padding-bottom:2rem}.pb5{padding-bottom:4rem}.pb7{padding-bottom:16rem}.pt1{padding-top:.25rem}.pt2{padding-top:.5rem}.pt3{padding-top:1rem}.pt4{padding-top:2rem}.pt5{padding-top:4rem}.pv1{padding-top:.25rem;padding-bottom:.25rem}.pv2{padding-top:.5rem;padding-bottom:.5rem}.pv3{padding-top:1rem;padding-bottom:1rem}.pv4{padding-top:2rem;padding-bottom:2rem}.ph0{padding-left:0;padding-right:0}.ph1{padding-left:.25rem;padding-right:.25rem}.ph2{padding-left:.5rem;padding-right:.5rem}.ph3{padding-left:1rem;padding-right:1rem}.ph4{padding-left:2rem;padding-right:2rem}.ph5{padding-left:4rem;padding-right:4rem}.ma0{margin:0}.ma2{margin:.5rem}.ml0{margin-left:0}.ml1{margin-left:.25rem}.ml4{margin-left:2rem}.ml6{margin-left:8rem}.mr0{margin-right:0}.mr2{margin-right:.5rem}.mr3{margin-right:1rem}.mr4{margin-right:2rem}.mr5{margin-right:4rem}.mb0{margin-bottom:0}.mb1{margin-bottom:.25rem}.mb2{margin-bottom:.5rem}.mb3{margin-bottom:1rem}.mb4{margin-bottom:2rem}.mb5{margin-bottom:4rem}.mb7{margin-bottom:16rem}.mt0{margin-top:0}.mt1{margin-top:.25rem}.mt2{margin-top:.5rem}.mt3{margin-top:1rem}.mt4{margin-top:2rem}.mt5{margin-top:4rem}.mv0{margin-top:0;margin-bottom:0}.mv1{margin-top:.25rem;margin-bottom:.25rem}.mv2{margin-top:.5rem;margin-bottom:.5rem}.mv3{margin-top:1rem;margin-bottom:1rem}.mv4{margin-top:2rem;margin-bottom:2rem}.mv6{margin-top:8rem;margin-bottom:8rem}@media screen and (min-width:30em){.pa4-ns{padding:2rem}.pl4-ns{padding-left:2rem}.pb0-ns{padding-bottom:0}.pb6-ns{padding-bottom:8rem}.pt3-ns{padding-top:1rem}.pt5-ns{padding-top:4rem}.pv0-ns{padding-top:0;padding-bottom:0}.pv4-ns{padding-top:2rem;padding-bottom:2rem}.pv5-ns{padding-top:4rem;padding-bottom:4rem}.pv6-ns{padding-top:8rem;padding-bottom:8rem}.ph4-ns{padding-left:2rem;padding-right:2rem}.ph5-ns{padding-left:4rem;padding-right:4rem}.ml0-ns{margin-left:0}.mb0-ns{margin-bottom:0}.mt0-ns{margin-top:0}.mt4-ns{margin-top:2rem}}@media screen and (min-width:30em) and (max-width:60em){.pa4-m{padding:2rem}.ph5-m{padding-left:4rem;padding-right:4rem}}@media screen and (min-width:60em){.pa4-l{padding:2rem}.pl5-l{padding-left:4rem}.pb5-l{padding-bottom:4rem}.pt0-l{padding-top:0}.pv4-l{padding-top:2rem;padding-bottom:2rem}.pv5-l{padding-top:4rem;padding-bottom:4rem}.ph0-l{padding-left:0;padding-right:0}.ph4-l{padding-left:2rem;padding-right:2rem}.ph5-l{padding-left:4rem;padding-right:4rem}.mr4-l{margin-right:2rem}.mb0-l{margin-bottom:0}.mt0-l{margin-top:0}.mt2-l{margin-top:.5rem}}.nl2{margin-left:-.5rem}.nl3{margin-left:-1rem}.nt3{margin-top:-1rem}.no-underline{text-decoration:none}.tl{text-align:left}.tr{text-align:right}.tc{text-align:center}@media screen and (min-width:30em){.tl-ns{text-align:left}.tr-ns{text-align:right}.tc-ns{text-align:center}}@media screen and (min-width:60em){.tl-l{text-align:left}}.ttu{text-transform:uppercase}.f1{font-size:3rem}.f2{font-size:2.25rem}.f3{font-size:1.5rem}.f4{font-size:1.25rem}.f5{font-size:1rem}.f6{font-size:.875rem}.f7{font-size:.75rem}@media screen and (min-width:30em){.f2-ns{font-size:2.25rem}.f3-ns{font-size:1.5rem}.f5-ns{font-size:1rem}}@media screen and (min-width:60em){.f1-l{font-size:3rem}.f4-l{font-size:1.25rem}}.measure{max-width:30em}.measure-wide{max-width:34em}.truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media screen and (min-width:60em){.measure-wide-l{max-width:34em}}.center{margin-right:auto;margin-left:auto}.clip{position:fixed!important;_position:absolute!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px)}.nowrap{white-space:nowrap}.pre{white-space:pre}.v-mid{vertical-align:middle}.v-top{vertical-align:top}.dim{opacity:1;-webkit-transition:opacity .15s ease-in;transition:opacity .15s ease-in}.dim:hover,.dim:focus{opacity:.5;-webkit-transition:opacity .15s ease-in;transition:opacity .15s ease-in}.dim:active{opacity:.8;-webkit-transition:opacity .15s ease-out;transition:opacity .15s ease-out}.hide-child .child{opacity:0;-webkit-transition:opacity .15s ease-in;transition:opacity .15s ease-in}.hide-child:hover .child,.hide-child:focus .child,.hide-child:active .child{opacity:1;-webkit-transition:opacity .15s ease-in;transition:opacity .15s ease-in}.grow{-moz-osx-font-smoothing:grayscale;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-transition:-webkit-transform .25s ease-out;transition:-webkit-transform .25s ease-out;transition:transform .25s ease-out;transition:transform .25s ease-out,-webkit-transform .25s ease-out}.grow:hover,.grow:focus{-webkit-transform:scale(1.05);transform:scale(1.05)}.grow:active{-webkit-transform:scale(.90);transform:scale(.90)}.bg-animate,.bg-animate:hover,.bg-animate:focus{-webkit-transition:background-color .15s ease-in-out;transition:background-color .15s ease-in-out}.z-5{z-index:5}.z-999{z-index:999}.nested-copy-line-height p,.nested-copy-line-height ul{line-height:1.5}.nested-list-reset ul{padding-left:0;margin-left:0;list-style-type:none}.nested-img img{width:100%;max-width:100%;display:block}.nested-links a{color:#0594cb;-webkit-transition:color .15s ease-in;transition:color .15s ease-in}.nested-links a:hover,.nested-links a:focus{color:#96ccff;-webkit-transition:color .15s ease-in;transition:color .15s ease-in}.header-link:after{position:relative;left:.5em;opacity:0;font-size:.8em;-moz-transition:opacity .2s ease-in-out .1s;-ms-transition:opacity .2s ease-in-out .1s}h2:hover .header-link,h3:hover .header-link,h4:hover .header-link,h5:hover .header-link,h6:hover .header-link{opacity:1}.animated{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}@-webkit-keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}.fadeIn{-webkit-animation-name:fadeIn;animation-name:fadeIn}.animated-delay-1{-webkit-animation-delay:.5s;animation-delay:.5s}.note,.warning{border-left-width:4px;border-left-style:solid;position:relative;border-color:#0594cb;display:block}.note #exclamation-icon,.warning #exclamation-icon{fill:#0594cb;position:absolute;top:35%;left:-12px}.admonition-content{display:block;margin:0;padding:.125em 1em;margin-top:2em;margin-bottom:2em;overflow-x:auto;background-color:#0000000d}.hide-child-menu .child-menu{display:none}.hide-child-menu:hover .child-menu,.hide-child-menu:focus .child-menu,.hide-child-menu:active .child-menu{display:block}.documentation-copy h2{margin-top:3em}.documentation-copy h2.minor{font-size:inherit;margin-top:inherit;border-bottom:none}.searchbox{display:inline-block;position:relative;width:200px;height:32px!important;white-space:nowrap;-webkit-box-sizing:border-box;box-sizing:border-box;visibility:visible!important}.searchbox .algolia-autocomplete{display:block;width:100%;height:100%}.searchbox__wrapper{width:100%;height:100%;z-index:1;position:relative}.searchbox__input{display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-transition:box-shadow .4s ease,background .4s ease;-webkit-transition:background .4s ease,-webkit-box-shadow .4s ease;transition:background .4s ease,-webkit-box-shadow .4s ease;transition:box-shadow .4s ease,background .4s ease;transition:box-shadow .4s ease,background .4s ease,-webkit-box-shadow .4s ease;border:0;border-radius:16px;-webkit-box-shadow:inset 0 0 0 1px #ccc;box-shadow:inset 0 0 0 1px #ccc;background:#fff!important;padding:0;padding-right:26px;padding-left:32px;width:100%;height:100%;vertical-align:middle;white-space:normal;font-size:12px;-webkit-appearance:none;-moz-appearance:none;appearance:none}.searchbox__input::-webkit-search-cancel-button,.searchbox__input::-webkit-search-decoration,.searchbox__input::-webkit-search-results-button,.searchbox__input::-webkit-search-results-decoration{display:none}.searchbox__input:hover{-webkit-box-shadow:inset 0 0 0 1px #b3b3b3;box-shadow:inset 0 0 0 1px #b3b3b3}.searchbox__input:active,.searchbox__input:focus{outline:0;-webkit-box-shadow:inset 0 0 0 1px #aaa;box-shadow:inset 0 0 0 1px #aaa;background:#fff}.searchbox__input::-webkit-input-placeholder{color:#aaa}.searchbox__input:-ms-input-placeholder{color:#aaa}.searchbox__input::-ms-input-placeholder{color:#aaa}.searchbox__input::placeholder{color:#aaa}.searchbox__submit{position:absolute;top:0;margin:0;border:0;border-radius:16px 0 0 16px;background-color:#0000;padding:0;width:32px;height:100%;vertical-align:middle;text-align:center;font-size:inherit;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;right:inherit;left:0}.searchbox__submit:before{display:inline-block;margin-right:-4px;height:100%;vertical-align:middle;content:""}.searchbox__submit:active,.searchbox__submit:hover{cursor:pointer}.searchbox__submit:focus{outline:0}.searchbox__submit svg{width:14px;height:14px;vertical-align:middle;fill:#6d7e96}.searchbox__reset{display:block;position:absolute;top:8px;right:8px;margin:0;border:0;background:0 0;cursor:pointer;padding:0;font-size:inherit;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;fill:#00000080}.searchbox__reset.hide{display:none}.searchbox__reset:focus{outline:0}.searchbox__reset svg{display:block;margin:4px;width:8px;height:8px}.searchbox__input:valid~.searchbox__reset{display:block;-webkit-animation-name:a;animation-name:a;-webkit-animation-duration:.15s;animation-duration:.15s}@-webkit-keyframes a{0%{-webkit-transform:translate3d(-20%,0,0);transform:translate3d(-20%,0,0);opacity:0}to{-webkit-transform:none;transform:none;opacity:1}}@keyframes a{0%{-webkit-transform:translate3d(-20%,0,0);transform:translate3d(-20%,0,0);opacity:0}to{-webkit-transform:none;transform:none;opacity:1}}.algolia-autocomplete.algolia-autocomplete-right .ds-dropdown-menu{right:0!important;left:inherit!important}.algolia-autocomplete.algolia-autocomplete-right .ds-dropdown-menu:before{right:48px}.algolia-autocomplete.algolia-autocomplete-left .ds-dropdown-menu{left:0!important;right:inherit!important}.algolia-autocomplete.algolia-autocomplete-left .ds-dropdown-menu:before{left:48px}.algolia-autocomplete .ds-dropdown-menu{top:-6px;border-radius:4px;margin:6px 0 0;padding:0;text-align:left;height:auto;position:relative;background:0 0;border:none;z-index:1;max-width:600px;min-width:500px;-webkit-box-shadow:0 1px 0 0 #0003,0 2px 3px 0 #0000001a;box-shadow:0 1px 0 0 #0003,0 2px 3px 0 #0000001a}.algolia-autocomplete .ds-dropdown-menu:before{display:block;position:absolute;content:"";width:14px;height:14px;background:#fff;z-index:2;top:-7px;border-top:1px solid #d9d9d9;border-right:1px solid #d9d9d9;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);border-radius:2px}.algolia-autocomplete .ds-dropdown-menu .ds-suggestions{position:relative;z-index:2;margin-top:8px}.algolia-autocomplete .ds-dropdown-menu .ds-suggestion{cursor:pointer}.algolia-autocomplete .ds-dropdown-menu .ds-suggestion.ds-cursor .algolia-docsearch-suggestion.suggestion-layout-simple,.algolia-autocomplete .ds-dropdown-menu .ds-suggestion.ds-cursor .algolia-docsearch-suggestion:not(.suggestion-layout-simple) .algolia-docsearch-suggestion--content{background-color:#458ee10d}.algolia-autocomplete .ds-dropdown-menu [class^=ds-dataset-]{position:relative;border:1px solid #d9d9d9;background:#fff;border-radius:4px;overflow:auto;padding:0 8px 8px}.algolia-autocomplete .ds-dropdown-menu *{-webkit-box-sizing:border-box;box-sizing:border-box}.algolia-autocomplete .algolia-docsearch-suggestion{position:relative;padding:0 8px;background:#fff;color:#02060c;overflow:hidden}.algolia-autocomplete .algolia-docsearch-suggestion--highlight{color:#174d8c;background:#8fbbed1a;padding:.1em .05em}.algolia-autocomplete .algolia-docsearch-suggestion--category-header .algolia-docsearch-suggestion--category-header-lvl0 .algolia-docsearch-suggestion--highlight,.algolia-autocomplete .algolia-docsearch-suggestion--category-header .algolia-docsearch-suggestion--category-header-lvl1 .algolia-docsearch-suggestion--highlight{color:inherit;background:inherit}.algolia-autocomplete .algolia-docsearch-suggestion--text .algolia-docsearch-suggestion--highlight{padding:0 0 1px;background:inherit;-webkit-box-shadow:inset 0 -2px 0 0 #458ee1cc;box-shadow:inset 0 -2px 0 0 #458ee1cc;color:inherit}.algolia-autocomplete .algolia-docsearch-suggestion--content{display:block;float:right;width:70%;position:relative;padding:5.33333px 0 5.33333px 10.66667px;cursor:pointer}.algolia-autocomplete .algolia-docsearch-suggestion--content:before{content:"";position:absolute;display:block;top:0;height:100%;width:1px;background:#ddd;left:-1px}.algolia-autocomplete .algolia-docsearch-suggestion--category-header{position:relative;border-bottom:1px solid #ddd;display:none;margin-top:8px;padding:4px 0;font-size:1em;color:#33363d}.algolia-autocomplete .algolia-docsearch-suggestion--wrapper{width:100%;float:left;padding:8px 0 0}.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column{float:left;width:30%;display:none;padding-left:0;text-align:right;position:relative;padding:5.33333px 10.66667px;color:#a4a7ae;font-size:.9em;word-wrap:break-word}.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column:before{content:"";position:absolute;display:block;top:0;height:100%;width:1px;background:#ddd;right:0}.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column .algolia-docsearch-suggestion--highlight{background-color:inherit;color:inherit}.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-inline{display:none}.algolia-autocomplete .algolia-docsearch-suggestion--title{margin-bottom:4px;color:#02060c;font-size:.9em;font-weight:700}.algolia-autocomplete .algolia-docsearch-suggestion--text{display:block;line-height:1.2em;font-size:.85em;color:#63676d}.algolia-autocomplete .algolia-docsearch-suggestion--no-results{width:100%;padding:8px 0;text-align:center;font-size:1.2em}.algolia-autocomplete .algolia-docsearch-suggestion--no-results:before{display:none}.algolia-autocomplete .algolia-docsearch-suggestion code{padding:1px 5px;font-size:90%;border:none;color:#222;background-color:#ebebeb;border-radius:3px;font-family:Menlo,Monaco,Consolas,Courier New,monospace}.algolia-autocomplete .algolia-docsearch-suggestion code .algolia-docsearch-suggestion--highlight{background:0 0}.algolia-autocomplete .algolia-docsearch-suggestion.algolia-docsearch-suggestion__main .algolia-docsearch-suggestion--category-header,.algolia-autocomplete .algolia-docsearch-suggestion.algolia-docsearch-suggestion__secondary .algolia-docsearch-suggestion--subcategory-column{display:block}.algolia-autocomplete .suggestion-layout-simple.algolia-docsearch-suggestion{border-bottom:1px solid #eee;padding:8px;margin:0}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--content{width:100%;padding:0}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--content:before{display:none}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--category-header{margin:0;padding:0;display:block;width:100%;border:none}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--category-header-lvl0,.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--category-header-lvl1{opacity:.6;font-size:.85em}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--category-header-lvl1:before{background-image:url(data:image/svg+xml;utf8;base64,PHN2ZyB3aWR0aD0iMTAiIGhlaWdodD0iMTAiIHZpZXdCb3g9IjAgMCAyMCAzOCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMS40OSA0LjMxbDE0IDE2LjEyNi4wMDItMi42MjQtMTQgMTYuMDc0LTEuMzE0IDEuNTEgMy4wMTcgMi42MjYgMS4zMTMtMS41MDggMTQtMTYuMDc1IDEuMTQyLTEuMzEzLTEuMTQtMS4zMTMtMTQtMTYuMTI1TDMuMi4xOC4xOCAyLjhsMS4zMSAxLjUxeiIgZmlsbC1ydWxlPSJldmVub2RkIiBmaWxsPSIjMWQzNjU3IiAvPjwvc3ZnPg==);content:"";width:10px;height:10px;display:inline-block}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--wrapper{width:100%;float:left;margin:0;padding:0}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--duplicate-content,.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--subcategory-column,.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--subcategory-inline{display:none!important}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--title{margin:0;color:#458ee1;font-size:.9em;font-weight:400}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--title:before{content:"#";font-weight:700;color:#458ee1;display:inline-block}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--text{margin:4px 0 0;display:block;line-height:1.4em;padding:5.33333px 8px;background:#f8f8f8;font-size:.85em;opacity:.8}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--text .algolia-docsearch-suggestion--highlight{color:#3f4145;font-weight:700;-webkit-box-shadow:none;box-shadow:none}.algolia-autocomplete .algolia-docsearch-footer{width:110px;height:20px;z-index:3;margin-top:10.66667px;float:right;font-size:0;line-height:0}.algolia-autocomplete .algolia-docsearch-footer--logo{background-image:url(data:image/svg+xml;utf8;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTMwIDE4IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxkZWZzPjxsaW5lYXJHcmFkaWVudCB4MT0iLTM2Ljg2OCUiIHkxPSIxMzQuOTM2JSIgeDI9IjEyOS40MzIlIiB5Mj0iLTI3LjclIiBpZD0iYSI+PHN0b3Agc3RvcC1jb2xvcj0iJTIzMDBhZWZmIiBvZmZzZXQ9IjAiLz48c3RvcCBzdG9wLWNvbG9yPSIlMjMzMzY5ZTciIG9mZnNldD0iMTAwJSIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PHBhdGggZD0iTTU5LjM5OS4wMjJoMTMuMjk5YTIuMzcyIDIuMzcyLjAgMCAxIDIuMzc3IDIuMzY0VjE1LjYyYTIuMzcyIDIuMzcyLjAgMCAxLTIuMzc3IDIuMzY0SDU5LjM5OWEyLjM3MiAyLjM3Mi4wIDAgMS0yLjM3Ny0yLjM2NFYyLjM4MUEyLjM2OCAyLjM2OC4wIDAgMSA1OS4zOTkuMDIyeiIgZmlsbD0idXJsKCUyM2EpIi8+PHBhdGggZD0iTTY2LjI1NyA0LjU2Yy0yLjgxNS4wLTUuMSAyLjI3Mi01LjEgNS4wNzguMCAyLjgwNiAyLjI4NCA1LjA3MiA1LjEgNS4wNzIgMi44MTUuMCA1LjEtMi4yNzIgNS4xLTUuMDc4LjAtMi44MDYtMi4yNzktNS4wNzItNS4xLTUuMDcyem0wIDguNjUyYy0xLjk4My4wLTMuNTkzLTEuNjAyLTMuNTkzLTMuNTc0LjAtMS45NzIgMS42MS0zLjU3NCAzLjU5My0zLjU3NCAxLjk4My4wIDMuNTkzIDEuNjAyIDMuNTkzIDMuNTc0YTMuNTgyIDMuNTgyLjAgMCAxLTMuNTkzIDMuNTc0em0wLTYuNDE4djIuNjY0YzAgLjA3Ni4wODIuMTMxLjE1My4wOTNsMi4zNzctMS4yMjZjLjA1NS0uMDI3LjA3MS0uMDkzLjA0NC0uMTQ3YTIuOTYgMi45Ni4wIDAgMC0yLjQ2NS0xLjQ4N2MtLjA1NS4wLS4xMS4wNDQtLjExLjEwNGwuMDAxLS4wMDF6bS0zLjMzLTEuOTU2LS4zMTItLjMxMWEuNzgzLjc4My4wIDAgMC0xLjEwNi4wbC0uMzcyLjM3YS43NzMuNzczLjAgMCAwIDAgMS4xMDFsLjMwNy4zMDVjLjA0OS4wNDkuMTIxLjAzOC4xNjQtLjAxMS4xODEtLjI0NS4zNzgtLjQ3OS41OTctLjY5Ny4yMjUtLjIyMy40NTUtLjQyLjcwNy0uNTk5LjA1NS0uMDMzLjA2LS4xMDkuMDE2LS4xNThoLS4wMDF6bTUuMDAxLS44MDZ2LS42MTZhLjc4MS43ODEuMCAwIDAtLjc4My0uNzc5aC0xLjgyNGEuNzguNzguMCAwIDAtLjc4My43Nzl2LjYzMmMwIC4wNzEuMDY2LjEyLjEzNy4xMDRhNS43MzYgNS43MzYuMCAwIDEgMS41ODgtLjIyM2MuNTIuMCAxLjAzNS4wNzEgMS41MzQuMjA3YS4xMDYuMTA2LjAgMCAwIC4xMzEtLjEwNHoiIGZpbGw9IiUyM2ZmZiIvPjxwYXRoIGQ9Ik0xMDIuMTYyIDEzLjc2MmMwIDEuNDU1LS4zNzIgMi41MTctMS4xMjMgMy4xOTMtLjc1LjY3Ni0xLjg5NSAxLjAxMy0zLjQ0IDEuMDEzLS41NjQuMC0xLjczNi0uMTA5LTIuNjczLS4zMTZsLjM0NS0xLjY4OWMuNzgzLjE2MyAxLjgxOS4yMDcgMi4zNjEuMjA3Ljg2LjAgMS40NzMtLjE3NCAxLjg0LS41MjMuMzY3LS4zNDkuNTQ4LS44NjYuNTQ4LTEuNTUzdi0uMzQ5YTYuMzc0IDYuMzc0LjAgMCAxLS44MzguMzE2IDQuMTUxIDQuMTUxLjAgMCAxLTEuMTk0LjE1OCA0LjUxNSA0LjUxNS4wIDAgMS0xLjYxNi0uMjc4IDMuMzg1IDMuMzg1LjAgMCAxLTEuMjU0LS44MTcgMy43NDQgMy43NDQuMCAwIDEtLjgxMS0xLjM1MWMtLjE5Mi0uNTM5LS4yOS0xLjUwNC0uMjktMi4yMTIuMC0uNjY1LjEwNC0xLjQ5OC4zMDctMi4wNTRhMy45MjUgMy45MjUuMCAwIDEgLjkwNC0xLjQzMyA0LjEyNCA0LjEyNC4wIDAgMSAxLjQ0MS0uOTI2IDUuMzEgNS4zMS4wIDAgMSAxLjk0NS0uMzY1Yy42OTYuMCAxLjMzNy4wODcgMS45NjEuMTkxYTE1Ljg2IDE1Ljg2LjAgMCAxIDEuNTg4LjMzMnY4LjQ1NmgtLjAwMXptLTUuOTU0LTQuMjA2YzAgLjg5My4xOTcgMS44ODUuNTkyIDIuMjk5LjM5NC40MTQuOTA0LjYyMSAxLjUyOC42MjEuMzQuMC42NjMtLjA0OS45NjQtLjE0MmEyLjc1IDIuNzUuMCAwIDAgLjczNC0uMzMydi01LjI5YTguNTMxIDguNTMxLjAgMCAwLTEuNDEzLS4xOGMtLjc3OC0uMDIyLTEuMzY5LjI5NC0xLjc4Ni44MDEtLjQxMS41MDctLjYxOSAxLjM5NS0uNjE5IDIuMjIzem0xNi4xMi4wYzAgLjcxOS0uMTA0IDEuMjY0LS4zMTggMS44NThhNC4zODkgNC4zODkuMCAwIDEtLjkwNCAxLjUyYy0uMzg5LjQyLS44NTQuNzQ2LTEuNDAyLjk3NS0uNTQ4LjIyOS0xLjM5MS4zNi0xLjgxMy4zNi0uNDIyLS4wMDUtMS4yNi0uMTI1LTEuODAyLS4zNmE0LjA4OCA0LjA4OC4wIDAgMS0xLjM5Ny0uOTc1IDQuNDg2IDQuNDg2LjAgMCAxLS45MDktMS41MiA1LjAzNyA1LjAzNy4wIDAgMS0uMzI5LTEuODU4YzAtLjcxOS4wOTktMS40MTEuMzE4LTEuOTk5LjIxOS0uNTg4LjUyNi0xLjA5LjkyLTEuNTA5LjM5NC0uNDIuODY1LS43NDEgMS40MDItLjk3YTQuNTQ3IDQuNTQ3LjAgMCAxIDEuNzg2LS4zMzggNC42OSA0LjY5LjAgMCAxIDEuNzkxLjMzOGMuNTQ4LjIyOSAxLjAxOS41NSAxLjQwMi45Ny4zODkuNDIuNjkuOTIxLjkwOSAxLjUwOS4yMy41ODguMzQ1IDEuMjguMzQ1IDEuOTk5aC4wMDF6bS0yLjE5MS4wMDVjMC0uOTIxLS4yMDMtMS42ODktLjU5Ny0yLjIyMy0uMzk0LS41MzktLjk0OC0uODA2LTEuNjU0LS44MDYtLjcwNy4wLTEuMjYuMjY3LTEuNjU0LjgwNi0uMzk0LjUzOS0uNTg2IDEuMzAyLS41ODYgMi4yMjMuMC45MzIuMTk3IDEuNTU4LjU5MiAyLjA5OC4zOTQuNTQ1Ljk0OC44MTIgMS42NTQuODEyLjcwNy4wIDEuMjYtLjI3MiAxLjY1NC0uODEyLjM5NC0uNTQ1LjU5Mi0xLjE2Ni41OTItMi4wOThoLS4wMDF6bTYuOTYyIDQuNzA3Yy0zLjUxMS4wMTYtMy41MTEtMi44MjItMy41MTEtMy4yNzRMMTEzLjU4My45MjZsMi4xNDItLjMzOHYxMC4wMDNjMCAuMjU2LjAgMS44OCAxLjM3NSAxLjg4NXYxLjc5MmgtLjAwMXptMy43NzQuMGgtMi4xNTNWNS4wNzJsMi4xNTMtLjMzOHY5LjUzNHptLTEuMDc5LTEwLjU0MmMuNzE4LjAgMS4zMDQtLjU3OCAxLjMwNC0xLjI5MS4wLS43MTQtLjU4MS0xLjI5MS0xLjMwNC0xLjI5MS0uNzIzLjAtMS4zMDQuNTc4LTEuMzA0IDEuMjkxLjAuNzE0LjU4NiAxLjI5MSAxLjMwNCAxLjI5MXptNi40MzEgMS4wMTNjLjcwNy4wIDEuMzA0LjA4NyAxLjc4Ni4yNjIuNDgyLjE3NC44NzEuNDIgMS4xNTYuNzMuMjg1LjMxMS40ODguNzM1LjYwOCAxLjE4Mi4xMjYuNDQ3LjE4Ni45MzcuMTg2IDEuNDc2djUuNDgxYTI1LjI0IDI1LjI0LjAgMCAxLTEuNDk1LjI1MWMtLjY2OC4wOTgtMS40MTkuMTQ3LTIuMjUxLjE0N2E2LjgyOSA2LjgyOS4wIDAgMS0xLjUxNy0uMTU4IDMuMjEzIDMuMjEzLjAgMCAxLTEuMTc4LS41MDcgMi40NTUgMi40NTUuMCAwIDEtLjc2MS0uOTA0Yy0uMTgxLS4zNy0uMjc0LS44OTMtLjI3NC0xLjQzOC4wLS41MjMuMTA0LS44NTUuMzA3LTEuMjE1LjIwOC0uMzYuNDg3LS42NTQuODM4LS44ODNhMy42MDkgMy42MDkuMCAwIDEgMS4yMjctLjQ5IDcuMDczIDcuMDczLjAgMCAxIDIuMjAyLS4xMDNjLjI2My4wMjcuNTM3LjA3Ni44MzMuMTQ3di0uMzQ5YzAtLjI0NS0uMDI3LS40NzktLjA4OC0uNjk3YTEuNDg2IDEuNDg2LjAgMCAwLS4zMDctLjU4M2MtLjE0OC0uMTY5LS4zNC0uMy0uNTgxLS4zOTJhMi41MzYgMi41MzYuMCAwIDAtLjkxNS0uMTYzYy0uNDkzLjAtLjk0Mi4wNi0xLjM1My4xMzEtLjQxMS4wNzEtLjc1LjE1My0xLjAwOC4yNDVsLS4yNTctMS43NDljLjI2OC0uMDkzLjY2OC0uMTg1IDEuMTgzLS4yNzhhOS4zMzUgOS4zMzUuMCAwIDEgMS42Ni0uMTQybC0uMDAxLS4wMDF6bS4xODEgNy43MzFjLjY1Ny4wIDEuMTQ1LS4wMzggMS40ODQtLjEwNHYtMi4xNjhhNS4wOTcgNS4wOTcuMCAwIDAtMS45NzgtLjEwNGMtLjI0MS4wMzMtLjQ2LjA5OC0uNjUyLjE5MWExLjE2NyAxLjE2Ny4wIDAgMC0uNDY2LjM5MmMtLjEyMS4xNjktLjE3NS4yNjctLjE3NS41MjMuMC41MDEuMTc1Ljc5LjQ5My45ODEuMzIzLjE5Ni43NS4yODkgMS4yOTMuMjg5aC4wMDF6TTg0LjEwOSA0Ljc5NGMuNzA3LjAgMS4zMDQuMDg3IDEuNzg2LjI2Mi40ODIuMTc0Ljg3MS40MiAxLjE1Ni43My4yOS4zMTYuNDg3LjczNS42MDggMS4xODIuMTI2LjQ0Ny4xODYuOTM3LjE4NiAxLjQ3NnY1LjQ4MWEyNS4yNCAyNS4yNC4wIDAgMS0xLjQ5NS4yNTFjLS42NjguMDk4LTEuNDE5LjE0Ny0yLjI1MS4xNDdhNi44MjkgNi44MjkuMCAwIDEtMS41MTctLjE1OCAzLjIxMyAzLjIxMy4wIDAgMS0xLjE3OC0uNTA3IDIuNDU1IDIuNDU1LjAgMCAxLS43NjEtLjkwNGMtLjE4MS0uMzctLjI3NC0uODkzLS4yNzQtMS40MzguMC0uNTIzLjEwNC0uODU1LjMwNy0xLjIxNS4yMDgtLjM2LjQ4Ny0uNjU0LjgzOC0uODgzYTMuNjA5IDMuNjA5LjAgMCAxIDEuMjI3LS40OSA3LjA3MyA3LjA3My4wIDAgMSAyLjIwMi0uMTAzYy4yNTcuMDI3LjUzNy4wNzYuODMzLjE0N3YtLjM0OWMwLS4yNDUtLjAyNy0uNDc5LS4wODgtLjY5N2ExLjQ4NiAxLjQ4Ni4wIDAgMC0uMzA3LS41ODNjLS4xNDgtLjE2OS0uMzQtLjMtLjU4MS0uMzkyYTIuNTM2IDIuNTM2LjAgMCAwLS45MTUtLjE2M2MtLjQ5My4wLS45NDIuMDYtMS4zNTMuMTMxLS40MTEuMDcxLS43NS4xNTMtMS4wMDguMjQ1bC0uMjU3LTEuNzQ5Yy4yNjgtLjA5My42NjgtLjE4NSAxLjE4My0uMjc4YTguODkgOC44OS4wIDAgMSAxLjY2LS4xNDJsLS4wMDEtLjAwMXptLjE4NiA3LjczNmMuNjU3LjAgMS4xNDUtLjAzOCAxLjQ4NC0uMTA0di0yLjE2OGE1LjA5NyA1LjA5Ny4wIDAgMC0xLjk3OC0uMTA0Yy0uMjQxLjAzMy0uNDYuMDk4LS42NTIuMTkxYTEuMTY3IDEuMTY3LjAgMCAwLS40NjYuMzkyYy0uMTIxLjE2OS0uMTc1LjI2Ny0uMTc1LjUyMy4wLjUwMS4xNzUuNzkuNDkzLjk4MS4zMTguMTkxLjc1LjI4OSAxLjI5My4yODloLjAwMXptOC42ODIgMS43MzhjLTMuNTExLjAxNi0zLjUxMS0yLjgyMi0zLjUxMS0zLjI3NEw4OS40NjEuOTI2bDIuMTQyLS4zMzh2MTAuMDAzYzAgLjI1Ni4wIDEuODggMS4zNzUgMS44ODV2MS43OTJoLS4wMDF6IiBmaWxsPSIlMjMxODIzNTkiLz48cGF0aCBkPSJNNS4wMjcgMTEuMDI1YzAgLjY5OC0uMjUyIDEuMjQ2LS43NTcgMS42NDQtLjUwNS4zOTctMS4yMDEuNTk2LTIuMDg5LjU5Ni0uODg4LjAtMS42MTUtLjEzOC0yLjE4MS0uNDE0di0xLjIxNGMuMzU4LjE2OC43MzkuMzAxIDEuMTQxLjM5Ny40MDMuMDk3Ljc3OC4xNDUgMS4xMjUuMTQ1LjUwOC4wLjg4NC0uMDk3IDEuMTI1LS4yOWEuOTQ1Ljk0NS4wIDAgMCAuMzYzLS43NzkuOTc4Ljk3OC4wIDAgMC0uMzMzLS43NDdjLS4yMjItLjIwNC0uNjgtLjQ0Ni0xLjM3NS0uNzI1LS43MTYtLjI5LTEuMjIxLS42MjEtMS41MTUtLjk5NC0uMjk0LS4zNzItLjQ0LS44Mi0uNDQtMS4zNDMuMC0uNjU1LjIzMy0xLjE3MS42OTgtMS41NDcuNDY2LS4zNzYgMS4wOS0uNTY0IDEuODc1LS41NjQuNzUyLjAgMS41LjE2NSAyLjI0NS40OTRsLS40MDggMS4wNDdjLS42OTgtLjI5NC0xLjMyMS0uNDQtMS44NjktLjQ0LS40MTUuMC0uNzMuMDktLjk0NS4yNzFhLjg5Ljg5LjAgMCAwLS4zMjIuNzE3YzAgLjIwNC4wNDMuMzc5LjEyOS41MjQuMDg2LjE0NS4yMjcuMjgyLjQyNC40MTEuMTk3LjEyOS41NTEuMjk5IDEuMDYzLjUxLjU3Ny4yNC45OTkuNDY0IDEuMjY4LjY3MS4yNjkuMjA4LjQ2Ni40NDIuNTkxLjcwNC4xMjUuMjYxLjE4OC41NjkuMTg4LjkyNGwtLjAwMS4wMDJ6bTMuOTggMi4yNGMtLjkyNC4wLTEuNjQ2LS4yNjktMi4xNjctLjgwOC0uNTIxLS41MzktLjc4Mi0xLjI4MS0uNzgyLTIuMjI2LjAtLjk3LjI0Mi0xLjczMy43MjUtMi4yODguNDgzLS41NTUgMS4xNDgtLjgzMyAxLjk5My0uODMzLjc4NC4wIDEuNDA0LjIzOCAxLjg1OC43MTQuNDU1LjQ3Ni42ODIgMS4xMzIuNjgyIDEuOTY2di42ODJINy4zNTdjLjAxOC41NzcuMTc0IDEuMDIuNDY3IDEuMzI5LjI5NC4zMS43MDcuNDY1IDEuMjQxLjQ2NS4zNTEuMC42NzgtLjAzMy45OC0uMDk5YTUuMSA1LjEuMCAwIDAgLjk3NS0uMzN2MS4wMjZhMy44NjUgMy44NjUuMCAwIDEtLjkzNS4zMTIgNS43MjMgNS43MjMuMCAwIDEtMS4wOC4wOTFsLjAwMi0uMDAxem0tLjIzMS01LjE5OWMtLjQwMS4wLS43MjIuMTI3LS45NjQuMzgxcy0uMzg2LjYyNS0uNDMyIDEuMTEyaDIuNjk2Yy0uMDA3LS40OTEtLjEyNS0uODYyLS4zNTQtMS4xMTUtLjIyOS0uMjUyLS41NDQtLjM3OS0uOTQ1LS4zNzlsLS4wMDEuMDAxem03LjY5MiA1LjA5Mi0uMjUyLS44MjdoLS4wNDNjLS4yODYuMzYyLS41NzUuNjA4LS44NjUuNzM5LS4yOS4xMzEtLjY2Mi4xOTYtMS4xMTcuMTk2LS41ODQuMC0xLjAzOS0uMTU4LTEuMzY3LS40NzMtLjMyOC0uMzE1LS40OTEtLjc2MS0uNDkxLTEuMzM3LjAtLjYxMi4yMjctMS4wNzQuNjgyLTEuMzg2LjQ1NS0uMzEyIDEuMTQ4LS40ODIgMi4wNzktLjUxbDEuMDI2LS4wMzJ2LS4zMTdjMC0uMzgtLjA4OS0uNjYzLS4yNjYtLjg1MS0uMTc3LS4xODgtLjQ1Mi0uMjgyLS44MjQtLjI4Mi0uMzA0LjAtLjU5Ni4wNDUtLjg3Ni4xMzRhNi42OCA2LjY4LjAgMCAwLS44MDYuMzE3bC0uNDA4LS45MDJhNC40MTQgNC40MTQuMCAwIDEgMS4wNTgtLjM4NCA0Ljg1NiA0Ljg1Ni4wIDAgMSAxLjA4NS0uMTMyYy43NTYuMCAxLjMyNi4xNjUgMS43MTEuNDk0LjM4NS4zMjkuNTc3Ljg0Ny41NzcgMS41NTJ2NC4wMDJoLS45MDJsLS4wMDEtLjAwMXptLTEuODgtLjg1OWMuNDU4LjAuODI2LS4xMjggMS4xMDQtLjM4NC4yNzgtLjI1Ni40MTYtLjYxNS40MTYtMS4wNzd2LS41MTZsLS43NjMuMDMyYy0uNTk0LjAyMS0xLjAyNy4xMjEtMS4yOTcuMjk4cy0uNDA2LjQ0OC0uNDA2LjgxNGMwIC4yNjUuMDc5LjQ3LjIzNi42MTUuMTU4LjE0NS4zOTQuMjE4LjcwOS4yMThoLjAwMXptNy41NTctNS4xODljLjI1NC4wLjQ2NC4wMTguNjI4LjA1NGwtLjEyNCAxLjE3NmEyLjM4MyAyLjM4My4wIDAgMC0uNTU5LS4wNjRjLS41MDUuMC0uOTE0LjE2NS0xLjIyNy40OTQtLjMxMy4zMjktLjQ3Ljc1Ny0uNDcgMS4yODR2My4xMDVoLTEuMjYyVjcuMjE4aC45ODhsLjE2NyAxLjA0N2guMDY0Yy4xOTctLjM1NC40NTQtLjYzNi43NzEtLjg0M2ExLjgzIDEuODMuMCAwIDEgMS4wMjMtLjMxMmguMDAxem00LjEyNSA2LjE1NWMtLjg5OS4wLTEuNTgyLS4yNjItMi4wNDktLjc4Ny0uNDY3LS41MjUtLjcwMS0xLjI3Ny0uNzAxLTIuMjU5LjAtLjk5OS4yNDQtMS43NjcuNzMzLTIuMzA0LjQ4OS0uNTM3IDEuMTk1LS44MDYgMi4xMTktLjgwNi42MjcuMCAxLjE5MS4xMTYgMS42OTIuMzQ5bC0uMzgxIDEuMDE1Yy0uNTM0LS4yMDgtLjk3NC0uMzEyLTEuMzIxLS4zMTItMS4wMjguMC0xLjU0Mi42ODItMS41NDIgMi4wNDYuMC42NjYuMTI4IDEuMTY2LjM4NCAxLjUwMS4yNTYuMzM1LjYzMS41MDIgMS4xMjUuNTAyYTMuMjMgMy4yMy4wIDAgMCAxLjU5NS0uNDE5djEuMTAxYTIuNTMgMi41My4wIDAgMS0uNzIyLjI4NSA0LjM1NiA0LjM1Ni4wIDAgMS0uOTMyLjA4NnYuMDAyem04LjI3Ny0uMTA3aC0xLjI2OFY5LjUwNmMwLS40NTgtLjA5Mi0uOC0uMjc3LTEuMDI2LS4xODQtLjIyNi0uNDc3LS4zMzgtLjg3OC0uMzM4LS41My4wLS45MTkuMTU4LTEuMTY4LjQ3NS0uMjQ5LjMxNy0uMzczLjg0OC0uMzczIDEuNTkzdjIuOTQ5aC0xLjI2MlY0LjgwMWgxLjI2MnYyLjEyMmMwIC4zNC0uMDIxLjcwNC0uMDY0IDEuMDloLjA4MWExLjc2IDEuNzYuMCAwIDEgLjcxNy0uNjY2Yy4zMDYtLjE1OC42NjMtLjIzNiAxLjA3Mi0uMjM2IDEuNDM5LjAgMi4xNTkuNzI1IDIuMTU5IDIuMTc1djMuODczbC0uMDAxLS4wMDF6bTcuNjQ5LTYuMDQ4Yy43NDEuMCAxLjMxOS4yNjkgMS43MzIuODA2LjQxNC41MzcuNjIgMS4yOTEuNjIgMi4yNjEuMC45NzQtLjIwOSAxLjczMi0uNjI4IDIuMjc1LS40MTkuNTQyLTEuMDAxLjgxNC0xLjc0Ni44MTQtLjc1Mi4wLTEuMzM2LS4yNy0xLjc1MS0uODExaC0uMDg2bC0uMjMxLjcwNGgtLjk0NVY0LjgwMWgxLjI2MnYxLjk4N2wtLjAyMS42NTUtLjAzMi41NTNoLjA1NGMuNDAxLS41OTEuOTkyLS44ODYgMS43NzItLjg4NnptLS4zMjggMS4wMzFjLS41MDguMC0uODc1LjE0OS0xLjA5OC40NDgtLjIyNC4yOTktLjMzOS43OTktLjM0NiAxLjUwMXYuMDg2YzAgLjcyMy4xMTUgMS4yNDcuMzQ0IDEuNTcxLjIyOS4zMjQuNjAzLjQ4NiAxLjEyMy40ODYuNDQ4LjAuNzg3LS4xNzcgMS4wMTgtLjUzMi4yMzEtLjM1NC4zNDYtLjg2Ny4zNDYtMS41MzYuMC0xLjM1LS40NjItMi4wMjUtMS4zODYtMi4wMjVsLS4wMDEuMDAxem0zLjI0NC0uOTI0aDEuMzc1bDEuMjA5IDMuMzY4Yy4xODMuNDguMzA0LjkzMS4zNjUgMS4zNTRoLjA0M2MuMDMyLS4xOTcuMDkxLS40MzYuMTc3LS43MTcuMDg2LS4yODEuNTQxLTEuNjE2IDEuMzY0LTQuMDA0aDEuMzY0bC0yLjU0MSA2LjczYy0uNDYyIDEuMjM1LTEuMjMyIDEuODUzLTIuMzEgMS44NTMtLjI3OS4wLS41NTEtLjAzLS44MTYtLjA5MXYtLjk5OWMuMTkuMDQzLjQwNi4wNjQuNjUuMDY0LjYwOS4wIDEuMDM3LS4zNTMgMS4yODQtMS4wNThsLjIyLS41NTktMi4zODUtNS45NDFoLjAwMXoiIGZpbGw9IiUyMzFkMzY1NyIvPjwvZz48L3N2Zz4=);background-repeat:no-repeat;background-position:50%;background-size:100%;overflow:hidden;text-indent:-9e3px;padding:0!important;width:100%;height:100%;display:block}.overflow-x-scroll{-webkit-overflow-scrolling:touch}.row{-webkit-transition:450ms -webkit-transform;transition:450ms -webkit-transform;transition:450ms transform;transition:450ms transform,450ms -webkit-transform;font-size:0}.tile{-webkit-transition:450ms all;transition:450ms all}.details{background:-webkit-gradient(linear,left bottom,left top,from(rgba(0,0,0,.9)),to(rgba(0,0,0,0)));background:linear-gradient(to top,rgba(0,0,0,.9) 0%,rgba(0,0,0,0) 100%);-webkit-transition:450ms opacity;transition:450ms opacity}.tile:hover .details{opacity:1}.row:hover .tile{opacity:.3}.row:hover .tile:hover{opacity:1}.chroma .lntable pre{padding:0;margin:0;border:0}.chroma .lntable pre code{padding:0;margin:0}pre,.pre{overflow-x:auto;overflow-y:hidden;overflow:scroll}code{padding:.2em;margin:0;font-size:85%;background-color:#1b1f230d;border-radius:3px}pre code{display:block;padding:1.5em;font-size:.875rem;line-height:2;overflow-x:auto}pre{background-color:#fff;color:#333;white-space:pre;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none;position:relative;border-width:1px;border-color:#ccc;border-style:solid}.highlight pre{background-color:inherit;color:inherit;padding:.5em;font-size:.875rem}.copy:after{content:"Copy"}.copied:after{content:"Copied"}@media screen and (min-width:60em){.full-width,pre.expand:hover{margin-right:-30vw;max-width:100vw}}.code-block .line-numbers-rows{background:#2f3a46;border:none;bottom:-50px;color:#98a4b3;left:-178px;padding:50px 0;top:-50px;width:138px}.code-block .line-numbers-rows>span:before{color:inherit;padding-right:30px}.tab-button{margin-bottom:1px;position:relative;z-index:1;color:#333;border-color:#ccc;outline:none;background-color:#fff}.tab-pane code{background:#f1f2f2;border-radius:0}.tab-pane .chroma{background:0 0;padding:0}.tab-button.active{border-bottom-color:#f1f2f2;background-color:#f1f2f2}.tab-content .tab-pane{display:none}.tab-content .tab-pane.active{display:block}.tab-content .copy,.tab-content .copied{display:none}.tab-content .tab-pane.active+.copy,.tab-content .tab-pane.active+.copied{display:block}.primary-color{color:#0594cb}.bg-primary-color{background-color:#0594cb}.hover-bg-primary-color:hover{background-color:#0594cb}.primary-color-dark{color:#0a1922}.bg-primary-color-dark{background-color:#0a1922}.hover-bg-primary-color-dark:hover{background-color:#0a1922}.primary-color-light{color:#f9f9f9}.bg-primary-color-light{background-color:#f9f9f9}.hover-bg-primary-color-light:hover{background-color:#f9f9f9}.accent-color{color:#ebb951}.bg-accent-color{background-color:#ebb951}.hover-bg-accent-color:hover{background-color:#ebb951}.accent-color-light{color:#ff4088}.hover-accent-color-light:hover{color:#ff4088}.bg-accent-color-light{background-color:#ff4088}.hover-bg-accent-color-light:hover{background-color:#ff4088}.accent-color-dark{color:#33ba91}.bg-accent-color-dark{background-color:#33ba91}.hover-bg-accent-color-dark:hover{background-color:#33ba91}.text-color-primary{color:#373737}.text-on-primary-color{color:#fff}.text-color-secondary{color:#ccc}.text-color-disabled{color:#f7f7f7}.divider-color{color:#f6f6f6}.warn-color{color:red}.nested-links a{color:#0594cb;text-decoration:none}.column-count-2{-webkit-column-count:1;column-count:1}.column-gap-1{-webkit-column-gap:0;column-gap:0}.break-inside-avoid{-webkit-column-break-inside:auto;break-inside:auto}@media screen and (min-width:60em){.column-count-3-l{-webkit-column-count:3;column-count:3}.column-count-2-l{-webkit-column-count:2;column-count:2}.column-gap-1-l{-webkit-column-gap:1;column-gap:1}.break-inside-avoid-l{-webkit-column-break-inside:avoid;break-inside:avoid}}.prose ul,.prose ol{margin-bottom:2em}.prose ul li,.prose ol li{margin-bottom:.5em}.prose li:hover{background-color:#eee}.prose ::selection{background:#0594cb;color:#fff}body{line-height:1.45}p{margin-bottom:1.3em}h1,h2,h3,h4{margin:1.414em 0 .5em;line-height:1.2}h1{margin-top:0;font-size:2.441em}h2{font-size:1.953em}h3{font-size:1.563em}h4{font-size:1.25em}small,.font_small{font-size:.8em}.prose table{width:100%;margin-bottom:3em;border-collapse:collapse;border-spacing:0;font-size:1em;border:1px solid #eee}.prose table th{background-color:#0594cb;border-bottom:1px solid #0594cb;color:#fff;font-weight:400;text-align:left;padding:.375em .5em}.prose table td,.prose table tc{padding:.75em .5em;text-align:left;border-right:1px solid #eee}.prose table tr:nth-child(even){background-color:#eee}dl dt{font-weight:700;font-size:1.125rem}dd{margin:.5em 0 2em;padding:0}.f2-fluid{font-size:2.25rem}@media screen and (min-width:60em){.f2-fluid{font-size:1.25rem;font-size:calc(0.70833rem + 0.83333vw)}}code,.code,pre code,.highlight pre{font-family:inconsolata,Menlo,Monaco,courier new,monospace}.sans-serif{font-family:muli,avenir,helvetica neue,helvetica,ubuntu,roboto,noto,segoe ui,arial,sans-serif}.serif{font-family:Palatino,palatino linotype,palatino lt std,book antiqua,Georgia,serif}.courier{font-family:courier next,courier,monospace}.helvetica{font-family:helvetica neue,helvetica,sans-serif}.avenir{font-family:avenir next,avenir,sans-serif}.athelas{font-family:athelas,georgia,serif}.georgia{font-family:georgia,serif}.times{font-family:times,serif}.bodoni{font-family:bodoni mt,serif}.calisto{font-family:calisto mt,serif}.garamond{font-family:garamond,serif}.baskerville{font-family:baskerville,serif}.pagination{margin:3rem 0}.pagination li{display:inline-block;margin-right:.375rem;font-size:.875rem;margin-bottom:2.5em}.pagination li a{padding:.5rem .625rem;background-color:#fff;color:#333;border:1px solid #ddd;border-radius:3px;text-decoration:none}.pagination li.disabled{display:none}.pagination li.active a:link,.pagination li.active a:active,.pagination li.active a:visited{background-color:#ddd}#TableOfContents ul li ul li ul li{display:none}#TableOfContents ul li{color:#000;display:block;margin-bottom:.375em;line-height:1.375}#TableOfContents ul li a{width:100%;padding:.25em .375em;margin-left:-.375em}#TableOfContents ul li a:hover{background-color:#999;color:#fff}.no-js .needs-js{opacity:0}.js .needs-js{opacity:1;-webkit-transition:opacity .15s ease-in;transition:opacity .15s ease-in}.facebook,.twitter,.instagram,.youtube{fill:#bababa}.facebook:hover{fill:#3b5998}.twitter{fill:#55acee}.twitter:hover{fill:#bababa}.instagram:hover{fill:#e95950}.youtube:hover{fill:#b00}@media(min-width:75em){[data-scrolldir=down] .sticky{position:fixed;top:100px;right:0}[data-scrolldir=up] .sticky{position:fixed;top:100px;right:0}}.fill-current{fill:currentColor}.chroma{background-color:#fff}.chroma .err{color:#a61717;background-color:#e3d2d2}.chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}.chroma .lntable{border-spacing:0;padding:0;margin:0;border:0;width:auto;overflow:auto;display:block}.chroma .hl{display:block;width:100%;background-color:#ffc}.chroma .lnt{margin-right:.4em;padding:0 .4em}.chroma .ln{margin-right:.4em;padding:0 .4em}.chroma .k{font-weight:700}.chroma .kc{font-weight:700}.chroma .kd{font-weight:700}.chroma .kn{font-weight:700}.chroma .kp{font-weight:700}.chroma .kr{font-weight:700}.chroma .kt{color:#458;font-weight:700}.chroma .na{color:teal}.chroma .nb{color:#999}.chroma .nc{color:#458;font-weight:700}.chroma .no{color:teal}.chroma .ni{color:purple}.chroma .ne{color:#900;font-weight:700}.chroma .nf{color:#900;font-weight:700}.chroma .nn{color:#555}.chroma .nt{color:navy}.chroma .nv{color:teal}.chroma .s{color:#b84}.chroma .sa{color:#b84}.chroma .sb{color:#b84}.chroma .sc{color:#b84}.chroma .dl{color:#b84}.chroma .sd{color:#b84}.chroma .s2{color:#b84}.chroma .se{color:#b84}.chroma .sh{color:#b84}.chroma .si{color:#b84}.chroma .sx{color:#b84}.chroma .sr{color:olive}.chroma .s1{color:#b84}.chroma .ss{color:#b84}.chroma .m{color:#099}.chroma .mb{color:#099}.chroma .mf{color:#099}.chroma .mh{color:#099}.chroma .mi{color:#099}.chroma .il{color:#099}.chroma .mo{color:#099}.chroma .o{font-weight:700}.chroma .ow{font-weight:700}.chroma .c{color:#998;font-style:italic}.chroma .ch{color:#998;font-style:italic}.chroma .cm{color:#998;font-style:italic}.chroma .c1{color:#998;font-style:italic}.chroma .cs{color:#999;font-weight:700;font-style:italic}.chroma .cp{color:#999;font-weight:700}.chroma .cpf{color:#999;font-weight:700}.chroma .gd{color:#000;background-color:#fdd}.chroma .ge{font-style:italic}.chroma .gr{color:#a00}.chroma .gh{color:#999}.chroma .gi{color:#000;background-color:#dfd}.chroma .go{color:#888}.chroma .gp{color:#555}.chroma .gs{font-weight:700}.chroma .gu{color:#aaa}.chroma .gt{color:#a00}.chroma .w{color:#bbb}.nested-blockquote blockquote{border-left:4px solid #0594cb;padding-left:1em}.mw-90{max-width:90%}
+\ No newline at end of file
(DIR) diff --git a/docs/resources/_gen/assets/css/output/css/app.css_d11fe7b62c27961c87ecd0f2490357b9.json b/docs/resources/_gen/assets/css/output/css/app.css_d11fe7b62c27961c87ecd0f2490357b9.json
@@ -0,0 +1 @@
+{"Target":"output/css/app.min.3d04cd530b6fbca129e24fb79af6692fa64cad11185196c7a800e58b4b3e2f97.css","MediaType":"text/css","Data":{"Integrity":"sha256-PQTNUwtvvKEp4k+3mvZpL6ZMrREYUZbHqADli0s+L5c="}}
+\ No newline at end of file
(DIR) diff --git a/docs/resources/_gen/assets/js/output/js/app.js_8848f55d07695b7ff7188138f23d69e3.content b/docs/resources/_gen/assets/js/output/js/app.js_8848f55d07695b7ff7188138f23d69e3.content
@@ -0,0 +1,18 @@
+!function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(r,i,function(t){return e[t]}.bind(null,i));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=1)}([function(e,t,n){!function(t,n){var r=function(e,t){"use strict";if(!t.getElementsByClassName)return;var n,r,i=t.documentElement,s=e.Date,o=e.HTMLPictureElement,a=e.addEventListener,c=e.setTimeout,u=e.requestAnimationFrame||c,l=e.requestIdleCallback,h=/^picture$/i,d=["load","error","lazyincluded","_lazyloaded"],f={},p=Array.prototype.forEach,g=function(e,t){return f[t]||(f[t]=new RegExp("(\\s|^)"+t+"(\\s|$)")),f[t].test(e.getAttribute("class")||"")&&f[t]},m=function(e,t){g(e,t)||e.setAttribute("class",(e.getAttribute("class")||"").trim()+" "+t)},v=function(e,t){var n;(n=g(e,t))&&e.setAttribute("class",(e.getAttribute("class")||"").replace(n," "))},y=function(e,t,n){var r=n?"addEventListener":"removeEventListener";n&&y(e,t),d.forEach(function(n){e[r](n,t)})},b=function(e,r,i,s,o){var a=t.createEvent("Event");return i||(i={}),i.instance=n,a.initEvent(r,!s,!o),a.detail=i,e.dispatchEvent(a),a},w=function(t,n){var i;!o&&(i=e.picturefill||r.pf)?(n&&n.src&&!t.getAttribute("srcset")&&t.setAttribute("srcset",n.src),i({reevaluate:!0,elements:[t]})):n&&n.src&&(t.src=n.src)},_=function(e,t){return(getComputedStyle(e,null)||{})[t]},E=function(e,t,n){for(n=n||e.offsetWidth;n<r.minSize&&t&&!e._lazysizesWidth;)n=t.offsetWidth,t=t.parentNode;return n},x=function(){var e,n,r=[],i=[],s=r,o=function(){var t=s;for(s=r.length?i:r,e=!0,n=!1;t.length;)t.shift()();e=!1},a=function(r,i){e&&!i?r.apply(this,arguments):(s.push(r),n||(n=!0,(t.hidden?c:u)(o)))};return a._lsFlush=o,a}(),S=function(e,t){return t?function(){x(e)}:function(){var t=this,n=arguments;x(function(){e.apply(t,n)})}},C=function(e){var t,n,r=function(){t=null,e()},i=function(){var e=s.now()-n;e<99?c(i,99-e):(l||r)(r)};return function(){n=s.now(),t||(t=c(i,99))}};!function(){var t,n={lazyClass:"lazyload",loadedClass:"lazyloaded",loadingClass:"lazyloading",preloadClass:"lazypreload",errorClass:"lazyerror",autosizesClass:"lazyautosizes",srcAttr:"data-src",srcsetAttr:"data-srcset",sizesAttr:"data-sizes",minSize:40,customMedia:{},init:!0,expFactor:1.5,hFac:.8,loadMode:2,loadHidden:!0,ricTimeout:0,throttleDelay:125};for(t in r=e.lazySizesConfig||e.lazysizesConfig||{},n)t in r||(r[t]=n[t]);e.lazySizesConfig=r,c(function(){r.init&&O()})}();var A=function(){var o,u,d,f,E,A,O,T,k,R,M,L,I,D,P=/^img$/i,j=/^iframe$/i,$="onscroll"in e&&!/(gle|ing)bot/.test(navigator.userAgent),H=0,B=0,q=-1,z=function(e){B--,e&&e.target&&y(e.target,z),(!e||B<0||!e.target)&&(B=0)},F=function(e,n){var r,s=e,o="hidden"==_(t.body,"visibility")||"hidden"!=_(e.parentNode,"visibility")&&"hidden"!=_(e,"visibility");for(T-=n,M+=n,k-=n,R+=n;o&&(s=s.offsetParent)&&s!=t.body&&s!=i;)(o=(_(s,"opacity")||1)>0)&&"visible"!=_(s,"overflow")&&(r=s.getBoundingClientRect(),o=R>r.left&&k<r.right&&M>r.top-1&&T<r.bottom+1);return o},U=function(){var e,s,a,c,l,h,d,p,g,m=n.elements;if((f=r.loadMode)&&B<8&&(e=m.length)){s=0,q++,null==I&&("expand"in r||(r.expand=i.clientHeight>500&&i.clientWidth>500?500:370),L=r.expand,I=L*r.expFactor),H<I&&B<1&&q>2&&f>2&&!t.hidden?(H=I,q=0):H=f>1&&q>1&&B<6?L:0;for(;s<e;s++)if(m[s]&&!m[s]._lazyRace)if($)if((p=m[s].getAttribute("data-expand"))&&(h=1*p)||(h=H),g!==h&&(A=innerWidth+h*D,O=innerHeight+h,d=-1*h,g=h),a=m[s].getBoundingClientRect(),(M=a.bottom)>=d&&(T=a.top)<=O&&(R=a.right)>=d*D&&(k=a.left)<=A&&(M||R||k||T)&&(r.loadHidden||"hidden"!=_(m[s],"visibility"))&&(u&&B<3&&!p&&(f<3||q<4)||F(m[s],h))){if(X(m[s]),l=!0,B>9)break}else!l&&u&&!c&&B<4&&q<4&&f>2&&(o[0]||r.preloadAfterLoad)&&(o[0]||!p&&(M||R||k||T||"auto"!=m[s].getAttribute(r.sizesAttr)))&&(c=o[0]||m[s]);else X(m[s]);c&&!l&&X(c)}},K=function(e){var t,n=0,i=r.throttleDelay,o=r.ricTimeout,a=function(){t=!1,n=s.now(),e()},u=l&&o>49?function(){l(a,{timeout:o}),o!==r.ricTimeout&&(o=r.ricTimeout)}:S(function(){c(a)},!0);return function(e){var r;(e=!0===e)&&(o=33),t||(t=!0,(r=i-(s.now()-n))<0&&(r=0),e||r<9?u():c(u,r))}}(U),V=function(e){m(e.target,r.loadedClass),v(e.target,r.loadingClass),y(e.target,W),b(e.target,"lazyloaded")},J=S(V),W=function(e){J({target:e.target})},G=function(e){var t,n=e.getAttribute(r.srcsetAttr);(t=r.customMedia[e.getAttribute("data-media")||e.getAttribute("media")])&&e.setAttribute("media",t),n&&e.setAttribute("srcset",n)},Q=S(function(e,t,n,i,s){var o,a,u,l,f,g;(f=b(e,"lazybeforeunveil",t)).defaultPrevented||(i&&(n?m(e,r.autosizesClass):e.setAttribute("sizes",i)),a=e.getAttribute(r.srcsetAttr),o=e.getAttribute(r.srcAttr),s&&(u=e.parentNode,l=u&&h.test(u.nodeName||"")),g=t.firesLoad||"src"in e&&(a||o||l),f={target:e},g&&(y(e,z,!0),clearTimeout(d),d=c(z,2500),m(e,r.loadingClass),y(e,W,!0)),l&&p.call(u.getElementsByTagName("source"),G),a?e.setAttribute("srcset",a):o&&!l&&(j.test(e.nodeName)?function(e,t){try{e.contentWindow.location.replace(t)}catch(n){e.src=t}}(e,o):e.src=o),s&&(a||l)&&w(e,{src:o})),e._lazyRace&&delete e._lazyRace,v(e,r.lazyClass),x(function(){(!g||e.complete&&e.naturalWidth>1)&&(g?z(f):B--,V(f))},!0)}),X=function(e){var t,n=P.test(e.nodeName),i=n&&(e.getAttribute(r.sizesAttr)||e.getAttribute("sizes")),s="auto"==i;(!s&&u||!n||!e.getAttribute("src")&&!e.srcset||e.complete||g(e,r.errorClass)||!g(e,r.lazyClass))&&(t=b(e,"lazyunveilread").detail,s&&N.updateElem(e,!0,e.offsetWidth),e._lazyRace=!0,B++,Q(e,t,s,i,n))},Z=function(){if(!u)if(s.now()-E<999)c(Z,999);else{var e=C(function(){r.loadMode=3,K()});u=!0,r.loadMode=3,K(),a("scroll",function(){3==r.loadMode&&(r.loadMode=2),e()},!0)}};return{_:function(){E=s.now(),n.elements=t.getElementsByClassName(r.lazyClass),o=t.getElementsByClassName(r.lazyClass+" "+r.preloadClass),D=r.hFac,a("scroll",K,!0),a("resize",K,!0),e.MutationObserver?new MutationObserver(K).observe(i,{childList:!0,subtree:!0,attributes:!0}):(i.addEventListener("DOMNodeInserted",K,!0),i.addEventListener("DOMAttrModified",K,!0),setInterval(K,999)),a("hashchange",K,!0),["focus","mouseover","click","load","transitionend","animationend","webkitAnimationEnd"].forEach(function(e){t.addEventListener(e,K,!0)}),/d$|^c/.test(t.readyState)?Z():(a("load",Z),t.addEventListener("DOMContentLoaded",K),c(Z,2e4)),n.elements.length?(U(),x._lsFlush()):K()},checkElems:K,unveil:X}}(),N=function(){var e,n=S(function(e,t,n,r){var i,s,o;if(e._lazysizesWidth=r,r+="px",e.setAttribute("sizes",r),h.test(t.nodeName||""))for(i=t.getElementsByTagName("source"),s=0,o=i.length;s<o;s++)i[s].setAttribute("sizes",r);n.detail.dataAttr||w(e,n.detail)}),i=function(e,t,r){var i,s=e.parentNode;s&&(r=E(e,s,r),(i=b(e,"lazybeforesizes",{width:r,dataAttr:!!t})).defaultPrevented||(r=i.detail.width)&&r!==e._lazysizesWidth&&n(e,s,i,r))},s=C(function(){var t,n=e.length;if(n)for(t=0;t<n;t++)i(e[t])});return{_:function(){e=t.getElementsByClassName(r.autosizesClass),a("resize",s)},checkElems:s,updateElem:i}}(),O=function(){O.i||(O.i=!0,N._(),A._())};return n={cfg:r,autoSizer:N,loader:A,init:O,uP:w,aC:m,rC:v,hC:g,fire:b,gW:E,rAF:x}}(t,t.document);t.lazySizes=r,e.exports&&(e.exports=r)}(window)},function(e,t,n){"use strict";n.r(t);n(3),n(4),n(5),n(7),n(8),n(10),n(21),n(23),n(24),n(26),n(27),n(28);n(2)},function(e,t,n){},function(e,t,n){},function(e,t){var n=function(e){var t=document.createElement("a");return t.className="header-link",t.href="#"+e,t.innerHTML=' <svg class="fill-current o-60 hover-accent-color-light" height="22px" viewBox="0 0 24 24" width="22px" xmlns="http://www.w3.org/2000/svg"><path d="M0 0h24v24H0z" fill="none"/><path d="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"/></svg>',t},r=function(e,t){for(var r=t.getElementsByTagName("h"+e),i=0;i<r.length;i++){var s=r[i];void 0!==s.id&&""!==s.id&&s.appendChild(n(s.id))}};document.onreadystatechange=function(){if("complete"===this.readyState){var e=document.getElementsByClassName("prose")[0];if(!e)return;for(var t=2;t<=4;t++)r(t,e)}}},function(e,t,n){function r(e,t){e.setAttribute("class","copied bg-primary-color-dark f6 absolute top-0 right-0 lh-solid hover-bg-primary-color-dark bn white ph3 pv2"),e.setAttribute("aria-label",t)}new(n(6))(".copy",{target:function(e){return e.classList.contains("copy-toggle")?e.previousElementSibling:e.nextElementSibling}}).on("success",function(e){r(e.trigger,"Copied!"),e.clearSelection()}).on("error",function(e){r(e.trigger,function(e,t){var n="",r="cut"===t?"X":"C";n=isMac?"Press ⌘-"+r:"Press Ctrl-"+r;return n}(e.action))})},function(e,t,n){
+/*!
+ * clipboard.js v2.0.4
+ * https://zenorocha.github.io/clipboard.js
+ *
+ * Licensed MIT © Zeno Rocha
+ */
+!function(t,n){e.exports=n()}(0,function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(r,i,function(t){return e[t]}.bind(null,i));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}([function(e,t,n){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),s=c(n(1)),o=c(n(3)),a=c(n(4));function c(e){return e&&e.__esModule?e:{default:e}}var u=function(e){function t(e,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var r=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return r.resolveOptions(n),r.listenClick(e),r}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,o.default),i(t,[{key:"resolveOptions",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof e.action?e.action:this.defaultAction,this.target="function"==typeof e.target?e.target:this.defaultTarget,this.text="function"==typeof e.text?e.text:this.defaultText,this.container="object"===r(e.container)?e.container:document.body}},{key:"listenClick",value:function(e){var t=this;this.listener=(0,a.default)(e,"click",function(e){return t.onClick(e)})}},{key:"onClick",value:function(e){var t=e.delegateTarget||e.currentTarget;this.clipboardAction&&(this.clipboardAction=null),this.clipboardAction=new s.default({action:this.action(t),target:this.target(t),text:this.text(t),container:this.container,trigger:t,emitter:this})}},{key:"defaultAction",value:function(e){return l("action",e)}},{key:"defaultTarget",value:function(e){var t=l("target",e);if(t)return document.querySelector(t)}},{key:"defaultText",value:function(e){return l("text",e)}},{key:"destroy",value:function(){this.listener.destroy(),this.clipboardAction&&(this.clipboardAction.destroy(),this.clipboardAction=null)}}],[{key:"isSupported",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["copy","cut"],t="string"==typeof e?[e]:e,n=!!document.queryCommandSupported;return t.forEach(function(e){n=n&&!!document.queryCommandSupported(e)}),n}}]),t}();function l(e,t){var n="data-clipboard-"+e;if(t.hasAttribute(n))return t.getAttribute(n)}e.exports=u},function(e,t,n){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),s=function(e){return e&&e.__esModule?e:{default:e}}(n(2));var o=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.resolveOptions(t),this.initSelection()}return i(e,[{key:"resolveOptions",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.action=e.action,this.container=e.container,this.emitter=e.emitter,this.target=e.target,this.text=e.text,this.trigger=e.trigger,this.selectedText=""}},{key:"initSelection",value:function(){this.text?this.selectFake():this.target&&this.selectTarget()}},{key:"selectFake",value:function(){var e=this,t="rtl"==document.documentElement.getAttribute("dir");this.removeFake(),this.fakeHandlerCallback=function(){return e.removeFake()},this.fakeHandler=this.container.addEventListener("click",this.fakeHandlerCallback)||!0,this.fakeElem=document.createElement("textarea"),this.fakeElem.style.fontSize="12pt",this.fakeElem.style.border="0",this.fakeElem.style.padding="0",this.fakeElem.style.margin="0",this.fakeElem.style.position="absolute",this.fakeElem.style[t?"right":"left"]="-9999px";var n=window.pageYOffset||document.documentElement.scrollTop;this.fakeElem.style.top=n+"px",this.fakeElem.setAttribute("readonly",""),this.fakeElem.value=this.text,this.container.appendChild(this.fakeElem),this.selectedText=(0,s.default)(this.fakeElem),this.copyText()}},{key:"removeFake",value:function(){this.fakeHandler&&(this.container.removeEventListener("click",this.fakeHandlerCallback),this.fakeHandler=null,this.fakeHandlerCallback=null),this.fakeElem&&(this.container.removeChild(this.fakeElem),this.fakeElem=null)}},{key:"selectTarget",value:function(){this.selectedText=(0,s.default)(this.target),this.copyText()}},{key:"copyText",value:function(){var e=void 0;try{e=document.execCommand(this.action)}catch(t){e=!1}this.handleResult(e)}},{key:"handleResult",value:function(e){this.emitter.emit(e?"success":"error",{action:this.action,text:this.selectedText,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)})}},{key:"clearSelection",value:function(){this.trigger&&this.trigger.focus(),window.getSelection().removeAllRanges()}},{key:"destroy",value:function(){this.removeFake()}},{key:"action",set:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"copy";if(this._action=e,"copy"!==this._action&&"cut"!==this._action)throw new Error('Invalid "action" value, use either "copy" or "cut"')},get:function(){return this._action}},{key:"target",set:function(e){if(void 0!==e){if(!e||"object"!==(void 0===e?"undefined":r(e))||1!==e.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===this.action&&e.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===this.action&&(e.hasAttribute("readonly")||e.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');this._target=e}},get:function(){return this._target}}]),e}();e.exports=o},function(e,t){e.exports=function(e){var t;if("SELECT"===e.nodeName)e.focus(),t=e.value;else if("INPUT"===e.nodeName||"TEXTAREA"===e.nodeName){var n=e.hasAttribute("readonly");n||e.setAttribute("readonly",""),e.select(),e.setSelectionRange(0,e.value.length),n||e.removeAttribute("readonly"),t=e.value}else{e.hasAttribute("contenteditable")&&e.focus();var r=window.getSelection(),i=document.createRange();i.selectNodeContents(e),r.removeAllRanges(),r.addRange(i),t=r.toString()}return t}},function(e,t){function n(){}n.prototype={on:function(e,t,n){var r=this.e||(this.e={});return(r[e]||(r[e]=[])).push({fn:t,ctx:n}),this},once:function(e,t,n){var r=this;function i(){r.off(e,i),t.apply(n,arguments)}return i._=t,this.on(e,i,n)},emit:function(e){for(var t=[].slice.call(arguments,1),n=((this.e||(this.e={}))[e]||[]).slice(),r=0,i=n.length;r<i;r++)n[r].fn.apply(n[r].ctx,t);return this},off:function(e,t){var n=this.e||(this.e={}),r=n[e],i=[];if(r&&t)for(var s=0,o=r.length;s<o;s++)r[s].fn!==t&&r[s].fn._!==t&&i.push(r[s]);return i.length?n[e]=i:delete n[e],this}},e.exports=n},function(e,t,n){var r=n(5),i=n(6);e.exports=function(e,t,n){if(!e&&!t&&!n)throw new Error("Missing required arguments");if(!r.string(t))throw new TypeError("Second argument must be a String");if(!r.fn(n))throw new TypeError("Third argument must be a Function");if(r.node(e))return function(e,t,n){return e.addEventListener(t,n),{destroy:function(){e.removeEventListener(t,n)}}}(e,t,n);if(r.nodeList(e))return function(e,t,n){return Array.prototype.forEach.call(e,function(e){e.addEventListener(t,n)}),{destroy:function(){Array.prototype.forEach.call(e,function(e){e.removeEventListener(t,n)})}}}(e,t,n);if(r.string(e))return function(e,t,n){return i(document.body,e,t,n)}(e,t,n);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}},function(e,t){t.node=function(e){return void 0!==e&&e instanceof HTMLElement&&1===e.nodeType},t.nodeList=function(e){var n=Object.prototype.toString.call(e);return void 0!==e&&("[object NodeList]"===n||"[object HTMLCollection]"===n)&&"length"in e&&(0===e.length||t.node(e[0]))},t.string=function(e){return"string"==typeof e||e instanceof String},t.fn=function(e){return"[object Function]"===Object.prototype.toString.call(e)}},function(e,t,n){var r=n(7);function i(e,t,n,i,s){var o=function(e,t,n,i){return function(n){n.delegateTarget=r(n.target,t),n.delegateTarget&&i.call(e,n)}}.apply(this,arguments);return e.addEventListener(n,o,s),{destroy:function(){e.removeEventListener(n,o,s)}}}e.exports=function(e,t,n,r,s){return"function"==typeof e.addEventListener?i.apply(null,arguments):"function"==typeof n?i.bind(null,document).apply(null,arguments):("string"==typeof e&&(e=document.querySelectorAll(e)),Array.prototype.map.call(e,function(e){return i(e,t,n,r,s)}))}},function(e,t){var n=9;if("undefined"!=typeof Element&&!Element.prototype.matches){var r=Element.prototype;r.matches=r.matchesSelector||r.mozMatchesSelector||r.msMatchesSelector||r.oMatchesSelector||r.webkitMatchesSelector}e.exports=function(e,t){for(;e&&e.nodeType!==n;){if("function"==typeof e.matches&&e.matches(t))return e;e=e.parentNode}}}])})},function(e,t){let n=document.getElementById("prose");if(n){let e=n.getElementsByTagName("code");for(let[t,n]of Object.entries(e)){n.scrollWidth-n.clientWidth>0&&n.parentNode.classList.add("expand")}}},function(e,t,n){n(9)({apiKey:"167e7998590aebda7f9fedcf86bc4a55",indexName:"hugodocs",inputSelector:"#search-input",debug:!0})},function(e,t,n){
+/*! docsearch 2.6.1 | © Algolia | github.com/algolia/docsearch */