--- /dev/null
+# 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
++ - UndocumentedFeature
+# 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
--- /dev/null
++[](https://app.netlify.com/sites/gohugoio/deploys)
++
+# Hugo Docs
+
+Documentation site for [Hugo](https://github.com/gohugoio/hugo), the very fast and flexible static site generator built with love in Go.
+
+## Contributing
+
+We welcome contributions to Hugo of any kind including documentation, suggestions, bug reports, pull requests etc. Also check out our [contribution guide](https://gohugo.io/contribute/documentation/). We would love to hear from you.
+
+Note that this repository contains solely the documentation for Hugo. For contributions that aren't documentation-related please refer to the [hugo](https://github.com/gohugoio/hugo) repository.
+
+*Pull requests shall **only** contain changes to the actual documentation. However, changes on the code base of Hugo **and** the documentation shall be a single, atomic pull request in the [hugo](https://github.com/gohugoio/hugo) repository.*
+
+Spelling fixes are most welcomed, and if you want to contribute longer sections to the documentation, it would be great if you had these in mind when writing:
+
+* Short is good. People go to the library to read novels. If there is more than one way to _do a thing_ in Hugo, describe the current _best practice_ (avoid "… but you can also do …" and "… in older versions of Hugo you had to …".
+* For examples, try to find short snippets that teaches people about the concept. If the example is also useful as-is (copy and paste), then great, but don't list long and similar examples just so people can use them on their sites.
+* Hugo has users from all over the world, so an easy to understand and [simple English](https://simple.wikipedia.org/wiki/Basic_English) is good.
+
+## Branches
+
+* The `master` branch is where the site is automatically built from, and is the place to put changes relevant to the current Hugo version.
+* The `next` branch is where we store changes that is related to the next Hugo release. This can be previewed here: https://next--gohugoio.netlify.com/
+
+## Build
+
+To view the documentation site locally, you need to clone this repository:
+
+```bash
+git clone https://github.com/gohugoio/hugoDocs.git
+```
+
+Also note that the documentation version for a given version of Hugo can also be found in the `/docs` sub-folder of the [Hugo source repository](https://github.com/gohugoio/hugo).
+
+Then to view the docs in your browser, run Hugo and open up the link:
+
+```bash
+▶ hugo server
+
+Started building sites ...
+.
+.
+Serving pages from memory
+Web Server is available at http://localhost:1313/ (bind address 127.0.0.1)
+Press Ctrl+C to stop
+```
--- /dev/null
- date: 2018-12-23
+---
- -t, --theme string theme to use (located in /themes/THEMENAME/)
++date: 2019-01-30
+title: "hugo"
+slug: hugo
+url: /commands/hugo/
+---
+## hugo
+
+hugo builds your site
+
+### Synopsis
+
+hugo is the main command, used to build your Hugo site.
+
+Hugo is a Fast and Flexible Static Site Generator
+built with love by spf13 and friends in Go.
+
+Complete documentation is available at http://gohugo.io/.
+
+```
+hugo [flags]
+```
+
+### Options
+
+```
+ -b, --baseURL string hostname (and path) to the root, e.g. http://spf13.com/
+ -D, --buildDrafts include content marked as draft
+ -E, --buildExpired include expired content
+ -F, --buildFuture include content with publishdate in the future
+ --cacheDir string filesystem path to cache directory. Defaults: $TMPDIR/hugo_cache/
+ --cleanDestinationDir remove files from destination not found in static directories
+ --config string config file (default is path/config.yaml|json|toml)
+ --configDir string config dir (default "config")
+ -c, --contentDir string filesystem path to content directory
+ --debug debug output
+ -d, --destination string filesystem path to write files to
+ --disableKinds strings disable different kind of pages (home, RSS etc.)
+ --enableGitInfo add Git revision, date and author info to the pages
+ -e, --environment string build environment
+ --forceSyncStatic copy all files when static is changed.
+ --gc enable to run some cleanup tasks (remove unused cache files) after the build
+ -h, --help help for hugo
+ --i18n-warnings print missing translations
+ --ignoreCache ignores the cache directory
+ -l, --layoutDir string filesystem path to layout directory
+ --log enable Logging
+ --logFile string log File path (if set, logging enabled automatically)
+ --minify minify any supported output format (HTML, XML etc.)
+ --noChmod don't sync permission mode of files
+ --noTimes don't sync modification time of files
+ --quiet build in quiet mode
+ --renderToMemory render to memory (only useful for benchmark testing)
+ -s, --source string filesystem path to read files relative from
+ --stepAnalysis display memory and timing of different steps of the program
+ --templateMetrics display metrics about template executions
+ --templateMetricsHints calculate some improvement hints when combined with --templateMetrics
- ###### Auto generated by spf13/cobra on 23-Dec-2018
++ -t, --theme strings themes to use (located in /themes/THEMENAME/)
+ --themesDir string filesystem path to themes directory
+ -v, --verbose verbose output
+ --verboseLog verbose logging
+ -w, --watch watch filesystem for changes and recreate as needed
+```
+
+### SEE ALSO
+
+* [hugo check](/commands/hugo_check/) - Contains some verification checks
+* [hugo config](/commands/hugo_config/) - Print the site configuration
+* [hugo convert](/commands/hugo_convert/) - Convert your content to different formats
+* [hugo env](/commands/hugo_env/) - Print Hugo version and environment info
+* [hugo gen](/commands/hugo_gen/) - A collection of several useful generators.
+* [hugo import](/commands/hugo_import/) - Import your site from others.
+* [hugo list](/commands/hugo_list/) - Listing out various types of content
+* [hugo new](/commands/hugo_new/) - Create new content for your site
+* [hugo server](/commands/hugo_server/) - A high performance webserver
+* [hugo version](/commands/hugo_version/) - Print the version number of Hugo
+
++###### Auto generated by spf13/cobra on 30-Jan-2019
--- /dev/null
- date: 2018-12-23
+---
- ###### Auto generated by spf13/cobra on 23-Dec-2018
++date: 2019-01-30
+title: "hugo check"
+slug: hugo_check
+url: /commands/hugo_check/
+---
+## hugo check
+
+Contains some verification checks
+
+### Synopsis
+
+Contains some verification checks
+
+### Options
+
+```
+ -h, --help help for check
+```
+
+### Options inherited from parent commands
+
+```
+ --config string config file (default is path/config.yaml|json|toml)
+ --configDir string config dir (default "config")
+ --debug debug output
+ --log enable Logging
+ --logFile string log File path (if set, logging enabled automatically)
+ --quiet build in quiet mode
+ -v, --verbose verbose output
+ --verboseLog verbose logging
+```
+
+### SEE ALSO
+
+* [hugo](/commands/hugo/) - hugo builds your site
+* [hugo check ulimit](/commands/hugo_check_ulimit/) - Check system ulimit settings
+
++###### Auto generated by spf13/cobra on 30-Jan-2019
--- /dev/null
- date: 2018-12-23
+---
- ###### Auto generated by spf13/cobra on 23-Dec-2018
++date: 2019-01-30
+title: "hugo check ulimit"
+slug: hugo_check_ulimit
+url: /commands/hugo_check_ulimit/
+---
+## hugo check ulimit
+
+Check system ulimit settings
+
+### Synopsis
+
+Hugo will inspect the current ulimit settings on the system.
+This is primarily to ensure that Hugo can watch enough files on some OSs
+
+```
+hugo check ulimit [flags]
+```
+
+### Options
+
+```
+ -h, --help help for ulimit
+```
+
+### Options inherited from parent commands
+
+```
+ --config string config file (default is path/config.yaml|json|toml)
+ --configDir string config dir (default "config")
+ --debug debug output
+ --log enable Logging
+ --logFile string log File path (if set, logging enabled automatically)
+ --quiet build in quiet mode
+ -v, --verbose verbose output
+ --verboseLog verbose logging
+```
+
+### SEE ALSO
+
+* [hugo check](/commands/hugo_check/) - Contains some verification checks
+
++###### Auto generated by spf13/cobra on 30-Jan-2019
--- /dev/null
- date: 2018-12-23
+---
- ###### Auto generated by spf13/cobra on 23-Dec-2018
++date: 2019-01-30
+title: "hugo config"
+slug: hugo_config
+url: /commands/hugo_config/
+---
+## hugo config
+
+Print the site configuration
+
+### Synopsis
+
+Print the site configuration, both default and custom settings.
+
+```
+hugo config [flags]
+```
+
+### Options
+
+```
+ -h, --help help for config
+ -s, --source string filesystem path to read files relative from
+```
+
+### Options inherited from parent commands
+
+```
+ --config string config file (default is path/config.yaml|json|toml)
+ --configDir string config dir (default "config")
+ --debug debug output
+ --log enable Logging
+ --logFile string log File path (if set, logging enabled automatically)
+ --quiet build in quiet mode
+ -v, --verbose verbose output
+ --verboseLog verbose logging
+```
+
+### SEE ALSO
+
+* [hugo](/commands/hugo/) - hugo builds your site
+
++###### Auto generated by spf13/cobra on 30-Jan-2019
--- /dev/null
- date: 2018-12-23
+---
- ###### Auto generated by spf13/cobra on 23-Dec-2018
++date: 2019-01-30
+title: "hugo convert"
+slug: hugo_convert
+url: /commands/hugo_convert/
+---
+## hugo convert
+
+Convert your content to different formats
+
+### Synopsis
+
+Convert your content (e.g. front matter) to different formats.
+
+See convert's subcommands toJSON, toTOML and toYAML for more information.
+
+### Options
+
+```
+ -h, --help help for convert
+ -o, --output string filesystem path to write files to
+ -s, --source string filesystem path to read files relative from
+ --unsafe enable less safe operations, please backup first
+```
+
+### Options inherited from parent commands
+
+```
+ --config string config file (default is path/config.yaml|json|toml)
+ --configDir string config dir (default "config")
+ --debug debug output
+ --log enable Logging
+ --logFile string log File path (if set, logging enabled automatically)
+ --quiet build in quiet mode
+ -v, --verbose verbose output
+ --verboseLog verbose logging
+```
+
+### SEE ALSO
+
+* [hugo](/commands/hugo/) - hugo builds your site
+* [hugo convert toJSON](/commands/hugo_convert_tojson/) - Convert front matter to JSON
+* [hugo convert toTOML](/commands/hugo_convert_totoml/) - Convert front matter to TOML
+* [hugo convert toYAML](/commands/hugo_convert_toyaml/) - Convert front matter to YAML
+
++###### Auto generated by spf13/cobra on 30-Jan-2019
--- /dev/null
- date: 2018-12-23
+---
- ###### Auto generated by spf13/cobra on 23-Dec-2018
++date: 2019-01-30
+title: "hugo convert toJSON"
+slug: hugo_convert_toJSON
+url: /commands/hugo_convert_tojson/
+---
+## hugo convert toJSON
+
+Convert front matter to JSON
+
+### Synopsis
+
+toJSON converts all front matter in the content directory
+to use JSON for the front matter.
+
+```
+hugo convert toJSON [flags]
+```
+
+### Options
+
+```
+ -h, --help help for toJSON
+```
+
+### Options inherited from parent commands
+
+```
+ --config string config file (default is path/config.yaml|json|toml)
+ --configDir string config dir (default "config")
+ --debug debug output
+ --log enable Logging
+ --logFile string log File path (if set, logging enabled automatically)
+ -o, --output string filesystem path to write files to
+ --quiet build in quiet mode
+ -s, --source string filesystem path to read files relative from
+ --unsafe enable less safe operations, please backup first
+ -v, --verbose verbose output
+ --verboseLog verbose logging
+```
+
+### SEE ALSO
+
+* [hugo convert](/commands/hugo_convert/) - Convert your content to different formats
+
++###### Auto generated by spf13/cobra on 30-Jan-2019
--- /dev/null
- date: 2018-12-23
+---
- ###### Auto generated by spf13/cobra on 23-Dec-2018
++date: 2019-01-30
+title: "hugo convert toTOML"
+slug: hugo_convert_toTOML
+url: /commands/hugo_convert_totoml/
+---
+## hugo convert toTOML
+
+Convert front matter to TOML
+
+### Synopsis
+
+toTOML converts all front matter in the content directory
+to use TOML for the front matter.
+
+```
+hugo convert toTOML [flags]
+```
+
+### Options
+
+```
+ -h, --help help for toTOML
+```
+
+### Options inherited from parent commands
+
+```
+ --config string config file (default is path/config.yaml|json|toml)
+ --configDir string config dir (default "config")
+ --debug debug output
+ --log enable Logging
+ --logFile string log File path (if set, logging enabled automatically)
+ -o, --output string filesystem path to write files to
+ --quiet build in quiet mode
+ -s, --source string filesystem path to read files relative from
+ --unsafe enable less safe operations, please backup first
+ -v, --verbose verbose output
+ --verboseLog verbose logging
+```
+
+### SEE ALSO
+
+* [hugo convert](/commands/hugo_convert/) - Convert your content to different formats
+
++###### Auto generated by spf13/cobra on 30-Jan-2019
--- /dev/null
- date: 2018-12-23
+---
- ###### Auto generated by spf13/cobra on 23-Dec-2018
++date: 2019-01-30
+title: "hugo convert toYAML"
+slug: hugo_convert_toYAML
+url: /commands/hugo_convert_toyaml/
+---
+## hugo convert toYAML
+
+Convert front matter to YAML
+
+### Synopsis
+
+toYAML converts all front matter in the content directory
+to use YAML for the front matter.
+
+```
+hugo convert toYAML [flags]
+```
+
+### Options
+
+```
+ -h, --help help for toYAML
+```
+
+### Options inherited from parent commands
+
+```
+ --config string config file (default is path/config.yaml|json|toml)
+ --configDir string config dir (default "config")
+ --debug debug output
+ --log enable Logging
+ --logFile string log File path (if set, logging enabled automatically)
+ -o, --output string filesystem path to write files to
+ --quiet build in quiet mode
+ -s, --source string filesystem path to read files relative from
+ --unsafe enable less safe operations, please backup first
+ -v, --verbose verbose output
+ --verboseLog verbose logging
+```
+
+### SEE ALSO
+
+* [hugo convert](/commands/hugo_convert/) - Convert your content to different formats
+
++###### Auto generated by spf13/cobra on 30-Jan-2019
--- /dev/null
- date: 2018-12-23
+---
- ###### Auto generated by spf13/cobra on 23-Dec-2018
++date: 2019-01-30
+title: "hugo env"
+slug: hugo_env
+url: /commands/hugo_env/
+---
+## hugo env
+
+Print Hugo version and environment info
+
+### Synopsis
+
+Print Hugo version and environment info. This is useful in Hugo bug reports.
+
+```
+hugo env [flags]
+```
+
+### Options
+
+```
+ -h, --help help for env
+```
+
+### Options inherited from parent commands
+
+```
+ --config string config file (default is path/config.yaml|json|toml)
+ --configDir string config dir (default "config")
+ --debug debug output
+ --log enable Logging
+ --logFile string log File path (if set, logging enabled automatically)
+ --quiet build in quiet mode
+ -v, --verbose verbose output
+ --verboseLog verbose logging
+```
+
+### SEE ALSO
+
+* [hugo](/commands/hugo/) - hugo builds your site
+
++###### Auto generated by spf13/cobra on 30-Jan-2019
--- /dev/null
- date: 2018-12-23
+---
- ###### Auto generated by spf13/cobra on 23-Dec-2018
++date: 2019-01-30
+title: "hugo gen"
+slug: hugo_gen
+url: /commands/hugo_gen/
+---
+## hugo gen
+
+A collection of several useful generators.
+
+### Synopsis
+
+A collection of several useful generators.
+
+### Options
+
+```
+ -h, --help help for gen
+```
+
+### Options inherited from parent commands
+
+```
+ --config string config file (default is path/config.yaml|json|toml)
+ --configDir string config dir (default "config")
+ --debug debug output
+ --log enable Logging
+ --logFile string log File path (if set, logging enabled automatically)
+ --quiet build in quiet mode
+ -v, --verbose verbose output
+ --verboseLog verbose logging
+```
+
+### SEE ALSO
+
+* [hugo](/commands/hugo/) - hugo builds your site
+* [hugo gen autocomplete](/commands/hugo_gen_autocomplete/) - Generate shell autocompletion script for Hugo
+* [hugo gen chromastyles](/commands/hugo_gen_chromastyles/) - Generate CSS stylesheet for the Chroma code highlighter
+* [hugo gen doc](/commands/hugo_gen_doc/) - Generate Markdown documentation for the Hugo CLI.
+* [hugo gen man](/commands/hugo_gen_man/) - Generate man pages for the Hugo CLI
+
++###### Auto generated by spf13/cobra on 30-Jan-2019
--- /dev/null
- date: 2018-12-23
+---
- ###### Auto generated by spf13/cobra on 23-Dec-2018
++date: 2019-01-30
+title: "hugo gen autocomplete"
+slug: hugo_gen_autocomplete
+url: /commands/hugo_gen_autocomplete/
+---
+## hugo gen autocomplete
+
+Generate shell autocompletion script for Hugo
+
+### Synopsis
+
+Generates a shell autocompletion script for Hugo.
+
+NOTE: The current version supports Bash only.
+ This should work for *nix systems with Bash installed.
+
+By default, the file is written directly to /etc/bash_completion.d
+for convenience, and the command may need superuser rights, e.g.:
+
+ $ sudo hugo gen autocomplete
+
+Add `--completionfile=/path/to/file` flag to set alternative
+file-path and name.
+
+Logout and in again to reload the completion scripts,
+or just source them in directly:
+
+ $ . /etc/bash_completion
+
+```
+hugo gen autocomplete [flags]
+```
+
+### Options
+
+```
+ --completionfile string autocompletion file (default "/etc/bash_completion.d/hugo.sh")
+ -h, --help help for autocomplete
+ --type string autocompletion type (currently only bash supported) (default "bash")
+```
+
+### Options inherited from parent commands
+
+```
+ --config string config file (default is path/config.yaml|json|toml)
+ --configDir string config dir (default "config")
+ --debug debug output
+ --log enable Logging
+ --logFile string log File path (if set, logging enabled automatically)
+ --quiet build in quiet mode
+ -v, --verbose verbose output
+ --verboseLog verbose logging
+```
+
+### SEE ALSO
+
+* [hugo gen](/commands/hugo_gen/) - A collection of several useful generators.
+
++###### Auto generated by spf13/cobra on 30-Jan-2019
--- /dev/null
- date: 2018-12-23
+---
- ###### Auto generated by spf13/cobra on 23-Dec-2018
++date: 2019-01-30
+title: "hugo gen chromastyles"
+slug: hugo_gen_chromastyles
+url: /commands/hugo_gen_chromastyles/
+---
+## hugo gen chromastyles
+
+Generate CSS stylesheet for the Chroma code highlighter
+
+### Synopsis
+
+Generate CSS stylesheet for the Chroma code highlighter for a given style. This stylesheet is needed if pygmentsUseClasses is enabled in config.
+
+See https://help.farbox.com/pygments.html for preview of available styles
+
+```
+hugo gen chromastyles [flags]
+```
+
+### Options
+
+```
+ -h, --help help for chromastyles
+ --highlightStyle string style used for highlighting lines (see https://github.com/alecthomas/chroma) (default "bg:#ffffcc")
+ --linesStyle string style used for line numbers (see https://github.com/alecthomas/chroma)
+ --style string highlighter style (see https://help.farbox.com/pygments.html) (default "friendly")
+```
+
+### Options inherited from parent commands
+
+```
+ --config string config file (default is path/config.yaml|json|toml)
+ --configDir string config dir (default "config")
+ --debug debug output
+ --log enable Logging
+ --logFile string log File path (if set, logging enabled automatically)
+ --quiet build in quiet mode
+ -v, --verbose verbose output
+ --verboseLog verbose logging
+```
+
+### SEE ALSO
+
+* [hugo gen](/commands/hugo_gen/) - A collection of several useful generators.
+
++###### Auto generated by spf13/cobra on 30-Jan-2019
--- /dev/null
- date: 2018-12-23
+---
- ###### Auto generated by spf13/cobra on 23-Dec-2018
++date: 2019-01-30
+title: "hugo gen doc"
+slug: hugo_gen_doc
+url: /commands/hugo_gen_doc/
+---
+## hugo gen doc
+
+Generate Markdown documentation for the Hugo CLI.
+
+### Synopsis
+
+Generate Markdown documentation for the Hugo CLI.
+
+This command is, mostly, used to create up-to-date documentation
+of Hugo's command-line interface for http://gohugo.io/.
+
+It creates one Markdown file per command with front matter suitable
+for rendering in Hugo.
+
+```
+hugo gen doc [flags]
+```
+
+### Options
+
+```
+ --dir string the directory to write the doc. (default "/tmp/hugodoc/")
+ -h, --help help for doc
+```
+
+### Options inherited from parent commands
+
+```
+ --config string config file (default is path/config.yaml|json|toml)
+ --configDir string config dir (default "config")
+ --debug debug output
+ --log enable Logging
+ --logFile string log File path (if set, logging enabled automatically)
+ --quiet build in quiet mode
+ -v, --verbose verbose output
+ --verboseLog verbose logging
+```
+
+### SEE ALSO
+
+* [hugo gen](/commands/hugo_gen/) - A collection of several useful generators.
+
++###### Auto generated by spf13/cobra on 30-Jan-2019
--- /dev/null
- date: 2018-12-23
+---
- ###### Auto generated by spf13/cobra on 23-Dec-2018
++date: 2019-01-30
+title: "hugo gen man"
+slug: hugo_gen_man
+url: /commands/hugo_gen_man/
+---
+## hugo gen man
+
+Generate man pages for the Hugo CLI
+
+### Synopsis
+
+This command automatically generates up-to-date man pages of Hugo's
+command-line interface. By default, it creates the man page files
+in the "man" directory under the current directory.
+
+```
+hugo gen man [flags]
+```
+
+### Options
+
+```
+ --dir string the directory to write the man pages. (default "man/")
+ -h, --help help for man
+```
+
+### Options inherited from parent commands
+
+```
+ --config string config file (default is path/config.yaml|json|toml)
+ --configDir string config dir (default "config")
+ --debug debug output
+ --log enable Logging
+ --logFile string log File path (if set, logging enabled automatically)
+ --quiet build in quiet mode
+ -v, --verbose verbose output
+ --verboseLog verbose logging
+```
+
+### SEE ALSO
+
+* [hugo gen](/commands/hugo_gen/) - A collection of several useful generators.
+
++###### Auto generated by spf13/cobra on 30-Jan-2019
--- /dev/null
- date: 2018-12-23
+---
- ###### Auto generated by spf13/cobra on 23-Dec-2018
++date: 2019-01-30
+title: "hugo import"
+slug: hugo_import
+url: /commands/hugo_import/
+---
+## hugo import
+
+Import your site from others.
+
+### Synopsis
+
+Import your site from other web site generators like Jekyll.
+
+Import requires a subcommand, e.g. `hugo import jekyll jekyll_root_path target_path`.
+
+### Options
+
+```
+ -h, --help help for import
+```
+
+### Options inherited from parent commands
+
+```
+ --config string config file (default is path/config.yaml|json|toml)
+ --configDir string config dir (default "config")
+ --debug debug output
+ --log enable Logging
+ --logFile string log File path (if set, logging enabled automatically)
+ --quiet build in quiet mode
+ -v, --verbose verbose output
+ --verboseLog verbose logging
+```
+
+### SEE ALSO
+
+* [hugo](/commands/hugo/) - hugo builds your site
+* [hugo import jekyll](/commands/hugo_import_jekyll/) - hugo import from Jekyll
+
++###### Auto generated by spf13/cobra on 30-Jan-2019
--- /dev/null
- date: 2018-12-23
+---
- ###### Auto generated by spf13/cobra on 23-Dec-2018
++date: 2019-01-30
+title: "hugo import jekyll"
+slug: hugo_import_jekyll
+url: /commands/hugo_import_jekyll/
+---
+## hugo import jekyll
+
+hugo import from Jekyll
+
+### Synopsis
+
+hugo import from Jekyll.
+
+Import from Jekyll requires two paths, e.g. `hugo import jekyll jekyll_root_path target_path`.
+
+```
+hugo import jekyll [flags]
+```
+
+### Options
+
+```
+ --force allow import into non-empty target directory
+ -h, --help help for jekyll
+```
+
+### Options inherited from parent commands
+
+```
+ --config string config file (default is path/config.yaml|json|toml)
+ --configDir string config dir (default "config")
+ --debug debug output
+ --log enable Logging
+ --logFile string log File path (if set, logging enabled automatically)
+ --quiet build in quiet mode
+ -v, --verbose verbose output
+ --verboseLog verbose logging
+```
+
+### SEE ALSO
+
+* [hugo import](/commands/hugo_import/) - Import your site from others.
+
++###### Auto generated by spf13/cobra on 30-Jan-2019
--- /dev/null
- date: 2018-12-23
+---
- ###### Auto generated by spf13/cobra on 23-Dec-2018
++date: 2019-01-30
+title: "hugo list"
+slug: hugo_list
+url: /commands/hugo_list/
+---
+## hugo list
+
+Listing out various types of content
+
+### Synopsis
+
+Listing out various types of content.
+
+List requires a subcommand, e.g. `hugo list drafts`.
+
+### Options
+
+```
+ -h, --help help for list
+ -s, --source string filesystem path to read files relative from
+```
+
+### Options inherited from parent commands
+
+```
+ --config string config file (default is path/config.yaml|json|toml)
+ --configDir string config dir (default "config")
+ --debug debug output
+ --log enable Logging
+ --logFile string log File path (if set, logging enabled automatically)
+ --quiet build in quiet mode
+ -v, --verbose verbose output
+ --verboseLog verbose logging
+```
+
+### SEE ALSO
+
+* [hugo](/commands/hugo/) - hugo builds your site
+* [hugo list drafts](/commands/hugo_list_drafts/) - List all drafts
+* [hugo list expired](/commands/hugo_list_expired/) - List all posts already expired
+* [hugo list future](/commands/hugo_list_future/) - List all posts dated in the future
+
++###### Auto generated by spf13/cobra on 30-Jan-2019
--- /dev/null
- date: 2018-12-23
+---
- ###### Auto generated by spf13/cobra on 23-Dec-2018
++date: 2019-01-30
+title: "hugo list drafts"
+slug: hugo_list_drafts
+url: /commands/hugo_list_drafts/
+---
+## hugo list drafts
+
+List all drafts
+
+### Synopsis
+
+List all of the drafts in your content directory.
+
+```
+hugo list drafts [flags]
+```
+
+### Options
+
+```
+ -h, --help help for drafts
+```
+
+### Options inherited from parent commands
+
+```
+ --config string config file (default is path/config.yaml|json|toml)
+ --configDir string config dir (default "config")
+ --debug debug output
+ --log enable Logging
+ --logFile string log File path (if set, logging enabled automatically)
+ --quiet build in quiet mode
+ -s, --source string filesystem path to read files relative from
+ -v, --verbose verbose output
+ --verboseLog verbose logging
+```
+
+### SEE ALSO
+
+* [hugo list](/commands/hugo_list/) - Listing out various types of content
+
++###### Auto generated by spf13/cobra on 30-Jan-2019
--- /dev/null
- date: 2018-12-23
+---
- ###### Auto generated by spf13/cobra on 23-Dec-2018
++date: 2019-01-30
+title: "hugo list expired"
+slug: hugo_list_expired
+url: /commands/hugo_list_expired/
+---
+## hugo list expired
+
+List all posts already expired
+
+### Synopsis
+
+List all of the posts in your content directory which has already
+expired.
+
+```
+hugo list expired [flags]
+```
+
+### Options
+
+```
+ -h, --help help for expired
+```
+
+### Options inherited from parent commands
+
+```
+ --config string config file (default is path/config.yaml|json|toml)
+ --configDir string config dir (default "config")
+ --debug debug output
+ --log enable Logging
+ --logFile string log File path (if set, logging enabled automatically)
+ --quiet build in quiet mode
+ -s, --source string filesystem path to read files relative from
+ -v, --verbose verbose output
+ --verboseLog verbose logging
+```
+
+### SEE ALSO
+
+* [hugo list](/commands/hugo_list/) - Listing out various types of content
+
++###### Auto generated by spf13/cobra on 30-Jan-2019
--- /dev/null
- date: 2018-12-23
+---
- ###### Auto generated by spf13/cobra on 23-Dec-2018
++date: 2019-01-30
+title: "hugo list future"
+slug: hugo_list_future
+url: /commands/hugo_list_future/
+---
+## hugo list future
+
+List all posts dated in the future
+
+### Synopsis
+
+List all of the posts in your content directory which will be
+posted in the future.
+
+```
+hugo list future [flags]
+```
+
+### Options
+
+```
+ -h, --help help for future
+```
+
+### Options inherited from parent commands
+
+```
+ --config string config file (default is path/config.yaml|json|toml)
+ --configDir string config dir (default "config")
+ --debug debug output
+ --log enable Logging
+ --logFile string log File path (if set, logging enabled automatically)
+ --quiet build in quiet mode
+ -s, --source string filesystem path to read files relative from
+ -v, --verbose verbose output
+ --verboseLog verbose logging
+```
+
+### SEE ALSO
+
+* [hugo list](/commands/hugo_list/) - Listing out various types of content
+
++###### Auto generated by spf13/cobra on 30-Jan-2019
--- /dev/null
- date: 2018-12-23
+---
- -t, --theme string theme to use (located in /themes/THEMENAME/)
++date: 2019-01-30
+title: "hugo new"
+slug: hugo_new
+url: /commands/hugo_new/
+---
+## hugo new
+
+Create new content for your site
+
+### Synopsis
+
+Create a new content file and automatically set the date and title.
+It will guess which kind of file to create based on the path provided.
+
+You can also specify the kind with `-k KIND`.
+
+If archetypes are provided in your theme or site, they will be used.
+
+Ensure you run this within the root directory of your site.
+
+```
+hugo new [path] [flags]
+```
+
+### Options
+
+```
+ -b, --baseURL string hostname (and path) to the root, e.g. http://spf13.com/
+ -D, --buildDrafts include content marked as draft
+ -E, --buildExpired include expired content
+ -F, --buildFuture include content with publishdate in the future
+ --cacheDir string filesystem path to cache directory. Defaults: $TMPDIR/hugo_cache/
+ --cleanDestinationDir remove files from destination not found in static directories
+ -c, --contentDir string filesystem path to content directory
+ -d, --destination string filesystem path to write files to
+ --disableKinds strings disable different kind of pages (home, RSS etc.)
+ --editor string edit new content with this editor, if provided
+ --enableGitInfo add Git revision, date and author info to the pages
+ -e, --environment string build environment
+ --forceSyncStatic copy all files when static is changed.
+ --gc enable to run some cleanup tasks (remove unused cache files) after the build
+ -h, --help help for new
+ --i18n-warnings print missing translations
+ --ignoreCache ignores the cache directory
+ -k, --kind string content type to create
+ -l, --layoutDir string filesystem path to layout directory
+ --minify minify any supported output format (HTML, XML etc.)
+ --noChmod don't sync permission mode of files
+ --noTimes don't sync modification time of files
+ -s, --source string filesystem path to read files relative from
+ --stepAnalysis display memory and timing of different steps of the program
+ --templateMetrics display metrics about template executions
+ --templateMetricsHints calculate some improvement hints when combined with --templateMetrics
- ###### Auto generated by spf13/cobra on 23-Dec-2018
++ -t, --theme strings themes to use (located in /themes/THEMENAME/)
+ --themesDir string filesystem path to themes directory
+```
+
+### Options inherited from parent commands
+
+```
+ --config string config file (default is path/config.yaml|json|toml)
+ --configDir string config dir (default "config")
+ --debug debug output
+ --log enable Logging
+ --logFile string log File path (if set, logging enabled automatically)
+ --quiet build in quiet mode
+ -v, --verbose verbose output
+ --verboseLog verbose logging
+```
+
+### SEE ALSO
+
+* [hugo](/commands/hugo/) - hugo builds your site
+* [hugo new site](/commands/hugo_new_site/) - Create a new site (skeleton)
+* [hugo new theme](/commands/hugo_new_theme/) - Create a new theme
+
++###### Auto generated by spf13/cobra on 30-Jan-2019
--- /dev/null
- date: 2018-12-23
+---
- ###### Auto generated by spf13/cobra on 23-Dec-2018
++date: 2019-01-30
+title: "hugo new site"
+slug: hugo_new_site
+url: /commands/hugo_new_site/
+---
+## hugo new site
+
+Create a new site (skeleton)
+
+### Synopsis
+
+Create a new site in the provided directory.
+The new site will have the correct structure, but no content or theme yet.
+Use `hugo new [contentPath]` to create new content.
+
+```
+hugo new site [path] [flags]
+```
+
+### Options
+
+```
+ --force init inside non-empty directory
+ -f, --format string config & frontmatter format (default "toml")
+ -h, --help help for site
+```
+
+### Options inherited from parent commands
+
+```
+ --config string config file (default is path/config.yaml|json|toml)
+ --configDir string config dir (default "config")
+ --debug debug output
+ --log enable Logging
+ --logFile string log File path (if set, logging enabled automatically)
+ --quiet build in quiet mode
+ -s, --source string filesystem path to read files relative from
+ -v, --verbose verbose output
+ --verboseLog verbose logging
+```
+
+### SEE ALSO
+
+* [hugo new](/commands/hugo_new/) - Create new content for your site
+
++###### Auto generated by spf13/cobra on 30-Jan-2019
--- /dev/null
- date: 2018-12-23
+---
- ###### Auto generated by spf13/cobra on 23-Dec-2018
++date: 2019-01-30
+title: "hugo new theme"
+slug: hugo_new_theme
+url: /commands/hugo_new_theme/
+---
+## hugo new theme
+
+Create a new theme
+
+### Synopsis
+
+Create a new theme (skeleton) called [name] in the current directory.
+New theme is a skeleton. Please add content to the touched files. Add your
+name to the copyright line in the license and adjust the theme.toml file
+as you see fit.
+
+```
+hugo new theme [name] [flags]
+```
+
+### Options
+
+```
+ -h, --help help for theme
+```
+
+### Options inherited from parent commands
+
+```
+ --config string config file (default is path/config.yaml|json|toml)
+ --configDir string config dir (default "config")
+ --debug debug output
+ --log enable Logging
+ --logFile string log File path (if set, logging enabled automatically)
+ --quiet build in quiet mode
+ -s, --source string filesystem path to read files relative from
+ -v, --verbose verbose output
+ --verboseLog verbose logging
+```
+
+### SEE ALSO
+
+* [hugo new](/commands/hugo_new/) - Create new content for your site
+
++###### Auto generated by spf13/cobra on 30-Jan-2019
--- /dev/null
- date: 2018-12-23
+---
- -t, --theme string theme to use (located in /themes/THEMENAME/)
++date: 2019-01-30
+title: "hugo server"
+slug: hugo_server
+url: /commands/hugo_server/
+---
+## hugo server
+
+A high performance webserver
+
+### Synopsis
+
+Hugo provides its own webserver which builds and serves the site.
+While hugo server is high performance, it is a webserver with limited options.
+Many run it in production, but the standard behavior is for people to use it
+in development and use a more full featured server such as Nginx or Caddy.
+
+'hugo server' will avoid writing the rendered and served content to disk,
+preferring to store it in memory.
+
+By default hugo will also watch your files for any changes you make and
+automatically rebuild the site. It will then live reload any open browser pages
+and push the latest content to them. As most Hugo sites are built in a fraction
+of a second, you will be able to save and see your changes nearly instantly.
+
+```
+hugo server [flags]
+```
+
+### Options
+
+```
+ --appendPort append port to baseURL (default true)
+ -b, --baseURL string hostname (and path) to the root, e.g. http://spf13.com/
+ --bind string interface to which the server will bind (default "127.0.0.1")
+ -D, --buildDrafts include content marked as draft
+ -E, --buildExpired include expired content
+ -F, --buildFuture include content with publishdate in the future
+ --cacheDir string filesystem path to cache directory. Defaults: $TMPDIR/hugo_cache/
+ --cleanDestinationDir remove files from destination not found in static directories
+ -c, --contentDir string filesystem path to content directory
+ -d, --destination string filesystem path to write files to
+ --disableBrowserError do not show build errors in the browser
+ --disableFastRender enables full re-renders on changes
+ --disableKinds strings disable different kind of pages (home, RSS etc.)
+ --disableLiveReload watch without enabling live browser reload on rebuild
+ --enableGitInfo add Git revision, date and author info to the pages
+ -e, --environment string build environment
+ --forceSyncStatic copy all files when static is changed.
+ --gc enable to run some cleanup tasks (remove unused cache files) after the build
+ -h, --help help for server
+ --i18n-warnings print missing translations
+ --ignoreCache ignores the cache directory
+ -l, --layoutDir string filesystem path to layout directory
+ --liveReloadPort int port for live reloading (i.e. 443 in HTTPS proxy situations) (default -1)
+ --meminterval string interval to poll memory usage (requires --memstats), valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h". (default "100ms")
+ --memstats string log memory usage to this file
+ --minify minify any supported output format (HTML, XML etc.)
+ --navigateToChanged navigate to changed content file on live browser reload
+ --noChmod don't sync permission mode of files
+ --noHTTPCache prevent HTTP caching
+ --noTimes don't sync modification time of files
+ -p, --port int port on which the server will listen (default 1313)
+ --renderToDisk render to Destination path (default is render to memory & serve from there)
+ -s, --source string filesystem path to read files relative from
+ --stepAnalysis display memory and timing of different steps of the program
+ --templateMetrics display metrics about template executions
+ --templateMetricsHints calculate some improvement hints when combined with --templateMetrics
- ###### Auto generated by spf13/cobra on 23-Dec-2018
++ -t, --theme strings themes to use (located in /themes/THEMENAME/)
+ --themesDir string filesystem path to themes directory
+ -w, --watch watch filesystem for changes and recreate as needed (default true)
+```
+
+### Options inherited from parent commands
+
+```
+ --config string config file (default is path/config.yaml|json|toml)
+ --configDir string config dir (default "config")
+ --debug debug output
+ --log enable Logging
+ --logFile string log File path (if set, logging enabled automatically)
+ --quiet build in quiet mode
+ -v, --verbose verbose output
+ --verboseLog verbose logging
+```
+
+### SEE ALSO
+
+* [hugo](/commands/hugo/) - hugo builds your site
+
++###### Auto generated by spf13/cobra on 30-Jan-2019
--- /dev/null
- date: 2018-12-23
+---
- ###### Auto generated by spf13/cobra on 23-Dec-2018
++date: 2019-01-30
+title: "hugo version"
+slug: hugo_version
+url: /commands/hugo_version/
+---
+## hugo version
+
+Print the version number of Hugo
+
+### Synopsis
+
+All software has versions. This is Hugo's.
+
+```
+hugo version [flags]
+```
+
+### Options
+
+```
+ -h, --help help for version
+```
+
+### Options inherited from parent commands
+
+```
+ --config string config file (default is path/config.yaml|json|toml)
+ --configDir string config dir (default "config")
+ --debug debug output
+ --log enable Logging
+ --logFile string log File path (if set, logging enabled automatically)
+ --quiet build in quiet mode
+ -v, --verbose verbose output
+ --verboseLog verbose logging
+```
+
+### SEE ALSO
+
+* [hugo](/commands/hugo/) - hugo builds your site
+
++###### Auto generated by spf13/cobra on 30-Jan-2019
--- /dev/null
- hugo new --kind post-bundle post/my-post
+---
+title: Archetypes
+linktitle: Archetypes
+description: Archetypes are templates used when creating new content.
+date: 2017-02-01
+publishdate: 2017-02-01
+keywords: [archetypes,generators,metadata,front matter]
+categories: ["content management"]
+menu:
+ docs:
+ parent: "content-management"
+ weight: 70
+ quicklinks:
+weight: 70 #rem
+draft: false
+aliases: [/content/archetypes/]
+toc: true
+---
+
+## What are Archetypes?
+
+**Archetypes** are content template files in the [archetypes directory][] of your project that contain preconfigured [front matter][] and possibly also a content disposition for your website's [content types][]. These will be used when you run `hugo new`.
+
+
+The `hugo new` uses the `content-section` to find the most suitable archetype template in your project. If your project does not contain any archetype files, it will also look in the theme.
+
+{{< code file="archetype-example.sh" >}}
+hugo new posts/my-first-post.md
+{{< /code >}}
+
+The above will create a new content file in `content/posts/my-first-post.md` using the first archetype file found of these:
+
+1. `archetypes/posts.md`
+2. `archetypes/default.md`
+3. `themes/my-theme/archetypes/posts.md`
+4. `themes/my-theme/archetypes/default.md`
+
+The last two list items are only applicable if you use a theme and it uses the `my-theme` theme name as an example.
+
+## Create a New Archetype Template
+
+A fictional example for the section `newsletter` and the archetype file `archetypes/newsletter.md`. Create a new file in `archetypes/newsletter.md` and open it in a text editor.
+
+{{< code file="archetypes/newsletter.md" >}}
+---
+title: "{{ replace .Name "-" " " | title }}"
+date: {{ .Date }}
+draft: true
+---
+
+**Insert Lead paragraph here.**
+
+## New Cool Posts
+
+{{ range first 10 ( where .Site.RegularPages "Type" "cool" ) }}
+* {{ .Title }}
+{{ end }}
+{{< /code >}}
+
+When you create a new newsletter with:
+
+```bash
+hugo new newsletter/the-latest-cool.stuff.md
+```
+
+It will create a new newsletter type of content file based on the archetype template.
+
+**Note:** the site will only be built if the `.Site` is in use in the archetype file, and this can be time consuming for big sites.
+
+The above _newsletter type archetype_ illustrates the possibilities: The full Hugo `.Site` and all of Hugo's template funcs can be used in the archetype file.
+
+
+## Directory based archetypes
+
+Since Hugo `0.49` you can use complete directories as archetype templates. Given this archetype directory:
+
+```bash
+archetypes
+├── default.md
+└── post-bundle
+ ├── bio.md
+ ├── images
+ │ └── featured.jpg
+ └── index.md
+```
+
+```bash
- Will create a new folder in `/content/post/my-post` with the same set of files as in the `post-bundle` archetypes folder. All content files (`index.md` etc.) can contain template logic, and will receive the correct `.Site` for the content's language.
++hugo new --kind post-bundle posts/my-post
+```
+
++Will create a new folder in `/content/posts/my-post` with the same set of files as in the `post-bundle` archetypes folder. All content files (`index.md` etc.) can contain template logic, and will receive the correct `.Site` for the content's language.
+
+
+
+[archetypes directory]: /getting-started/directory-structure/
+[content types]: /content-management/types/
+[front matter]: /content-management/front-matter/
--- /dev/null
- You will get an error if you document could not be uniquely resolved. The error behaviour can be configured, see below.
+---
+title: Links and Cross References
+description: Shortcodes for creating links to documents.
+date: 2017-02-01
+publishdate: 2017-02-01
+lastmod: 2017-03-31
+categories: [content management]
+keywords: ["cross references","references", "anchors", "urls"]
+menu:
+ docs:
+ parent: "content-management"
+ weight: 100
+weight: 100 #rem
+aliases: [/extras/crossreferences/]
+toc: true
+---
+
+
+The `ref` and `relref` shortcode resolves the absolute or relative permalink given a path to a document.
+
+## Use `ref` and `relref`
+
+```go-html-template
+{{</* ref "document.md" */>}}
+{{</* ref "#anchor" */>}}
+{{</* ref "document.md#anchor" */>}}
+{{</* ref "/blog/my-post" */>}}
+{{</* ref "/blog/my-post.md" */>}}
+{{</* relref "document.md" */>}}
+{{</* relref "#anchor" */>}}
+{{</* relref "document.md#anchor" */>}}
+```
+
+The single parameter to `ref` is a string with a content `documentname` (e.g., `about.md`) with or without an appended in-document `anchor` (`#who`) without spaces. Hugo is flexible in how we search for documents, so the file suffix may be omitted.
+
+**Paths without a leading `/` will first be tried resolved relative to the current page.**
+
++You will get an error if your document could not be uniquely resolved. The error behaviour can be configured, see below.
+
+### Link to another language version
+
+Link to another language version of a document, you need to use this syntax:
+
+```go-html-template
+{{</* relref path="document.md" lang="ja" */>}}
+```
+
+### Get another Output Format
+
+To link to a given Output Format of a document, you can use this syntax:
+
+```go-html-template
+{{</* relref path="document.md" outputFormat="rss" */>}}
+```
+
+### Anchors
+
+When an `anchor` is provided by itself, the current page’s unique identifier will be appended; when an `anchor` is provided appended to `documentname`, the found page's unique identifier will be appended:
+
+```go-html-template
+{{</* relref "#anchors" */>}} => #anchors:9decaf7
+```
+
+The above examples render as follows for this very page as well as a reference to the "Content" heading in the Hugo docs features pageyoursite
+
+```go-html-template
+{{</* relref "#who" */>}} => #who:9decaf7
+{{</* relref "/blog/post.md#who" */>}} => /blog/post/#who:badcafe
+```
+
+More information about document unique identifiers and headings can be found [below]({{< ref "#hugo-heading-anchors" >}}).
+
+
+## Ref and RelRef Configuration
+
+The behaviour can, since Hugo 0.45, be configured in `config.toml`:
+
+refLinksErrorLevel ("ERROR")
+: When using `ref` or `relref` to resolve page links and a link cannot resolved, it will be logged with this logg level. Valid values are `ERROR` (default) or `WARNING`. Any `ERROR` will fail the build (`exit -1`).
+
+refLinksNotFoundURL
+: URL to be used as a placeholder when a page reference cannot be found in `ref` or `relref`. Is used as-is.
+
+
+[lists]: /templates/lists/
+[output formats]: /templates/output-formats/
+[shortcode]: /content-management/shortcodes/
+[bfext]: /content-management/formats/#blackfriday-extensions
--- /dev/null
- In this example, the top level of the menu is defined in your [site `config` file][config]). All content entries are attached to one of these entries via the `.Parent` field.
+---
+title: Menus
+linktitle: Menus
+description: Hugo has a simple yet powerful menu system.
+date: 2017-02-01
+publishdate: 2017-02-01
+lastmod: 2017-03-31
+categories: [content management]
+keywords: [menus]
+draft: false
+menu:
+ docs:
+ parent: "content-management"
+ weight: 120
+weight: 120 #rem
+aliases: [/extras/menus/]
+toc: true
+---
+
+{{% note "Lazy Blogger"%}}
+If all you want is a simple menu for your sections, see the ["Section Menu for Lazy Bloggers" in Menu Templates](/templates/menu-templates/#section-menu-for-lazy-bloggers).
+{{% /note %}}
+
+You can do this:
+
+* Place content in one or many menus
+* Handle nested menus with unlimited depth
+* Create menu entries without being attached to any content
+* Distinguish active element (and active branch)
+
+## What is a Menu in Hugo?
+
+A **menu** is a named array of menu entries accessible by name via the [`.Site.Menus` site variable][sitevars]. For example, you can access your site's `main` menu via `.Site.Menus.main`.
+
+{{% note "Menus on Multilingual Sites" %}}
+If you make use of the [multilingual feature](/content-management/multilingual/), you can define language-independent menus.
+{{% /note %}}
+
+See the [Menu Entry Properties][me-props] for all the variables and functions related to a menu entry.
+
+## Add content to menus
+
+Hugo allows you to add content to a menu via the content's [front matter](/content-management/front-matter/).
+
+### Simple
+
+If all you need to do is add an entry to a menu, the simple form works well.
+
+#### A Single Menu
+
+```
+---
+menu: "main"
+---
+```
+
+#### Multiple Menus
+
+```
+---
+menu: ["main", "footer"]
+---
+```
+
+#### Advanced
+
+
+```
+---
+menu:
+ docs:
+ parent: 'extras'
+ weight: 20
+---
+```
+
+## Add Non-content Entries to a Menu
+
+You can also add entries to menus that aren’t attached to a piece of content. This takes place in your Hugo project's [`config` file][config].
+
+Here’s an example snippet pulled from a configuration file:
+
+{{< code-toggle file="config" >}}
+[[menu.main]]
+ name = "about hugo"
+ pre = "<i class='fa fa-heart'></i>"
+ weight = -110
+ identifier = "about"
+ url = "/about/"
+[[menu.main]]
+ name = "getting started"
+ pre = "<i class='fa fa-road'></i>"
+ post = "<span class='alert'>New!</span>"
+ weight = -100
+ url = "/getting-started/"
+{{< /code-toggle >}}
+
+{{% note %}}
+The URLs must be relative to the context root. If the `baseURL` is `https://example.com/mysite/`, then the URLs in the menu must not include the context root `mysite`. Using an absolute URL will override the baseURL. If the value used for `URL` in the above example is `https://subdomain.example.com/`, the output will be `https://subdomain.example.com`.
+{{% /note %}}
+
+## Nesting
+
+All nesting of content is done via the `parent` field.
+
+The parent of an entry should be the identifier of another entry. The identifier should be unique (within a menu).
+
+The following order is used to determine an Identifier:
+
+`.Name > .LinkTitle > .Title`
+
+This means that `.Title` will be used unless `.LinkTitle` is present, etc. In practice, `.Name` and `.Identifier` are only used to structure relationships and therefore never displayed.
+
++In this example, the top level of the menu is defined in your [site `config` file][config]. All content entries are attached to one of these entries via the `.Parent` field.
+
+## Render Menus
+
+See [Menu Templates](/templates/menu-templates/) for information on how to render your site menus within your templates.
+
+[config]: /getting-started/configuration/
+[multilingual]: /content-management/multilingual/
+[sitevars]: /variables/
+[me-props]: /variables/menus/
--- /dev/null
- Hugo `0.32` announced page-relative images and other resources packaged into `Page Bundles`.
+---
+title: Content Organization
+linktitle: Organization
+description: Hugo assumes that the same structure that works to organize your source content is used to organize the rendered site.
+date: 2017-02-01
+publishdate: 2017-02-01
+lastmod: 2017-02-01
+categories: [content management,fundamentals]
+keywords: [sections,content,organization,bundle,resources]
+menu:
+ docs:
+ parent: "content-management"
+ weight: 10
+weight: 10 #rem
+draft: false
+aliases: [/content/sections/]
+toc: true
+---
+
+## Page Bundles
+
- While Hugo supports content nested at any level, the top levels (i.e. `content/<DIRECTORIES>`) are special in Hugo and are considered the content type used to determine layouts etc. To read more about sections, including how to nest them, see [sections][].
++Hugo `0.32` announced page-relative images and other resources packaged into `Page Bundles`.
+
+These terms are connected, and you also need to read about [Page Resources]({{< relref "/content-management/page-resources" >}}) and [Image Processing]({{< relref "/content-management/image-processing" >}}) to get the full picture.
+
+{{% imgproc 1-featured Resize "300x" %}}
+The illustration shows 3 bundles. Note that the home page bundle cannot contain other content pages, but other files (images etc.) are fine.
+{{% /imgproc %}}
+
+
+{{% note %}}
+The bundle documentation is **work in progress**. We will publish more comprehensive docs about this soon.
+{{% /note %}}
+
+
+# Organization of Content Source
+
+
+In Hugo, your content should be organized in a manner that reflects the rendered website.
+
- ├── post
- | ├── firstpost.md // <- https://example.com/post/firstpost/
++While Hugo supports content nested at any level, the top levels (i.e. `content/<DIRECTORIES>`) are special in Hugo and are considered the content type used to determine layouts etc. To read more about sections, including how to nest them, see [sections][].
+
+Without any additional configuration, the following will just work:
+
+```
+.
+└── content
+ └── about
+ | └── _index.md // <- https://example.com/about/
- | | └── ness.md // <- https://example.com/post/happy/ness/
- | └── secondpost.md // <- https://example.com/post/secondpost/
++ ├── posts
++ | ├── firstpost.md // <- https://example.com/posts/firstpost/
+ | ├── happy
- `_index.md` has a special role in Hugo. It allows you to add front matter and content to your [list templates][lists]. These templates include those for [section templates][], [taxonomy templates][], [taxonomy terms templates][], and your [homepage template][].
++ | | └── ness.md // <- https://example.com/posts/happy/ness/
++ | └── secondpost.md // <- https://example.com/posts/secondpost/
+ └── quote
+ ├── first.md // <- https://example.com/quote/first/
+ └── second.md // <- https://example.com/quote/second/
+```
+
+## Path Breakdown in Hugo
+
+
+The following demonstrates the relationships between your content organization and the output URL structure for your Hugo website when it renders. These examples assume you are [using pretty URLs][pretty], which is the default behavior for Hugo. The examples also assume a key-value of `baseurl = "https://example.com"` in your [site's configuration file][config].
+
+### Index Pages: `_index.md`
+
++`_index.md` has a special role in Hugo. It allows you to add front matter and content to your [list templates][lists]. These templates include those for [section templates][], [taxonomy templates][], [taxonomy terms templates][], and your [homepage template][].
+
+{{% note %}}
+**Tip:** You can get a reference to the content and metadata in `_index.md` using the [`.Site.GetPage` function](/functions/getpage/).
+{{% /note %}}
+
+You can keep one `_index.md` for your homepage and one in each of your content sections, taxonomies, and taxonomy terms. The following shows typical placement of an `_index.md` that would contain content and front matter for a `posts` section list page on a Hugo website:
+
+
+```
+. url
+. ⊢--^-⊣
+. path slug
+. ⊢--^-⊣⊢---^---⊣
+. filepath
+. ⊢------^------⊣
+content/posts/_index.md
+```
+
+At build, this will output to the following destination with the associated values:
+
+```
+
+ url ("/posts/")
+ ⊢-^-⊣
+ baseurl section ("posts")
+⊢--------^---------⊣⊢-^-⊣
+ permalink
+⊢----------^-------------⊣
+https://example.com/posts/index.html
+```
+
+The [sections][] can be nested as deeply as you need. The important part to understand is, that to make the section tree fully navigational, at least the lower-most section needs a content file. (i.e. `_index.md`).
+
+
+### Single Pages in Sections
+
+Single content files in each of your sections are going to be rendered as [single page templates][singles]. Here is an example of a single `post` within `posts`:
+
+
+```
+ path ("posts/my-first-hugo-post.md")
+. ⊢-----------^------------⊣
+. section slug
+. ⊢-^-⊣⊢--------^----------⊣
+content/posts/my-first-hugo-post.md
+```
+
+At the time Hugo builds your site, the content will be output to the following destination:
+
+```
+
+ url ("/posts/my-first-hugo-post/")
+ ⊢------------^----------⊣
+ baseurl section slug
+⊢--------^--------⊣⊢-^--⊣⊢-------^---------⊣
+ permalink
+⊢--------------------^---------------------⊣
+https://example.com/posts/my-first-hugo-post/index.html
+```
+
+
+## Paths Explained
+
+The following concepts will provide more insight into the relationship between your project's organization and the default behaviors of Hugo when building the output website.
+
+### `section`
+
+A default content type is determined by a piece of content's section. `section` is determined by the location within the project's `content` directory. `section` *cannot* be specified or overridden in front matter.
+
+### `slug`
+
+A content's `slug` is either `name.extension` or `name/`. The value for `slug` is determined by
+
+* the name of the content file (e.g., `lollapalooza.md`) OR
+* front matter overrides
+
+### `path`
+
+A content's `path` is determined by the section's path to the file. The file `path`
+
+* is based on the path to the content's location AND
+* does not include the slug
+
+### `url`
+
+The `url` is the relative URL for the piece of content. The `url`
+
+* is based on the content's location within the directory structure OR
+* is defined in front matter and *overrides all the above*
+
+## Override Destination Paths via Front Matter
+
+Hugo believes that you organize your content with a purpose. The same structure that works to organize your source content is used to organize the rendered site. As displayed above, the organization of the source content will be mirrored in the destination.
+
+There are times where you may need more control over your content. In these cases, there are fields that can be specified in the front matter to determine the destination of a specific piece of content.
+
+The following items are defined in this order for a specific reason: items explained further down in the list will override earlier items, and not all of these items can be defined in front matter:
+
+### `filename`
+
+This isn't in the front matter, but is the actual name of the file minus the extension. This will be the name of the file in the destination (e.g., `content/posts/my-post.md` becomes `example.com/posts/my-post/`).
+
+### `slug`
+
+When defined in the front matter, the `slug` can take the place of the filename for the destination.
+
+{{< code file="content/posts/old-post.md" >}}
+---
+title: New Post
+slug: "new-post"
+---
+{{< /code >}}
+
+This will render to the following destination according to Hugo's default behavior:
+
+```
+example.com/posts/new-post/
+```
+
+### `section`
+
+`section` is determined by a content's location on disk and *cannot* be specified in the front matter. See [sections][] for more information.
+
+### `type`
+
+A content's `type` is also determined by its location on disk but, unlike `section`, it *can* be specified in the front matter. See [types][]. This can come in especially handy when you want a piece of content to render using a different layout. In the following example, you can create a layout at `layouts/new/mylayout.html` that Hugo will use to render this piece of content, even in the midst of many other posts.
+
+{{< code file="content/posts/my-post.md" >}}
+---
+title: My Post
+type: new
+layout: mylayout
+---
+{{< /code >}}
+<!-- See https://discourse.gohugo.io/t/path-not-works/6387 -->
+<!-- ### `path`-->
+
+<!--`path` can be provided in the front matter. This will replace the actual path to the file on disk. Destination will create the destination with the same path, including the section. -->
+
+### `url`
+
+A complete URL can be provided. This will override all the above as it pertains to the end destination. This must be the path from the baseURL (starting with a `/`). `url` will be used exactly as it provided in the front matter and will ignore the `--uglyURLs` setting in your site configuration:
+
+{{< code file="content/posts/old-url.md" >}}
+---
+title: Old URL
+url: /blog/new-url/
+---
+{{< /code >}}
+
+Assuming your `baseURL` is [configured][config] to `https://example.com`, the addition of `url` to the front matter will make `old-url.md` render to the following destination:
+
+```
+https://example.com/blog/new-url/
+```
+
+You can see more information on how to control output paths in [URL Management][urls].
+
+[config]: /getting-started/configuration/
+[formats]: /content-management/formats/
+[front matter]: /content-management/front-matter/
+[getpage]: /functions/getpage/
+[homepage template]: /templates/homepage/
+[homepage]: /templates/homepage/
+[lists]: /templates/lists/
+[pretty]: /content-management/urls/#pretty-urls
+[section templates]: /templates/section-templates/
+[sections]: /content-management/sections/
+[singles]: /templates/single-page-templates/
+[taxonomy templates]: /templates/taxonomy-templates/
+[taxonomy terms templates]: /templates/taxonomy-templates/
+[types]: /content-management/types/
+[urls]: /content-management/urls/
--- /dev/null
- : Default blank. Can be set in front matter.
+---
+title : "Page Resources"
+description : "Page Resources -- images, other pages, documents etc. -- have page-relative URLs and their own metadata."
+date: 2018-01-24
+categories: ["content management"]
+keywords: [bundle,content,resources]
+weight: 4003
+draft: false
+toc: true
+linktitle: "Page Resources"
+menu:
+ docs:
+ parent: "content-management"
+ weight: 31
+---
+
+## Properties
+
+ResourceType
+: The main type of the resource. For example, a file of MIME type `image/jpg` has the ResourceType `image`.
+
+Name
+: Default value is the filename (relative to the owning page). Can be set in front matter.
+
+Title
++: Default value is the same as `.Name`. Can be set in front matter.
+
+Permalink
+: The absolute URL to the resource. Resources of type `page` will have no value.
+
+RelPermalink
+: The relative URL to the resource. Resources of type `page` will have no value.
+
+Content
+: The content of the resource itself. For most resources, this returns a string with the contents of the file. This can be used to inline some resources, such as `<script>{{ (.Resources.GetMatch "myscript.js").Content | safeJS }}</script>` or `<img src="{{ (.Resources.GetMatch "mylogo.png").Content | base64Encode }}">`.
+
+MediaType
+: The MIME type of the resource, such as `image/jpg`.
+
+MediaType.MainType
+: The main type of the resource's MIME type. For example, a file of MIME type `application/pdf` has for MainType `application`.
+
+MediaType.SubType
+: The subtype of the resource's MIME type. For example, a file of MIME type `application/pdf` has for SubType `pdf`. Note that this is not the same as the file extension - PowerPoint files have a subtype of `vnd.mspowerpoint`.
+
+MediaType.Suffixes
+: A slice of possible suffixes for the resource's MIME type.
+
+## Methods
+ByType
+: Returns the page resources of the given type.
+
+```go
+{{ .Resources.ByType "image" }}
+```
+Match
+: Returns all the page resources (as a slice) whose `Name` matches the given Glob pattern ([examples](https://github.com/gobwas/glob/blob/master/readme.md)). The matching is case-insensitive.
+
+```go
+{{ .Resources.Match "images/*" }}
+```
+
+GetMatch
+: Same as `Match` but will return the first match.
+
+### Pattern Matching
+```go
+// Using Match/GetMatch to find this images/sunset.jpg ?
+.Resources.Match "images/sun*" ✅
+.Resources.Match "**/Sunset.jpg" ✅
+.Resources.Match "images/*.jpg" ✅
+.Resources.Match "**.jpg" ✅
+.Resources.Match "*" 🚫
+.Resources.Match "sunset.jpg" 🚫
+.Resources.Match "*sunset.jpg" 🚫
+
+```
+
+## Page Resources Metadata
+
+Page Resources' metadata is managed from their page's front matter with an array/table parameter named `resources`. You can batch assign values using a [wildcards](http://tldp.org/LDP/GNU-Linux-Tools-Summary/html/x11655.htm).
+
+{{% note %}}
+Resources of type `page` get `Title` etc. from their own front matter.
+{{% /note %}}
+
+name
+: Sets the value returned in `Name`.
+
+{{% warning %}}
+The methods `Match` and `GetMatch` use `Name` to match the resources.
+{{%/ warning %}}
+
+title
+: Sets the value returned in `Title`
+
+params
+: A map of custom key/values.
+
+
+### Resources metadata example
+
+{{< code-toggle copy="false">}}
+title: Application
+date : 2018-01-25
+resources :
+- src : "images/sunset.jpg"
+ name : "header"
+- src : "documents/photo_specs.pdf"
+ title : "Photo Specifications"
+ params:
+ icon : "photo"
+- src : "documents/guide.pdf"
+ title : "Instruction Guide"
+- src : "documents/checklist.pdf"
+ title : "Document Checklist"
+- src : "documents/payment.docx"
+ title : "Proof of Payment"
+- src : "**.pdf"
+ name : "pdf-file-:counter"
+ params :
+ icon : "pdf"
+- src : "**.docx"
+ params :
+ icon : "word"
+{{</ code-toggle >}}
+
+From the example above:
+
+- `sunset.jpg` will receive a new `Name` and can now be found with `.GetMatch "header"`.
+- `documents/photo_specs.pdf` will get the `photo` icon.
+- `documents/checklist.pdf`, `documents/guide.pdf` and `documents/payment.docx` will get `Title` as set by `title`.
+- Every `PDF` in the bundle except `documents/photo_specs.pdf` will get the `pdf` icon.
+- All `PDF` files will get a new `Name`. The `name` parameter contains a special placeholder [`:counter`](#the-counter-placeholder-in-name-and-title), so the `Name` will be `pdf-file-1`, `pdf-file-2`, `pdf-file-3`.
+- Every docx in the bundle will receive the `word` icon.
+
+{{% warning %}}
+The __order matters__ --- Only the **first set** values of the `title`, `name` and `params`-**keys** will be used. Consecutive parameters will be set only for the ones not already set. For example, in the above example, `.Params.icon` is already first set to `"photo"` in `src = "documents/photo_specs.pdf"`. So that would not get overridden to `"pdf"` by the later set `src = "**.pdf"` rule.
+{{%/ warning %}}
+
+### The `:counter` placeholder in `name` and `title`
+
+The `:counter` is a special placeholder recognized in `name` and `title` parameters `resources`.
+
+The counter starts at 1 the first time they are used in either `name` or `title`.
+
+For example, if a bundle has the resources `photo_specs.pdf`, `other_specs.pdf`, `guide.pdf` and `checklist.pdf`, and the front matter has specified the `resources` as:
+
+{{< code-toggle copy="false">}}
+[[resources]]
+ src = "*specs.pdf"
+ title = "Specification #:counter"
+[[resources]]
+ src = "**.pdf"
+ name = "pdf-file-:counter"
+{{</ code-toggle >}}
+
+the `Name` and `Title` will be assigned to the resource files as follows:
+
+| Resource file | `Name` | `Title` |
+|-------------------|-------------------|-----------------------|
+| checklist.pdf | `"pdf-file-1.pdf` | `"checklist.pdf"` |
+| guide.pdf | `"pdf-file-2.pdf` | `"guide.pdf"` |
+| other\_specs.pdf | `"pdf-file-3.pdf` | `"Specification #1"` |
+| photo\_specs.pdf | `"pdf-file-4.pdf` | `"Specification #2"` |
--- /dev/null
- all **static files** (e.g. stylesheets, JavaScript, images).
+---
+title: Static Files
+description: "Files that get served **statically** (as-is, no modification) on the site root."
+date: 2017-11-18
+categories: [content management]
+keywords: [source, directories]
+menu:
+ docs:
+ parent: "content-management"
+ weight: 130
+weight: 130 #rem
+aliases: [/static-files]
+toc: true
+---
+
+By default, the `static/` directory in the site project is used for
++all **static files** (e.g. stylesheets, JavaScript, images). The static files are served on the site root path (eg. if you have the file `static/image.png` you can access it using `http://{server-url}/image.png`, to include it in a document you can use ` )`.
+
+Hugo can be configured to look into a different directory, or even
+**multiple directories** for such static files by configuring the
+`staticDir` parameter in the [site config][]. All the files in all the
+static directories will form a union filesystem.
+
+This union filesystem will be served from your site root. So a file
+`<SITE PROJECT>/static/me.png` will be accessible as
+`<MY_BASEURL>/me.png`.
+
+Here's an example of setting `staticDir` and `staticDir2` for a
+multi-language site:
+
+{{< code-toggle copy="false" file="config" >}}
+staticDir = ["static1", "static2"]
+
+[languages]
+[languages.en]
+staticDir2 = "static_en"
+baseURL = "https://example.com"
+languageName = "English"
+weight = 2
+title = "In English"
+[languages.no]
+staticDir = ["staticDir_override", "static_no"]
+baseURL = "https://example.no"
+languageName = "Norsk"
+weight = 1
+title = "På norsk"
+{{</ code-toggle >}}
+
+In the above, with no theme used:
+
+- The English site will get its static files as a union of "static1",
+ "static2" and "static_en". On file duplicates, the right-most
+ version will win.
+- The Norwegian site will get its static files as a union of
+ "staticDir_override" and "static_no".
+
+Note 1
+: The **2** (can be a number between 0 and 10) in `staticDir2` is
+ added to tell Hugo that you want to **add** this directory to the
+ global set of static directories defined using `staticDir`. Using
+ `staticDir` on the language level would replace the global value (as
+ can be seen in the Norwegian site case).
+
+Note 2
+: The example above is a [multihost setup][]. In a regular setup, all
+ the static directories will be available to all sites.
+
+
+[site config]: /getting-started/configuration/#all-configuration-settings
+[multihost setup]: /content-management/multilingual/#configure-multilingual-multihost
--- /dev/null
- Without adding a single line to your [site config][config] file, Hugo will automatically create taxonomies for `tags` and `categories`. That would be same as manually [configuring your taxonomies](#configuring-taxonomies) as below:
+---
+title: Taxonomies
+linktitle:
+description: Hugo includes support for user-defined taxonomies to help you demonstrate logical relationships between content for the end users of your website.
+date: 2017-02-01
+publishdate: 2017-02-01
+lastmod: 2017-02-01
+keywords: [taxonomies,metadata,front matter,terms]
+categories: [content management]
+menu:
+ docs:
+ parent: "content-management"
+ weight: 80
+weight: 80 #rem
+draft: false
+aliases: [/taxonomies/overview/,/taxonomies/usage/,/indexes/overview/,/doc/indexes/,/extras/indexes]
+toc: true
+---
+
+## What is a Taxonomy?
+
+Hugo includes support for user-defined groupings of content called **taxonomies**. Taxonomies are classifications of logical relationships between content.
+
+### Definitions
+
+Taxonomy
+: a categorization that can be used to classify content
+
+Term
+: a key within the taxonomy
+
+Value
+: a piece of content assigned to a term
+
+{{< youtube pCPCQgqC8RA >}}
+
+## Example Taxonomy: Movie Website
+
+Let's assume you are making a website about movies. You may want to include the following taxonomies:
+
+* Actors
+* Directors
+* Studios
+* Genre
+* Year
+* Awards
+
+Then, in each of the movies, you would specify terms for each of these taxonomies (i.e., in the [front matter][] of each of your movie content files). From these terms, Hugo would automatically create pages for each Actor, Director, Studio, Genre, Year, and Award, with each listing all of the Movies that matched that specific Actor, Director, Studio, Genre, Year, and Award.
+
+### Movie Taxonomy Organization
+
+To continue with the example of a movie site, the following demonstrates content relationships from the perspective of the taxonomy:
+
+```
+Actor <- Taxonomy
+ Bruce Willis <- Term
+ The Sixth Sense <- Value
+ Unbreakable <- Value
+ Moonrise Kingdom <- Value
+ Samuel L. Jackson <- Term
+ Unbreakable <- Value
+ The Avengers <- Value
+ xXx <- Value
+```
+
+From the perspective of the content, the relationships would appear differently, although the data and labels used are the same:
+
+```
+Unbreakable <- Value
+ Actors <- Taxonomy
+ Bruce Willis <- Term
+ Samuel L. Jackson <- Term
+ Director <- Taxonomy
+ M. Night Shyamalan <- Term
+ ...
+Moonrise Kingdom <- Value
+ Actors <- Taxonomy
+ Bruce Willis <- Term
+ Bill Murray <- Term
+ Director <- Taxonomy
+ Wes Anderson <- Term
+ ...
+```
+
+## Hugo Taxonomy Defaults {#default-taxonomies}
+
+Hugo natively supports taxonomies.
+
++Without adding a single line to your [site config][config] file, Hugo will automatically create taxonomies for `tags` and `categories`. That would be the same as manually [configuring your taxonomies](#configuring-taxonomies) as below:
+
+{{< code-toggle copy="false" >}}
+[taxonomies]
+ tag = "tags"
+ category = "categories"
+{{</ code-toggle >}}
+
+If you do not want Hugo to create any taxonomies, set `disableKinds` in your [site config][config] to the following:
+
+{{< code-toggle copy="false" >}}
+disableKinds = ["taxonomy","taxonomyTerm"]
+{{</ code-toggle >}}
+
+### Default Destinations
+
+When taxonomies are used---and [taxonomy templates][] are provided---Hugo will automatically create both a page listing all the taxonomy's terms and individual pages with lists of content associated with each term. For example, a `categories` taxonomy declared in your configuration and used in your content front matter will create the following pages:
+
+* A single page at `example.com/categories/` that lists all the [terms within the taxonomy][]
+* [Individual taxonomy list pages][taxonomy templates] (e.g., `/categories/development/`) for each of the terms that shows a listing of all pages marked as part of that taxonomy within any content file's [front matter][]
+
+## Configure Taxonomies {#configuring-taxonomies}
+
+Custom taxonomies other than the [defaults](#default-taxonomies) must be defined in your [site config][config] before they can be used throughout the site. You need to provide both the plural and singular labels for each taxonomy. For example, `singular key = "plural value"` for TOML and `singular key: "plural value"` for YAML.
+
+### Example: Adding a custom taxonomy named "series"
+
+{{% note %}}
+While adding custom taxonomies, you need to put in the default taxonomies too, _if you want to keep them_.
+{{% /note %}}
+
+{{< code-toggle copy="false" >}}
+[taxonomies]
+ tag = "tags"
+ category = "categories"
+ series = "series"
+{{</ code-toggle >}}
+
+### Example: Removing default taxonomies
+
+If you want to have just the default `tags` taxonomy, and remove the `categories` taxonomy for your site, you can do so by modifying the `taxonomies` value in your [site config][config].
+
+{{< code-toggle copy="false" >}}
+[taxonomies]
+ tag = "tags"
+{{</ code-toggle >}}
+
+If you want to disable all taxonomies altogether, see the use of `disableKinds` in [Hugo Taxonomy Defaults](#default-taxonomies).
+
+### Preserve Taxonomy Values
+
+By default, taxonomy names are normalized.
+
+Therefore, if you want to have a taxonomy term with special characters such as `Gérard Depardieu` instead of `Gerard Depardieu`, set the value for `preserveTaxonomyNames` to `true` in your [site config][config]. Hugo will then preserve special characters in taxonomy values but will still normalize them in URLs.
+
+Note that if you use `preserveTaxonomyNames` and intend to manually construct URLs to the archive pages, you will need to pass the taxonomy values through the [`urlize` template function][].
+
+{{% note %}}
+You can add content and front matter to your taxonomy list and taxonomy terms pages. See [Content Organization](/content-management/organization/) for more information on how to add an `_index.md` for this purpose.
+
+Much like regular pages, taxonomy list [permalinks](/content-management/urls/) are configurable, but taxonomy term page permalinks are not.
+{{% /note %}}
+
+{{% warning "`preserveTaxonomyNames` behaviour change" %}}
+Before 0.49, Hugo would make the first character upper case for the taxonomy values for titles even if `preserveTaxonomyNames` was active. This no longer the case, which (for instance) makes it possible to have fully lower-case values.
+
+If you actually need to title-ize these values, you can do so using the `strings.FirstUpper` template function.
+{{% /warning %}}
+
+## Add Taxonomies to Content
+
+Once a taxonomy is defined at the site level, any piece of content can be assigned to it, regardless of [content type][] or [content section][].
+
+Assigning content to a taxonomy is done in the [front matter][]. Simply create a variable with the *plural* name of the taxonomy and assign all terms you want to apply to the instance of the content type.
+
+{{% note %}}
+If you would like the ability to quickly generate content files with preconfigured taxonomies or terms, read the docs on [Hugo archetypes](/content-management/archetypes/).
+{{% /note %}}
+
+### Example: Front Matter with Taxonomies
+
+{{< code-toggle copy="false">}}
+title = "Hugo: A fast and flexible static site generator"
+tags = [ "Development", "Go", "fast", "Blogging" ]
+categories = [ "Development" ]
+series = [ "Go Web Dev" ]
+slug = "hugo"
+project_url = "https://github.com/gohugoio/hugo"
+{{</ code-toggle >}}
+
+## Order Taxonomies
+
+A content file can assign weight for each of its associate taxonomies. Taxonomic weight can be used for sorting or ordering content in [taxonomy list templates][] and is declared in a content file's [front matter][]. The convention for declaring taxonomic weight is `taxonomyname_weight`.
+
+The following TOML and YAML examples show a piece of content that has a weight of 22, which can be used for ordering purposes when rendering the pages assigned to the "a", "b" and "c" values of the `tags` taxonomy. It has also been assigned the weight of 44 when rendering the "d" category page.
+
+### Example: Taxonomic `weight`
+
+{{< code-toggle copy="false" >}}
+title = "foo"
+tags = [ "a", "b", "c" ]
+tags_weight = 22
+categories = ["d"]
+categories_weight = 44
+{{</ code-toggle >}}
+
+By using taxonomic weight, the same piece of content can appear in different positions in different taxonomies.
+
+{{% note "Limits to Ordering Taxonomies" %}}
+Currently taxonomies only support the [default `weight => date` ordering of list content](/templates/lists/#default-weight-date). For more information, see the documentation on [taxonomy templates](/templates/taxonomy-templates/).
+{{% /note %}}
+
+## Add custom metadata to a Taxonomy Term
+
+If you need to add custom metadata to your taxonomy terms, you will need to create a page for that term at `/content/<TAXONOMY>/<TERM>/_index.md` and add your metadata in it's front matter. Continuing with our 'Actors' example, let's say you want to add a wikipedia page link to each actor. Your terms pages would be something like this:
+
+{{< code file="/content/actors/bruce-willis/_index.md" >}}
+ ---
+ title: "Bruce Willis"
+ wikipedia: "https://en.wikipedia.org/wiki/Bruce_Willis"
+ ---
+{{< /code >}}
+
+You can later use your custom metadata as shown in the [Taxonomy Terms Templates documentation](/templates/taxonomy-templates/#displaying-custom-metadata-in-taxonomy-terms-templates).
+
+[`urlize` template function]: /functions/urlize/
+[content section]: /content-management/sections/
+[content type]: /content-management/types/
+[documentation on archetypes]: /content-management/archetypes/
+[front matter]: /content-management/front-matter/
+[taxonomy list templates]: /templates/taxonomy-templates/#taxonomy-page-templates
+[taxonomy templates]: /templates/taxonomy-templates/
+[terms within the taxonomy]: /templates/taxonomy-templates/#taxonomy-terms-templates "See how to order terms associated with a taxonomy"
+[config]: /getting-started/configuration/
--- /dev/null
- {{ if and (gt .WordCount 400 ) (ne .Params.toc "false") }}
+---
+title: Table of Contents
+linktitle:
+description: Hugo can automatically parse Markdown content and create a Table of Contents you can use in your templates.
+date: 2017-02-01
+publishdate: 2017-02-01
+lastmod: 2017-02-01
+categories: [content management]
+keywords: [table of contents, toc]
+menu:
+ docs:
+ parent: "content-management"
+ weight: 130
+weight: 130 #rem
+draft: false
+aliases: [/extras/toc/]
+toc: true
+---
+
+{{% note "TOC Heading Levels are Fixed" %}}
+Currently, the `{{.TableOfContents}}` [page variable](/variables/page/) does not allow you to specify which heading levels you want the TOC to render. [See the related GitHub discussion (#1778)](https://github.com/gohugoio/hugo/issues/1778). As such, the resulting `<nav id="TableOfContents"><ul></ul></nav>` is going to start at `<h1>` when pulling from `{{.Content}}`.
+{{% /note %}}
+
+## Usage
+
+Create your markdown the way you normally would with the appropriate headings. Here is some example content:
+
+```
+<!-- Your front matter up here -->
+
+## Introduction
+
+One morning, when Gregor Samsa woke from troubled dreams, he found himself transformed in his bed into a horrible vermin.
+
+## My Heading
+
+He lay on his armour-like back, and if he lifted his head a little he could see his brown belly, slightly domed and divided by arches into stiff sections. The bedding was hardly able to cover it and seemed ready to slide off any moment.
+
+### My Subheading
+
+A collection of textile samples lay spread out on the table - Samsa was a travelling salesman - and above it there hung a picture that he had recently cut out of an illustrated magazine and housed in a nice, gilded frame. It showed a lady fitted out with a fur hat and fur boa who sat upright, raising a heavy fur muff that covered the whole of her lower arm towards the viewer. Gregor then turned to look out the window at the dull weather. Drops
+```
+
+Hugo will take this Markdown and create a table of contents from `## Introduction`, `## My Heading`, and `### My Subheading` and then store it in the [page variable][pagevars]`.TableOfContents`.
+
+The built-in `.TableOfContents` variables outputs a `<nav id="TableOfContents">` element with a child `<ul>`, whose child `<li>` elements begin with any `<h1>`'s (i.e., `#` in markdown) inside your content.'
+
+{{% note "Table of contents not available for MMark" %}}
+Hugo documents created in the [MMark](/content-management/formats/#mmark) Markdown dialect do not currently display TOCs. TOCs are, however, compatible with all other supported Markdown formats.
+{{% /note %}}
+
+## Template Example: Basic TOC
+
+The following is an example of a very basic [single page template][]:
+
+{{< code file="layout/_default/single.html" download="single.html" >}}
+{{ define "main" }}
+<main>
+ <article>
+ <header>
+ <h1>{{ .Title }}</h1>
+ </header>
+ {{ .Content }}
+ </article>
+ <aside>
+ {{ .TableOfContents }}
+ </aside>
+</main>
+{{ end }}
+{{< /code >}}
+
+## Template Example: TOC Partial
+
+The following is a [partial template][partials] that adds slightly more logic for page-level control over your table of contents. It assumes you are using a `toc` field in your content's [front matter][] that, unless specifically set to `false`, will add a TOC to any page with a `.WordCount` (see [Page Variables][pagevars]) greater than 400. This example also demonstrates how to use [conditionals][] in your templating:
+
+{{< code file="layouts/partials/toc.html" download="toc.html" >}}
- [single page template]: /templates/single-page-templates/
++{{ if and (gt .WordCount 400 ) (.Params.toc) }}
+<aside>
+ <header>
+ <h2>{{.Title}}</h2>
+ </header>
+ {{.TableOfContents}}
+</aside>
+{{ end }}
+{{< /code >}}
+
+{{% note %}}
+With the preceding example, even pages with > 400 words *and* `toc` not set to `false` will not render a table of contents if there are no headings in the page for the `{{.TableOfContents}}` variable to pull from.
+{{% /note %}}
+
+[conditionals]: /templates/introduction/#conditionals
+[front matter]: /content-management/table-of-contents/
+[pagevars]: /variables/page/
+[partials]: /templates/partials/
++[single page template]: /templates/single-page-templates/
--- /dev/null
- For example, if one of your [sections][] is called `post` and you want to adjust the canonical path to be hierarchical based on the year, month, and post title, you could set up the following configurations in YAML and TOML, respectively.
+---
+title: URL Management
+linktitle: URL Management
+description: Hugo supports permalinks, aliases, link canonicalization, and multiple options for handling relative vs absolute URLs.
+date: 2017-02-01
+publishdate: 2017-02-01
+lastmod: 2017-03-09
+keywords: [aliases,redirects,permalinks,urls]
+categories: [content management]
+menu:
+ docs:
+ parent: "content-management"
+ weight: 110
+weight: 110 #rem
+draft: false
+aliases: [/extras/permalinks/,/extras/aliases/,/extras/urls/,/doc/redirects/,/doc/alias/,/doc/aliases/]
+toc: true
+---
+
+## Permalinks
+
+The default Hugo target directory for your built website is `public/`. However, you can change this value by specifying a different `publishDir` in your [site configuration][config]. The directories created at build time for a section reflect the position of the content's directory within the `content` folder and namespace matching its layout within the `contentdir` hierarchy.
+
+The `permalinks` option in your [site configuration][config] allows you to adjust the directory paths (i.e., the URLs) on a per-section basis. This will change where the files are written to and will change the page's internal "canonical" location, such that template references to `.RelPermalink` will honor the adjustments made as a result of the mappings in this option.
+
+{{% note "Default Publish and Content Folders" %}}
+These examples use the default values for `publishDir` and `contentDir`; i.e., `public` and `content`, respectively. You can override the default values in your [site's `config` file](/getting-started/configuration/).
+{{% /note %}}
+
- post: /:year/:month/:title/
++For example, if one of your [sections][] is called `posts` and you want to adjust the canonical path to be hierarchical based on the year, month, and post title, you could set up the following configurations in YAML and TOML, respectively.
+
+### Permalinks Configuration Example
+
+{{< code-toggle file="config" copy="false" >}}
+permalinks:
- Only the content under `post/` will have the new URL structure. For example, the file `content/post/sample-entry.md` with `date: 2017-02-27T19:20:00-05:00` in its front matter will render to `public/2017/02/sample-entry/index.html` at build time and therefore be reachable at `https://example.com/2017/02/sample-entry/`.
++ posts: /:year/:month/:title/
+{{< /code-toggle >}}
+
- ### Customize
++Only the content under `posts/` will have the new URL structure. For example, the file `content/posts/sample-entry.md` with `date: 2017-02-27T19:20:00-05:00` in its front matter will render to `public/2017/02/sample-entry/index.html` at build time and therefore be reachable at `https://example.com/2017/02/sample-entry/`.
+
+You can also configure permalinks of taxonomies with the same syntax, by using the plural form of the taxonomy instead of the section. You will probably only want to use the configuration values `:slug` or `:title`.
+
+### Permalink Configuration Values
+
+The following is a list of values that can be used in a `permalink` definition in your site `config` file. All references to time are dependent on the content's date.
+
+`:year`
+: the 4-digit year
+
+`:month`
+: the 2-digit month
+
+`:monthname`
+: the name of the month
+
+`:day`
+: the 2-digit day
+
+`:weekday`
+: the 1-digit day of the week (Sunday = 0)
+
+`:weekdayname`
+: the name of the day of the week
+
+`:yearday`
+: the 1- to 3-digit day of the year
+
+`:section`
+: the content's section
+
+`:sections`
+: the content's sections hierarchy
+
+`:title`
+: the content's title
+
+`:slug`
+: the content's slug (or title if no slug is provided in the front matter)
+
+`:filename`
+: the content's filename (without extension)
+
+## Aliases
+
+For people migrating existing published content to Hugo, there's a good chance you need a mechanism to handle redirecting old URLs.
+
+Luckily, redirects can be handled easily with **aliases** in Hugo.
+
+### Example: Aliases
+
+Let's assume you create a new piece of content at `content/posts/my-awesome-blog-post.md`. The content is a revision of your previous post at `content/posts/my-original-url.md`. You can create an `aliases` field in the front matter of your new `my-awesome-blog-post.md` where you can add previous paths. The following examples show how to create this field in TOML and YAML front matter, respectively.
+
+#### TOML Front Matter
+
+{{< code file="content/posts/my-awesome-post.md" copy="false" >}}
++++
+aliases = [
+ "/posts/my-original-url/",
+ "/2010/01/01/even-earlier-url.html"
+]
++++
+{{< /code >}}
+
+#### YAML Front Matter
+
+{{< code file="content/posts/my-awesome-post.md" copy="false" >}}
+---
+aliases:
+ - /posts/my-original-url/
+ - /2010/01/01/even-earlier-url.html
+---
+{{< /code >}}
+
+Now when you visit any of the locations specified in aliases---i.e., *assuming the same site domain*---you'll be redirected to the page they are specified on. For example, a visitor to `example.com/posts/my-original-url/` will be immediately redirected to `example.com/posts/my-awesome-post/`.
+
+### Example: Aliases in Multilingual
+
+On [multilingual sites][multilingual], each translation of a post can have unique aliases. To use the same alias across multiple languages, prefix it with the language code.
+
+In `/posts/my-new-post.es.md`:
+
+```
+---
+aliases:
+ - /es/posts/my-original-post/
+---
+```
+
+### How Hugo Aliases Work
+
+When aliases are specified, Hugo creates a directory to match the alias entry. Inside the directory, Hugo creates an `.html` file specifying the canonical URL for the page and the new redirect target.
+
+For example, a content file at `posts/my-intended-url.md` with the following in the front matter:
+
+```
+---
+title: My New post
+aliases: [/posts/my-old-url/]
+---
+```
+
+Assuming a `baseURL` of `example.com`, the contents of the auto-generated alias `.html` found at `https://example.com/posts/my-old-url/` will contain the following:
+
+```
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>https://example.com/posts/my-intended-url</title>
+ <link rel="canonical" href="https://example.com/posts/my-intended-url"/>
+ <meta name="robots" content="noindex">
+ <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
+ <meta http-equiv="refresh" content="0; url=https://example.com/posts/my-intended-url"/>
+ </head>
+</html>
+```
+
+The `http-equiv="refresh"` line is what performs the redirect, in 0 seconds in this case. If an end user of your website goes to `https://example.com/posts/my-old-url`, they will now be automatically redirected to the newer, correct URL. The addition of `<meta name="robots" content="noindex">` lets search engine bots know that they should not crawl and index your new alias page.
+
- ├── post
- | ├── firstpost.md // <- https://example.com/post/firstpost/
++### Customize
+You may customize this alias page by creating an `alias.html` template in the
+layouts folder of your site (i.e., `layouts/alias.html`). In this case, the data passed to the template is
+
+`Permalink`
+: the link to the page being aliased
+
+`Page`
+: the Page data for the page being aliased
+
+### Important Behaviors of Aliases
+
+1. Hugo makes no assumptions about aliases. They also do not change based
+on your UglyURLs setting. You need to provide absolute paths to your web root
+and the complete filename or directory.
+2. Aliases are rendered *before* any content are rendered and therefore will be overwritten by any content with the same location.
+
+## Pretty URLs
+
+Hugo's default behavior is to render your content with "pretty" URLs. No non-standard server-side configuration is required for these pretty URLs to work.
+
+The following demonstrates the concept:
+
+```
+content/posts/_index.md
+=> example.com/posts/index.html
+content/posts/post-1.md
+=> example.com/posts/post-1/
+```
+
+## Ugly URLs
+
+If you would like to have what are often referred to as "ugly URLs" (e.g., example.com/urls.html), set `uglyurls = true` or `uglyurls: true` in your site's `config.toml` or `config.yaml`, respectively. You can also use the `--uglyURLs=true` [flag from the command line][usage] with `hugo` or `hugo server`.
+
+If you want a specific piece of content to have an exact URL, you can specify this in the [front matter][] under the `url` key. The following are examples of the same content directory and what the eventual URL structure will be when Hugo runs with its default behavior.
+
+See [Content Organization][contentorg] for more details on paths.
+
+```
+.
+└── content
+ └── about
+ | └── _index.md // <- https://example.com/about/
- | | └── ness.md // <- https://example.com/post/happy/ness/
- | └── secondpost.md // <- https://example.com/post/secondpost/
++ ├── posts
++ | ├── firstpost.md // <- https://example.com/posts/firstpost/
+ | ├── happy
- ├── post
- | ├── firstpost.md // <- https://example.com/post/firstpost.html
++ | | └── ness.md // <- https://example.com/posts/happy/ness/
++ | └── secondpost.md // <- https://example.com/posts/secondpost/
+ └── quote
+ ├── first.md // <- https://example.com/quote/first/
+ └── second.md // <- https://example.com/quote/second/
+```
+
+Here's the same organization run with `hugo --uglyURLs`:
+
+```
+.
+└── content
+ └── about
+ | └── _index.md // <- https://example.com/about.html
- | | └── ness.md // <- https://example.com/post/happy/ness.html
- | └── secondpost.md // <- https://example.com/post/secondpost.html
++ ├── posts
++ | ├── firstpost.md // <- https://example.com/posts/firstpost.html
+ | ├── happy
- For example, if your `/post/first/` page contains a link to `/about/`, Hugo will rewrite the URL to `../../about/`.
++ | | └── ness.md // <- https://example.com/posts/happy/ness.html
++ | └── secondpost.md // <- https://example.com/posts/secondpost.html
+ └── quote
+ ├── first.md // <- https://example.com/quote/first.html
+ └── second.md // <- https://example.com/quote/second.html
+```
+
+
+## Canonicalization
+
+By default, all relative URLs encountered in the input are left unmodified, e.g. `/css/foo.css` would stay as `/css/foo.css`. The `canonifyURLs` field in your site `config` has a default value of `false`.
+
+By setting `canonifyURLs` to `true`, all relative URLs would instead be *canonicalized* using `baseURL`. For example, assuming you have `baseURL = https://example.com/`, the relative URL `/css/foo.css` would be turned into the absolute URL `https://example.com/css/foo.css`.
+
+Benefits of canonicalization include fixing all URLs to be absolute, which may aid with some parsing tasks. Note, however, that all modern browsers handle this on the client without issue.
+
+Benefits of non-canonicalization include being able to have scheme-relative resource inclusion; e.g., so that `http` vs `https` can be decided according to how the page was retrieved.
+
+{{% note "`canonifyURLs` default change" %}}
+In the May 2014 release of Hugo v0.11, the default value of `canonifyURLs` was switched from `true` to `false`, which we think is the better default and should continue to be the case going forward. Please verify and adjust your website accordingly if you are upgrading from v0.10 or older versions.
+{{% /note %}}
+
+To find out the current value of `canonifyURLs` for your website, you may use the handy `hugo config` command added in v0.13.
+
+```
+hugo config | grep -i canon
+```
+
+Or, if you are on Windows and do not have `grep` installed:
+
+```
+hugo config | FINDSTR /I canon
+```
+
+## Override URLs with Front Matter
+
+In addition to specifying permalink values in your site configuration for different content sections, Hugo provides even more granular control for individual pieces of content.
+
+Both `slug` and `url` can be defined in individual front matter. For more information on content destinations at build time, see [Content Organization][contentorg].
+
+## Relative URLs
+
+By default, all relative URLs are left unchanged by Hugo, which can be problematic when you want to make your site browsable from a local file system.
+
+Setting `relativeURLs` to `true` in your [site configuration][config] will cause Hugo to rewrite all relative URLs to be relative to the current content.
+
++For example, if your `/posts/first/` page contains a link to `/about/`, Hugo will rewrite the URL to `../../about/`.
+
+[config]: /getting-started/configuration/
+[contentorg]: /content-management/organization/
+[front matter]: /content-management/front-matter/
+[multilingual]: /content-management/multilingual/
+[sections]: /content-management/sections/
+[usage]: /getting-started/usage/
--- /dev/null
- {{%/* output file="post/my-first-post/index.html" */%}}
+---
+title: Contribute to the Hugo Docs
+linktitle: Documentation
+description: Documentation is an integral part of any open source project. The Hugo docs are as much a work in progress as the source it attempts to cover.
+date: 2017-02-01
+publishdate: 2017-02-01
+lastmod: 2017-02-01
+categories: [contribute]
+keywords: [docs,documentation,community, contribute]
+menu:
+ docs:
+ parent: "contribute"
+ weight: 20
+weight: 20
+sections_weight: 20
+draft: false
+aliases: [/contribute/docs/]
+toc: true
+---
+
+## Create Your Fork
+
+It's best to make changes to the Hugo docs on your local machine to check for consistent visual styling. Make sure you've created a fork of [hugoDocs](https://github.com/gohugoio/hugoDocs) on GitHub and cloned the repository locally on your machine. For more information, you can see [GitHub's documentation on "forking"][ghforking] or follow along with [Hugo's development contribution guide][hugodev].
+
+You can then create a separate branch for your additions. Be sure to choose a descriptive branch name that best fits the type of content. The following is an example of a branch name you might use for adding a new website to the showcase:
+
+```
+git checkout -b jon-doe-showcase-addition
+```
+
+## Add New Content
+
+The Hugo docs make heavy use of Hugo's [archetypes][] feature. All content sections in Hugo documentation have an assigned archetype.
+
+Adding new content to the Hugo docs follows the same pattern, regardless of the content section:
+
+```
+hugo new <DOCS-SECTION>/<new-content-lowercase>.md
+```
+
+### Add a New Function
+
+Once you have cloned the Hugo repository, you can create a new function via the following command. Keep the file name lowercase.
+
+```
+hugo new functions/newfunction.md
+```
+
+The archetype for `functions` according to the Hugo docs is as follows:
+
+{{< code file="archetypes/functions.md" >}}
+{{< readfile file="/archetypes/functions.md">}}
+{{< /code >}}
+
+#### New Function Required Fields
+
+Here is a review of the front matter fields automatically generated for you using `hugo new functions/*`:
+
+***`title`***
+: this will be auto-populated in all lowercase when you use `hugo new` generator.
+
+***`linktitle`***
+: the function's actual casing (e.g., `replaceRE` rather than `replacere`).
+
+***`description`***
+: a brief description used to populate the [Functions Quick Reference](/functions/).
+
+`categories`
+: currently auto-populated with 'functions` for future-proofing and portability reasons only; ignore this field.
+
+`tags`
+: only if you think it will help end users find other related functions
+
+`signature`
+: this is a signature/syntax definition for calling the function (e.g., `apply SEQUENCE FUNCTION [PARAM...]`).
+
+`workson`
+: acceptable values include `lists`,`taxonomies`, `terms`, `groups`, and `files`.
+
+`hugoversion`
+: the version of Hugo that will ship with this new function.
+
+`relatedfuncs`
+: other [templating functions][] you feel are related to your new function to help fellow Hugo users.
+
+`{{.Content}}`
+: an extended description of the new function; examples are not only welcomed but encouraged.
+
+In the body of your function, expand the short description used in the front matter. Include as many examples as possible, and leverage the Hugo docs [`code` shortcode](#adding-code-blocks). If you are unable to add examples but would like to solicit help from the Hugo community, add `needsexample: true` to your front matter.
+
+## Add Code Blocks
+
+Code blocks are crucial for providing examples of Hugo's new features to end users of the Hugo docs. Whenever possible, create examples that you think Hugo users will be able to implement in their own projects.
+
+### Standard Syntax
+
+Across many pages on the Hugo docs, the typical triple-back-tick markdown syntax (```` ``` ````) is used. If you do not want to take the extra time to implement the following code block shortcodes, please use standard GitHub-flavored markdown. The Hugo docs use a version of [highlight.js](https://highlightjs.org/) with a specific set of languages.
+
+Your options for languages are `xml`/`html`, `go`/`golang`, `md`/`markdown`/`mkd`, `handlebars`, `apache`, `toml`, `yaml`, `json`, `css`, `asciidoc`, `ruby`, `powershell`/`ps`, `scss`, `sh`/`zsh`/`bash`/`git`, `http`/`https`, and `javascript`/`js`.
+
+````
+```
+<h1>Hello world!</h1>
+```
+````
+
+### Code Block Shortcode
+
+The Hugo documentation comes with a very robust shortcode for adding interactive code blocks.
+
+{{% note %}}
+With the `code` shortcodes, *you must include triple back ticks and a language declaration*. This was done by design so that the shortcode wrappers were easily added to legacy documentation and will be that much easier to remove if needed in future versions of the Hugo docs.
+{{% /note %}}
+
+### `code`
+
+`code` is the Hugo docs shortcode you'll use most often. `code` requires has only one named parameter: `file`. Here is the pattern:
+
+```
+{{%/* code file="smart/file/name/with/path.html" download="download.html" copy="true" */%}}
+A whole bunch of coding going on up in here!
+{{%/* /code */%}}
+```
+
+The following are the arguments passed into `code`:
+
+
+***`file`***
+: the only *required* argument. `file` is needed for styling but also plays an important role in helping users create a mental model around Hugo's directory structure. Visually, this will be displayed as text in the top left of the code block.
+
+`download`
+: if omitted, this will have no effect on the rendered shortcode. When a value is added to `download`, it's used as the filename for a downloadable version of the code block.
+
+`copy`
+: a copy button is added automatically to all `code` shortcodes. If you want to keep the filename and styling of `code` but don't want to encourage readers to copy the code (e.g., a "Do not do" snippet in a tutorial), use `copy="false"`.
+
+#### Example `code` Input
+
+This example HTML code block tells Hugo users the following:
+
+1. This file *could* live in `layouts/_default`, as demonstrated by `layouts/_default/single.html` as the value for `file`.
+2. This snippet is complete enough to be downloaded and implemented in a Hugo project, as demonstrated by `download="single.html"`.
+
+```
+{{</* code file="layouts/_default/single.html" download="single.html" */>}}
+{{ define "main" }}
+<main>
+ <article>
+ <header>
+ <h1>{{.Title}}</h1>
+ {{with .Params.subtitle}}
+ <span>{{.}}</span>
+ </header>
+ <div>
+ {{.Content}}
+ </div>
+ <aside>
+ {{.TableOfContents}}
+ </aside>
+ </article>
+</main>
+{{ end }}
+{{</* /code */>}}
+```
+
+##### Example 'code' Display
+
+The output of this example will render to the Hugo docs as follows:
+
+{{< code file="layouts/_default/single.html" download="single.html" >}}
+{{ define "main" }}
+<main>
+ <article>
+ <header>
+ <h1>{{.Title}}</h1>
+ {{with .Params.subtitle}}
+ <span>{{.}}</span>
+ </header>
+ <div>
+ {{.Content}}
+ </div>
+ <aside>
+ {{.TableOfContents}}
+ </aside>
+ </article>
+</main>
+{{ end }}
+{{< /code >}}
+
+<!-- #### Output Code Block
+
+The `output` shortcode is almost identical to the `code` shortcode but only takes and requires `file`. The purpose of `output` is to show *rendered* HTML and therefore almost always follows another basic code block *or* and instance of the `code` shortcode:
+
+```
- {{< output file="post/my-first-post/index.html" >}}
++{{%/* output file="posts/my-first-post/index.html" */%}}
+<h1>This is my First Hugo Blog Post</h1>
+<p>I am excited to be using Hugo.</p>
+{{%/* /output */%}}
+```
+
+The preceding `output` example will render as follows to the Hugo docs:
+
++{{< output file="posts/my-first-post/index.html" >}}
+<h1>This is my First Hugo Blog Post</h1>
+<p>I am excited to be using Hugo.</p>
+{{< /output >}} -->
+
+## Blockquotes
+
+Blockquotes can be added to the Hugo documentation using [typical Markdown blockquote syntax][bqsyntax]:
+
+```
+> Without the threat of punishment, there is no joy in flight.
+```
+
+The preceding blockquote will render as follows in the Hugo docs:
+
+> Without the threat of punishment, there is no joy in flight.
+
+However, you can add a quick and easy `<cite>` element (added on the client via JavaScript) by separating your main blockquote and the citation with a hyphen with a single space on each side:
+
+```
+> Without the threat of punishment, there is no joy in flight. - [Kobo Abe](https://en.wikipedia.org/wiki/Kobo_Abe)
+```
+
+Which will render as follows in the Hugo docs:
+
+> Without the threat of punishment, there is no joy in flight. - [Kobo Abe][abe]
+
+{{% note "Blockquotes `!=` Admonitions" %}}
+Previous versions of Hugo documentation used blockquotes to draw attention to text. This is *not* the [intended semantic use of `<blockquote>`](http://html5doctor.com/cite-and-blockquote-reloaded/). Use blockquotes when quoting. To note or warn your user of specific information, use the admonition shortcodes that follow.
+{{% /note %}}
+
+## Admonitions
+
+**Admonitions** are common in technical documentation. The most popular is that seen in [reStructuredText Directives][sourceforge]. From the SourceForge documentation:
+
+> Admonitions are specially marked "topics" that can appear anywhere an ordinary body element can. They contain arbitrary body elements. Typically, an admonition is rendered as an offset block in a document, sometimes outlined or shaded, with a title matching the admonition type. - [SourceForge][sourceforge]
+
+The Hugo docs contain three admonitions: `note`, `tip`, and `warning`.
+
+### `note` Admonition
+
+Use the `note` shortcode when you want to draw attention to information subtly. `note` is intended to be less of an interruption in content than is `warning`.
+
+#### Example `note` Input
+
+{{< code file="note-with-heading.md" >}}
+{{%/* note */%}}
+Here is a piece of information I would like to draw your **attention** to.
+{{%/* /note */%}}
+{{< /code >}}
+
+#### Example `note` Output
+
+{{< output file="note-with-heading.html" >}}
+{{% note %}}
+Here is a piece of information I would like to draw your **attention** to.
+{{% /note %}}
+{{< /output >}}
+
+#### Example `note` Display
+
+{{% note %}}
+Here is a piece of information I would like to draw your **attention** to.
+{{% /note %}}
+
+### `tip` Admonition
+
+Use the `tip` shortcode when you want to give the reader advice. `tip`, like `note`, is intended to be less of an interruption in content than is `warning`.
+
+#### Example `tip` Input
+
+{{< code file="using-tip.md" >}}
+{{%/* tip */%}}
+Here's a bit of advice to improve your productivity with Hugo.
+{{%/* /tip */%}}
+{{< /code >}}
+
+#### Example `tip` Output
+
+{{< output file="tip-output.html" >}}
+{{% tip %}}
+Here's a bit of advice to improve your productivity with Hugo.
+{{% /tip %}}
+{{< /output >}}
+
+#### Example `tip` Display
+
+{{% tip %}}
+Here's a bit of advice to improve your productivity with Hugo.
+{{% /tip %}}
+
+### `warning` Admonition
+
+Use the `warning` shortcode when you want to draw the user's attention to something important. A good usage example is for articulating breaking changes in Hugo versions, known bugs, or templating "gotchas."
+
+#### Example `warning` Input
+
+{{< code file="warning-admonition-input.md" >}}
+{{%/* warning */%}}
+This is a warning, which should be reserved for *important* information like breaking changes.
+{{%/* /warning */%}}
+{{< /code >}}
+
+#### Example `warning` Output
+
+{{< output file="warning-admonition-output.html" >}}
+{{% warning %}}
+This is a warning, which should be reserved for *important* information like breaking changes.
+{{% /warning %}}
+{{< /output >}}
+
+#### Example `warning` Display
+
+{{% warning %}}
+This is a warning, which should be reserved for *important* information like breaking changes.
+{{% /warning %}}
+
+{{% note "Pull Requests and Branches" %}}
+Similar to [contributing to Hugo development](/contribute/development/), the Hugo team expects you to create a separate branch/fork when you make your contributions to the Hugo docs.
+{{% /note %}}
+
+[abe]: https://en.wikipedia.org/wiki/Kobo_Abe
+[archetypes]: /content-management/archetypes/
+[bqsyntax]: https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet#blockquotes
+[charcount]: http://www.lettercount.com/
+[`docs/static/images/showcase/`]: https://github.com/gohugoio/hugo/tree/master/docs/static/images/showcase/
+[ghforking]: https://help.github.com/articles/fork-a-repo/
+[hugodev]: /contribute/development/
+[shortcodeparams]: content-management/shortcodes/#shortcodes-without-markdown
+[sourceforge]: http://docutils.sourceforge.net/docs/ref/rst/directives.html#admonitions
+[templating function]: /functions/
--- /dev/null
- {{< code file="layouts/partial/post-tag-list.html" copy="false" >}}
+---
+title: apply
+description: Given a map, array, or slice, `apply` returns a new slice with a function applied over it.
+godocref:
+date: 2017-02-01
+publishdate: 2017-02-01
+lastmod: 2017-02-01
+categories: [functions]
+menu:
+ docs:
+ parent: "functions"
+keywords: [advanced]
+signature: ["apply COLLECTION FUNCTION [PARAM...]"]
+workson: []
+hugoversion:
+relatedfuncs: []
+deprecated: false
+draft: false
+aliases: []
+---
+
+{{< todo >}}
+POTENTIAL NEW CONTENT: see apply/sequence discussion: https://discourse.gohugo.io/t/apply-printf-on-a-sequence/5722;
+{{< /todo >}}
+
+`apply` expects at least three parameters, depending on the function being applied.
+
+1. The first parameter is the sequence to operate on.
+2. The second parameter is the name of the function as a string, which must be the name of a valid [Hugo function][functions].
+3. After that, the parameters to the applied function are provided, with the string `"."` standing in for each element of the sequence the function is to be applied against.
+
+Here is an example of a content file with `names:` as a front matter field:
+
+```
++++
+names: [ "Derek Perkins", "Joe Bergevin", "Tanner Linsley" ]
++++
+```
+
+You can then use `apply` as follows:
+
+```
+{{ apply .Params.names "urlize" "." }}
+```
+
+Which will result in the following:
+
+```
+"derek-perkins", "joe-bergevin", "tanner-linsley"
+```
+
+This is *roughly* equivalent to using the following with [range][]:
+
+```
+{{ range .Params.names }}{{ . | urlize }}{{ end }}
+```
+
+However, it is not possible to provide the output of a range to the [`delimit` function][delimit], so you need to `apply` it.
+
+If you have `post-tag-list.html` and `post-tag-link.html` as [partials][], you *could* use the following snippets, respectively:
+
- {{ partial "post/tag/link" (index . 0) }}
++{{< code file="layouts/partials/post-tag-list.html" copy="false" >}}
+{{ with .Params.tags }}
+<div class="tags-list">
+ Tags:
+ {{ $len := len . }}
+ {{ if eq $len 1 }}
- {{ partial "post/tag/link" . }},
++ {{ partial "post-tag-link" (index . 0) }}
+ {{ else }}
+ {{ $last := sub $len 1 }}
+ {{ range first $last . }}
- {{ partial "post/tag/link" (index . $last) }}
++ {{ partial "post-tag-link" . }},
+ {{ end }}
- {{< code file="layouts/partial/post-tag-link.html" copy="false" >}}
++ {{ partial "post-tag-link" (index . $last) }}
+ {{ end }}
+</div>
+{{ end }}
+{{< /code >}}
+
++{{< code file="layouts/partials/post-tag-link.html" copy="false" >}}
+<a class="post-tag post-tag-{{ . | urlize }}" href="/tags/{{ . | urlize }}">{{ . }}</a>
+{{< /code >}}
+
+This works, but the complexity of `post-tag-list.html` is fairly high. The Hugo template needs to perform special behavior for the case where there’s only one tag, and it has to treat the last tag as special. Additionally, the tag list will be rendered something like `Tags: tag1 , tag2 , tag3` because of the way that the HTML is generated and then interpreted by a browser.
+
+This first version of `layouts/partials/post-tag-list.html` separates all of the operations for ease of reading. The combined and DRYer version is shown next:
+
+```
+{{ with .Params.tags }}
+ <div class="tags-list">
+ Tags:
+ {{ $sort := sort . }}
+ {{ $links := apply $sort "partial" "post-tag-link" "." }}
+ {{ $clean := apply $links "chomp" "." }}
+ {{ delimit $clean ", " }}
+ </div>
+{{ end }}
+```
+
+Now in the completed version, you can sort the tags, convert the tags to links with `layouts/partials/post-tag-link.html`, [chomp][] off stray newlines, and join the tags together in a delimited list for presentation. Here is an even DRYer version of the preceding example:
+
+{{< code file="layouts/partials/post-tag-list.html" download="post-tag-list.html" >}}
+ {{ with .Params.tags }}
+ <div class="tags-list">
+ Tags:
+ {{ delimit (apply (apply (sort .) "partial" "post-tag-link" ".") "chomp" ".") ", " }}
+ </div>
+ {{ end }}
+{{< /code >}}
+
+{{% note %}}
+`apply` does not work when receiving the sequence as an argument through a pipeline.
+{{% /note %}}
+
+[chomp]: /functions/chomp/ "See documentation for the chomp function"
+[delimit]: /functions/delimit/ "See documentation for the delimit function"
+[functions]: /functions/ "See the full list of Hugo functions to see what can be passed as an argument to the apply function."
+[partials]: /templates/partials/
+[range]: /functions/range/ "Learn the importance of the range function, a fundamental keyword in both Hugo templates and the Go programming language."
--- /dev/null
- ```
+---
+title: first
+linktitle: first
+description: "Slices an array to only the first _N_ elements."
+godocref:
+date: 2017-02-01
+publishdate: 2017-02-01
+lastmod: 2017-02-01
+categories: [functions]
+menu:
+ docs:
+ parent: "functions"
+keywords: [iteration]
+signature: ["first LIMIT COLLECTION"]
+workson: [lists,taxonomies,terms,groups]
+hugoversion:
+relatedfuncs: [after,last]
+deprecated: false
+aliases: []
+---
+
++`first` works in a similar manner to the [`limit` keyword in
++SQL][limitkeyword]. It reduces the array to only the `first N`
++elements. It takes the array and number of elements as input.
+
- ```
++`first` takes two arguments:
++1. `number of elements`
++2. `array` *or* `slice of maps or structs`
++
++{{< code file="layout/_default/section.html" >}}
+{{ range first 10 .Pages }}
+ {{ .Render "summary" }}
+{{ end }}
++{{< /code >}}
+
+*Note: Exclusive to `first`, LIMIT can be '0' to return an empty array.*
++
++## `first` and `where` Together
++
++Using `first` and [`where`][wherefunction] together can be very
++powerful. Below snippet gets a list of posts only from [**main
++sections**][mainsections], sorts it by the `title` parameter, and then
++ranges through only the first 5 posts in that list:
++
++{{< code file="first-and-where-together.html" >}}
++{{ range first 5 (where site.RegularPages "Type" "in" site.Params.mainSections).ByTitle }}
++ {{ .Content }}
++{{ end }}
++{{< /code >}}
++
++
++[limitkeyword]: https://www.techonthenet.com/sql/select_limit.php
++[wherefunction]: /functions/where/
++[mainsections]: /functions/where/#mainsections
--- /dev/null
- The following templating uses [`where`][] in conjunction with `len` to figure out the total number of content pages in a `posts` [section][]:
+---
+title: len
+linktitle: len
+description: Returns the length of a variable according to its type.
+godocref: https://golang.org/pkg/builtin/#len
+date: 2017-02-01
+publishdate: 2017-02-01
+lastmod: 2017-04-18
+categories: [functions]
+keywords: []
+signature: ["len INPUT"]
+workson: [lists,taxonomies,terms]
+hugoversion:
+relatedfuncs: []
+deprecated: false
+toc: false
+aliases: []
+---
+
+`len` is a built-in function in Go that returns the length of a variable according to its type. From the Go documentation:
+
+> Array: the number of elements in v.
+>
+> Pointer to array: the number of elements in *v (even if v is nil).
+>
+> Slice, or map: the number of elements in v; if v is nil, len(v) is zero.
+>
+> String: the number of bytes in v.
+>
+> Channel: the number of elements queued (unread) in the channel buffer; if v is nil, len(v) is zero.
+
+`len` is also considered a [fundamental function for Hugo templating][].
+
+## `len` Example 1: Longer Headings
+
+You may want to append a class to a heading according to the length of the string therein. The following templating checks to see if the title's length is greater than 80 characters and, if so, adds a `long-title` class to the `<h1>`:
+
+{{< code file="check-title-length.html" >}}
+<header>
+ <h1{{if gt (len .Title) 80}} class="long-title"{{end}}>{{.Title}}</h1>
+</header>
+{{< /code >}}
+
+## `len` Example 2: Counting Pages with `where`
+
- {{ $posts := (where .Site.RegularPages "Section" "==" "post") }}
++The following templating uses [`where`][] in conjunction with `len` to
++figure out the total number of content pages in a `posts` [section][]:
+
+{{< code file="how-many-posts.html" >}}
++{{ $posts := (where .Site.RegularPages "Section" "==" "posts") }}
+{{ $postCount := len $posts }}
+{{< /code >}}
+
+Note the use of `.RegularPages`, a [site variable][] that counts all regular content pages but not the `_index.md` pages used to add front matter and content to [list templates][].
+
+
+[fundamental function for Hugo templating]: /templates/introduction/
+[list templates]: /templates/lists/
+[section]: /content-management/sections/
+[site variable]: /variables/site/
+[`where`]: /functions/where/
--- /dev/null
- signature: ["RESOURCE or STRING | transform.Unmarshal [OPTIONS]" ]
+---
+title: "transform.Unmarshal"
+description: "`transform.Unmarshal` (alias `unmarshal`) parses the input and converts it into a map or an array. Supported formats are JSON, TOML, YAML and CSV."
+date: 2018-12-23
+categories: [functions]
+menu:
+ docs:
+ parent: "functions"
+keywords: []
-
- The function accept either a `Resource` created in [Hugo Pipes](/hugo-pipes/) or via [Page Bundles](content-management/page-bundles/), or simply a string. The two examples below will produce the same map:
++signature: ["RESOURCE or STRING | transform.Unmarshal [OPTIONS]"]
+hugoversion: "0.53"
+aliases: []
+---
+
- : The delimiter used, default is `,`
++The function accept either a `Resource` created in [Hugo Pipes](/hugo-pipes/) or via [Page Bundles](/content-management/page-bundles/), or simply a string. The two examples below will produce the same map:
+
+```go-html-template
+{{ $greetings := "hello = \"Hello Hugo\"" | transform.Unmarshal }}`
+```
+
+```go-html-template
+{{ $greetings := "hello = \"Hello Hugo\"" | resources.FromString "data/greetings.toml" | transform.Unmarshal }}
+```
+
+In both the above examples, you get a map you can work with:
+
+```go-html-template
+{{ $greetings.hello }}
+```
+
+The above prints `Hello Hugo`.
+
+## CSV Options
+
+Unmarshal with CSV as input has some options you can set:
+
+delimiter
- : The comment character ued in the CSV. If set, lines beginning with the comment character without preceding whitespace are ignored.:
-
++: The delimiter used, default is `,`.
+
+comment
-
++: The comment character used in the CSV. If set, lines beginning with the comment character without preceding whitespace are ignored.:
+
+Example:
+
+```go-html-template
+{{ $csv := "a;b;c" | transform.Unmarshal (dict "delimiter" ";") }}
+```
--- /dev/null
- `where` filters an array to only the elements containing a matching value for a given field.
+---
+title: where
+# linktitle: where
+description: Filters an array to only the elements containing a matching value for a given field.
+godocref:
+date: 2017-02-01
+publishdate: 2017-02-01
+lastmod: 2017-02-01
+categories: [functions]
+menu:
+ docs:
+ parent: "functions"
+keywords: [filtering]
+signature: ["where COLLECTION KEY [OPERATOR] MATCH"]
+workson: [lists,taxonomies,terms,groups]
+hugoversion:
+relatedfuncs: [intersect,first,after,last]
+deprecated: false
+toc: true
+needsexample: true
+---
+
- {{ range where .Pages "Section" "post" }}
++`where` filters an array to only the elements containing a matching
++value for a given field.
++
++It works in a similar manner to the [`where` keyword in
++SQL][wherekeyword].
+
+```go-html-template
- {{ range where .Pages "Section" "!=" "post" }}
++{{ range where .Pages "Section" "foo" }}
+ {{ .Content }}
+{{ end }}
+```
+
+It can be used by dot-chaining the second argument to refer to a nested element of a value.
+
+```
++++
+series: golang
++++
+```
+
+```go-html-template
+{{ range where .Site.Pages "Params.series" "golang" }}
+ {{ .Content }}
+{{ end }}
+```
+
+It can also be used with the logical operators `!=`, `>=`, `in`, etc. Without an operator, `where` compares a given field with a matching value equivalent to `=`.
+
+```go-html-template
- The following grabs the first five content files in `post` using the [default ordering](/templates/lists/) for lists (i.e., `weight => date`):
++{{ range where .Pages "Section" "!=" "foo" }}
+ {{ .Content }}
+{{ end }}
+```
+
+The following logical operators are available with `where`:
+
+`=`, `==`, `eq`
+: `true` if a given field value equals a matching value
+
+`!=`, `<>`, `ne`
+: `true` if a given field value doesn't equal a matching value
+
+`>=`, `ge`
+: `true` if a given field value is greater than or equal to a matching value
+
+`>`, `gt`
+: `true` if a given field value is greater than a matching value
+
+`<=`, `le`
+: `true` if a given field value is lesser than or equal to a matching value
+
+`<`, `lt`
+: `true` if a given field value is lesser than a matching value
+
+`in`
+: `true` if a given field value is included in a matching value; a matching value must be an array or a slice
+
+`not in`
+: `true` if a given field value isn't included in a matching value; a matching value must be an array or a slice
+
+`intersect`
+: `true` if a given field value that is a slice/array of strings or integers contains elements in common with the matching value; it follows the same rules as the [`intersect` function][intersect].
+
+## Use `where` with `intersect`
+
+```go-html-template
+{{ range where .Site.Pages ".Params.tags" "intersect" .Params.tags }}
+ {{ if ne .Permalink $.Permalink }}
+ {{ .Render "summary" }}
+ {{ end }}
+{{ end }}
+```
+
+You can also put the returned value of the `where` clauses into a variable:
+
+{{< code file="where-intersect-variables.html" >}}
+{{ $v1 := where .Site.Pages "Params.a" "v1" }}
+{{ $v2 := where .Site.Pages "Params.b" "v2" }}
+{{ $filtered := $v1 | intersect $v2 }}
+{{ range $filtered }}
+{{ end }}
+{{< /code >}}
+
+## Use `where` with `first`
+
- {{< code file="where-with-first.html" >}}
- {{ range first 5 (where .Pages "Section" "post") }}
++Using `first` and [`where`][wherefunction] together can be very
++powerful. Below snippet gets a list of posts only from [**main
++sections**](#mainsections), sorts it using the [default
++ordering](/templates/lists/) for lists (i.e., `weight => date`), and
++then ranges through only the first 5 posts in that list:
+
- ## Portable `where` filters
++{{< code file="first-and-where-together.html" >}}
++{{ range first 5 (where site.RegularPages "Type" "in" site.Params.mainSections) }}
+ {{ .Content }}
+{{ end }}
+{{< /code >}}
+
+## Nest `where` Clauses
+
+You can also nest `where` clauses to drill down on lists of content by more than one parameter. The following first grabs all pages in the "blog" section and then ranges through the result of the first `where` clause and finds all pages that are *not* featured:
+
+```go-html-template
+{{ range where (where .Pages "Section" "blog" ) ".Params.featured" "!=" "true" }}
+```
+
+## Unset Fields
+
+Filtering only works for set fields. To check whether a field is set or exists, you can use the operand `nil`.
+
+This can be useful to filter a small amount of pages from a large pool. Instead of set field on all pages, you can set field on required pages only.
+
+Only the following operators are available for `nil`
+
+* `=`, `==`, `eq`: True if the given field is not set.
+* `!=`, `<>`, `ne`: True if the given field is set.
+
+```go-html-template
+{{ range where .Pages ".Params.specialpost" "!=" nil }}
+ {{ .Content }}
+{{ end }}
+```
+
- This is especially important for themes, but to list the most relevant pages on the front page or similar, you can use `.Site.Params.mainSections` list.
++## Portable `where` filters -- `site.Params.mainSections` {#mainsections}
+
- This will, by default, list pages from the _section with the most pages_.
++**This is especially important for themes.**
+
- {{ $pages := where .Site.RegularPages "Type" "in" .Site.Params.mainSections }}
++To list the most relevant pages on the front page or similar, you
++should use the `site.Params.mainSections` list instead of comparing
++section names to hard-coded values like `"posts"` or `"post"`.
+
+```go-html-template
- mainSections = ["blog", "docs"]
++{{ $pages := where site.RegularPages "Type" "in" site.Params.mainSections }}
+```
+
++If the user has not set this config parameter in their site config, it
++will default to the _section with the most pages_.
++
+The user can override the default in `config.toml`:
+
+```toml
+[params]
++ mainSections = ["blog", "docs"]
+```
+
+[intersect]: /functions/intersect/
++[wherekeyword]: https://www.techonthenet.com/sql/where.php
--- /dev/null
- This is an example for the Config Toggle shortcode.
+---
+title: Code Toggle
+description: Code Toggle tryout and showcase.
+date: 2018-03-16
+categories: [getting started,fundamentals]
+keywords: [configuration,toml,yaml,json]
+weight: 60
+sections_weight: 60
+draft: false
+toc: true
+---
+
+## The Config Toggler!
+
- post: /:year/:month/:title/
++This is an example for the Config Toggle shortcode.
+Its purpose is to let users choose a Config language by clicking on its corresponding tab. Upon doing so, every Code toggler on the page will be switched to the target language. Also, target language will be saved in user's `localStorage` so when they go to a different pages, Code Toggler display their last "toggled" config language.
+
+{{% note %}}
+The `code-toggler` shortcode is not an internal Hugo shortcode. This page's purpose is to test out a custom feature that we use throughout this site. See: https://github.com/gohugoio/gohugoioTheme/blob/master/layouts/shortcodes/code-toggle.html
+{{% /note %}}
+
+## That Config Toggler
+
+{{< code-toggle file="config">}}
+
+baseURL: "https://yoursite.example.com/"
+title: "My Hugo Site"
+footnoteReturnLinkContents: "↩"
+permalinks:
++ posts: /:year/:month/:title/
+params:
+ Subtitle: "Hugo is Absurdly Fast!"
+ AuthorName: "Jon Doe"
+ GitHubUser: "spf13"
+ ListOfFoo:
+ - "foo1"
+ - "foo2"
+ SidebarRecentLimit: 5
+{{< /code-toggle >}}
+
+## Another Config Toggler!
+
+{{< code-toggle file="theme">}}
+
+# theme.toml template for a Hugo theme
+
+name = "Hugo Theme"
+license = "MIT"
+licenselink = "https://github.com/budparr/gohugo.io/blob/master/LICENSE.md"
+description = ""
+homepage = "https://github.com/budparr/gohugo.io"
+tags = ["website"]
+features = ["", ""]
+min_version = 0.18
+
+[author]
+ name = "Bud Parr"
+ homepage = "https://github.com/budparr"
+
+{{< /code-toggle >}}
+
+## Two regular code blocks
+
+{{< code file="bf-config.toml" >}}
+[blackfriday]
+ angledQuotes = true
+ fractions = false
+ plainIDAnchors = true
+ extensions = ["hardLineBreak"]
+{{< /code >}}
+
+{{< code file="bf-config.yml" >}}
+blackfriday:
+ angledQuotes: true
+ fractions: false
+ plainIDAnchors: true
+ extensions:
+ - hardLineBreak
+{{< /code >}}
--- /dev/null
- : Default number of pages per page in [pagination](/templates/pagination/).
+---
+title: Configure Hugo
+linktitle: Configuration
+description: How to configure your Hugo site.
+date: 2013-07-01
+publishdate: 2017-01-02
+lastmod: 2017-03-05
+categories: [getting started,fundamentals]
+keywords: [configuration,toml,yaml,json]
+menu:
+ docs:
+ parent: "getting-started"
+ weight: 60
+weight: 60
+sections_weight: 60
+draft: false
+aliases: [/overview/source-directory/,/overview/configuration/]
+toc: true
+---
+
++
++## Configuration File
++
+Hugo uses the `config.toml`, `config.yaml`, or `config.json` (if found in the
+site root) as the default site config file.
+
+The user can choose to override that default with one or more site config files
+using the command line `--config` switch.
+
+Examples:
+
+```
+hugo --config debugconfig.toml
+hugo --config a.toml,b.toml,c.toml
+```
+
+{{% note %}}
+Multiple site config files can be specified as a comma-separated string to the `--config` switch.
+{{% /note %}}
+
++TODO: distinct config.toml and others (the root object files)
++
++## Configuration Directory
++
++In addition to using a single site config file, one can use the `configDir` directory (default to `config/`) to maintain easier organization and environment specific settings.
++
++- Each file represents a configuration root object, such as `Params`, `Menus`, `Languages` etc...
++- Each directory holds a group of files containing settings unique to an environment.
++- Files can be localized to become language specific.
++
++
++```
++config
++├── _default
++│ ├── config.toml
++│ ├── languages.toml
++│ ├── menus.en.toml
++│ ├── menus.zh.toml
++│ └── params.toml
++├── staging
++│ ├── config.toml
++│ └── params.toml
++└── production
++ ├── config.toml
++ └── params.toml
++```
++
++Considering the structure above, when running `hugo --environment staging`, Hugo will use every settings from `config/_default` and merge `staging`'s on top of those.
++{{% note %}}
++Default environments are __development__ with `hugo serve` and __production__ with `hugo`.
++{{%/ note %}}
+## All Configuration Settings
+
+The following is the full list of Hugo-defined variables with their default
+value in parentheses. Users may choose to override those values in their site
+config file(s).
+
+archetypeDir ("archetypes")
+: The directory where Hugo finds archetype files (content templates).
+
+assetDir ("assets")
+: The directory where Hugo finds asset files used in [Hugo Pipes](/hugo-pipes/).
+
+baseURL
+: Hostname (and path) to the root, e.g. http://bep.is/
+
+blackfriday
+: See [Configure Blackfriday](/getting-started/configuration/#configure-blackfriday)
+
+buildDrafts (false)
+: Include drafts when building.
+
+buildExpired (false)
+: Include content already expired.
+
+buildFuture (false)
+: Include content with publishdate in the future.
+
+caches
+: See [Configure File Caches](#configure-file-caches)
+
+canonifyURLs (false)
+: Enable to turn relative URLs into absolute.
+
+contentDir ("content")
+: The directory from where Hugo reads content files.
+
+dataDir ("data")
+: The directory from where Hugo reads data files.
+
+defaultContentLanguage ("en")
+: Content without language indicator will default to this language.
+
+defaultContentLanguageInSubdir (false)
+: Render the default content language in subdir, e.g. `content/en/`. The site root `/` will then redirect to `/en/`.
+
+disableHugoGeneratorInject (false)
+: Hugo will, by default, inject a generator meta tag in the HTML head on the _home page only_. You can turn it off, but we would really appreciate if you don't, as this is a good way to watch Hugo's popularity on the rise.
+
+disableKinds ([])
+: Enable disabling of all pages of the specified *Kinds*. Allowed values in this list: `"page"`, `"home"`, `"section"`, `"taxonomy"`, `"taxonomyTerm"`, `"RSS"`, `"sitemap"`, `"robotsTXT"`, `"404"`.
+
+disableLiveReload (false)
+: Disable automatic live reloading of browser window.
+
+disablePathToLower (false)
+: Do not convert the url/path to lowercase.
+
+enableEmoji (false)
+: Enable Emoji emoticons support for page content; see the [Emoji Cheat Sheet](https://www.webpagefx.com/tools/emoji-cheat-sheet/).
+
+enableGitInfo (false)
+: Enable `.GitInfo` object for each page (if the Hugo site is versioned by Git). This will then update the `Lastmod` parameter for each page using the last git commit date for that content file.
+
+enableInlineShortcodes
+: Enable inline shortcode support. See [Inline Shortcodes](/templates/shortcode-templates/#inline-shortcodes).
+
+enableMissingTranslationPlaceholders (false)
+: Show a placeholder instead of the default value or an empty string if a translation is missing.
+
+enableRobotsTXT (false)
+: Enable generation of `robots.txt` file.
+
+frontmatter
+
+: See [Front matter Configuration](#configure-front-matter).
+
+footnoteAnchorPrefix ("")
+: Prefix for footnote anchors.
+
+footnoteReturnLinkContents ("")
+: Text to display for footnote return links.
+
+googleAnalytics ("")
+: Google Analytics tracking ID.
+
+hasCJKLanguage (false)
+: If true, auto-detect Chinese/Japanese/Korean Languages in the content. This will make `.Summary` and `.WordCount` behave correctly for CJK languages.
+
+imaging
+: See [Image Processing Config](/content-management/image-processing/#image-processing-config).
+
+languages
+: See [Configure Languages](/content-management/multilingual/#configure-languages).
+
+languageCode ("")
+: The site's language code.
+
+languageName ("")
+: The site's language name.
+
+disableLanguages
+: See [Disable a Language](/content-management/multilingual/#disable-a-language)
+
+layoutDir ("layouts")
+: The directory from where Hugo reads layouts (templates).
+
+log (false)
+: Enable logging.
+
+logFile ("")
+: Log File path (if set, logging enabled automatically).
+
+menu
+: See [Add Non-content Entries to a Menu](/content-management/menus/#add-non-content-entries-to-a-menu).
+
+metaDataFormat ("toml")
+: Front matter meta-data format. Valid values: `"toml"`, `"yaml"`, or `"json"`.
+
+newContentEditor ("")
+: The editor to use when creating new content.
+
+noChmod (false)
+: Don't sync permission mode of files.
+
+noTimes (false)
+: Don't sync modification time of files.
+
+paginate (10)
- refLinksErrorLevel ("ERROR")
++: Default number of elements per page in [pagination](/templates/pagination/).
+
+paginatePath ("page")
+: The path element used during pagination (https://example.com/page/2).
+
+permalinks
+: See [Content Management](/content-management/urls/#permalinks).
+
+pluralizeListTitles (true)
+: Pluralize titles in lists.
+
+preserveTaxonomyNames (false)
+: Preserve special characters in taxonomy names ("Gérard Depardieu" vs "Gerard Depardieu").
+
+publishDir ("public")
+: The directory to where Hugo will write the final static site (the HTML files etc.).
+
+pygmentsCodeFencesGuessSyntax (false)
+: Enable syntax guessing for code fences without specified language.
+
+pygmentsStyle ("monokai")
+: Color-theme or style for syntax highlighting. See [Pygments Color Themes](https://help.farbox.com/pygments.html).
+
+pygmentsUseClasses (false)
+: Enable using external CSS for syntax highlighting.
+
+related
+: See [Related Content](/content-management/related/#configure-related-content).
+
+relativeURLs (false)
+: Enable this to make all relative URLs relative to content root. Note that this does not affect absolute URLs.
+
- post: /:year/:month/:title/
++refLinksErrorLevel ("ERROR")
+: When using `ref` or `relref` to resolve page links and a link cannot resolved, it will be logged with this logg level. Valid values are `ERROR` (default) or `WARNING`. Any `ERROR` will fail the build (`exit -1`).
+
+refLinksNotFoundURL
+: URL to be used as a placeholder when a page reference cannot be found in `ref` or `relref`. Is used as-is.
+
+rssLimit (unlimited)
+: Maximum number of items in the RSS feed.
+
+sectionPagesMenu ("")
+: See ["Section Menu for Lazy Bloggers"](/templates/menu-templates/#section-menu-for-lazy-bloggers).
+
+sitemap
+: Default [sitemap configuration](/templates/sitemap-template/#configure-sitemap-xml).
+
+staticDir ("static")
+: A directory or a list of directories from where Hugo reads [static files][static-files].
+
+stepAnalysis (false)
+: Display memory and timing of different steps of the program.
+
+summaryLength (70)
+: The length of text to show in a [`.Summary`](/content-management/summaries/#hugo-defined-automatic-summary-splitting).
+
+taxonomies
+: See [Configure Taxonomies](/content-management/taxonomies#configure-taxonomies).
+
+theme ("")
+: Theme to use (located by default in `/themes/THEMENAME/`).
+
+themesDir ("themes")
+: The directory where Hugo reads the themes from.
+
+timeout (10000)
+: Timeout for generating page contents, in milliseconds (defaults to 10 seconds). *Note:* this is used to bail out of recursive content generation, if your pages are slow to generate (e.g., because they require large image processing or depend on remote contents) you might need to raise this limit.
+
+title ("")
+: Site title.
+
+uglyURLs (false)
+: When enabled, creates URL of the form `/filename.html` instead of `/filename/`.
+
+verbose (false)
+: Enable verbose output.
+
+verboseLog (false)
+: Enable verbose logging.
+
+watch (false)
+: Watch filesystem for changes and recreate as needed.
+
+{{% note %}}
+If you are developing your site on a \*nix machine, here is a handy shortcut for finding a configuration option from the command line:
+```
+cd ~/sites/yourhugosite
+hugo config | grep emoji
+```
+
+which shows output like
+
+```
+enableemoji: true
+```
+{{% /note %}}
+
+## Configuration Lookup Order
+
+Similar to the template [lookup order][], Hugo has a default set of rules for searching for a configuration file in the root of your website's source directory as a default behavior:
+
+1. `./config.toml`
+2. `./config.yaml`
+3. `./config.json`
+
+In your `config` file, you can direct Hugo as to how you want your website rendered, control your website's menus, and arbitrarily define site-wide parameters specific to your project.
+
+
+## Example Configuration
+
+The following is a typical example of a configuration file. The values nested under `params:` will populate the [`.Site.Params`][] variable for use in [templates][]:
+
+{{< code-toggle file="config">}}
+baseURL: "https://yoursite.example.com/"
+title: "My Hugo Site"
+footnoteReturnLinkContents: "↩"
+permalinks:
- You can override any of these cache setting in your own `config.toml`.
++ posts: /:year/:month/:title/
+params:
+ Subtitle: "Hugo is Absurdly Fast!"
+ AuthorName: "Jon Doe"
+ GitHubUser: "spf13"
+ ListOfFoo:
+ - "foo1"
+ - "foo2"
+ SidebarRecentLimit: 5
+{{< /code-toggle >}}
+
+## Configure with Environment Variables
+
+In addition to the 3 config options already mentioned, configuration key-values can be defined through operating system environment variables.
+
+For example, the following command will effectively set a website's title on Unix-like systems:
+
+```
+$ env HUGO_TITLE="Some Title" hugo
+```
+
+This is really useful if you use a service such as Netlify to deploy your site. Look at the Hugo docs [Netlify configuration file](https://github.com/gohugoio/hugoDocs/blob/master/netlify.toml) for an example.
+
+{{% note "Setting Environment Variables" %}}
+Names must be prefixed with `HUGO_` and the configuration key must be set in uppercase when setting operating system environment variables.
+{{% /note %}}
+
+{{< todo >}}
+Test and document setting params via JSON env var.
+{{< /todo >}}
+
+## Ignore Files When Rendering
+
+The following statement inside `./config.toml` will cause Hugo to ignore files ending with `.foo` and `.boo` when rendering:
+
+```
+ignoreFiles = [ "\\.foo$", "\\.boo$" ]
+```
+
+The above is a list of regular expressions. Note that the backslash (`\`) character is escaped in this example to keep TOML happy.
+
+## Configure Front Matter
+
+### Configure Dates
+
+Dates are important in Hugo, and you can configure how Hugo assigns dates to your content pages. You do this by adding a `frontmatter` section to your `config.toml`.
+
+
+The default configuration is:
+
+```toml
+[frontmatter]
+date = ["date", "publishDate", "lastmod"]
+lastmod = [":git", "lastmod", "date", "publishDate"]
+publishDate = ["publishDate", "date"]
+expiryDate = ["expiryDate"]
+```
+
+If you, as an example, have a non-standard date parameter in some of your content, you can override the setting for `date`:
+
+ ```toml
+[frontmatter]
+date = ["myDate", ":default"]
+```
+
+The `:default` is a shortcut to the default settings. The above will set `.Date` to the date value in `myDate` if present, if not we will look in `date`,`publishDate`, `lastmod` and pick the first valid date.
+
+In the list to the right, values starting with ":" are date handlers with a special meaning (see below). The others are just names of date parameters (case insensitive) in your front matter configuration. Also note that Hugo have some built-in aliases to the above: `lastmod` => `modified`, `publishDate` => `pubdate`, `published` and `expiryDate` => `unpublishdate`. With that, as an example, using `pubDate` as a date in front matter, will, by default, be assigned to `.PublishDate`.
+
+The special date handlers are:
+
+
+`:fileModTime`
+: Fetches the date from the content file's last modification timestamp.
+
+An example:
+
+ ```toml
+[frontmatter]
+lastmod = ["lastmod", ":fileModTime", ":default"]
+```
+
+
+The above will try first to extract the value for `.Lastmod` starting with the `lastmod` front matter parameter, then the content file's modification timestamp. The last, `:default` should not be needed here, but Hugo will finally look for a valid date in `:git`, `date` and then `publishDate`.
+
+
+`:filename`
+: Fetches the date from the content file's filename. For example, `2018-02-22-mypage.md` will extract the date `2018-02-22`. Also, if `slug` is not set, `mypage` will be used as the value for `.Slug`.
+
+An example:
+
+```toml
+[frontmatter]
+date = [":filename", ":default"]
+```
+
+The above will try first to extract the value for `.Date` from the filename, then it will look in front matter parameters `date`, `publishDate` and lastly `lastmod`.
+
+
+`:git`
+: This is the Git author date for the last revision of this content file. This will only be set if `--enableGitInfo` is set or `enableGitInfo = true` is set in site config.
+
+## Configure Blackfriday
+
+[Blackfriday](https://github.com/russross/blackfriday) is Hugo's built-in Markdown rendering engine.
+
+Hugo typically configures Blackfriday with sane default values that should fit most use cases reasonably well.
+
+However, if you have specific needs with respect to Markdown, Hugo exposes some of its Blackfriday behavior options for you to alter. The following table lists these Hugo options, paired with the corresponding flags from Blackfriday's source code ( [html.go](https://github.com/russross/blackfriday/blob/master/html.go) and [markdown.go](https://github.com/russross/blackfriday/blob/master/markdown.go)).
+
+{{< readfile file="/content/en/readfiles/bfconfig.md" markdown="true" >}}
+
+{{% note %}}
+1. Blackfriday flags are *case sensitive* as of Hugo v0.15.
+2. Blackfriday flags must be grouped under the `blackfriday` key and can be set on both the site level *and* the page level. Any setting on a page will override its respective site setting.
+{{% /note %}}
+
+{{< code-toggle file="config" >}}
+[blackfriday]
+ angledQuotes = true
+ fractions = false
+ plainIDAnchors = true
+ extensions = ["hardLineBreak"]
+{{< /code-toggle >}}
+
+## Configure Additional Output Formats
+
+Hugo v0.20 introduced the ability to render your content to multiple output formats (e.g., to JSON, AMP html, or CSV). See [Output Formats][] for information on how to add these values to your Hugo project's configuration file.
+
+## Configure File Caches
+
+Since Hugo 0.52 you can configure more than just the `cacheDir`. This is the default configuration:
+
+```toml
+[caches]
+[caches.getjson]
+dir = ":cacheDir/:project"
+maxAge = -1
+[caches.getcsv]
+dir = ":cacheDir/:project"
+maxAge = -1
+[caches.images]
+dir = ":resourceDir/_gen"
+maxAge = -1
+[caches.assets]
+dir = ":resourceDir/_gen"
+maxAge = -1
+```
+
+
- :cacheDir
++You can override any of these cache setting in your own `config.toml`.
+
+### The keywords explained
+
-
- 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.
++`: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`
-
++: 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`
+: 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 `"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).
+
+## Configuration Format Specs
+
+* [TOML Spec][toml]
+* [YAML Spec][yaml]
+* [JSON Spec][json]
+
+[`.Site.Params`]: /variables/site/
+[directory structure]: /getting-started/directory-structure
+[json]: https://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf "Specification for JSON, JavaScript Object Notation"
+[lookup order]: /templates/lookup-order/
+[Output Formats]: /templates/output-formats/
+[templates]: /templates/
+[toml]: https://github.com/toml-lang/toml
+[yaml]: http://yaml.org/spec/
+[static-files]: /content-management/static-files/
--- /dev/null
- ├── config.toml
+---
+title: Directory Structure
+linktitle: Directory Structure
+description: Hugo's CLI scaffolds a project directory structure and then takes that single directory and uses it as the input to create a complete website.
+date: 2017-01-02
+publishdate: 2017-02-01
+lastmod: 2017-03-09
+categories: [getting started,fundamentals]
+keywords: [source, organization, directories]
+menu:
+ docs:
+ parent: "getting-started"
+ weight: 50
+weight: 50
+sections_weight: 50
+draft: false
+aliases: [/overview/source-directory/]
+toc: true
+---
+
+## New Site Scaffolding
+
+{{< youtube sB0HLHjgQ7E >}}
+
+Running the `hugo new site` generator from the command line will create a directory structure with the following elements:
+
+```
+.
+├── archetypes
+├── assets
- [`config.toml`](/getting-started/configuration/)
- : Every Hugo project should have a configuration file in TOML, YAML, or JSON format at the root. Many sites may need little to no configuration, but Hugo ships with a large number of [configuration directives][] for more granular directions on how you want Hugo to build your website.
++├── config
+├── content
+├── data
+├── layouts
+├── static
+└── themes
+```
+
+
+## Directory Structure Explained
+
+The following is a high-level overview of each of the directories with links to each of their respective sections within the Hugo docs.
+
+[`archetypes`](/content-management/archetypes/)
+: You can create new content files in Hugo using the `hugo new` command.
+By default, Hugo will create new content files with at least `date`, `title` (inferred from the file name), and `draft = true`. This saves time and promotes consistency for sites using multiple content types. You can create your own [archetypes][] with custom preconfigured front matter fields as well.
+
+[`assets`][]
+: Stores all the files which need be processed by [Hugo Pipes]({{< ref "/hugo-pipes" >}}). Only the files whose `.Permalink` or `.RelPermalink` are used will be published to the `public` directory.
+
++[`config`](/getting-started/configuration/)
++: Hugo ships with a large number of [configuration directives](https://gohugo.io/getting-started/configuration/#all-variables-yaml).
++The [config directory](/getting-started/configuration/#configuration-directory) is where those directives are stored as JSON, YAML, or TOML files. Every root setting object can stand as its own file and structured by environments.
++Projects with minimal settings and no need for environment awareness can use a single `config.toml` file at its root.
++
++Many sites may need little to no configuration, but Hugo ships with a large number of [configuration directives][] for more granular directions on how you want Hugo to build your website.
+
+[`content`][]
+: All content for your website will live inside this directory. Each top-level folder in Hugo is considered a [content section][]. For example, if your site has three main sections---`blog`, `articles`, and `tutorials`---you will have three directories at `content/blog`, `content/articles`, and `content/tutorials`. Hugo uses sections to assign default [content types][].
+
+[`data`](/templates/data-templates/)
+: This directory is used to store configuration files that can be
+used by Hugo when generating your website. You can write these files in YAML, JSON, or TOML format. In addition to the files you add to this folder, you can also create [data templates][] that pull from dynamic content.
+
+[`layouts`][]
+: Stores templates in the form of `.html` files that specify how views of your content will be rendered into a static website. Templates include [list pages][lists], your [homepage][], [taxonomy templates][], [partials][], [single page templates][singles], and more.
+
+[`static`][]
+: Stores all the static content: images, CSS, JavaScript, etc. When Hugo builds your site, all assets inside your static directory are copied over as-is. A good example of using the `static` folder is for [verifying site ownership on Google Search Console][searchconsole], where you want Hugo to copy over a complete HTML file without modifying its content.
+
+{{% note %}}
+From **Hugo 0.31** you can have multiple static directories.
+{{% /note %}}
+
+
+[archetypes]: /content-management/archetypes/
+[configuration directives]: /getting-started/configuration/#all-variables-yaml
+[`content`]: /content-management/organization/
+[content section]: /content-management/sections/
+[content types]: /content-management/types/
+[data templates]: /templates/data-templates/
+[homepage]: /templates/homepage/
+[`layouts`]: /templates/
+[`static`]: /content-management/static-files/
+[lists]: /templates/list/
+[pagevars]: /variables/page/
+[partials]: /templates/partials/
+[searchconsole]: https://support.google.com/analytics/answer/1142414?hl=en
+[singles]: /templates/single-page-templates/
+[starters]: /tools/starter-kits/
+[taxonomies]: /content-management/taxonomies/
+[taxonomy templates]: /templates/taxonomy-templates/
+[types]: /content-management/types/
+[`assets`]: {{< ref "/hugo-pipes/introduction#asset-directory" >}}
--- /dev/null
- You also need [Git installed](https://git-scm.com/downloads) to run this tutorial.
+---
+title: Quick Start
+linktitle: Quick Start
+description: Create a Hugo site using the beautiful Ananke theme.
+date: 2013-07-01
+publishdate: 2013-07-01
+categories: [getting started]
+keywords: [quick start,usage]
+authors: [Shekhar Gulati, Ryan Watters]
+menu:
+ docs:
+ parent: "getting-started"
+ weight: 10
+weight: 10
+sections_weight: 10
+draft: false
+aliases: [/quickstart/,/overview/quickstart/]
+toc: true
+---
+
+{{% note %}}
+This quick start uses `macOS` in the examples. For instructions about how to install Hugo on other operating systems, see [install](/getting-started/installing).
+
- cd quickstart;\
- git init;\
- git submodule add https://github.com/budparr/gohugo-theme-ananke.git themes/ananke;\
++It is recommended to have [Git installed](https://git-scm.com/downloads) to run this tutorial.
+{{% /note %}}
+
+
+
+## Step 1: Install Hugo
+
+{{% note %}}
+`Homebrew`, a package manager for `macOS`, can be installed from [brew.sh](https://brew.sh/). See [install](/getting-started/installing) if you are running Windows etc.
+{{% /note %}}
+
+```bash
+brew install hugo
+```
+
+To verify your new install:
+
+```bash
+hugo version
+```
+
+
+{{< asciicast HDlKrUrbfT7yiWsbd6QoxzRTN >}}
+
+
+## Step 2: Create a New Site
+
+```bash
+hugo new site quickstart
+```
+
+The above will create a new Hugo site in a folder named `quickstart`.
+
+{{< asciicast 1PH9A2fs14Dnyarx5v8OMYQer >}}
+
+
+## Step 3: Add a Theme
+
+See [themes.gohugo.io](https://themes.gohugo.io/) for a list of themes to consider. This quickstart uses the beautiful [Ananke theme](https://themes.gohugo.io/gohugo-theme-ananke/).
+
+```bash
- Edit the newly created content file if you want. Now, start the Hugo server with [drafts](/getting-started/usage/#draft-future-and-expired-content) enabled:
++cd quickstart
++
++# Download the theme
++git init
++git submodule add https://github.com/budparr/gohugo-theme-ananke.git themes/ananke
++# Note for non-git users:
++# - If you do not have git installed, you can download the archive of the latest
++# version of this theme from:
++# https://github.com/budparr/gohugo-theme-ananke/archive/master.zip
++# - Extract that .zip file to get a "gohugo-theme-ananke-master" directory.
++# - Rename that directory to "ananke", and move it into the "themes/" directory.
++# End of note for non-git users.
+
+# Edit your config.toml configuration file
+# and add the Ananke theme.
+echo 'theme = "ananke"' >> config.toml
+```
+
+
+{{< asciicast WJM2LEZQs8VRhNeuZ5NiGPp9I >}}
+
+## Step 4: Add Some Content
+
+```
+hugo new posts/my-first-post.md
+```
+
+
-
- ## Step 5: Customize the Theme
++Edit the newly created content file if you want.
++
++
++## Step 5: Start the Hugo server
++
++Now, start the Hugo server with [drafts](/getting-started/usage/#draft-future-and-expired-content) enabled:
+
+```
+▶ hugo server -D
+
+Started building sites ...
+Built site for language en:
+1 of 1 draft rendered
+0 future content
+0 expired content
+1 regular pages created
+8 other pages created
+0 non-page files copied
+1 paginator pages created
+0 categories created
+0 tags created
+total in 18 ms
+Watching for changes in /Users/bep/sites/quickstart/{data,content,layouts,static,themes}
+Serving pages from memory
+Web Server is available at http://localhost:1313/ (bind address 127.0.0.1)
+Press Ctrl+C to stop
+```
+
+
+**Navigate to your new site at [http://localhost:1313/](http://localhost:1313/).**
+
+
- Replace the `title` above with something more personal. Also, if you already have a domain ready, set the `baseURL`. Note that this value is not needed when running the local development server.
++## Step 6: Customize the Theme
+
+Your new site already looks great, but you will want to tweak it a little before you release it to the public.
+
+### Site Configuration
+
+Open up `config.toml` in a text editor:
+
+```
+baseURL = "https://example.org/"
+languageCode = "en-us"
+title = "My New Hugo Site"
+theme = "ananke"
+```
+
++Replace the `title` above with something more personal. Also, if you already have a domain ready, set the `baseURL`. Note that this value is not needed when running the local development server.
+
+{{% note %}}
+**Tip:** Make the changes to the site configuration or any other file in your site while the Hugo server is running, and you will see the changes in the browser right away, though you may need to [clear your cache](https://kb.iu.edu/d/ahic).
+{{% /note %}}
+
+
+For theme specific configuration options, see the [theme site](https://github.com/budparr/gohugo-theme-ananke).
+
+**For further theme customization, see [Customize a Theme](/themes/customizing/).**
+
+## Recapitulation
+
+{{< asciicast pWp4uvyAkdWgQllD9RCfeBL5k >}}
--- /dev/null
- post/
- post/index.html
+---
+title: Deployment with Rsync
+linktitle: Deployment with Rsync
+description: If you have access to your web host with SSH, you can use a simple rsync one-liner to incrementally deploy your entire Hugo website.
+date: 2017-02-01
+publishdate: 2017-02-01
+lastmod: 2017-02-01
+categories: [hosting and deployment]
+keywords: [rsync,deployment]
+authors: [Adrien Poupin]
+menu:
+ docs:
+ parent: "hosting-and-deployment"
+ weight: 70
+weight: 70
+sections_weight: 70
+draft: false
+aliases: [/tutorials/deployment-with-rsync/]
+toc: true
+notesforauthors:
+---
+
+## Assumptions
+
+* Access to your web host with SSH
+* A functional static website built with Hugo
+
+The spoiler is that you can deploy your entire website with a command that looks like the following:
+
+```
+hugo && rsync -avz --delete public/ www-data@ftp.topologix.fr:~/www/
+```
+
+As you will see, we put it in a shell script file, which makes building and deployment as easy as executing `./deploy`.
+
+## Install SSH Key
+
+If it is not done yet, we will make an automated way to SSH to your server. If you have already installed an SSH key, switch to the next section.
+
+First, install the ssh client. On Debian/Ubuntu/derivates, use the following command:
+
+{{< code file="install-openssh.sh" >}}
+sudo apt-get install openssh-client
+{{< /code >}}
+
+Then generate your ssh key by entering the following commands:
+
+```
+~$ cd && mkdir .ssh & cd .ssh
+~/.ssh/$ ssh-keygen -t rsa -q -C "For SSH" -f rsa_id
+~/.ssh/$ cat >> config <<EOF
+Host HOST
+ Hostname HOST
+ Port 22
+ User USER
+ IdentityFile ~/.ssh/rsa_id
+EOF
+```
+
+Don't forget to replace the `HOST` and `USER` values with your own ones. Then copy your ssh public key to the remote server:
+
+```
+~/.ssh/$ ssh-copy-id -i rsa_id.pub USER@HOST.com
+```
+
+Now you can easily connect to the remote server:
+
+```
+~$ ssh user@host
+Enter passphrase for key '/home/mylogin/.ssh/rsa_id':
+```
+
+And you've done it!
+
+## Shell Script
+
+We will put the first command in a script at the root of your Hugo tree:
+
+```
+~/websites/topologix.fr$ editor deploy
+```
+
+Here you put the following content. Replace the `USER`, `HOST`, and `DIR` values with your own:
+
+```
+#!/bin/sh
+USER=my-user
+HOST=my-server.com
+DIR=my/directory/to/topologix.fr/ # might sometimes be empty!
+
+hugo && rsync -avz --delete public/ ${USER}@${HOST}:~/${DIR}
+
+exit 0
+```
+
+Note that `DIR` is the relative path from the remote user's home. If you have to specify a full path (for instance `/var/www/mysite/`) you must change `~/${DIR}` to `${DIR}` inside the command line. For most cases you should not have to.
+
+Save and close, and make the `deploy` file executable:
+
+```
+~/websites/topologix.fr$ chmod +x deploy
+```
+
+Now you only have to enter the following command to deploy and update your website:
+
+```
+~/websites/topologix.fr$ ./deploy
+Started building sites ...
+Built site for language en:
+0 draft content
+0 future content
+0 expired content
+5 pages created
+0 non-page files copied
+0 paginator pages created
+0 tags created
+0 categories created
+total in 56 ms
+sending incremental file list
+404.html
+index.html
+index.xml
+sitemap.xml
+cours-versailles/index.html
+exercices/index.html
+exercices/index.xml
+exercices/barycentre-et-carres-des-distances/index.html
++posts/
++posts/index.html
+sujets/index.html
+sujets/index.xml
+sujets/2016-09_supelec-jp/index.html
+tarifs-contact/index.html
+
+sent 9,550 bytes received 1,708 bytes 7,505.33 bytes/sec
+total size is 966,557 speedup is 85.86
+```
--- /dev/null
- hugo new post/good-to-great.md
+---
+title: Host on Bitbucket
+linktitle: Host on Bitbucket
+description: You can use Bitbucket in conjunction with Aerobatic to build, deploy, and host a Hugo website.
+date: 2017-02-04
+publishdate: 2017-02-04
+lastmod: 2017-02-04
+categories: [hosting and deployment]
+keywords: [hosting,bitbucket,deployment,aerobatic]
+authors: [Jason Gowans]
+menu:
+ docs:
+ parent: "hosting-and-deployment"
+ weight: 50
+weight: 50
+sections_weight: 50
+draft: false
+toc: true
+aliases: [/tutorials/hosting-on-bitbucket/]
+---
+
+You can use [Bitbucket](https://bitbucket.org/) and [Aerobatic](https://www.aerobatic.com) to build, deploy, and host a Hugo website. Aerobatic is a static hosting service that integrates with Bitbucket and provides a free hosting tier.
+
+## Assumptions
+
+* Working familiarity with Git for version control
+* A [Bitbucket account](https://bitbucket.org/account/signup/)
+
+## Install Aerobatic CLI
+
+If you haven't previously used Aerobatic, you'll first need to install the Command Line Interface (CLI) and create an account. For a list of all commands available, see the [Aerobatic CLI](https://www.aerobatic.com/docs/cli/) docs.
+
+```
+npm install aerobatic-cli -g
+aero register
+```
+
+## Create and Deploy Site
+
+```
+hugo new site my-new-hugo-site
+cd my-new-hugo-site
+cd themes; git clone https://github.com/eliasson/liquorice
+hugo -t liquorice
+aero create # create the Aerobatic site
+hugo --baseURL https://my-new-hugo-site.aerobatic.io # build the site overriding baseURL
+aero deploy -d public # deploy output to Aerobatic
+
+Version v1 deployment complete.
+View now at https://hugo-docs-test.aerobatic.io
+```
+
+In the rendered page response, the `https://__baseurl__` will be replaced with your actual site url (in this example, `https://my-new-hugo-site.aerobatic.io`). You can always rename your Aerobatic website with the `aero rename` command.
+
+## Push Hugo site to Bitbucket
+
+We will now create a git repository and then push our code to Bitbucket. In Bitbucket, create a repository.
+
+![][1]
+
+[1]: /images/hosting-and-deployment/hosting-on-bitbucket/bitbucket-create-repo.png
+
+
+```
+# initialize new git repository
+git init
+
+# set up our .gitignore file
+echo -e "/public \n/themes \naero-deploy.tar.gz" >> .gitignore
+
+# commit and push code to master branch
+git add --all
+git commit -m "Initial commit"
+git remote add origin git@bitbucket.org:YourUsername/my-new-hugo-site.git
+git push -u origin master
+```
+
+## Continuous Deployment With Bitbucket Pipelines
+
+In the example above, we pushed the compiled assets in the `/public` folder to Aerobatic. In the following example, we use Bitbucket Pipelines to continuously create and deploy the compiled assets to Aerobatic.
+
+### Step 1: Configure Bitbucket Pipelines
+
+In your Hugo website's Bitbucket repo;
+
+1. Click the Pipelines link in the left nav menu of your Bitbucket repository.
+2. Click the Enable Pipelines button.
+3. On the next screen, leave the default template and click Next.
+4. In the editor, paste in the yaml contents below and click Commit.
+
+```
+image: beevelop/nodejs-python
+pipelines:
+ branches:
+ master:
+ - step:
+ script:
+ - apt-get update -y && apt-get install wget
+ - apt-get -y install git
+ - wget https://github.com/gohugoio/hugo/releases/download/v0.18/hugo_0.18-64bit.deb
+ - dpkg -i hugo*.deb
+ - git clone https://github.com/eliasson/liquorice themes/liquorice
+ - hugo --theme=liquorice --baseURL https://__baseurl__ --buildDrafts
+ - npm install -g aerobatic-cli
+ - aero deploy
+```
+
+### Step 2: Create `AEROBATIC_API_KEY` environment variable.
+
+This step only needs to be done once per account. From the command line;
+
+```
+aero apikey
+```
+
+1. Navigate to the Bitbucket account settings for the account that the website repo belongs to.
+2. Scroll down to the bottom of the left nav and click the Environment variables link in the PIPELINES section.
+3. Create a new environment variable called AEROBATIC_API_KEY with the value you got by running the `aero apikey` command. Be sure to click the Secured checkbox.
+
+### Step 3: Edit and Commit Code
+
+```
++hugo new posts/good-to-great.md
+hugo server --buildDrafts -t liquorice #Check that all looks good
+
+# commit and push code to master branch
+git add --all
+git commit -m "New blog post"
+git push -u origin master
+```
+
+Your code will be committed to Bitbucket, Bitbucket Pipelines will run your build, and a new version of your site will be deployed to Aerobatic.
+
+At this point, you can now create and edit blog posts directly in the Bitbucket UI.
+
+![][2]
+
+[2]: /images/hosting-and-deployment/hosting-on-bitbucket/bitbucket-blog-post.png
+
+
+## Suggested next steps
+
+The code for this example can be found in this Bitbucket [repository](https://bitbucket.org/dundonian/hugo-docs-test). Aerobatic also provides a number of additional [plugins](https://www.aerobatic.com/docs) such as auth and redirects that you can use for your Hugo site.
--- /dev/null
- {{< code file="gitlab-ci.yml" >}}
+---
+title: Host on GitLab
+linktitle: Host on GitLab
+description: GitLab makes it incredibly easy to build, deploy, and host your Hugo website via their free GitLab Pages service, which provides native support for Hugo.
+date: 2016-06-23
+publishdate: 2016-06-23
+lastmod: 2017-11-16
+categories: [hosting and deployment]
+keywords: [hosting,deployment,git,gitlab]
+authors: [Riku-Pekka Silvola]
+menu:
+ docs:
+ parent: "hosting-and-deployment"
+ weight: 40
+weight: 40
+sections_weight: 40
+draft: false
+toc: true
+wip: false
+aliases: [/tutorials/hosting-on-gitlab/]
+---
+
+[GitLab](https://gitlab.com/) makes it incredibly easy to build, deploy, and host your Hugo website via their free GitLab Pages service, which provides [native support for Hugo, as well as numerous other static site generators](https://gitlab.com/pages/hugo).
+
+## Assumptions
+
+* Working familiarity with Git for version control
+* Completion of the Hugo [Quick Start][]
+* A [GitLab account](https://gitlab.com/users/sign_in)
+* A Hugo website on your local machine that you are ready to publish
+
+## Create .gitlab-ci.yml
+
+```
+cd your-hugo-site
+```
+
+In the root directory of your Hugo site, create a `.gitlab-ci.yml` file. The `.gitlab-ci.yml` configures the GitLab CI on how to build your page. Simply add the content below.
+
++{{< code file=".gitlab-ci.yml" >}}
+image: monachus/hugo
+
+variables:
+ GIT_SUBMODULE_STRATEGY: recursive
+
+pages:
+ script:
+ - hugo
+ artifacts:
+ paths:
+ - public
+ only:
+ - master
+{{< /code >}}
+
+## Push Your Hugo Website to GitLab
+
+Next, create a new repository on GitLab. It is *not* necessary to make the repository public. In addition, you might want to add `/public` to your .gitignore file, as there is no need to push compiled assets to GitLab or keep your output website in version control.
+
+```
+# initialize new git repository
+git init
+
+# add /public directory to our .gitignore file
+echo "/public" >> .gitignore
+
+# commit and push code to master branch
+git add .
+git commit -m "Initial commit"
+git remote add origin https://gitlab.com/YourUsername/your-hugo-site.git
+git push -u origin master
+```
+
+## Wait for Your Page to Build
+
+That's it! You can now follow the CI agent building your page at `https://gitlab.com/<YourUsername>/<your-hugo-site>/pipelines`.
+
+After the build has passed, your new website is available at `https://<YourUsername>.gitlab.io/<your-hugo-site>/`.
+
+## Next Steps
+
+GitLab supports using custom CNAME's and TLS certificates. For more details on GitLab Pages, see the [GitLab Pages setup documentation](https://about.gitlab.com/2016/04/07/gitlab-pages-setup/).
+
+[Quick Start]: /getting-started/quick-start/
--- /dev/null
- HUGO_VERSION = "0.36"
+---
+title: Host on Netlify
+linktitle: Host on Netlify
+description: Netlify can host your Hugo site with CDN, continuous deployment, 1-click HTTPS, an admin GUI, and its own CLI.
+date: 2017-02-01
+publishdate: 2017-02-01
+lastmod: 2017-03-11
+categories: [hosting and deployment]
+keywords: [netlify,hosting,deployment]
+authors: [Ryan Watters, Seth MacLeod]
+menu:
+ docs:
+ parent: "hosting-and-deployment"
+ weight: 10
+weight: 10
+sections_weight: 10
+draft: false
+aliases: []
+toc: true
+---
+
+[Netlify][netlify] provides continuous deployment services, global CDN, ultra-fast DNS, atomic deploys, instant cache invalidation, one-click SSL, a browser-based interface, a CLI, and many other features for managing your Hugo website.
+
+## Assumptions
+
+* You have an account with GitHub, GitLab, or Bitbucket.
+* You have completed the [Quick Start][] or have a Hugo website you are ready to deploy and share with the world.
+* You do not already have a Netlify account.
+
+## Create a Netlify account
+
+Go to [app.netlify.com][] and select your preferred signup method. This will likely be a hosted Git provider, although you also have the option to sign up with an email address.
+
+The following examples use GitHub, but other git providers will follow a similar process.
+
+
+
+Selecting GitHub will bring up an authorization modal for authentication. Select "Authorize application."
+
+
+
+## Create a New Site with Continuous Deployment
+
+You're now already a Netlify member and should be brought to your new dashboard. Select "New site from git."
+
+
+
+Netlify will then start walking you through the steps necessary for continuous deployment. First, you'll need to select your git provider again, but this time you are giving Netlify added permissions to your repositories.
+
+
+
+And then again with the GitHub authorization modal:
+
+
+
+Select the repo you want to use for continuous deployment. If you have a large number of repositories, you can filter through them in real time using repo search:
+
+
+
+Once selected, you'll be brought to a screen for basic setup. Here you can select the branch you wanted published, your [build command][], and your publish (i.e. deploy) directory. The publish directory should mirror that of what you've set in your [site configuration][config], the default of which is `public`. The following steps assume you are publishing from the `master` branch.
+
+## Configure Hugo Version in Netlify
+
+You can [set Hugo version](https://www.netlify.com/blog/2017/04/11/netlify-plus-hugo-0.20-and-beyond/) for your environments in `netlify.toml` file or set `HUGO_VERSION` as a build environment variable in the Netlify console.
+
+For production:
+
+```
+[context.production.environment]
- HUGO_VERSION = "0.36"
++ HUGO_VERSION = "0.53"
+```
+
+For testing:
+
+```
+[context.deploy-preview.environment]
++ HUGO_VERSION = "0.53"
+```
+
+The Netlify configuration file can be a little hard to understand and get right for the different environment, and you may get some inspiration and tips from this site's `netlify.toml`:
+
+{{< code file="netlify.toml" nocode="true" >}}
+{{< readfile file="netlify.toml" highlight="toml" >}}
+{{< /code >}}
+
+## Build and Deploy Site
+
+In the Netlify console, selecting "Deploy site" will immediately take you to a terminal for your build:.
+
+
+
+Once the build is finished---this should only take a few seconds--you should now see a "Hero Card" at the top of your screen letting you know the deployment is successful. The Hero Card is the first element that you see in most pages. It allows you to see a quick summary of the page and gives access to the most common/pertinent actions and information. You'll see that the URL is automatically generated by Netlify. You can update the URL in "Settings."
+
+
+
+
+
+[Visit the live site][visit].
+
+Now every time you push changes to your hosted git repository, Netlify will rebuild and redeploy your site.
+
+See [this blog post](https://www.netlify.com/blog/2017/04/11/netlify-plus-hugo-0.20-and-beyond/) for more details about how Netlify handles Hugo versions.
+
+## Use Hugo Themes with Netlify
+
+The [`git clone` method for installing themes][installthemes] is not supported by Netlify. If you were to use `git clone`, it would require you to recursively remove the `.git` subdirectory from the theme folder and would therefore prevent compatibility with future versions of the theme.
+
+A *better* approach is to install a theme as a proper git submodule. You can [read the GitHub documentation for submodules][ghsm] or those found on [Git's website][gitsm] for more information, but the command is similar to that of `git clone`:
+
+```
+cd themes
+git submodule add https://github.com/<THEMECREATOR>/<THEMENAME>
+```
+
+It is recommended to only use stable versions of a theme (if it’s versioned) and always check the changelog. This can be done by checking out a specific release within the theme's directory.
+
+Switch to the theme's directory and list all available versions:
+
+```
+cd themes/<theme>
+git tag
+# exit with q
+```
+
+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:
+
+1. [Using a Custom Domain][]
+2. [Setting up HTTPS on Custom Domains][httpscustom]
+3. [Redirects and Rewrite Rules][]
+
+
+[app.netlify.com]: https://app.netlify.com
+[build command]: /getting-started/usage/#the-hugo-command
+[config]: /getting-started/configuration/
+[ghsm]: https://github.com/blog/2104-working-with-submodules
+[gitsm]: https://git-scm.com/book/en/v2/Git-Tools-Submodules
+[httpscustom]: https://www.netlify.com/docs/ssl/
+[hugoversions]: https://github.com/netlify/build-image/blob/master/Dockerfile#L216
+[installthemes]: /themes/installing/
+[netlify]: https://www.netlify.com/
+[netlifysignup]: https://app.netlify.com/signup
+[Quick Start]: /getting-started/quick-start/
+[Redirects and Rewrite Rules]: https://www.netlify.com/docs/redirects/
+[Using a Custom Domain]: https://www.netlify.com/docs/custom-domains/
+[visit]: https://hugo-netlify-example.netlify.com
--- /dev/null
- As an example, let's assume your site is using a theme called "mytheme" when rendering the section list for a `post` section. Hugo picks `layout/section/post.html` as the template for [rendering the section][]. The `{{define}}` block in this template tells Hugo that the template is an extension of a base template.
+---
+title: Base Templates and Blocks
+linktitle:
+description: The base and block constructs allow you to define the outer shell of your master templates (i.e., the chrome of the page).
+godocref: https://golang.org/pkg/text/template/#example_Template_block
+date: 2017-02-01
+publishdate: 2017-02-01
+lastmod: 2017-02-01
+categories: [templates,fundamentals]
+keywords: [blocks,base]
+menu:
+ docs:
+ parent: "templates"
+ weight: 20
+weight: 20
+sections_weight: 20
+draft: false
+aliases: [/templates/blocks/,/templates/base-templates-and-blocks/]
+toc: true
+---
+
+The `block` keyword allows you to define the outer shell of your pages' one or more master template(s) and then fill in or override portions as necessary.
+
+{{< youtube QVOMCYitLEc >}}
+
+## Base Template Lookup Order
+
+The [lookup order][lookup] for base templates is as follows:
+
+1. `/layouts/section/<TYPE>-baseof.html`
+2. `/themes/<THEME>/layouts/section/<TYPE>-baseof.html`
+3. `/layouts/<TYPE>/baseof.html`
+4. `/themes/<THEME>/layouts/<TYPE>/baseof.html`
+5. `/layouts/section/baseof.html`
+6. `/themes/<THEME>/layouts/section/baseof.html`
+7. `/layouts/_default/<TYPE>-baseof.html`
+8. `/themes/<THEME>/layouts/_default/<TYPE>-baseof.html`
+9. `/layouts/_default/baseof.html`
+10. `/themes/<THEME>/layouts/_default/baseof.html`
+
+Variables are denoted by capitalized text set within `<>`. Note that Hugo's default behavior is for `type` to inherit from `section` unless otherwise specified.
+
+### Example Base Template Lookup Order
+
- Here is the lookup order for the `post` base template:
++As an example, let's assume your site is using a theme called "mytheme" when rendering the section list for a `posts` section. Hugo picks `layout/section/posts.html` as the template for [rendering the section][]. The `{{define}}` block in this template tells Hugo that the template is an extension of a base template.
+
- 1. `/layouts/section/post-baseof.html`
- 2. `/themes/mytheme/layouts/section/post-baseof.html`
- 3. `/layouts/post/baseof.html`
- 4. `/themes/mytheme/layouts/post/baseof.html`
++Here is the lookup order for the `posts` base template:
+
- 7. `/layouts/_default/post-baseof.html`
- 8. `/themes/mytheme/layouts/_default/post-baseof.html`
++1. `/layouts/section/posts-baseof.html`
++2. `/themes/mytheme/layouts/section/posts-baseof.html`
++3. `/layouts/posts/baseof.html`
++4. `/themes/mytheme/layouts/posts/baseof.html`
+5. `/layouts/section/baseof.html`
+6. `/themes/mytheme/layouts/section/baseof.html`
++7. `/layouts/_default/posts-baseof.html`
++8. `/themes/mytheme/layouts/_default/posts-baseof.html`
+9. `/layouts/_default/baseof.html`
+10. `/themes/mytheme/layouts/_default/baseof.html`
+
+## Define the Base Template
+
+The following defines a simple base template at `_default/baseof.html`. As a default template, it is the shell from which all your pages will be rendered unless you specify another `*baseof.html` closer to the beginning of the lookup order.
+
+{{< code file="layouts/_default/baseof.html" download="baseof.html" >}}
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8">
+ <title>{{ block "title" . }}
+ <!-- Blocks may include default content. -->
+ {{ .Site.Title }}
+ {{ end }}</title>
+ </head>
+ <body>
+ <!-- Code that all your templates share, like a header -->
+ {{ block "main" . }}
+ <!-- The part of the page that begins to differ between templates -->
+ {{ end }}
+ {{ block "footer" . }}
+ <!-- More shared code, perhaps a footer but that can be overridden if need be in -->
+ {{ end }}
+ </body>
+</html>
+{{< /code >}}
+
+## Override the Base Template
+
+From the above base template, you can define a [default list template][hugolists]. The default list template will inherit all of the code defined above and can then implement its own `"main"` block from:
+
+{{< code file="layouts/_default/list.html" download="list.html" >}}
+{{ define "main" }}
+ <h1>Posts</h1>
+ {{ range .Pages }}
+ <article>
+ <h2>{{ .Title }}</h2>
+ {{ .Content }}
+ </article>
+ {{ end }}
+{{ end }}
+{{< /code >}}
+
+This replaces the contents of our (basically empty) "main" block with something useful for the list template. In this case, we didn't define a `"title"` block, so the contents from our base template remain unchanged in lists.
+
+{{% warning %}}
+Code that you put outside the block definitions *can* break your layout. This even includes HTML comments. For example:
+
+```
+<!-- Seemingly harmless HTML comment..that will break your layout at build -->
+{{ define "main" }}
+...your code here
+{{ end }}
+```
+[See this thread from the Hugo discussion forums.](https://discourse.gohugo.io/t/baseof-html-block-templates-and-list-types-results-in-empty-pages/5612/6)
+{{% /warning %}}
+
+The following shows how you can override both the `"main"` and `"title"` block areas from the base template with code unique to your [default single page template][singletemplate]:
+
+{{< code file="layouts/_default/single.html" download="single.html" >}}
+{{ define "title" }}
+ <!-- This will override the default value set in baseof.html; i.e., "{{.Site.Title}}" in the original example-->
+ {{ .Title }} – {{ .Site.Title }}
+{{ end }}
+{{ define "main" }}
+ <h1>{{ .Title }}</h1>
+ {{ .Content }}
+{{ end }}
+{{< /code >}}
+
+[hugolists]: /templates/lists
+[lookup]: /templates/lookup-order/
+[rendering the section]: /templates/section-templates/
+[singletemplate]: /templates/single-page-templates/
--- /dev/null
- {{ $url := "http://a-big-corp.com/finance/employee-salaries.csv" }}
+---
+title: Data Templates
+linktitle:
+description: In addition to Hugo's built-in variables, you can specify your own custom data in templates or shortcodes that pull from both local and dynamic sources.
+date: 2017-02-01
+publishdate: 2017-02-01
+lastmod: 2017-03-12
+categories: [templates]
+keywords: [data,dynamic,csv,json,toml,yaml]
+menu:
+ docs:
+ parent: "templates"
+ weight: 80
+weight: 80
+sections_weight: 80
+draft: false
+aliases: [/extras/datafiles/,/extras/datadrivencontent/,/doc/datafiles/]
+toc: true
+---
+
+<!-- begin data files -->
+
+Hugo supports loading data from YAML, JSON, and TOML files located in the `data` directory in the root of your Hugo project.
+
+{{< youtube FyPgSuwIMWQ >}}
+
+## The Data Folder
+
+The `data` folder is where you can store additional data for Hugo to use when generating your site. Data files aren't used to generate standalone pages; rather, they're meant to be supplemental to content files. This feature can extend the content in case your front matter fields grow out of control. Or perhaps you want to show a larger dataset in a template (see example below). In both cases, it's a good idea to outsource the data in their own files.
+
+These files must be YAML, JSON, or TOML files (using the `.yml`, `.yaml`, `.json`, or `.toml` extension). The data will be accessible as a `map` in the `.Site.Data` variable.
+
+## Data Files in Themes
+
+Data Files can also be used in [Hugo themes][themes] but note that theme data files follow the same logic as other template files in the [Hugo lookup order][lookup] (i.e., given two files with the same name and relative path, the file in the root project `data` directory will override the file in the `themes/<THEME>/data` directory).
+
+Therefore, theme authors should take care to not include data files that could be easily overwritten by a user who decides to [customize a theme][customize]. For theme-specific data items that shouldn't be overridden, it can be wise to prefix the folder structure with a namespace; e.g. `mytheme/data/<THEME>/somekey/...`. To check if any such duplicate exists, run hugo with the `-v` flag.
+
+The keys in the map created with data templates from data files will be a dot-chained set of `path`, `filename`, and `key` in file (if applicable).
+
+This is best explained with an example:
+
+## Example: Jaco Pastorius' Solo Discography
+
+[Jaco Pastorius](http://en.wikipedia.org/wiki/Jaco_Pastorius_discography) was a great bass player, but his solo discography is short enough to use as an example. [John Patitucci](http://en.wikipedia.org/wiki/John_Patitucci) is another bass giant.
+
+The example below is a bit contrived, but it illustrates the flexibility of data Files. This example uses TOML as its file format with the two following data files:
+
+* `data/jazz/bass/jacopastorius.toml`
+* `data/jazz/bass/johnpatitucci.toml`
+
+`jacopastorius.toml` contains the content below. `johnpatitucci.toml` contains a similar list:
+
+```
+discography = [
+"1974 – Modern American Music … Period! The Criteria Sessions",
+"1974 – Jaco",
+"1976 - Jaco Pastorius",
+"1981 - Word of Mouth",
+"1981 - The Birthday Concert (released in 1995)",
+"1982 - Twins I & II (released in 1999)",
+"1983 - Invitation",
+"1986 - Broadway Blues (released in 1998)",
+"1986 - Honestly Solo Live (released in 1990)",
+"1986 - Live In Italy (released in 1991)",
+"1986 - Heavy'n Jazz (released in 1992)",
+"1991 - Live In New York City, Volumes 1-7.",
+"1999 - Rare Collection (compilation)",
+"2003 - Punk Jazz: The Jaco Pastorius Anthology (compilation)",
+"2007 - The Essential Jaco Pastorius (compilation)"
+]
+```
+
+The list of bass players can be accessed via `.Site.Data.jazz.bass`, a single bass player by adding the filename without the suffix, e.g. `.Site.Data.jazz.bass.jacopastorius`.
+
+You can now render the list of recordings for all the bass players in a template:
+
+```
+{{ range $.Site.Data.jazz.bass }}
+ {{ partial "artist.html" . }}
+{{ end }}
+```
+
+And then in the `partials/artist.html`:
+
+```
+<ul>
+{{ range .discography }}
+ <li>{{ . }}</li>
+{{ end }}
+</ul>
+```
+
+Discover a new favorite bass player? Just add another `.toml` file in the same directory.
+
+## Example: Accessing Named Values in a Data File
+
+Assume you have the following data structure in your `User0123.[yml|toml|json]` data file located directly in `data/`:
+
+{{< code-toggle file="User0123" >}}
+Name: User0123
+"Short Description": "He is a **jolly good** fellow."
+Achievements:
+ - "Can create a Key, Value list from Data File"
+ - "Learns Hugo"
+ - "Reads documentation"
+{{</ code-toggle >}}
+
+You can use the following code to render the `Short Description` in your layout::
+
+```
+<div>Short Description of {{.Site.Data.User0123.Name}}: <p>{{ index .Site.Data.User0123 "Short Description" | markdownify }}</p></div>
+```
+
+Note the use of the [`markdownify` template function][markdownify]. This will send the description through the Blackfriday Markdown rendering engine.
+
+<!-- begin "Data-drive Content" page -->
+
+## Data-Driven Content
+
+In addition to the [data files](/extras/datafiles/) feature, Hugo also has a "data-driven content" feature, which lets you load any [JSON](http://www.json.org/) or [CSV](http://en.wikipedia.org/wiki/Comma-separated_values) file from nearly any resource.
+
+Data-driven content currently consists of two functions, `getJSON` and `getCSV`, which are available in all template files.
+
+## Implementation details
+
+### Call the Functions with a URL
+
+In your template, call the functions like this:
+
+```
+{{ $dataJ := getJSON "url" }}
+{{ $dataC := getCSV "separator" "url" }}
+```
+
+If you use a prefix or postfix for the URL, the functions accept [variadic arguments][variadic]:
+
+```
+{{ $dataJ := getJSON "url prefix" "arg1" "arg2" "arg n" }}
+{{ $dataC := getCSV "separator" "url prefix" "arg1" "arg2" "arg n" }}
+```
+
+The separator for `getCSV` must be put in the first position and can only be one character long.
+
+All passed arguments will be joined to the final URL:
+
+```
+{{ $urlPre := "https://api.github.com" }}
+{{ $gistJ := getJSON $urlPre "/users/GITHUB_USERNAME/gists" }}
+```
+
+This will resolve internally to the following:
+
+```
+{{ $gistJ := getJSON "https://api.github.com/users/GITHUB_USERNAME/gists" }}
+```
+
+Finally, you can range over an array. This example will output the
+first 5 gists for a GitHub user:
+
+```
+<ul>
+ {{ $urlPre := "https://api.github.com" }}
+ {{ $gistJ := getJSON $urlPre "/users/GITHUB_USERNAME/gists" }}
+ {{ range first 5 $gistJ }}
+ {{ if .public }}
+ <li><a href="{{ .html_url }}" target="_blank">{{ .description }}</a></li>
+ {{ end }}
+ {{ end }}
+</ul>
+```
+
+### Example for CSV files
+
+For `getCSV`, the one-character-long separator must be placed in the first position followed by the URL. The following is an example of creating an HTML table in a [partial template][partials] from a published CSV:
+
+{{< code file="layouts/partials/get-csv.html" >}}
+ <table>
+ <thead>
+ <tr>
+ <th>Name</th>
+ <th>Position</th>
+ <th>Salary</th>
+ </tr>
+ </thead>
+ <tbody>
++ {{ $url := "https://example.com/finance/employee-salaries.csv" }}
+ {{ $sep := "," }}
+ {{ range $i, $r := getCSV $sep $url }}
+ <tr>
+ <td>{{ index $r 0 }}</td>
+ <td>{{ index $r 1 }}</td>
+ <td>{{ index $r 2 }}</td>
+ </tr>
+ {{ end }}
+ </tbody>
+ </table>
+{{< /code >}}
+
+The expression `{{index $r number}}` must be used to output the nth-column from the current row.
+
+### Cache URLs
+
+Each downloaded URL will be cached in the default folder `$TMPDIR/hugo_cache/`. The variable `$TMPDIR` will be resolved to your system-dependent temporary directory.
+
+With the command-line flag `--cacheDir`, you can specify any folder on your system as a caching directory.
+
+You can also set `cacheDir` in the [main configuration file][config].
+
+If you don't like caching at all, you can fully disable caching with the command line flag `--ignoreCache`.
+
+### Authentication When Using REST URLs
+
+Currently, you can only use those authentication methods that can be put into an URL. [OAuth][] and other authentication methods are not implemented.
+
+## Load Local files
+
+To load local files with `getJSON` and `getCSV`, the source files must reside within Hugo's working directory. The file extension does not matter, but the content does.
+
+It applies the same output logic as above in [Calling the Functions with a URL](#calling-the-functions-with-a-url).
+
+{{% note %}}
+The local CSV files to be loaded using `getCSV` must be located **outside** of the `data` directory.
+{{% /note %}}
+
+## LiveReload with Data Files
+
+There is no chance to trigger a [LiveReload][] when the content of a URL changes. However, when a *local* file changes (i.e., `data/*` and `themes/<THEME>/data/*`), a LiveReload will be triggered. Symlinks are not supported. Note too that because downloading of data takes a while, Hugo stops processing your Markdown files until the data download has completed.
+
+{{% warning "URL Data and LiveReload" %}}
+If you change any local file and the LiveReload is triggered, Hugo will read the data-driven (URL) content from the cache. If you have disabled the cache (i.e., by running the server with `hugo server --ignoreCache`), Hugo will re-download the content every time LiveReload triggers. This can create *huge* traffic. You may reach API limits quickly.
+{{% /warning %}}
+
+## Examples of Data-driven Content
+
+- Photo gallery JSON powered: [https://github.com/pcdummy/hugo-lightslider-example](https://github.com/pcdummy/hugo-lightslider-example)
+- GitHub Starred Repositories [in a post](https://github.com/SchumacherFM/blog-cs/blob/master/content%2Fposts%2Fgithub-starred.md) using data-driven content in a [custom short code](https://github.com/SchumacherFM/blog-cs/blob/master/layouts%2Fshortcodes%2FghStarred.html).
+
+## Specs for Data Formats
+
+* [TOML Spec][toml]
+* [YAML Spec][yaml]
+* [JSON Spec][json]
+* [CSV Spec][csv]
+
+[config]: /getting-started/configuration/
+[csv]: https://tools.ietf.org/html/rfc4180
+[customize]: /themes/customizing/
+[json]: https://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf "Specification for JSON, JavaScript Object Notation"
+[LiveReload]: /getting-started/usage/#livereload
+[lookup]: /templates/lookup-order/
+[markdownify]: /functions/markdownify/
+[OAuth]: http://en.wikipedia.org/wiki/OAuth
+[partials]: /templates/partials/
+[themes]: /themes/
+[toml]: https://github.com/toml-lang/toml
+[variadic]: http://en.wikipedia.org/wiki/Variadic_function
+[vars]: /variables/
+[yaml]: http://yaml.org/spec/
--- /dev/null
- | ├── post
+---
+title: Lists of Content in Hugo
+linktitle: List Page Templates
+description: Lists have a specific meaning and usage in Hugo when it comes to rendering your site homepage, section page, taxonomy list, or taxonomy terms list.
+date: 2017-02-01
+publishdate: 2017-02-01
+lastmod: 2017-02-01
+categories: [templates]
+keywords: [lists,sections,rss,taxonomies,terms]
+menu:
+ docs:
+ parent: "templates"
+ weight: 22
+weight: 22
+sections_weight: 22
+draft: false
+aliases: [/templates/list/,/layout/indexes/]
+toc: true
+---
+
+## What is a List Page Template?
+
+{{< youtube 8b2YTSMdMps >}}
+
+A list page template is a template used to render multiple pieces of content in a single HTML page. The exception to this rule is the homepage, which is still a list but has its own [dedicated template][homepage].
+
+Hugo uses the term *list* in its truest sense; i.e. a sequential arrangement of material, especially in alphabetical or numerical order. Hugo uses list templates on any output HTML page where content is traditionally listed:
+
+* [Taxonomy terms pages][taxterms]
+* [Taxonomy list pages][taxlists]
+* [Section list pages][sectiontemps]
+* [RSS][rss]
+
+For template lookup order, see [Template Lookup](/templates/lookup-order/).
+
+The idea of a list page comes from the [hierarchical mental model of the web][mentalmodel] and is best demonstrated visually:
+
+
+
+## List Defaults
+
+### Default Templates
+
+Since section lists and taxonomy lists (N.B., *not* [taxonomy terms lists][taxterms]) are both *lists* with regards to their templates, both have the same terminating default of `_default/list.html` or `themes/<THEME>/layouts/_default/list.html` in their lookup order. In addition, both [section lists][sectiontemps] and [taxonomy lists][taxlists] have their own default list templates in `_default`:
+
+See [Template Lookup Order](/templates/lookup-order/) for the complete reference.
+
+## Add Content and Front Matter to List Pages
+
+Since v0.18, [everything in Hugo is a `Page`][bepsays]. This means list pages and the homepage can have associated content files (i.e. `_index.md`) that contain page metadata (i.e., front matter) and content.
+
+This new model allows you to include list-specific front matter via `.Params` and also means that list templates (e.g., `layouts/_default/list.html`) have access to all [page variables][pagevars].
+
+{{% note %}}
+It is important to note that all `_index.md` content files will render according to a *list* template and not according to a [single page template](/templates/single-page-templates/).
+{{% /note %}}
+
+### Example Project Directory
+
+The following is an example of a typical Hugo project directory's content:
+
+```
+.
+...
+├── content
- Using the above example, let's assume you have the following in `content/post/_index.md`:
++| ├── posts
+| | ├── _index.md
+| | ├── post-01.md
+| | └── post-02.md
+| └── quote
+| | ├── quote-01.md
+| | └── quote-02.md
+...
+```
+
- {{< code file="content/post/_index.md" >}}
++Using the above example, let's assume you have the following in `content/posts/_index.md`:
+
- <!-- Ranges through content/post/*.md -->
++{{< code file="content/posts/_index.md" >}}
+---
+title: My Go Journey
+date: 2017-03-23
+publishdate: 2017-03-24
+---
+
+I decided to start learning Go in March 2017.
+
+Follow my journey through this new blog.
+{{< /code >}}
+
+You can now access this `_index.md`'s' content in your list template:
+
+{{< code file="layouts/_default/list.html" download="list.html" >}}
+{{ define "main" }}
+<main>
+ <article>
+ <header>
+ <h1>{{.Title}}</h1>
+ </header>
+ <!-- "{{.Content}}" pulls from the markdown content of the corresponding _index.md -->
+ {{.Content}}
+ </article>
+ <ul>
- {{< code file="example.com/post/index.html" copy="false" >}}
++ <!-- Ranges through content/posts/*.md -->
+ {{ range .Pages }}
+ <li>
+ <a href="{{.Permalink}}">{{.Date.Format "2006-01-02"}} | {{.Title}}</a>
+ </li>
+ {{ end }}
+ </ul>
+</main>
+{{ end }}
+{{< /code >}}
+
+This above will output the following HTML:
+
- <li><a href="/post/post-01/">Post 1</a></li>
- <li><a href="/post/post-02/">Post 2</a></li>
++{{< code file="example.com/posts/index.html" copy="false" >}}
+<!--top of your baseof code-->
+<main>
+ <article>
+ <header>
+ <h1>My Go Journey</h1>
+ </header>
+ <p>I decided to start learning Go in March 2017.</p>
+ <p>Follow my journey through this new blog.</p>
+ </article>
+ <ul>
- {{< code file="layouts/section/post.html" >}}
++ <li><a href="/posts/post-01/">Post 1</a></li>
++ <li><a href="/posts/post-02/">Post 2</a></li>
+ </ul>
+</main>
+<!--bottom of your baseof-->
+{{< /code >}}
+
+### List Pages Without `_index.md`
+
+You do *not* have to create an `_index.md` file for every list page (i.e. section, taxonomy, taxonomy terms, etc) or the homepage. If Hugo does not find an `_index.md` within the respective content section when rendering a list template, the page will be created but with no `{{.Content}}` and only the default values for `.Title` etc.
+
+Using this same `layouts/_default/list.html` template and applying it to the `quotes` section above will render the following output. Note that `quotes` does not have an `_index.md` file to pull from:
+
+{{< code file="example.com/quote/index.html" copy="false" >}}
+<!--baseof-->
+<main>
+ <article>
+ <header>
+ <!-- Hugo assumes that .Title is the name of the section since there is no _index.md content file from which to pull a "title:" field -->
+ <h1>Quotes</h1>
+ </header>
+ </article>
+ <ul>
+ <li><a href="https://example.com/quote/quotes-01/">Quote 1</a></li>
+ <li><a href="https://example.com/quote/quotes-02/">Quote 2</a></li>
+ </ul>
+</main>
+<!--baseof-->
+{{< /code >}}
+
+{{% note %}}
+The default behavior of Hugo is to pluralize list titles; hence the inflection of the `quote` section to "Quotes" when called with the `.Title` [page variable](/variables/page/). You can change this via the `pluralizeListTitles` directive in your [site configuration](/getting-started/configuration/).
+{{% /note %}}
+
+## Example List Templates
+
+### Section Template
+
+This list template has been modified slightly from a template originally used in [spf13.com](http://spf13.com/). It makes use of [partial templates][partials] for the chrome of the rendered page rather than using a [base template][base] The examples that follow also use the [content view templates][views] `li.html` or `summary.html`.
+
- <!-- Renders the li.html content view for each content/post/*.md -->
++{{< code file="layouts/section/posts.html" >}}
+{{ partial "header.html" . }}
+{{ partial "subheader.html" . }}
+<main>
+ <div>
+ <h1>{{ .Title }}</h1>
+ <ul>
- ## Filter and Limiting Lists
++ <!-- Renders the li.html content view for each content/posts/*.md -->
+ {{ range .Pages }}
+ {{ .Render "li"}}
+ {{ end }}
+ </ul>
+ </div>
+</main>
+{{ partial "footer.html" . }}
+{{< /code >}}
+
+### Taxonomy Template
+
+{{< code file="layouts/_default/taxonomy.html" download="taxonomy.html" >}}
+{{ define "main" }}
+<main>
+ <div>
+ <h1>{{ .Title }}</h1>
+ <!-- ranges through each of the content files associated with a particular taxonomy term and renders the summary.html content view -->
+ {{ range .Pages }}
+ {{ .Render "summary"}}
+ {{ end }}
+ </div>
+</main>
+{{ end }}
+{{< /code >}}
+
+## Order Content
+
+Hugo lists render the content based on metadata you provide in [front matter][]. In addition to sane defaults, Hugo also ships with multiple methods to make quick work of ordering content inside list templates:
+
+### Default: Weight > Date > LinkTitle > FilePath
+
+{{< code file="layouts/partials/default-order.html" >}}
+<ul>
+ {{ range .Pages }}
+ <li>
+ <h1><a href="{{ .Permalink }}">{{ .Title }}</a></h1>
+ <time>{{ .Date.Format "Mon, Jan 2, 2006" }}</time>
+ </li>
+ {{ end }}
+</ul>
+{{< /code >}}
+
+### By Weight
+
+Lower weight gets higher precedence. So content with lower weight will come first.
+
+{{< code file="layouts/partials/by-weight.html" >}}
+<ul>
+ {{ range .Pages.ByWeight }}
+ <li>
+ <h1><a href="{{ .Permalink }}">{{ .Title }}</a></h1>
+ <time>{{ .Date.Format "Mon, Jan 2, 2006" }}</time>
+ </li>
+ {{ end }}
+</ul>
+{{< /code >}}
+
+### By Date
+
+{{< code file="layouts/partials/by-date.html" >}}
+<ul>
+ <!-- orders content according to the "date" field in front matter -->
+ {{ range .Pages.ByDate }}
+ <li>
+ <h1><a href="{{ .Permalink }}">{{ .Title }}</a></h1>
+ <time>{{ .Date.Format "Mon, Jan 2, 2006" }}</time>
+ </li>
+ {{ end }}
+</ul>
+{{< /code >}}
+
+### By Publish Date
+
+{{< code file="layouts/partials/by-publish-date.html" >}}
+<ul>
+ <!-- orders content according to the "publishdate" field in front matter -->
+ {{ range .Pages.ByPublishDate }}
+ <li>
+ <h1><a href="{{ .Permalink }}">{{ .Title }}</a></h1>
+ <time>{{ .Date.Format "Mon, Jan 2, 2006" }}</time>
+ </li>
+ {{ end }}
+</ul>
+{{< /code >}}
+
+### By Expiration Date
+
+{{< code file="layouts/partials/by-expiry-date.html" >}}
+<ul>
+ {{ range .Pages.ByExpiryDate }}
+ <li>
+ <h1><a href="{{ .Permalink }}">{{ .Title }}</a></h1>
+ <time>{{ .Date.Format "Mon, Jan 2, 2006" }}</time>
+ </li>
+ {{ end }}
+</ul>
+{{< /code >}}
+
+### By Last Modified Date
+
+{{< code file="layouts/partials/by-last-mod.html" >}}
+<ul>
+ <!-- orders content according to the "lastmod" field in front matter -->
+ {{ range .Pages.ByLastmod }}
+ <li>
+ <h1><a href="{{ .Permalink }}">{{ .Title }}</a></h1>
+ <time>{{ .Date.Format "Mon, Jan 2, 2006" }}</time>
+ </li>
+ {{ end }}
+</ul>
+{{< /code >}}
+
+### By Length
+
+{{< code file="layouts/partials/by-length.html" >}}
+<ul>
+ <!-- orders content according to content length in ascending order (i.e., the shortest content will be listed first) -->
+ {{ range .Pages.ByLength }}
+ <li>
+ <h1><a href="{{ .Permalink }}">{{ .Title }}</a></h1>
+ <time>{{ .Date.Format "Mon, Jan 2, 2006" }}</time>
+ </li>
+ {{ end }}
+</ul>
+{{< /code >}}
+
+### By Title
+
+{{< code file="layouts/partials/by-title.html" >}}
+<ul>
+ <!-- ranges through content in ascending order according to the "title" field set in front matter -->
+ {{ range .Pages.ByTitle }}
+ <li>
+ <h1><a href="{{ .Permalink }}">{{ .Title }}</a></h1>
+ <time>{{ .Date.Format "Mon, Jan 2, 2006" }}</time>
+ </li>
+ {{ end }}
+</ul>
+{{< /code >}}
+
+### By Link Title
+
+{{< code file="layouts/partials/by-link-title.html" >}}
+<ul>
+ <!-- ranges through content in ascending order according to the "linktitle" field in front matter. If a "linktitle" field is not set, the range will start with content that only has a "title" field and use that value for .LinkTitle -->
+ {{ range .Pages.ByLinkTitle }}
+ <li>
+ <h1><a href="{{ .Permalink }}">{{ .LinkTitle }}</a></h1>
+ <time>{{ .Date.Format "Mon, Jan 2, 2006" }}</time>
+ </li>
+ {{ end }}
+</ul>
+{{< /code >}}
+
+### By Parameter
+
+Order based on the specified front matter parameter. Content that does not have the specified front matter field will use the site's `.Site.Params` default. If the parameter is not found at all in some entries, those entries will appear together at the end of the ordering.
+
+{{< code file="layouts/partials/by-rating.html" >}}
+<!-- Ranges through content according to the "rating" field set in front matter -->
+{{ range (.Pages.ByParam "rating") }}
+ <!-- ... -->
+{{ end }}
+{{< /code >}}
+
+If the targeted front matter field is nested beneath another field, you can access the field using dot notation.
+
+{{< code file="layouts/partials/by-nested-param.html" >}}
+{{ range (.Pages.ByParam "author.last_name") }}
+ <!-- ... -->
+{{ end }}
+{{< /code >}}
+
+### Reverse Order
+
+Reversing order can be applied to any of the above methods. The following uses `ByDate` as an example:
+
+{{< code file="layouts/partials/by-date-reverse.html" >}}
+<ul>
+ {{ range .Pages.ByDate.Reverse }}
+ <li>
+ <h1><a href="{{ .Permalink }}">{{ .Title }}</a></h1>
+ <time>{{ .Date.Format "Mon, Jan 2, 2006" }}</time>
+ </li>
+ {{ end }}
+</ul>
+{{< /code >}}
+
+## Group Content
+
+Hugo provides some functions for grouping pages by Section, Type, Date, etc.
+
+### By Page Field
+
+{{< code file="layouts/partials/by-page-field.html" >}}
+<!-- Groups content according to content section. The ".Key" in this instance will be the section's title. -->
+{{ range .Pages.GroupBy "Section" }}
+<h3>{{ .Key }}</h3>
+<ul>
+ {{ range .Pages }}
+ <li>
+ <a href="{{ .Permalink }}">{{ .Title }}</a>
+ <div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
+ </li>
+ {{ end }}
+</ul>
+{{ end }}
+{{< /code >}}
+
+In the above example, you may want `{{.Title}}` to point the `title` field you have added to your `_index.md` file instead. You can access this value using the [`.GetPage` function][getpage]:
+
+{{< code file="layouts/partials/by-page-field.html" >}}
+<!-- Groups content according to content section.-->
+{{ range .Pages.GroupBy "Section" }}
+<!-- Checks for existence of _index.md for a section; if available, pulls from "title" in front matter -->
+{{ with $.Site.GetPage "section" .Key }}
+<h3>{{.Title}}</h3>
+{{ else }}
+<!-- If no _index.md is available, ".Key" defaults to the section title and filters to title casing -->
+<h3>{{ .Key | title }}</h3>
+{{ end }}
+<ul>
+ {{ range .Pages }}
+ <li>
+ <a href="{{ .Permalink }}">{{ .Title }}</a>
+ <div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
+ </li>
+ {{ end }}
+</ul>
+{{ end }}
+{{< /code >}}
+
+### By Date
+
+{{< code file="layouts/partials/by-page-date.html" >}}
+<!-- Groups content by month according to the "date" field in front matter -->
+{{ range .Pages.GroupByDate "2006-01" }}
+<h3>{{ .Key }}</h3>
+<ul>
+ {{ range .Pages }}
+ <li>
+ <a href="{{ .Permalink }}">{{ .Title }}</a>
+ <div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
+ </li>
+ {{ end }}
+</ul>
+{{ end }}
+{{< /code >}}
+
+### By Publish Date
+
+{{< code file="layouts/partials/by-page-publish-date.html" >}}
+<!-- Groups content by month according to the "publishdate" field in front matter -->
+{{ range .Pages.GroupByPublishDate "2006-01" }}
+<h3>{{ .Key }}</h3>
+<ul>
+ {{ range .Pages }}
+ <li>
+ <a href="{{ .Permalink }}">{{ .Title }}</a>
+ <div class="meta">{{ .PublishDate.Format "Mon, Jan 2, 2006" }}</div>
+ </li>
+ {{ end }}
+</ul>
+{{ end }}
+{{< /code >}}
+
+### By Page Parameter
+
+{{< code file="layouts/partials/by-page-param.html" >}}
+<!-- Groups content according to the "param_key" field in front matter -->
+{{ range .Pages.GroupByParam "param_key" }}
+<h3>{{ .Key }}</h3>
+<ul>
+ {{ range .Pages }}
+ <li>
+ <a href="{{ .Permalink }}">{{ .Title }}</a>
+ <div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
+ </li>
+ {{ end }}
+</ul>
+{{ end }}
+{{< /code >}}
+
+### By Page Parameter in Date Format
+
+The following template takes grouping by `date` a step further and uses Go's layout string. See the [`Format` function][] for more examples of how to use Go's layout string to format dates in Hugo.
+
+{{< code file="layouts/partials/by-page-param-as-date.html" >}}
+<!-- Groups content by month according to the "param_key" field in front matter -->
+{{ range .Pages.GroupByParamDate "param_key" "2006-01" }}
+<h3>{{ .Key }}</h3>
+<ul>
+ {{ range .Pages }}
+ <li>
+ <a href="{{ .Permalink }}">{{ .Title }}</a>
+ <div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
+ </li>
+ {{ end }}
+</ul>
+{{ end }}
+{{< /code >}}
+
+### Reverse Key Order
+
+Ordering of groups is performed by keys in alphanumeric order (A–Z, 1–100) and in reverse chronological order (i.e., with the newest first) for dates.
+
+While these are logical defaults, they are not always the desired order. There are two different syntaxes to change Hugo's default ordering for groups, both of which work the same way.
+
+#### 1. Adding the Reverse Method
+
+```
+{{ range (.Pages.GroupBy "Section").Reverse }}
+```
+
+```
+{{ range (.Pages.GroupByDate "2006-01").Reverse }}
+```
+
+#### 2. Providing the Alternate Direction
+
+```
+{{ range .Pages.GroupByDate "2006-01" "asc" }}
+```
+
+```
+{{ range .Pages.GroupBy "Section" "desc" }}
+```
+
+### Order Within Groups
+
+Because Grouping returns a `{{.Key}}` and a slice of pages, all of the ordering methods listed above are available.
+
+Here is the ordering for the example that follows:
+
+1. Content is grouped by month according to the `date` field in front matter.
+2. Groups are listed in ascending order (i.e., the oldest groups first)
+3. Pages within each respective group are ordered alphabetically according to the `title`.
+
+{{< code file="layouts/partials/by-group-by-page.html" >}}
+{{ range .Pages.GroupByDate "2006-01" "asc" }}
+<h3>{{ .Key }}</h3>
+<ul>
+ {{ range .Pages.ByTitle }}
+ <li>
+ <a href="{{ .Permalink }}">{{ .Title }}</a>
+ <div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
+ </li>
+ {{ end }}
+</ul>
+{{ end }}
+{{< /code >}}
+
- Sometimes you only want to list a subset of the available content. A common is to only display “Posts” on blog's homepage. You can accomplish this with the `where` function.
++## Filtering and Limiting Lists {#filtering-and-limiting-lists}
+
- ### `where`
-
- `where` works in a similar manner to the [`where` keyword in SQL][wherekeyword]. It selects all elements of the array or slice that match the provided field and value. `where` takes three arguments:
-
- 1. `array` *or* `slice of maps or structs`
- 2. `key` *or* `field name`
- 3. `match value`
-
- {{< code file="layouts/_default/index.html" >}}
- {{ range where .Pages "Section" "post" }}
- {{ .Content }}
- {{ end }}
- {{< /code >}}
-
- You can see more examples in the [functions documentation for `where`][wherefunction].
-
- ### `first`
-
- `first` works in a similar manner to the [`limit` keyword in SQL][limitkeyword]. It reduces the array to only the `first N` elements. It takes the array and number of elements as input. `first` takes two arguments:
-
- 1. `array` *or* `slice of maps or structs`
- 2. `number of elements`
-
- {{< code file="layout/_default/section.html" >}}
- {{ range first 10 .Pages }}
- {{ .Render "summary" }}
- {{ end }}
- {{< /code >}}
-
- ### `first` and `where` Together
-
- Using `first` and `where` together can be very powerful:
-
- {{< code file="first-and-where-together.html" >}}
- <!-- Orders the content inside the "posts" section by the "title" field and then ranges through only the first 5 posts -->
- {{ range first 5 (where .Pages "Section" "post").ByTitle }}
- {{ .Content }}
- {{ end }}
- {{< /code >}}
++Sometimes you only want to list a subset of the available content. A
++common is to only display posts from [**main sections**][mainsections]
++on the blog's homepage.
+
- [limitkeyword]: https://www.techonthenet.com/sql/select_limit.php
++See the documentation on [`where` function][wherefunction] and
++[`first` function][firstfunction] for further details.
+
+[base]: /templates/base/
+[bepsays]: http://bepsays.com/en/2016/12/19/hugo-018/
+[directorystructure]: /getting-started/directory-structure/
+[`Format` function]: /functions/format/
+[front matter]: /content-management/front-matter/
+[getpage]: /functions/getpage/
+[homepage]: /templates/homepage/
+[homepage]: /templates/homepage/
- [wherekeyword]: https://www.techonthenet.com/sql/where.php
+[mentalmodel]: http://webstyleguide.com/wsg3/3-information-architecture/3-site-structure.html
+[pagevars]: /variables/page/
+[partials]: /templates/partials/
+[RSS 2.0]: http://cyber.law.harvard.edu/rss/rss.html "RSS 2.0 Specification"
+[rss]: /templates/rss/
+[sections]: /content-management/sections/
+[sectiontemps]: /templates/section-templates/
+[sitevars]: /variables/site/
+[taxlists]: /templates/taxonomy-templates/#taxonomy-list-templates/
+[taxterms]: /templates/taxonomy-templates/#taxonomy-terms-templates/
+[taxvars]: /variables/taxonomy/
+[views]: /templates/views/
+[wherefunction]: /functions/where/
++[firstfunction]: /functions/first/
++[mainsections]: /functions/where/#mainsections
--- /dev/null
- Sometimes you only want to list a subset of the available content. A common request is to only display “Posts” on the homepage. You can accomplish this with the `where` function.
-
- ### `where`
-
- `where` works in a similar manner to the `where` keyword in SQL. It selects all elements of the array or slice that match the provided field and value. `where` takes three arguments:
-
- 1. `array` or a `slice of maps or structs`
- 2. `key` or `field name`
- 3. `match value`
-
- {{< code file="layouts/_default/index.html" >}}
- {{ range where .Pages "Section" "post" }}
- {{ .Content }}
- {{ end }}
- {{< /code >}}
-
- ### `first`
-
- `first` works in a similar manner to the [`limit` keyword in SQL][limitkeyword]. It reduces the array to only the `first N` elements. It takes the array and number of elements as input. `first` takes two arguments:
-
- 1. `array` or `slice of maps or structs`
- 2. `number of elements`
-
- {{< code file="layout/_default/section.html" >}}
- {{ range first 10 .Pages }}
- {{ .Render "summary" }}
- {{ end }}
- {{< /code >}}
-
- ### `first` and `where` Together
-
- Using `first` and `where` together can be very powerful:
-
- {{< code file="first-and-where-together.html" >}}
- {{ range first 5 (where .Pages "Section" "post") }}
- {{ .Content }}
- {{ end }}
- {{< /code >}}
+---
+title: Ordere and Grouping Hugo Lists
+linktitle: List Ordering and Grouping
+description: You can group or order your content in both your templating and content front matter.
+date: 2017-02-01
+publishdate: 2017-02-01
+lastmod: 2017-02-01
+categories: [templates]
+keywords: []
+menu:
+ docs:
+ parent: "templates"
+ weight: 27
+weight: 27
+sections_weight: 27
+draft: true
+aliases: [/templates/ordering/,/templates/grouping/]
+toc: true
+notes: This was originally going to be a separate page on the new docs site but it now makes more sense to keep everything within the templates/lists page. - rdwatters, 2017-03-12.
+---
+
+In Hugo, A list template is any template that will be used to render multiple pieces of content in a single HTML page.
+
+## Example List Templates
+
+### Section Template
+
+This list template is used for [spf13.com](http://spf13.com/). It makes use of [partial templates][partials]. All examples use a [view](/templates/views/) called either "li" or "summary."
+
+{{< code file="layouts/section/post.html" >}}
+{{ partial "header.html" . }}
+{{ partial "subheader.html" . }}
+
+<section id="main">
+ <div>
+ <h1 id="title">{{ .Title }}</h1>
+ <ul id="list">
+ {{ range .Pages }}
+ {{ .Render "li"}}
+ {{ end }}
+ </ul>
+ </div>
+</section>
+{{ partial "footer.html" . }}
+{{< /code >}}
+
+### Taxonomy Template
+
+{{< code file="layouts/_default/taxonomies.html" download="taxonomies.html" >}}
+{{ define "main" }}
+<section id="main">
+ <div>
+ <h1 id="title">{{ .Title }}</h1>
+ {{ range .Pages }}
+ {{ .Render "summary"}}
+ {{ end }}
+ </div>
+</section>
+{{ end }}
+{{< /code >}}
+
+## Order Content
+
+Hugo lists render the content based on metadata provided in the [front matter](/content-management/front-matter/)..
+
+Here are a variety of different ways you can order the content items in
+your list templates:
+
+### Default: Weight > Date
+
+{{< code file="layouts/partials/order-default.html" >}}
+<ul class="pages">
+ {{ range .Pages }}
+ <li>
+ <h1><a href="{{ .Permalink }}">{{ .Title }}</a></h1>
+ <time>{{ .Date.Format "Mon, Jan 2, 2006" }}</time>
+ </li>
+ {{ end }}
+</ul>
+{{< /code >}}
+
+### By Weight
+
+{{< code file="layouts/partials/by-weight.html" >}}
+{{ range .Pages.ByWeight }}
+ <li>
+ <a href="{{ .Permalink }}">{{ .Title }}</a>
+ <div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
+ </li>
+{{ end }}
+{{< /code >}}
+
+### By Date
+
+{{< code file="layouts/partials/by-date.html" >}}
+{{ range .Pages.ByDate }}
+ <li>
+ <a href="{{ .Permalink }}">{{ .Title }}</a>
+ <div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
+ </li>
+{{ end }}
+{{< /code >}}
+
+### By Publish Date
+
+{{< code file="layouts/partials/by-publish-date.html" >}}
+{{ range .Pages.ByPublishDate }}
+ <li>
+ <a href="{{ .Permalink }}">{{ .Title }}</a>
+ <div class="meta">{{ .PublishDate.Format "Mon, Jan 2, 2006" }}</div>
+ </li>
+{{ end }}
+{{< /code >}}
+
+### By Expiration Date
+
+{{< code file="layouts/partials/by-expiry-date.html" >}}
+{{ range .Pages.ByExpiryDate }}
+ <li>
+ <a href="{{ .Permalink }}">{{ .Title }}</a>
+ <div class="meta">{{ .ExpiryDate.Format "Mon, Jan 2, 2006" }}</div>
+ </li>
+{{ end }}
+{{< /code >}}
+
+### By Last Modified Date
+
+{{< code file="layouts/partials/by-last-mod.html" >}}
+{{ range .Pages.ByLastmod }}
+ <li>
+ <a href="{{ .Permalink }}">{{ .Title }}</a>
+ <div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
+ </li>
+{{ end }}
+{{< /code >}}
+
+### By Length
+
+{{< code file="layouts/partials/by-length.html" >}}
+{{ range .Pages.ByLength }}
+ <li>
+ <a href="{{ .Permalink }}">{{ .Title }}</a>
+ <div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
+ </li>
+{{ end }}
+{{< /code >}}
+
+
+### By Title
+
+{{< code file="layouts/partials/by-title.html" >}}
+{{ range .Pages.ByTitle }}
+ <li>
+ <a href="{{ .Permalink }}">{{ .Title }}</a>
+ <div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
+ </li>
+{{ end }}
+{{< /code >}}
+
+### By Link Title
+
+{{< code file="layouts/partials/by-link-title.html" >}}
+{{ range .Pages.ByLinkTitle }}
+ <li>
+ <a href="{{ .Permalink }}">{{ .LinkTitle }}</a>
+ <div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
+ </li>
+{{ end }}
+{{< /code >}}
+
+### By Parameter
+
+Order based on the specified front matter parameter. Content that does not have the specified front matter field will use the site's `.Site.Params` default. If the parameter is not found at all in some entries, those entries will appear together at the end of the ordering.
+
+The below example sorts a list of posts by their rating.
+
+{{< code file="layouts/partials/by-rating.html" >}}
+{{ range (.Pages.ByParam "rating") }}
+ <!-- ... -->
+{{ end }}
+{{< /code >}}
+
+If the front matter field of interest is nested beneath another field, you can
+also get it:
+
+{{< code file="layouts/partials/by-nested-param.html" >}}
+{{ range (.Pages.ByParam "author.last_name") }}
+ <!-- ... -->
+{{ end }}
+{{< /code >}}
+
+### Reverse Order
+
+Reversing order can be applied to any of the above methods. The following uses `ByDate` as an example:
+
+{{< code file="layouts/partials/by-date-reverse.html" >}}
+{{ range .Pages.ByDate.Reverse }}
+<li>
+<a href="{{ .Permalink }}">{{ .Title }}</a>
+<div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
+</li>
+{{ end }}
+{{< /code >}}
+
+## Group Content
+
+Hugo provides some functions for grouping pages by Section, Type, Date, etc.
+
+### By Page Field
+
+{{< code file="layouts/partials/by-page-field.html" >}}
+{{ range .Pages.GroupBy "Section" }}
+<h3>{{ .Key }}</h3>
+<ul>
+ {{ range .Pages }}
+ <li>
+ <a href="{{ .Permalink }}">{{ .Title }}</a>
+ <div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
+ </li>
+ {{ end }}
+</ul>
+{{ end }}
+{{< /code >}}
+
+### By Page date
+
+{{< code file="layouts/partials/by-page-date.html" >}}
+{{ range .Pages.GroupByDate "2006-01" }}
+<h3>{{ .Key }}</h3>
+<ul>
+ {{ range .Pages }}
+ <li>
+ <a href="{{ .Permalink }}">{{ .Title }}</a>
+ <div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
+ </li>
+ {{ end }}
+</ul>
+{{ end }}
+{{< /code >}}
+
+### By Page publish date
+
+{{< code file="layouts/partials/by-page-publish-date.html" >}}
+{{ range .Pages.GroupByPublishDate "2006-01" }}
+<h3>{{ .Key }}</h3>
+<ul>
+ {{ range .Pages }}
+ <li>
+ <a href="{{ .Permalink }}">{{ .Title }}</a>
+ <div class="meta">{{ .PublishDate.Format "Mon, Jan 2, 2006" }}</div>
+ </li>
+ {{ end }}
+</ul>
+{{ end }}
+{{< /code >}}
+
+### By Page Param
+
+{{< code file="layouts/partials/by-page-param.html" >}}
+{{ range .Pages.GroupByParam "param_key" }}
+<h3>{{ .Key }}</h3>
+<ul>
+ {{ range .Pages }}
+ <li>
+ <a href="{{ .Permalink }}">{{ .Title }}</a>
+ <div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
+ </li>
+ {{ end }}
+</ul>
+{{ end }}
+{{< /code >}}
+
+### By Page Param in Date Format
+
+{{< code file="layouts/partials/by-page-param-as-date.html" >}}
+{{ range .Pages.GroupByParamDate "param_key" "2006-01" }}
+<h3>{{ .Key }}</h3>
+<ul>
+ {{ range .Pages }}
+ <li>
+ <a href="{{ .Permalink }}">{{ .Title }}</a>
+ <div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
+ </li>
+ {{ end }}
+</ul>
+{{ end }}
+{{< /code >}}
+
+### Reverse Key Order
+
+The ordering of the groups is performed by keys in alphanumeric order (A–Z, 1–100) and in reverse chronological order (newest first) for dates.
+
+While these are logical defaults, they are not always the desired order. There are two different syntaxes to change the order, both of which work the same way. You can use your preferred syntax.
+
+#### Reverse Method
+
+```
+{{ range (.Pages.GroupBy "Section").Reverse }}
+```
+
+```
+{{ range (.Pages.GroupByDate "2006-01").Reverse }}
+```
+
+
+#### Provide the Alternate Direction
+
+```
+{{ range .Pages.GroupByDate "2006-01" "asc" }}
+```
+
+```
+{{ range .Pages.GroupBy "Section" "desc" }}
+```
+
+### Order Within Groups
+
+Because Grouping returns a `{{.Key}}` and a slice of pages, all of the ordering methods listed above are available.
+
+In the following example, groups are ordered chronologically and then content
+within each group is ordered alphabetically by title.
+
+{{< code file="layouts/partials/by-group-by-page.html" >}}
+{{ range .Pages.GroupByDate "2006-01" "asc" }}
+<h3>{{ .Key }}</h3>
+<ul>
+ {{ range .Pages.ByTitle }}
+ <li>
+ <a href="{{ .Permalink }}">{{ .Title }}</a>
+ <div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
+ </li>
+ {{ end }}
+</ul>
+{{ end }}
+{{< /code >}}
+
+## Filter and Limiting Lists
+
++See the [_Lists/Filtering and Limiting Lists_
++section][filteringandlimitinglists] for details.
+
+
+[views]: /templates/views/
++[filteringandlimitinglists]: /templates/lists/#filtering-and-limiting-lists
--- /dev/null
- * `{{ $paginator := .Paginate (where .Pages "Type" "post") 5 }}`
+---
+title: Pagination
+linktitle: Pagination
+description: Hugo supports pagination for your homepage, section pages, and taxonomies.
+date: 2017-02-01
+publishdate: 2017-02-01
+lastmod: 2017-02-01
+categories: [templates]
+keywords: [lists,sections,pagination]
+menu:
+ docs:
+ parent: "templates"
+ weight: 140
+weight: 140
+sections_weight: 140
+draft: false
+aliases: [/extras/pagination,/doc/pagination/]
+toc: true
+---
+
+The real power of Hugo pagination shines when combined with the [`where` function][where] and its SQL-like operators: [`first`][], [`last`][], and [`after`][]. You can even [order the content][lists] the way you've become used to with Hugo.
+
+## Configure Pagination
+
+Pagination can be configured in your [site configuration][configuration]:
+
+`Paginate`
+: default = `10`. This setting can be overridden within the template.
+
+`PaginatePath`
+: default = `page`. Allows you to set a different path for your pagination pages.
+
+Setting `Paginate` to a positive value will split the list pages for the homepage, sections and taxonomies into chunks of that size. But note that the generation of the pagination pages for sections, taxonomies and homepage is *lazy* --- the pages will not be created if not referenced by a `.Paginator` (see below).
+
+`PaginatePath` is used to adapt the `URL` to the pages in the paginator (the default setting will produce URLs on the form `/page/1/`.
+
+## List Paginator Pages
+
+{{% warning %}}
+`.Paginator` is provided to help you build a pager menu. This feature is currently only supported on homepage and list pages (i.e., taxonomies and section lists).
+{{% /warning %}}
+
+There are two ways to configure and use a `.Paginator`:
+
+1. The simplest way is just to call `.Paginator.Pages` from a template. It will contain the pages for *that page*.
+2. Select a subset of the pages with the available template functions and ordering options, and pass the slice to `.Paginate`, e.g. `{{ range (.Paginate ( first 50 .Pages.ByTitle )).Pages }}`.
+
+For a given **Page**, it's one of the options above. The `.Paginator` is static and cannot change once created.
+
+The global page size setting (`Paginate`) can be overridden by providing a positive integer as the last argument. The examples below will give five items per page:
+
+* `{{ range (.Paginator 5).Pages }}`
- {{ $paginator := .Paginate (where .Pages "Type" "post") }}
++* `{{ $paginator := .Paginate (where .Pages "Type" "posts") 5 }}`
+
+It is also possible to use the `GroupBy` functions in combination with pagination:
+
+```
+{{ range (.Paginate (.Pages.GroupByDate "2006")).PageGroups }}
+```
+
+## Build the navigation
+
+The `.Paginator` contains enough information to build a paginator interface.
+
+The easiest way to add this to your pages is to include the built-in template (with `Bootstrap`-compatible styles):
+
+```
+{{ template "_internal/pagination.html" . }}
+```
+
+{{% note "When to Create `.Paginator`" %}}
+If you use any filters or ordering functions to create your `.Paginator` *and* you want the navigation buttons to be shown before the page listing, you must create the `.Paginator` before it's used.
+{{% /note %}}
+
+The following example shows how to create `.Paginator` before its used:
+
+```
++{{ $paginator := .Paginate (where .Pages "Type" "posts") }}
+{{ template "_internal/pagination.html" . }}
+{{ range $paginator.Pages }}
+ {{ .Title }}
+{{ end }}
+```
+
+Without the `where` filter, the above example is even simpler:
+
+```
+{{ template "_internal/pagination.html" . }}
+{{ range .Paginator.Pages }}
+ {{ .Title }}
+{{ end }}
+```
+
+If you want to build custom navigation, you can do so using the `.Paginator` object, which includes the following properties:
+
+`PageNumber`
+: The current page's number in the pager sequence
+
+`URL`
+: The relative URL to the current pager
+
+`Pages`
+: The pages in the current pager
+
+`NumberOfElements`
+: The number of elements on this page
+
+`HasPrev`
+: Whether there are page(s) before the current
+
+`Prev`
+: The pager for the previous page
+
+`HasNext`
+: Whether there are page(s) after the current
+
+`Next`
+: The pager for the next page
+
+`First`
+: The pager for the first page
+
+`Last`
+: The pager for the last page
+
+`Pagers`
+: A list of pagers that can be used to build a pagination menu
+
+`PageSize`
+: Size of each pager
+
+`TotalPages`
+: The number of pages in the paginator
+
+`TotalNumberOfElements`
+: The number of elements on all pages in this paginator
+
+## Additional information
+
+The pages are built on the following form (`BLANK` means no value):
+
+```
+[SECTION/TAXONOMY/BLANK]/index.html
+[SECTION/TAXONOMY/BLANK]/page/1/index.html => redirect to [SECTION/TAXONOMY/BLANK]/index.html
+[SECTION/TAXONOMY/BLANK]/page/2/index.html
+....
+```
+
+
+[`first`]: /functions/first/
+[`last`]: /functions/last/
+[`after`]: /functions/after/
+[configuration]: /getting-started/configuration/
+[lists]: /templates/lists/
+[where]: /functions/where/
--- /dev/null
- ### `post/single.html`
+---
+title: Single Page Templates
+linktitle:
+description: The primary view of content in Hugo is the single view. Hugo will render every Markdown file provided with a corresponding single template.
+date: 2017-02-01
+publishdate: 2017-02-01
+lastmod: 2017-04-06
+categories: [templates]
+keywords: [page,templates]
+menu:
+ docs:
+ parent: "templates"
+ weight: 60
+weight: 60
+sections_weight: 60
+draft: false
+aliases: [/layout/content/]
+toc: true
+---
+
+## Single Page Template Lookup Order
+
+See [Template Lookup](/templates/lookup-order/).
+
+## Example Single Page Templates
+
+Content pages are of the type `page` and will therefore have all the [page variables][pagevars] and [site variables][] available to use in their templates.
+
- {{< code file="layouts/post/single.html" download="single.html" >}}
++### `posts/single.html`
+
+This single page template makes use of Hugo [base templates][], the [`.Format` function][] for dates, the [`.WordCount` page variable][pagevars], and ranges through the single content's specific [taxonomies][pagetaxonomy]. [`with`][] is also used to check whether the taxonomies are set in the front matter.
+
++{{< code file="layouts/posts/single.html" download="single.html" >}}
+{{ define "main" }}
+<section id="main">
+ <h1 id="title">{{ .Title }}</h1>
+ <div>
+ <article id="content">
+ {{ .Content }}
+ </article>
+ </div>
+</section>
+<aside id="meta">
+ <div>
+ <section>
+ <h4 id="date"> {{ .Date.Format "Mon Jan 2, 2006" }} </h4>
+ <h5 id="wordcount"> {{ .WordCount }} Words </h5>
+ </section>
+ {{ with .Params.topics }}
+ <ul id="topics">
+ {{ range . }}
+ <li><a href="{{ "topics" | absURL}}{{ . | urlize }}">{{ . }}</a> </li>
+ {{ end }}
+ </ul>
+ {{ end }}
+ {{ with .Params.tags }}
+ <ul id="tags">
+ {{ range . }}
+ <li> <a href="{{ "tags" | absURL }}{{ . | urlize }}">{{ . }}</a> </li>
+ {{ end }}
+ </ul>
+ {{ end }}
+ </div>
+ <div>
+ {{ with .PrevInSection }}
+ <a class="previous" href="{{.Permalink}}"> {{.Title}}</a>
+ {{ end }}
+ {{ with .NextInSection }}
+ <a class="next" href="{{.Permalink}}"> {{.Title}}</a>
+ {{ end }}
+ </div>
+</aside>
+{{ end }}
+{{< /code >}}
+
+To easily generate new instances of a content type (e.g., new `.md` files in a section like `project/`) with preconfigured front matter, use [content archetypes][archetypes].
+
+[archetypes]: /content-management/archetypes/
+[base templates]: /templates/base/
+[config]: /getting-started/configuration/
+[content type]: /content-management/types/
+[directory structure]: /getting-started/directory-structure/
+[dry]: https://en.wikipedia.org/wiki/Don%27t_repeat_yourself
+[`.Format` function]: /functions/format/
+[front matter]: /content-management/front-matter/
+[pagetaxonomy]: /templates/taxonomy-templates/#displaying-a-single-piece-of-content-s-taxonomies
+[pagevars]: /variables/page/
+[partials]: /templates/partials/
+[section]: /content-management/sections/
+[site variables]: /variables/site/
+[spf13]: http://spf13.com/
+[`with`]: /functions/with/
--- /dev/null
- {{ with $.Site.GetPage (printf "/%s/%s" $taxo $name) }}
+---
+title: Taxonomy Templates
+# linktitle:
+description: Taxonomy templating includes taxonomy list pages, taxonomy terms pages, and using taxonomies in your single page templates.
+date: 2017-02-01
+publishdate: 2017-02-01
+lastmod: 2017-02-01
+categories: [templates]
+keywords: [taxonomies,metadata,front matter,terms,templates]
+menu:
+ docs:
+ parent: "templates"
+ weight: 50
+weight: 50
+sections_weight: 50
+draft: false
+aliases: [/taxonomies/displaying/,/templates/terms/,/indexes/displaying/,/taxonomies/templates/,/indexes/ordering/, /templates/taxonomies/, /templates/taxonomy/]
+toc: true
+---
+
+<!-- NOTE! Check on https://github.com/gohugoio/hugo/issues/2826 for shifting of terms' pages to .Data.Pages AND
+https://discourse.gohugo.io/t/how-to-specify-category-slug/4856/15 for original discussion.-->
+
+Hugo includes support for user-defined groupings of content called **taxonomies**. Taxonomies are classifications that demonstrate logical relationships between content. See [Taxonomies under Content Management](/content-management/taxonomies) if you are unfamiliar with how Hugo leverages this powerful feature.
+
+Hugo provides multiple ways to use taxonomies throughout your project templates:
+
+* Order the way content associated with a taxonomy term is displayed in a [taxonomy list template](#taxonomy-list-template)
+* Order the way the terms for a taxonomy are displayed in a [taxonomy terms template](#taxonomy-terms-template)
+* List a single content's taxonomy terms within a [single page template][]
+
+## Taxonomy List Templates
+
+Taxonomy list page templates are lists and therefore have all the variables and methods available to [list pages][lists].
+
+### Taxonomy List Template Lookup Order
+
+See [Template Lookup](/templates/lookup-order/).
+
+## Taxonomy Terms Template
+
+### Taxonomy Terms Templates Lookup Order
+
+See [Template Lookup](/templates/lookup-order/).
+
+### Taxonomy Methods
+
+A Taxonomy is a `map[string]WeightedPages`.
+
+.Get(term)
+: Returns the WeightedPages for a term.
+
+.Count(term)
+: The number of pieces of content assigned to this term.
+
+.Alphabetical
+: Returns an OrderedTaxonomy (slice) ordered by Term.
+
+.ByCount
+: Returns an OrderedTaxonomy (slice) ordered by number of entries.
+
+.Reverse
+: Returns an OrderedTaxonomy (slice) in reverse order. Must be used with an OrderedTaxonomy.
+
+### OrderedTaxonomy
+
+Since Maps are unordered, an OrderedTaxonomy is a special structure that has a defined order.
+
+```go
+[]struct {
+ Name string
+ WeightedPages WeightedPages
+}
+```
+
+Each element of the slice has:
+
+.Term
+: The Term used.
+
+.WeightedPages
+: A slice of Weighted Pages.
+
+.Count
+: The number of pieces of content assigned to this term.
+
+.Pages
+: All Pages assigned to this term. All [list methods][renderlists] are available to this.
+
+## WeightedPages
+
+WeightedPages is simply a slice of WeightedPage.
+
+```go
+type WeightedPages []WeightedPage
+```
+
+.Count(term)
+: The number of pieces of content assigned to this term.
+
+.Pages
+: Returns a slice of pages, which then can be ordered using any of the [list methods][renderlists].
+
+## Displaying custom metadata in Taxonomy Terms Templates
+
+If you need to display custom metadata for each taxonomy term, you will need to create a page for that term at `/content/<TAXONOMY>/<TERM>/_index.md` and add your metadata in its front matter, [as explained in the taxonomies documentation](/content-management/taxonomies/#add-custom-meta-data-to-a-taxonomy-term). Based on the Actors taxonomy example shown there, within your taxonomy terms template, you may access your custom fields by iterating through the variable `.Pages` as such:
+
+```go-html-template
+<ul>
+ {{ range .Pages }}
+ <li>
+ <a href="{{ .Permalink }}">{{ .Title }}</a>
+ {{ .Params.wikipedia }}
+ </li>
+ {{ end }}
+</ul>
+```
+
+<!-- Begin /taxonomies/ordering/ -->
+
+## Order Taxonomies
+
+Taxonomies can be ordered by either alphabetical key or by the number of content pieces assigned to that key.
+
+### Order Alphabetically Example
+
+```go-html-template
+<ul>
+ {{ $type := .Type }}
+ {{ range $key, $value := .Data.Terms.Alphabetical }}
+ {{ $name := .Name }}
+ {{ $count := .Count }}
+ {{ with $.Site.GetPage (printf "/%s/%s" $type $name) }}
+ <li><a href="{{ .Permalink }}">{{ $name }}</a> {{ $count }}</li>
+ {{ end }}
+ {{ end }}
+</ul>
+```
+
+### Order by Popularity Example
+
+```go-html-template
+<ul>
+ {{ $type := .Type }}
+ {{ range $key, $value := .Data.Terms.ByCount }}
+ {{ $name := .Name }}
+ {{ $count := .Count }}
+ {{ with $.Site.GetPage (printf "/%s/%s" $type $name) }}
+ <li><a href="{{ .Permalink }}">{{ $name }}</a> {{ $count }}</li>
+ {{ end }}
+ {{ end }}
+</ul>
+```
+
+### Order by Least Popular Example
+
+```go-html-template
+<ul>
+ {{ $type := .Type }}
+ {{ range $key, $value := .Data.Terms.ByCount.Reverse }}
+ {{ $name := .Name }}
+ {{ $count := .Count }}
+ {{ with $.Site.GetPage (printf "/%s/%s" $type $name) }}
+ <li><a href="{{ .Permalink }}">{{ $name }}</a> {{ $count }}</li>
+ {{ end }}
+ {{ end }}
+</ul>
+```
+
+<!-- [See Also Taxonomy Lists](/templates/list/) -->
+
+## Order Content within Taxonomies
+
+Hugo uses both `date` and `weight` to order content within taxonomies.
+
+Each piece of content in Hugo can optionally be assigned a date. It can also be assigned a weight for each taxonomy it is assigned to.
+
+When iterating over content within taxonomies, the default sort is the same as that used for [section and list pages]() first by weight then by date. This means that if the weights for two pieces of content are the same, than the more recent content will be displayed first. The default weight for any piece of content is 0.
+
+### Assign Weight
+
+Content can be assigned weight for each taxonomy that it's assigned to.
+
+```
++++
+tags = [ "a", "b", "c" ]
+tags_weight = 22
+categories = ["d"]
+title = "foo"
+categories_weight = 44
++++
+Front Matter with weighted tags and categories
+```
+
+The convention is `taxonomyname_weight`.
+
+In the above example, this piece of content has a weight of 22 which applies to the sorting when rendering the pages assigned to the "a", "b" and "c" values of the 'tag' taxonomy.
+
+It has also been assigned the weight of 44 when rendering the 'd' category.
+
+With this the same piece of content can appear in different positions in different taxonomies.
+
+Currently taxonomies only support the default ordering of content which is weight -> date.
+
+<!-- Begin /taxonomies/templates/ -->
+
+There are two different templates that the use of taxonomies will require you to provide.
+
+Both templates are covered in detail in the templates section.
+
+A [list template](/templates/list/) is any template that will be used to render multiple pieces of content in a single html page. This template will be used to generate all the automatically created taxonomy pages.
+
+A [taxonomy terms template](/templates/terms/) is a template used to
+generate the list of terms for a given template.
+
+<!-- Begin /taxonomies/displaying/ -->
+
+There are four common ways you can display the data in your
+taxonomies in addition to the automatic taxonomy pages created by hugo
+using the [list templates](/templates/list/):
+
+1. For a given piece of content, you can list the terms attached
+2. For a given piece of content, you can list other content with the same
+ term
+3. You can list all terms for a taxonomy
+4. You can list all taxonomies (with their terms)
+
+## Display a Single Piece of Content's Taxonomies
+
+Within your content templates, you may wish to display the taxonomies that piece of content is assigned to.
+
+Because we are leveraging the front matter system to define taxonomies for content, the taxonomies assigned to each content piece are located in the usual place (i.e., `.Params.<TAXONOMYPLURAL>`).
+
+### Example: List Tags in a Single Page Template
+
+```go-html-template
+{{ $taxo := "tags" }} <!-- Use the plural form here -->
+<ul id="{{ $taxo }}">
+ {{ range .Param $taxo }}
+ {{ $name := . }}
++ {{ with $.Site.GetPage (printf "/%s/%s" $taxo ($name | urlize)) }}
+ <li><a href="{{ .Permalink }}">{{ $name }}</a></li>
+ {{ end }}
+ {{ end }}
+</ul>
+```
+
+If you want to list taxonomies inline, you will have to take care of optional plural endings in the title (if multiple taxonomies), as well as commas. Let's say we have a taxonomy "directors" such as `directors: [ "Joel Coen", "Ethan Coen" ]` in the TOML-format front matter.
+
+To list such taxonomies, use the following:
+
+### Example: Comma-delimit Tags in a Single Page Template
+
+```go-html-template
+{{ $taxo := "directors" }} <!-- Use the plural form here -->
+{{ with .Param $taxo }}
+ <strong>Director{{ if gt (len .) 1 }}s{{ end }}:</strong>
+ {{ range $index, $director := . }}
+ {{- if gt $index 0 }}, {{ end -}}
+ {{ with $.Site.GetPage (printf "/%s/%s" $taxo $director) -}}
+ <a href="{{ .Permalink }}">{{ $director }}</a>
+ {{- end -}}
+ {{- end -}}
+{{ end }}
+```
+
+Alternatively, you may use the [delimit template function][delimit] as a shortcut if the taxonomies should just be listed with a separator. See {{< gh 2143 >}} on GitHub for discussion.
+
+## List Content with the Same Taxonomy Term
+
+If you are using a taxonomy for something like a series of posts, you can list individual pages associated with the same taxonomy. This is also a quick and dirty method for showing related content:
+
+### Example: Showing Content in Same Series
+
+```go-html-template
+<ul>
+ {{ range .Site.Taxonomies.series.golang }}
+ <li><a href="{{ .Page.RelPermalink }}">{{ .Page.Title }}</a></li>
+ {{ end }}
+</ul>
+```
+
+## List All content in a Given taxonomy
+
+This would be very useful in a sidebar as “featured content”. You could even have different sections of “featured content” by assigning different terms to the content.
+
+### Example: Grouping "Featured" Content
+
+```go-html-template
+<section id="menu">
+ <ul>
+ {{ range $key, $taxonomy := .Site.Taxonomies.featured }}
+ <li>{{ $key }}</li>
+ <ul>
+ {{ range $taxonomy.Pages }}
+ <li hugo-nav="{{ .RelPermalink}}"><a href="{{ .Permalink}}">{{ .LinkTitle }}</a></li>
+ {{ end }}
+ </ul>
+ {{ end }}
+ </ul>
+</section>
+```
+
+## Render a Site's Taxonomies
+
+If you wish to display the list of all keys for your site's taxonomy, you can retrieve them from the [`.Site` variable][sitevars] available on every page.
+
+This may take the form of a tag cloud, a menu, or simply a list.
+
+The following example displays all terms in a site's tags taxonomy:
+
+### Example: List All Site Tags {#example-list-all-site-tags}
+
+```go-html-template
+<ul id="all-tags">
+ {{ range $name, $taxonomy := .Site.Taxonomies.tags }}
+ {{ with $.Site.GetPage (printf "/tags/%s" $name) }}
+ <li><a href="{{ .Permalink }}">{{ $name }}</a></li>
+ {{ end }}
+ {{ end }}
+</ul>
+```
+
+### Example: List All Taxonomies, Terms, and Assigned Content
+
+This example will list all taxonomies and their terms, as well as all the content assigned to each of the terms.
+
+{{< code file="layouts/partials/all-taxonomies.html" download="all-taxonomies.html" download="all-taxonomies.html" >}}
+<section>
+ <ul id="all-taxonomies">
+ {{ range $taxonomy_term, $taxonomy := .Site.Taxonomies }}
+ {{ with $.Site.GetPage (printf "/%s" $taxonomy_term) }}
+ <li><a href="{{ .Permalink }}">{{ $taxonomy_term }}</a>
+ <ul>
+ {{ range $key, $value := $taxonomy }}
+ <li>{{ $key }}</li>
+ <ul>
+ {{ range $value.Pages }}
+ <li hugo-nav="{{ .RelPermalink}}">
+ <a href="{{ .Permalink}}">{{ .LinkTitle }}</a>
+ </li>
+ {{ end }}
+ </ul>
+ {{ end }}
+ </ul>
+ </li>
+ {{ end }}
+ {{ end }}
+ </ul>
+</section>
+{{< /code >}}
+
+## `.Site.GetPage` for Taxonomies
+
+Because taxonomies are lists, the [`.GetPage` function][getpage] can be used to get all the pages associated with a particular taxonomy term using a terse syntax. The following ranges over the full list of tags on your site and links to each of the individual taxonomy pages for each term without having to use the more fragile URL construction of the ["List All Site Tags" example above]({{< relref "#example-list-all-site-tags" >}}):
+
+{{< code file="links-to-all-tags.html" >}}
+{{ $taxo := "tags" }}
+<ul class="{{ $taxo }}">
+ {{ with ($.Site.GetPage (printf "/%s" $taxo)) }}
+ {{ range .Pages }}
+ <li><a href="{{ .Permalink }}">{{ .Title}}</a></li>
+ {{ end }}
+ {{ end }}
+</ul>
+{{< /code >}}
+
+<!-- TODO: ### `.Site.GetPage` Taxonomy List Example -->
+
+<!-- TODO: ### `.Site.GetPage` Taxonomy Terms Example -->
+
+
+[delimit]: /functions/delimit/
+[getpage]: /functions/getpage/
+[lists]: /templates/lists/
+[renderlists]: /templates/lists/
+[single page template]: /templates/single-page-templates/
+[sitevars]: /variables/site/
--- /dev/null
- To create a new view, create a template in each of your different content type directories with the view name. The following example contains an "li" view and a "summary" view for the `post` and `project` content types. As you can see, these sit next to the [single content view][single] template, `single.html`. You can even provide a specific view for a given type and continue to use the `_default/single.html` for the primary view.
+---
+title: Content View Templates
+# linktitle: Content Views
+description: Hugo can render alternative views of your content, which is especially useful in list and summary views.
+date: 2017-02-01
+publishdate: 2017-02-01
+lastmod: 2017-02-01
+categories: [templates]
+keywords: [views]
+menu:
+ docs:
+ parent: "templates"
+ weight: 70
+weight: 70
+sections_weight: 70
+draft: false
+aliases: []
+toc: true
+---
+
+These alternative **content views** are especially useful in [list templates][lists].
+
+The following are common use cases for content views:
+
+* You want content of every type to be shown on the homepage but only with limited [summary views][summaries].
+* You only want a bulleted list of your content on a [taxonomy list page][taxonomylists]. Views make this very straightforward by delegating the rendering of each different type of content to the content itself.
+
+## Create a Content View
+
- ▾ post/
++To create a new view, create a template in each of your different content type directories with the view name. The following example contains an "li" view and a "summary" view for the `posts` and `project` content types. As you can see, these sit next to the [single content view][single] template, `single.html`. You can even provide a specific view for a given type and continue to use the `_default/single.html` for the primary view.
+
+```
+ ▾ layouts/
++ ▾ posts/
+ li.html
+ single.html
+ summary.html
+ ▾ project/
+ li.html
+ single.html
+ summary.html
+```
+
+Hugo also has support for a default content template to be used in the event that a specific content view template has not been provided for that type. Content views can also be defined in the `_default` directory and will work the same as list and single templates who eventually trickle down to the `_default` directory as a matter of the lookup order.
+
+
+```
+▾ layouts/
+ ▾ _default/
+ li.html
+ single.html
+ summary.html
+```
+
+## Which Template Will be Rendered?
+
+The following is the [lookup order][lookup] for content views:
+
+1. `/layouts/<TYPE>/<VIEW>.html`
+2. `/layouts/_default/<VIEW>.html`
+3. `/themes/<THEME>/layouts/<TYPE>/<VIEW>.html`
+4. `/themes/<THEME>/layouts/_default/<VIEW>.html`
+
+## Example: Content View Inside a List
+
+The following example demonstrates how to use content views inside of your [list templates][lists].
+
+### `list.html`
+
+In this example, `.Render` is passed into the template to call the [render function][render]. `.Render` is a special function that instructs content to render itself with the view template provided as the first argument. In this case, the template is going to render the `summary.html` view that follows:
+
+{{< code file="layouts/_default/list.html" download="list.html" >}}
+<main id="main">
+ <div>
+ <h1 id="title">{{ .Title }}</h1>
+ {{ range .Pages }}
+ {{ .Render "summary"}}
+ {{ end }}
+ </div>
+</main>
+{{< /code >}}
+
+### `summary.html`
+
+Hugo will pass the entire page object to the following `summary.html` view template. (See [Page Variables][pagevars] for a complete list.)
+
+{{< code file="layouts/_default/summary.html" download="summary.html" >}}
+<article class="post">
+ <header>
+ <h2><a href='{{ .Permalink }}'> {{ .Title }}</a> </h2>
+ <div class="post-meta">{{ .Date.Format "Mon, Jan 2, 2006" }} - {{ .FuzzyWordCount }} Words </div>
+ </header>
+ {{ .Summary }}
+ <footer>
+ <a href='{{ .Permalink }}'><nobr>Read more →</nobr></a>
+ </footer>
+</article>
+{{< /code >}}
+
+### `li.html`
+
+Continuing on the previous example, we can change our render function to use a smaller `li.html` view by changing the argument in the call to the `.Render` function (i.e., `{{ .Render "li" }}`).
+
+{{< code file="layouts/_default/li.html" download="li.html" >}}
+<li>
+ <a href="{{ .Permalink }}">{{ .Title }}</a>
+ <div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
+</li>
+{{< /code >}}
+
+[lists]: /templates/lists/
+[lookup]: /templates/lookup-order/
+[pagevars]: /variables/page/
+[render]: /functions/render/
+[single]: /templates/single-page-templates/
+[spf]: http://spf13.com
+[spfsourceli]: https://github.com/spf13/spf13.com/blob/master/layouts/_default/li.html
+[spfsourcesection]: https://github.com/spf13/spf13.com/blob/master/layouts/_default/section.html
+[spfsourcesummary]: https://github.com/spf13/spf13.com/blob/master/layouts/_default/summary.html
+[summaries]: /content-management/summaries/
+[taxonomylists]: /templates/taxonomy-templates/
--- /dev/null
- 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.
+---
+title: Create a Theme
+linktitle: Create a Theme
+description: The `hugo new theme` command will scaffold the beginnings of a new theme for you to get you on your way.
+date: 2017-02-01
+publishdate: 2017-02-01
+lastmod: 2017-02-01
+categories: [themes]
+keywords: [themes, source, organization, directories]
+menu:
+ docs:
+ parent: "themes"
+ weight: 30
+weight: 30
+sections_weight: 30
+draft: false
+aliases: [/themes/creation/,/tutorials/creating-a-new-theme/]
+toc: true
+wip: true
+---
+
+{{% 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 the following:
++- If using inline styles you will need to use absolute URLs, for the linked assets to be served properly, e.g. `<div style="background: url('{{ "images/background.jpg" | absURL }}')">`
++- Make sure not to use a forward slash `/` in the beginning of a `URL`, because it will point to the host root. Your theme's demo will be available in a subdirectory of the Hugo website and in this scenario Hugo will not generate the correct `URL` for theme assets.
++- If using external CSS and JS from a CDN, make sure to load these assets over `https`. Please do not use relative protocol URLs in your theme's templates.
+{{% /warning %}}
+
+Hugo can initialize a new blank theme directory within your existing `themes` using the `hugo new` command:
+
+```
+hugo new theme [name]
+```
+
+## Theme Folders
+
+A theme component can provide files in one or more of the following standard Hugo folders:
+
+layouts
+: Templates used to render content in Hugo. Also see [Templates Lookup Order](/templates/lookup-order/).
+
+static
+: Static files, such as logos, CSS and JavaScript.
+
+i18n
+: Language bundles.
+
+data
+: Data files.
+
+archetypes
+: Content templates used in `hugo new`.
+
+
+## Theme Configuration File
+
+A theme component can also provide its own [Configuration File](/getting-started/configuration/), e.g. `config.toml`. There are some restrictions to what can be configured in a theme component, and it is not possible to overwrite settings in the project.
+
+The following settings can be set:
+
+* `params` (global and per language)
+* `menu` (global and per language)
+* `outputformats` and `mediatypes`
+
+
+## Theme Description File
+
+In addition to the configuration file, a theme can also provide a `theme.toml` file that describes the theme, the author and origin etc. See [Add Your Hugo Theme to the Showcase](/contribute/themes/).
+
+
+{{% note "Use the Hugo Generator Tag" %}}
+The [`.Hugo.Generator`](/variables/hugo/) tag is included in all themes featured in the [Hugo Themes Showcase](http://themes.gohugo.io). We ask that you include the generator tag in all sites and themes you create with Hugo to help the core team track Hugo's usage and popularity.
+{{% /note %}}
+
+
--- /dev/null
+---
+title: Editor Plug-ins for Hugo
+linktitle: Editor Plug-ins
+description: The Hugo community uses a wide range of preferred tools and has developed plug-ins for some of the most popular text editors to help automate parts of your workflow.
+date: 2017-02-01
+publishdate: 2017-02-01
+lastmod: 2017-02-01
+categories: [developer tools]
+keywords: [editor, plug-ins]
+menu:
+ docs:
+ parent: "tools"
+ weight: 50
+weight: 50
+sections_weight: 50
+draft: false
+aliases: []
+toc: false
+---
+
+The Hugo community uses a wide range of preferred tools and has developed plug-ins for some of the most popular text editors to help automate parts of your workflow.
+
+## Sublime Text
+
+* [Hugofy](https://github.com/akmittal/Hugofy). Hugofy is a plugin for Sublime Text 3 to make life easier to use Hugo static site generator.
+
+## Visual Studio Code
+
+* [Hugofy](https://marketplace.visualstudio.com/items?itemName=akmittal.hugofy). Hugofy is a plugin for Visual Studio Code to "make life easier" when developing with Hugo. The source code can be found [here](https://github.com/akmittal/hugofy-vscode).
++* [Hugo Helper](https://marketplace.visualstudio.com/items?itemName=rusnasonov.vscode-hugo). Hugo Helper is a plugin for Visual Studio Code that has some useful commands for Hugo. The source code can be found [here](https://github.com/rusnasonov/vscode-hugo).
++* [Hugo Language and Syntax Support](https://marketplace.visualstudio.com/items?itemName=budparr.language-hugo-vscode). Hugo Language and Syntax Support is a Visual Studio Code plugin for Hugo syntax highlighting and snippets. The source code can be found [here](https://github.com/budparr/language-hugo-vscode).
+
+## Emacs
+
+* [emacs-easy-hugo](https://github.com/masasam/emacs-easy-hugo). Emacs major mode for managing hugo blogs. Note that Hugo also supports [Org-mode][formats].
+* [ox-hugo.el](https://ox-hugo.scripter.co). Native Org-mode exporter that exports to Blackfriday Markdown with Hugo front-matter. `ox-hugo` supports two common Org blogging flows --- exporting multiple Org sub-trees in a single file to multiple Hugo posts, and exporting a single Org file to a single Hugo post. It also leverages the Org tag and property inheritance features. See [*Why ox-hugo?*](https://ox-hugo.scripter.co/doc/why-ox-hugo/) for more.
+
+## Vim
+
+* [Vim Hugo Helper](https://github.com/robertbasic/vim-hugo-helper). A small Vim plugin to help me with writing posts with Hugo.
+
+## Atom
+
+* [Hugofy](https://atom.io/packages/hugofy). A Hugo Static Website Generator package for Atom.
+* [language-hugo](https://atom.io/packages/language-hugo). Adds syntax highlighting to Hugo files.
+
+[formats]: /content-management/formats/
--- /dev/null
- 4.642666ms 2.321333ms 3.282842ms 2 post/single.html
+---
+title: Build Performance
+linktitle: Build Performance
+description: An overview of features used for diagnosing and improving performance issues in site builds.
+date: 2017-03-12
+publishdate: 2017-03-12
+lastmod: 2017-03-12
+keywords: [performance, build]
+categories: [troubleshooting]
+menu:
+ docs:
+ parent: "troubleshooting"
+weight: 3
+slug:
+aliases: []
+toc: true
+---
+
+{{% note %}}
+The example site used below is from https://github.com/gohugoio/hugo/tree/master/examples/blog
+{{% /note %}}
+
+## Template Metrics
+
+Hugo is a very fast static site generator, but it is possible to write
+inefficient templates. Hugo's *template metrics* feature is extremely helpful
+in pinpointing which templates are executed most often and how long those
+executions take **in terms of CPU time**.
+
+| Metric Name | Description |
+|---------------------|-------------|
+| cumulative duration | The cumulative time spent executing a given template. |
+| average duration | The average time spent executing a given template. |
+| maximum duration | The maximum time a single execution took for a given template. |
+| count | The number of times a template was executed. |
+| template | The template name. |
+
+```
+▶ hugo --templateMetrics
+Started building sites ...
+
+Built site for language en:
+0 draft content
+0 future content
+0 expired content
+2 regular pages created
+22 other pages created
+0 non-page files copied
+0 paginator pages created
+4 tags created
+3 categories created
+total in 18 ms
+
+Template Metrics:
+
+ cumulative average maximum
+ duration duration duration count template
+ ---------- -------- -------- ----- --------
+ 6.419663ms 583.605µs 994.374µs 11 _internal/_default/rss.xml
+ 4.718511ms 1.572837ms 3.880742ms 3 indexes/category.html
- 1.238976ms 103.248µs 446.084µs 12 post/li.html
++ 4.642666ms 2.321333ms 3.282842ms 2 posts/single.html
+ 4.364445ms 396.767µs 2.451372ms 11 partials/header.html
+ 2.346069ms 586.517µs 903.343µs 4 indexes/tag.html
+ 2.330919ms 211.901µs 2.281342ms 11 partials/header.includes.html
- 346.782µs 173.391µs 276.176µs 2 post/summary.html
++ 1.238976ms 103.248µs 446.084µs 12 posts/li.html
+ 972.16µs 972.16µs 972.16µs 1 _internal/_default/sitemap.xml
+ 953.597µs 953.597µs 953.597µs 1 index.html
+ 822.263µs 822.263µs 822.263µs 1 indexes/post.html
+ 567.498µs 51.59µs 112.205µs 11 partials/navbar.html
+ 348.22µs 31.656µs 88.249µs 11 partials/meta.html
++ 346.782µs 173.391µs 276.176µs 2 posts/summary.html
+ 235.184µs 21.38µs 124.383µs 11 partials/footer.copyright.html
+ 132.003µs 12µs 117.999µs 11 partials/menu.html
+ 72.547µs 6.595µs 63.764µs 11 partials/footer.html
+```
+
+{{% note %}}
+**A Note About Parallelism**
+
+Hugo builds pages in parallel where multiple pages are generated
+simultaneously. Because of this parallelism, the sum of "cumulative duration"
+values is usually greater than the actual time it takes to build a site.
+{{% /note %}}
+
+
+## Cached Partials
+
+Some `partial` templates such as sidebars or menus are executed many times
+during a site build. Depending on the content within the `partial` template and
+the desired output, the template may benefit from caching to reduce the number
+of executions. The [`partialCached`][partialCached] template function provides
+caching capabilities for `partial` templates.
+
+{{% tip %}}
+Note that you can create cached variants of each `partial` by passing additional
+parameters to `partialCached` beyond the initial context. See the
+`partialCached` documentation for more details.
+{{% /tip %}}
+
+
+## Step Analysis
+
+Hugo provides a means of seeing metrics about each step in the site build
+process. We call that *Step Analysis*. The *step analysis* output shows the
+total time per step, the cumulative time after each step (in parentheses),
+the memory usage per step, and the total memory allocations per step.
+
+To enable *step analysis*, use the `--stepAnalysis` option when running Hugo.
+
+
+[partialCached]:{{< ref "/functions/partialCached.md" >}}
--- /dev/null
+---
+title: Hugo-specific Variables
+linktitle: Hugo Variables
+description: The `.Hugo` variable provides easy access to Hugo-related data.
+date: 2017-03-12
+publishdate: 2017-03-12
+lastmod: 2017-03-12
+categories: [variables and params]
+keywords: [hugo,generator]
+draft: false
+menu:
+ docs:
+ parent: "variables"
+ weight: 60
+weight: 60
+sections_weight: 60
+aliases: []
+toc: false
+wip: false
+---
+
+It contains the following fields:
+
+.Hugo.Generator
+: `<meta>` tag for the version of Hugo that generated the site. `.Hugo.Generator` outputs a *complete* HTML tag; e.g. `<meta name="generator" content="Hugo 0.18" />`
+
+.Hugo.Version
+: the current version of the Hugo binary you are using e.g. `0.13-DEV`<br>
+
++.Hugo.Environment
++: the current running environment as defined through the `--environment` cli tag.
++
+.Hugo.CommitHash
+: the git commit hash of the current Hugo binary e.g. `0e8bed9ccffba0df554728b46c5bbf6d78ae5247`
+
+.Hugo.BuildDate
+: the compile date of the current Hugo binary formatted with RFC 3339 e.g. `2002-10-02T10:00:00-05:00`<br>
+
++
++
+{{% note "Use the Hugo Generator Tag" %}}
+We highly recommend using `.Hugo.Generator` in your website's `<head>`. `.Hugo.Generator` is included by default in all themes hosted on [themes.gohugo.io](http://themes.gohugo.io). The generator tag allows the Hugo team to track the usage and popularity of Hugo.
+{{% /note %}}
+
--- /dev/null
- .Lang
- : language taken from the language extension notation.
-
+---
+title: Page Variables
+linktitle:
+description: Page-level variables are defined in a content file's front matter, derived from the content's file location, or extracted from the content body itself.
+date: 2017-02-01
+publishdate: 2017-02-01
+lastmod: 2017-02-01
+categories: [variables and params]
+keywords: [pages]
+draft: false
+menu:
+ docs:
+ title: "variables defined by a page"
+ parent: "variables"
+ weight: 20
+weight: 20
+sections_weight: 20
+aliases: []
+toc: true
+---
+
+The following is a list of page-level variables. Many of these will be defined in the front matter, derived from file location, or extracted from the content itself.
+
+{{% note "`.Scratch`" %}}
+See [`.Scratch`](/functions/scratch/) for page-scoped, writable variables.
+{{% /note %}}
+
+## Page Variables
+
+.AlternativeOutputFormats
+: contains all alternative formats for a given page; this variable is especially useful `link rel` list in your site's `<head>`. (See [Output Formats](/templates/output-formats/).)
+
+.Content
+: the content itself, defined below the front matter.
+
+.Data
+: the data specific to this type of page.
+
+.Date
+: the date associated with the page; `.Date` pulls from the `date` field in a content's front matter. See also `.ExpiryDate`, `.PublishDate`, and `.Lastmod`.
+
+.Description
+: the description for the page.
+
+.Dir
+: the path of the folder containing this content file. The path is relative to the `content` folder.
+
+.Draft
+: a boolean, `true` if the content is marked as a draft in the front matter.
+
+.ExpiryDate
+: the date on which the content is scheduled to expire; `.ExpiryDate` pulls from the `expirydate` field in a content's front matter. See also `.PublishDate`, `.Date`, and `.Lastmod`.
+
+.File
+: filesystem-related data for this content file. See also [File Variables][].
+
+.FuzzyWordCount
+: the approximate number of words in the content.
+
+.Hugo
+: see [Hugo Variables](/variables/hugo/).
+
+.IsHome
+: `true` in the context of the [homepage](/templates/homepage/).
+
+.IsNode
+: always `false` for regular content pages.
+
+.IsPage
+: always `true` for regular content pages.
+
+.IsTranslated
+: `true` if there are translations to display.
+
+.Keywords
+: the meta keywords for the content.
+
+.Kind
+: the page's *kind*. Possible return values are `page`, `home`, `section`, `taxonomy`, or `taxonomyTerm`. Note that there are also `RSS`, `sitemap`, `robotsTXT`, and `404` kinds, but these are only available during the rendering of each of these respective page's kind and therefore *not* available in any of the `Pages` collections.
+
- : the [content type](/content-management/types/) of the content (e.g., `post`).
-
- .URL
- : the URL for the page relative to the web root. Note that a `url` set directly in front matter overrides the default relative URL for the rendered page.
+.Language
+: a language object that points to the language's definition in the site
+`config`.
+
+.Lastmod
+: the date the content was last modified. `.Lastmod` pulls from the `lastmod` field in a content's front matter.
+
+ - If `lastmod` is not set, and `.GitInfo` feature is disabled, the front matter `date` field will be used.
+ - If `lastmod` is not set, and `.GitInfo` feature is enabled, `.GitInfo.AuthorDate` will be used instead.
+
+See also `.ExpiryDate`, `.Date`, `.PublishDate`, and [`.GitInfo`][gitinfo].
+
+.LinkTitle
+: access when creating links to the content. If set, Hugo will use the `linktitle` from the front matter before `title`.
+
+.Next (deprecated)
+: In older Hugo versions this pointer went the wrong direction. Please use `.PrevPage` instead.
+
+.NextPage
+: Pointer to the next [regular page](/variables/site/#site-pages) (sorted by Hugo's [default sort](/templates/lists#default-weight-date-linktitle-filepath)). Example: `{{if .NextPage}}{{.NextPage.Permalink}}{{end}}`.
+
+.NextInSection
+: Pointer to the next [regular page](/variables/site/#site-pages) within the same section. Pages are sorted by Hugo's [default sort](/templates/lists#default-weight-date-linktitle-filepath). Example: `{{if .NextInSection}}{{.NextInSection.Permalink}}{{end}}`.
+
+.OutputFormats
+: contains all formats, including the current format, for a given page. Can be combined the with [`.Get` function](/functions/get/) to grab a specific format. (See [Output Formats](/templates/output-formats/).)
+
+.Pages
+: a collection of associated pages. This value will be `nil` within
+ the context of regular content pages. See [`.Pages`](#pages).
+
+.Permalink
+: the Permanent link for this page; see [Permalinks](/content-management/urls/)
+
+.Plain
+: the Page content stripped of HTML tags and presented as a string.
+
+.PlainWords
+: the Page content stripped of HTML as a `[]string` using Go's [`strings.Fields`](https://golang.org/pkg/strings/#Fields) to split `.Plain` into a slice.
+
+.Prev (deprecated)
+: In older Hugo versions this pointer went the wrong direction. Please use `.NextPage` instead.
+
+.PrevPage
+: Pointer to the previous [regular page](/variables/site/#site-pages) (sorted by Hugo's [default sort](/templates/lists#default-weight-date-linktitle-filepath)). Example: `{{if .PrevPage}}{{.PrevPage.Permalink}}{{end}}`.
+
+.PrevInSection
+: Pointer to the previous [regular page](/variables/site/#site-pages) within the same section. Pages are sorted by Hugo's [default sort](/templates/lists#default-weight-date-linktitle-filepath). Example: `{{if .PrevInSection}}{{.PrevInSection.Permalink}}{{end}}`.
+
+.PublishDate
+: the date on which the content was or will be published; `.Publishdate` pulls from the `publishdate` field in a content's front matter. See also `.ExpiryDate`, `.Date`, and `.Lastmod`.
+
+.RSSLink
+: link to the taxonomies' RSS link.
+
+.RawContent
+: raw markdown content without the front matter. Useful with [remarkjs.com](
+http://remarkjs.com)
+
+.ReadingTime
+: the estimated time, in minutes, it takes to read the content.
+
+.Ref
+: returns the permalink for a given reference (e.g., `.Ref "sample.md"`). `.Ref` does *not* handle in-page fragments correctly. See [Cross References](/content-management/cross-references/).
+
+.RelPermalink
+: the relative permanent link for this page.
+
+.RelRef
+: returns the relative permalink for a given reference (e.g., `RelRef
+"sample.md"`). `.RelRef` does *not* handle in-page fragments correctly. See [Cross References](/content-management/cross-references/).
+
+.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.
+
+.TableOfContents
+: the rendered [table of contents](/content-management/toc/) for the page.
+
+.Title
+: the title for this page.
+
+.Translations
+: a list of translated versions of the current page. See [Multilingual Mode](/content-management/multilingual/) for more information.
+
+.Truncated
+: a boolean, `true` if the `.Summary` is truncated. Useful for showing a "Read more..." link only when necessary. See [Summaries](/content-management/summaries/) for more information.
+
+.Type
++: the [content type](/content-management/types/) of the content (e.g., `posts`).
+
+.UniqueID
+: the MD5-checksum of the content file's path.
+
+.Weight
+: assigned weight (in the front matter) to this content, used in sorting.
+
+.WordCount
+: the number of words in the content.
+
+## Section Variables and Methods
+
+Also see [Sections](/content-management/sections/).
+
+{{< readfile file="/content/en/readfiles/sectionvars.md" markdown="true" >}}
+
+## The `.Pages` Variable {#pages}
+
+`.Pages` is an alias to `.Data.Pages`. It is conventional to use the
+aliased form `.Pages`.
+
+### `.Pages` compared to `.Site.Pages`
+
+{{< readfile file="/content/en/readfiles/pages-vs-site-pages.md" markdown="true" >}}
+
+## Page-level Params
+
+Any other value defined in the front matter in a content file, including taxonomies, will be made available as part of the `.Params` variable.
+
+```
+---
+title: My First Post
+date: 2017-02-20T15:26:23-06:00
+categories: [one]
+tags: [two,three,four]
+```
+
+With the above front matter, the `tags` and `categories` taxonomies are accessible via the following:
+
+* `.Params.tags`
+* `.Params.categories`
+
+{{% note "Casing of Params" %}}
+Page-level `.Params` are *only* accessible in lowercase.
+{{% /note %}}
+
+The `.Params` variable is particularly useful for the introduction of user-defined front matter fields in content files. For example, a Hugo website on book reviews could have the following front matter in `/content/review/book01.md`:
+
+```
+---
+...
+affiliatelink: "http://www.my-book-link.here"
+recommendedby: "My Mother"
+...
+---
+```
+
+These fields would then be accessible to the `/themes/yourtheme/layouts/review/single.html` template through `.Params.affiliatelink` and `.Params.recommendedby`, respectively.
+
+Two common situations where this type of front matter field could be introduced is as a value of a certain attribute like `href=""` or by itself to be displayed as text to the website's visitors.
+
+{{< code file="/themes/yourtheme/layouts/review/single.html" >}}
+<h3><a href={{ printf "%s" $.Params.affiliatelink }}>Buy this book</a></h3>
+<p>It was recommended by {{ .Params.recommendedby }}.</p>
+{{< /code >}}
+
+This template would render as follows, assuming you've set [`uglyURLs`](/content-management/urls/) to `false` in your [site `config`](/getting-started/configuration/):
+
+{{< output file="yourbaseurl/review/book01/index.html" >}}
+<h3><a href="http://www.my-book-link.here">Buy this book</a></h3>
+<p>It was recommended by my Mother.</p>
+{{< /output >}}
+
+{{% note %}}
+See [Archetypes](/content-management/archetypes/) for consistency of `Params` across pieces of content.
+{{% /note %}}
+
+### The `.Param` Method
+
+In Hugo, you can declare params in individual pages and globally for your entire website. A common use case is to have a general value for the site param and a more specific value for some of the pages (i.e., a header image):
+
+```
+{{ $.Param "header_image" }}
+```
+
+The `.Param` method provides a way to resolve a single value according to it's definition in a page parameter (i.e. in the content's front matter) or a site parameter (i.e., in your `config`).
+
+### Access Nested Fields in Front Matter
+
+When front matter contains nested fields like the following:
+
+```
+---
+author:
+ given_name: John
+ family_name: Feminella
+ display_name: John Feminella
+---
+```
+`.Param` can access these fields by concatenating the field names together with a dot:
+
+```
+{{ $.Param "author.display_name" }}
+```
+
+If your front matter contains a top-level key that is ambiguous with a nested key, as in the following case:
+
+```
+---
+favorites.flavor: vanilla
+favorites:
+ flavor: chocolate
+---
+```
+
+The top-level key will be preferred. Therefore, the following method, when applied to the previous example, will print `vanilla` and not `chocolate`:
+
+```
+{{ $.Param "favorites.flavor" }}
+=> vanilla
+```
+
+[gitinfo]: /variables/git/
+[File Variables]: /variables/files/
--- /dev/null
- .Site.Permalinks
- : a string to override the default [permalink](/content-management/urls/) format as defined in the site configuration.
-
+---
+title: Site Variables
+linktitle: Site Variables
+description: Many, but not all, site-wide variables are defined in your site's configuration. However, Hugo provides a number of built-in variables for convenient access to global values in your templates.
+date: 2017-02-01
+publishdate: 2017-02-01
+lastmod: 2017-02-01
+categories: [variables and params]
+keywords: [global,site]
+draft: false
+menu:
+ docs:
+ parent: "variables"
+ weight: 10
+weight: 10
+sections_weight: 10
+aliases: [/variables/site-variables/]
+toc: true
+---
+
+The following is a list of site-level (aka "global") variables. Many of these variables are defined in your site's [configuration file][config], whereas others are built into Hugo's core for convenient usage in your templates.
+
+## Site Variables List
+
+.Site.AllPages
+: array of all pages, regardless of their translation.
+
+.Site.Author
+: a map of the authors as defined in the site configuration.
+
+.Site.BaseURL
+: the base URL for the site as defined in the site configuration.
+
+.Site.BuildDrafts
+: a boolean (default: `false`) to indicate whether to build drafts as defined in the site configuration.
+
+.Site.Copyright
+: a string representing the copyright of your website as defined in the site configuration.
+
+.Site.Data
+: custom data, see [Data Templates](/templates/data-templates/).
+
+.Site.DisqusShortname
+: a string representing the shortname of the Disqus shortcode as defined in the site configuration.
+
+.Site.Files
+: all source files for the Hugo website.
+
+.Site.GoogleAnalytics
+: a string representing your tracking code for Google Analytics as defined in the site configuration.
+
+.Site.Home
+: reference to the homepage's [page object](https://gohugo.io/variables/page/)
+
+.Site.IsMultiLingual
+: whether there are more than one language in this site. See [Multilingual](/content-management/multilingual/) for more information.
+
+.Site.IsServer
+: a boolean to indicate if the site is being served with Hugo's built-in server. See [`hugo server`](/commands/hugo_server/) for more information.
+
+.Site.Language.Lang
+: the language code of the current locale (e.g., `en`).
+
+.Site.Language.LanguageName
+: the full language name (e.g. `English`).
+
+.Site.Language.Weight
+: the weight that defines the order in the `.Site.Languages` list.
+
+.Site.Language
+: indicates the language currently being used to render the website. This object's attributes are set in site configurations' language definition.
+
+.Site.LanguageCode
+: a string representing the language as defined in the site configuration. This is mostly used to populate the RSS feeds with the right language code.
+
+.Site.LanguagePrefix
+: this can be used to prefix URLs to point to the correct language. It will even work when only one defined language. See also the functions [absLangURL](/functions/abslangurl/) and [relLangURL](/functions/rellangurl).
+
+.Site.Languages
+: an ordered list (ordered by defined weight) of languages.
+
+.Site.LastChange
+: a string representing the date/time of the most recent change to your site. This string is based on the [`date` variable in the front matter](/content-management/front-matter) of your content pages.
+
+.Site.Menus
+: all of the menus in the site.
+
+.Site.Pages
+: array of all content ordered by Date with the newest first. This array contains only the pages in the current language. See [`.Site.Pages`](#site-pages).
+
- .Site.RSSLink
- : the URL for the site RSS.
-
+.Site.RegularPages
+: a shortcut to the *regular* page collection. `.Site.RegularPages` is equivalent to `where .Site.Pages "Kind" "page"`. See [`.Site.Pages`](#site-pages).
+
+.Site.Sections
+: top-level directories of the site.
+
+.Site.Taxonomies
+: the [taxonomies](/taxonomies/usage/) for the entire site. Replaces the now-obsolete `.Site.Indexes` since v0.11. Also see section [Taxonomies elsewhere](#taxonomies-elsewhere).
+
+.Site.Title
+: a string representing the title of the site.
+
+## The `.Site.Params` Variable
+
+`.Site.Params` is a container holding the values from the `params` section of your site configuration.
+
+### Example: `.Site.Params`
+
+The following `config.[yaml|toml|json]` defines a site-wide param for `description`:
+
+{{< code-toggle file="config" >}}
+baseURL = "https://yoursite.example.com/"
+
+[params]
+ description = "Tesla's Awesome Hugo Site"
+ author = "Nikola Tesla"
+{{</ code-toggle >}}
+
+You can use `.Site.Params` in a [partial template](/templates/partials/) to call the default site description:
+
+{{< code file="layouts/partials/head.html" >}}
+<meta name="description" content="{{if .IsHome}}{{ $.Site.Params.description }}{{else}}{{.Description}}{{end}}" />
+{{< /code >}}
+
+## The `.Site.Pages` Variable {#site-pages}
+
+### `.Site.Pages` compared to `.Pages`
+
+{{< readfile file="/content/en/readfiles/pages-vs-site-pages.md" markdown="true" >}}
+
+
+
+
+[config]: /getting-started/configuration/
--- /dev/null
- As an example, let's assume your site is using a theme called "mytheme" when rendering the section list for a `post` section. Hugo picks `layout/section/post.html` as the template for [rendering the section][]. The `{{define}}` block in this template tells Hugo that the template is an extension of a base template.
+---
+title: Base 模板 and Blocks
+linktitle:
+description: The base and block constructs allow you to define the outer shell of your master templates (i.e., the chrome of the page).
+godocref: https://golang.org/pkg/text/template/#example_Template_block
+date: 2017-02-01
+publishdate: 2018-08-11
+lastmod: 2017-02-01
+categories: [templates,fundamentals]
+keywords: [blocks,base]
+menu:
+ docs:
+ parent: "templates"
+ weight: 20
+weight: 20
+sections_weight: 20
+draft: false
+aliases: [/templates/blocks/,/templates/base-templates-and-blocks/]
+toc: true
+---
+
+The `block` keyword allows you to define the outer shell of your pages' one or more master template(s) and then fill in or override portions as necessary.
+
+{{< youtube QVOMCYitLEc >}}
+
+## Base Template Lookup Order
+
+The [lookup order][lookup] for base templates is as follows:
+
+1. `/layouts/section/<TYPE>-baseof.html`
+2. `/themes/<THEME>/layouts/section/<TYPE>-baseof.html`
+3. `/layouts/<TYPE>/baseof.html`
+4. `/themes/<THEME>/layouts/<TYPE>/baseof.html`
+5. `/layouts/section/baseof.html`
+6. `/themes/<THEME>/layouts/section/baseof.html`
+7. `/layouts/_default/<TYPE>-baseof.html`
+8. `/themes/<THEME>/layouts/_default/<TYPE>-baseof.html`
+9. `/layouts/_default/baseof.html`
+10. `/themes/<THEME>/layouts/_default/baseof.html`
+
+Variables are denoted by capitalized text set within `<>`. Note that Hugo's default behavior is for `type` to inherit from `section` unless otherwise specified.
+
+### Example Base Template Lookup Order
+
- Here is the lookup order for the `post` base template:
++As an example, let's assume your site is using a theme called "mytheme" when rendering the section list for a `posts` section. Hugo picks `layout/section/posts.html` as the template for [rendering the section][]. The `{{define}}` block in this template tells Hugo that the template is an extension of a base template.
+
- 1. `/layouts/section/post-baseof.html`
- 2. `/themes/mytheme/layouts/section/post-baseof.html`
- 3. `/layouts/post/baseof.html`
- 4. `/themes/mytheme/layouts/post/baseof.html`
++Here is the lookup order for the `posts` base template:
+
- 7. `/layouts/_default/post-baseof.html`
- 8. `/themes/mytheme/layouts/_default/post-baseof.html`
++1. `/layouts/section/posts-baseof.html`
++2. `/themes/mytheme/layouts/section/posts-baseof.html`
++3. `/layouts/posts/baseof.html`
++4. `/themes/mytheme/layouts/posts/baseof.html`
+5. `/layouts/section/baseof.html`
+6. `/themes/mytheme/layouts/section/baseof.html`
++7. `/layouts/_default/posts-baseof.html`
++8. `/themes/mytheme/layouts/_default/posts-baseof.html`
+9. `/layouts/_default/baseof.html`
+10. `/themes/mytheme/layouts/_default/baseof.html`
+
+## Define the Base Template
+
+The following defines a simple base template at `_default/baseof.html`. As a default template, it is the shell from which all your pages will be rendered unless you specify another `*baseof.html` closer to the beginning of the lookup order.
+
+{{< code file="layouts/_default/baseof.html" download="baseof.html" >}}
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8">
+ <title>{{ block "title" . }}
+ <!-- Blocks may include default content. -->
+ {{ .Site.Title }}
+ {{ end }}</title>
+ </head>
+ <body>
+ <!-- Code that all your templates share, like a header -->
+ {{ block "main" . }}
+ <!-- The part of the page that begins to differ between templates -->
+ {{ end }}
+ {{ block "footer" . }}
+ <!-- More shared code, perhaps a footer but that can be overridden if need be in -->
+ {{ end }}
+ </body>
+</html>
+{{< /code >}}
+
+## Override the Base Template
+
+From the above base template, you can define a [default list template][hugolists]. The default list template will inherit all of the code defined above and can then implement its own `"main"` block from:
+
+{{< code file="layouts/_default/list.html" download="list.html" >}}
+{{ define "main" }}
+ <h1>Posts</h1>
+ {{ range .Pages }}
+ <article>
+ <h2>{{ .Title }}</h2>
+ {{ .Content }}
+ </article>
+ {{ end }}
+{{ end }}
+{{< /code >}}
+
+This replaces the contents of our (basically empty) "main" block with something useful for the list template. In this case, we didn't define a `"title"` block, so the contents from our base template remain unchanged in lists.
+
+{{% warning %}}
+Code that you put outside the block definitions *can* break your layout. This even includes HTML comments. For example:
+
+```
+<!-- Seemingly harmless HTML comment..that will break your layout at build -->
+{{ define "main" }}
+...your code here
+{{ end }}
+```
+[See this thread from the Hugo discussion forums.](https://discourse.gohugo.io/t/baseof-html-block-templates-and-list-types-results-in-empty-pages/5612/6)
+{{% /warning %}}
+
+The following shows how you can override both the `"main"` and `"title"` block areas from the base template with code unique to your [default single page template][singletemplate]:
+
+{{< code file="layouts/_default/single.html" download="single.html" >}}
+{{ define "title" }}
+ <!-- This will override the default value set in baseof.html; i.e., "{{.Site.Title}}" in the original example-->
+ {{ .Title }} – {{ .Site.Title }}
+{{ end }}
+{{ define "main" }}
+ <h1>{{ .Title }}</h1>
+ {{ .Content }}
+{{ end }}
+{{< /code >}}
+
+[hugolists]: /templates/lists
+[lookup]: /templates/lookup-order/
+[rendering the section]: /templates/section-templates/
+[singletemplate]: /templates/single-page-templates/
--- /dev/null
- "Description": "Jsonify encodes a given object to JSON, returning pretty printed output.",
+{
+ "chroma": {
+ "lexers": [
+ {
+ "Name": "ABNF",
+ "Aliases": [
+ "abnf"
+ ]
+ },
+ {
+ "Name": "ANTLR",
+ "Aliases": [
+ "antlr"
+ ]
+ },
+ {
+ "Name": "APL",
+ "Aliases": [
+ "apl"
+ ]
+ },
+ {
+ "Name": "ActionScript",
+ "Aliases": [
+ "actionscript",
+ "as"
+ ]
+ },
+ {
+ "Name": "ActionScript 3",
+ "Aliases": [
+ "actionscript3",
+ "as",
+ "as3"
+ ]
+ },
+ {
+ "Name": "Ada",
+ "Aliases": [
+ "ada",
+ "ada2005",
+ "ada95",
+ "adb",
+ "ads"
+ ]
+ },
+ {
+ "Name": "Angular2",
+ "Aliases": [
+ "ng2"
+ ]
+ },
+ {
+ "Name": "ApacheConf",
+ "Aliases": [
+ "aconf",
+ "apache",
+ "apacheconf",
+ "conf",
+ "htaccess"
+ ]
+ },
+ {
+ "Name": "AppleScript",
+ "Aliases": [
+ "applescript"
+ ]
+ },
+ {
+ "Name": "Awk",
+ "Aliases": [
+ "awk",
+ "gawk",
+ "mawk",
+ "nawk"
+ ]
+ },
+ {
+ "Name": "BNF",
+ "Aliases": [
+ "bnf"
+ ]
+ },
+ {
+ "Name": "Ballerina",
+ "Aliases": [
+ "bal",
+ "ballerina"
+ ]
+ },
+ {
+ "Name": "Base Makefile",
+ "Aliases": [
+ "*",
+ "bsdmake",
+ "mak",
+ "make",
+ "makefile",
+ "mf",
+ "mk"
+ ]
+ },
+ {
+ "Name": "Bash",
+ "Aliases": [
+ "bash",
+ "bash_*",
+ "bashrc",
+ "ebuild",
+ "eclass",
+ "exheres-0",
+ "exlib",
+ "ksh",
+ "sh",
+ "shell",
+ "zsh",
+ "zshrc"
+ ]
+ },
+ {
+ "Name": "Batchfile",
+ "Aliases": [
+ "bat",
+ "batch",
+ "cmd",
+ "dosbatch",
+ "winbatch"
+ ]
+ },
+ {
+ "Name": "BlitzBasic",
+ "Aliases": [
+ "b3d",
+ "bb",
+ "blitzbasic",
+ "bplus",
+ "decls"
+ ]
+ },
+ {
+ "Name": "Brainfuck",
+ "Aliases": [
+ "b",
+ "bf",
+ "brainfuck"
+ ]
+ },
+ {
+ "Name": "C",
+ "Aliases": [
+ "c",
+ "h",
+ "idc"
+ ]
+ },
+ {
+ "Name": "C#",
+ "Aliases": [
+ "c#",
+ "cs",
+ "csharp"
+ ]
+ },
+ {
+ "Name": "C++",
+ "Aliases": [
+ "C",
+ "CPP",
+ "H",
+ "c++",
+ "cc",
+ "cp",
+ "cpp",
+ "cxx",
+ "h++",
+ "hh",
+ "hpp",
+ "hxx"
+ ]
+ },
+ {
+ "Name": "CFEngine3",
+ "Aliases": [
+ "cf",
+ "cf3",
+ "cfengine3"
+ ]
+ },
+ {
+ "Name": "CMake",
+ "Aliases": [
+ "cmake",
+ "txt"
+ ]
+ },
+ {
+ "Name": "COBOL",
+ "Aliases": [
+ "COB",
+ "CPY",
+ "cob",
+ "cobol",
+ "cpy"
+ ]
+ },
+ {
+ "Name": "CSS",
+ "Aliases": [
+ "css"
+ ]
+ },
+ {
+ "Name": "Cap'n Proto",
+ "Aliases": [
+ "capnp"
+ ]
+ },
+ {
+ "Name": "Cassandra CQL",
+ "Aliases": [
+ "cassandra",
+ "cql"
+ ]
+ },
+ {
+ "Name": "Ceylon",
+ "Aliases": [
+ "ceylon"
+ ]
+ },
+ {
+ "Name": "ChaiScript",
+ "Aliases": [
+ "chai",
+ "chaiscript"
+ ]
+ },
+ {
+ "Name": "Cheetah",
+ "Aliases": [
+ "cheetah",
+ "spitfire",
+ "spt",
+ "tmpl"
+ ]
+ },
+ {
+ "Name": "Clojure",
+ "Aliases": [
+ "clj",
+ "clojure"
+ ]
+ },
+ {
+ "Name": "CoffeeScript",
+ "Aliases": [
+ "coffee",
+ "coffee-script",
+ "coffeescript"
+ ]
+ },
+ {
+ "Name": "Common Lisp",
+ "Aliases": [
+ "cl",
+ "common-lisp",
+ "lisp"
+ ]
+ },
+ {
+ "Name": "Coq",
+ "Aliases": [
+ "coq",
+ "v"
+ ]
+ },
+ {
+ "Name": "Crystal",
+ "Aliases": [
+ "cr",
+ "crystal"
+ ]
+ },
+ {
+ "Name": "Cython",
+ "Aliases": [
+ "cython",
+ "pxd",
+ "pxi",
+ "pyrex",
+ "pyx"
+ ]
+ },
+ {
+ "Name": "DTD",
+ "Aliases": [
+ "dtd"
+ ]
+ },
+ {
+ "Name": "Dart",
+ "Aliases": [
+ "dart"
+ ]
+ },
+ {
+ "Name": "Diff",
+ "Aliases": [
+ "diff",
+ "patch",
+ "udiff"
+ ]
+ },
+ {
+ "Name": "Django/Jinja",
+ "Aliases": [
+ "django",
+ "jinja"
+ ]
+ },
+ {
+ "Name": "Docker",
+ "Aliases": [
+ "docker",
+ "dockerfile"
+ ]
+ },
+ {
+ "Name": "EBNF",
+ "Aliases": [
+ "ebnf"
+ ]
+ },
+ {
+ "Name": "Elixir",
+ "Aliases": [
+ "elixir",
+ "ex",
+ "exs"
+ ]
+ },
+ {
+ "Name": "Elm",
+ "Aliases": [
+ "elm"
+ ]
+ },
+ {
+ "Name": "EmacsLisp",
+ "Aliases": [
+ "el",
+ "elisp",
+ "emacs",
+ "emacs-lisp"
+ ]
+ },
+ {
+ "Name": "Erlang",
+ "Aliases": [
+ "erl",
+ "erlang",
+ "es",
+ "escript",
+ "hrl"
+ ]
+ },
+ {
+ "Name": "FSharp",
+ "Aliases": [
+ "fs",
+ "fsharp",
+ "fsi"
+ ]
+ },
+ {
+ "Name": "Factor",
+ "Aliases": [
+ "factor"
+ ]
+ },
+ {
+ "Name": "Fish",
+ "Aliases": [
+ "fish",
+ "fishshell",
+ "load"
+ ]
+ },
+ {
+ "Name": "Forth",
+ "Aliases": [
+ "forth",
+ "frt",
+ "fs"
+ ]
+ },
+ {
+ "Name": "Fortran",
+ "Aliases": [
+ "F03",
+ "F90",
+ "f03",
+ "f90",
+ "fortran"
+ ]
+ },
+ {
+ "Name": "GAS",
+ "Aliases": [
+ "S",
+ "asm",
+ "gas",
+ "s"
+ ]
+ },
+ {
+ "Name": "GDScript",
+ "Aliases": [
+ "gd",
+ "gdscript"
+ ]
+ },
+ {
+ "Name": "GLSL",
+ "Aliases": [
+ "frag",
+ "geo",
+ "glsl",
+ "vert"
+ ]
+ },
+ {
+ "Name": "Genshi",
+ "Aliases": [
+ "genshi",
+ "kid",
+ "xml+genshi",
+ "xml+kid"
+ ]
+ },
+ {
+ "Name": "Genshi HTML",
+ "Aliases": [
+ "html+genshi",
+ "html+kid"
+ ]
+ },
+ {
+ "Name": "Genshi Text",
+ "Aliases": [
+ "genshitext"
+ ]
+ },
+ {
+ "Name": "Gnuplot",
+ "Aliases": [
+ "gnuplot",
+ "plot",
+ "plt"
+ ]
+ },
+ {
+ "Name": "Go",
+ "Aliases": [
+ "go",
+ "golang"
+ ]
+ },
+ {
+ "Name": "Go HTML Template",
+ "Aliases": [
+ "go-html-template"
+ ]
+ },
+ {
+ "Name": "Go Text Template",
+ "Aliases": [
+ "go-text-template"
+ ]
+ },
+ {
+ "Name": "Groovy",
+ "Aliases": [
+ "gradle",
+ "groovy"
+ ]
+ },
+ {
+ "Name": "HTML",
+ "Aliases": [
+ "htm",
+ "html",
+ "xhtml",
+ "xslt"
+ ]
+ },
+ {
+ "Name": "HTTP",
+ "Aliases": [
+ "http"
+ ]
+ },
+ {
+ "Name": "Handlebars",
+ "Aliases": [
+ "handlebars"
+ ]
+ },
+ {
+ "Name": "Haskell",
+ "Aliases": [
+ "haskell",
+ "hs"
+ ]
+ },
+ {
+ "Name": "Haxe",
+ "Aliases": [
+ "haxe",
+ "hx",
+ "hxsl"
+ ]
+ },
+ {
+ "Name": "Hexdump",
+ "Aliases": [
+ "hexdump"
+ ]
+ },
+ {
+ "Name": "Hy",
+ "Aliases": [
+ "hy",
+ "hylang"
+ ]
+ },
+ {
+ "Name": "INI",
+ "Aliases": [
+ "cfg",
+ "dosini",
+ "gitconfig",
+ "inf",
+ "ini"
+ ]
+ },
+ {
+ "Name": "Idris",
+ "Aliases": [
+ "idr",
+ "idris"
+ ]
+ },
+ {
+ "Name": "Io",
+ "Aliases": [
+ "io"
+ ]
+ },
+ {
+ "Name": "JSON",
+ "Aliases": [
+ "json"
+ ]
+ },
+ {
+ "Name": "JSX",
+ "Aliases": [
+ "jsx",
+ "react"
+ ]
+ },
+ {
+ "Name": "Java",
+ "Aliases": [
+ "java"
+ ]
+ },
+ {
+ "Name": "JavaScript",
+ "Aliases": [
+ "javascript",
+ "js",
+ "jsm"
+ ]
+ },
+ {
+ "Name": "Julia",
+ "Aliases": [
+ "jl",
+ "julia"
+ ]
+ },
+ {
+ "Name": "Jungle",
+ "Aliases": [
+ "jungle"
+ ]
+ },
+ {
+ "Name": "Kotlin",
+ "Aliases": [
+ "kotlin",
+ "kt"
+ ]
+ },
+ {
+ "Name": "LLVM",
+ "Aliases": [
+ "ll",
+ "llvm"
+ ]
+ },
+ {
+ "Name": "Lighttpd configuration file",
+ "Aliases": [
+ "lighttpd",
+ "lighty"
+ ]
+ },
+ {
+ "Name": "Lua",
+ "Aliases": [
+ "lua",
+ "wlua"
+ ]
+ },
+ {
+ "Name": "Mako",
+ "Aliases": [
+ "mako",
+ "mao"
+ ]
+ },
+ {
+ "Name": "Mason",
+ "Aliases": [
+ "m",
+ "mason",
+ "mc",
+ "mhtml",
+ "mi"
+ ]
+ },
+ {
+ "Name": "Mathematica",
+ "Aliases": [
+ "cdf",
+ "ma",
+ "mathematica",
+ "mma",
+ "nb",
+ "nbp"
+ ]
+ },
+ {
+ "Name": "MiniZinc",
+ "Aliases": [
+ "MZN",
+ "dzn",
+ "fzn",
+ "minizinc",
+ "mzn"
+ ]
+ },
+ {
+ "Name": "Modula-2",
+ "Aliases": [
+ "def",
+ "m2",
+ "mod",
+ "modula2"
+ ]
+ },
+ {
+ "Name": "MonkeyC",
+ "Aliases": [
+ "mc",
+ "monkeyc"
+ ]
+ },
+ {
+ "Name": "MorrowindScript",
+ "Aliases": [
+ "morrowind",
+ "mwscript"
+ ]
+ },
+ {
+ "Name": "MySQL",
+ "Aliases": [
+ "mysql",
+ "sql"
+ ]
+ },
+ {
+ "Name": "Myghty",
+ "Aliases": [
+ "myghty",
+ "myt"
+ ]
+ },
+ {
+ "Name": "NASM",
+ "Aliases": [
+ "ASM",
+ "asm",
+ "nasm"
+ ]
+ },
+ {
+ "Name": "Newspeak",
+ "Aliases": [
+ "newspeak",
+ "ns2"
+ ]
+ },
+ {
+ "Name": "Nginx configuration file",
+ "Aliases": [
+ "conf",
+ "nginx"
+ ]
+ },
+ {
+ "Name": "Nim",
+ "Aliases": [
+ "nim",
+ "nimrod"
+ ]
+ },
+ {
+ "Name": "Nix",
+ "Aliases": [
+ "nix",
+ "nixos"
+ ]
+ },
+ {
+ "Name": "OCaml",
+ "Aliases": [
+ "ml",
+ "mli",
+ "mll",
+ "mly",
+ "ocaml"
+ ]
+ },
+ {
+ "Name": "Objective-C",
+ "Aliases": [
+ "h",
+ "m",
+ "obj-c",
+ "objc",
+ "objective-c",
+ "objectivec"
+ ]
+ },
+ {
+ "Name": "Octave",
+ "Aliases": [
+ "m",
+ "octave"
+ ]
+ },
+ {
+ "Name": "OpenSCAD",
+ "Aliases": [
+ "openscad",
+ "scad"
+ ]
+ },
+ {
+ "Name": "Org Mode",
+ "Aliases": [
+ "org",
+ "orgmode"
+ ]
+ },
+ {
+ "Name": "PHP",
+ "Aliases": [
+ "inc",
+ "php",
+ "php3",
+ "php4",
+ "php5",
+ "php[345]"
+ ]
+ },
+ {
+ "Name": "PL/pgSQL",
+ "Aliases": [
+ "plpgsql"
+ ]
+ },
+ {
+ "Name": "POVRay",
+ "Aliases": [
+ "inc",
+ "pov"
+ ]
+ },
+ {
+ "Name": "PacmanConf",
+ "Aliases": [
+ "conf",
+ "pacmanconf"
+ ]
+ },
+ {
+ "Name": "Perl",
+ "Aliases": [
+ "perl",
+ "pl",
+ "pm",
+ "t"
+ ]
+ },
+ {
+ "Name": "Pig",
+ "Aliases": [
+ "pig"
+ ]
+ },
+ {
+ "Name": "PkgConfig",
+ "Aliases": [
+ "pc",
+ "pkgconfig"
+ ]
+ },
+ {
+ "Name": "PostScript",
+ "Aliases": [
+ "eps",
+ "postscr",
+ "postscript",
+ "ps"
+ ]
+ },
+ {
+ "Name": "PostgreSQL SQL dialect",
+ "Aliases": [
+ "postgres",
+ "postgresql"
+ ]
+ },
+ {
+ "Name": "PowerShell",
+ "Aliases": [
+ "posh",
+ "powershell",
+ "ps1",
+ "psm1"
+ ]
+ },
+ {
+ "Name": "Prolog",
+ "Aliases": [
+ "ecl",
+ "pl",
+ "pro",
+ "prolog"
+ ]
+ },
+ {
+ "Name": "Protocol Buffer",
+ "Aliases": [
+ "proto",
+ "protobuf"
+ ]
+ },
+ {
+ "Name": "Puppet",
+ "Aliases": [
+ "pp",
+ "puppet"
+ ]
+ },
+ {
+ "Name": "Python",
+ "Aliases": [
+ "py",
+ "python",
+ "pyw",
+ "sage",
+ "sc",
+ "tac"
+ ]
+ },
+ {
+ "Name": "Python 3",
+ "Aliases": [
+ "py3",
+ "python3"
+ ]
+ },
+ {
+ "Name": "QBasic",
+ "Aliases": [
+ "BAS",
+ "bas",
+ "basic",
+ "qbasic"
+ ]
+ },
+ {
+ "Name": "R",
+ "Aliases": [
+ "R",
+ "Renviron",
+ "Rhistory",
+ "Rprofile",
+ "S",
+ "r",
+ "s",
+ "splus"
+ ]
+ },
+ {
+ "Name": "Racket",
+ "Aliases": [
+ "racket",
+ "rkt",
+ "rktd",
+ "rktl"
+ ]
+ },
+ {
+ "Name": "Ragel",
+ "Aliases": [
+ "ragel"
+ ]
+ },
+ {
+ "Name": "Rexx",
+ "Aliases": [
+ "arexx",
+ "rex",
+ "rexx",
+ "rx"
+ ]
+ },
+ {
+ "Name": "Ruby",
+ "Aliases": [
+ "duby",
+ "gemspec",
+ "rake",
+ "rb",
+ "rbw",
+ "rbx",
+ "ruby"
+ ]
+ },
+ {
+ "Name": "Rust",
+ "Aliases": [
+ "in",
+ "rs",
+ "rust"
+ ]
+ },
+ {
+ "Name": "SCSS",
+ "Aliases": [
+ "scss"
+ ]
+ },
+ {
+ "Name": "SPARQL",
+ "Aliases": [
+ "rq",
+ "sparql"
+ ]
+ },
+ {
+ "Name": "SQL",
+ "Aliases": [
+ "sql"
+ ]
+ },
+ {
+ "Name": "SYSTEMD",
+ "Aliases": [
+ "service",
+ "systemd"
+ ]
+ },
+ {
+ "Name": "Sass",
+ "Aliases": [
+ "sass"
+ ]
+ },
+ {
+ "Name": "Scala",
+ "Aliases": [
+ "scala"
+ ]
+ },
+ {
+ "Name": "Scheme",
+ "Aliases": [
+ "scheme",
+ "scm",
+ "ss"
+ ]
+ },
+ {
+ "Name": "Scilab",
+ "Aliases": [
+ "sce",
+ "sci",
+ "scilab",
+ "tst"
+ ]
+ },
+ {
+ "Name": "Smalltalk",
+ "Aliases": [
+ "smalltalk",
+ "squeak",
+ "st"
+ ]
+ },
+ {
+ "Name": "Smarty",
+ "Aliases": [
+ "smarty",
+ "tpl"
+ ]
+ },
+ {
+ "Name": "Snobol",
+ "Aliases": [
+ "snobol"
+ ]
+ },
+ {
+ "Name": "Solidity",
+ "Aliases": [
+ "sol",
+ "solidity"
+ ]
+ },
+ {
+ "Name": "SquidConf",
+ "Aliases": [
+ "conf",
+ "squid",
+ "squid.conf",
+ "squidconf"
+ ]
+ },
+ {
+ "Name": "Swift",
+ "Aliases": [
+ "swift"
+ ]
+ },
+ {
+ "Name": "TASM",
+ "Aliases": [
+ "ASM",
+ "asm",
+ "tasm"
+ ]
+ },
+ {
+ "Name": "TOML",
+ "Aliases": [
+ "toml"
+ ]
+ },
+ {
+ "Name": "Tcl",
+ "Aliases": [
+ "rvt",
+ "tcl"
+ ]
+ },
+ {
+ "Name": "Tcsh",
+ "Aliases": [
+ "csh",
+ "tcsh"
+ ]
+ },
+ {
+ "Name": "TeX",
+ "Aliases": [
+ "aux",
+ "latex",
+ "tex",
+ "toc"
+ ]
+ },
+ {
+ "Name": "Termcap",
+ "Aliases": [
+ "src",
+ "termcap"
+ ]
+ },
+ {
+ "Name": "Terminfo",
+ "Aliases": [
+ "src",
+ "terminfo"
+ ]
+ },
+ {
+ "Name": "Terraform",
+ "Aliases": [
+ "terraform",
+ "tf"
+ ]
+ },
+ {
+ "Name": "Thrift",
+ "Aliases": [
+ "thrift"
+ ]
+ },
+ {
+ "Name": "TradingView",
+ "Aliases": [
+ "tradingview",
+ "tv"
+ ]
+ },
+ {
+ "Name": "Transact-SQL",
+ "Aliases": [
+ "t-sql",
+ "tsql"
+ ]
+ },
+ {
+ "Name": "Turtle",
+ "Aliases": [
+ "ttl",
+ "turtle"
+ ]
+ },
+ {
+ "Name": "Twig",
+ "Aliases": [
+ "twig"
+ ]
+ },
+ {
+ "Name": "TypeScript",
+ "Aliases": [
+ "ts",
+ "tsx",
+ "typescript"
+ ]
+ },
+ {
+ "Name": "TypoScript",
+ "Aliases": [
+ "ts",
+ "txt",
+ "typoscript"
+ ]
+ },
+ {
+ "Name": "TypoScriptCssData",
+ "Aliases": [
+ "typoscriptcssdata"
+ ]
+ },
+ {
+ "Name": "TypoScriptHtmlData",
+ "Aliases": [
+ "typoscripthtmldata"
+ ]
+ },
+ {
+ "Name": "VHDL",
+ "Aliases": [
+ "vhd",
+ "vhdl"
+ ]
+ },
+ {
+ "Name": "VimL",
+ "Aliases": [
+ "exrc",
+ "gvimrc",
+ "vim",
+ "vimrc"
+ ]
+ },
+ {
+ "Name": "WDTE",
+ "Aliases": [
+ "wdte"
+ ]
+ },
+ {
+ "Name": "XML",
+ "Aliases": [
+ "rss",
+ "svg",
+ "wsdl",
+ "wsf",
+ "xml",
+ "xsd",
+ "xsl",
+ "xslt"
+ ]
+ },
+ {
+ "Name": "Xorg",
+ "Aliases": [
+ "conf",
+ "xorg.conf"
+ ]
+ },
+ {
+ "Name": "YAML",
+ "Aliases": [
+ "yaml",
+ "yml"
+ ]
+ },
+ {
+ "Name": "cfstatement",
+ "Aliases": [
+ "cfs"
+ ]
+ },
+ {
+ "Name": "markdown",
+ "Aliases": [
+ "markdown",
+ "md",
+ "mkd"
+ ]
+ },
+ {
+ "Name": "plaintext",
+ "Aliases": [
+ "no-highlight",
+ "plain",
+ "text",
+ "txt"
+ ]
+ },
+ {
+ "Name": "reStructuredText",
+ "Aliases": [
+ "rest",
+ "restructuredtext",
+ "rst"
+ ]
+ },
+ {
+ "Name": "reg",
+ "Aliases": [
+ "reg",
+ "registry"
+ ]
+ },
+ {
+ "Name": "systemverilog",
+ "Aliases": [
+ "sv",
+ "svh",
+ "systemverilog"
+ ]
+ },
+ {
+ "Name": "verilog",
+ "Aliases": [
+ "v",
+ "verilog"
+ ]
+ }
+ ]
+ },
+ "media": {
+ "types": [
+ {
+ "type": "application/javascript",
+ "string": "application/javascript",
+ "mainType": "application",
+ "subType": "javascript",
+ "delimiter": ".",
+ "suffixes": [
+ "js"
+ ]
+ },
+ {
+ "type": "application/json",
+ "string": "application/json",
+ "mainType": "application",
+ "subType": "json",
+ "delimiter": ".",
+ "suffixes": [
+ "json"
+ ]
+ },
+ {
+ "type": "application/octet-stream",
+ "string": "application/octet-stream",
+ "mainType": "application",
+ "subType": "octet-stream",
+ "delimiter": "",
+ "suffixes": null
+ },
+ {
+ "type": "application/rss+xml",
+ "string": "application/rss+xml",
+ "mainType": "application",
+ "subType": "rss",
+ "delimiter": ".",
+ "suffixes": [
+ "xml"
+ ]
+ },
++ {
++ "type": "application/toml",
++ "string": "application/toml",
++ "mainType": "application",
++ "subType": "toml",
++ "delimiter": ".",
++ "suffixes": [
++ "toml"
++ ]
++ },
+ {
+ "type": "application/xml",
+ "string": "application/xml",
+ "mainType": "application",
+ "subType": "xml",
+ "delimiter": ".",
+ "suffixes": [
+ "xml"
+ ]
+ },
++ {
++ "type": "application/yaml",
++ "string": "application/yaml",
++ "mainType": "application",
++ "subType": "yaml",
++ "delimiter": ".",
++ "suffixes": [
++ "yaml",
++ "yml"
++ ]
++ },
+ {
+ "type": "image/svg+xml",
+ "string": "image/svg+xml",
+ "mainType": "image",
+ "subType": "svg",
+ "delimiter": ".",
+ "suffixes": [
+ "svg"
+ ]
+ },
+ {
+ "type": "text/calendar",
+ "string": "text/calendar",
+ "mainType": "text",
+ "subType": "calendar",
+ "delimiter": ".",
+ "suffixes": [
+ "ics"
+ ]
+ },
+ {
+ "type": "text/css",
+ "string": "text/css",
+ "mainType": "text",
+ "subType": "css",
+ "delimiter": ".",
+ "suffixes": [
+ "css"
+ ]
+ },
+ {
+ "type": "text/csv",
+ "string": "text/csv",
+ "mainType": "text",
+ "subType": "csv",
+ "delimiter": ".",
+ "suffixes": [
+ "csv"
+ ]
+ },
+ {
+ "type": "text/html",
+ "string": "text/html",
+ "mainType": "text",
+ "subType": "html",
+ "delimiter": ".",
+ "suffixes": [
+ "html"
+ ]
+ },
+ {
+ "type": "text/plain",
+ "string": "text/plain",
+ "mainType": "text",
+ "subType": "plain",
+ "delimiter": ".",
+ "suffixes": [
+ "txt"
+ ]
+ },
+ {
+ "type": "text/x-sass",
+ "string": "text/x-sass",
+ "mainType": "text",
+ "subType": "x-sass",
+ "delimiter": ".",
+ "suffixes": [
+ "sass"
+ ]
+ },
+ {
+ "type": "text/x-scss",
+ "string": "text/x-scss",
+ "mainType": "text",
+ "subType": "x-scss",
+ "delimiter": ".",
+ "suffixes": [
+ "scss"
+ ]
+ }
+ ]
+ },
+ "output": {
+ "formats": [
+ {
+ "MediaType": "text/html",
+ "name": "AMP",
+ "mediaType": {
+ "type": "text/html",
+ "string": "text/html",
+ "mainType": "text",
+ "subType": "html",
+ "delimiter": ".",
+ "suffixes": [
+ "html"
+ ]
+ },
+ "path": "amp",
+ "baseName": "index",
+ "rel": "amphtml",
+ "protocol": "",
+ "isPlainText": false,
+ "isHTML": true,
+ "noUgly": false,
+ "notAlternative": false
+ },
+ {
+ "MediaType": "text/css",
+ "name": "CSS",
+ "mediaType": {
+ "type": "text/css",
+ "string": "text/css",
+ "mainType": "text",
+ "subType": "css",
+ "delimiter": ".",
+ "suffixes": [
+ "css"
+ ]
+ },
+ "path": "",
+ "baseName": "styles",
+ "rel": "stylesheet",
+ "protocol": "",
+ "isPlainText": true,
+ "isHTML": false,
+ "noUgly": false,
+ "notAlternative": true
+ },
+ {
+ "MediaType": "text/csv",
+ "name": "CSV",
+ "mediaType": {
+ "type": "text/csv",
+ "string": "text/csv",
+ "mainType": "text",
+ "subType": "csv",
+ "delimiter": ".",
+ "suffixes": [
+ "csv"
+ ]
+ },
+ "path": "",
+ "baseName": "index",
+ "rel": "alternate",
+ "protocol": "",
+ "isPlainText": true,
+ "isHTML": false,
+ "noUgly": false,
+ "notAlternative": false
+ },
+ {
+ "MediaType": "text/calendar",
+ "name": "Calendar",
+ "mediaType": {
+ "type": "text/calendar",
+ "string": "text/calendar",
+ "mainType": "text",
+ "subType": "calendar",
+ "delimiter": ".",
+ "suffixes": [
+ "ics"
+ ]
+ },
+ "path": "",
+ "baseName": "index",
+ "rel": "alternate",
+ "protocol": "webcal://",
+ "isPlainText": true,
+ "isHTML": false,
+ "noUgly": false,
+ "notAlternative": false
+ },
+ {
+ "MediaType": "text/html",
+ "name": "HTML",
+ "mediaType": {
+ "type": "text/html",
+ "string": "text/html",
+ "mainType": "text",
+ "subType": "html",
+ "delimiter": ".",
+ "suffixes": [
+ "html"
+ ]
+ },
+ "path": "",
+ "baseName": "index",
+ "rel": "canonical",
+ "protocol": "",
+ "isPlainText": false,
+ "isHTML": true,
+ "noUgly": false,
+ "notAlternative": false
+ },
+ {
+ "MediaType": "application/json",
+ "name": "JSON",
+ "mediaType": {
+ "type": "application/json",
+ "string": "application/json",
+ "mainType": "application",
+ "subType": "json",
+ "delimiter": ".",
+ "suffixes": [
+ "json"
+ ]
+ },
+ "path": "",
+ "baseName": "index",
+ "rel": "alternate",
+ "protocol": "",
+ "isPlainText": true,
+ "isHTML": false,
+ "noUgly": false,
+ "notAlternative": false
+ },
+ {
+ "MediaType": "text/plain",
+ "name": "ROBOTS",
+ "mediaType": {
+ "type": "text/plain",
+ "string": "text/plain",
+ "mainType": "text",
+ "subType": "plain",
+ "delimiter": ".",
+ "suffixes": [
+ "txt"
+ ]
+ },
+ "path": "",
+ "baseName": "robots",
+ "rel": "alternate",
+ "protocol": "",
+ "isPlainText": true,
+ "isHTML": false,
+ "noUgly": false,
+ "notAlternative": false
+ },
+ {
+ "MediaType": "application/rss+xml",
+ "name": "RSS",
+ "mediaType": {
+ "type": "application/rss+xml",
+ "string": "application/rss+xml",
+ "mainType": "application",
+ "subType": "rss",
+ "delimiter": ".",
+ "suffixes": [
+ "xml"
+ ]
+ },
+ "path": "",
+ "baseName": "index",
+ "rel": "alternate",
+ "protocol": "",
+ "isPlainText": false,
+ "isHTML": false,
+ "noUgly": true,
+ "notAlternative": false
+ },
+ {
+ "MediaType": "application/xml",
+ "name": "Sitemap",
+ "mediaType": {
+ "type": "application/xml",
+ "string": "application/xml",
+ "mainType": "application",
+ "subType": "xml",
+ "delimiter": ".",
+ "suffixes": [
+ "xml"
+ ]
+ },
+ "path": "",
+ "baseName": "sitemap",
+ "rel": "sitemap",
+ "protocol": "",
+ "isPlainText": false,
+ "isHTML": false,
+ "noUgly": true,
+ "notAlternative": false
+ }
+ ],
+ "layouts": [
+ {
+ "Example": "Single page in \"posts\" section",
+ "Kind": "page",
+ "OutputFormat": "HTML",
+ "Suffix": "html",
+ "Template Lookup Order": [
+ "layouts/posts/single.html.html",
+ "layouts/posts/single.html",
+ "layouts/_default/single.html.html",
+ "layouts/_default/single.html"
+ ]
+ },
+ {
+ "Example": "Single page in \"posts\" section with layout set",
+ "Kind": "page",
+ "OutputFormat": "HTML",
+ "Suffix": "html",
+ "Template Lookup Order": [
+ "layouts/posts/demolayout.html.html",
+ "layouts/posts/single.html.html",
+ "layouts/posts/demolayout.html",
+ "layouts/posts/single.html",
+ "layouts/_default/demolayout.html.html",
+ "layouts/_default/single.html.html",
+ "layouts/_default/demolayout.html",
+ "layouts/_default/single.html"
+ ]
+ },
+ {
+ "Example": "AMP single page",
+ "Kind": "page",
+ "OutputFormat": "AMP",
+ "Suffix": "html",
+ "Template Lookup Order": [
+ "layouts/posts/single.amp.html",
+ "layouts/posts/single.html",
+ "layouts/_default/single.amp.html",
+ "layouts/_default/single.html"
+ ]
+ },
+ {
+ "Example": "AMP single page, French language",
+ "Kind": "page",
+ "OutputFormat": "AMP",
+ "Suffix": "html",
+ "Template Lookup Order": [
+ "layouts/posts/single.fr.amp.html",
+ "layouts/posts/single.amp.html",
+ "layouts/posts/single.fr.html",
+ "layouts/posts/single.html",
+ "layouts/_default/single.fr.amp.html",
+ "layouts/_default/single.amp.html",
+ "layouts/_default/single.fr.html",
+ "layouts/_default/single.html"
+ ]
+ },
+ {
+ "Example": "Home page",
+ "Kind": "home",
+ "OutputFormat": "HTML",
+ "Suffix": "html",
+ "Template Lookup Order": [
+ "layouts/index.html.html",
+ "layouts/home.html.html",
+ "layouts/list.html.html",
+ "layouts/index.html",
+ "layouts/home.html",
+ "layouts/list.html",
+ "layouts/_default/index.html.html",
+ "layouts/_default/home.html.html",
+ "layouts/_default/list.html.html",
+ "layouts/_default/index.html",
+ "layouts/_default/home.html",
+ "layouts/_default/list.html"
+ ]
+ },
+ {
+ "Example": "Home page with type set",
+ "Kind": "home",
+ "OutputFormat": "HTML",
+ "Suffix": "html",
+ "Template Lookup Order": [
+ "layouts/demotype/index.html.html",
+ "layouts/demotype/home.html.html",
+ "layouts/demotype/list.html.html",
+ "layouts/demotype/index.html",
+ "layouts/demotype/home.html",
+ "layouts/demotype/list.html",
+ "layouts/index.html.html",
+ "layouts/home.html.html",
+ "layouts/list.html.html",
+ "layouts/index.html",
+ "layouts/home.html",
+ "layouts/list.html",
+ "layouts/_default/index.html.html",
+ "layouts/_default/home.html.html",
+ "layouts/_default/list.html.html",
+ "layouts/_default/index.html",
+ "layouts/_default/home.html",
+ "layouts/_default/list.html"
+ ]
+ },
+ {
+ "Example": "Home page with layout set",
+ "Kind": "home",
+ "OutputFormat": "HTML",
+ "Suffix": "html",
+ "Template Lookup Order": [
+ "layouts/demolayout.html.html",
+ "layouts/index.html.html",
+ "layouts/home.html.html",
+ "layouts/list.html.html",
+ "layouts/demolayout.html",
+ "layouts/index.html",
+ "layouts/home.html",
+ "layouts/list.html",
+ "layouts/_default/demolayout.html.html",
+ "layouts/_default/index.html.html",
+ "layouts/_default/home.html.html",
+ "layouts/_default/list.html.html",
+ "layouts/_default/demolayout.html",
+ "layouts/_default/index.html",
+ "layouts/_default/home.html",
+ "layouts/_default/list.html"
+ ]
+ },
+ {
+ "Example": "AMP home, French language\"",
+ "Kind": "home",
+ "OutputFormat": "AMP",
+ "Suffix": "html",
+ "Template Lookup Order": [
+ "layouts/index.fr.amp.html",
+ "layouts/home.fr.amp.html",
+ "layouts/list.fr.amp.html",
+ "layouts/index.amp.html",
+ "layouts/home.amp.html",
+ "layouts/list.amp.html",
+ "layouts/index.fr.html",
+ "layouts/home.fr.html",
+ "layouts/list.fr.html",
+ "layouts/index.html",
+ "layouts/home.html",
+ "layouts/list.html",
+ "layouts/_default/index.fr.amp.html",
+ "layouts/_default/home.fr.amp.html",
+ "layouts/_default/list.fr.amp.html",
+ "layouts/_default/index.amp.html",
+ "layouts/_default/home.amp.html",
+ "layouts/_default/list.amp.html",
+ "layouts/_default/index.fr.html",
+ "layouts/_default/home.fr.html",
+ "layouts/_default/list.fr.html",
+ "layouts/_default/index.html",
+ "layouts/_default/home.html",
+ "layouts/_default/list.html"
+ ]
+ },
+ {
+ "Example": "JSON home",
+ "Kind": "home",
+ "OutputFormat": "JSON",
+ "Suffix": "json",
+ "Template Lookup Order": [
+ "layouts/index.json.json",
+ "layouts/home.json.json",
+ "layouts/list.json.json",
+ "layouts/index.json",
+ "layouts/home.json",
+ "layouts/list.json",
+ "layouts/_default/index.json.json",
+ "layouts/_default/home.json.json",
+ "layouts/_default/list.json.json",
+ "layouts/_default/index.json",
+ "layouts/_default/home.json",
+ "layouts/_default/list.json"
+ ]
+ },
+ {
+ "Example": "RSS home",
+ "Kind": "home",
+ "OutputFormat": "RSS",
+ "Suffix": "xml",
+ "Template Lookup Order": [
+ "layouts/index.rss.xml",
+ "layouts/home.rss.xml",
+ "layouts/rss.xml",
+ "layouts/list.rss.xml",
+ "layouts/index.xml",
+ "layouts/home.xml",
+ "layouts/list.xml",
+ "layouts/_default/index.rss.xml",
+ "layouts/_default/home.rss.xml",
+ "layouts/_default/rss.xml",
+ "layouts/_default/list.rss.xml",
+ "layouts/_default/index.xml",
+ "layouts/_default/home.xml",
+ "layouts/_default/list.xml",
+ "layouts/_internal/_default/rss.xml"
+ ]
+ },
+ {
+ "Example": "RSS section posts",
+ "Kind": "section",
+ "OutputFormat": "RSS",
+ "Suffix": "xml",
+ "Template Lookup Order": [
+ "layouts/posts/section.rss.xml",
+ "layouts/posts/rss.xml",
+ "layouts/posts/list.rss.xml",
+ "layouts/posts/section.xml",
+ "layouts/posts/list.xml",
+ "layouts/section/section.rss.xml",
+ "layouts/section/rss.xml",
+ "layouts/section/list.rss.xml",
+ "layouts/section/section.xml",
+ "layouts/section/list.xml",
+ "layouts/_default/section.rss.xml",
+ "layouts/_default/rss.xml",
+ "layouts/_default/list.rss.xml",
+ "layouts/_default/section.xml",
+ "layouts/_default/list.xml",
+ "layouts/_internal/_default/rss.xml"
+ ]
+ },
+ {
+ "Example": "Taxonomy list in categories",
+ "Kind": "taxonomy",
+ "OutputFormat": "RSS",
+ "Suffix": "xml",
+ "Template Lookup Order": [
+ "layouts/categories/category.rss.xml",
+ "layouts/categories/taxonomy.rss.xml",
+ "layouts/categories/rss.xml",
+ "layouts/categories/list.rss.xml",
+ "layouts/categories/category.xml",
+ "layouts/categories/taxonomy.xml",
+ "layouts/categories/list.xml",
+ "layouts/taxonomy/category.rss.xml",
+ "layouts/taxonomy/taxonomy.rss.xml",
+ "layouts/taxonomy/rss.xml",
+ "layouts/taxonomy/list.rss.xml",
+ "layouts/taxonomy/category.xml",
+ "layouts/taxonomy/taxonomy.xml",
+ "layouts/taxonomy/list.xml",
+ "layouts/category/category.rss.xml",
+ "layouts/category/taxonomy.rss.xml",
+ "layouts/category/rss.xml",
+ "layouts/category/list.rss.xml",
+ "layouts/category/category.xml",
+ "layouts/category/taxonomy.xml",
+ "layouts/category/list.xml",
+ "layouts/_default/category.rss.xml",
+ "layouts/_default/taxonomy.rss.xml",
+ "layouts/_default/rss.xml",
+ "layouts/_default/list.rss.xml",
+ "layouts/_default/category.xml",
+ "layouts/_default/taxonomy.xml",
+ "layouts/_default/list.xml",
+ "layouts/_internal/_default/rss.xml"
+ ]
+ },
+ {
+ "Example": "Taxonomy terms in categories",
+ "Kind": "taxonomyTerm",
+ "OutputFormat": "RSS",
+ "Suffix": "xml",
+ "Template Lookup Order": [
+ "layouts/categories/category.terms.rss.xml",
+ "layouts/categories/terms.rss.xml",
+ "layouts/categories/rss.xml",
+ "layouts/categories/list.rss.xml",
+ "layouts/categories/category.terms.xml",
+ "layouts/categories/terms.xml",
+ "layouts/categories/list.xml",
+ "layouts/taxonomy/category.terms.rss.xml",
+ "layouts/taxonomy/terms.rss.xml",
+ "layouts/taxonomy/rss.xml",
+ "layouts/taxonomy/list.rss.xml",
+ "layouts/taxonomy/category.terms.xml",
+ "layouts/taxonomy/terms.xml",
+ "layouts/taxonomy/list.xml",
+ "layouts/category/category.terms.rss.xml",
+ "layouts/category/terms.rss.xml",
+ "layouts/category/rss.xml",
+ "layouts/category/list.rss.xml",
+ "layouts/category/category.terms.xml",
+ "layouts/category/terms.xml",
+ "layouts/category/list.xml",
+ "layouts/_default/category.terms.rss.xml",
+ "layouts/_default/terms.rss.xml",
+ "layouts/_default/rss.xml",
+ "layouts/_default/list.rss.xml",
+ "layouts/_default/category.terms.xml",
+ "layouts/_default/terms.xml",
+ "layouts/_default/list.xml",
+ "layouts/_internal/_default/rss.xml"
+ ]
+ },
+ {
+ "Example": "Section list for \"posts\" section",
+ "Kind": "section",
+ "OutputFormat": "HTML",
+ "Suffix": "html",
+ "Template Lookup Order": [
+ "layouts/posts/posts.html.html",
+ "layouts/posts/section.html.html",
+ "layouts/posts/list.html.html",
+ "layouts/posts/posts.html",
+ "layouts/posts/section.html",
+ "layouts/posts/list.html",
+ "layouts/section/posts.html.html",
+ "layouts/section/section.html.html",
+ "layouts/section/list.html.html",
+ "layouts/section/posts.html",
+ "layouts/section/section.html",
+ "layouts/section/list.html",
+ "layouts/_default/posts.html.html",
+ "layouts/_default/section.html.html",
+ "layouts/_default/list.html.html",
+ "layouts/_default/posts.html",
+ "layouts/_default/section.html",
+ "layouts/_default/list.html"
+ ]
+ },
+ {
+ "Example": "Section list for \"posts\" section with type set to \"blog\"",
+ "Kind": "section",
+ "OutputFormat": "HTML",
+ "Suffix": "html",
+ "Template Lookup Order": [
+ "layouts/blog/posts.html.html",
+ "layouts/blog/section.html.html",
+ "layouts/blog/list.html.html",
+ "layouts/blog/posts.html",
+ "layouts/blog/section.html",
+ "layouts/blog/list.html",
+ "layouts/posts/posts.html.html",
+ "layouts/posts/section.html.html",
+ "layouts/posts/list.html.html",
+ "layouts/posts/posts.html",
+ "layouts/posts/section.html",
+ "layouts/posts/list.html",
+ "layouts/section/posts.html.html",
+ "layouts/section/section.html.html",
+ "layouts/section/list.html.html",
+ "layouts/section/posts.html",
+ "layouts/section/section.html",
+ "layouts/section/list.html",
+ "layouts/_default/posts.html.html",
+ "layouts/_default/section.html.html",
+ "layouts/_default/list.html.html",
+ "layouts/_default/posts.html",
+ "layouts/_default/section.html",
+ "layouts/_default/list.html"
+ ]
+ },
+ {
+ "Example": "Section list for \"posts\" section with layout set to \"demoLayout\"",
+ "Kind": "section",
+ "OutputFormat": "HTML",
+ "Suffix": "html",
+ "Template Lookup Order": [
+ "layouts/posts/demolayout.html.html",
+ "layouts/posts/posts.html.html",
+ "layouts/posts/section.html.html",
+ "layouts/posts/list.html.html",
+ "layouts/posts/demolayout.html",
+ "layouts/posts/posts.html",
+ "layouts/posts/section.html",
+ "layouts/posts/list.html",
+ "layouts/section/demolayout.html.html",
+ "layouts/section/posts.html.html",
+ "layouts/section/section.html.html",
+ "layouts/section/list.html.html",
+ "layouts/section/demolayout.html",
+ "layouts/section/posts.html",
+ "layouts/section/section.html",
+ "layouts/section/list.html",
+ "layouts/_default/demolayout.html.html",
+ "layouts/_default/posts.html.html",
+ "layouts/_default/section.html.html",
+ "layouts/_default/list.html.html",
+ "layouts/_default/demolayout.html",
+ "layouts/_default/posts.html",
+ "layouts/_default/section.html",
+ "layouts/_default/list.html"
+ ]
+ },
+ {
+ "Example": "Taxonomy list in categories",
+ "Kind": "taxonomy",
+ "OutputFormat": "HTML",
+ "Suffix": "html",
+ "Template Lookup Order": [
+ "layouts/categories/category.html.html",
+ "layouts/categories/taxonomy.html.html",
+ "layouts/categories/list.html.html",
+ "layouts/categories/category.html",
+ "layouts/categories/taxonomy.html",
+ "layouts/categories/list.html",
+ "layouts/taxonomy/category.html.html",
+ "layouts/taxonomy/taxonomy.html.html",
+ "layouts/taxonomy/list.html.html",
+ "layouts/taxonomy/category.html",
+ "layouts/taxonomy/taxonomy.html",
+ "layouts/taxonomy/list.html",
+ "layouts/category/category.html.html",
+ "layouts/category/taxonomy.html.html",
+ "layouts/category/list.html.html",
+ "layouts/category/category.html",
+ "layouts/category/taxonomy.html",
+ "layouts/category/list.html",
+ "layouts/_default/category.html.html",
+ "layouts/_default/taxonomy.html.html",
+ "layouts/_default/list.html.html",
+ "layouts/_default/category.html",
+ "layouts/_default/taxonomy.html",
+ "layouts/_default/list.html"
+ ]
+ },
+ {
+ "Example": "Taxonomy term in categories",
+ "Kind": "taxonomyTerm",
+ "OutputFormat": "HTML",
+ "Suffix": "html",
+ "Template Lookup Order": [
+ "layouts/categories/category.terms.html.html",
+ "layouts/categories/terms.html.html",
+ "layouts/categories/list.html.html",
+ "layouts/categories/category.terms.html",
+ "layouts/categories/terms.html",
+ "layouts/categories/list.html",
+ "layouts/taxonomy/category.terms.html.html",
+ "layouts/taxonomy/terms.html.html",
+ "layouts/taxonomy/list.html.html",
+ "layouts/taxonomy/category.terms.html",
+ "layouts/taxonomy/terms.html",
+ "layouts/taxonomy/list.html",
+ "layouts/category/category.terms.html.html",
+ "layouts/category/terms.html.html",
+ "layouts/category/list.html.html",
+ "layouts/category/category.terms.html",
+ "layouts/category/terms.html",
+ "layouts/category/list.html",
+ "layouts/_default/category.terms.html.html",
+ "layouts/_default/terms.html.html",
+ "layouts/_default/list.html.html",
+ "layouts/_default/category.terms.html",
+ "layouts/_default/terms.html",
+ "layouts/_default/list.html"
+ ]
+ }
+ ]
+ },
+ "tpl": {
+ "funcs": {
+ "cast": {
+ "ToFloat": {
+ "Description": "ToFloat converts the given value to a float.",
+ "Args": [
+ "v"
+ ],
+ "Aliases": [
+ "float"
+ ],
+ "Examples": [
+ [
+ "{{ \"1234\" | float | printf \"%T\" }}",
+ "float64"
+ ]
+ ]
+ },
+ "ToInt": {
+ "Description": "ToInt converts the given value to an int.",
+ "Args": [
+ "v"
+ ],
+ "Aliases": [
+ "int"
+ ],
+ "Examples": [
+ [
+ "{{ \"1234\" | int | printf \"%T\" }}",
+ "int"
+ ]
+ ]
+ },
+ "ToString": {
+ "Description": "ToString converts the given value to a string.",
+ "Args": [
+ "v"
+ ],
+ "Aliases": [
+ "string"
+ ],
+ "Examples": [
+ [
+ "{{ 1234 | string | printf \"%T\" }}",
+ "string"
+ ]
+ ]
+ }
+ },
+ "compare": {
+ "Conditional": {
+ "Description": "Conditional can be used as a ternary operator.\nIt returns a if condition, else b.",
+ "Args": [
+ "condition",
+ "a",
+ "b"
+ ],
+ "Aliases": [
+ "cond"
+ ],
+ "Examples": [
+ [
+ "{{ cond (eq (add 2 2) 4) \"2+2 is 4\" \"what?\" | safeHTML }}",
+ "2+2 is 4"
+ ]
+ ]
+ },
+ "Default": {
+ "Description": "Default checks whether a given value is set and returns a default value if it\nis not. \"Set\" in this context means non-zero for numeric types and times;\nnon-zero length for strings, arrays, slices, and maps;\nany boolean or struct value; or non-nil for any other types.",
+ "Args": [
+ "dflt",
+ "given"
+ ],
+ "Aliases": [
+ "default"
+ ],
+ "Examples": [
+ [
+ "{{ \"Hugo Rocks!\" | default \"Hugo Rules!\" }}",
+ "Hugo Rocks!"
+ ],
+ [
+ "{{ \"\" | default \"Hugo Rules!\" }}",
+ "Hugo Rules!"
+ ]
+ ]
+ },
+ "Eq": {
+ "Description": "Eq returns the boolean truth of arg1 == arg2.",
+ "Args": [
+ "x",
+ "y"
+ ],
+ "Aliases": [
+ "eq"
+ ],
+ "Examples": [
+ [
+ "{{ if eq .Section \"blog\" }}current{{ end }}",
+ "current"
+ ]
+ ]
+ },
+ "Ge": {
+ "Description": "Ge returns the boolean truth of arg1 \u003e= arg2.",
+ "Args": [
+ "a",
+ "b"
+ ],
+ "Aliases": [
+ "ge"
+ ],
+ "Examples": [
+ [
+ "{{ if ge .Hugo.Version \"0.36\" }}Reasonable new Hugo version!{{ end }}",
+ "Reasonable new Hugo version!"
+ ]
+ ]
+ },
+ "Gt": {
+ "Description": "Gt returns the boolean truth of arg1 \u003e arg2.",
+ "Args": [
+ "a",
+ "b"
+ ],
+ "Aliases": [
+ "gt"
+ ],
+ "Examples": []
+ },
+ "Le": {
+ "Description": "Le returns the boolean truth of arg1 \u003c= arg2.",
+ "Args": [
+ "a",
+ "b"
+ ],
+ "Aliases": [
+ "le"
+ ],
+ "Examples": []
+ },
+ "Lt": {
+ "Description": "Lt returns the boolean truth of arg1 \u003c arg2.",
+ "Args": [
+ "a",
+ "b"
+ ],
+ "Aliases": [
+ "lt"
+ ],
+ "Examples": []
+ },
+ "Ne": {
+ "Description": "Ne returns the boolean truth of arg1 != arg2.",
+ "Args": [
+ "x",
+ "y"
+ ],
+ "Aliases": [
+ "ne"
+ ],
+ "Examples": []
+ }
+ },
+ "collections": {
+ "After": {
+ "Description": "After returns all the items after the first N in a rangeable list.",
+ "Args": [
+ "index",
+ "seq"
+ ],
+ "Aliases": [
+ "after"
+ ],
+ "Examples": []
+ },
+ "Append": {
+ "Description": "Append appends the arguments up to the last one to the slice in the last argument.\nThis construct allows template constructs like this:\n {{ $pages = $pages | append $p2 $p1 }}\nNote that with 2 arguments where both are slices of the same type,\nthe first slice will be appended to the second:\n {{ $pages = $pages | append .Site.RegularPages }}",
+ "Args": [
+ "args"
+ ],
+ "Aliases": [
+ "append"
+ ],
+ "Examples": []
+ },
+ "Apply": {
+ "Description": "Apply takes a map, array, or slice and returns a new slice with the function fname applied over it.",
+ "Args": [
+ "seq",
+ "fname",
+ "args"
+ ],
+ "Aliases": [
+ "apply"
+ ],
+ "Examples": []
+ },
++ "Complement": {
++ "Description": "Complement gives the elements in the last element of seqs that are not in\nany of the others.\nAll elements of seqs must be slices or arrays of comparable types.\n\nThe reasoning behind this rather clumsy API is so we can do this in the templates:\n {{ $c := .Pages | complement $last4 }}",
++ "Args": [
++ "seqs"
++ ],
++ "Aliases": [
++ "complement"
++ ],
++ "Examples": [
++ [
++ "{{ slice \"a\" \"b\" \"c\" \"d\" \"e\" \"f\" | complement (slice \"b\" \"c\") (slice \"d\" \"e\") }}",
++ "[a f]"
++ ]
++ ]
++ },
+ "Delimit": {
+ "Description": "Delimit takes a given sequence and returns a delimited HTML string.\nIf last is passed to the function, it will be used as the final delimiter.",
+ "Args": [
+ "seq",
+ "delimiter",
+ "last"
+ ],
+ "Aliases": [
+ "delimit"
+ ],
+ "Examples": [
+ [
+ "{{ delimit (slice \"A\" \"B\" \"C\") \", \" \" and \" }}",
+ "A, B and C"
+ ]
+ ]
+ },
+ "Dictionary": {
+ "Description": "Dictionary creates a map[string]interface{} from the given parameters by\nwalking the parameters and treating them as key-value pairs. The number\nof parameters must be even.",
+ "Args": [
+ "values"
+ ],
+ "Aliases": [
+ "dict"
+ ],
+ "Examples": []
+ },
+ "EchoParam": {
+ "Description": "EchoParam returns a given value if it is set; otherwise, it returns an\nempty string.",
+ "Args": [
+ "a",
+ "key"
+ ],
+ "Aliases": [
+ "echoParam"
+ ],
+ "Examples": [
+ [
+ "{{ echoParam .Params \"langCode\" }}",
+ "en"
+ ]
+ ]
+ },
+ "First": {
+ "Description": "First returns the first N items in a rangeable list.",
+ "Args": [
+ "limit",
+ "seq"
+ ],
+ "Aliases": [
+ "first"
+ ],
+ "Examples": []
+ },
+ "Group": {
+ "Description": "Group groups a set of elements by the given key.\nThis is currently only supported for Pages.",
+ "Args": [
+ "key",
+ "items"
+ ],
+ "Aliases": [
+ "group"
+ ],
+ "Examples": []
+ },
+ "In": {
+ "Description": "In returns whether v is in the set l. l may be an array or slice.",
+ "Args": [
+ "l",
+ "v"
+ ],
+ "Aliases": [
+ "in"
+ ],
+ "Examples": [
+ [
+ "{{ if in \"this string contains a substring\" \"substring\" }}Substring found!{{ end }}",
+ "Substring found!"
+ ]
+ ]
+ },
+ "Index": {
+ "Description": "Index returns the result of indexing its first argument by the following\narguments. Thus \"index x 1 2 3\" is, in Go syntax, x[1][2][3]. Each\nindexed item must be a map, slice, or array.\n\nCopied from Go stdlib src/text/template/funcs.go.\n\nWe deviate from the stdlib due to https://github.com/golang/go/issues/14751.\n\nTODO(moorereason): merge upstream changes.",
+ "Args": [
+ "item",
+ "indices"
+ ],
+ "Aliases": [
+ "index"
+ ],
+ "Examples": []
+ },
+ "Intersect": {
+ "Description": "Intersect returns the common elements in the given sets, l1 and l2. l1 and\nl2 must be of the same type and may be either arrays or slices.",
+ "Args": [
+ "l1",
+ "l2"
+ ],
+ "Aliases": [
+ "intersect"
+ ],
+ "Examples": []
+ },
+ "IsSet": {
+ "Description": "IsSet returns whether a given array, channel, slice, or map has a key\ndefined.",
+ "Args": [
+ "a",
+ "key"
+ ],
+ "Aliases": [
+ "isSet",
+ "isset"
+ ],
+ "Examples": []
+ },
+ "KeyVals": {
+ "Description": "KeyVals creates a key and values wrapper.",
+ "Args": [
+ "key",
+ "vals"
+ ],
+ "Aliases": [
+ "keyVals"
+ ],
+ "Examples": [
+ [
+ "{{ keyVals \"key\" \"a\" \"b\" }}",
+ "key: [a b]"
+ ]
+ ]
+ },
+ "Last": {
+ "Description": "Last returns the last N items in a rangeable list.",
+ "Args": [
+ "limit",
+ "seq"
+ ],
+ "Aliases": [
+ "last"
+ ],
+ "Examples": []
+ },
+ "NewScratch": {
+ "Description": "NewScratch creates a new Scratch which can be used to store values in a\nthread safe way.",
+ "Args": null,
+ "Aliases": [
+ "newScratch"
+ ],
+ "Examples": [
+ [
+ "{{ $scratch := newScratch }}{{ $scratch.Add \"b\" 2 }}{{ $scratch.Add \"b\" 2 }}{{ $scratch.Get \"b\" }}",
+ "4"
+ ]
+ ]
+ },
+ "Querify": {
+ "Description": "Querify encodes the given parameters in URL-encoded form (\"bar=baz\u0026foo=quux\") sorted by key.",
+ "Args": [
+ "params"
+ ],
+ "Aliases": [
+ "querify"
+ ],
+ "Examples": [
+ [
+ "{{ (querify \"foo\" 1 \"bar\" 2 \"baz\" \"with spaces\" \"qux\" \"this\u0026that=those\") | safeHTML }}",
+ "bar=2\u0026baz=with+spaces\u0026foo=1\u0026qux=this%26that%3Dthose"
+ ],
+ [
+ "\u003ca href=\"https://www.google.com?{{ (querify \"q\" \"test\" \"page\" 3) | safeURL }}\"\u003eSearch\u003c/a\u003e",
+ "\u003ca href=\"https://www.google.com?page=3\u0026amp;q=test\"\u003eSearch\u003c/a\u003e"
+ ]
+ ]
+ },
+ "Seq": {
+ "Description": "Seq creates a sequence of integers. It's named and used as GNU's seq.\n\nExamples:\n 3 =\u003e 1, 2, 3\n 1 2 4 =\u003e 1, 3\n -3 =\u003e -1, -2, -3\n 1 4 =\u003e 1, 2, 3, 4\n 1 -2 =\u003e 1, 0, -1, -2",
+ "Args": [
+ "args"
+ ],
+ "Aliases": [
+ "seq"
+ ],
+ "Examples": [
+ [
+ "{{ seq 3 }}",
+ "[1 2 3]"
+ ]
+ ]
+ },
+ "Shuffle": {
+ "Description": "Shuffle returns the given rangeable list in a randomised order.",
+ "Args": [
+ "seq"
+ ],
+ "Aliases": [
+ "shuffle"
+ ],
+ "Examples": []
+ },
+ "Slice": {
+ "Description": "Slice returns a slice of all passed arguments.",
+ "Args": [
+ "args"
+ ],
+ "Aliases": [
+ "slice"
+ ],
+ "Examples": [
+ [
+ "{{ slice \"B\" \"C\" \"A\" | sort }}",
+ "[A B C]"
+ ]
+ ]
+ },
+ "Sort": {
+ "Description": "Sort returns a sorted sequence.",
+ "Args": [
+ "seq",
+ "args"
+ ],
+ "Aliases": [
+ "sort"
+ ],
+ "Examples": []
+ },
++ "SymDiff": {
++ "Description": "SymDiff returns the symmetric difference of s1 and s2.\nArguments must be either a slice or an array of comparable types.",
++ "Args": [
++ "s2",
++ "s1"
++ ],
++ "Aliases": [
++ "symdiff"
++ ],
++ "Examples": [
++ [
++ "{{ slice 1 2 3 | symdiff (slice 3 4) }}",
++ "[1 2 4]"
++ ]
++ ]
++ },
+ "Union": {
+ "Description": "Union returns the union of the given sets, l1 and l2. l1 and\nl2 must be of the same type and may be either arrays or slices.\nIf l1 and l2 aren't of the same type then l1 will be returned.\nIf either l1 or l2 is nil then the non-nil list will be returned.",
+ "Args": [
+ "l1",
+ "l2"
+ ],
+ "Aliases": [
+ "union"
+ ],
+ "Examples": [
+ [
+ "{{ union (slice 1 2 3) (slice 3 4 5) }}",
+ "[1 2 3 4 5]"
+ ]
+ ]
+ },
+ "Uniq": {
+ "Description": "Uniq takes in a slice or array and returns a slice with subsequent\nduplicate elements removed.",
+ "Args": [
+ "l"
+ ],
+ "Aliases": [
+ "uniq"
+ ],
+ "Examples": [
+ [
+ "{{ slice 1 2 3 2 | uniq }}",
+ "[1 2 3]"
+ ]
+ ]
+ },
+ "Where": {
+ "Description": "Where returns a filtered subset of a given data type.",
+ "Args": [
+ "seq",
+ "key",
+ "args"
+ ],
+ "Aliases": [
+ "where"
+ ],
+ "Examples": []
+ }
+ },
+ "crypto": {
+ "MD5": {
+ "Description": "MD5 hashes the given input and returns its MD5 checksum.",
+ "Args": [
+ "in"
+ ],
+ "Aliases": [
+ "md5"
+ ],
+ "Examples": [
+ [
+ "{{ md5 \"Hello world, gophers!\" }}",
+ "b3029f756f98f79e7f1b7f1d1f0dd53b"
+ ],
+ [
+ "{{ crypto.MD5 \"Hello world, gophers!\" }}",
+ "b3029f756f98f79e7f1b7f1d1f0dd53b"
+ ]
+ ]
+ },
+ "SHA1": {
+ "Description": "SHA1 hashes the given input and returns its SHA1 checksum.",
+ "Args": [
+ "in"
+ ],
+ "Aliases": [
+ "sha1"
+ ],
+ "Examples": [
+ [
+ "{{ sha1 \"Hello world, gophers!\" }}",
+ "c8b5b0e33d408246e30f53e32b8f7627a7a649d4"
+ ]
+ ]
+ },
+ "SHA256": {
+ "Description": "SHA256 hashes the given input and returns its SHA256 checksum.",
+ "Args": [
+ "in"
+ ],
+ "Aliases": [
+ "sha256"
+ ],
+ "Examples": [
+ [
+ "{{ sha256 \"Hello world, gophers!\" }}",
+ "6ec43b78da9669f50e4e422575c54bf87536954ccd58280219c393f2ce352b46"
+ ]
+ ]
+ }
+ },
+ "data": {
+ "GetCSV": {
+ "Description": "GetCSV expects a data separator and one or n-parts of a URL to a resource which\ncan either be a local or a remote one.\nThe data separator can be a comma, semi-colon, pipe, etc, but only one character.\nIf you provide multiple parts for the URL they will be joined together to the final URL.\nGetCSV returns nil or a slice slice to use in a short code.",
+ "Args": [
+ "sep",
+ "urlParts"
+ ],
+ "Aliases": [
+ "getCSV"
+ ],
+ "Examples": []
+ },
+ "GetJSON": {
+ "Description": "GetJSON expects one or n-parts of a URL to a resource which can either be a local or a remote one.\nIf you provide multiple parts they will be joined together to the final URL.\nGetJSON returns nil or parsed JSON to use in a short code.",
+ "Args": [
+ "urlParts"
+ ],
+ "Aliases": [
+ "getJSON"
+ ],
+ "Examples": []
+ }
+ },
+ "encoding": {
+ "Base64Decode": {
+ "Description": "Base64Decode returns the base64 decoding of the given content.",
+ "Args": [
+ "content"
+ ],
+ "Aliases": [
+ "base64Decode"
+ ],
+ "Examples": [
+ [
+ "{{ \"SGVsbG8gd29ybGQ=\" | base64Decode }}",
+ "Hello world"
+ ],
+ [
+ "{{ 42 | base64Encode | base64Decode }}",
+ "42"
+ ]
+ ]
+ },
+ "Base64Encode": {
+ "Description": "Base64Encode returns the base64 encoding of the given content.",
+ "Args": [
+ "content"
+ ],
+ "Aliases": [
+ "base64Encode"
+ ],
+ "Examples": [
+ [
+ "{{ \"Hello world\" | base64Encode }}",
+ "SGVsbG8gd29ybGQ="
+ ]
+ ]
+ },
+ "Jsonify": {
- "[\n \"A\",\n \"B\",\n \"C\"\n]"
++ "Description": "Jsonify encodes a given object to JSON.",
+ "Args": [
+ "v"
+ ],
+ "Aliases": [
+ "jsonify"
+ ],
+ "Examples": [
+ [
+ "{{ (slice \"A\" \"B\" \"C\") | jsonify }}",
++ "[\"A\",\"B\",\"C\"]"
+ ]
+ ]
+ }
+ },
+ "fmt": {
+ "Errorf": {
+ "Description": "Errorf formats according to a format specifier and returns the string as a\nvalue that satisfies error.",
+ "Args": [
+ "format",
+ "a"
+ ],
+ "Aliases": [
+ "errorf"
+ ],
+ "Examples": [
+ [
+ "{{ errorf \"%s.\" \"failed\" }}",
+ "failed."
+ ]
+ ]
+ },
+ "Print": {
+ "Description": "Print returns string representation of the passed arguments.",
+ "Args": [
+ "a"
+ ],
+ "Aliases": [
+ "print"
+ ],
+ "Examples": [
+ [
+ "{{ print \"works!\" }}",
+ "works!"
+ ]
+ ]
+ },
+ "Printf": {
+ "Description": "Printf returns a formatted string representation of the passed arguments.",
+ "Args": [
+ "format",
+ "a"
+ ],
+ "Aliases": [
+ "printf"
+ ],
+ "Examples": [
+ [
+ "{{ printf \"%s!\" \"works\" }}",
+ "works!"
+ ]
+ ]
+ },
+ "Println": {
+ "Description": "Println returns string representation of the passed arguments ending with a newline.",
+ "Args": [
+ "a"
+ ],
+ "Aliases": [
+ "println"
+ ],
+ "Examples": [
+ [
+ "{{ println \"works!\" }}",
+ "works!\n"
+ ]
+ ]
+ }
+ },
++ "hugo": {
++ "Generator": {
++ "Description": "",
++ "Args": null,
++ "Aliases": null,
++ "Examples": null
++ },
++ "Version": {
++ "Description": "",
++ "Args": null,
++ "Aliases": null,
++ "Examples": null
++ }
++ },
+ "images": {
+ "Config": {
+ "Description": "Config returns the image.Config for the specified path relative to the\nworking directory.",
+ "Args": [
+ "path"
+ ],
+ "Aliases": [
+ "imageConfig"
+ ],
+ "Examples": []
+ }
+ },
+ "inflect": {
+ "Humanize": {
+ "Description": "Humanize returns the humanized form of a single parameter.\n\nIf the parameter is either an integer or a string containing an integer\nvalue, the behavior is to add the appropriate ordinal.\n\n Example: \"my-first-post\" -\u003e \"My first post\"\n Example: \"103\" -\u003e \"103rd\"\n Example: 52 -\u003e \"52nd\"",
+ "Args": [
+ "in"
+ ],
+ "Aliases": [
+ "humanize"
+ ],
+ "Examples": [
+ [
+ "{{ humanize \"my-first-post\" }}",
+ "My first post"
+ ],
+ [
+ "{{ humanize \"myCamelPost\" }}",
+ "My camel post"
+ ],
+ [
+ "{{ humanize \"52\" }}",
+ "52nd"
+ ],
+ [
+ "{{ humanize 103 }}",
+ "103rd"
+ ]
+ ]
+ },
+ "Pluralize": {
+ "Description": "Pluralize returns the plural form of a single word.",
+ "Args": [
+ "in"
+ ],
+ "Aliases": [
+ "pluralize"
+ ],
+ "Examples": [
+ [
+ "{{ \"cat\" | pluralize }}",
+ "cats"
+ ]
+ ]
+ },
+ "Singularize": {
+ "Description": "Singularize returns the singular form of a single word.",
+ "Args": [
+ "in"
+ ],
+ "Aliases": [
+ "singularize"
+ ],
+ "Examples": [
+ [
+ "{{ \"cats\" | singularize }}",
+ "cat"
+ ]
+ ]
+ }
+ },
+ "lang": {
+ "Merge": {
+ "Description": "",
+ "Args": null,
+ "Aliases": null,
+ "Examples": null
+ },
+ "NumFmt": {
+ "Description": "NumFmt formats a number with the given precision using the\nnegative, decimal, and grouping options. The `options`\nparameter is a string consisting of `\u003cnegative\u003e \u003cdecimal\u003e \u003cgrouping\u003e`. The\ndefault `options` value is `- . ,`.\n\nNote that numbers are rounded up at 5 or greater.\nSo, with precision set to 0, 1.5 becomes `2`, and 1.4 becomes `1`.",
+ "Args": [
+ "precision",
+ "number",
+ "options"
+ ],
+ "Aliases": null,
+ "Examples": [
+ [
+ "{{ lang.NumFmt 2 12345.6789 }}",
+ "12,345.68"
+ ],
+ [
+ "{{ lang.NumFmt 2 12345.6789 \"- , .\" }}",
+ "12.345,68"
+ ],
+ [
+ "{{ lang.NumFmt 6 -12345.6789 \"- .\" }}",
+ "-12345.678900"
+ ],
+ [
+ "{{ lang.NumFmt 0 -12345.6789 \"- . ,\" }}",
+ "-12,346"
+ ],
+ [
+ "{{ -98765.4321 | lang.NumFmt 2 }}",
+ "-98,765.43"
+ ]
+ ]
+ },
+ "Translate": {
+ "Description": "Translate returns a translated string for id.",
+ "Args": [
+ "id",
+ "args"
+ ],
+ "Aliases": [
+ "i18n",
+ "T"
+ ],
+ "Examples": []
+ }
+ },
+ "math": {
+ "Add": {
+ "Description": "Add adds two numbers.",
+ "Args": [
+ "a",
+ "b"
+ ],
+ "Aliases": [
+ "add"
+ ],
+ "Examples": [
+ [
+ "{{add 1 2}}",
+ "3"
+ ]
+ ]
+ },
+ "Ceil": {
+ "Description": "Ceil returns the least integer value greater than or equal to x.",
+ "Args": [
+ "x"
+ ],
+ "Aliases": null,
+ "Examples": [
+ [
+ "{{math.Ceil 2.1}}",
+ "3"
+ ]
+ ]
+ },
+ "Div": {
+ "Description": "Div divides two numbers.",
+ "Args": [
+ "a",
+ "b"
+ ],
+ "Aliases": [
+ "div"
+ ],
+ "Examples": [
+ [
+ "{{div 6 3}}",
+ "2"
+ ]
+ ]
+ },
+ "Floor": {
+ "Description": "Floor returns the greatest integer value less than or equal to x.",
+ "Args": [
+ "x"
+ ],
+ "Aliases": null,
+ "Examples": [
+ [
+ "{{math.Floor 1.9}}",
+ "1"
+ ]
+ ]
+ },
+ "Log": {
+ "Description": "Log returns the natural logarithm of a number.",
+ "Args": [
+ "a"
+ ],
+ "Aliases": null,
+ "Examples": [
+ [
+ "{{math.Log 1}}",
+ "0"
+ ]
+ ]
+ },
+ "Mod": {
+ "Description": "Mod returns a % b.",
+ "Args": [
+ "a",
+ "b"
+ ],
+ "Aliases": [
+ "mod"
+ ],
+ "Examples": [
+ [
+ "{{mod 15 3}}",
+ "0"
+ ]
+ ]
+ },
+ "ModBool": {
+ "Description": "ModBool returns the boolean of a % b. If a % b == 0, return true.",
+ "Args": [
+ "a",
+ "b"
+ ],
+ "Aliases": [
+ "modBool"
+ ],
+ "Examples": [
+ [
+ "{{modBool 15 3}}",
+ "true"
+ ]
+ ]
+ },
+ "Mul": {
+ "Description": "Mul multiplies two numbers.",
+ "Args": [
+ "a",
+ "b"
+ ],
+ "Aliases": [
+ "mul"
+ ],
+ "Examples": [
+ [
+ "{{mul 2 3}}",
+ "6"
+ ]
+ ]
+ },
+ "Round": {
+ "Description": "Round returns the nearest integer, rounding half away from zero.",
+ "Args": [
+ "x"
+ ],
+ "Aliases": null,
+ "Examples": [
+ [
+ "{{math.Round 1.5}}",
+ "2"
+ ]
+ ]
+ },
+ "Sub": {
+ "Description": "Sub subtracts two numbers.",
+ "Args": [
+ "a",
+ "b"
+ ],
+ "Aliases": [
+ "sub"
+ ],
+ "Examples": [
+ [
+ "{{sub 3 2}}",
+ "1"
+ ]
+ ]
+ }
+ },
+ "os": {
+ "FileExists": {
+ "Description": "FileExists checks whether a file exists under the given path.",
+ "Args": [
+ "i"
+ ],
+ "Aliases": [
+ "fileExists"
+ ],
+ "Examples": [
+ [
+ "{{ fileExists \"foo.txt\" }}",
+ "false"
+ ]
+ ]
+ },
+ "Getenv": {
+ "Description": "Getenv retrieves the value of the environment variable named by the key.\nIt returns the value, which will be empty if the variable is not present.",
+ "Args": [
+ "key"
+ ],
+ "Aliases": [
+ "getenv"
+ ],
+ "Examples": []
+ },
+ "ReadDir": {
+ "Description": "ReadDir lists the directory contents relative to the configured WorkingDir.",
+ "Args": [
+ "i"
+ ],
+ "Aliases": [
+ "readDir"
+ ],
+ "Examples": [
+ [
+ "{{ range (readDir \"files\") }}{{ .Name }}{{ end }}",
+ "README.txt"
+ ]
+ ]
+ },
+ "ReadFile": {
+ "Description": "ReadFile reads the file named by filename relative to the configured WorkingDir.\nIt returns the contents as a string.\nThere is an upper size limit set at 1 megabytes.",
+ "Args": [
+ "i"
+ ],
+ "Aliases": [
+ "readFile"
+ ],
+ "Examples": [
+ [
+ "{{ readFile \"files/README.txt\" }}",
+ "Hugo Rocks!"
+ ]
+ ]
+ },
+ "Stat": {
+ "Description": "",
+ "Args": null,
+ "Aliases": null,
+ "Examples": null
+ }
+ },
+ "partials": {
+ "Include": {
+ "Description": "Include executes the named partial and returns either a string,\nwhen the partial is a text/template, or template.HTML when html/template.",
+ "Args": [
+ "name",
+ "contextList"
+ ],
+ "Aliases": [
+ "partial"
+ ],
+ "Examples": [
+ [
+ "{{ partial \"header.html\" . }}",
+ "\u003ctitle\u003eHugo Rocks!\u003c/title\u003e"
+ ]
+ ]
+ },
+ "IncludeCached": {
+ "Description": "IncludeCached executes and caches partial templates. An optional variant\nstring parameter (a string slice actually, but be only use a variadic\nargument to make it optional) can be passed so that a given partial can have\nmultiple uses. The cache is created with name+variant as the key.",
+ "Args": [
+ "name",
+ "context",
+ "variant"
+ ],
+ "Aliases": [
+ "partialCached"
+ ],
+ "Examples": []
+ }
+ },
+ "path": {
+ "Base": {
+ "Description": "",
+ "Args": null,
+ "Aliases": null,
+ "Examples": null
+ },
+ "Dir": {
+ "Description": "",
+ "Args": null,
+ "Aliases": null,
+ "Examples": null
+ },
+ "Ext": {
+ "Description": "",
+ "Args": null,
+ "Aliases": null,
+ "Examples": null
+ },
+ "Join": {
+ "Description": "Join joins any number of path elements into a single path, adding a\nseparating slash if necessary. All the input\npath elements are passed into filepath.ToSlash converting any Windows slashes\nto forward slashes.\nThe result is Cleaned; in particular,\nall empty strings are ignored.",
+ "Args": [
+ "elements"
+ ],
+ "Aliases": null,
+ "Examples": [
+ [
+ "{{ slice \"my/path\" \"filename.txt\" | path.Join }}",
+ "my/path/filename.txt"
+ ],
+ [
+ "{{ path.Join \"my\" \"path\" \"filename.txt\" }}",
+ "my/path/filename.txt"
+ ],
+ [
+ "{{ \"my/path/filename.txt\" | path.Ext }}",
+ ".txt"
+ ],
+ [
+ "{{ \"my/path/filename.txt\" | path.Base }}",
+ "filename.txt"
+ ],
+ [
+ "{{ \"my/path/filename.txt\" | path.Dir }}",
+ "my/path"
+ ]
+ ]
+ },
+ "Split": {
+ "Description": "Split splits path immediately following the final slash,\nseparating it into a directory and file name component.\nIf there is no slash in path, Split returns an empty dir and\nfile set to path.\nThe input path is passed into filepath.ToSlash converting any Windows slashes\nto forward slashes.\nThe returned values have the property that path = dir+file.",
+ "Args": [
+ "path"
+ ],
+ "Aliases": null,
+ "Examples": [
+ [
+ "{{ \"/my/path/filename.txt\" | path.Split }}",
+ "/my/path/|filename.txt"
+ ],
+ [
+ "{{ \"/my/path/filename.txt\" | path.Split }}",
+ "/my/path/|filename.txt"
+ ]
+ ]
+ }
+ },
+ "resources": {
+ "Concat": {
+ "Description": "",
+ "Args": null,
+ "Aliases": null,
+ "Examples": null
+ },
+ "ExecuteAsTemplate": {
+ "Description": "",
+ "Args": null,
+ "Aliases": null,
+ "Examples": null
+ },
+ "Fingerprint": {
+ "Description": "Fingerprint transforms the given Resource with a MD5 hash of the content in\nthe RelPermalink and Permalink.",
+ "Args": [
+ "args"
+ ],
+ "Aliases": [
+ "fingerprint"
+ ],
+ "Examples": []
+ },
+ "FromString": {
+ "Description": "",
+ "Args": null,
+ "Aliases": null,
+ "Examples": null
+ },
+ "Get": {
+ "Description": "Get locates the filename given in Hugo's filesystems: static, assets and content (in that order)\nand creates a Resource object that can be used for further transformations.",
+ "Args": [
+ "filename"
+ ],
+ "Aliases": null,
+ "Examples": []
+ },
+ "Minify": {
+ "Description": "Minify minifies the given Resource using the MediaType to pick the correct\nminifier.",
+ "Args": [
+ "r"
+ ],
+ "Aliases": [
+ "minify"
+ ],
+ "Examples": []
+ },
+ "PostCSS": {
+ "Description": "PostCSS processes the given Resource with PostCSS",
+ "Args": [
+ "args"
+ ],
+ "Aliases": [
+ "postCSS"
+ ],
+ "Examples": []
+ },
+ "ToCSS": {
+ "Description": "ToCSS converts the given Resource to CSS. You can optional provide an Options\nobject or a target path (string) as first argument.",
+ "Args": [
+ "args"
+ ],
+ "Aliases": [
+ "toCSS"
+ ],
+ "Examples": []
+ }
+ },
+ "safe": {
+ "CSS": {
+ "Description": "CSS returns a given string as html/template CSS content.",
+ "Args": [
+ "a"
+ ],
+ "Aliases": [
+ "safeCSS"
+ ],
+ "Examples": [
+ [
+ "{{ \"Bat\u0026Man\" | safeCSS | safeCSS }}",
+ "Bat\u0026amp;Man"
+ ]
+ ]
+ },
+ "HTML": {
+ "Description": "HTML returns a given string as html/template HTML content.",
+ "Args": [
+ "a"
+ ],
+ "Aliases": [
+ "safeHTML"
+ ],
+ "Examples": [
+ [
+ "{{ \"Bat\u0026Man\" | safeHTML | safeHTML }}",
+ "Bat\u0026Man"
+ ],
+ [
+ "{{ \"Bat\u0026Man\" | safeHTML }}",
+ "Bat\u0026Man"
+ ]
+ ]
+ },
+ "HTMLAttr": {
+ "Description": "HTMLAttr returns a given string as html/template HTMLAttr content.",
+ "Args": [
+ "a"
+ ],
+ "Aliases": [
+ "safeHTMLAttr"
+ ],
+ "Examples": []
+ },
+ "JS": {
+ "Description": "JS returns the given string as a html/template JS content.",
+ "Args": [
+ "a"
+ ],
+ "Aliases": [
+ "safeJS"
+ ],
+ "Examples": [
+ [
+ "{{ \"(1*2)\" | safeJS | safeJS }}",
+ "(1*2)"
+ ]
+ ]
+ },
+ "JSStr": {
+ "Description": "JSStr returns the given string as a html/template JSStr content.",
+ "Args": [
+ "a"
+ ],
+ "Aliases": [
+ "safeJSStr"
+ ],
+ "Examples": []
+ },
+ "SanitizeURL": {
+ "Description": "SanitizeURL returns a given string as html/template URL content.",
+ "Args": [
+ "a"
+ ],
+ "Aliases": [
+ "sanitizeURL",
+ "sanitizeurl"
+ ],
+ "Examples": []
+ },
+ "URL": {
+ "Description": "URL returns a given string as html/template URL content.",
+ "Args": [
+ "a"
+ ],
+ "Aliases": [
+ "safeURL"
+ ],
+ "Examples": [
+ [
+ "{{ \"http://gohugo.io\" | safeURL | safeURL }}",
+ "http://gohugo.io"
+ ]
+ ]
+ }
+ },
++ "site": {
++ "Hugo": {
++ "Description": "",
++ "Args": null,
++ "Aliases": null,
++ "Examples": null
++ },
++ "IsServer": {
++ "Description": "",
++ "Args": null,
++ "Aliases": null,
++ "Examples": null
++ },
++ "Language": {
++ "Description": "",
++ "Args": null,
++ "Aliases": null,
++ "Examples": null
++ }
++ },
+ "strings": {
+ "Chomp": {
+ "Description": "Chomp returns a copy of s with all trailing newline characters removed.",
+ "Args": [
+ "s"
+ ],
+ "Aliases": [
+ "chomp"
+ ],
+ "Examples": [
+ [
+ "{{chomp \"\u003cp\u003eBlockhead\u003c/p\u003e\\n\" | safeHTML }}",
+ "\u003cp\u003eBlockhead\u003c/p\u003e"
+ ]
+ ]
+ },
+ "Contains": {
+ "Description": "",
+ "Args": null,
+ "Aliases": null,
+ "Examples": null
+ },
+ "ContainsAny": {
+ "Description": "",
+ "Args": null,
+ "Aliases": null,
+ "Examples": null
+ },
+ "CountRunes": {
+ "Description": "CountRunes returns the number of runes in s, excluding whitepace.",
+ "Args": [
+ "s"
+ ],
+ "Aliases": [
+ "countrunes"
+ ],
+ "Examples": []
+ },
+ "CountWords": {
+ "Description": "CountWords returns the approximate word count in s.",
+ "Args": [
+ "s"
+ ],
+ "Aliases": [
+ "countwords"
+ ],
+ "Examples": []
+ },
+ "FindRE": {
+ "Description": "FindRE returns a list of strings that match the regular expression. By default all matches\nwill be included. The number of matches can be limited with an optional third parameter.",
+ "Args": [
+ "expr",
+ "content",
+ "limit"
+ ],
+ "Aliases": [
+ "findRE"
+ ],
+ "Examples": [
+ [
+ "{{ findRE \"[G|g]o\" \"Hugo is a static side generator written in Go.\" \"1\" }}",
+ "[go]"
+ ]
+ ]
+ },
+ "FirstUpper": {
+ "Description": "FirstUpper returns a string with the first character as upper case.",
+ "Args": [
+ "s"
+ ],
+ "Aliases": null,
+ "Examples": [
+ [
+ "{{ \"hugo rocks!\" | strings.FirstUpper }}",
+ "Hugo rocks!"
+ ]
+ ]
+ },
+ "HasPrefix": {
+ "Description": "HasPrefix tests whether the input s begins with prefix.",
+ "Args": [
+ "s",
+ "prefix"
+ ],
+ "Aliases": [
+ "hasPrefix"
+ ],
+ "Examples": [
+ [
+ "{{ hasPrefix \"Hugo\" \"Hu\" }}",
+ "true"
+ ],
+ [
+ "{{ hasPrefix \"Hugo\" \"Fu\" }}",
+ "false"
+ ]
+ ]
+ },
+ "HasSuffix": {
+ "Description": "",
+ "Args": null,
+ "Aliases": null,
+ "Examples": null
+ },
+ "Repeat": {
+ "Description": "Repeat returns a new string consisting of count copies of the string s.",
+ "Args": [
+ "n",
+ "s"
+ ],
+ "Aliases": null,
+ "Examples": [
+ [
+ "{{ \"yo\" | strings.Repeat 4 }}",
+ "yoyoyoyo"
+ ]
+ ]
+ },
+ "Replace": {
+ "Description": "Replace returns a copy of the string s with all occurrences of old replaced\nwith new.",
+ "Args": [
+ "s",
+ "old",
+ "new"
+ ],
+ "Aliases": [
+ "replace"
+ ],
+ "Examples": [
+ [
+ "{{ replace \"Batman and Robin\" \"Robin\" \"Catwoman\" }}",
+ "Batman and Catwoman"
+ ]
+ ]
+ },
+ "ReplaceRE": {
+ "Description": "ReplaceRE returns a copy of s, replacing all matches of the regular\nexpression pattern with the replacement text repl.",
+ "Args": [
+ "pattern",
+ "repl",
+ "s"
+ ],
+ "Aliases": [
+ "replaceRE"
+ ],
+ "Examples": []
+ },
+ "RuneCount": {
+ "Description": "RuneCount returns the number of runes in s.",
+ "Args": [
+ "s"
+ ],
+ "Aliases": null,
+ "Examples": []
+ },
+ "SliceString": {
+ "Description": "SliceString slices a string by specifying a half-open range with\ntwo indices, start and end. 1 and 4 creates a slice including elements 1 through 3.\nThe end index can be omitted, it defaults to the string's length.",
+ "Args": [
+ "a",
+ "startEnd"
+ ],
+ "Aliases": [
+ "slicestr"
+ ],
+ "Examples": [
+ [
+ "{{slicestr \"BatMan\" 0 3}}",
+ "Bat"
+ ],
+ [
+ "{{slicestr \"BatMan\" 3}}",
+ "Man"
+ ]
+ ]
+ },
+ "Split": {
+ "Description": "Split slices an input string into all substrings separated by delimiter.",
+ "Args": [
+ "a",
+ "delimiter"
+ ],
+ "Aliases": [
+ "split"
+ ],
+ "Examples": []
+ },
+ "Substr": {
+ "Description": "Substr extracts parts of a string, beginning at the character at the specified\nposition, and returns the specified number of characters.\n\nIt normally takes two parameters: start and length.\nIt can also take one parameter: start, i.e. length is omitted, in which case\nthe substring starting from start until the end of the string will be returned.\n\nTo extract characters from the end of the string, use a negative start number.\n\nIn addition, borrowing from the extended behavior described at http://php.net/substr,\nif length is given and is negative, then that many characters will be omitted from\nthe end of string.",
+ "Args": [
+ "a",
+ "nums"
+ ],
+ "Aliases": [
+ "substr"
+ ],
+ "Examples": [
+ [
+ "{{substr \"BatMan\" 0 -3}}",
+ "Bat"
+ ],
+ [
+ "{{substr \"BatMan\" 3 3}}",
+ "Man"
+ ]
+ ]
+ },
+ "Title": {
+ "Description": "Title returns a copy of the input s with all Unicode letters that begin words\nmapped to their title case.",
+ "Args": [
+ "s"
+ ],
+ "Aliases": [
+ "title"
+ ],
+ "Examples": [
+ [
+ "{{title \"Bat man\"}}",
+ "Bat Man"
+ ],
+ [
+ "{{title \"somewhere over the rainbow\"}}",
+ "Somewhere Over the Rainbow"
+ ]
+ ]
+ },
+ "ToLower": {
+ "Description": "ToLower returns a copy of the input s with all Unicode letters mapped to their\nlower case.",
+ "Args": [
+ "s"
+ ],
+ "Aliases": [
+ "lower"
+ ],
+ "Examples": [
+ [
+ "{{lower \"BatMan\"}}",
+ "batman"
+ ]
+ ]
+ },
+ "ToUpper": {
+ "Description": "ToUpper returns a copy of the input s with all Unicode letters mapped to their\nupper case.",
+ "Args": [
+ "s"
+ ],
+ "Aliases": [
+ "upper"
+ ],
+ "Examples": [
+ [
+ "{{upper \"BatMan\"}}",
+ "BATMAN"
+ ]
+ ]
+ },
+ "Trim": {
+ "Description": "Trim returns a string with all leading and trailing characters defined\ncontained in cutset removed.",
+ "Args": [
+ "s",
+ "cutset"
+ ],
+ "Aliases": [
+ "trim"
+ ],
+ "Examples": [
+ [
+ "{{ trim \"++Batman--\" \"+-\" }}",
+ "Batman"
+ ]
+ ]
+ },
+ "TrimLeft": {
+ "Description": "TrimLeft returns a slice of the string s with all leading characters\ncontained in cutset removed.",
+ "Args": [
+ "cutset",
+ "s"
+ ],
+ "Aliases": null,
+ "Examples": [
+ [
+ "{{ \"aabbaa\" | strings.TrimLeft \"a\" }}",
+ "bbaa"
+ ]
+ ]
+ },
+ "TrimPrefix": {
+ "Description": "TrimPrefix returns s without the provided leading prefix string. If s doesn't\nstart with prefix, s is returned unchanged.",
+ "Args": [
+ "prefix",
+ "s"
+ ],
+ "Aliases": null,
+ "Examples": [
+ [
+ "{{ \"aabbaa\" | strings.TrimPrefix \"a\" }}",
+ "abbaa"
+ ],
+ [
+ "{{ \"aabbaa\" | strings.TrimPrefix \"aa\" }}",
+ "bbaa"
+ ]
+ ]
+ },
+ "TrimRight": {
+ "Description": "TrimRight returns a slice of the string s with all trailing characters\ncontained in cutset removed.",
+ "Args": [
+ "cutset",
+ "s"
+ ],
+ "Aliases": null,
+ "Examples": [
+ [
+ "{{ \"aabbaa\" | strings.TrimRight \"a\" }}",
+ "aabb"
+ ]
+ ]
+ },
+ "TrimSuffix": {
+ "Description": "TrimSuffix returns s without the provided trailing suffix string. If s\ndoesn't end with suffix, s is returned unchanged.",
+ "Args": [
+ "suffix",
+ "s"
+ ],
+ "Aliases": null,
+ "Examples": [
+ [
+ "{{ \"aabbaa\" | strings.TrimSuffix \"a\" }}",
+ "aabba"
+ ],
+ [
+ "{{ \"aabbaa\" | strings.TrimSuffix \"aa\" }}",
+ "aabb"
+ ]
+ ]
+ },
+ "Truncate": {
+ "Description": "Truncate truncates a given string to the specified length.",
+ "Args": [
+ "a",
+ "options"
+ ],
+ "Aliases": [
+ "truncate"
+ ],
+ "Examples": [
+ [
+ "{{ \"this is a very long text\" | truncate 10 \" ...\" }}",
+ "this is a ..."
+ ],
+ [
+ "{{ \"With [Markdown](/markdown) inside.\" | markdownify | truncate 14 }}",
+ "With \u003ca href=\"/markdown\"\u003eMarkdown …\u003c/a\u003e"
+ ]
+ ]
+ }
+ },
+ "templates": {
+ "Exists": {
+ "Description": "Exists returns whether the template with the given name exists.\nNote that this is the Unix-styled relative path including filename suffix,\ne.g. partials/header.html",
+ "Args": [
+ "name"
+ ],
+ "Aliases": null,
+ "Examples": [
+ [
+ "{{ if (templates.Exists \"partials/header.html\") }}Yes!{{ end }}",
+ "Yes!"
+ ],
+ [
+ "{{ if not (templates.Exists \"partials/doesnotexist.html\") }}No!{{ end }}",
+ "No!"
+ ]
+ ]
+ }
+ },
+ "time": {
+ "AsTime": {
+ "Description": "AsTime converts the textual representation of the datetime string into\na time.Time interface.",
+ "Args": [
+ "v"
+ ],
+ "Aliases": null,
+ "Examples": [
+ [
+ "{{ (time \"2015-01-21\").Year }}",
+ "2015"
+ ]
+ ]
+ },
+ "Duration": {
+ "Description": "Duration converts the given number to a time.Duration.\nUnit is one of nanosecond/ns, microsecond/us/µs, millisecond/ms, second/s, minute/m or hour/h.",
+ "Args": [
+ "unit",
+ "number"
+ ],
+ "Aliases": [
+ "duration"
+ ],
+ "Examples": [
+ [
+ "{{ mul 60 60 | duration \"second\" }}",
+ "1h0m0s"
+ ]
+ ]
+ },
+ "Format": {
+ "Description": "Format converts the textual representation of the datetime string into\nthe other form or returns it of the time.Time value. These are formatted\nwith the layout string",
+ "Args": [
+ "layout",
+ "v"
+ ],
+ "Aliases": [
+ "dateFormat"
+ ],
+ "Examples": [
+ [
+ "dateFormat: {{ dateFormat \"Monday, Jan 2, 2006\" \"2015-01-21\" }}",
+ "dateFormat: Wednesday, Jan 21, 2015"
+ ]
+ ]
+ },
+ "Now": {
+ "Description": "Now returns the current local time.",
+ "Args": null,
+ "Aliases": [
+ "now"
+ ],
+ "Examples": []
+ },
+ "ParseDuration": {
+ "Description": "ParseDuration parses a duration string.\nA duration string is a possibly signed sequence of\ndecimal numbers, each with optional fraction and a unit suffix,\nsuch as \"300ms\", \"-1.5h\" or \"2h45m\".\nValid time units are \"ns\", \"us\" (or \"µs\"), \"ms\", \"s\", \"m\", \"h\".\nSee https://golang.org/pkg/time/#ParseDuration",
+ "Args": [
+ "in"
+ ],
+ "Aliases": null,
+ "Examples": [
+ [
+ "{{ \"1h12m10s\" | time.ParseDuration }}",
+ "1h12m10s"
+ ]
+ ]
+ }
+ },
+ "transform": {
+ "Emojify": {
+ "Description": "Emojify returns a copy of s with all emoji codes replaced with actual emojis.\n\nSee http://www.emoji-cheat-sheet.com/",
+ "Args": [
+ "s"
+ ],
+ "Aliases": [
+ "emojify"
+ ],
+ "Examples": [
+ [
+ "{{ \"I :heart: Hugo\" | emojify }}",
+ "I ❤️ Hugo"
+ ]
+ ]
+ },
+ "HTMLEscape": {
+ "Description": "HTMLEscape returns a copy of s with reserved HTML characters escaped.",
+ "Args": [
+ "s"
+ ],
+ "Aliases": [
+ "htmlEscape"
+ ],
+ "Examples": [
+ [
+ "{{ htmlEscape \"Cathal Garvey \u0026 The Sunshine Band \u003ccathal@foo.bar\u003e\" | safeHTML}}",
+ "Cathal Garvey \u0026amp; The Sunshine Band \u0026lt;cathal@foo.bar\u0026gt;"
+ ],
+ [
+ "{{ htmlEscape \"Cathal Garvey \u0026 The Sunshine Band \u003ccathal@foo.bar\u003e\"}}",
+ "Cathal Garvey \u0026amp;amp; The Sunshine Band \u0026amp;lt;cathal@foo.bar\u0026amp;gt;"
+ ],
+ [
+ "{{ htmlEscape \"Cathal Garvey \u0026 The Sunshine Band \u003ccathal@foo.bar\u003e\" | htmlUnescape | safeHTML }}",
+ "Cathal Garvey \u0026 The Sunshine Band \u003ccathal@foo.bar\u003e"
+ ]
+ ]
+ },
+ "HTMLUnescape": {
+ "Description": "HTMLUnescape returns a copy of with HTML escape requences converted to plain\ntext.",
+ "Args": [
+ "s"
+ ],
+ "Aliases": [
+ "htmlUnescape"
+ ],
+ "Examples": [
+ [
+ "{{ htmlUnescape \"Cathal Garvey \u0026amp; The Sunshine Band \u0026lt;cathal@foo.bar\u0026gt;\" | safeHTML}}",
+ "Cathal Garvey \u0026 The Sunshine Band \u003ccathal@foo.bar\u003e"
+ ],
+ [
+ "{{\"Cathal Garvey \u0026amp;amp; The Sunshine Band \u0026amp;lt;cathal@foo.bar\u0026amp;gt;\" | htmlUnescape | htmlUnescape | safeHTML}}",
+ "Cathal Garvey \u0026 The Sunshine Band \u003ccathal@foo.bar\u003e"
+ ],
+ [
+ "{{\"Cathal Garvey \u0026amp;amp; The Sunshine Band \u0026amp;lt;cathal@foo.bar\u0026amp;gt;\" | htmlUnescape | htmlUnescape }}",
+ "Cathal Garvey \u0026amp; The Sunshine Band \u0026lt;cathal@foo.bar\u0026gt;"
+ ],
+ [
+ "{{ htmlUnescape \"Cathal Garvey \u0026amp; The Sunshine Band \u0026lt;cathal@foo.bar\u0026gt;\" | htmlEscape | safeHTML }}",
+ "Cathal Garvey \u0026amp; The Sunshine Band \u0026lt;cathal@foo.bar\u0026gt;"
+ ]
+ ]
+ },
+ "Highlight": {
+ "Description": "Highlight returns a copy of s as an HTML string with syntax\nhighlighting applied.",
+ "Args": [
+ "s",
+ "lang",
+ "opts"
+ ],
+ "Aliases": [
+ "highlight"
+ ],
+ "Examples": []
+ },
+ "Markdownify": {
+ "Description": "Markdownify renders a given input from Markdown to HTML.",
+ "Args": [
+ "s"
+ ],
+ "Aliases": [
+ "markdownify"
+ ],
+ "Examples": [
+ [
+ "{{ .Title | markdownify}}",
+ "\u003cstrong\u003eBatMan\u003c/strong\u003e"
+ ]
+ ]
+ },
+ "Plainify": {
+ "Description": "Plainify returns a copy of s with all HTML tags removed.",
+ "Args": [
+ "s"
+ ],
+ "Aliases": [
+ "plainify"
+ ],
+ "Examples": [
+ [
+ "{{ plainify \"Hello \u003cstrong\u003eworld\u003c/strong\u003e, gophers!\" }}",
+ "Hello world, gophers!"
+ ]
+ ]
+ },
+ "Remarshal": {
+ "Description": "Remarshal is used in the Hugo documentation to convert configuration\nexamples from YAML to JSON, TOML (and possibly the other way around).\nThe is primarily a helper for the Hugo docs site.\nIt is not a general purpose YAML to TOML converter etc., and may\nchange without notice if it serves a purpose in the docs.\nFormat is one of json, yaml or toml.",
+ "Args": [
+ "format",
+ "data"
+ ],
+ "Aliases": null,
+ "Examples": [
+ [
+ "{{ \"title = \\\"Hello World\\\"\" | transform.Remarshal \"json\" | safeHTML }}",
+ "{\n \"title\": \"Hello World\"\n}\n"
+ ]
+ ]
++ },
++ "Unmarshal": {
++ "Description": "Unmarshal unmarshals the data given, which can be either a string\nor a Resource. Supported formats are JSON, TOML, YAML, and CSV.\nYou can optionally provide an options map as the first argument.",
++ "Args": [
++ "args"
++ ],
++ "Aliases": [
++ "unmarshal"
++ ],
++ "Examples": [
++ [
++ "{{ \"hello = \\\"Hello World\\\"\" | transform.Unmarshal }}",
++ "map[hello:Hello World]"
++ ],
++ [
++ "{{ \"hello = \\\"Hello World\\\"\" | resources.FromString \"data/greetings.toml\" | transform.Unmarshal }}",
++ "map[hello:Hello World]"
++ ]
++ ]
+ }
+ },
+ "urls": {
+ "AbsLangURL": {
+ "Description": "AbsLangURL takes a given string and converts it to an absolute URL according\nto a page's position in the project directory structure and the current\nlanguage.",
+ "Args": [
+ "a"
+ ],
+ "Aliases": [
+ "absLangURL"
+ ],
+ "Examples": []
+ },
+ "AbsURL": {
+ "Description": "AbsURL takes a given string and converts it to an absolute URL.",
+ "Args": [
+ "a"
+ ],
+ "Aliases": [
+ "absURL"
+ ],
+ "Examples": []
+ },
+ "Anchorize": {
+ "Description": "Anchorize creates sanitized anchor names that are compatible with Blackfriday.",
+ "Args": [
+ "a"
+ ],
+ "Aliases": [
+ "anchorize"
+ ],
+ "Examples": [
+ [
+ "{{ \"This is a title\" | anchorize }}",
+ "this-is-a-title"
+ ]
+ ]
+ },
+ "Parse": {
+ "Description": "",
+ "Args": null,
+ "Aliases": null,
+ "Examples": null
+ },
+ "Ref": {
+ "Description": "Ref returns the absolute URL path to a given content item.",
+ "Args": [
+ "in",
+ "args"
+ ],
+ "Aliases": [
+ "ref"
+ ],
+ "Examples": []
+ },
+ "RelLangURL": {
+ "Description": "RelLangURL takes a given string and prepends the relative path according to a\npage's position in the project directory structure and the current language.",
+ "Args": [
+ "a"
+ ],
+ "Aliases": [
+ "relLangURL"
+ ],
+ "Examples": []
+ },
+ "RelRef": {
+ "Description": "RelRef returns the relative URL path to a given content item.",
+ "Args": [
+ "in",
+ "args"
+ ],
+ "Aliases": [
+ "relref"
+ ],
+ "Examples": []
+ },
+ "RelURL": {
+ "Description": "RelURL takes a given string and prepends the relative path according to a\npage's position in the project directory structure.",
+ "Args": [
+ "a"
+ ],
+ "Aliases": [
+ "relURL"
+ ],
+ "Examples": []
+ },
+ "URLize": {
+ "Description": "URLize returns the given argument formatted as URL.",
+ "Args": [
+ "a"
+ ],
+ "Aliases": [
+ "urlize"
+ ],
+ "Examples": []
+ }
+ }
+ }
+ }
+}
--- /dev/null
- @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:transparent}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:rgba(255,255,255,.4)}.b--black-10{border-color:rgba(0,0,0,.1)}.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 rgba(0,0,0,.2);box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.shadow-5{-webkit-box-shadow:4px 4px 8px 0 rgba(0,0,0,.2);box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}.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:rgba(0,0,0,.7)}.black-60{color:rgba(0,0,0,.6)}.white-90{color:rgba(255,255,255,.9)}.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:rgba(0,0,0,.05)}.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:rgba(69,142,225,0);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:rgba(0,0,0,.5)}.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:transparent;border:none;z-index:1;max-width:600px;min-width:500px;-webkit-box-shadow:0 1px 0 0 rgba(0,0,0,.2),0 2px 3px 0 rgba(0,0,0,.1);box-shadow:0 1px 0 0 rgba(0,0,0,.2),0 2px 3px 0 rgba(0,0,0,.1)}.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:rgba(69,142,225,.05)}.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:rgba(143,187,237,.1);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 rgba(69,142,225,.8);box-shadow:inset 0 -2px 0 0 rgba(69,142,225,.8);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:-9000px;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:rgba(27,31,35,.05);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%}
++@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:transparent}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:rgba(255,255,255,.4)}.b--black-10{border-color:rgba(0,0,0,.1)}.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 rgba(0,0,0,.2);box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.shadow-5{-webkit-box-shadow:4px 4px 8px 0 rgba(0,0,0,.2);box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}.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:rgba(0,0,0,.7)}.black-60{color:rgba(0,0,0,.6)}.white-90{color:rgba(255,255,255,.9)}.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:rgba(0,0,0,.05)}.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:999;position:relative}.searchbox__input{display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;-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 26px 0 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:rgba(69,142,225,0);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:rgba(0,0,0,.5)}.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:sbx-reset-in;animation-name:sbx-reset-in;-webkit-animation-duration:.15s;animation-duration:.15s}@-webkit-keyframes sbx-reset-in{0%{-webkit-transform:translate3d(-20%,0,0);transform:translate3d(-20%,0,0);opacity:0}to{-webkit-transform:none;transform:none;opacity:1}}@keyframes sbx-reset-in{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:transparent;border:none;z-index:999;max-width:600px;min-width:500px;-webkit-box-shadow:0 1px 0 0 rgba(0,0,0,.2),0 2px 3px 0 rgba(0,0,0,.1);box-shadow:0 1px 0 0 rgba(0,0,0,.2),0 2px 3px 0 rgba(0,0,0,.1)}.algolia-autocomplete .ds-dropdown-menu:before{display:block;position:absolute;content:"";width:14px;height:14px;background:#fff;z-index:1000;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:1000;margin-top:8px}.algolia-autocomplete .ds-dropdown-menu .ds-suggestions a:hover{text-decoration:none}.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:rgba(69,142,225,.05)}.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{display:block;position:relative;padding:0 8px;background:#fff;color:#02060c;overflow:hidden}.algolia-autocomplete .algolia-docsearch-suggestion--highlight{color:#174d8c;background:rgba(143,187,237,.1);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,.algolia-autocomplete .algolia-docsearch-suggestion--text .algolia-docsearch-suggestion--highlight{padding:0 0 1px;background:inherit;-webkit-box-shadow:inset 0 -2px 0 0 rgba(69,142,225,.8);box-shadow:inset 0 -2px 0 0 rgba(69,142,225,.8);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%;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-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{display:block}@media(min-width:768px){.algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--subcategory-column{display:block}}@media(max-width:768px){.algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--subcategory-column{display:inline-block;width:auto;float:left;padding:0;color:#02060c;font-size:.9em;font-weight:700;text-align:left;opacity:.5}.algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--subcategory-column:before{display:none}.algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--subcategory-column:after{content:"|"}.algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--content{display:inline-block;width:auto;text-align:left;float:left;padding:0}.algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--content:before{display:none}}.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-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:134px;height:20px;z-index:2000;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;charset=utf-8;base64,PHN2ZyB3aWR0aD0iMTY4IiBoZWlnaHQ9IjI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PHBhdGggZD0iTTc4Ljk4OC45MzhoMTYuNTk0YTIuOTY4IDIuOTY4LjAgMCAxIDIuOTY2IDIuOTY2VjIwLjVhMi45NjcgMi45NjcuMCAwIDEtMi45NjYgMi45NjRINzguOTg4YTIuOTY3IDIuOTY3LjAgMCAxLTIuOTY2LTIuOTY0VjMuODk3QTIuOTYxIDIuOTYxLjAgMCAxIDc4Ljk4OC45Mzh6bTQxLjkzNyAxNy44NjZjLTQuMzg2LjAyLTQuMzg2LTMuNTQtNC4zODYtNC4xMDZsLS4wMDctMTMuMzM2IDIuNjc1LS40MjR2MTMuMjU0YzAgLjMyMi4wIDIuMzU4IDEuNzE4IDIuMzY0djIuMjQ4em0tMTAuODQ2LTIuMThjLjgyMS4wIDEuNDMtLjA0NyAxLjg1NS0uMTI5di0yLjcxOWE2LjMzNCA2LjMzNC4wIDAgMC0xLjU3NC0uMTk5IDUuNyA1LjcuMCAwIDAtLjg5Ny4wNjkgMi42OTkgMi42OTkuMCAwIDAtLjgxNC4yNGMtLjI0LjExNi0uNDM5LjI4LS41ODIuNDkxLS4xNS4yMTItLjIxOS4zMzUtLjIxOS42NTYuMC42MjguMjE5Ljk5MS42MTYgMS4yM3MuOTM4LjM2MiAxLjYxNS4zNjJ6bS0uMjMzLTkuN2MuODgzLjAgMS42MjkuMTA5IDIuMjMxLjMyOC42MDIuMjE4IDEuMDg4LjUyNSAxLjQ0NC45MTUuMzYzLjM5Ni42MDkuOTIyLjc2IDEuNDgzLjE1Ny41Ni4yMzIgMS4xNzUuMjMyIDEuODV2Ni44NzRhMzIuNSAzMi41LjAgMCAxLTEuODY4LjMxNGMtLjgzNC4xMjMtMS43NzIuMTg1LTIuODEzLjE4NS0uNjkuMC0xLjMyNy0uMDY5LTEuODk1LS4xOThhNC4wMDEgNC4wMDEuMCAwIDEtMS40NzEtLjYzNiAzLjA4NSAzLjA4NS4wIDAgMS0uOTUxLTEuMTM0Yy0uMjI2LS40NjUtLjM0My0xLjEyLS4zNDMtMS44MDMuMC0uNjU2LjEzLTEuMDczLjM4NC0xLjUyNWEzLjI0IDMuMjQuMCAwIDEgMS4wNDctMS4xMDZjLjQ0NS0uMjg3Ljk1LS40OTIgMS41MzItLjYxNWE4LjggOC44LjAgMCAxIDEuODItLjE4NSA4LjQwNCA4LjQwNC4wIDAgMSAxLjk3Mi4yNHYtLjQzOGMwLS4zMDctLjAzNS0uNi0uMTEtLjg3NGExLjg4IDEuODguMCAwIDAtLjM4NC0uNzMgMS43ODQgMS43ODQuMCAwIDAtLjcyNC0uNDkzIDMuMTY0IDMuMTY0LjAgMCAwLTEuMTQzLS4yMDVjLS42MTYuMC0xLjE3Ny4wNzUtMS42OS4xNjRhNy43MzUgNy43MzUuMCAwIDAtMS4yNi4zMDdsLS4zMjEtMi4xOTJjLjMzNS0uMTE3LjgzNC0uMjMzIDEuNDc4LS4zNDlhMTAuOTggMTAuOTguMCAwIDEgMi4wNzMtLjE3OHptNTIuODQyIDkuNjI2Yy44MjIuMCAxLjQzLS4wNDggMS44NTQtLjEzVjEzLjdhNi4zNDcgNi4zNDcuMCAwIDAtMS41NzQtLjE5OWMtLjI5NC4wLS41OTUuMDIxLS44OTYuMDY5YTIuNyAyLjcuMCAwIDAtLjgxNC4yNCAxLjQ2IDEuNDYuMCAwIDAtLjU4Mi40OTFjLS4xNS4yMTItLjIxOC4zMzUtLjIxOC42NTYuMC42MjguMjE4Ljk5MS42MTUgMS4yMy40MDQuMjQ1LjkzOC4zNjIgMS42MTUuMzYyem0tLjIyNi05LjY5NGMuODgzLjAgMS42MjkuMTA4IDIuMjMxLjMyNy42MDIuMjE5IDEuMDg4LjUyNiAxLjQ0NC45MTUuMzU1LjM5LjYwOS45MjMuNzU5IDEuNDgzYTYuOCA2LjguMCAwIDEgLjIzMyAxLjg1MnY2Ljg3M2MtLjQxLjA4OC0xLjAzNC4xOS0xLjg2OC4zMTQtLjgzNC4xMjMtMS43NzIuMTg0LTIuODEzLjE4NC0uNjkuMC0xLjMyNy0uMDY4LTEuODk1LS4xOThhNC4wMDEgNC4wMDEuMCAwIDEtMS40NzEtLjYzNSAzLjA4NSAzLjA4NS4wIDAgMS0uOTUxLTEuMTM0Yy0uMjI2LS40NjUtLjM0My0xLjEyLS4zNDMtMS44MDQuMC0uNjU2LjEzLTEuMDczLjM4NC0xLjUyNC4yNi0uNDUuNjA4LS44MiAxLjA0Ny0xLjEwNy40NDUtLjI4Ni45NS0uNDkxIDEuNTMyLS42MTRhOC44MDMgOC44MDMuMCAwIDEgMi43NTEtLjEzYy4zMjkuMDM0LjY3MS4wOTYgMS4wNC4xODV2LS40MzdhMy4zIDMuMy4wIDAgMC0uMTA5LS44NzUgMS44NzMgMS44NzMuMCAwIDAtLjM4NC0uNzMxIDEuNzg0IDEuNzg0LjAgMCAwLS43MjQtLjQ5MiAzLjE2NSAzLjE2NS4wIDAgMC0xLjE0My0uMjA1Yy0uNjE2LjAtMS4xNzcuMDc1LTEuNjkuMTY0YTcuNzUgNy43NS4wIDAgMC0xLjI2LjMwN2wtLjMyMS0yLjE5M2MuMzM1LS4xMTYuODM0LS4yMzIgMS40NzgtLjM0OGExMS42MzMgMTEuNjMzLjAgMCAxIDIuMDczLS4xNzd6bS04LjAzNC0xLjI3MWExLjYyNiAxLjYyNi4wIDAgMS0xLjYyOC0xLjYyYzAtLjg5NS43MjUtMS42MiAxLjYyOC0xLjYyLjkwNC4wIDEuNjMuNzI1IDEuNjMgMS42Mi4wLjg5NS0uNzMzIDEuNjItMS42MyAxLjYyem0xLjM0OCAxMy4yMmgtMi42ODlWNy4yN2wyLjY5LS40MjN2MTEuOTU2em0tNC43MTQuMGMtNC4zODYuMDItNC4zODYtMy41NC00LjM4Ni00LjEwN2wtLjAwOC0xMy4zMzYgMi42NzYtLjQyNHYxMy4yNTRjMCAuMzIyLjAgMi4zNTggMS43MTggMi4zNjR2Mi4yNDh6bS04LjY5OC01LjkwM2MwLTEuMTU2LS4yNTMtMi4xMTktLjc0Ni0yLjc4OC0uNDkzLS42NzctMS4xODMtMS4wMS0yLjA2Ny0xLjAxLS44ODIuMC0xLjU3NC4zMzMtMi4wNjUgMS4wMS0uNDkzLjY3Ni0uNzMzIDEuNjMyLS43MzMgMi43ODguMCAxLjE2OC4yNDYgMS45NTMuNzQgMi42My40OTIuNjgzIDEuMTgzIDEuMDE4IDIuMDY2IDEuMDE4Ljg4Mi4wIDEuNTc0LS4zNDIgMi4wNjctMS4wMTkuNDkyLS42ODMuNzM4LTEuNDYuNzM4LTIuNjN6bTIuNzM3LS4wMDdjMCAuOTAyLS4xMyAxLjU4NC0uMzk3IDIuMzNhNS41MiA1LjUyLjAgMCAxLTEuMTI4IDEuOTA2IDQuOTg2IDQuOTg2LjAgMCAxLTEuNzUyIDEuMjIzYy0uNjg1LjI4Ni0xLjczOS40NS0yLjI2NS40NS0uNTI4LS4wMDYtMS41NzQtLjE1Ny0yLjI1Mi0uNDVhNS4wOTYgNS4wOTYuMCAwIDEtMS43NDQtMS4yMjNjLS40ODctLjUyNy0uODYzLTEuMTYyLTEuMTM3LTEuOTA2YTYuMzQ1IDYuMzQ1LjAgMCAxLS40MS0yLjMzYzAtLjkwMi4xMjMtMS43Ny4zOTctMi41MDhhNS41NTQgNS41NTQuMCAwIDEgMS4xNS0xLjg5MiA1LjEzMyA1LjEzMy4wIDAgMSAxLjc1LTEuMjE2Yy42NzktLjI4NyAxLjQyNS0uNDIzIDIuMjMyLS40MjMuODA4LjAgMS41NTMuMTQyIDIuMjM3LjQyM2E0Ljg4IDQuODguMCAwIDEgMS43NTMgMS4yMTYgNS42NDQgNS42NDQuMCAwIDEgMS4xMzUgMS44OTJjLjI4Ny43MzguNDMxIDEuNjA2LjQzMSAyLjUwOHptLTIwLjEzOC4wYzAgMS4xMi4yNDYgMi4zNjMuNzM4IDIuODgyLjQ5My41MiAxLjEzLjc4IDEuOTEuNzguNDI0LjAuODI4LS4wNjIgMS4yMDQtLjE3OC4zNzctLjExNi42NzctLjI1My45MTctLjQxN1Y5LjMzYTEwLjQ3NiAxMC40NzYuMCAwIDAtMS43NjYtLjIyNmMtLjk3MS0uMDI4LTEuNzEuMzctMi4yMyAxLjAwNC0uNTEzLjYzNi0uNzczIDEuNzUtLjc3MyAyLjc4OHptNy40MzggNS4yNzRjMCAxLjgyNC0uNDY2IDMuMTU2LTEuNDA0IDQuMDA0LS45MzYuODQ2LTIuMzY3IDEuMjctNC4yOTYgMS4yNy0uNzA1LjAtMi4xNy0uMTM3LTMuMzQtLjM5NmwuNDMxLTIuMTE4Yy45OC4yMDUgMi4yNzIuMjYgMi45NS4yNiAxLjA3NC4wIDEuODQtLjIxOSAyLjI5OS0uNjU2LjQ1OS0uNDM3LjY4NC0xLjA4Ni42ODQtMS45NDh2LS40MzdhOC4wNyA4LjA3LjAgMCAxLTEuMDQ3LjM5N2MtLjQzLjEzLS45My4xOTgtMS40OTIuMTk4LS43MzkuMC0xLjQxLS4xMTYtMi4wMTgtLjM0OWE0LjIwNiA0LjIwNi4wIDAgMS0xLjU2Ny0xLjAyNWMtLjQzMS0uNDUtLjc3NC0xLjAxNy0xLjAxMy0xLjY5NC0uMjQtLjY3Ny0uMzYzLTEuODg1LS4zNjMtMi43NzMuMC0uODM0LjEzLTEuODguMzg0LTIuNTc3LjI2LS42OTYuNjI5LTEuMjk4IDEuMTI5LTEuNzk2LjQ5My0uNDk4IDEuMDk1LS44ODEgMS44LTEuMTYyYTYuNjA1IDYuNjA1LjAgMCAxIDIuNDI4LS40NTdjLjg3LjAgMS42Ny4xMDkgMi40NS4yNC43OC4xMjkgMS40NDQuMjY1IDEuOTg1LjQxNVYxOC4xN3oiIGZpbGw9IiM1NDY4ZmYiLz48cGF0aCBkPSJNNi45NzIgNi42Nzd2MS42MjdjLS43MTItLjQ0Ni0xLjUyLS42Ny0yLjQyNS0uNjctLjU4NS4wLTEuMDQ1LjEzLTEuMzguMzkxYTEuMjQgMS4yNC4wIDAgMC0uNTAyIDEuMDNjMCAuNDI1LjE2NC43NjUuNDk0IDEuMDIuMzMuMjU2LjgzNS41MzIgMS41MTYuODMuNDQ3LjE5Mi43OTUuMzU2IDEuMDQ1LjQ5NS4yNS4xMzguNTM3LjMzMi44NjIuNTgyLjMyNC4yNS41NjMuNTQ4LjcxOC44OTQuMTU0LjM0NS4yMy43NDEuMjMgMS4xODguMC45NDctLjMzNCAxLjY5MS0xLjAwNCAyLjIzNC0uNjcuNTQyLTEuNTM3LjgxNC0yLjYwMS44MTQtMS4xOC4wLTIuMTYtLjIyOS0yLjkzNi0uNjg2di0xLjcwOGMuODQuNjI4IDEuODE0Ljk0MiAyLjkyLjk0Mi41ODUuMCAxLjA0OC0uMTM2IDEuMzg4LS40MDcuMzQtLjI3MS41MS0uNjQ2LjUxLTEuMTI1LjAtLjI4Ny0uMS0uNTUtLjMwMi0uNzktLjIwMy0uMjQtLjQyLS40Mi0uNjU1LS41NDItLjIzNC0uMTIzLS41ODUtLjI5LTEuMDUzLS41MDNhNjEuMjcgNjEuMjcuMCAwIDEtLjU4Mi0uMjcxIDEzLjY3IDEzLjY3LjAgMCAxLS41NS0uMjg3IDQuMjc1IDQuMjc1LjAgMCAxLS41NjctLjM1MSA2LjkyIDYuOTIuMCAwIDEtLjQ1NS0uNGMtLjE4LS4xNy0uMzEtLjM0LS4zOS0uNTEtLjA4LS4xNy0uMTU1LS4zNy0uMjI0LS41OThhMi41NTMgMi41NTMuMCAwIDEtLjEwNC0uNzQyYzAtLjkxNS4zMzMtMS42MzguOTk4LTIuMTcuNjY0LS41MzIgMS41MjMtLjc5OCAyLjU3Ni0uNzk4Ljk2OC4wIDEuNzkzLjE3IDIuNDczLjUxem03LjQ2OCA1LjY5NnYtLjI4N2MtLjAyMi0uNjA3LS4xODctMS4wODgtLjQ5NS0xLjQ0NC0uMzA5LS4zNTctLjc1LS41MzUtMS4zMjQtLjUzNS0uNTMyLjAtLjk5LjE5NC0xLjM3My41ODMtLjM4Mi4zODgtLjYyMi45NDktLjcxNyAxLjY4M2gzLjkwOXptMS4wMDUgMi43OTJ2MS40MDRjLS41OTYuMzQtMS4zODMuNTEtMi4zNjIuNTEtMS4yNTUuMC0yLjI1NS0uMzc3LTMtMS4xMzItLjc0NC0uNzU1LTEuMTE2LTEuNzQ0LTEuMTE2LTIuOTY4LjAtMS4yOTcuMzQtMi4zMTYgMS4wMjEtMy4wNTUuNjgtLjc0IDEuNTQ4LTEuMTEgMi42LTEuMTEgMS4wMzMuMCAxLjg1Mi4zMjMgMi40NTguOTY2LjYwNi42NDQuOTEgMS41NzIuOTEgMi43ODQuMC4zMy0uMDMzLjY3Ni0uMDk2IDEuMDM4aC01LjMxNGMuMTA3LjcwMi40MDUgMS4yMzkuODk0IDEuNjExLjQ5LjM3MiAxLjEwNi41NTggMS44NS41NTguODYyLjAgMS41OC0uMjAyIDIuMTU1LS42MDZ6bTYuNjA1LTEuNzdoLTEuMjEyYy0uNTk2LjAtMS4wNDUuMTE2LTEuMzQ5LjM1LS4zMDMuMjM0LS40NTQuNTMyLS40NTQuODk0LjAuMzcyLjExNy42NjQuMzUuODc3LjIzNS4yMTMuNTc1LjMyIDEuMDIyLjMyLjUxLjAuOTEyLS4xNDIgMS4yMDQtLjQyNC4yOTMtLjI4MS40NC0uNjUxLjQ0LTEuMTA4di0uOTF6bS00LjA2OC0yLjU1NFY5LjMyNWMuNjI3LS4zNjEgMS40NTctLjU0MiAyLjQ4OS0uNTQyIDIuMTE2LjAgMy4xNzUgMS4wMjYgMy4xNzUgMy4wOFYxN2gtMS41NDh2LS45NTdjLS40MTUuNjgtMS4xNDMgMS4wMi0yLjE4NiAxLjAyLS43NjYuMC0xLjM4LS4yMi0xLjg0My0uNjYxLS40NjItLjQ0Mi0uNjk0LTEuMDAzLS42OTQtMS42ODQuMC0uNzc2LjI5My0xLjM4Ljg3OC0xLjgxLjU4NS0uNDMxIDEuNDA0LS42NDcgMi40NTctLjY0N2gxLjM0VjExLjhjMC0uNTU0LS4xMzMtLjk3MS0uMzk5LTEuMjUzLS4yNjYtLjI4Mi0uNzA3LS40MjMtMS4zMjQtLjQyM2E0LjA3IDQuMDcuMCAwIDAtMi4zNDUuNzE4em05LjMzMy0xLjkzdjEuNDJjLjM5NC0xIDEuMTAxLTEuNSAyLjEyMy0xLjUuMTQ4LjAuMzEzLjAxNi40OTQuMDQ4djEuNTMxYTEuODg1IDEuODg1LjAgMCAwLS43NS0uMTQzYy0uNTQyLjAtLjk4OS4yNC0xLjM0LjcxOC0uMzUxLjQ3OS0uNTI3IDEuMDQ4LS41MjcgMS43MDdWMTdoLTEuNTYzVjguOTFoMS41NjN6bTUuMDEgNC4wODRjLjAyMi44Mi4yNzIgMS40OTIuNzUgMi4wMTkuNDc5LjUyNiAxLjE1Ljc5IDIuMDEuNzkuNjM5LjAgMS4yMzUtLjE3NiAxLjc4OC0uNTI3djEuNDA0Yy0uNTIxLjMxOS0xLjE4Ni40NzktMS45OTUuNDc5LTEuMjY1LjAtMi4yNzYtLjQtMy4wMzEtMS4xOTctLjc1NS0uNzk4LTEuMTMzLTEuNzkyLTEuMTMzLTIuOTg0LjAtMS4xNi4zOC0yLjE1MSAxLjE0LTIuOTc1Ljc2MS0uODI1IDEuNzktMS4yMzcgMy4wODgtMS4yMzcuNzAyLjAgMS4zNDYuMTQ5IDEuOTMuNDQ3djEuNDM2YTMuMjQyIDMuMjQyLjAgMCAwLTEuNzctLjQ5NWMtLjg0LjAtMS41MTMuMjY2LTIuMDE5Ljc5OC0uNTA1LjUzMi0uNzU4IDEuMjEzLS43NTggMi4wNDJ6TTQwLjI0IDUuNzJ2NC41NzljLjQ1OC0xIDEuMjkzLTEuNSAyLjUwNS0xLjUuNzg3LjAgMS40Mi4yNDUgMS44OTkuNzM0LjQ3OS40OS43MTggMS4xNy43MTggMi4wNDJWMTdoLTEuNTY0di01LjEwNmMwLS41NTMtLjE0LS45OC0uNDIyLTEuMjg0LS4yODItLjMwMy0uNjUyLS40NTUtMS4xMS0uNDU1LS41MzEuMC0xLjAwMi4yMDItMS40MTEuNjA2LS40MS40MDUtLjYxNSAxLjAyMi0uNjE1IDEuODUxVjE3aC0xLjU2M1Y1LjcyaDEuNTYzem0xNC45NjYgMTAuMDJjLjU5Ni4wIDEuMDk2LS4yNTMgMS41LS43NTguNDA0LS41MDYuNjA2LTEuMTU3LjYwNi0xLjk1NS4wLS45MTUtLjIwMi0xLjYyLS42MDYtMi4xMTQtLjQwNC0uNDk1LS45Mi0uNzQyLTEuNTQ4LS43NDItLjU1My4wLTEuMDUuMjI0LTEuNDkxLjY3LS40NDIuNDQ3LS42NjIgMS4xMzMtLjY2MiAyLjA1OC4wLjk1OC4yMTIgMS42Ny42MzggMi4xMzguNDI1LjQ2OS45NDYuNzAzIDEuNTYzLjcwM3pNNTMuMDA0IDUuNzJ2NC40MmMuNTc0LS44OTQgMS4zODgtMS4zNDEgMi40NC0xLjM0MSAxLjAyMi4wIDEuODU3LjM4MyAyLjUwNiAxLjE0OS42NDkuNzY2Ljk3MyAxLjc4MS45NzMgMy4wNDcuMCAxLjEzOC0uMzA5IDIuMTA5LS45MjUgMi45MTItLjYxNy44MDMtMS40NjMgMS4yMDUtMi41MzcgMS4yMDUtMS4wNzUuMC0xLjg5NC0uNDQ3LTIuNDU3LTEuMzRWMTdoLTEuNThWNS43MmgxLjU4em05LjkwOCAxMS4xMDQtMy4yMjMtNy45MTNoMS43MzlsMS4wMDUgMi42MzIgMS4yNiAzLjQxNWMuMDk2LS4zMi40OC0xLjQ1OCAxLjE1LTMuNDE1bC45MDktMi42MzJoMS42NmwtMi45MiA3Ljg2NmMtLjc3NyAyLjA3NC0xLjk2MyAzLjExLTMuNTU5IDMuMTFhMi45MiAyLjkyLjAgMCAxLS43MzQtLjA3OXYtMS4zNGMuMTcuMDQyLjM1MS4wNjQuNTQzLjA2NCAxLjAzMi4wIDEuNzU1LS41NyAyLjE3LTEuNzA4eiIgZmlsbD0iIzVkNjQ5NCIvPjxwYXRoIGQ9Ik04OS42MzIgNS45Njd2LS43NzJhLjk3OC45NzguMCAwIDAtLjk3OC0uOTc3aC0yLjI4YS45NzguOTc4LjAgMCAwLS45NzguOTc3di43OTNjMCAuMDg4LjA4Mi4xNS4xNzEuMTNhNy4xMjcgNy4xMjcuMCAwIDEgMS45ODQtLjI4Yy42NS4wIDEuMjk1LjA4OCAxLjkxNy4yNTkuMDgyLjAyLjE2NC0uMDQuMTY0LS4xM20tNi4yNDggMS4wMS0uMzktLjM4OWEuOTc3Ljk3Ny4wIDAgMC0xLjM4Mi4wbC0uNDY1LjQ2NWEuOTczLjk3My4wIDAgMCAwIDEuMzhsLjM4My4zODNjLjA2Mi4wNjEuMTUuMDQ3LjIwNS0uMDE0LjIyNi0uMzA3LjQ3Mi0uNjAxLjc0Ni0uODc0LjI4MS0uMjguNTY4LS41MjYuODgzLS43NTEuMDY4LS4wNDIuMDc1LS4xMzcuMDItLjJtNC4xNiAyLjQ1M3YzLjM0MWMwIC4wOTYuMTA0LjE2NS4xOTIuMTE3bDIuOTctMS41MzdjLjA2OC0uMDM0LjA4OS0uMTE3LjA1NS0uMTg0YTMuNjk1IDMuNjk1LjAgMCAwLTMuMDgtMS44NjZjLS4wNjguMC0uMTM2LjA1NC0uMTM2LjEzbTAgOC4wNDhhNC40ODkgNC40ODkuMCAwIDEtNC40OS00LjQ4MiA0LjQ4OCA0LjQ4OC4wIDAgMSA0LjQ5LTQuNDgyIDQuNDg4IDQuNDg4LjAgMCAxIDQuNDg5IDQuNDgyIDQuNDg0IDQuNDg0LjAgMCAxLTQuNDkgNC40ODJtMC0xMC44NWE2LjM2MyA2LjM2My4wIDEgMCAwIDEyLjcyOSA2LjM3IDYuMzcuMCAwIDAgNi4zNzItNi4zNjggNi4zNTggNi4zNTguMCAwIDAtNi4zNzEtNi4zNiIgZmlsbD0iI2ZmZiIvPjwvZz48L3N2Zz4=);background-repeat:no-repeat;background-position:50%;background-size:100%;overflow:hidden;text-indent:-9000px;padding:0!important;width:100%;height:100%;display:block}a.algolia-docsearch-suggestion{text-decoration:none!important}.algolia-docsearch-suggestion--category-header{background:#0594cb;padding-left:.25rem!important;color:#fff!important;border-radius:3px}.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:rgba(27,31,35,.05);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%}
--- /dev/null
- {"Target":"output/css/app.min.e14b2e3b63f7e91f44cc63646938762f24be62093e9f883960605b30789b7337.css","MediaType":"text/css","Data":{"Integrity":"sha256-4UsuO2P36R9EzGNkaTh2LyS+Ygk+n4g5YGBbMHibczc="}}
++{"Target":"output/css/app.min.7b23725c013f7650fd9e3f14b7f6b0bc02f71e14088ecd41bbe57661163fbcbb.css","MediaType":"text/css","Data":{"Integrity":"sha256-eyNyXAE/dlD9nj8Ut/awvAL3HhQIjs1Bu+V2YRY/vLs="}}
--- /dev/null
- .searchbox{display:inline-block;position:relative;width:200px;height:32px!important;white-space:nowrap;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;box-sizing:border-box;-webkit-transition:box-shadow .4s ease,background .4s ease;transition:box-shadow .4s ease,background .4s ease;border:0;border-radius:16px;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{box-shadow:inset 0 0 0 1px #b3b3b3}.searchbox__input:active,.searchbox__input:focus{outline:0;box-shadow:inset 0 0 0 1px #aaa;background:#fff}.searchbox__input::-webkit-input-placeholder{color:#aaa}.searchbox__input::-moz-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:rgba(69,142,225,0);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:none;cursor:pointer;padding:0;font-size:inherit;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;fill:rgba(0,0,0,.5)}.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:transparent;border:none;z-index:1;max-width:600px;min-width:500px;box-shadow:0 1px 0 0 rgba(0,0,0,.2),0 2px 3px 0 rgba(0,0,0,.1)}.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:rgba(69,142,225,.05)}.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 *{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:rgba(143,187,237,.1);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;box-shadow:inset 0 -2px 0 0 rgba(69,142,225,.8);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:none}.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,<svg width="10" height="10" viewBox="0 0 20 38" xmlns="http://www.w3.org/2000/svg"><path d="M1.49 4.31l14 16.126.002-2.624-14 16.074-1.314 1.51 3.017 2.626 1.313-1.508 14-16.075 1.142-1.313-1.14-1.313-14-16.125L3.2.18.18 2.8l1.31 1.51z" fill-rule="evenodd" fill="%231D3657" /></svg>');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;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,<svg viewBox='0 0 130 18' xmlns='http://www.w3.org/2000/svg'><defs><linearGradient x1='-36.868%' y1='134.936%' x2='129.432%' y2='-27.7%' id='a'><stop stop-color='%2300AEFF' offset='0%'/><stop stop-color='%233369E7' offset='100%'/></linearGradient></defs><g fill='none' fill-rule='evenodd'><path d='M59.399.022h13.299a2.372 2.372 0 0 1 2.377 2.364V15.62a2.372 2.372 0 0 1-2.377 2.364H59.399a2.372 2.372 0 0 1-2.377-2.364V2.381A2.368 2.368 0 0 1 59.399.022z' fill='url(%23a)'/><path d='M66.257 4.56c-2.815 0-5.1 2.272-5.1 5.078 0 2.806 2.284 5.072 5.1 5.072 2.815 0 5.1-2.272 5.1-5.078 0-2.806-2.279-5.072-5.1-5.072zm0 8.652c-1.983 0-3.593-1.602-3.593-3.574 0-1.972 1.61-3.574 3.593-3.574 1.983 0 3.593 1.602 3.593 3.574a3.582 3.582 0 0 1-3.593 3.574zm0-6.418v2.664c0 .076.082.131.153.093l2.377-1.226c.055-.027.071-.093.044-.147a2.96 2.96 0 0 0-2.465-1.487c-.055 0-.11.044-.11.104l.001-.001zm-3.33-1.956l-.312-.311a.783.783 0 0 0-1.106 0l-.372.37a.773.773 0 0 0 0 1.101l.307.305c.049.049.121.038.164-.011.181-.245.378-.479.597-.697.225-.223.455-.42.707-.599.055-.033.06-.109.016-.158h-.001zm5.001-.806v-.616a.781.781 0 0 0-.783-.779h-1.824a.78.78 0 0 0-.783.779v.632c0 .071.066.12.137.104a5.736 5.736 0 0 1 1.588-.223c.52 0 1.035.071 1.534.207a.106.106 0 0 0 .131-.104z' fill='%23FFF'/><path d='M102.162 13.762c0 1.455-.372 2.517-1.123 3.193-.75.676-1.895 1.013-3.44 1.013-.564 0-1.736-.109-2.673-.316l.345-1.689c.783.163 1.819.207 2.361.207.86 0 1.473-.174 1.84-.523.367-.349.548-.866.548-1.553v-.349a6.374 6.374 0 0 1-.838.316 4.151 4.151 0 0 1-1.194.158 4.515 4.515 0 0 1-1.616-.278 3.385 3.385 0 0 1-1.254-.817 3.744 3.744 0 0 1-.811-1.351c-.192-.539-.29-1.504-.29-2.212 0-.665.104-1.498.307-2.054a3.925 3.925 0 0 1 .904-1.433 4.124 4.124 0 0 1 1.441-.926 5.31 5.31 0 0 1 1.945-.365c.696 0 1.337.087 1.961.191a15.86 15.86 0 0 1 1.588.332v8.456h-.001zm-5.954-4.206c0 .893.197 1.885.592 2.299.394.414.904.621 1.528.621.34 0 .663-.049.964-.142a2.75 2.75 0 0 0 .734-.332v-5.29a8.531 8.531 0 0 0-1.413-.18c-.778-.022-1.369.294-1.786.801-.411.507-.619 1.395-.619 2.223zm16.12 0c0 .719-.104 1.264-.318 1.858a4.389 4.389 0 0 1-.904 1.52c-.389.42-.854.746-1.402.975-.548.229-1.391.36-1.813.36-.422-.005-1.26-.125-1.802-.36a4.088 4.088 0 0 1-1.397-.975 4.486 4.486 0 0 1-.909-1.52 5.037 5.037 0 0 1-.329-1.858c0-.719.099-1.411.318-1.999.219-.588.526-1.09.92-1.509.394-.42.865-.741 1.402-.97a4.547 4.547 0 0 1 1.786-.338 4.69 4.69 0 0 1 1.791.338c.548.229 1.019.55 1.402.97.389.42.69.921.909 1.509.23.588.345 1.28.345 1.999h.001zm-2.191.005c0-.921-.203-1.689-.597-2.223-.394-.539-.948-.806-1.654-.806-.707 0-1.26.267-1.654.806-.394.539-.586 1.302-.586 2.223 0 .932.197 1.558.592 2.098.394.545.948.812 1.654.812.707 0 1.26-.272 1.654-.812.394-.545.592-1.166.592-2.098h-.001zm6.962 4.707c-3.511.016-3.511-2.822-3.511-3.274L113.583.926l2.142-.338v10.003c0 .256 0 1.88 1.375 1.885v1.792h-.001zm3.774 0h-2.153V5.072l2.153-.338v9.534zm-1.079-10.542c.718 0 1.304-.578 1.304-1.291 0-.714-.581-1.291-1.304-1.291-.723 0-1.304.578-1.304 1.291 0 .714.586 1.291 1.304 1.291zm6.431 1.013c.707 0 1.304.087 1.786.262.482.174.871.42 1.156.73.285.311.488.735.608 1.182.126.447.186.937.186 1.476v5.481a25.24 25.24 0 0 1-1.495.251c-.668.098-1.419.147-2.251.147a6.829 6.829 0 0 1-1.517-.158 3.213 3.213 0 0 1-1.178-.507 2.455 2.455 0 0 1-.761-.904c-.181-.37-.274-.893-.274-1.438 0-.523.104-.855.307-1.215.208-.36.487-.654.838-.883a3.609 3.609 0 0 1 1.227-.49 7.073 7.073 0 0 1 2.202-.103c.263.027.537.076.833.147v-.349c0-.245-.027-.479-.088-.697a1.486 1.486 0 0 0-.307-.583c-.148-.169-.34-.3-.581-.392a2.536 2.536 0 0 0-.915-.163c-.493 0-.942.06-1.353.131-.411.071-.75.153-1.008.245l-.257-1.749c.268-.093.668-.185 1.183-.278a9.335 9.335 0 0 1 1.66-.142l-.001-.001zm.181 7.731c.657 0 1.145-.038 1.484-.104v-2.168a5.097 5.097 0 0 0-1.978-.104c-.241.033-.46.098-.652.191a1.167 1.167 0 0 0-.466.392c-.121.169-.175.267-.175.523 0 .501.175.79.493.981.323.196.75.289 1.293.289h.001zM84.109 4.794c.707 0 1.304.087 1.786.262.482.174.871.42 1.156.73.29.316.487.735.608 1.182.126.447.186.937.186 1.476v5.481a25.24 25.24 0 0 1-1.495.251c-.668.098-1.419.147-2.251.147a6.829 6.829 0 0 1-1.517-.158 3.213 3.213 0 0 1-1.178-.507 2.455 2.455 0 0 1-.761-.904c-.181-.37-.274-.893-.274-1.438 0-.523.104-.855.307-1.215.208-.36.487-.654.838-.883a3.609 3.609 0 0 1 1.227-.49 7.073 7.073 0 0 1 2.202-.103c.257.027.537.076.833.147v-.349c0-.245-.027-.479-.088-.697a1.486 1.486 0 0 0-.307-.583c-.148-.169-.34-.3-.581-.392a2.536 2.536 0 0 0-.915-.163c-.493 0-.942.06-1.353.131-.411.071-.75.153-1.008.245l-.257-1.749c.268-.093.668-.185 1.183-.278a8.89 8.89 0 0 1 1.66-.142l-.001-.001zm.186 7.736c.657 0 1.145-.038 1.484-.104v-2.168a5.097 5.097 0 0 0-1.978-.104c-.241.033-.46.098-.652.191a1.167 1.167 0 0 0-.466.392c-.121.169-.175.267-.175.523 0 .501.175.79.493.981.318.191.75.289 1.293.289h.001zm8.682 1.738c-3.511.016-3.511-2.822-3.511-3.274L89.461.926l2.142-.338v10.003c0 .256 0 1.88 1.375 1.885v1.792h-.001z' fill='%23182359'/><path d='M5.027 11.025c0 .698-.252 1.246-.757 1.644-.505.397-1.201.596-2.089.596-.888 0-1.615-.138-2.181-.414v-1.214c.358.168.739.301 1.141.397.403.097.778.145 1.125.145.508 0 .884-.097 1.125-.29a.945.945 0 0 0 .363-.779.978.978 0 0 0-.333-.747c-.222-.204-.68-.446-1.375-.725-.716-.29-1.221-.621-1.515-.994-.294-.372-.44-.82-.44-1.343 0-.655.233-1.171.698-1.547.466-.376 1.09-.564 1.875-.564.752 0 1.5.165 2.245.494l-.408 1.047c-.698-.294-1.321-.44-1.869-.44-.415 0-.73.09-.945.271a.89.89 0 0 0-.322.717c0 .204.043.379.129.524.086.145.227.282.424.411.197.129.551.299 1.063.51.577.24.999.464 1.268.671.269.208.466.442.591.704.125.261.188.569.188.924l-.001.002zm3.98 2.24c-.924 0-1.646-.269-2.167-.808-.521-.539-.782-1.281-.782-2.226 0-.97.242-1.733.725-2.288.483-.555 1.148-.833 1.993-.833.784 0 1.404.238 1.858.714.455.476.682 1.132.682 1.966v.682H7.357c.018.577.174 1.02.467 1.329.294.31.707.465 1.241.465.351 0 .678-.033.98-.099a5.1 5.1 0 0 0 .975-.33v1.026a3.865 3.865 0 0 1-.935.312 5.723 5.723 0 0 1-1.08.091l.002-.001zm-.231-5.199c-.401 0-.722.127-.964.381s-.386.625-.432 1.112h2.696c-.007-.491-.125-.862-.354-1.115-.229-.252-.544-.379-.945-.379l-.001.001zm7.692 5.092l-.252-.827h-.043c-.286.362-.575.608-.865.739-.29.131-.662.196-1.117.196-.584 0-1.039-.158-1.367-.473-.328-.315-.491-.761-.491-1.337 0-.612.227-1.074.682-1.386.455-.312 1.148-.482 2.079-.51l1.026-.032v-.317c0-.38-.089-.663-.266-.851-.177-.188-.452-.282-.824-.282-.304 0-.596.045-.876.134a6.68 6.68 0 0 0-.806.317l-.408-.902a4.414 4.414 0 0 1 1.058-.384 4.856 4.856 0 0 1 1.085-.132c.756 0 1.326.165 1.711.494.385.329.577.847.577 1.552v4.002h-.902l-.001-.001zm-1.88-.859c.458 0 .826-.128 1.104-.384.278-.256.416-.615.416-1.077v-.516l-.763.032c-.594.021-1.027.121-1.297.298s-.406.448-.406.814c0 .265.079.47.236.615.158.145.394.218.709.218h.001zm7.557-5.189c.254 0 .464.018.628.054l-.124 1.176a2.383 2.383 0 0 0-.559-.064c-.505 0-.914.165-1.227.494-.313.329-.47.757-.47 1.284v3.105h-1.262V7.218h.988l.167 1.047h.064c.197-.354.454-.636.771-.843a1.83 1.83 0 0 1 1.023-.312h.001zm4.125 6.155c-.899 0-1.582-.262-2.049-.787-.467-.525-.701-1.277-.701-2.259 0-.999.244-1.767.733-2.304.489-.537 1.195-.806 2.119-.806.627 0 1.191.116 1.692.349l-.381 1.015c-.534-.208-.974-.312-1.321-.312-1.028 0-1.542.682-1.542 2.046 0 .666.128 1.166.384 1.501.256.335.631.502 1.125.502a3.23 3.23 0 0 0 1.595-.419v1.101a2.53 2.53 0 0 1-.722.285 4.356 4.356 0 0 1-.932.086v.002zm8.277-.107h-1.268V9.506c0-.458-.092-.8-.277-1.026-.184-.226-.477-.338-.878-.338-.53 0-.919.158-1.168.475-.249.317-.373.848-.373 1.593v2.949h-1.262V4.801h1.262v2.122c0 .34-.021.704-.064 1.09h.081a1.76 1.76 0 0 1 .717-.666c.306-.158.663-.236 1.072-.236 1.439 0 2.159.725 2.159 2.175v3.873l-.001-.001zm7.649-6.048c.741 0 1.319.269 1.732.806.414.537.62 1.291.62 2.261 0 .974-.209 1.732-.628 2.275-.419.542-1.001.814-1.746.814-.752 0-1.336-.27-1.751-.811h-.086l-.231.704h-.945V4.801h1.262v1.987l-.021.655-.032.553h.054c.401-.591.992-.886 1.772-.886zm-.328 1.031c-.508 0-.875.149-1.098.448-.224.299-.339.799-.346 1.501v.086c0 .723.115 1.247.344 1.571.229.324.603.486 1.123.486.448 0 .787-.177 1.018-.532.231-.354.346-.867.346-1.536 0-1.35-.462-2.025-1.386-2.025l-.001.001zm3.244-.924h1.375l1.209 3.368c.183.48.304.931.365 1.354h.043c.032-.197.091-.436.177-.717.086-.281.541-1.616 1.364-4.004h1.364l-2.541 6.73c-.462 1.235-1.232 1.853-2.31 1.853-.279 0-.551-.03-.816-.091v-.999c.19.043.406.064.65.064.609 0 1.037-.353 1.284-1.058l.22-.559-2.385-5.941h.001z' fill='%231D3657'/></g></svg>");background-repeat:no-repeat;background-position:50%;background-size:100%;overflow:hidden;text-indent:-9000px;padding:0!important;width:100%;height:100%;display:block}
++.searchbox{display:inline-block;position:relative;width:200px;height:32px!important;white-space:nowrap;box-sizing:border-box;visibility:visible!important}.searchbox .algolia-autocomplete{display:block;width:100%;height:100%}.searchbox__wrapper{width:100%;height:100%;z-index:999;position:relative}.searchbox__input{display:inline-block;box-sizing:border-box;transition:box-shadow .4s ease,background .4s ease;border:0;border-radius:16px;box-shadow:inset 0 0 0 1px #ccc;background:#fff!important;padding:0 26px 0 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{box-shadow:inset 0 0 0 1px #b3b3b3}.searchbox__input:active,.searchbox__input:focus{outline:0;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:rgba(69,142,225,0);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:none;cursor:pointer;padding:0;font-size:inherit;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;fill:rgba(0,0,0,.5)}.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:sbx-reset-in;animation-name:sbx-reset-in;-webkit-animation-duration:.15s;animation-duration:.15s}@-webkit-keyframes sbx-reset-in{0%{-webkit-transform:translate3d(-20%,0,0);transform:translate3d(-20%,0,0);opacity:0}to{-webkit-transform:none;transform:none;opacity:1}}@keyframes sbx-reset-in{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:transparent;border:none;z-index:999;max-width:600px;min-width:500px;box-shadow:0 1px 0 0 rgba(0,0,0,.2),0 2px 3px 0 rgba(0,0,0,.1)}.algolia-autocomplete .ds-dropdown-menu:before{display:block;position:absolute;content:"";width:14px;height:14px;background:#fff;z-index:1000;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:1000;margin-top:8px}.algolia-autocomplete .ds-dropdown-menu .ds-suggestions a:hover{text-decoration:none}.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:rgba(69,142,225,.05)}.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 *{box-sizing:border-box}.algolia-autocomplete .algolia-docsearch-suggestion{display:block;position:relative;padding:0 8px;background:#fff;color:#02060c;overflow:hidden}.algolia-autocomplete .algolia-docsearch-suggestion--highlight{color:#174d8c;background:rgba(143,187,237,.1);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,.algolia-autocomplete .algolia-docsearch-suggestion--text .algolia-docsearch-suggestion--highlight{padding:0 0 1px;background:inherit;box-shadow:inset 0 -2px 0 0 rgba(69,142,225,.8);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%;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-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:none}.algolia-autocomplete .algolia-docsearch-suggestion.algolia-docsearch-suggestion__main .algolia-docsearch-suggestion--category-header,.algolia-autocomplete .algolia-docsearch-suggestion.algolia-docsearch-suggestion__secondary{display:block}@media (min-width:768px){.algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--subcategory-column{display:block}}@media (max-width:768px){.algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--subcategory-column{display:inline-block;width:auto;float:left;padding:0;color:#02060c;font-size:.9em;font-weight:700;text-align:left;opacity:.5}.algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--subcategory-column:before{display:none}.algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--subcategory-column:after{content:"|"}.algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--content{display:inline-block;width:auto;text-align:left;float:left;padding:0}.algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--content:before{display:none}}.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,<svg width="10" height="10" viewBox="0 0 20 38" xmlns="http://www.w3.org/2000/svg"><path d="M1.49 4.31l14 16.126.002-2.624-14 16.074-1.314 1.51 3.017 2.626 1.313-1.508 14-16.075 1.142-1.313-1.14-1.313-14-16.125L3.2.18.18 2.8l1.31 1.51z" fill-rule="evenodd" fill="%231D3657" /></svg>');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-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;box-shadow:none}.algolia-autocomplete .algolia-docsearch-footer{width:134px;height:20px;z-index:2000;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;charset=utf-8,%3Csvg width='168' height='24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M78.988.938h16.594a2.968 2.968 0 0 1 2.966 2.966V20.5a2.967 2.967 0 0 1-2.966 2.964H78.988a2.967 2.967 0 0 1-2.966-2.964V3.897A2.961 2.961 0 0 1 78.988.938zm41.937 17.866c-4.386.02-4.386-3.54-4.386-4.106l-.007-13.336 2.675-.424v13.254c0 .322 0 2.358 1.718 2.364v2.248zm-10.846-2.18c.821 0 1.43-.047 1.855-.129v-2.719a6.334 6.334 0 0 0-1.574-.199 5.7 5.7 0 0 0-.897.069 2.699 2.699 0 0 0-.814.24c-.24.116-.439.28-.582.491-.15.212-.219.335-.219.656 0 .628.219.991.616 1.23s.938.362 1.615.362zm-.233-9.7c.883 0 1.629.109 2.231.328.602.218 1.088.525 1.444.915.363.396.609.922.76 1.483.157.56.232 1.175.232 1.85v6.874a32.5 32.5 0 0 1-1.868.314c-.834.123-1.772.185-2.813.185-.69 0-1.327-.069-1.895-.198a4.001 4.001 0 0 1-1.471-.636 3.085 3.085 0 0 1-.951-1.134c-.226-.465-.343-1.12-.343-1.803 0-.656.13-1.073.384-1.525a3.24 3.24 0 0 1 1.047-1.106c.445-.287.95-.492 1.532-.615a8.8 8.8 0 0 1 1.82-.185 8.404 8.404 0 0 1 1.972.24v-.438c0-.307-.035-.6-.11-.874a1.88 1.88 0 0 0-.384-.73 1.784 1.784 0 0 0-.724-.493 3.164 3.164 0 0 0-1.143-.205c-.616 0-1.177.075-1.69.164a7.735 7.735 0 0 0-1.26.307l-.321-2.192c.335-.117.834-.233 1.478-.349a10.98 10.98 0 0 1 2.073-.178zm52.842 9.626c.822 0 1.43-.048 1.854-.13V13.7a6.347 6.347 0 0 0-1.574-.199c-.294 0-.595.021-.896.069a2.7 2.7 0 0 0-.814.24 1.46 1.46 0 0 0-.582.491c-.15.212-.218.335-.218.656 0 .628.218.991.615 1.23.404.245.938.362 1.615.362zm-.226-9.694c.883 0 1.629.108 2.231.327.602.219 1.088.526 1.444.915.355.39.609.923.759 1.483a6.8 6.8 0 0 1 .233 1.852v6.873c-.41.088-1.034.19-1.868.314-.834.123-1.772.184-2.813.184-.69 0-1.327-.068-1.895-.198a4.001 4.001 0 0 1-1.471-.635 3.085 3.085 0 0 1-.951-1.134c-.226-.465-.343-1.12-.343-1.804 0-.656.13-1.073.384-1.524.26-.45.608-.82 1.047-1.107.445-.286.95-.491 1.532-.614a8.803 8.803 0 0 1 2.751-.13c.329.034.671.096 1.04.185v-.437a3.3 3.3 0 0 0-.109-.875 1.873 1.873 0 0 0-.384-.731 1.784 1.784 0 0 0-.724-.492 3.165 3.165 0 0 0-1.143-.205c-.616 0-1.177.075-1.69.164a7.75 7.75 0 0 0-1.26.307l-.321-2.193c.335-.116.834-.232 1.478-.348a11.633 11.633 0 0 1 2.073-.177zm-8.034-1.271a1.626 1.626 0 0 1-1.628-1.62c0-.895.725-1.62 1.628-1.62.904 0 1.63.725 1.63 1.62 0 .895-.733 1.62-1.63 1.62zm1.348 13.22h-2.689V7.27l2.69-.423v11.956zm-4.714 0c-4.386.02-4.386-3.54-4.386-4.107l-.008-13.336 2.676-.424v13.254c0 .322 0 2.358 1.718 2.364v2.248zm-8.698-5.903c0-1.156-.253-2.119-.746-2.788-.493-.677-1.183-1.01-2.067-1.01-.882 0-1.574.333-2.065 1.01-.493.676-.733 1.632-.733 2.788 0 1.168.246 1.953.74 2.63.492.683 1.183 1.018 2.066 1.018.882 0 1.574-.342 2.067-1.019.492-.683.738-1.46.738-2.63zm2.737-.007c0 .902-.13 1.584-.397 2.33a5.52 5.52 0 0 1-1.128 1.906 4.986 4.986 0 0 1-1.752 1.223c-.685.286-1.739.45-2.265.45-.528-.006-1.574-.157-2.252-.45a5.096 5.096 0 0 1-1.744-1.223c-.487-.527-.863-1.162-1.137-1.906a6.345 6.345 0 0 1-.41-2.33c0-.902.123-1.77.397-2.508a5.554 5.554 0 0 1 1.15-1.892 5.133 5.133 0 0 1 1.75-1.216c.679-.287 1.425-.423 2.232-.423.808 0 1.553.142 2.237.423a4.88 4.88 0 0 1 1.753 1.216 5.644 5.644 0 0 1 1.135 1.892c.287.738.431 1.606.431 2.508zm-20.138 0c0 1.12.246 2.363.738 2.882.493.52 1.13.78 1.91.78.424 0 .828-.062 1.204-.178.377-.116.677-.253.917-.417V9.33a10.476 10.476 0 0 0-1.766-.226c-.971-.028-1.71.37-2.23 1.004-.513.636-.773 1.75-.773 2.788zm7.438 5.274c0 1.824-.466 3.156-1.404 4.004-.936.846-2.367 1.27-4.296 1.27-.705 0-2.17-.137-3.34-.396l.431-2.118c.98.205 2.272.26 2.95.26 1.074 0 1.84-.219 2.299-.656.459-.437.684-1.086.684-1.948v-.437a8.07 8.07 0 0 1-1.047.397c-.43.13-.93.198-1.492.198-.739 0-1.41-.116-2.018-.349a4.206 4.206 0 0 1-1.567-1.025c-.431-.45-.774-1.017-1.013-1.694-.24-.677-.363-1.885-.363-2.773 0-.834.13-1.88.384-2.577.26-.696.629-1.298 1.129-1.796.493-.498 1.095-.881 1.8-1.162a6.605 6.605 0 0 1 2.428-.457c.87 0 1.67.109 2.45.24.78.129 1.444.265 1.985.415V18.17z' fill='%235468FF'/%3E%3Cpath d='M6.972 6.677v1.627c-.712-.446-1.52-.67-2.425-.67-.585 0-1.045.13-1.38.391a1.24 1.24 0 0 0-.502 1.03c0 .425.164.765.494 1.02.33.256.835.532 1.516.83.447.192.795.356 1.045.495.25.138.537.332.862.582.324.25.563.548.718.894.154.345.23.741.23 1.188 0 .947-.334 1.691-1.004 2.234-.67.542-1.537.814-2.601.814-1.18 0-2.16-.229-2.936-.686v-1.708c.84.628 1.814.942 2.92.942.585 0 1.048-.136 1.388-.407.34-.271.51-.646.51-1.125 0-.287-.1-.55-.302-.79-.203-.24-.42-.42-.655-.542-.234-.123-.585-.29-1.053-.503a61.27 61.27 0 0 1-.582-.271 13.67 13.67 0 0 1-.55-.287 4.275 4.275 0 0 1-.567-.351 6.92 6.92 0 0 1-.455-.4c-.18-.17-.31-.34-.39-.51-.08-.17-.155-.37-.224-.598a2.553 2.553 0 0 1-.104-.742c0-.915.333-1.638.998-2.17.664-.532 1.523-.798 2.576-.798.968 0 1.793.17 2.473.51zm7.468 5.696v-.287c-.022-.607-.187-1.088-.495-1.444-.309-.357-.75-.535-1.324-.535-.532 0-.99.194-1.373.583-.382.388-.622.949-.717 1.683h3.909zm1.005 2.792v1.404c-.596.34-1.383.51-2.362.51-1.255 0-2.255-.377-3-1.132-.744-.755-1.116-1.744-1.116-2.968 0-1.297.34-2.316 1.021-3.055.68-.74 1.548-1.11 2.6-1.11 1.033 0 1.852.323 2.458.966.606.644.91 1.572.91 2.784 0 .33-.033.676-.096 1.038h-5.314c.107.702.405 1.239.894 1.611.49.372 1.106.558 1.85.558.862 0 1.58-.202 2.155-.606zm6.605-1.77h-1.212c-.596 0-1.045.116-1.349.35-.303.234-.454.532-.454.894 0 .372.117.664.35.877.235.213.575.32 1.022.32.51 0 .912-.142 1.204-.424.293-.281.44-.651.44-1.108v-.91zm-4.068-2.554V9.325c.627-.361 1.457-.542 2.489-.542 2.116 0 3.175 1.026 3.175 3.08V17h-1.548v-.957c-.415.68-1.143 1.02-2.186 1.02-.766 0-1.38-.22-1.843-.661-.462-.442-.694-1.003-.694-1.684 0-.776.293-1.38.878-1.81.585-.431 1.404-.647 2.457-.647h1.34V11.8c0-.554-.133-.971-.399-1.253-.266-.282-.707-.423-1.324-.423a4.07 4.07 0 0 0-2.345.718zm9.333-1.93v1.42c.394-1 1.101-1.5 2.123-1.5.148 0 .313.016.494.048v1.531a1.885 1.885 0 0 0-.75-.143c-.542 0-.989.24-1.34.718-.351.479-.527 1.048-.527 1.707V17h-1.563V8.91h1.563zm5.01 4.084c.022.82.272 1.492.75 2.019.479.526 1.15.79 2.01.79.639 0 1.235-.176 1.788-.527v1.404c-.521.319-1.186.479-1.995.479-1.265 0-2.276-.4-3.031-1.197-.755-.798-1.133-1.792-1.133-2.984 0-1.16.38-2.151 1.14-2.975.761-.825 1.79-1.237 3.088-1.237.702 0 1.346.149 1.93.447v1.436a3.242 3.242 0 0 0-1.77-.495c-.84 0-1.513.266-2.019.798-.505.532-.758 1.213-.758 2.042zM40.24 5.72v4.579c.458-1 1.293-1.5 2.505-1.5.787 0 1.42.245 1.899.734.479.49.718 1.17.718 2.042V17h-1.564v-5.106c0-.553-.14-.98-.422-1.284-.282-.303-.652-.455-1.11-.455-.531 0-1.002.202-1.411.606-.41.405-.615 1.022-.615 1.851V17h-1.563V5.72h1.563zm14.966 10.02c.596 0 1.096-.253 1.5-.758.404-.506.606-1.157.606-1.955 0-.915-.202-1.62-.606-2.114-.404-.495-.92-.742-1.548-.742-.553 0-1.05.224-1.491.67-.442.447-.662 1.133-.662 2.058 0 .958.212 1.67.638 2.138.425.469.946.703 1.563.703zM53.004 5.72v4.42c.574-.894 1.388-1.341 2.44-1.341 1.022 0 1.857.383 2.506 1.149.649.766.973 1.781.973 3.047 0 1.138-.309 2.109-.925 2.912-.617.803-1.463 1.205-2.537 1.205-1.075 0-1.894-.447-2.457-1.34V17h-1.58V5.72h1.58zm9.908 11.104l-3.223-7.913h1.739l1.005 2.632 1.26 3.415c.096-.32.48-1.458 1.15-3.415l.909-2.632h1.66l-2.92 7.866c-.777 2.074-1.963 3.11-3.559 3.11a2.92 2.92 0 0 1-.734-.079v-1.34c.17.042.351.064.543.064 1.032 0 1.755-.57 2.17-1.708z' fill='%235D6494'/%3E%3Cpath d='M89.632 5.967v-.772a.978.978 0 0 0-.978-.977h-2.28a.978.978 0 0 0-.978.977v.793c0 .088.082.15.171.13a7.127 7.127 0 0 1 1.984-.28c.65 0 1.295.088 1.917.259.082.02.164-.04.164-.13m-6.248 1.01l-.39-.389a.977.977 0 0 0-1.382 0l-.465.465a.973.973 0 0 0 0 1.38l.383.383c.062.061.15.047.205-.014.226-.307.472-.601.746-.874.281-.28.568-.526.883-.751.068-.042.075-.137.02-.2m4.16 2.453v3.341c0 .096.104.165.192.117l2.97-1.537c.068-.034.089-.117.055-.184a3.695 3.695 0 0 0-3.08-1.866c-.068 0-.136.054-.136.13m0 8.048a4.489 4.489 0 0 1-4.49-4.482 4.488 4.488 0 0 1 4.49-4.482 4.488 4.488 0 0 1 4.489 4.482 4.484 4.484 0 0 1-4.49 4.482m0-10.85a6.363 6.363 0 1 0 0 12.729 6.37 6.37 0 0 0 6.372-6.368 6.358 6.358 0 0 0-6.371-6.36' fill='%23FFF'/%3E%3C/g%3E%3C/svg%3E");background-repeat:no-repeat;background-position:50%;background-size:100%;overflow:hidden;text-indent:-9000px;padding:0!important;width:100%;height:100%;display:block}
+/*# sourceMappingURL=docsearch.min.css.map */
++a.algolia-docsearch-suggestion {
++ text-decoration: none !important;
++}
++.algolia-docsearch-suggestion--category-header {
++ background: #0594cb;
++ padding-left: .25rem !important;
++ color: white !important;
++ border-radius: 3px;
++}
--- /dev/null
- .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}
+/* muli-200normal - latin */
+@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'); /* Modern Browsers */
+}
+/* muli-200italic - latin */
+@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'); /* Modern Browsers */
+}
+/* muli-300normal - latin */
+@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'); /* Modern Browsers */
+}
+/* muli-300italic - latin */
+@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'); /* Modern Browsers */
+}
+/* muli-400normal - latin */
+@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'); /* Modern Browsers */
+}
+/* muli-400italic - latin */
+@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'); /* Modern Browsers */
+}
+/* muli-600normal - latin */
+@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'); /* Modern Browsers */
+}
+/* muli-600italic - latin */
+@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'); /* Modern Browsers */
+}
+/* muli-700normal - latin */
+@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'); /* Modern Browsers */
+}
+/* muli-700italic - latin */
+@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'); /* Modern Browsers */
+}
+/* muli-800normal - latin */
+@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'); /* Modern Browsers */
+}
+/* muli-800italic - latin */
+@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'); /* Modern Browsers */
+}
+/* muli-900normal - latin */
+@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'); /* Modern Browsers */
+}
+/* muli-900italic - latin */
+@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'); /* Modern Browsers */
+}
+
+
+/*Base Styles*/
+/*! TACHYONS v4.7.0 | http://tachyons.io */
+/*
+ * NOTE: The Tachyons folder is for backup/reference only. This file references the module
+ * ________ ______
+ * ___ __/_____ _________ /______ ______________________
+ * __ / _ __ `/ ___/_ __ \_ / / / __ \_ __ \_ ___/
+ * _ / / /_/ // /__ _ / / / /_/ // /_/ / / / /(__ )
+ * /_/ \__,_/ \___/ /_/ /_/_\__, / \____//_/ /_//____/
+ * /____/
+ *
+ * TABLE OF CONTENTS
+ *
+ * 1. External Library Includes
+ * - Normalize.css | http://normalize.css.github.io
+ * 2. Tachyons Modules
+ * 3. Variables
+ * - Media Queries
+ * - Colors
+ * 4. Debugging
+ * - Debug all
+ * - Debug children
+ *
+ */
+/* External Library Includes */
+/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */
+/* Document
+ ========================================================================== */
+/**
+ * 1. Correct the line height in all browsers.
+ * 2. Prevent adjustments of font size after orientation changes in iOS.
+ */
+html {
+ line-height: 1.15; /* 1 */
+ -webkit-text-size-adjust: 100%; /* 2 */
+}
+/* Sections
+ ========================================================================== */
+/**
+ * Remove the margin in all browsers.
+ */
+body {
+ margin: 0;
+}
+/**
+ * Correct the font size and margin on `h1` elements within `section` and
+ * `article` contexts in Chrome, Firefox, and Safari.
+ */
+h1 {
+ font-size: 2em;
+ margin: 0.67em 0;
+}
+/* Grouping content
+ ========================================================================== */
+/**
+ * 1. Add the correct box sizing in Firefox.
+ * 2. Show the overflow in Edge and IE.
+ */
+hr {
+ -webkit-box-sizing: content-box;
+ box-sizing: content-box; /* 1 */
+ height: 0; /* 1 */
+ overflow: visible; /* 2 */
+}
+/**
+ * 1. Correct the inheritance and scaling of font size in all browsers.
+ * 2. Correct the odd `em` font sizing in all browsers.
+ */
+pre {
+ font-family: monospace, monospace; /* 1 */
+ font-size: 1em; /* 2 */
+}
+/* Text-level semantics
+ ========================================================================== */
+/**
+ * Remove the gray background on active links in IE 10.
+ */
+a {
+ background-color: transparent;
+}
+/**
+ * 1. Remove the bottom border in Chrome 57-
+ * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
+ */
+/**
+ * Add the correct font weight in Chrome, Edge, and Safari.
+ */
+b,
+strong {
+ font-weight: bolder;
+}
+/**
+ * 1. Correct the inheritance and scaling of font size in all browsers.
+ * 2. Correct the odd `em` font sizing in all browsers.
+ */
+code {
+ font-family: monospace, monospace; /* 1 */
+ font-size: 1em; /* 2 */
+}
+/**
+ * Add the correct font size in all browsers.
+ */
+small {
+ font-size: 80%;
+}
+/**
+ * Prevent `sub` and `sup` elements from affecting the line height in
+ * all browsers.
+ */
+/* Embedded content
+ ========================================================================== */
+/**
+ * Remove the border on images inside links in IE 10.
+ */
+img {
+ border-style: none;
+}
+/* Forms
+ ========================================================================== */
+/**
+ * 1. Change the font styles in all browsers.
+ * 2. Remove the margin in Firefox and Safari.
+ */
+button,
+input {
+ font-family: inherit; /* 1 */
+ font-size: 100%; /* 1 */
+ line-height: 1.15; /* 1 */
+ margin: 0; /* 2 */
+}
+/**
+ * Show the overflow in IE.
+ * 1. Show the overflow in Edge.
+ */
+button,
+input { /* 1 */
+ overflow: visible;
+}
+/**
+ * Remove the inheritance of text transform in Edge, Firefox, and IE.
+ * 1. Remove the inheritance of text transform in Firefox.
+ */
+button { /* 1 */
+ text-transform: none;
+}
+/**
+ * Correct the inability to style clickable types in iOS and Safari.
+ */
+button,
+[type="button"],
+[type="reset"],
+[type="submit"] {
+ -webkit-appearance: button;
+}
+/**
+ * Remove the inner border and padding in Firefox.
+ */
+button::-moz-focus-inner,
+[type="button"]::-moz-focus-inner,
+[type="reset"]::-moz-focus-inner,
+[type="submit"]::-moz-focus-inner {
+ border-style: none;
+ padding: 0;
+}
+/**
+ * Restore the focus styles unset by the previous rule.
+ */
+button:-moz-focusring,
+[type="button"]:-moz-focusring,
+[type="reset"]:-moz-focusring,
+[type="submit"]:-moz-focusring {
+ outline: 1px dotted ButtonText;
+}
+/**
+ * Correct the padding in Firefox.
+ */
+fieldset {
+ padding: 0.35em 0.75em 0.625em;
+}
+/**
+ * 1. Correct the text wrapping in Edge and IE.
+ * 2. Correct the color inheritance from `fieldset` elements in IE.
+ * 3. Remove the padding so developers are not caught out when they zero out
+ * `fieldset` elements in all browsers.
+ */
+legend {
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box; /* 1 */
+ color: inherit; /* 2 */
+ display: table; /* 1 */
+ max-width: 100%; /* 1 */
+ padding: 0; /* 3 */
+ white-space: normal; /* 1 */
+}
+/**
+ * Add the correct vertical alignment in Chrome, Firefox, and Opera.
+ */
+/**
+ * Remove the default vertical scrollbar in IE 10+.
+ */
+/**
+ * 1. Add the correct box sizing in IE 10.
+ * 2. Remove the padding in IE 10.
+ */
+[type="checkbox"],
+[type="radio"] {
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box; /* 1 */
+ padding: 0; /* 2 */
+}
+/**
+ * Correct the cursor style of increment and decrement buttons in Chrome.
+ */
+[type="number"]::-webkit-inner-spin-button,
+[type="number"]::-webkit-outer-spin-button {
+ height: auto;
+}
+/**
+ * 1. Correct the odd appearance in Chrome and Safari.
+ * 2. Correct the outline style in Safari.
+ */
+[type="search"] {
+ -webkit-appearance: textfield; /* 1 */
+ outline-offset: -2px; /* 2 */
+}
+/**
+ * Remove the inner padding in Chrome and Safari on macOS.
+ */
+[type="search"]::-webkit-search-decoration {
+ -webkit-appearance: none;
+}
+/**
+ * 1. Correct the inability to style clickable types in iOS and Safari.
+ * 2. Change font properties to `inherit` in Safari.
+ */
+::-webkit-file-upload-button {
+ -webkit-appearance: button; /* 1 */
+ font: inherit; /* 2 */
+}
+/* Interactive
+ ========================================================================== */
+/*
+ * Add the correct display in Edge, IE 10+, and Firefox.
+ */
+details {
+ display: block;
+}
+/*
+ * Add the correct display in all browsers.
+ */
+/* Misc
+ ========================================================================== */
+/**
+ * Add the correct display in IE 10+.
+ */
+template {
+ display: none;
+}
+/**
+ * Add the correct display in IE 10.
+ */
+[hidden] {
+ display: none;
+}
+/* Modules */
+/*
+
+ BOX SIZING
+
+*/
+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;
+}
+/*@import 'tachyons/src/_aspect-ratios';*/
+/*
+
+ IMAGES
+ Docs: http://tachyons.io/docs/elements/images/
+
+*/
+/* Responsive images! */
+img { max-width: 100%; }
+/*
+
+ BACKGROUND SIZE
+ Docs: http://tachyons.io/docs/themes/background-size/
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+/*
+ Often used in combination with background image set as an inline style
+ on an html element.
+*/
+.cover { background-size: cover!important; }
+/*
+
+ BACKGROUND POSITION
+
+ Base:
+ bg = background
+
+ Modifiers:
+ -center = center center
+ -top = top center
+ -right = center right
+ -bottom = bottom center
+ -left = center left
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+ */
+/*@import 'tachyons/src/_outlines';*/
+/*
+
+ BORDERS
+ Docs: http://tachyons.io/docs/themes/borders/
+
+ Base:
+ b = border
+
+ Modifiers:
+ a = all
+ t = top
+ r = right
+ b = bottom
+ l = left
+ n = none
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+.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; }
+}
+/*
+
+ BORDER COLORS
+ Docs: http://tachyons.io/docs/themes/borders/
+
+ Border colors can be used to extend the base
+ border classes ba,bt,bb,br,bl found in the _borders.css file.
+
+ The base border class by default will set the color of the border
+ to that of the current text color. These classes are for the cases
+ where you desire for the text and border colors to be different.
+
+ Base:
+ b = border
+
+ Modifiers:
+ --color-name = each color variable name is also a border color name
+
+*/
+.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: rgba(255, 255, 255, .4); }
+.b--black-10 { border-color: rgba(0, 0, 0, .1); }
+.b--blue { border-color: #0594CB; }
+/*
+
+ BORDER RADIUS
+ Docs: http://tachyons.io/docs/themes/border-radius/
+
+ Base:
+ br = border-radius
+
+ Modifiers:
+ 0 = 0/none
+ 1 = 1st step in scale
+ 2 = 2nd step in scale
+ 3 = 3rd step in scale
+ 4 = 4th step in scale
+
+ Literal values:
+ -100 = 100%
+ -pill = 9999px
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+.br1 { border-radius: .125rem; }
+.br2 { border-radius: .25rem; }
+.br3 { border-radius: .5rem; }
+.br-100 { border-radius: 100%; }
+/*
+
+ BORDER STYLES
+ Docs: http://tachyons.io/docs/themes/borders/
+
+ Depends on base border module in _borders.css
+
+ Base:
+ b = border-style
+
+ Modifiers:
+ --none = none
+ --dotted = dotted
+ --dashed = dashed
+ --solid = solid
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+ */
+/*
+
+ BORDER WIDTHS
+ Docs: http://tachyons.io/docs/themes/borders/
+
+ Base:
+ bw = border-width
+
+ Modifiers:
+ 0 = 0 width border
+ 1 = 1st step in border-width scale
+ 2 = 2nd step in border-width scale
+ 3 = 3rd step in border-width scale
+ 4 = 4th step in border-width scale
+ 5 = 5th step in border-width scale
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+.bw1 { border-width: .125rem; }
+/* Resets */
+/*
+
+ BOX-SHADOW
+ Docs: http://tachyons.io/docs/themes/box-shadow/
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+ */
+.shadow-2 { -webkit-box-shadow: 0px 0px 8px 2px rgba(0, 0, 0, .2); box-shadow: 0px 0px 8px 2px rgba(0, 0, 0, .2); }
+.shadow-5 { -webkit-box-shadow: 4px 4px 8px 0px rgba(0, 0, 0, .2); box-shadow: 4px 4px 8px 0px rgba(0, 0, 0, .2); }
+/*@import 'tachyons/src/_code';*/
+/*
+
+ COORDINATES
+ Docs: http://tachyons.io/docs/layout/position/
+
+ Use in combination with the position module.
+
+ Base:
+ top
+ bottom
+ right
+ left
+
+ Modifiers:
+ -0 = literal value 0
+ -1 = literal value 1
+ -2 = literal value 2
+ --1 = literal value -1
+ --2 = literal value -2
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+.top-0 { top: 0; }
+.right-0 { right: 0; }
+.bottom-0 { bottom: 0; }
+.left-0 { left: 0; }
+/*
+
+ CLEARFIX
+ http://tachyons.io/docs/layout/clearfix/
+
+*/
+/* Nicolas Gallaghers Clearfix solution
+ Ref: http://nicolasgallagher.com/micro-clearfix-hack/ */
+.cf:before,
+.cf:after { content: " "; display: table; }
+.cf:after { clear: both; }
+.cf { *zoom: 1; }
+/*
+
+ DISPLAY
+ Docs: http://tachyons.io/docs/layout/display
+
+ Base:
+ d = display
+
+ Modifiers:
+ n = none
+ b = block
+ ib = inline-block
+ it = inline-table
+ t = table
+ tc = table-cell
+ t-row = table-row
+ t-columm = table-column
+ t-column-group = table-column-group
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+.dn { display: none; }
+.db { display: block; }
+.dib { display: inline-block; }
+/*
+ This will set table to full width and then
+ all cells will be equal width
+*/
+@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; }
+}
+/*
+
+ FLEXBOX
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+.flex { display: -webkit-box; display: -ms-flexbox; display: flex; }
+/* 1. Fix for Chrome 44 bug.
+ * https://code.google.com/p/chromium/issues/detail?id=506893 */
+.flex-auto {
+ -webkit-box-flex: 1;
+ -ms-flex: 1 1 auto;
+ flex: 1 1 auto;
+ min-width: 0; /* 1 */
+ min-height: 0; /* 1 */
+}
+.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; /* 1 */
+ min-height: 0; /* 1 */
+ }
+}
+@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; }
+}
+/*
+
+ FLOATS
+ http://tachyons.io/docs/layout/floats/
+
+ 1. Floated elements are automatically rendered as block level elements.
+ Setting floats to display inline will fix the double margin bug in
+ ie6. You know... just in case.
+
+ 2. Don't forget to clearfix your floats with .cf
+
+ Base:
+ f = float
+
+ Modifiers:
+ l = left
+ r = right
+ n = none
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+.fn { float: none; }
+/*@import 'tachyons/src/_font-family';*/
+/*
+
+ FONT STYLE
+ Docs: http://tachyons.io/docs/typography/font-style/
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+.i { font-style: italic; }
+/*
+
+ FONT WEIGHT
+ Docs: http://tachyons.io/docs/typography/font-weight/
+
+ Base
+ fw = font-weight
+
+ Modifiers:
+ 1 = literal value 100
+ 2 = literal value 200
+ 3 = literal value 300
+ 4 = literal value 400
+ 5 = literal value 500
+ 6 = literal value 600
+ 7 = literal value 700
+ 8 = literal value 800
+ 9 = literal value 900
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+.b { font-weight: bold; }
+.fw2 { font-weight: 200; }
+.fw4 { font-weight: 400; }
+.fw7 { font-weight: 700; }
+.fw8 { font-weight: 800; }
+.fw9 { font-weight: 900; }
+/*
+
+ FORMS
+
+*/
+.input-reset {
+ -webkit-appearance: none;
+ -moz-appearance: none;
+}
+
+.input-reset::-moz-focus-inner {
+ border: 0;
+ padding: 0;
+}
+/*
+
+ HEIGHTS
+ Docs: http://tachyons.io/docs/layout/heights/
+
+ Base:
+ h = height
+ min-h = min-height
+ min-vh = min-height vertical screen height
+ vh = vertical screen height
+
+ Modifiers
+ 1 = 1st step in height scale
+ 2 = 2nd step in height scale
+ 3 = 3rd step in height scale
+ 4 = 4th step in height scale
+ 5 = 5th step in height scale
+
+ -25 = literal value 25%
+ -50 = literal value 50%
+ -75 = literal value 75%
+ -100 = literal value 100%
+
+ -auto = string value of auto
+ -inherit = string value of inherit
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+/* Height Scale */
+.h1 { height: 1rem; }
+.h2 { height: 2rem; }
+.h3 { height: 4rem; }
+.h4 { height: 8rem; }
+.h5 { height: 16rem; }
+/* Height Percentages - Based off of height of parent */
+.h-100 { height: 100%; }
+/* Screen Height Percentage */
+.min-vh-100 { min-height: 100vh; }
+/* String Properties */
+/*
+
+ LETTER SPACING
+ Docs: http://tachyons.io/docs/typography/tracking/
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+.tracked { letter-spacing: .1em; }
+/*
+
+ LINE HEIGHT / LEADING
+ Docs: http://tachyons.io/docs/typography/line-height
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+.lh-solid { line-height: 1; }
+.lh-title { line-height: 1.25; }
+.lh-copy { line-height: 1.5; }
+/*
+
+ LINKS
+ Docs: http://tachyons.io/docs/elements/links/
+
+*/
+.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;
+}
+/*
+
+ LISTS
+ http://tachyons.io/docs/elements/lists/
+
+*/
+.list { list-style-type: none; }
+/*
+
+ MAX WIDTHS
+ Docs: http://tachyons.io/docs/layout/max-widths/
+
+ Base:
+ mw = max-width
+
+ Modifiers
+ 1 = 1st step in width scale
+ 2 = 2nd step in width scale
+ 3 = 3rd step in width scale
+ 4 = 4th step in width scale
+ 5 = 5th step in width scale
+ 6 = 6st step in width scale
+ 7 = 7nd step in width scale
+ 8 = 8rd step in width scale
+ 9 = 9th step in width scale
+
+ -100 = literal value 100%
+
+ -none = string value none
+
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+/* Max Width Percentages */
+.mw-100 { max-width: 100%; }
+/* Max Width Scale */
+.mw3 { max-width: 4rem; }
+.mw5 { max-width: 16rem; }
+.mw7 { max-width: 48rem; }
+.mw9 { max-width: 96rem; }
+/* Max Width String Properties */
+@media screen and (min-width: 60em) {
+ .mw5-l { max-width: 16rem; }
+}
+/*
+
+ WIDTHS
+ Docs: http://tachyons.io/docs/layout/widths/
+
+ Base:
+ w = width
+
+ Modifiers
+ 1 = 1st step in width scale
+ 2 = 2nd step in width scale
+ 3 = 3rd step in width scale
+ 4 = 4th step in width scale
+ 5 = 5th step in width scale
+
+ -10 = literal value 10%
+ -20 = literal value 20%
+ -25 = literal value 25%
+ -30 = literal value 30%
+ -33 = literal value 33%
+ -34 = literal value 34%
+ -40 = literal value 40%
+ -50 = literal value 50%
+ -60 = literal value 60%
+ -70 = literal value 70%
+ -75 = literal value 75%
+ -80 = literal value 80%
+ -90 = literal value 90%
+ -100 = literal value 100%
+
+ -third = 100% / 3 (Not supported in opera mini or IE8)
+ -two-thirds = 100% / 1.5 (Not supported in opera mini or IE8)
+ -auto = string value auto
+
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+/* Width Scale */
+.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
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+ */
+.overflow-hidden { overflow: hidden; }
+.overflow-x-scroll { overflow-x: scroll; }
+/*
+
+ POSITIONING
+ Docs: http://tachyons.io/docs/layout/position/
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+.static { position: static; }
+.relative { position: relative; }
+.absolute { position: absolute; }
+.fixed { position: fixed; }
+@media screen and (min-width: 60em) {
+ .absolute-l { position: absolute; }
+}
+/*
+
+ OPACITY
+ Docs: http://tachyons.io/docs/themes/opacity/
+
+*/
+.o-100 { opacity: 1; }
+.o-80 { opacity: .8; }
+.o-50 { opacity: .5; }
+.o-10 { opacity: .1; }
+.o-0 { opacity: 0; }
+/*@import 'tachyons/src/_rotations';*/
+/*
+
+ SKINS
+ Docs: http://tachyons.io/docs/themes/skins/
+
+ Classes for setting foreground and background colors on elements.
+ If you haven't declared a border color, but set border on an element, it will
+ be set to the current text color.
+
+*/
+/* Text colors */
+.black-70 { color: rgba(0, 0, 0, .7); }
+.black-60 { color: rgba(0, 0, 0, .6); }
+.white-90 { color: rgba(255, 255, 255, .9); }
+.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; }
+/* Background colors */
+.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; }
+/*
+
+ SKINS:PSEUDO
+
+ Customize the color of an element when
+ it is focused or hovered over.
+
+ */
+.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; }
+/* Variables */
+/*
+ SPACING
+ Docs: http://tachyons.io/docs/layout/spacing/
+
+ An eight step powers of two scale ranging from 0 to 16rem.
+
+ Base:
+ p = padding
+ m = margin
+
+ Modifiers:
+ a = all
+ h = horizontal
+ v = vertical
+ t = top
+ r = right
+ b = bottom
+ l = left
+
+ 0 = none
+ 1 = 1st step in spacing scale
+ 2 = 2nd step in spacing scale
+ 3 = 3rd step in spacing scale
+ 4 = 4th step in spacing scale
+ 5 = 5th step in spacing scale
+ 6 = 6th step in spacing scale
+ 7 = 7th step in spacing scale
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+.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; }
+}
+/*
+ NEGATIVE MARGINS
+
+ Base:
+ n = negative
+
+ Modifiers:
+ a = all
+ t = top
+ r = right
+ b = bottom
+ l = left
+
+ 1 = 1st step in spacing scale
+ 2 = 2nd step in spacing scale
+ 3 = 3rd step in spacing scale
+ 4 = 4th step in spacing scale
+ 5 = 5th step in spacing scale
+ 6 = 6th step in spacing scale
+ 7 = 7th step in spacing scale
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+.nl2 { margin-left: -0.5rem; }
+.nl3 { margin-left: -1rem; }
+.nt3 { margin-top: -1rem; }
+/*
+
+ TABLES
+ Docs: http://tachyons.io/docs/elements/tables/
+
+*/
+/*
+
+ TEXT DECORATION
+ Docs: http://tachyons.io/docs/typography/text-decoration/
+
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+.no-underline { text-decoration: none; }
+/*
+
+ TEXT ALIGN
+ Docs: http://tachyons.io/docs/typography/text-align/
+
+ Base
+ t = text-align
+
+ Modifiers
+ l = left
+ r = right
+ c = center
+ j = justify
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+.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; }
+}
+/*
+
+ TEXT TRANSFORM
+ Docs: http://tachyons.io/docs/typography/text-transform/
+
+ Base:
+ tt = text-transform
+
+ Modifiers
+ c = capitalize
+ l = lowercase
+ u = uppercase
+ n = none
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+.ttu { text-transform: uppercase; }
+/*
+
+ TYPE SCALE
+ Docs: http://tachyons.io/docs/typography/scale/
+
+ Base:
+ f = font-size
+
+ Modifiers
+ 1 = 1st step in size scale
+ 2 = 2nd step in size scale
+ 3 = 3rd step in size scale
+ 4 = 4th step in size scale
+ 5 = 5th step in size scale
+ 6 = 6th step in size scale
+ 7 = 7th step in size scale
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+*/
+/*
+ * For Hero/Marketing Titles
+ *
+ * These generally are too large for mobile
+ * so be careful using them on smaller screens.
+ * */
+/* Type Scale */
+.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; }
+/* Small and hard to read for many people so use with extreme caution */
+@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; }
+}
+/*
+
+ TYPOGRAPHY
+ http://tachyons.io/docs/typography/measure/
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+/* Measure is limited to ~66 characters */
+.measure {
+ max-width: 30em;
+}
+/* Measure is limited to ~80 characters */
+.measure-wide {
+ max-width: 34em;
+}
+/* Measure is limited to ~45 characters */
+/* Book paragraph style - paragraphs are indented with no vertical spacing. */
+/* Combine this class with a width to truncate text (or just leave as is to truncate at width of containing element. */
+.truncate {
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+@media screen and (min-width: 60em) {
+ .measure-wide-l {
+ max-width: 34em;
+ }
+}
+/*
+
+ UTILITIES
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+/* Equivalent to .overflow-y-scroll */
+.center {
+ margin-right: auto;
+ margin-left: auto;
+}
+/*
+
+ VISIBILITY
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+/*
+ Text that is hidden but accessible
+ Ref: http://snook.ca/archives/html_and_css/hiding-content-for-accessibility
+*/
+.clip {
+ position: fixed !important;
+ _position: absolute !important;
+ clip: rect(1px 1px 1px 1px); /* IE6, IE7 */
+ clip: rect(1px, 1px, 1px, 1px);
+}
+/*
+
+ WHITE SPACE
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+.nowrap { white-space: nowrap; }
+.pre { white-space: pre; }
+/*
+
+ VERTICAL ALIGN
+
+ Media Query Extensions:
+ -ns = not-small
+ -m = medium
+ -l = large
+
+*/
+.v-mid { vertical-align: middle; }
+.v-top { vertical-align: top; }
+/*
+
+ HOVER EFFECTS
+ Docs: http://tachyons.io/docs/themes/hovers/
+
+ - Dim
+ - Glow
+ - Hide Child
+ - Underline text
+ - Grow
+ - Pointer
+ - Shadow
+
+*/
+/*
+
+ Dim element on hover by adding the dim class.
+
+*/
+.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;
+}
+/*
+
+ Animate opacity to 100% on hover by adding the glow class.
+
+*/
+/*
+
+ Hide child & reveal on hover:
+
+ Put the hide-child class on a parent element and any nested element with the
+ child class will be hidden and displayed on hover or focus.
+
+ <div class="hide-child">
+ <div class="child"> Hidden until hover or focus </div>
+ <div class="child"> Hidden until hover or focus </div>
+ <div class="child"> Hidden until hover or focus </div>
+ <div class="child"> Hidden until hover or focus </div>
+ </div>
+*/
+.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;
+}
+/* Can combine this with overflow-hidden to make background images grow on hover
+ * even if you are using background-size: cover */
+.grow {
+ -moz-osx-font-smoothing: grayscale;
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+ -webkit-transform: translateZ(0);
+ transform: translateZ(0);
+ -webkit-transition: -webkit-transform 0.25s ease-out;
+ transition: -webkit-transform 0.25s ease-out;
+ transition: transform 0.25s ease-out;
+ transition: transform 0.25s ease-out, -webkit-transform 0.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);
+}
+/* Add pointer on hover */
+/*
+ Add shadow on hover.
+
+ Performant box-shadow animation pattern from
+ http://tobiasahlin.com/blog/how-to-animate-box-shadow/
+*/
+/* Combine with classes in skins and skins-pseudo for
+ * many different transition possibilities. */
+.bg-animate,
+.bg-animate:hover,
+.bg-animate:focus {
+ -webkit-transition: background-color .15s ease-in-out;
+ transition: background-color .15s ease-in-out;
+}
+/*
+
+ Z-INDEX
+
+ Base
+ z = z-index
+
+ Modifiers
+ -0 = literal value 0
+ -1 = literal value 1
+ -2 = literal value 2
+ -3 = literal value 3
+ -4 = literal value 4
+ -5 = literal value 5
+ -999 = literal value 999
+ -9999 = literal value 9999
+
+ -max = largest accepted z-index value as integer
+
+ -inherit = string value inherit
+ -initial = string value initial
+ -unset = string value unset
+
+ MDN: https://developer.mozilla.org/en/docs/Web/CSS/z-index
+ Spec: http://www.w3.org/TR/CSS2/zindex.html
+ Articles:
+ https://philipwalton.com/articles/what-no-one-told-you-about-z-index/
+
+ Tips on extending:
+ There might be a time worth using negative z-index values.
+ Or if you are using tachyons with another project, you might need to
+ adjust these values to suit your needs.
+
+*/
+.z-5 { z-index: 5; }
+.z-999 { z-index: 999; }
+/*
+
+ NESTED
+ Tachyons module for styling nested elements
+ that are generated by a cms.
+
+*/
+.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;
+}
+/*@import 'tachyons/src/_styles';*/
+/* Variables */
+/* Importing here will allow you to override any variables in the modules */
+/*
+
+ Tachyons
+ COLOR VARIABLES
+
+ Grayscale
+ - Solids
+ - Transparencies
+ Colors
+
+*/
+/*
+
+ CUSTOM MEDIA QUERIES
+
+ Media query values can be changed to fit your own content.
+ There are no magic bullets when it comes to media query width values.
+ They should be declared in em units - and they should be set to meet
+ the needs of your content. You can also add additional media queries,
+ or remove some of the existing ones.
+
+ These media queries can be referenced like so:
+
+ @media (--breakpoint-not-small) {
+ .medium-and-larger-specific-style {
+ background-color: red;
+ }
+ }
+
+ @media (--breakpoint-medium) {
+ .medium-screen-specific-style {
+ background-color: red;
+ }
+ }
+
+ @media (--breakpoint-large) {
+ .large-and-larger-screen-specific-style {
+ background-color: red;
+ }
+ }
+
+*/
+/* Media Queries */
+/* Debugging */
+/*@import 'tachyons/src/_debug-children';
+@import 'tachyons/src/_debug-grid';*/
+/* Uncomment out the line below to help debug layout issues */
+/* @import 'tachyons/src/_debug'; */
+/* purgecss start ignore */
+.header-link:after {
+ position: relative;
+ left: 0.5em;
+ opacity: 0;
+ font-size: 0.8em;
+ -moz-transition: opacity 0.2s ease-in-out 0.1s;
+ -ms-transition: opacity 0.2s ease-in-out 0.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: 0.5s;
+ animation-delay: 0.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;
+ /*background-color: white;*/
+}
+.admonition-content {
+ display: block;
+ margin: 0px;
+ padding: .125em 1em;
+ /*margin-left: 1em;*/
+ margin-top: 2em;
+ margin-bottom: 2em;
+ overflow-x: auto;
+ /*font-size: .9375em;*/
+ background-color: rgba(0, 0, 0, .05);
+ }
+.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 headings exaggerate spacing and size to chunk content */
+.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__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}}
++.searchbox__wrapper{width:100%;height:100%;z-index:999;position:relative}
++.searchbox__input{display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;-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 26px 0 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:rgba(69, 142, 225, 0);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:none;cursor:pointer;padding:0;font-size:inherit;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;fill:rgba(0, 0, 0, .5)}
+.searchbox__reset.hide{display:none}
+.searchbox__reset:focus{outline:0}
+.searchbox__reset svg{display:block;margin:4px;width:8px;height:8px}
- .algolia-autocomplete .ds-dropdown-menu{top:-6px;border-radius:4px;margin:6px 0 0;padding:0;text-align:left;height:auto;position:relative;background:transparent;border:none;z-index:1;max-width:600px;min-width:500px;-webkit-box-shadow:0 1px 0 0 rgba(0, 0, 0, .2),0 2px 3px 0 rgba(0, 0, 0, .1);box-shadow:0 1px 0 0 rgba(0, 0, 0, .2),0 2px 3px 0 rgba(0, 0, 0, .1)}
- .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}
++.searchbox__input:valid~.searchbox__reset{display:block;-webkit-animation-name:sbx-reset-in;animation-name:sbx-reset-in;-webkit-animation-duration:.15s;animation-duration:.15s}
++@-webkit-keyframes sbx-reset-in{0%{-webkit-transform:translate3d(-20%,0,0);transform:translate3d(-20%,0,0);opacity:0}to{-webkit-transform:none;transform:none;opacity:1}}
++@keyframes sbx-reset-in{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 .algolia-docsearch-suggestion{position:relative;padding:0 8px;background:#fff;color:#02060c;overflow:hidden}
++.algolia-autocomplete .ds-dropdown-menu{top:-6px;border-radius:4px;margin:6px 0 0;padding:0;text-align:left;height:auto;position:relative;background:transparent;border:none;z-index:999;max-width:600px;min-width:500px;-webkit-box-shadow:0 1px 0 0 rgba(0, 0, 0, .2),0 2px 3px 0 rgba(0, 0, 0, .1);box-shadow:0 1px 0 0 rgba(0, 0, 0, .2),0 2px 3px 0 rgba(0, 0, 0, .1)}
++.algolia-autocomplete .ds-dropdown-menu:before{display:block;position:absolute;content:"";width:14px;height:14px;background:#fff;z-index:1000;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:1000;margin-top:8px}
++.algolia-autocomplete .ds-dropdown-menu .ds-suggestions a:hover{text-decoration:none}
+.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:rgba(69, 142, 225, .05)}
+.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--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 rgba(69, 142, 225, .8);box-shadow:inset 0 -2px 0 0 rgba(69, 142, 225, .8);color:inherit}
++.algolia-autocomplete .algolia-docsearch-suggestion{display:block;position:relative;padding:0 8px;background:#fff;color:#02060c;overflow:hidden}
+.algolia-autocomplete .algolia-docsearch-suggestion--highlight{color:#174d8c;background:rgba(143, 187, 237, .1);padding:.1em .05em}
- .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--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,.algolia-autocomplete .algolia-docsearch-suggestion--text .algolia-docsearch-suggestion--highlight{padding:0 0 1px;background:inherit;-webkit-box-shadow:inset 0 -2px 0 0 rgba(69, 142, 225, .8);box-shadow:inset 0 -2px 0 0 rgba(69, 142, 225, .8);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 .algolia-docsearch-suggestion--highlight{background-color:inherit;color:inherit}
++.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column{float:left;width:30%;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.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 .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:none}
- .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 .algolia-docsearch-suggestion.algolia-docsearch-suggestion__main .algolia-docsearch-suggestion--category-header,.algolia-autocomplete .algolia-docsearch-suggestion.algolia-docsearch-suggestion__secondary{display:block}
++@media (min-width:768px){.algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--subcategory-column{display:block}}
++@media (max-width:768px){.algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--subcategory-column{display:inline-block;width:auto;float:left;padding:0;color:#02060c;font-size:.9em;font-weight:700;text-align:left;opacity:.5}.algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--subcategory-column:before{display:none}.algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--subcategory-column:after{content:"|"}.algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--content{display:inline-block;width:auto;text-align:left;float:left;padding:0}.algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--content:before{display:none}}
+.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,<svg width="10" height="10" viewBox="0 0 20 38" xmlns="http://www.w3.org/2000/svg"><path d="M1.49 4.31l14 16.126.002-2.624-14 16.074-1.314 1.51 3.017 2.626 1.313-1.508 14-16.075 1.142-1.313-1.14-1.313-14-16.125L3.2.18.18 2.8l1.31 1.51z" fill-rule="evenodd" fill="%231D3657" /></svg>');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 .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,<svg viewBox='0 0 130 18' xmlns='http://www.w3.org/2000/svg'><defs><linearGradient x1='-36.868%' y1='134.936%' x2='129.432%' y2='-27.7%' id='a'><stop stop-color='%2300AEFF' offset='0%'/><stop stop-color='%233369E7' offset='100%'/></linearGradient></defs><g fill='none' fill-rule='evenodd'><path d='M59.399.022h13.299a2.372 2.372 0 0 1 2.377 2.364V15.62a2.372 2.372 0 0 1-2.377 2.364H59.399a2.372 2.372 0 0 1-2.377-2.364V2.381A2.368 2.368 0 0 1 59.399.022z' fill='url(%23a)'/><path d='M66.257 4.56c-2.815 0-5.1 2.272-5.1 5.078 0 2.806 2.284 5.072 5.1 5.072 2.815 0 5.1-2.272 5.1-5.078 0-2.806-2.279-5.072-5.1-5.072zm0 8.652c-1.983 0-3.593-1.602-3.593-3.574 0-1.972 1.61-3.574 3.593-3.574 1.983 0 3.593 1.602 3.593 3.574a3.582 3.582 0 0 1-3.593 3.574zm0-6.418v2.664c0 .076.082.131.153.093l2.377-1.226c.055-.027.071-.093.044-.147a2.96 2.96 0 0 0-2.465-1.487c-.055 0-.11.044-.11.104l.001-.001zm-3.33-1.956l-.312-.311a.783.783 0 0 0-1.106 0l-.372.37a.773.773 0 0 0 0 1.101l.307.305c.049.049.121.038.164-.011.181-.245.378-.479.597-.697.225-.223.455-.42.707-.599.055-.033.06-.109.016-.158h-.001zm5.001-.806v-.616a.781.781 0 0 0-.783-.779h-1.824a.78.78 0 0 0-.783.779v.632c0 .071.066.12.137.104a5.736 5.736 0 0 1 1.588-.223c.52 0 1.035.071 1.534.207a.106.106 0 0 0 .131-.104z' fill='%23FFF'/><path d='M102.162 13.762c0 1.455-.372 2.517-1.123 3.193-.75.676-1.895 1.013-3.44 1.013-.564 0-1.736-.109-2.673-.316l.345-1.689c.783.163 1.819.207 2.361.207.86 0 1.473-.174 1.84-.523.367-.349.548-.866.548-1.553v-.349a6.374 6.374 0 0 1-.838.316 4.151 4.151 0 0 1-1.194.158 4.515 4.515 0 0 1-1.616-.278 3.385 3.385 0 0 1-1.254-.817 3.744 3.744 0 0 1-.811-1.351c-.192-.539-.29-1.504-.29-2.212 0-.665.104-1.498.307-2.054a3.925 3.925 0 0 1 .904-1.433 4.124 4.124 0 0 1 1.441-.926 5.31 5.31 0 0 1 1.945-.365c.696 0 1.337.087 1.961.191a15.86 15.86 0 0 1 1.588.332v8.456h-.001zm-5.954-4.206c0 .893.197 1.885.592 2.299.394.414.904.621 1.528.621.34 0 .663-.049.964-.142a2.75 2.75 0 0 0 .734-.332v-5.29a8.531 8.531 0 0 0-1.413-.18c-.778-.022-1.369.294-1.786.801-.411.507-.619 1.395-.619 2.223zm16.12 0c0 .719-.104 1.264-.318 1.858a4.389 4.389 0 0 1-.904 1.52c-.389.42-.854.746-1.402.975-.548.229-1.391.36-1.813.36-.422-.005-1.26-.125-1.802-.36a4.088 4.088 0 0 1-1.397-.975 4.486 4.486 0 0 1-.909-1.52 5.037 5.037 0 0 1-.329-1.858c0-.719.099-1.411.318-1.999.219-.588.526-1.09.92-1.509.394-.42.865-.741 1.402-.97a4.547 4.547 0 0 1 1.786-.338 4.69 4.69 0 0 1 1.791.338c.548.229 1.019.55 1.402.97.389.42.69.921.909 1.509.23.588.345 1.28.345 1.999h.001zm-2.191.005c0-.921-.203-1.689-.597-2.223-.394-.539-.948-.806-1.654-.806-.707 0-1.26.267-1.654.806-.394.539-.586 1.302-.586 2.223 0 .932.197 1.558.592 2.098.394.545.948.812 1.654.812.707 0 1.26-.272 1.654-.812.394-.545.592-1.166.592-2.098h-.001zm6.962 4.707c-3.511.016-3.511-2.822-3.511-3.274L113.583.926l2.142-.338v10.003c0 .256 0 1.88 1.375 1.885v1.792h-.001zm3.774 0h-2.153V5.072l2.153-.338v9.534zm-1.079-10.542c.718 0 1.304-.578 1.304-1.291 0-.714-.581-1.291-1.304-1.291-.723 0-1.304.578-1.304 1.291 0 .714.586 1.291 1.304 1.291zm6.431 1.013c.707 0 1.304.087 1.786.262.482.174.871.42 1.156.73.285.311.488.735.608 1.182.126.447.186.937.186 1.476v5.481a25.24 25.24 0 0 1-1.495.251c-.668.098-1.419.147-2.251.147a6.829 6.829 0 0 1-1.517-.158 3.213 3.213 0 0 1-1.178-.507 2.455 2.455 0 0 1-.761-.904c-.181-.37-.274-.893-.274-1.438 0-.523.104-.855.307-1.215.208-.36.487-.654.838-.883a3.609 3.609 0 0 1 1.227-.49 7.073 7.073 0 0 1 2.202-.103c.263.027.537.076.833.147v-.349c0-.245-.027-.479-.088-.697a1.486 1.486 0 0 0-.307-.583c-.148-.169-.34-.3-.581-.392a2.536 2.536 0 0 0-.915-.163c-.493 0-.942.06-1.353.131-.411.071-.75.153-1.008.245l-.257-1.749c.268-.093.668-.185 1.183-.278a9.335 9.335 0 0 1 1.66-.142l-.001-.001zm.181 7.731c.657 0 1.145-.038 1.484-.104v-2.168a5.097 5.097 0 0 0-1.978-.104c-.241.033-.46.098-.652.191a1.167 1.167 0 0 0-.466.392c-.121.169-.175.267-.175.523 0 .501.175.79.493.981.323.196.75.289 1.293.289h.001zM84.109 4.794c.707 0 1.304.087 1.786.262.482.174.871.42 1.156.73.29.316.487.735.608 1.182.126.447.186.937.186 1.476v5.481a25.24 25.24 0 0 1-1.495.251c-.668.098-1.419.147-2.251.147a6.829 6.829 0 0 1-1.517-.158 3.213 3.213 0 0 1-1.178-.507 2.455 2.455 0 0 1-.761-.904c-.181-.37-.274-.893-.274-1.438 0-.523.104-.855.307-1.215.208-.36.487-.654.838-.883a3.609 3.609 0 0 1 1.227-.49 7.073 7.073 0 0 1 2.202-.103c.257.027.537.076.833.147v-.349c0-.245-.027-.479-.088-.697a1.486 1.486 0 0 0-.307-.583c-.148-.169-.34-.3-.581-.392a2.536 2.536 0 0 0-.915-.163c-.493 0-.942.06-1.353.131-.411.071-.75.153-1.008.245l-.257-1.749c.268-.093.668-.185 1.183-.278a8.89 8.89 0 0 1 1.66-.142l-.001-.001zm.186 7.736c.657 0 1.145-.038 1.484-.104v-2.168a5.097 5.097 0 0 0-1.978-.104c-.241.033-.46.098-.652.191a1.167 1.167 0 0 0-.466.392c-.121.169-.175.267-.175.523 0 .501.175.79.493.981.318.191.75.289 1.293.289h.001zm8.682 1.738c-3.511.016-3.511-2.822-3.511-3.274L89.461.926l2.142-.338v10.003c0 .256 0 1.88 1.375 1.885v1.792h-.001z' fill='%23182359'/><path d='M5.027 11.025c0 .698-.252 1.246-.757 1.644-.505.397-1.201.596-2.089.596-.888 0-1.615-.138-2.181-.414v-1.214c.358.168.739.301 1.141.397.403.097.778.145 1.125.145.508 0 .884-.097 1.125-.29a.945.945 0 0 0 .363-.779.978.978 0 0 0-.333-.747c-.222-.204-.68-.446-1.375-.725-.716-.29-1.221-.621-1.515-.994-.294-.372-.44-.82-.44-1.343 0-.655.233-1.171.698-1.547.466-.376 1.09-.564 1.875-.564.752 0 1.5.165 2.245.494l-.408 1.047c-.698-.294-1.321-.44-1.869-.44-.415 0-.73.09-.945.271a.89.89 0 0 0-.322.717c0 .204.043.379.129.524.086.145.227.282.424.411.197.129.551.299 1.063.51.577.24.999.464 1.268.671.269.208.466.442.591.704.125.261.188.569.188.924l-.001.002zm3.98 2.24c-.924 0-1.646-.269-2.167-.808-.521-.539-.782-1.281-.782-2.226 0-.97.242-1.733.725-2.288.483-.555 1.148-.833 1.993-.833.784 0 1.404.238 1.858.714.455.476.682 1.132.682 1.966v.682H7.357c.018.577.174 1.02.467 1.329.294.31.707.465 1.241.465.351 0 .678-.033.98-.099a5.1 5.1 0 0 0 .975-.33v1.026a3.865 3.865 0 0 1-.935.312 5.723 5.723 0 0 1-1.08.091l.002-.001zm-.231-5.199c-.401 0-.722.127-.964.381s-.386.625-.432 1.112h2.696c-.007-.491-.125-.862-.354-1.115-.229-.252-.544-.379-.945-.379l-.001.001zm7.692 5.092l-.252-.827h-.043c-.286.362-.575.608-.865.739-.29.131-.662.196-1.117.196-.584 0-1.039-.158-1.367-.473-.328-.315-.491-.761-.491-1.337 0-.612.227-1.074.682-1.386.455-.312 1.148-.482 2.079-.51l1.026-.032v-.317c0-.38-.089-.663-.266-.851-.177-.188-.452-.282-.824-.282-.304 0-.596.045-.876.134a6.68 6.68 0 0 0-.806.317l-.408-.902a4.414 4.414 0 0 1 1.058-.384 4.856 4.856 0 0 1 1.085-.132c.756 0 1.326.165 1.711.494.385.329.577.847.577 1.552v4.002h-.902l-.001-.001zm-1.88-.859c.458 0 .826-.128 1.104-.384.278-.256.416-.615.416-1.077v-.516l-.763.032c-.594.021-1.027.121-1.297.298s-.406.448-.406.814c0 .265.079.47.236.615.158.145.394.218.709.218h.001zm7.557-5.189c.254 0 .464.018.628.054l-.124 1.176a2.383 2.383 0 0 0-.559-.064c-.505 0-.914.165-1.227.494-.313.329-.47.757-.47 1.284v3.105h-1.262V7.218h.988l.167 1.047h.064c.197-.354.454-.636.771-.843a1.83 1.83 0 0 1 1.023-.312h.001zm4.125 6.155c-.899 0-1.582-.262-2.049-.787-.467-.525-.701-1.277-.701-2.259 0-.999.244-1.767.733-2.304.489-.537 1.195-.806 2.119-.806.627 0 1.191.116 1.692.349l-.381 1.015c-.534-.208-.974-.312-1.321-.312-1.028 0-1.542.682-1.542 2.046 0 .666.128 1.166.384 1.501.256.335.631.502 1.125.502a3.23 3.23 0 0 0 1.595-.419v1.101a2.53 2.53 0 0 1-.722.285 4.356 4.356 0 0 1-.932.086v.002zm8.277-.107h-1.268V9.506c0-.458-.092-.8-.277-1.026-.184-.226-.477-.338-.878-.338-.53 0-.919.158-1.168.475-.249.317-.373.848-.373 1.593v2.949h-1.262V4.801h1.262v2.122c0 .34-.021.704-.064 1.09h.081a1.76 1.76 0 0 1 .717-.666c.306-.158.663-.236 1.072-.236 1.439 0 2.159.725 2.159 2.175v3.873l-.001-.001zm7.649-6.048c.741 0 1.319.269 1.732.806.414.537.62 1.291.62 2.261 0 .974-.209 1.732-.628 2.275-.419.542-1.001.814-1.746.814-.752 0-1.336-.27-1.751-.811h-.086l-.231.704h-.945V4.801h1.262v1.987l-.021.655-.032.553h.054c.401-.591.992-.886 1.772-.886zm-.328 1.031c-.508 0-.875.149-1.098.448-.224.299-.339.799-.346 1.501v.086c0 .723.115 1.247.344 1.571.229.324.603.486 1.123.486.448 0 .787-.177 1.018-.532.231-.354.346-.867.346-1.536 0-1.35-.462-2.025-1.386-2.025l-.001.001zm3.244-.924h1.375l1.209 3.368c.183.48.304.931.365 1.354h.043c.032-.197.091-.436.177-.717.086-.281.541-1.616 1.364-4.004h1.364l-2.541 6.73c-.462 1.235-1.232 1.853-2.31 1.853-.279 0-.551-.03-.816-.091v-.999c.19.043.406.064.65.064.609 0 1.037-.353 1.284-1.058l.22-.559-2.385-5.941h.001z' fill='%231D3657'/></g></svg>");background-repeat:no-repeat;background-position:50%;background-size:100%;overflow:hidden;text-indent:-9000px;padding:0!important;width:100%;height:100%;display:block}
++.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--duplicate-content,.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:134px;height:20px;z-index:2000;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;charset=utf-8,%3Csvg width='168' height='24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M78.988.938h16.594a2.968 2.968 0 0 1 2.966 2.966V20.5a2.967 2.967 0 0 1-2.966 2.964H78.988a2.967 2.967 0 0 1-2.966-2.964V3.897A2.961 2.961 0 0 1 78.988.938zm41.937 17.866c-4.386.02-4.386-3.54-4.386-4.106l-.007-13.336 2.675-.424v13.254c0 .322 0 2.358 1.718 2.364v2.248zm-10.846-2.18c.821 0 1.43-.047 1.855-.129v-2.719a6.334 6.334 0 0 0-1.574-.199 5.7 5.7 0 0 0-.897.069 2.699 2.699 0 0 0-.814.24c-.24.116-.439.28-.582.491-.15.212-.219.335-.219.656 0 .628.219.991.616 1.23s.938.362 1.615.362zm-.233-9.7c.883 0 1.629.109 2.231.328.602.218 1.088.525 1.444.915.363.396.609.922.76 1.483.157.56.232 1.175.232 1.85v6.874a32.5 32.5 0 0 1-1.868.314c-.834.123-1.772.185-2.813.185-.69 0-1.327-.069-1.895-.198a4.001 4.001 0 0 1-1.471-.636 3.085 3.085 0 0 1-.951-1.134c-.226-.465-.343-1.12-.343-1.803 0-.656.13-1.073.384-1.525a3.24 3.24 0 0 1 1.047-1.106c.445-.287.95-.492 1.532-.615a8.8 8.8 0 0 1 1.82-.185 8.404 8.404 0 0 1 1.972.24v-.438c0-.307-.035-.6-.11-.874a1.88 1.88 0 0 0-.384-.73 1.784 1.784 0 0 0-.724-.493 3.164 3.164 0 0 0-1.143-.205c-.616 0-1.177.075-1.69.164a7.735 7.735 0 0 0-1.26.307l-.321-2.192c.335-.117.834-.233 1.478-.349a10.98 10.98 0 0 1 2.073-.178zm52.842 9.626c.822 0 1.43-.048 1.854-.13V13.7a6.347 6.347 0 0 0-1.574-.199c-.294 0-.595.021-.896.069a2.7 2.7 0 0 0-.814.24 1.46 1.46 0 0 0-.582.491c-.15.212-.218.335-.218.656 0 .628.218.991.615 1.23.404.245.938.362 1.615.362zm-.226-9.694c.883 0 1.629.108 2.231.327.602.219 1.088.526 1.444.915.355.39.609.923.759 1.483a6.8 6.8 0 0 1 .233 1.852v6.873c-.41.088-1.034.19-1.868.314-.834.123-1.772.184-2.813.184-.69 0-1.327-.068-1.895-.198a4.001 4.001 0 0 1-1.471-.635 3.085 3.085 0 0 1-.951-1.134c-.226-.465-.343-1.12-.343-1.804 0-.656.13-1.073.384-1.524.26-.45.608-.82 1.047-1.107.445-.286.95-.491 1.532-.614a8.803 8.803 0 0 1 2.751-.13c.329.034.671.096 1.04.185v-.437a3.3 3.3 0 0 0-.109-.875 1.873 1.873 0 0 0-.384-.731 1.784 1.784 0 0 0-.724-.492 3.165 3.165 0 0 0-1.143-.205c-.616 0-1.177.075-1.69.164a7.75 7.75 0 0 0-1.26.307l-.321-2.193c.335-.116.834-.232 1.478-.348a11.633 11.633 0 0 1 2.073-.177zm-8.034-1.271a1.626 1.626 0 0 1-1.628-1.62c0-.895.725-1.62 1.628-1.62.904 0 1.63.725 1.63 1.62 0 .895-.733 1.62-1.63 1.62zm1.348 13.22h-2.689V7.27l2.69-.423v11.956zm-4.714 0c-4.386.02-4.386-3.54-4.386-4.107l-.008-13.336 2.676-.424v13.254c0 .322 0 2.358 1.718 2.364v2.248zm-8.698-5.903c0-1.156-.253-2.119-.746-2.788-.493-.677-1.183-1.01-2.067-1.01-.882 0-1.574.333-2.065 1.01-.493.676-.733 1.632-.733 2.788 0 1.168.246 1.953.74 2.63.492.683 1.183 1.018 2.066 1.018.882 0 1.574-.342 2.067-1.019.492-.683.738-1.46.738-2.63zm2.737-.007c0 .902-.13 1.584-.397 2.33a5.52 5.52 0 0 1-1.128 1.906 4.986 4.986 0 0 1-1.752 1.223c-.685.286-1.739.45-2.265.45-.528-.006-1.574-.157-2.252-.45a5.096 5.096 0 0 1-1.744-1.223c-.487-.527-.863-1.162-1.137-1.906a6.345 6.345 0 0 1-.41-2.33c0-.902.123-1.77.397-2.508a5.554 5.554 0 0 1 1.15-1.892 5.133 5.133 0 0 1 1.75-1.216c.679-.287 1.425-.423 2.232-.423.808 0 1.553.142 2.237.423a4.88 4.88 0 0 1 1.753 1.216 5.644 5.644 0 0 1 1.135 1.892c.287.738.431 1.606.431 2.508zm-20.138 0c0 1.12.246 2.363.738 2.882.493.52 1.13.78 1.91.78.424 0 .828-.062 1.204-.178.377-.116.677-.253.917-.417V9.33a10.476 10.476 0 0 0-1.766-.226c-.971-.028-1.71.37-2.23 1.004-.513.636-.773 1.75-.773 2.788zm7.438 5.274c0 1.824-.466 3.156-1.404 4.004-.936.846-2.367 1.27-4.296 1.27-.705 0-2.17-.137-3.34-.396l.431-2.118c.98.205 2.272.26 2.95.26 1.074 0 1.84-.219 2.299-.656.459-.437.684-1.086.684-1.948v-.437a8.07 8.07 0 0 1-1.047.397c-.43.13-.93.198-1.492.198-.739 0-1.41-.116-2.018-.349a4.206 4.206 0 0 1-1.567-1.025c-.431-.45-.774-1.017-1.013-1.694-.24-.677-.363-1.885-.363-2.773 0-.834.13-1.88.384-2.577.26-.696.629-1.298 1.129-1.796.493-.498 1.095-.881 1.8-1.162a6.605 6.605 0 0 1 2.428-.457c.87 0 1.67.109 2.45.24.78.129 1.444.265 1.985.415V18.17z' fill='%235468FF'/%3E%3Cpath d='M6.972 6.677v1.627c-.712-.446-1.52-.67-2.425-.67-.585 0-1.045.13-1.38.391a1.24 1.24 0 0 0-.502 1.03c0 .425.164.765.494 1.02.33.256.835.532 1.516.83.447.192.795.356 1.045.495.25.138.537.332.862.582.324.25.563.548.718.894.154.345.23.741.23 1.188 0 .947-.334 1.691-1.004 2.234-.67.542-1.537.814-2.601.814-1.18 0-2.16-.229-2.936-.686v-1.708c.84.628 1.814.942 2.92.942.585 0 1.048-.136 1.388-.407.34-.271.51-.646.51-1.125 0-.287-.1-.55-.302-.79-.203-.24-.42-.42-.655-.542-.234-.123-.585-.29-1.053-.503a61.27 61.27 0 0 1-.582-.271 13.67 13.67 0 0 1-.55-.287 4.275 4.275 0 0 1-.567-.351 6.92 6.92 0 0 1-.455-.4c-.18-.17-.31-.34-.39-.51-.08-.17-.155-.37-.224-.598a2.553 2.553 0 0 1-.104-.742c0-.915.333-1.638.998-2.17.664-.532 1.523-.798 2.576-.798.968 0 1.793.17 2.473.51zm7.468 5.696v-.287c-.022-.607-.187-1.088-.495-1.444-.309-.357-.75-.535-1.324-.535-.532 0-.99.194-1.373.583-.382.388-.622.949-.717 1.683h3.909zm1.005 2.792v1.404c-.596.34-1.383.51-2.362.51-1.255 0-2.255-.377-3-1.132-.744-.755-1.116-1.744-1.116-2.968 0-1.297.34-2.316 1.021-3.055.68-.74 1.548-1.11 2.6-1.11 1.033 0 1.852.323 2.458.966.606.644.91 1.572.91 2.784 0 .33-.033.676-.096 1.038h-5.314c.107.702.405 1.239.894 1.611.49.372 1.106.558 1.85.558.862 0 1.58-.202 2.155-.606zm6.605-1.77h-1.212c-.596 0-1.045.116-1.349.35-.303.234-.454.532-.454.894 0 .372.117.664.35.877.235.213.575.32 1.022.32.51 0 .912-.142 1.204-.424.293-.281.44-.651.44-1.108v-.91zm-4.068-2.554V9.325c.627-.361 1.457-.542 2.489-.542 2.116 0 3.175 1.026 3.175 3.08V17h-1.548v-.957c-.415.68-1.143 1.02-2.186 1.02-.766 0-1.38-.22-1.843-.661-.462-.442-.694-1.003-.694-1.684 0-.776.293-1.38.878-1.81.585-.431 1.404-.647 2.457-.647h1.34V11.8c0-.554-.133-.971-.399-1.253-.266-.282-.707-.423-1.324-.423a4.07 4.07 0 0 0-2.345.718zm9.333-1.93v1.42c.394-1 1.101-1.5 2.123-1.5.148 0 .313.016.494.048v1.531a1.885 1.885 0 0 0-.75-.143c-.542 0-.989.24-1.34.718-.351.479-.527 1.048-.527 1.707V17h-1.563V8.91h1.563zm5.01 4.084c.022.82.272 1.492.75 2.019.479.526 1.15.79 2.01.79.639 0 1.235-.176 1.788-.527v1.404c-.521.319-1.186.479-1.995.479-1.265 0-2.276-.4-3.031-1.197-.755-.798-1.133-1.792-1.133-2.984 0-1.16.38-2.151 1.14-2.975.761-.825 1.79-1.237 3.088-1.237.702 0 1.346.149 1.93.447v1.436a3.242 3.242 0 0 0-1.77-.495c-.84 0-1.513.266-2.019.798-.505.532-.758 1.213-.758 2.042zM40.24 5.72v4.579c.458-1 1.293-1.5 2.505-1.5.787 0 1.42.245 1.899.734.479.49.718 1.17.718 2.042V17h-1.564v-5.106c0-.553-.14-.98-.422-1.284-.282-.303-.652-.455-1.11-.455-.531 0-1.002.202-1.411.606-.41.405-.615 1.022-.615 1.851V17h-1.563V5.72h1.563zm14.966 10.02c.596 0 1.096-.253 1.5-.758.404-.506.606-1.157.606-1.955 0-.915-.202-1.62-.606-2.114-.404-.495-.92-.742-1.548-.742-.553 0-1.05.224-1.491.67-.442.447-.662 1.133-.662 2.058 0 .958.212 1.67.638 2.138.425.469.946.703 1.563.703zM53.004 5.72v4.42c.574-.894 1.388-1.341 2.44-1.341 1.022 0 1.857.383 2.506 1.149.649.766.973 1.781.973 3.047 0 1.138-.309 2.109-.925 2.912-.617.803-1.463 1.205-2.537 1.205-1.075 0-1.894-.447-2.457-1.34V17h-1.58V5.72h1.58zm9.908 11.104l-3.223-7.913h1.739l1.005 2.632 1.26 3.415c.096-.32.48-1.458 1.15-3.415l.909-2.632h1.66l-2.92 7.866c-.777 2.074-1.963 3.11-3.559 3.11a2.92 2.92 0 0 1-.734-.079v-1.34c.17.042.351.064.543.064 1.032 0 1.755-.57 2.17-1.708z' fill='%235D6494'/%3E%3Cpath d='M89.632 5.967v-.772a.978.978 0 0 0-.978-.977h-2.28a.978.978 0 0 0-.978.977v.793c0 .088.082.15.171.13a7.127 7.127 0 0 1 1.984-.28c.65 0 1.295.088 1.917.259.082.02.164-.04.164-.13m-6.248 1.01l-.39-.389a.977.977 0 0 0-1.382 0l-.465.465a.973.973 0 0 0 0 1.38l.383.383c.062.061.15.047.205-.014.226-.307.472-.601.746-.874.281-.28.568-.526.883-.751.068-.042.075-.137.02-.2m4.16 2.453v3.341c0 .096.104.165.192.117l2.97-1.537c.068-.034.089-.117.055-.184a3.695 3.695 0 0 0-3.08-1.866c-.068 0-.136.054-.136.13m0 8.048a4.489 4.489 0 0 1-4.49-4.482 4.488 4.488 0 0 1 4.49-4.482 4.488 4.488 0 0 1 4.489 4.482 4.484 4.484 0 0 1-4.49 4.482m0-10.85a6.363 6.363 0 1 0 0 12.729 6.37 6.37 0 0 0 6.372-6.368 6.358 6.358 0 0 0-6.371-6.36' fill='%23FFF'/%3E%3C/g%3E%3C/svg%3E");background-repeat:no-repeat;background-position:50%;background-size:100%;overflow:hidden;text-indent:-9000px;padding:0!important;width:100%;height:100%;display:block}
++a.algolia-docsearch-suggestion {
++ text-decoration: none !important;
++}
++.algolia-docsearch-suggestion--category-header {
++ background: #0594cb;
++ padding-left: .25rem !important;
++ color: white !important;
++ border-radius: 3px;
++}
+/* These styles enhance the home page carousel, located here: themes/gohugoioTheme/layouts/partials/home-page-sections/showcase.html */
+.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: 0.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: 0.2em;
+ margin: 0;
+ font-size: 85%;
+ background-color: rgba(27, 31, 35, .05);
+ border-radius: 3px;
+}
+pre code {
+ display: block;
+ padding: 1.5em 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;
+}
+/* The Pygments highlighter comes with its own styles. */
+.highlight pre {
+ background-color: inherit;
+ color: inherit;
+ padding: 0.5em;
+ font-size: .875rem;
+}
+/*We are adding the copy button content here so we can change it with javascript. See the "Clipboard scripts"*/
+.copy:after {
+ content: "Copy"
+}
+.copied:after {
+ content: "Copied"
+}
+@media screen and (min-width: 60em) {
+ .full-width, pre.expand:hover
+ {
+ /*width: 100vw;
+ position: relative;
+ left: 50%;
+ right: 50%;
+ margin-left: -50vw;
+ margin-right: -50vw;*/
+ /*width: 60vw;*/
+ /*position: relative;
+ left: 50%;
+ right: 50%;*/
+ /*margin-left: -30vw;*/
+ 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:white;
+}
+.tab-pane code{
+ background:#f1f2f2;
+ border-radius:0;
+}
+.tab-pane .chroma{
+ background:none;
+ 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;
+}
+/* Treatment of copy buttons inside a tab module */
+.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; /* WebKit/Blink Browsers */
+ color: white;
+}
+body {
+
+line-height: 1.45;
+
+}
+p {margin-bottom: 1.3em;}
+h1, h2, h3, h4 {
+margin: 1.414em 0 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: 0.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: white;
+ 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: bold;
+ font-size: 1.125rem;
+}
+dd {
+ margin: .5em 0 2em 0;
+ 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);
+ }
+}
+/* From http://cssfontstack.com */
+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;
+}
+/* Monospaced Typefaces (for code) */
+.courier {
+ font-family: 'Courier Next',
+ courier,
+ monospace;
+}
+/* Sans-Serif Typefaces */
+.helvetica {
+ font-family: 'helvetica neue', helvetica,
+ sans-serif;
+}
+.avenir {
+ font-family: 'avenir next', avenir,
+ sans-serif;
+}
+/* Serif Typefaces */
+.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.html: https://github.com/gohugoio/hugo/blob/master/tpl/tplimpl/template_embedded.go#L117 */
+.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: white;
+ 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;
+}
+/* Hides non-meaningful TOC items*/
+#TableOfContents ul li ul li ul li{
+ display: none;
+ }
+#TableOfContents ul li {
+ color: black;
+ 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: white;
+
+}
+.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: #bb0000;
+}
+@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; }
+/* Background */
+.chroma { background-color: #ffffff }
+/* Error */
+.chroma .err { color: #a61717; background-color: #e3d2d2 }
+/* LineTableTD */
+.chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; }
+/* LineTable */
+.chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; width: auto; overflow: auto; display: block; }
+/* LineHighlight */
+.chroma .hl { display: block; width: 100%;background-color: #ffffcc }
+/* LineNumbersTable */
+.chroma .lnt { margin-right: 0.4em; padding: 0 0.4em 0 0.4em; }
+/* LineNumbers */
+.chroma .ln { margin-right: 0.4em; padding: 0 0.4em 0 0.4em; }
+/* Keyword */
+.chroma .k { font-weight: bold }
+/* KeywordConstant */
+.chroma .kc { font-weight: bold }
+/* KeywordDeclaration */
+.chroma .kd { font-weight: bold }
+/* KeywordNamespace */
+.chroma .kn { font-weight: bold }
+/* KeywordPseudo */
+.chroma .kp { font-weight: bold }
+/* KeywordReserved */
+.chroma .kr { font-weight: bold }
+/* KeywordType */
+.chroma .kt { color: #445588; font-weight: bold }
+/* NameAttribute */
+.chroma .na { color: #008080 }
+/* NameBuiltin */
+.chroma .nb { color: #999999 }
+/* NameClass */
+.chroma .nc { color: #445588; font-weight: bold }
+/* NameConstant */
+.chroma .no { color: #008080 }
+/* NameEntity */
+.chroma .ni { color: #800080 }
+/* NameException */
+.chroma .ne { color: #990000; font-weight: bold }
+/* NameFunction */
+.chroma .nf { color: #990000; font-weight: bold }
+/* NameNamespace */
+.chroma .nn { color: #555555 }
+/* NameTag */
+.chroma .nt { color: #000080 }
+/* NameVariable */
+.chroma .nv { color: #008080 }
+/* LiteralString */
+.chroma .s { color: #bb8844 }
+/* LiteralStringAffix */
+.chroma .sa { color: #bb8844 }
+/* LiteralStringBacktick */
+.chroma .sb { color: #bb8844 }
+/* LiteralStringChar */
+.chroma .sc { color: #bb8844 }
+/* LiteralStringDelimiter */
+.chroma .dl { color: #bb8844 }
+/* LiteralStringDoc */
+.chroma .sd { color: #bb8844 }
+/* LiteralStringDouble */
+.chroma .s2 { color: #bb8844 }
+/* LiteralStringEscape */
+.chroma .se { color: #bb8844 }
+/* LiteralStringHeredoc */
+.chroma .sh { color: #bb8844 }
+/* LiteralStringInterpol */
+.chroma .si { color: #bb8844 }
+/* LiteralStringOther */
+.chroma .sx { color: #bb8844 }
+/* LiteralStringRegex */
+.chroma .sr { color: #808000 }
+/* LiteralStringSingle */
+.chroma .s1 { color: #bb8844 }
+/* LiteralStringSymbol */
+.chroma .ss { color: #bb8844 }
+/* LiteralNumber */
+.chroma .m { color: #009999 }
+/* LiteralNumberBin */
+.chroma .mb { color: #009999 }
+/* LiteralNumberFloat */
+.chroma .mf { color: #009999 }
+/* LiteralNumberHex */
+.chroma .mh { color: #009999 }
+/* LiteralNumberInteger */
+.chroma .mi { color: #009999 }
+/* LiteralNumberIntegerLong */
+.chroma .il { color: #009999 }
+/* LiteralNumberOct */
+.chroma .mo { color: #009999 }
+/* Operator */
+.chroma .o { font-weight: bold }
+/* OperatorWord */
+.chroma .ow { font-weight: bold }
+/* Comment */
+.chroma .c { color: #999988; font-style: italic }
+/* CommentHashbang */
+.chroma .ch { color: #999988; font-style: italic }
+/* CommentMultiline */
+.chroma .cm { color: #999988; font-style: italic }
+/* CommentSingle */
+.chroma .c1 { color: #999988; font-style: italic }
+/* CommentSpecial */
+.chroma .cs { color: #999999; font-weight: bold; font-style: italic }
+/* CommentPreproc */
+.chroma .cp { color: #999999; font-weight: bold }
+/* CommentPreprocFile */
+.chroma .cpf { color: #999999; font-weight: bold }
+/* GenericDeleted */
+.chroma .gd { color: #000000; background-color: #ffdddd }
+/* GenericEmph */
+.chroma .ge { font-style: italic }
+/* GenericError */
+.chroma .gr { color: #aa0000 }
+/* GenericHeading */
+.chroma .gh { color: #999999 }
+/* GenericInserted */
+.chroma .gi { color: #000000; background-color: #ddffdd }
+/* GenericOutput */
+.chroma .go { color: #888888 }
+/* GenericPrompt */
+.chroma .gp { color: #555555 }
+/* GenericStrong */
+.chroma .gs { font-weight: bold }
+/* GenericSubheading */
+.chroma .gu { color: #aaaaaa }
+/* GenericTraceback */
+.chroma .gt { color: #aa0000 }
+/* TextWhitespace */
+.chroma .w { color: #bbbbbb }
+.nested-blockquote blockquote {
+ border-left: 4px solid #0594CB;
+ padding-left: 1em;
+ /*margin: 0;*/
+}
+.mw-90 {
+ max-width:90%;
+}
+/* purgecss end ignore */
--- /dev/null
-
- <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+<!DOCTYPE html>
+<html class="no-js" lang="{{ with $.Site.LanguageCode }}{{ . }}{{ else }}en-us{{ end }}">
+ <head>
+ <meta charset="utf-8">
++ {{/* https://www.zachleat.com/web/preload/ */}}
++ <link rel="preload" href="{{ "files/muli-latin-200.woff2" | absURL }}" as="font" type="font/woff2" crossorigin>
++ <link rel="preload" href="{{ "files/muli-latin-400.woff2" | absURL }}" as="font" type="font/woff2" crossorigin>
++ <link rel="preload" href="{{ "files/muli-latin-800.woff2" | absURL }}" as="font" type="font/woff2" crossorigin>
++
++ <meta http-equiv="X-UA-Compatible" content="IE=edge">
+ {{/* NOTE: the Site's title, and if there is a page title, that is set too */}}
+ <title>{{ block "title" . }}{{ with .Title }}{{ . }} | {{ end }}{{ .Site.Title }}{{ end }}</title>
+ <meta name="HandheldFriendly" content="True">
+ <meta name="MobileOptimized" content="320">
+
+ <meta name="viewport" content="width=device-width,minimum-scale=1">
+ {{ .Hugo.Generator }}
+
+ {{ if eq (getenv "HUGO_ENV") "production" | or (eq .Site.Params.env "production") }}
+ <META NAME="ROBOTS" CONTENT="INDEX, FOLLOW">
+ {{ else }}
+ <META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
+ {{ end }}
+
+ {{ range .AlternativeOutputFormats -}}
+ <link rel="{{ .Rel }}" type="{{ .MediaType.Type }}" href="{{ .Permalink | safeURL }}">
+ {{ end -}}
+
+ {{ $stylesheet := resources.Get "output/css/app.css" | minify | fingerprint }}
+ {{ with $stylesheet }}
+ <link rel="stylesheet" href="{{ .Permalink | relURL }}" integrity="{{ .Data.Integrity }}" crossorigin="anonymous">
+ {{ $.Scratch.Set "stylesheet" . }}
+ {{end}}
+
+
+ {{ block "scripts" . }}
+ {{- partial "site-scripts.html" . -}}
+ {{ end }}
+ {{ partial "site-manifest.html" . }}
+ {{- partial "head-additions.html" . -}}
+ {{- template "_internal/opengraph.html" . -}}
+ {{- template "_internal/google_news.html" . -}}
+ {{- template "_internal/schema.html" . -}}
+ {{- template "_internal/twitter_cards.html" . -}}
+
+ {{ if eq (getenv "HUGO_ENV") "production" | or (eq .Site.Params.env "production") }}
+ {{ partial "gtag" . }}
+ {{ end }}
+
+
+
+
+ </head>
+ <body class="ma0 sans-serif bg-primary-color-light{{ with getenv "HUGO_ENV" }} {{ . }}{{ end }}">
+ {{ block "nav" . }}{{ partial "site-nav.html" . }}{{ end }}
+ {{ block "header" . }}{{ end }}
+ <main role="main" class="content-with-sidebar min-vh-100 pb7 pb0-ns">
+ {{ block "main" . }}{{ end }}
+ </main>
+
+ {{ block "footer" . }}{{ partialCached "site-footer.html" . }}{{ end }}
+
+
+ </body>
+</html>
--- /dev/null
- */
-
- {{ $stylesheet := resources.Get "output/css/app.css" }}
- {{ $scripts := resources.Get "output/js/app.js" }}
-
- {{ with $stylesheet -}}Link: <{{ .Permalink | relURL }}>; rel=preload; as=style nopush{{- end}}
- {{ with $scripts -}}Link: <{{ .Permalink | relURL }}>; rel=preload; as=script nopush{{- end}}
- {{ range (readDir "/static/fonts/") }}
- Link: </fonts/{{ .Name }}>; rel=preload; as=font nopush
- {{ end }}
- {{ range (readDir "./themes/gohugoioTheme/static/fonts") }}
- Link: </fonts/{{ .Name }}>; rel=preload; as=font nopush
- {{ end }}
-
- {{ with $stylesheet }}
- {{ .Permalink | relURL }}
- Cache-Control: public, max-age=31556926,immutable
- {{end }}
- {{ with $scripts }}
- {{ .Permalink | relURL }}
- Cache-Control: public, max-age=31556926,immutable
- {{end}}
-
+/*
+ X-Frame-Options: DENY
+ X-XSS-Protection: 1; mode=block
+ X-Content-Type-Options: nosniff
+ Referrer-Policy: origin-when-cross-origin
++/*
++ Link: <{{ "dist/app.bundle.js" | relURL }}>; rel=preload; as=script
++ Link: <{{ "dist/main.css" | relURL }}>; rel=preload; as=style
--- /dev/null
- <f3 class="b f3 light-gray">Hugo Sponsors</f3>
- <div class="flex-ns flex-wrap center justify-between pt3">
+{{$classes_box := "ba b--light-gray bg-light-gray br3 flex flex-column flex-wrap items-center justify-center ph3 pv4 mb4 w-100 w-30-l "}}
+{{$gtag := .gtag | default "unknown" }}
+{{ with .cx.Site.Data.sponsors }}
+ <section class="{{ $.classes_section | default "bg-primary-color-dark b--dark-gray bb bt ph5 pv4 w-100"}}">
+ <div class="center mw9">
++ <h3 class="b f3 mv0 light-gray">Hugo Sponsors</h3>
++ <div class="flex-ns flex-wrap center justify-between pt3">
+ {{ range .banners }}
+ {{ $banner := . }}
+ {{if .logo}}
+ <div class="{{$classes_box}} o-100">
+ {{with .link -}}
+ {{ $url := printf "%s?%s" . (querify "utm_source" "homepage" "utm_medium" "banner" "utm_campaign" "hugosponsor") | safeURL }}
+ {{ if eq (getenv "HUGO_ENV") "production" | or (eq $.cx.Site.Params.env "production") }}
+ {{ $gtagID := printf "Sponsor %s %s" $banner.name $gtag | title }}
+ <a href="{{ $url }}" onclick="trackOutboundLink({{ printf "'%s', '%s'" $gtagID $url | safeJS }}); return false;" class="grow">
+ {{ else }}
+ <a href="{{ $url }}" class="grow">
+ {{ end }}
+ {{- end}}
+ <img src="{{ .logo }}" alt="Logo for {{ .name }}" class="img h3 center" />
+ {{with .link}}</a>{{end}}
+ {{with .copy}}
+ <p class="center lh-copy gray mv1 tc {{$.classes_copy | default "f5 w-70-ns"}}">
+ {{- . -}}
+ </p>
+ {{end}}
+ </div>
+ {{else}}
+ <div class="{{$classes_box}} o-10">
+ <p class="b black tc">Your Logo Here</p>
+ </div>
+ {{end}}
+ {{end}}
+ </div>
+ </div>
+ </section>
+{{end}}
--- /dev/null
- <input type="search" id="search-input" class="needs-js bn f5 input-reset lh-solid mt3 mt0-ns pl4 pv2 w5 white" placeholder="Search the Docs" type="text" name="search-input" value="" style="background: transparent url('/images/icon-search.png') no-repeat left center;background-size:16px 16px;">
+<form id="site-search-form" action="" role="search">
+ <fieldset class="bn ma0 pa0">
+ <label class="clip" for="search-input">Search</label>
++ <input type="search" id="search-input" class="needs-js bg-left bg-transparent bn f5 input-reset lh-solid mt3 mt0-ns pl4 pv2 w5 white" placeholder="Search the Docs" name="search-input" value="" style="background-image:url('/images/icon-search.png');background-size:16px 16px;">
+ </fieldset>
+</form>
--- /dev/null
--- /dev/null
++{
++ "name": "gohugo-default-styles",
++ "version": "1.0.0",
++ "lockfileVersion": 1,
++ "requires": true,
++ "dependencies": {
++ "abbrev": {
++ "version": "1.1.0",
++ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz",
++ "integrity": "sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8=",
++ "dev": true
++ },
++ "acorn": {
++ "version": "5.1.1",
++ "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.1.1.tgz",
++ "integrity": "sha512-vOk6uEMctu0vQrvuSqFdJyqj1Q0S5VTDL79qtjo+DhRr+1mmaD+tluFSCZqhvi/JUhXSzoZN2BhtstaPEeE8cw==",
++ "dev": true
++ },
++ "acorn-dynamic-import": {
++ "version": "2.0.2",
++ "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz",
++ "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=",
++ "dev": true,
++ "requires": {
++ "acorn": "^4.0.3"
++ },
++ "dependencies": {
++ "acorn": {
++ "version": "4.0.13",
++ "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz",
++ "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=",
++ "dev": true
++ }
++ }
++ },
++ "agentkeepalive": {
++ "version": "2.2.0",
++ "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-2.2.0.tgz",
++ "integrity": "sha1-xdG9SxKQCPEWPyNvhuX66iAm4u8=",
++ "dev": true
++ },
++ "ajv": {
++ "version": "4.11.8",
++ "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz",
++ "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=",
++ "dev": true,
++ "requires": {
++ "co": "^4.6.0",
++ "json-stable-stringify": "^1.0.1"
++ }
++ },
++ "algoliasearch": {
++ "version": "3.24.0",
++ "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-3.24.0.tgz",
++ "integrity": "sha1-0KasKWO3gdL7BZo6hT/hh2VnM0Y=",
++ "dev": true,
++ "requires": {
++ "agentkeepalive": "^2.2.0",
++ "debug": "^2.6.8",
++ "envify": "^4.0.0",
++ "es6-promise": "^4.1.0",
++ "events": "^1.1.0",
++ "foreach": "^2.0.5",
++ "global": "^4.3.2",
++ "inherits": "^2.0.1",
++ "isarray": "^2.0.1",
++ "load-script": "^1.0.0",
++ "object-keys": "^1.0.11",
++ "querystring-es3": "^0.2.1",
++ "reduce": "^1.0.1",
++ "semver": "^5.1.0",
++ "tunnel-agent": "^0.6.0"
++ },
++ "dependencies": {
++ "es6-promise": {
++ "version": "4.1.1",
++ "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.1.1.tgz",
++ "integrity": "sha512-OaU1hHjgJf+b0NzsxCg7NdIYERD6Hy/PEmFLTjw+b65scuisG3Kt4QoTvJ66BBkPZ581gr0kpoVzKnxniM8nng==",
++ "dev": true
++ },
++ "isarray": {
++ "version": "2.0.1",
++ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz",
++ "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=",
++ "dev": true
++ },
++ "tunnel-agent": {
++ "version": "0.6.0",
++ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
++ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
++ "dev": true,
++ "requires": {
++ "safe-buffer": "^5.0.1"
++ }
++ }
++ }
++ },
++ "align-text": {
++ "version": "0.1.4",
++ "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
++ "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=",
++ "dev": true,
++ "requires": {
++ "kind-of": "^3.0.2",
++ "longest": "^1.0.1",
++ "repeat-string": "^1.5.2"
++ }
++ },
++ "alphanum-sort": {
++ "version": "1.0.2",
++ "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz",
++ "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=",
++ "dev": true
++ },
++ "ansi-regex": {
++ "version": "2.1.1",
++ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
++ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
++ "dev": true
++ },
++ "ansi-styles": {
++ "version": "2.2.1",
++ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
++ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
++ "dev": true
++ },
++ "any-promise": {
++ "version": "0.1.0",
++ "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-0.1.0.tgz",
++ "integrity": "sha1-gwtoCqflbzNFHUsEnzvYBESY7ic=",
++ "dev": true
++ },
++ "anymatch": {
++ "version": "1.3.0",
++ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.0.tgz",
++ "integrity": "sha1-o+Uvo5FoyCX/V7AkgSbOWo/5VQc=",
++ "dev": true,
++ "requires": {
++ "arrify": "^1.0.0",
++ "micromatch": "^2.1.5"
++ }
++ },
++ "argparse": {
++ "version": "1.0.9",
++ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz",
++ "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=",
++ "dev": true,
++ "requires": {
++ "sprintf-js": "~1.0.2"
++ }
++ },
++ "arr-diff": {
++ "version": "2.0.0",
++ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
++ "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
++ "dev": true,
++ "requires": {
++ "arr-flatten": "^1.0.1"
++ }
++ },
++ "arr-flatten": {
++ "version": "1.1.0",
++ "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
++ "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
++ "dev": true
++ },
++ "array-unique": {
++ "version": "0.2.1",
++ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
++ "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=",
++ "dev": true
++ },
++ "arrify": {
++ "version": "1.0.1",
++ "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
++ "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
++ "dev": true
++ },
++ "asn1.js": {
++ "version": "4.9.1",
++ "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.9.1.tgz",
++ "integrity": "sha1-SLokC0WpKA6UdImQull9IWYX/UA=",
++ "dev": true,
++ "requires": {
++ "bn.js": "^4.0.0",
++ "inherits": "^2.0.1",
++ "minimalistic-assert": "^1.0.0"
++ }
++ },
++ "assert": {
++ "version": "1.4.1",
++ "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz",
++ "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=",
++ "dev": true,
++ "requires": {
++ "util": "0.10.3"
++ }
++ },
++ "async": {
++ "version": "2.5.0",
++ "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz",
++ "integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==",
++ "dev": true,
++ "requires": {
++ "lodash": "^4.14.0"
++ }
++ },
++ "async-each": {
++ "version": "1.0.1",
++ "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz",
++ "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=",
++ "dev": true
++ },
++ "autocomplete.js": {
++ "version": "0.28.2",
++ "resolved": "https://registry.npmjs.org/autocomplete.js/-/autocomplete.js-0.28.2.tgz",
++ "integrity": "sha1-7EXDTbjzgdRzK99FoKHveu0ewiA=",
++ "dev": true,
++ "requires": {
++ "immediate": "^3.2.3"
++ }
++ },
++ "autoprefixer": {
++ "version": "6.7.7",
++ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz",
++ "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=",
++ "dev": true,
++ "requires": {
++ "browserslist": "^1.7.6",
++ "caniuse-db": "^1.0.30000634",
++ "normalize-range": "^0.1.2",
++ "num2fraction": "^1.2.2",
++ "postcss": "^5.2.16",
++ "postcss-value-parser": "^3.2.3"
++ },
++ "dependencies": {
++ "browserslist": {
++ "version": "1.7.7",
++ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz",
++ "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=",
++ "dev": true,
++ "requires": {
++ "caniuse-db": "^1.0.30000639",
++ "electron-to-chromium": "^1.2.7"
++ }
++ }
++ }
++ },
++ "babel-code-frame": {
++ "version": "6.22.0",
++ "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.22.0.tgz",
++ "integrity": "sha1-AnYgvuVnqIwyVhV05/0IAdMxGOQ=",
++ "dev": true,
++ "requires": {
++ "chalk": "^1.1.0",
++ "esutils": "^2.0.2",
++ "js-tokens": "^3.0.0"
++ }
++ },
++ "babel-core": {
++ "version": "6.26.3",
++ "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz",
++ "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==",
++ "dev": true,
++ "requires": {
++ "babel-code-frame": "^6.26.0",
++ "babel-generator": "^6.26.0",
++ "babel-helpers": "^6.24.1",
++ "babel-messages": "^6.23.0",
++ "babel-register": "^6.26.0",
++ "babel-runtime": "^6.26.0",
++ "babel-template": "^6.26.0",
++ "babel-traverse": "^6.26.0",
++ "babel-types": "^6.26.0",
++ "babylon": "^6.18.0",
++ "convert-source-map": "^1.5.1",
++ "debug": "^2.6.9",
++ "json5": "^0.5.1",
++ "lodash": "^4.17.4",
++ "minimatch": "^3.0.4",
++ "path-is-absolute": "^1.0.1",
++ "private": "^0.1.8",
++ "slash": "^1.0.0",
++ "source-map": "^0.5.7"
++ },
++ "dependencies": {
++ "babel-code-frame": {
++ "version": "6.26.0",
++ "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
++ "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
++ "dev": true,
++ "requires": {
++ "chalk": "^1.1.3",
++ "esutils": "^2.0.2",
++ "js-tokens": "^3.0.2"
++ }
++ },
++ "source-map": {
++ "version": "0.5.7",
++ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
++ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
++ "dev": true
++ }
++ }
++ },
++ "babel-generator": {
++ "version": "6.26.1",
++ "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz",
++ "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==",
++ "dev": true,
++ "requires": {
++ "babel-messages": "^6.23.0",
++ "babel-runtime": "^6.26.0",
++ "babel-types": "^6.26.0",
++ "detect-indent": "^4.0.0",
++ "jsesc": "^1.3.0",
++ "lodash": "^4.17.4",
++ "source-map": "^0.5.7",
++ "trim-right": "^1.0.1"
++ },
++ "dependencies": {
++ "source-map": {
++ "version": "0.5.7",
++ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
++ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
++ "dev": true
++ }
++ }
++ },
++ "babel-helper-builder-binary-assignment-operator-visitor": {
++ "version": "6.24.1",
++ "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz",
++ "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=",
++ "dev": true,
++ "requires": {
++ "babel-helper-explode-assignable-expression": "^6.24.1",
++ "babel-runtime": "^6.22.0",
++ "babel-types": "^6.24.1"
++ }
++ },
++ "babel-helper-call-delegate": {
++ "version": "6.24.1",
++ "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz",
++ "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=",
++ "dev": true,
++ "requires": {
++ "babel-helper-hoist-variables": "^6.24.1",
++ "babel-runtime": "^6.22.0",
++ "babel-traverse": "^6.24.1",
++ "babel-types": "^6.24.1"
++ }
++ },
++ "babel-helper-define-map": {
++ "version": "6.26.0",
++ "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz",
++ "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=",
++ "dev": true,
++ "requires": {
++ "babel-helper-function-name": "^6.24.1",
++ "babel-runtime": "^6.26.0",
++ "babel-types": "^6.26.0",
++ "lodash": "^4.17.4"
++ }
++ },
++ "babel-helper-explode-assignable-expression": {
++ "version": "6.24.1",
++ "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz",
++ "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=",
++ "dev": true,
++ "requires": {
++ "babel-runtime": "^6.22.0",
++ "babel-traverse": "^6.24.1",
++ "babel-types": "^6.24.1"
++ }
++ },
++ "babel-helper-function-name": {
++ "version": "6.24.1",
++ "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz",
++ "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=",
++ "dev": true,
++ "requires": {
++ "babel-helper-get-function-arity": "^6.24.1",
++ "babel-runtime": "^6.22.0",
++ "babel-template": "^6.24.1",
++ "babel-traverse": "^6.24.1",
++ "babel-types": "^6.24.1"
++ }
++ },
++ "babel-helper-get-function-arity": {
++ "version": "6.24.1",
++ "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz",
++ "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=",
++ "dev": true,
++ "requires": {
++ "babel-runtime": "^6.22.0",
++ "babel-types": "^6.24.1"
++ }
++ },
++ "babel-helper-hoist-variables": {
++ "version": "6.24.1",
++ "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz",
++ "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=",
++ "dev": true,
++ "requires": {
++ "babel-runtime": "^6.22.0",
++ "babel-types": "^6.24.1"
++ }
++ },
++ "babel-helper-optimise-call-expression": {
++ "version": "6.24.1",
++ "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz",
++ "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=",
++ "dev": true,
++ "requires": {
++ "babel-runtime": "^6.22.0",
++ "babel-types": "^6.24.1"
++ }
++ },
++ "babel-helper-regex": {
++ "version": "6.26.0",
++ "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz",
++ "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=",
++ "dev": true,
++ "requires": {
++ "babel-runtime": "^6.26.0",
++ "babel-types": "^6.26.0",
++ "lodash": "^4.17.4"
++ }
++ },
++ "babel-helper-remap-async-to-generator": {
++ "version": "6.24.1",
++ "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz",
++ "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=",
++ "dev": true,
++ "requires": {
++ "babel-helper-function-name": "^6.24.1",
++ "babel-runtime": "^6.22.0",
++ "babel-template": "^6.24.1",
++ "babel-traverse": "^6.24.1",
++ "babel-types": "^6.24.1"
++ }
++ },
++ "babel-helper-replace-supers": {
++ "version": "6.24.1",
++ "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz",
++ "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=",
++ "dev": true,
++ "requires": {
++ "babel-helper-optimise-call-expression": "^6.24.1",
++ "babel-messages": "^6.23.0",
++ "babel-runtime": "^6.22.0",
++ "babel-template": "^6.24.1",
++ "babel-traverse": "^6.24.1",
++ "babel-types": "^6.24.1"
++ }
++ },
++ "babel-helpers": {
++ "version": "6.24.1",
++ "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz",
++ "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=",
++ "dev": true,
++ "requires": {
++ "babel-runtime": "^6.22.0",
++ "babel-template": "^6.24.1"
++ }
++ },
++ "babel-loader": {
++ "version": "7.1.1",
++ "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-7.1.1.tgz",
++ "integrity": "sha1-uHE0yLEuPkwqlOBUYIW8aAorhIg=",
++ "dev": true,
++ "requires": {
++ "find-cache-dir": "^1.0.0",
++ "loader-utils": "^1.0.2",
++ "mkdirp": "^0.5.1"
++ }
++ },
++ "babel-messages": {
++ "version": "6.23.0",
++ "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz",
++ "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=",
++ "dev": true,
++ "requires": {
++ "babel-runtime": "^6.22.0"
++ }
++ },
++ "babel-plugin-check-es2015-constants": {
++ "version": "6.22.0",
++ "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz",
++ "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=",
++ "dev": true,
++ "requires": {
++ "babel-runtime": "^6.22.0"
++ }
++ },
++ "babel-plugin-syntax-async-functions": {
++ "version": "6.13.0",
++ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz",
++ "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=",
++ "dev": true
++ },
++ "babel-plugin-syntax-exponentiation-operator": {
++ "version": "6.13.0",
++ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz",
++ "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=",
++ "dev": true
++ },
++ "babel-plugin-syntax-trailing-function-commas": {
++ "version": "6.22.0",
++ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz",
++ "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=",
++ "dev": true
++ },
++ "babel-plugin-transform-async-to-generator": {
++ "version": "6.24.1",
++ "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz",
++ "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=",
++ "dev": true,
++ "requires": {
++ "babel-helper-remap-async-to-generator": "^6.24.1",
++ "babel-plugin-syntax-async-functions": "^6.8.0",
++ "babel-runtime": "^6.22.0"
++ }
++ },
++ "babel-plugin-transform-es2015-arrow-functions": {
++ "version": "6.22.0",
++ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz",
++ "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=",
++ "dev": true,
++ "requires": {
++ "babel-runtime": "^6.22.0"
++ }
++ },
++ "babel-plugin-transform-es2015-block-scoped-functions": {
++ "version": "6.22.0",
++ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz",
++ "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=",
++ "dev": true,
++ "requires": {
++ "babel-runtime": "^6.22.0"
++ }
++ },
++ "babel-plugin-transform-es2015-block-scoping": {
++ "version": "6.26.0",
++ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz",
++ "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=",
++ "dev": true,
++ "requires": {
++ "babel-runtime": "^6.26.0",
++ "babel-template": "^6.26.0",
++ "babel-traverse": "^6.26.0",
++ "babel-types": "^6.26.0",
++ "lodash": "^4.17.4"
++ }
++ },
++ "babel-plugin-transform-es2015-classes": {
++ "version": "6.24.1",
++ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz",
++ "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=",
++ "dev": true,
++ "requires": {
++ "babel-helper-define-map": "^6.24.1",
++ "babel-helper-function-name": "^6.24.1",
++ "babel-helper-optimise-call-expression": "^6.24.1",
++ "babel-helper-replace-supers": "^6.24.1",
++ "babel-messages": "^6.23.0",
++ "babel-runtime": "^6.22.0",
++ "babel-template": "^6.24.1",
++ "babel-traverse": "^6.24.1",
++ "babel-types": "^6.24.1"
++ }
++ },
++ "babel-plugin-transform-es2015-computed-properties": {
++ "version": "6.24.1",
++ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz",
++ "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=",
++ "dev": true,
++ "requires": {
++ "babel-runtime": "^6.22.0",
++ "babel-template": "^6.24.1"
++ }
++ },
++ "babel-plugin-transform-es2015-destructuring": {
++ "version": "6.23.0",
++ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz",
++ "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=",
++ "dev": true,
++ "requires": {
++ "babel-runtime": "^6.22.0"
++ }
++ },
++ "babel-plugin-transform-es2015-duplicate-keys": {
++ "version": "6.24.1",
++ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz",
++ "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=",
++ "dev": true,
++ "requires": {
++ "babel-runtime": "^6.22.0",
++ "babel-types": "^6.24.1"
++ }
++ },
++ "babel-plugin-transform-es2015-for-of": {
++ "version": "6.23.0",
++ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz",
++ "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=",
++ "dev": true,
++ "requires": {
++ "babel-runtime": "^6.22.0"
++ }
++ },
++ "babel-plugin-transform-es2015-function-name": {
++ "version": "6.24.1",
++ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz",
++ "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=",
++ "dev": true,
++ "requires": {
++ "babel-helper-function-name": "^6.24.1",
++ "babel-runtime": "^6.22.0",
++ "babel-types": "^6.24.1"
++ }
++ },
++ "babel-plugin-transform-es2015-literals": {
++ "version": "6.22.0",
++ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz",
++ "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=",
++ "dev": true,
++ "requires": {
++ "babel-runtime": "^6.22.0"
++ }
++ },
++ "babel-plugin-transform-es2015-modules-amd": {
++ "version": "6.24.1",
++ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz",
++ "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=",
++ "dev": true,
++ "requires": {
++ "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1",
++ "babel-runtime": "^6.22.0",
++ "babel-template": "^6.24.1"
++ }
++ },
++ "babel-plugin-transform-es2015-modules-commonjs": {
++ "version": "6.26.2",
++ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz",
++ "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==",
++ "dev": true,
++ "requires": {
++ "babel-plugin-transform-strict-mode": "^6.24.1",
++ "babel-runtime": "^6.26.0",
++ "babel-template": "^6.26.0",
++ "babel-types": "^6.26.0"
++ }
++ },
++ "babel-plugin-transform-es2015-modules-systemjs": {
++ "version": "6.24.1",
++ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz",
++ "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=",
++ "dev": true,
++ "requires": {
++ "babel-helper-hoist-variables": "^6.24.1",
++ "babel-runtime": "^6.22.0",
++ "babel-template": "^6.24.1"
++ }
++ },
++ "babel-plugin-transform-es2015-modules-umd": {
++ "version": "6.24.1",
++ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz",
++ "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=",
++ "dev": true,
++ "requires": {
++ "babel-plugin-transform-es2015-modules-amd": "^6.24.1",
++ "babel-runtime": "^6.22.0",
++ "babel-template": "^6.24.1"
++ }
++ },
++ "babel-plugin-transform-es2015-object-super": {
++ "version": "6.24.1",
++ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz",
++ "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=",
++ "dev": true,
++ "requires": {
++ "babel-helper-replace-supers": "^6.24.1",
++ "babel-runtime": "^6.22.0"
++ }
++ },
++ "babel-plugin-transform-es2015-parameters": {
++ "version": "6.24.1",
++ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz",
++ "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=",
++ "dev": true,
++ "requires": {
++ "babel-helper-call-delegate": "^6.24.1",
++ "babel-helper-get-function-arity": "^6.24.1",
++ "babel-runtime": "^6.22.0",
++ "babel-template": "^6.24.1",
++ "babel-traverse": "^6.24.1",
++ "babel-types": "^6.24.1"
++ }
++ },
++ "babel-plugin-transform-es2015-shorthand-properties": {
++ "version": "6.24.1",
++ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz",
++ "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=",
++ "dev": true,
++ "requires": {
++ "babel-runtime": "^6.22.0",
++ "babel-types": "^6.24.1"
++ }
++ },
++ "babel-plugin-transform-es2015-spread": {
++ "version": "6.22.0",
++ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz",
++ "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=",
++ "dev": true,
++ "requires": {
++ "babel-runtime": "^6.22.0"
++ }
++ },
++ "babel-plugin-transform-es2015-sticky-regex": {
++ "version": "6.24.1",
++ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz",
++ "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=",
++ "dev": true,
++ "requires": {
++ "babel-helper-regex": "^6.24.1",
++ "babel-runtime": "^6.22.0",
++ "babel-types": "^6.24.1"
++ }
++ },
++ "babel-plugin-transform-es2015-template-literals": {
++ "version": "6.22.0",
++ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz",
++ "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=",
++ "dev": true,
++ "requires": {
++ "babel-runtime": "^6.22.0"
++ }
++ },
++ "babel-plugin-transform-es2015-typeof-symbol": {
++ "version": "6.23.0",
++ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz",
++ "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=",
++ "dev": true,
++ "requires": {
++ "babel-runtime": "^6.22.0"
++ }
++ },
++ "babel-plugin-transform-es2015-unicode-regex": {
++ "version": "6.24.1",
++ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz",
++ "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=",
++ "dev": true,
++ "requires": {
++ "babel-helper-regex": "^6.24.1",
++ "babel-runtime": "^6.22.0",
++ "regexpu-core": "^2.0.0"
++ }
++ },
++ "babel-plugin-transform-exponentiation-operator": {
++ "version": "6.24.1",
++ "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz",
++ "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=",
++ "dev": true,
++ "requires": {
++ "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1",
++ "babel-plugin-syntax-exponentiation-operator": "^6.8.0",
++ "babel-runtime": "^6.22.0"
++ }
++ },
++ "babel-plugin-transform-regenerator": {
++ "version": "6.26.0",
++ "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz",
++ "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=",
++ "dev": true,
++ "requires": {
++ "regenerator-transform": "^0.10.0"
++ }
++ },
++ "babel-plugin-transform-strict-mode": {
++ "version": "6.24.1",
++ "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz",
++ "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=",
++ "dev": true,
++ "requires": {
++ "babel-runtime": "^6.22.0",
++ "babel-types": "^6.24.1"
++ }
++ },
++ "babel-preset-env": {
++ "version": "1.7.0",
++ "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz",
++ "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==",
++ "dev": true,
++ "requires": {
++ "babel-plugin-check-es2015-constants": "^6.22.0",
++ "babel-plugin-syntax-trailing-function-commas": "^6.22.0",
++ "babel-plugin-transform-async-to-generator": "^6.22.0",
++ "babel-plugin-transform-es2015-arrow-functions": "^6.22.0",
++ "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0",
++ "babel-plugin-transform-es2015-block-scoping": "^6.23.0",
++ "babel-plugin-transform-es2015-classes": "^6.23.0",
++ "babel-plugin-transform-es2015-computed-properties": "^6.22.0",
++ "babel-plugin-transform-es2015-destructuring": "^6.23.0",
++ "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0",
++ "babel-plugin-transform-es2015-for-of": "^6.23.0",
++ "babel-plugin-transform-es2015-function-name": "^6.22.0",
++ "babel-plugin-transform-es2015-literals": "^6.22.0",
++ "babel-plugin-transform-es2015-modules-amd": "^6.22.0",
++ "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0",
++ "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0",
++ "babel-plugin-transform-es2015-modules-umd": "^6.23.0",
++ "babel-plugin-transform-es2015-object-super": "^6.22.0",
++ "babel-plugin-transform-es2015-parameters": "^6.23.0",
++ "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0",
++ "babel-plugin-transform-es2015-spread": "^6.22.0",
++ "babel-plugin-transform-es2015-sticky-regex": "^6.22.0",
++ "babel-plugin-transform-es2015-template-literals": "^6.22.0",
++ "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0",
++ "babel-plugin-transform-es2015-unicode-regex": "^6.22.0",
++ "babel-plugin-transform-exponentiation-operator": "^6.22.0",
++ "babel-plugin-transform-regenerator": "^6.22.0",
++ "browserslist": "^3.2.6",
++ "invariant": "^2.2.2",
++ "semver": "^5.3.0"
++ }
++ },
++ "babel-register": {
++ "version": "6.26.0",
++ "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz",
++ "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=",
++ "dev": true,
++ "requires": {
++ "babel-core": "^6.26.0",
++ "babel-runtime": "^6.26.0",
++ "core-js": "^2.5.0",
++ "home-or-tmp": "^2.0.0",
++ "lodash": "^4.17.4",
++ "mkdirp": "^0.5.1",
++ "source-map-support": "^0.4.15"
++ }
++ },
++ "babel-runtime": {
++ "version": "6.26.0",
++ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
++ "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
++ "dev": true,
++ "requires": {
++ "core-js": "^2.4.0",
++ "regenerator-runtime": "^0.11.0"
++ }
++ },
++ "babel-template": {
++ "version": "6.26.0",
++ "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz",
++ "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=",
++ "dev": true,
++ "requires": {
++ "babel-runtime": "^6.26.0",
++ "babel-traverse": "^6.26.0",
++ "babel-types": "^6.26.0",
++ "babylon": "^6.18.0",
++ "lodash": "^4.17.4"
++ }
++ },
++ "babel-traverse": {
++ "version": "6.26.0",
++ "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz",
++ "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=",
++ "dev": true,
++ "requires": {
++ "babel-code-frame": "^6.26.0",
++ "babel-messages": "^6.23.0",
++ "babel-runtime": "^6.26.0",
++ "babel-types": "^6.26.0",
++ "babylon": "^6.18.0",
++ "debug": "^2.6.8",
++ "globals": "^9.18.0",
++ "invariant": "^2.2.2",
++ "lodash": "^4.17.4"
++ },
++ "dependencies": {
++ "babel-code-frame": {
++ "version": "6.26.0",
++ "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
++ "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
++ "dev": true,
++ "requires": {
++ "chalk": "^1.1.3",
++ "esutils": "^2.0.2",
++ "js-tokens": "^3.0.2"
++ }
++ }
++ }
++ },
++ "babel-types": {
++ "version": "6.26.0",
++ "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz",
++ "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=",
++ "dev": true,
++ "requires": {
++ "babel-runtime": "^6.26.0",
++ "esutils": "^2.0.2",
++ "lodash": "^4.17.4",
++ "to-fast-properties": "^1.0.3"
++ }
++ },
++ "babylon": {
++ "version": "6.18.0",
++ "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
++ "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==",
++ "dev": true
++ },
++ "balanced-match": {
++ "version": "1.0.0",
++ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
++ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
++ "dev": true
++ },
++ "base64-js": {
++ "version": "1.2.1",
++ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz",
++ "integrity": "sha512-dwVUVIXsBZXwTuwnXI9RK8sBmgq09NDHzyR9SAph9eqk76gKK2JSQmZARC2zRC81JC2QTtxD0ARU5qTS25gIGw==",
++ "dev": true
++ },
++ "big.js": {
++ "version": "3.1.3",
++ "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.1.3.tgz",
++ "integrity": "sha1-TK2iGTZS6zyp7I5VyQFWacmAaXg=",
++ "dev": true
++ },
++ "binary-extensions": {
++ "version": "1.8.0",
++ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.8.0.tgz",
++ "integrity": "sha1-SOyNFt9Dd+rl+liEaCSAr02Vx3Q=",
++ "dev": true
++ },
++ "bn.js": {
++ "version": "4.11.7",
++ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.7.tgz",
++ "integrity": "sha512-LxFiV5mefv0ley0SzqkOPR1bC4EbpPx8LkOz5vMe/Yi15t5hzwgO/G+tc7wOtL4PZTYjwHu8JnEiSLumuSjSfA==",
++ "dev": true
++ },
++ "brace-expansion": {
++ "version": "1.1.8",
++ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz",
++ "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=",
++ "dev": true,
++ "requires": {
++ "balanced-match": "^1.0.0",
++ "concat-map": "0.0.1"
++ }
++ },
++ "braces": {
++ "version": "1.8.5",
++ "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
++ "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
++ "dev": true,
++ "requires": {
++ "expand-range": "^1.8.1",
++ "preserve": "^0.2.0",
++ "repeat-element": "^1.1.2"
++ }
++ },
++ "brorand": {
++ "version": "1.1.0",
++ "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
++ "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=",
++ "dev": true
++ },
++ "browserify-aes": {
++ "version": "1.0.6",
++ "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.0.6.tgz",
++ "integrity": "sha1-Xncl297x/Vkw1OurSFZ85FHEigo=",
++ "dev": true,
++ "requires": {
++ "buffer-xor": "^1.0.2",
++ "cipher-base": "^1.0.0",
++ "create-hash": "^1.1.0",
++ "evp_bytestokey": "^1.0.0",
++ "inherits": "^2.0.1"
++ }
++ },
++ "browserify-cipher": {
++ "version": "1.0.0",
++ "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz",
++ "integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=",
++ "dev": true,
++ "requires": {
++ "browserify-aes": "^1.0.4",
++ "browserify-des": "^1.0.0",
++ "evp_bytestokey": "^1.0.0"
++ }
++ },
++ "browserify-des": {
++ "version": "1.0.0",
++ "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz",
++ "integrity": "sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=",
++ "dev": true,
++ "requires": {
++ "cipher-base": "^1.0.1",
++ "des.js": "^1.0.0",
++ "inherits": "^2.0.1"
++ }
++ },
++ "browserify-rsa": {
++ "version": "4.0.1",
++ "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz",
++ "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=",
++ "dev": true,
++ "requires": {
++ "bn.js": "^4.1.0",
++ "randombytes": "^2.0.1"
++ }
++ },
++ "browserify-sign": {
++ "version": "4.0.4",
++ "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz",
++ "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=",
++ "dev": true,
++ "requires": {
++ "bn.js": "^4.1.1",
++ "browserify-rsa": "^4.0.0",
++ "create-hash": "^1.1.0",
++ "create-hmac": "^1.1.2",
++ "elliptic": "^6.0.0",
++ "inherits": "^2.0.1",
++ "parse-asn1": "^5.0.0"
++ }
++ },
++ "browserify-zlib": {
++ "version": "0.1.4",
++ "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz",
++ "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=",
++ "dev": true,
++ "requires": {
++ "pako": "~0.2.0"
++ }
++ },
++ "browserslist": {
++ "version": "3.2.8",
++ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz",
++ "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==",
++ "dev": true,
++ "requires": {
++ "caniuse-lite": "^1.0.30000844",
++ "electron-to-chromium": "^1.3.47"
++ },
++ "dependencies": {
++ "electron-to-chromium": {
++ "version": "1.3.109",
++ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.109.tgz",
++ "integrity": "sha512-1qhgVZD9KIULMyeBkbjU/dWmm30zpPUfdWZfVO3nPhbtqMHJqHr4Ua5wBcWtAymVFrUCuAJxjMF1OhG+bR21Ow==",
++ "dev": true
++ }
++ }
++ },
++ "buffer": {
++ "version": "4.9.1",
++ "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz",
++ "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=",
++ "dev": true,
++ "requires": {
++ "base64-js": "^1.0.2",
++ "ieee754": "^1.1.4",
++ "isarray": "^1.0.0"
++ }
++ },
++ "buffer-xor": {
++ "version": "1.0.3",
++ "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
++ "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=",
++ "dev": true
++ },
++ "builtin-modules": {
++ "version": "1.1.1",
++ "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
++ "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
++ "dev": true
++ },
++ "builtin-status-codes": {
++ "version": "3.0.0",
++ "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz",
++ "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=",
++ "dev": true
++ },
++ "caniuse-api": {
++ "version": "1.6.1",
++ "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-1.6.1.tgz",
++ "integrity": "sha1-tTTnxzTE+B7F++isoq0kNUuWLGw=",
++ "dev": true,
++ "requires": {
++ "browserslist": "^1.3.6",
++ "caniuse-db": "^1.0.30000529",
++ "lodash.memoize": "^4.1.2",
++ "lodash.uniq": "^4.5.0"
++ },
++ "dependencies": {
++ "browserslist": {
++ "version": "1.7.7",
++ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz",
++ "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=",
++ "dev": true,
++ "requires": {
++ "caniuse-db": "^1.0.30000639",
++ "electron-to-chromium": "^1.2.7"
++ }
++ }
++ }
++ },
++ "caniuse-db": {
++ "version": "1.0.30000699",
++ "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000699.tgz",
++ "integrity": "sha1-WvSRqxx3dWGjK0P+JT1qcHHM+Xk=",
++ "dev": true
++ },
++ "caniuse-lite": {
++ "version": "1.0.30000933",
++ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000933.tgz",
++ "integrity": "sha512-d3QXv7eFTU40DSedSP81dV/ajcGSKpT+GW+uhtWmLvQm9bPk0KK++7i1e2NSW/CXGZhWFt2mFbFtCJ5I5bMuVA==",
++ "dev": true
++ },
++ "center-align": {
++ "version": "0.1.3",
++ "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
++ "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=",
++ "dev": true,
++ "requires": {
++ "align-text": "^0.1.3",
++ "lazy-cache": "^1.0.3"
++ }
++ },
++ "chalk": {
++ "version": "1.1.3",
++ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
++ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
++ "dev": true,
++ "requires": {
++ "ansi-styles": "^2.2.1",
++ "escape-string-regexp": "^1.0.2",
++ "has-ansi": "^2.0.0",
++ "strip-ansi": "^3.0.0",
++ "supports-color": "^2.0.0"
++ }
++ },
++ "chokidar": {
++ "version": "1.7.0",
++ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz",
++ "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=",
++ "dev": true,
++ "requires": {
++ "anymatch": "^1.3.0",
++ "async-each": "^1.0.0",
++ "fsevents": "^1.0.0",
++ "glob-parent": "^2.0.0",
++ "inherits": "^2.0.1",
++ "is-binary-path": "^1.0.0",
++ "is-glob": "^2.0.0",
++ "path-is-absolute": "^1.0.0",
++ "readdirp": "^2.0.0"
++ }
++ },
++ "cipher-base": {
++ "version": "1.0.4",
++ "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
++ "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
++ "dev": true,
++ "requires": {
++ "inherits": "^2.0.1",
++ "safe-buffer": "^5.0.1"
++ }
++ },
++ "clap": {
++ "version": "1.2.0",
++ "resolved": "https://registry.npmjs.org/clap/-/clap-1.2.0.tgz",
++ "integrity": "sha1-WckP4+E3EEdG/xlGmiemNP9oyFc=",
++ "dev": true,
++ "requires": {
++ "chalk": "^1.1.3"
++ }
++ },
++ "clipboard": {
++ "version": "1.7.1",
++ "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-1.7.1.tgz",
++ "integrity": "sha1-Ng1taUbpmnof7zleQrqStem1oWs=",
++ "dev": true,
++ "requires": {
++ "good-listener": "^1.2.2",
++ "select": "^1.1.2",
++ "tiny-emitter": "^2.0.0"
++ }
++ },
++ "cliui": {
++ "version": "2.1.0",
++ "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
++ "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=",
++ "dev": true,
++ "requires": {
++ "center-align": "^0.1.1",
++ "right-align": "^0.1.1",
++ "wordwrap": "0.0.2"
++ },
++ "dependencies": {
++ "wordwrap": {
++ "version": "0.0.2",
++ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz",
++ "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=",
++ "dev": true
++ }
++ }
++ },
++ "clone": {
++ "version": "1.0.2",
++ "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz",
++ "integrity": "sha1-Jgt6meux7f4kdTgXX3gyQ8sZ0Uk=",
++ "dev": true
++ },
++ "co": {
++ "version": "4.6.0",
++ "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
++ "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=",
++ "dev": true
++ },
++ "coa": {
++ "version": "1.0.4",
++ "resolved": "https://registry.npmjs.org/coa/-/coa-1.0.4.tgz",
++ "integrity": "sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0=",
++ "dev": true,
++ "requires": {
++ "q": "^1.1.2"
++ }
++ },
++ "code-point-at": {
++ "version": "1.1.0",
++ "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
++ "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
++ "dev": true
++ },
++ "color": {
++ "version": "0.11.4",
++ "resolved": "https://registry.npmjs.org/color/-/color-0.11.4.tgz",
++ "integrity": "sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q=",
++ "dev": true,
++ "requires": {
++ "clone": "^1.0.2",
++ "color-convert": "^1.3.0",
++ "color-string": "^0.3.0"
++ }
++ },
++ "color-convert": {
++ "version": "1.9.0",
++ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.0.tgz",
++ "integrity": "sha1-Gsz5fdc5uYO/mU1W/sj5WFNkG3o=",
++ "dev": true,
++ "requires": {
++ "color-name": "^1.1.1"
++ }
++ },
++ "color-name": {
++ "version": "1.1.2",
++ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.2.tgz",
++ "integrity": "sha1-XIq3K2S9IhXWF66VWeuxSEdc+Y0=",
++ "dev": true
++ },
++ "color-string": {
++ "version": "0.3.0",
++ "resolved": "https://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz",
++ "integrity": "sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE=",
++ "dev": true,
++ "requires": {
++ "color-name": "^1.0.0"
++ }
++ },
++ "colormin": {
++ "version": "1.1.2",
++ "resolved": "https://registry.npmjs.org/colormin/-/colormin-1.1.2.tgz",
++ "integrity": "sha1-6i90IKcrlogaOKrlnsEkpvcpgTM=",
++ "dev": true,
++ "requires": {
++ "color": "^0.11.0",
++ "css-color-names": "0.0.4",
++ "has": "^1.0.1"
++ }
++ },
++ "colors": {
++ "version": "1.1.2",
++ "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz",
++ "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=",
++ "dev": true
++ },
++ "commondir": {
++ "version": "1.0.1",
++ "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
++ "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=",
++ "dev": true
++ },
++ "concat-map": {
++ "version": "0.0.1",
++ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
++ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
++ "dev": true
++ },
++ "console-browserify": {
++ "version": "1.1.0",
++ "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz",
++ "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=",
++ "dev": true,
++ "requires": {
++ "date-now": "^0.1.4"
++ }
++ },
++ "constants-browserify": {
++ "version": "1.0.0",
++ "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
++ "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=",
++ "dev": true
++ },
++ "convert-source-map": {
++ "version": "1.6.0",
++ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz",
++ "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==",
++ "dev": true,
++ "requires": {
++ "safe-buffer": "~5.1.1"
++ }
++ },
++ "core-js": {
++ "version": "2.6.3",
++ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.3.tgz",
++ "integrity": "sha512-l00tmFFZOBHtYhN4Cz7k32VM7vTn3rE2ANjQDxdEN6zmXZ/xq1jQuutnmHvMG1ZJ7xd72+TA5YpUK8wz3rWsfQ==",
++ "dev": true
++ },
++ "core-util-is": {
++ "version": "1.0.2",
++ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
++ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
++ "dev": true
++ },
++ "cosmiconfig": {
++ "version": "2.1.3",
++ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-2.1.3.tgz",
++ "integrity": "sha1-lSdx6w3dwcs/ovb75RpSLpOz7go=",
++ "dev": true,
++ "requires": {
++ "is-directory": "^0.3.1",
++ "js-yaml": "^3.4.3",
++ "minimist": "^1.2.0",
++ "object-assign": "^4.1.0",
++ "os-homedir": "^1.0.1",
++ "parse-json": "^2.2.0",
++ "require-from-string": "^1.1.0"
++ },
++ "dependencies": {
++ "minimist": {
++ "version": "1.2.0",
++ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
++ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
++ "dev": true
++ }
++ }
++ },
++ "create-ecdh": {
++ "version": "4.0.0",
++ "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz",
++ "integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=",
++ "dev": true,
++ "requires": {
++ "bn.js": "^4.1.0",
++ "elliptic": "^6.0.0"
++ }
++ },
++ "create-hash": {
++ "version": "1.1.3",
++ "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz",
++ "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=",
++ "dev": true,
++ "requires": {
++ "cipher-base": "^1.0.1",
++ "inherits": "^2.0.1",
++ "ripemd160": "^2.0.0",
++ "sha.js": "^2.4.0"
++ }
++ },
++ "create-hmac": {
++ "version": "1.1.6",
++ "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz",
++ "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=",
++ "dev": true,
++ "requires": {
++ "cipher-base": "^1.0.3",
++ "create-hash": "^1.1.0",
++ "inherits": "^2.0.1",
++ "ripemd160": "^2.0.0",
++ "safe-buffer": "^5.0.1",
++ "sha.js": "^2.4.8"
++ }
++ },
++ "crypto-browserify": {
++ "version": "3.11.1",
++ "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.11.1.tgz",
++ "integrity": "sha512-Na7ZlwCOqoaW5RwUK1WpXws2kv8mNhWdTlzob0UXulk6G9BDbyiJaGTYBIX61Ozn9l1EPPJpICZb4DaOpT9NlQ==",
++ "dev": true,
++ "requires": {
++ "browserify-cipher": "^1.0.0",
++ "browserify-sign": "^4.0.0",
++ "create-ecdh": "^4.0.0",
++ "create-hash": "^1.1.0",
++ "create-hmac": "^1.1.0",
++ "diffie-hellman": "^5.0.0",
++ "inherits": "^2.0.1",
++ "pbkdf2": "^3.0.3",
++ "public-encrypt": "^4.0.0",
++ "randombytes": "^2.0.0"
++ }
++ },
++ "css-color-function": {
++ "version": "1.3.3",
++ "resolved": "https://registry.npmjs.org/css-color-function/-/css-color-function-1.3.3.tgz",
++ "integrity": "sha1-jtJMLAIFBzM5+voAS8jBQfzLKC4=",
++ "dev": true,
++ "requires": {
++ "balanced-match": "0.1.0",
++ "color": "^0.11.0",
++ "debug": "^3.1.0",
++ "rgb": "~0.1.0"
++ },
++ "dependencies": {
++ "balanced-match": {
++ "version": "0.1.0",
++ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.1.0.tgz",
++ "integrity": "sha1-tQS9BYabOSWd0MXvw12EMXbczEo=",
++ "dev": true
++ },
++ "debug": {
++ "version": "3.2.6",
++ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
++ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
++ "dev": true,
++ "requires": {
++ "ms": "^2.1.1"
++ }
++ },
++ "ms": {
++ "version": "2.1.1",
++ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
++ "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
++ "dev": true
++ }
++ }
++ },
++ "css-color-names": {
++ "version": "0.0.4",
++ "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz",
++ "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=",
++ "dev": true
++ },
++ "css-loader": {
++ "version": "0.28.4",
++ "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.28.4.tgz",
++ "integrity": "sha1-bPNXkZLONV6LONX0Ldeh8uyJjQ8=",
++ "dev": true,
++ "requires": {
++ "babel-code-frame": "^6.11.0",
++ "css-selector-tokenizer": "^0.7.0",
++ "cssnano": ">=2.6.1 <4",
++ "icss-utils": "^2.1.0",
++ "loader-utils": "^1.0.2",
++ "lodash.camelcase": "^4.3.0",
++ "object-assign": "^4.0.1",
++ "postcss": "^5.0.6",
++ "postcss-modules-extract-imports": "^1.0.0",
++ "postcss-modules-local-by-default": "^1.0.1",
++ "postcss-modules-scope": "^1.0.0",
++ "postcss-modules-values": "^1.1.0",
++ "postcss-value-parser": "^3.3.0",
++ "source-list-map": "^0.1.7"
++ }
++ },
++ "css-selector-tokenizer": {
++ "version": "0.7.0",
++ "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz",
++ "integrity": "sha1-5piEdK6MlTR3v15+/s/OzNnPTIY=",
++ "dev": true,
++ "requires": {
++ "cssesc": "^0.1.0",
++ "fastparse": "^1.1.1",
++ "regexpu-core": "^1.0.0"
++ },
++ "dependencies": {
++ "regexpu-core": {
++ "version": "1.0.0",
++ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz",
++ "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=",
++ "dev": true,
++ "requires": {
++ "regenerate": "^1.2.1",
++ "regjsgen": "^0.2.0",
++ "regjsparser": "^0.1.4"
++ }
++ }
++ }
++ },
++ "cssesc": {
++ "version": "0.1.0",
++ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz",
++ "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=",
++ "dev": true
++ },
++ "cssnano": {
++ "version": "3.10.0",
++ "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-3.10.0.tgz",
++ "integrity": "sha1-Tzj2zqK5sX+gFJDyPx3GjqZcHDg=",
++ "dev": true,
++ "requires": {
++ "autoprefixer": "^6.3.1",
++ "decamelize": "^1.1.2",
++ "defined": "^1.0.0",
++ "has": "^1.0.1",
++ "object-assign": "^4.0.1",
++ "postcss": "^5.0.14",
++ "postcss-calc": "^5.2.0",
++ "postcss-colormin": "^2.1.8",
++ "postcss-convert-values": "^2.3.4",
++ "postcss-discard-comments": "^2.0.4",
++ "postcss-discard-duplicates": "^2.0.1",
++ "postcss-discard-empty": "^2.0.1",
++ "postcss-discard-overridden": "^0.1.1",
++ "postcss-discard-unused": "^2.2.1",
++ "postcss-filter-plugins": "^2.0.0",
++ "postcss-merge-idents": "^2.1.5",
++ "postcss-merge-longhand": "^2.0.1",
++ "postcss-merge-rules": "^2.0.3",
++ "postcss-minify-font-values": "^1.0.2",
++ "postcss-minify-gradients": "^1.0.1",
++ "postcss-minify-params": "^1.0.4",
++ "postcss-minify-selectors": "^2.0.4",
++ "postcss-normalize-charset": "^1.1.0",
++ "postcss-normalize-url": "^3.0.7",
++ "postcss-ordered-values": "^2.1.0",
++ "postcss-reduce-idents": "^2.2.2",
++ "postcss-reduce-initial": "^1.0.0",
++ "postcss-reduce-transforms": "^1.0.3",
++ "postcss-svgo": "^2.1.1",
++ "postcss-unique-selectors": "^2.0.2",
++ "postcss-value-parser": "^3.2.3",
++ "postcss-zindex": "^2.0.1"
++ }
++ },
++ "csso": {
++ "version": "2.3.2",
++ "resolved": "https://registry.npmjs.org/csso/-/csso-2.3.2.tgz",
++ "integrity": "sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U=",
++ "dev": true,
++ "requires": {
++ "clap": "^1.0.9",
++ "source-map": "^0.5.3"
++ }
++ },
++ "date-now": {
++ "version": "0.1.4",
++ "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz",
++ "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=",
++ "dev": true
++ },
++ "debug": {
++ "version": "2.6.9",
++ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
++ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
++ "dev": true,
++ "requires": {
++ "ms": "2.0.0"
++ }
++ },
++ "decamelize": {
++ "version": "1.2.0",
++ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
++ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
++ "dev": true
++ },
++ "defined": {
++ "version": "1.0.0",
++ "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
++ "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=",
++ "dev": true
++ },
++ "delegate": {
++ "version": "3.1.3",
++ "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.1.3.tgz",
++ "integrity": "sha1-moJRp3fXAl+qVXN7w7BxdCEnqf0=",
++ "dev": true
++ },
++ "des.js": {
++ "version": "1.0.0",
++ "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz",
++ "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=",
++ "dev": true,
++ "requires": {
++ "inherits": "^2.0.1",
++ "minimalistic-assert": "^1.0.0"
++ }
++ },
++ "detect-indent": {
++ "version": "4.0.0",
++ "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz",
++ "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=",
++ "dev": true,
++ "requires": {
++ "repeating": "^2.0.0"
++ }
++ },
++ "diffie-hellman": {
++ "version": "5.0.2",
++ "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz",
++ "integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=",
++ "dev": true,
++ "requires": {
++ "bn.js": "^4.1.0",
++ "miller-rabin": "^4.0.0",
++ "randombytes": "^2.0.0"
++ }
++ },
++ "docsearch.js": {
++ "version": "2.3.3",
++ "resolved": "https://registry.npmjs.org/docsearch.js/-/docsearch.js-2.3.3.tgz",
++ "integrity": "sha1-ba7k+5eDZdA4lgtNCuU2ClQAKgw=",
++ "dev": true,
++ "requires": {
++ "algoliasearch": "^3.22.1",
++ "autocomplete.js": "^0.28.0",
++ "hogan.js": "^3.0.2",
++ "to-factory": "^1.0.0"
++ }
++ },
++ "dom-walk": {
++ "version": "0.1.1",
++ "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.1.tgz",
++ "integrity": "sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg=",
++ "dev": true
++ },
++ "domain-browser": {
++ "version": "1.1.7",
++ "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz",
++ "integrity": "sha1-hnqksJP6oF8d4IwG9NeyH9+GmLw=",
++ "dev": true
++ },
++ "electron-to-chromium": {
++ "version": "1.3.15",
++ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.15.tgz",
++ "integrity": "sha1-CDl5NIkcvPrrvRi4KpW1pIETg2k=",
++ "dev": true
++ },
++ "elliptic": {
++ "version": "6.4.0",
++ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz",
++ "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=",
++ "dev": true,
++ "requires": {
++ "bn.js": "^4.4.0",
++ "brorand": "^1.0.1",
++ "hash.js": "^1.0.0",
++ "hmac-drbg": "^1.0.0",
++ "inherits": "^2.0.1",
++ "minimalistic-assert": "^1.0.0",
++ "minimalistic-crypto-utils": "^1.0.0"
++ }
++ },
++ "emojis-list": {
++ "version": "2.1.0",
++ "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
++ "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=",
++ "dev": true
++ },
++ "enhanced-resolve": {
++ "version": "3.3.0",
++ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.3.0.tgz",
++ "integrity": "sha512-2qbxE7ek3YxPJ1ML6V+satHkzHpJQKWkRHmRx6mfAoW59yP8YH8BFplbegSP+u2hBd6B6KCOpvJQ3dZAP+hkpg==",
++ "dev": true,
++ "requires": {
++ "graceful-fs": "^4.1.2",
++ "memory-fs": "^0.4.0",
++ "object-assign": "^4.0.1",
++ "tapable": "^0.2.5"
++ }
++ },
++ "envify": {
++ "version": "4.1.0",
++ "resolved": "https://registry.npmjs.org/envify/-/envify-4.1.0.tgz",
++ "integrity": "sha512-IKRVVoAYr4pIx4yIWNsz9mOsboxlNXiu7TNBnem/K/uTHdkyzXWDzHCK7UTolqBbgaBz0tQHsD3YNls0uIIjiw==",
++ "dev": true,
++ "requires": {
++ "esprima": "^4.0.0",
++ "through": "~2.3.4"
++ },
++ "dependencies": {
++ "esprima": {
++ "version": "4.0.0",
++ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz",
++ "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==",
++ "dev": true
++ }
++ }
++ },
++ "errno": {
++ "version": "0.1.4",
++ "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz",
++ "integrity": "sha1-uJbiOp5ei6M4cfyZar02NfyaHH0=",
++ "dev": true,
++ "requires": {
++ "prr": "~0.0.0"
++ }
++ },
++ "error-ex": {
++ "version": "1.3.1",
++ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz",
++ "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=",
++ "dev": true,
++ "requires": {
++ "is-arrayish": "^0.2.1"
++ }
++ },
++ "escape-string-regexp": {
++ "version": "1.0.5",
++ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
++ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
++ "dev": true
++ },
++ "esprima": {
++ "version": "2.7.3",
++ "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz",
++ "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=",
++ "dev": true
++ },
++ "esutils": {
++ "version": "2.0.2",
++ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
++ "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
++ "dev": true
++ },
++ "events": {
++ "version": "1.1.1",
++ "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz",
++ "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=",
++ "dev": true
++ },
++ "evp_bytestokey": {
++ "version": "1.0.0",
++ "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz",
++ "integrity": "sha1-SXtmrZ/vZc18CKYYCCS6FHa2blM=",
++ "dev": true,
++ "requires": {
++ "create-hash": "^1.1.1"
++ }
++ },
++ "expand-brackets": {
++ "version": "0.1.5",
++ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
++ "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
++ "dev": true,
++ "requires": {
++ "is-posix-bracket": "^0.1.0"
++ }
++ },
++ "expand-range": {
++ "version": "1.8.2",
++ "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz",
++ "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=",
++ "dev": true,
++ "requires": {
++ "fill-range": "^2.1.0"
++ }
++ },
++ "extglob": {
++ "version": "0.3.2",
++ "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
++ "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
++ "dev": true,
++ "requires": {
++ "is-extglob": "^1.0.0"
++ }
++ },
++ "extract-text-webpack-plugin": {
++ "version": "2.1.2",
++ "resolved": "https://registry.npmjs.org/extract-text-webpack-plugin/-/extract-text-webpack-plugin-2.1.2.tgz",
++ "integrity": "sha1-dW7076gVXDaBgz+8NNpTuUF0bWw=",
++ "dev": true,
++ "requires": {
++ "async": "^2.1.2",
++ "loader-utils": "^1.0.2",
++ "schema-utils": "^0.3.0",
++ "webpack-sources": "^1.0.1"
++ }
++ },
++ "fast-deep-equal": {
++ "version": "1.0.0",
++ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz",
++ "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=",
++ "dev": true
++ },
++ "fastparse": {
++ "version": "1.1.1",
++ "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.1.tgz",
++ "integrity": "sha1-0eJkOzipTXWDtHkGDmxK/8lAcfg=",
++ "dev": true
++ },
++ "file-loader": {
++ "version": "0.11.2",
++ "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-0.11.2.tgz",
++ "integrity": "sha512-N+uhF3mswIFeziHQjGScJ/yHXYt3DiLBeC+9vWW+WjUBiClMSOlV1YrXQi+7KM2aA3Rn4Bybgv+uXFQbfkzpvg==",
++ "dev": true,
++ "requires": {
++ "loader-utils": "^1.0.2"
++ }
++ },
++ "filename-regex": {
++ "version": "2.0.1",
++ "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz",
++ "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=",
++ "dev": true
++ },
++ "fill-range": {
++ "version": "2.2.4",
++ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz",
++ "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==",
++ "dev": true,
++ "requires": {
++ "is-number": "^2.1.0",
++ "isobject": "^2.0.0",
++ "randomatic": "^3.0.0",
++ "repeat-element": "^1.1.2",
++ "repeat-string": "^1.5.2"
++ }
++ },
++ "find-cache-dir": {
++ "version": "1.0.0",
++ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz",
++ "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=",
++ "dev": true,
++ "requires": {
++ "commondir": "^1.0.1",
++ "make-dir": "^1.0.0",
++ "pkg-dir": "^2.0.0"
++ }
++ },
++ "find-up": {
++ "version": "2.1.0",
++ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
++ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
++ "dev": true,
++ "requires": {
++ "locate-path": "^2.0.0"
++ }
++ },
++ "flatten": {
++ "version": "1.0.2",
++ "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz",
++ "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=",
++ "dev": true
++ },
++ "for-in": {
++ "version": "1.0.2",
++ "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
++ "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
++ "dev": true
++ },
++ "for-own": {
++ "version": "0.1.5",
++ "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz",
++ "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=",
++ "dev": true,
++ "requires": {
++ "for-in": "^1.0.1"
++ }
++ },
++ "foreach": {
++ "version": "2.0.5",
++ "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz",
++ "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=",
++ "dev": true
++ },
++ "fsevents": {
++ "version": "1.1.2",
++ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.2.tgz",
++ "integrity": "sha512-Sn44E5wQW4bTHXvQmvSHwqbuiXtduD6Rrjm2ZtUEGbyrig+nUH3t/QD4M4/ZXViY556TBpRgZkHLDx3JxPwxiw==",
++ "dev": true,
++ "optional": true,
++ "requires": {
++ "nan": "^2.3.0",
++ "node-pre-gyp": "^0.6.36"
++ },
++ "dependencies": {
++ "abbrev": {
++ "version": "1.1.0",
++ "bundled": true
++ },
++ "ajv": {
++ "version": "4.11.8",
++ "bundled": true,
++ "requires": {
++ "co": "^4.6.0",
++ "json-stable-stringify": "^1.0.1"
++ }
++ },
++ "ansi-regex": {
++ "version": "2.1.1",
++ "bundled": true
++ },
++ "aproba": {
++ "version": "1.1.1",
++ "bundled": true
++ },
++ "are-we-there-yet": {
++ "version": "1.1.4",
++ "bundled": true,
++ "requires": {
++ "delegates": "^1.0.0",
++ "readable-stream": "^2.0.6"
++ }
++ },
++ "asn1": {
++ "version": "0.2.3",
++ "bundled": true
++ },
++ "assert-plus": {
++ "version": "0.2.0",
++ "bundled": true
++ },
++ "asynckit": {
++ "version": "0.4.0",
++ "bundled": true
++ },
++ "aws-sign2": {
++ "version": "0.6.0",
++ "bundled": true
++ },
++ "aws4": {
++ "version": "1.6.0",
++ "bundled": true
++ },
++ "balanced-match": {
++ "version": "0.4.2",
++ "bundled": true
++ },
++ "bcrypt-pbkdf": {
++ "version": "1.0.1",
++ "bundled": true,
++ "optional": true,
++ "requires": {
++ "tweetnacl": "^0.14.3"
++ }
++ },
++ "block-stream": {
++ "version": "0.0.9",
++ "bundled": true,
++ "requires": {
++ "inherits": "~2.0.0"
++ }
++ },
++ "boom": {
++ "version": "2.10.1",
++ "bundled": true,
++ "requires": {
++ "hoek": "2.x.x"
++ }
++ },
++ "brace-expansion": {
++ "version": "1.1.7",
++ "bundled": true,
++ "requires": {
++ "balanced-match": "^0.4.1",
++ "concat-map": "0.0.1"
++ }
++ },
++ "buffer-shims": {
++ "version": "1.0.0",
++ "bundled": true
++ },
++ "caseless": {
++ "version": "0.12.0",
++ "bundled": true
++ },
++ "co": {
++ "version": "4.6.0",
++ "bundled": true
++ },
++ "code-point-at": {
++ "version": "1.1.0",
++ "bundled": true
++ },
++ "combined-stream": {
++ "version": "1.0.5",
++ "bundled": true,
++ "requires": {
++ "delayed-stream": "~1.0.0"
++ }
++ },
++ "concat-map": {
++ "version": "0.0.1",
++ "bundled": true
++ },
++ "console-control-strings": {
++ "version": "1.1.0",
++ "bundled": true
++ },
++ "core-util-is": {
++ "version": "1.0.2",
++ "bundled": true
++ },
++ "cryptiles": {
++ "version": "2.0.5",
++ "bundled": true,
++ "requires": {
++ "boom": "2.x.x"
++ }
++ },
++ "dashdash": {
++ "version": "1.14.1",
++ "bundled": true,
++ "requires": {
++ "assert-plus": "^1.0.0"
++ },
++ "dependencies": {
++ "assert-plus": {
++ "version": "1.0.0",
++ "bundled": true
++ }
++ }
++ },
++ "debug": {
++ "version": "2.6.8",
++ "bundled": true,
++ "requires": {
++ "ms": "2.0.0"
++ }
++ },
++ "deep-extend": {
++ "version": "0.4.2",
++ "bundled": true
++ },
++ "delayed-stream": {
++ "version": "1.0.0",
++ "bundled": true
++ },
++ "delegates": {
++ "version": "1.0.0",
++ "bundled": true
++ },
++ "ecc-jsbn": {
++ "version": "0.1.1",
++ "bundled": true,
++ "optional": true,
++ "requires": {
++ "jsbn": "~0.1.0"
++ }
++ },
++ "extend": {
++ "version": "3.0.1",
++ "bundled": true
++ },
++ "extsprintf": {
++ "version": "1.0.2",
++ "bundled": true
++ },
++ "forever-agent": {
++ "version": "0.6.1",
++ "bundled": true
++ },
++ "form-data": {
++ "version": "2.1.4",
++ "bundled": true,
++ "requires": {
++ "asynckit": "^0.4.0",
++ "combined-stream": "^1.0.5",
++ "mime-types": "^2.1.12"
++ }
++ },
++ "fs.realpath": {
++ "version": "1.0.0",
++ "bundled": true
++ },
++ "fstream": {
++ "version": "1.0.11",
++ "bundled": true,
++ "requires": {
++ "graceful-fs": "^4.1.2",
++ "inherits": "~2.0.0",
++ "mkdirp": ">=0.5 0",
++ "rimraf": "2"
++ }
++ },
++ "fstream-ignore": {
++ "version": "1.0.5",
++ "bundled": true,
++ "requires": {
++ "fstream": "^1.0.0",
++ "inherits": "2",
++ "minimatch": "^3.0.0"
++ }
++ },
++ "gauge": {
++ "version": "2.7.4",
++ "bundled": true,
++ "requires": {
++ "aproba": "^1.0.3",
++ "console-control-strings": "^1.0.0",
++ "has-unicode": "^2.0.0",
++ "object-assign": "^4.1.0",
++ "signal-exit": "^3.0.0",
++ "string-width": "^1.0.1",
++ "strip-ansi": "^3.0.1",
++ "wide-align": "^1.1.0"
++ }
++ },
++ "getpass": {
++ "version": "0.1.7",
++ "bundled": true,
++ "requires": {
++ "assert-plus": "^1.0.0"
++ },
++ "dependencies": {
++ "assert-plus": {
++ "version": "1.0.0",
++ "bundled": true
++ }
++ }
++ },
++ "glob": {
++ "version": "7.1.2",
++ "bundled": true,
++ "requires": {
++ "fs.realpath": "^1.0.0",
++ "inflight": "^1.0.4",
++ "inherits": "2",
++ "minimatch": "^3.0.4",
++ "once": "^1.3.0",
++ "path-is-absolute": "^1.0.0"
++ }
++ },
++ "graceful-fs": {
++ "version": "4.1.11",
++ "bundled": true
++ },
++ "har-schema": {
++ "version": "1.0.5",
++ "bundled": true
++ },
++ "har-validator": {
++ "version": "4.2.1",
++ "bundled": true,
++ "requires": {
++ "ajv": "^4.9.1",
++ "har-schema": "^1.0.5"
++ }
++ },
++ "has-unicode": {
++ "version": "2.0.1",
++ "bundled": true
++ },
++ "hawk": {
++ "version": "3.1.3",
++ "bundled": true,
++ "requires": {
++ "boom": "2.x.x",
++ "cryptiles": "2.x.x",
++ "hoek": "2.x.x",
++ "sntp": "1.x.x"
++ }
++ },
++ "hoek": {
++ "version": "2.16.3",
++ "bundled": true
++ },
++ "http-signature": {
++ "version": "1.1.1",
++ "bundled": true,
++ "requires": {
++ "assert-plus": "^0.2.0",
++ "jsprim": "^1.2.2",
++ "sshpk": "^1.7.0"
++ }
++ },
++ "inflight": {
++ "version": "1.0.6",
++ "bundled": true,
++ "requires": {
++ "once": "^1.3.0",
++ "wrappy": "1"
++ }
++ },
++ "inherits": {
++ "version": "2.0.3",
++ "bundled": true
++ },
++ "ini": {
++ "version": "1.3.4",
++ "bundled": true
++ },
++ "is-fullwidth-code-point": {
++ "version": "1.0.0",
++ "bundled": true,
++ "requires": {
++ "number-is-nan": "^1.0.0"
++ }
++ },
++ "is-typedarray": {
++ "version": "1.0.0",
++ "bundled": true
++ },
++ "isarray": {
++ "version": "1.0.0",
++ "bundled": true
++ },
++ "isstream": {
++ "version": "0.1.2",
++ "bundled": true
++ },
++ "jodid25519": {
++ "version": "1.0.2",
++ "bundled": true,
++ "optional": true,
++ "requires": {
++ "jsbn": "~0.1.0"
++ }
++ },
++ "jsbn": {
++ "version": "0.1.1",
++ "bundled": true,
++ "optional": true
++ },
++ "json-schema": {
++ "version": "0.2.3",
++ "bundled": true
++ },
++ "json-stable-stringify": {
++ "version": "1.0.1",
++ "bundled": true,
++ "requires": {
++ "jsonify": "~0.0.0"
++ }
++ },
++ "json-stringify-safe": {
++ "version": "5.0.1",
++ "bundled": true
++ },
++ "jsonify": {
++ "version": "0.0.0",
++ "bundled": true
++ },
++ "jsprim": {
++ "version": "1.4.0",
++ "bundled": true,
++ "requires": {
++ "assert-plus": "1.0.0",
++ "extsprintf": "1.0.2",
++ "json-schema": "0.2.3",
++ "verror": "1.3.6"
++ },
++ "dependencies": {
++ "assert-plus": {
++ "version": "1.0.0",
++ "bundled": true
++ }
++ }
++ },
++ "mime-db": {
++ "version": "1.27.0",
++ "bundled": true
++ },
++ "mime-types": {
++ "version": "2.1.15",
++ "bundled": true,
++ "requires": {
++ "mime-db": "~1.27.0"
++ }
++ },
++ "minimatch": {
++ "version": "3.0.4",
++ "bundled": true,
++ "requires": {
++ "brace-expansion": "^1.1.7"
++ }
++ },
++ "minimist": {
++ "version": "0.0.8",
++ "bundled": true
++ },
++ "mkdirp": {
++ "version": "0.5.1",
++ "bundled": true,
++ "requires": {
++ "minimist": "0.0.8"
++ }
++ },
++ "ms": {
++ "version": "2.0.0",
++ "bundled": true
++ },
++ "node-pre-gyp": {
++ "version": "0.6.37",
++ "bundled": true,
++ "dev": true,
++ "optional": true
++ },
++ "nopt": {
++ "version": "4.0.1",
++ "bundled": true,
++ "requires": {
++ "abbrev": "1",
++ "osenv": "^0.1.4"
++ }
++ },
++ "npmlog": {
++ "version": "4.1.0",
++ "bundled": true,
++ "requires": {
++ "are-we-there-yet": "~1.1.2",
++ "console-control-strings": "~1.1.0",
++ "gauge": "~2.7.3",
++ "set-blocking": "~2.0.0"
++ }
++ },
++ "number-is-nan": {
++ "version": "1.0.1",
++ "bundled": true
++ },
++ "oauth-sign": {
++ "version": "0.8.2",
++ "bundled": true
++ },
++ "object-assign": {
++ "version": "4.1.1",
++ "bundled": true
++ },
++ "once": {
++ "version": "1.4.0",
++ "bundled": true,
++ "requires": {
++ "wrappy": "1"
++ }
++ },
++ "os-homedir": {
++ "version": "1.0.2",
++ "bundled": true
++ },
++ "os-tmpdir": {
++ "version": "1.0.2",
++ "bundled": true
++ },
++ "osenv": {
++ "version": "0.1.4",
++ "bundled": true,
++ "requires": {
++ "os-homedir": "^1.0.0",
++ "os-tmpdir": "^1.0.0"
++ }
++ },
++ "path-is-absolute": {
++ "version": "1.0.1",
++ "bundled": true
++ },
++ "performance-now": {
++ "version": "0.2.0",
++ "bundled": true
++ },
++ "process-nextick-args": {
++ "version": "1.0.7",
++ "bundled": true
++ },
++ "punycode": {
++ "version": "1.4.1",
++ "bundled": true
++ },
++ "qs": {
++ "version": "6.4.0",
++ "bundled": true
++ },
++ "rc": {
++ "version": "1.2.1",
++ "bundled": true,
++ "requires": {
++ "deep-extend": "~0.4.0",
++ "ini": "~1.3.0",
++ "minimist": "^1.2.0",
++ "strip-json-comments": "~2.0.1"
++ },
++ "dependencies": {
++ "minimist": {
++ "version": "1.2.0",
++ "bundled": true
++ }
++ }
++ },
++ "readable-stream": {
++ "version": "2.2.9",
++ "bundled": true,
++ "requires": {
++ "buffer-shims": "~1.0.0",
++ "core-util-is": "~1.0.0",
++ "inherits": "~2.0.1",
++ "isarray": "~1.0.0",
++ "process-nextick-args": "~1.0.6",
++ "string_decoder": "~1.0.0",
++ "util-deprecate": "~1.0.1"
++ }
++ },
++ "request": {
++ "version": "2.81.0",
++ "bundled": true,
++ "requires": {
++ "aws-sign2": "~0.6.0",
++ "aws4": "^1.2.1",
++ "caseless": "~0.12.0",
++ "combined-stream": "~1.0.5",
++ "extend": "~3.0.0",
++ "forever-agent": "~0.6.1",
++ "form-data": "~2.1.1",
++ "har-validator": "~4.2.1",
++ "hawk": "~3.1.3",
++ "http-signature": "~1.1.0",
++ "is-typedarray": "~1.0.0",
++ "isstream": "~0.1.2",
++ "json-stringify-safe": "~5.0.1",
++ "mime-types": "~2.1.7",
++ "oauth-sign": "~0.8.1",
++ "performance-now": "^0.2.0",
++ "qs": "~6.4.0",
++ "safe-buffer": "^5.0.1",
++ "stringstream": "~0.0.4",
++ "tough-cookie": "~2.3.0",
++ "tunnel-agent": "^0.6.0",
++ "uuid": "^3.0.0"
++ }
++ },
++ "rimraf": {
++ "version": "2.6.1",
++ "bundled": true,
++ "requires": {
++ "glob": "^7.0.5"
++ }
++ },
++ "safe-buffer": {
++ "version": "5.0.1",
++ "bundled": true
++ },
++ "semver": {
++ "version": "5.3.0",
++ "bundled": true
++ },
++ "set-blocking": {
++ "version": "2.0.0",
++ "bundled": true
++ },
++ "signal-exit": {
++ "version": "3.0.2",
++ "bundled": true
++ },
++ "sntp": {
++ "version": "1.0.9",
++ "bundled": true,
++ "requires": {
++ "hoek": "2.x.x"
++ }
++ },
++ "sshpk": {
++ "version": "1.13.0",
++ "bundled": true,
++ "requires": {
++ "asn1": "~0.2.3",
++ "assert-plus": "^1.0.0",
++ "bcrypt-pbkdf": "^1.0.0",
++ "dashdash": "^1.12.0",
++ "ecc-jsbn": "~0.1.1",
++ "getpass": "^0.1.1",
++ "jodid25519": "^1.0.0",
++ "jsbn": "~0.1.0",
++ "tweetnacl": "~0.14.0"
++ },
++ "dependencies": {
++ "assert-plus": {
++ "version": "1.0.0",
++ "bundled": true
++ }
++ }
++ },
++ "string-width": {
++ "version": "1.0.2",
++ "bundled": true,
++ "requires": {
++ "code-point-at": "^1.0.0",
++ "is-fullwidth-code-point": "^1.0.0",
++ "strip-ansi": "^3.0.0"
++ }
++ },
++ "string_decoder": {
++ "version": "1.0.1",
++ "bundled": true,
++ "requires": {
++ "safe-buffer": "^5.0.1"
++ }
++ },
++ "stringstream": {
++ "version": "0.0.5",
++ "bundled": true
++ },
++ "strip-ansi": {
++ "version": "3.0.1",
++ "bundled": true,
++ "requires": {
++ "ansi-regex": "^2.0.0"
++ }
++ },
++ "strip-json-comments": {
++ "version": "2.0.1",
++ "bundled": true
++ },
++ "tar": {
++ "version": "2.2.1",
++ "bundled": true,
++ "requires": {
++ "block-stream": "*",
++ "fstream": "^1.0.2",
++ "inherits": "2"
++ }
++ },
++ "tar-pack": {
++ "version": "3.4.0",
++ "bundled": true,
++ "requires": {
++ "debug": "^2.2.0",
++ "fstream": "^1.0.10",
++ "fstream-ignore": "^1.0.5",
++ "once": "^1.3.3",
++ "readable-stream": "^2.1.4",
++ "rimraf": "^2.5.1",
++ "tar": "^2.2.1",
++ "uid-number": "^0.0.6"
++ }
++ },
++ "tough-cookie": {
++ "version": "2.3.2",
++ "bundled": true,
++ "requires": {
++ "punycode": "^1.4.1"
++ }
++ },
++ "tunnel-agent": {
++ "version": "0.6.0",
++ "bundled": true,
++ "requires": {
++ "safe-buffer": "^5.0.1"
++ }
++ },
++ "tweetnacl": {
++ "version": "0.14.5",
++ "bundled": true,
++ "optional": true
++ },
++ "uid-number": {
++ "version": "0.0.6",
++ "bundled": true
++ },
++ "util-deprecate": {
++ "version": "1.0.2",
++ "bundled": true
++ },
++ "uuid": {
++ "version": "3.0.1",
++ "bundled": true
++ },
++ "verror": {
++ "version": "1.3.6",
++ "bundled": true,
++ "requires": {
++ "extsprintf": "1.0.2"
++ }
++ },
++ "wide-align": {
++ "version": "1.1.2",
++ "bundled": true,
++ "requires": {
++ "string-width": "^1.0.2"
++ }
++ },
++ "wrappy": {
++ "version": "1.0.2",
++ "bundled": true
++ }
++ }
++ },
++ "function-bind": {
++ "version": "1.1.0",
++ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.0.tgz",
++ "integrity": "sha1-FhdnFMgBeY5Ojyz391KUZ7tKV3E=",
++ "dev": true
++ },
++ "get-caller-file": {
++ "version": "1.0.2",
++ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz",
++ "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=",
++ "dev": true
++ },
++ "glob-base": {
++ "version": "0.3.0",
++ "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz",
++ "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=",
++ "dev": true,
++ "requires": {
++ "glob-parent": "^2.0.0",
++ "is-glob": "^2.0.0"
++ }
++ },
++ "glob-parent": {
++ "version": "2.0.0",
++ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
++ "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
++ "dev": true,
++ "requires": {
++ "is-glob": "^2.0.0"
++ }
++ },
++ "global": {
++ "version": "4.3.2",
++ "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz",
++ "integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=",
++ "dev": true,
++ "requires": {
++ "min-document": "^2.19.0",
++ "process": "~0.5.1"
++ }
++ },
++ "globals": {
++ "version": "9.18.0",
++ "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz",
++ "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==",
++ "dev": true
++ },
++ "good-listener": {
++ "version": "1.2.2",
++ "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz",
++ "integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=",
++ "dev": true,
++ "requires": {
++ "delegate": "^3.1.2"
++ }
++ },
++ "graceful-fs": {
++ "version": "4.1.11",
++ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
++ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
++ "dev": true
++ },
++ "has": {
++ "version": "1.0.1",
++ "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz",
++ "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=",
++ "dev": true,
++ "requires": {
++ "function-bind": "^1.0.2"
++ }
++ },
++ "has-ansi": {
++ "version": "2.0.0",
++ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
++ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
++ "dev": true,
++ "requires": {
++ "ansi-regex": "^2.0.0"
++ }
++ },
++ "has-flag": {
++ "version": "1.0.0",
++ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
++ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
++ "dev": true
++ },
++ "hash-base": {
++ "version": "2.0.2",
++ "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz",
++ "integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=",
++ "dev": true,
++ "requires": {
++ "inherits": "^2.0.1"
++ }
++ },
++ "hash.js": {
++ "version": "1.1.3",
++ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz",
++ "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==",
++ "dev": true,
++ "requires": {
++ "inherits": "^2.0.3",
++ "minimalistic-assert": "^1.0.0"
++ }
++ },
++ "highlight.js": {
++ "version": "9.12.0",
++ "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.12.0.tgz",
++ "integrity": "sha1-5tnb5Xy+/mB1HwKvM2GVhwyQwB4=",
++ "dev": true
++ },
++ "hmac-drbg": {
++ "version": "1.0.1",
++ "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
++ "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=",
++ "dev": true,
++ "requires": {
++ "hash.js": "^1.0.3",
++ "minimalistic-assert": "^1.0.0",
++ "minimalistic-crypto-utils": "^1.0.1"
++ }
++ },
++ "hogan.js": {
++ "version": "3.0.2",
++ "resolved": "https://registry.npmjs.org/hogan.js/-/hogan.js-3.0.2.tgz",
++ "integrity": "sha1-TNnhq9QpQUbnZ55B14mHMrAse/0=",
++ "dev": true,
++ "requires": {
++ "mkdirp": "0.3.0",
++ "nopt": "1.0.10"
++ },
++ "dependencies": {
++ "mkdirp": {
++ "version": "0.3.0",
++ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz",
++ "integrity": "sha1-G79asbqCevI1dRQ0kEJkVfSB/h4=",
++ "dev": true
++ }
++ }
++ },
++ "home-or-tmp": {
++ "version": "2.0.0",
++ "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz",
++ "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=",
++ "dev": true,
++ "requires": {
++ "os-homedir": "^1.0.0",
++ "os-tmpdir": "^1.0.1"
++ }
++ },
++ "hosted-git-info": {
++ "version": "2.5.0",
++ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz",
++ "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==",
++ "dev": true
++ },
++ "html-comment-regex": {
++ "version": "1.1.1",
++ "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.1.tgz",
++ "integrity": "sha1-ZouTd26q5V696POtRkswekljYl4=",
++ "dev": true
++ },
++ "https-browserify": {
++ "version": "0.0.1",
++ "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.1.tgz",
++ "integrity": "sha1-P5E2XKvmC3ftDruiS0VOPgnZWoI=",
++ "dev": true
++ },
++ "icss-replace-symbols": {
++ "version": "1.1.0",
++ "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz",
++ "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=",
++ "dev": true
++ },
++ "icss-utils": {
++ "version": "2.1.0",
++ "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-2.1.0.tgz",
++ "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=",
++ "dev": true,
++ "requires": {
++ "postcss": "^6.0.1"
++ },
++ "dependencies": {
++ "ansi-styles": {
++ "version": "3.1.0",
++ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.1.0.tgz",
++ "integrity": "sha1-CcIC1ckX7CMYjKpcnLkXnNlUd1A=",
++ "dev": true,
++ "requires": {
++ "color-convert": "^1.0.0"
++ }
++ },
++ "chalk": {
++ "version": "2.0.1",
++ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.0.1.tgz",
++ "integrity": "sha512-Mp+FXEI+FrwY/XYV45b2YD3E8i3HwnEAoFcM0qlZzq/RZ9RwWitt2Y/c7cqRAz70U7hfekqx6qNYthuKFO6K0g==",
++ "dev": true,
++ "requires": {
++ "ansi-styles": "^3.1.0",
++ "escape-string-regexp": "^1.0.5",
++ "supports-color": "^4.0.0"
++ }
++ },
++ "has-flag": {
++ "version": "2.0.0",
++ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
++ "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
++ "dev": true
++ },
++ "postcss": {
++ "version": "6.0.6",
++ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.6.tgz",
++ "integrity": "sha1-u6TVjohPx4yEDRU54Q7dqruPc70=",
++ "dev": true,
++ "requires": {
++ "chalk": "^2.0.1",
++ "source-map": "^0.5.6",
++ "supports-color": "^4.1.0"
++ }
++ },
++ "supports-color": {
++ "version": "4.2.0",
++ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.2.0.tgz",
++ "integrity": "sha512-Ts0Mu/A1S1aZxEJNG88I4Oc9rcZSBFNac5e27yh4j2mqbhZSSzR1Ah79EYwSn9Zuh7lrlGD2cVGzw1RKGzyLSg==",
++ "dev": true,
++ "requires": {
++ "has-flag": "^2.0.0"
++ }
++ }
++ }
++ },
++ "ieee754": {
++ "version": "1.1.8",
++ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz",
++ "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=",
++ "dev": true
++ },
++ "immediate": {
++ "version": "3.2.3",
++ "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.2.3.tgz",
++ "integrity": "sha1-0UD6j2FGWb1lQSMwl92qwlzdmRw=",
++ "dev": true
++ },
++ "indexes-of": {
++ "version": "1.0.1",
++ "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz",
++ "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=",
++ "dev": true
++ },
++ "indexof": {
++ "version": "0.0.1",
++ "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz",
++ "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=",
++ "dev": true
++ },
++ "inherits": {
++ "version": "2.0.3",
++ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
++ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
++ "dev": true
++ },
++ "interpret": {
++ "version": "1.0.3",
++ "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.0.3.tgz",
++ "integrity": "sha1-y8NcYu7uc/Gat7EKgBURQBr8D5A=",
++ "dev": true
++ },
++ "invariant": {
++ "version": "2.2.4",
++ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
++ "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
++ "dev": true,
++ "requires": {
++ "loose-envify": "^1.0.0"
++ }
++ },
++ "invert-kv": {
++ "version": "1.0.0",
++ "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
++ "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=",
++ "dev": true
++ },
++ "is-absolute-url": {
++ "version": "2.1.0",
++ "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz",
++ "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=",
++ "dev": true
++ },
++ "is-arrayish": {
++ "version": "0.2.1",
++ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
++ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
++ "dev": true
++ },
++ "is-binary-path": {
++ "version": "1.0.1",
++ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
++ "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
++ "dev": true,
++ "requires": {
++ "binary-extensions": "^1.0.0"
++ }
++ },
++ "is-buffer": {
++ "version": "1.1.5",
++ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz",
++ "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=",
++ "dev": true
++ },
++ "is-builtin-module": {
++ "version": "1.0.0",
++ "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
++ "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
++ "dev": true,
++ "requires": {
++ "builtin-modules": "^1.0.0"
++ }
++ },
++ "is-directory": {
++ "version": "0.3.1",
++ "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz",
++ "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=",
++ "dev": true
++ },
++ "is-dotfile": {
++ "version": "1.0.3",
++ "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz",
++ "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=",
++ "dev": true
++ },
++ "is-equal-shallow": {
++ "version": "0.1.3",
++ "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz",
++ "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=",
++ "dev": true,
++ "requires": {
++ "is-primitive": "^2.0.0"
++ }
++ },
++ "is-extendable": {
++ "version": "0.1.1",
++ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
++ "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
++ "dev": true
++ },
++ "is-extglob": {
++ "version": "1.0.0",
++ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
++ "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
++ "dev": true
++ },
++ "is-finite": {
++ "version": "1.0.2",
++ "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
++ "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
++ "dev": true,
++ "requires": {
++ "number-is-nan": "^1.0.0"
++ }
++ },
++ "is-fullwidth-code-point": {
++ "version": "1.0.0",
++ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
++ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
++ "dev": true,
++ "requires": {
++ "number-is-nan": "^1.0.0"
++ }
++ },
++ "is-glob": {
++ "version": "2.0.1",
++ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
++ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
++ "dev": true,
++ "requires": {
++ "is-extglob": "^1.0.0"
++ }
++ },
++ "is-number": {
++ "version": "2.1.0",
++ "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz",
++ "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=",
++ "dev": true,
++ "requires": {
++ "kind-of": "^3.0.2"
++ }
++ },
++ "is-plain-obj": {
++ "version": "1.1.0",
++ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
++ "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=",
++ "dev": true
++ },
++ "is-posix-bracket": {
++ "version": "0.1.1",
++ "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz",
++ "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=",
++ "dev": true
++ },
++ "is-primitive": {
++ "version": "2.0.0",
++ "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz",
++ "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=",
++ "dev": true
++ },
++ "is-svg": {
++ "version": "2.1.0",
++ "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-2.1.0.tgz",
++ "integrity": "sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk=",
++ "dev": true,
++ "requires": {
++ "html-comment-regex": "^1.1.0"
++ }
++ },
++ "is-utf8": {
++ "version": "0.2.1",
++ "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
++ "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=",
++ "dev": true
++ },
++ "isarray": {
++ "version": "1.0.0",
++ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
++ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
++ "dev": true
++ },
++ "isnumeric": {
++ "version": "0.2.0",
++ "resolved": "https://registry.npmjs.org/isnumeric/-/isnumeric-0.2.0.tgz",
++ "integrity": "sha1-ojR7o2DeGeM9D/1ZD933dVy/LmQ=",
++ "dev": true
++ },
++ "isobject": {
++ "version": "2.1.0",
++ "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
++ "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
++ "dev": true,
++ "requires": {
++ "isarray": "1.0.0"
++ }
++ },
++ "js-base64": {
++ "version": "2.1.9",
++ "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.1.9.tgz",
++ "integrity": "sha1-8OgK4DmkvWVLXygfyT8EqRSn/M4=",
++ "dev": true
++ },
++ "js-tokens": {
++ "version": "3.0.2",
++ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
++ "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=",
++ "dev": true
++ },
++ "js-yaml": {
++ "version": "3.7.0",
++ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz",
++ "integrity": "sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=",
++ "dev": true,
++ "requires": {
++ "argparse": "^1.0.7",
++ "esprima": "^2.6.0"
++ }
++ },
++ "jsesc": {
++ "version": "1.3.0",
++ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz",
++ "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=",
++ "dev": true
++ },
++ "json-loader": {
++ "version": "0.5.4",
++ "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.4.tgz",
++ "integrity": "sha1-i6oTZaYy9Yo8RtIBdfxgAsluN94=",
++ "dev": true
++ },
++ "json-schema-traverse": {
++ "version": "0.3.1",
++ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
++ "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=",
++ "dev": true
++ },
++ "json-stable-stringify": {
++ "version": "1.0.1",
++ "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz",
++ "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=",
++ "dev": true,
++ "requires": {
++ "jsonify": "~0.0.0"
++ }
++ },
++ "json5": {
++ "version": "0.5.1",
++ "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
++ "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=",
++ "dev": true
++ },
++ "jsonify": {
++ "version": "0.0.0",
++ "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz",
++ "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=",
++ "dev": true
++ },
++ "kind-of": {
++ "version": "3.2.2",
++ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
++ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
++ "dev": true,
++ "requires": {
++ "is-buffer": "^1.1.5"
++ }
++ },
++ "lazy-cache": {
++ "version": "1.0.4",
++ "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz",
++ "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=",
++ "dev": true
++ },
++ "lazysizes": {
++ "version": "3.0.0",
++ "resolved": "https://registry.npmjs.org/lazysizes/-/lazysizes-3.0.0.tgz",
++ "integrity": "sha1-sbrLWg8oET/6ezic4vNfHP8Z2bk=",
++ "dev": true
++ },
++ "lcid": {
++ "version": "1.0.0",
++ "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
++ "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
++ "dev": true,
++ "requires": {
++ "invert-kv": "^1.0.0"
++ }
++ },
++ "load-json-file": {
++ "version": "1.1.0",
++ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
++ "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
++ "dev": true,
++ "requires": {
++ "graceful-fs": "^4.1.2",
++ "parse-json": "^2.2.0",
++ "pify": "^2.0.0",
++ "pinkie-promise": "^2.0.0",
++ "strip-bom": "^2.0.0"
++ }
++ },
++ "load-script": {
++ "version": "1.0.0",
++ "resolved": "https://registry.npmjs.org/load-script/-/load-script-1.0.0.tgz",
++ "integrity": "sha1-BJGTngvuVkPuSUp+PaPSuscMbKQ=",
++ "dev": true
++ },
++ "loader-runner": {
++ "version": "2.3.0",
++ "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.0.tgz",
++ "integrity": "sha1-9IKuqC1UPgeSFwDVpG7yb9rGuKI=",
++ "dev": true
++ },
++ "loader-utils": {
++ "version": "1.1.0",
++ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz",
++ "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=",
++ "dev": true,
++ "requires": {
++ "big.js": "^3.1.3",
++ "emojis-list": "^2.0.0",
++ "json5": "^0.5.0"
++ }
++ },
++ "locate-path": {
++ "version": "2.0.0",
++ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
++ "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
++ "dev": true,
++ "requires": {
++ "p-locate": "^2.0.0",
++ "path-exists": "^3.0.0"
++ }
++ },
++ "lodash": {
++ "version": "4.17.11",
++ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
++ "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==",
++ "dev": true
++ },
++ "lodash._reinterpolate": {
++ "version": "3.0.0",
++ "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz",
++ "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=",
++ "dev": true
++ },
++ "lodash.camelcase": {
++ "version": "4.3.0",
++ "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
++ "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=",
++ "dev": true
++ },
++ "lodash.memoize": {
++ "version": "4.1.2",
++ "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
++ "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=",
++ "dev": true
++ },
++ "lodash.uniq": {
++ "version": "4.5.0",
++ "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
++ "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=",
++ "dev": true
++ },
++ "longest": {
++ "version": "1.0.1",
++ "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
++ "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=",
++ "dev": true
++ },
++ "loose-envify": {
++ "version": "1.4.0",
++ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
++ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
++ "dev": true,
++ "requires": {
++ "js-tokens": "^3.0.0 || ^4.0.0"
++ }
++ },
++ "macaddress": {
++ "version": "0.2.9",
++ "resolved": "https://registry.npmjs.org/macaddress/-/macaddress-0.2.9.tgz",
++ "integrity": "sha512-k4F1JUof6cQXxNFzx3thLby4oJzXTXQueAOOts944Vqizn+Rjc2QNFenT9FJSLU1CH3PmrHRSyZs2E+Cqw+P2w==",
++ "dev": true
++ },
++ "make-dir": {
++ "version": "1.0.0",
++ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.0.0.tgz",
++ "integrity": "sha1-l6ARdR6R3YfPre9Ygy67BJNt6Xg=",
++ "dev": true,
++ "requires": {
++ "pify": "^2.3.0"
++ }
++ },
++ "math-expression-evaluator": {
++ "version": "1.2.17",
++ "resolved": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz",
++ "integrity": "sha1-3oGf282E3M2PrlnGrreWFbnSZqw=",
++ "dev": true
++ },
++ "math-random": {
++ "version": "1.0.4",
++ "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz",
++ "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==",
++ "dev": true
++ },
++ "memory-fs": {
++ "version": "0.4.1",
++ "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz",
++ "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=",
++ "dev": true,
++ "requires": {
++ "errno": "^0.1.3",
++ "readable-stream": "^2.0.1"
++ }
++ },
++ "micromatch": {
++ "version": "2.3.11",
++ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
++ "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
++ "dev": true,
++ "requires": {
++ "arr-diff": "^2.0.0",
++ "array-unique": "^0.2.1",
++ "braces": "^1.8.2",
++ "expand-brackets": "^0.1.4",
++ "extglob": "^0.3.1",
++ "filename-regex": "^2.0.0",
++ "is-extglob": "^1.0.0",
++ "is-glob": "^2.0.1",
++ "kind-of": "^3.0.2",
++ "normalize-path": "^2.0.1",
++ "object.omit": "^2.0.0",
++ "parse-glob": "^3.0.4",
++ "regex-cache": "^0.4.2"
++ }
++ },
++ "miller-rabin": {
++ "version": "4.0.0",
++ "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.0.tgz",
++ "integrity": "sha1-SmL7HUKTPAVYOYL0xxb2+55sbT0=",
++ "dev": true,
++ "requires": {
++ "bn.js": "^4.0.0",
++ "brorand": "^1.0.1"
++ }
++ },
++ "min-document": {
++ "version": "2.19.0",
++ "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz",
++ "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=",
++ "dev": true,
++ "requires": {
++ "dom-walk": "^0.1.0"
++ }
++ },
++ "minimalistic-assert": {
++ "version": "1.0.0",
++ "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz",
++ "integrity": "sha1-cCvi3aazf0g2vLP121ZkG2Sh09M=",
++ "dev": true
++ },
++ "minimalistic-crypto-utils": {
++ "version": "1.0.1",
++ "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
++ "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=",
++ "dev": true
++ },
++ "minimatch": {
++ "version": "3.0.4",
++ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
++ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
++ "dev": true,
++ "requires": {
++ "brace-expansion": "^1.1.7"
++ }
++ },
++ "minimist": {
++ "version": "0.0.8",
++ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
++ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
++ "dev": true
++ },
++ "mkdirp": {
++ "version": "0.5.1",
++ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
++ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
++ "dev": true,
++ "requires": {
++ "minimist": "0.0.8"
++ }
++ },
++ "ms": {
++ "version": "2.0.0",
++ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
++ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
++ "dev": true
++ },
++ "nan": {
++ "version": "2.6.2",
++ "resolved": "https://registry.npmjs.org/nan/-/nan-2.6.2.tgz",
++ "integrity": "sha1-5P805slf37WuzAjeZZb0NgWn20U=",
++ "dev": true,
++ "optional": true
++ },
++ "node-libs-browser": {
++ "version": "2.0.0",
++ "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.0.0.tgz",
++ "integrity": "sha1-o6WeyXAkmFtG6Vg3lkb5bEthZkY=",
++ "dev": true,
++ "requires": {
++ "assert": "^1.1.1",
++ "browserify-zlib": "^0.1.4",
++ "buffer": "^4.3.0",
++ "console-browserify": "^1.1.0",
++ "constants-browserify": "^1.0.0",
++ "crypto-browserify": "^3.11.0",
++ "domain-browser": "^1.1.1",
++ "events": "^1.0.0",
++ "https-browserify": "0.0.1",
++ "os-browserify": "^0.2.0",
++ "path-browserify": "0.0.0",
++ "process": "^0.11.0",
++ "punycode": "^1.2.4",
++ "querystring-es3": "^0.2.0",
++ "readable-stream": "^2.0.5",
++ "stream-browserify": "^2.0.1",
++ "stream-http": "^2.3.1",
++ "string_decoder": "^0.10.25",
++ "timers-browserify": "^2.0.2",
++ "tty-browserify": "0.0.0",
++ "url": "^0.11.0",
++ "util": "^0.10.3",
++ "vm-browserify": "0.0.4"
++ },
++ "dependencies": {
++ "process": {
++ "version": "0.11.10",
++ "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
++ "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=",
++ "dev": true
++ },
++ "string_decoder": {
++ "version": "0.10.31",
++ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
++ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
++ "dev": true
++ }
++ }
++ },
++ "nopt": {
++ "version": "1.0.10",
++ "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz",
++ "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=",
++ "dev": true,
++ "requires": {
++ "abbrev": "1"
++ }
++ },
++ "normalize-package-data": {
++ "version": "2.4.0",
++ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
++ "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==",
++ "dev": true,
++ "requires": {
++ "hosted-git-info": "^2.1.4",
++ "is-builtin-module": "^1.0.0",
++ "semver": "2 || 3 || 4 || 5",
++ "validate-npm-package-license": "^3.0.1"
++ }
++ },
++ "normalize-path": {
++ "version": "2.1.1",
++ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
++ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
++ "dev": true,
++ "requires": {
++ "remove-trailing-separator": "^1.0.1"
++ }
++ },
++ "normalize-range": {
++ "version": "0.1.2",
++ "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
++ "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=",
++ "dev": true
++ },
++ "normalize-url": {
++ "version": "1.9.1",
++ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz",
++ "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=",
++ "dev": true,
++ "requires": {
++ "object-assign": "^4.0.1",
++ "prepend-http": "^1.0.0",
++ "query-string": "^4.1.0",
++ "sort-keys": "^1.0.0"
++ }
++ },
++ "num2fraction": {
++ "version": "1.2.2",
++ "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz",
++ "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=",
++ "dev": true
++ },
++ "number-is-nan": {
++ "version": "1.0.1",
++ "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
++ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
++ "dev": true
++ },
++ "object-assign": {
++ "version": "4.1.1",
++ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
++ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
++ "dev": true
++ },
++ "object-keys": {
++ "version": "1.0.11",
++ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz",
++ "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=",
++ "dev": true
++ },
++ "object.omit": {
++ "version": "2.0.1",
++ "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz",
++ "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=",
++ "dev": true,
++ "requires": {
++ "for-own": "^0.1.4",
++ "is-extendable": "^0.1.1"
++ }
++ },
++ "onecolor": {
++ "version": "2.4.2",
++ "resolved": "https://registry.npmjs.org/onecolor/-/onecolor-2.4.2.tgz",
++ "integrity": "sha1-pT7D/xccNEYBbdUhDRobVEv32HQ=",
++ "dev": true
++ },
++ "os-browserify": {
++ "version": "0.2.1",
++ "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.2.1.tgz",
++ "integrity": "sha1-Y/xMzuXS13Y9Jrv4YBB45sLgBE8=",
++ "dev": true
++ },
++ "os-homedir": {
++ "version": "1.0.2",
++ "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
++ "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
++ "dev": true
++ },
++ "os-locale": {
++ "version": "1.4.0",
++ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
++ "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
++ "dev": true,
++ "requires": {
++ "lcid": "^1.0.0"
++ }
++ },
++ "os-tmpdir": {
++ "version": "1.0.2",
++ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
++ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
++ "dev": true
++ },
++ "p-limit": {
++ "version": "1.1.0",
++ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz",
++ "integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=",
++ "dev": true
++ },
++ "p-locate": {
++ "version": "2.0.0",
++ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
++ "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
++ "dev": true,
++ "requires": {
++ "p-limit": "^1.1.0"
++ }
++ },
++ "pako": {
++ "version": "0.2.9",
++ "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz",
++ "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=",
++ "dev": true
++ },
++ "parse-asn1": {
++ "version": "5.1.0",
++ "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz",
++ "integrity": "sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=",
++ "dev": true,
++ "requires": {
++ "asn1.js": "^4.0.0",
++ "browserify-aes": "^1.0.0",
++ "create-hash": "^1.1.0",
++ "evp_bytestokey": "^1.0.0",
++ "pbkdf2": "^3.0.3"
++ }
++ },
++ "parse-glob": {
++ "version": "3.0.4",
++ "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz",
++ "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=",
++ "dev": true,
++ "requires": {
++ "glob-base": "^0.3.0",
++ "is-dotfile": "^1.0.0",
++ "is-extglob": "^1.0.0",
++ "is-glob": "^2.0.0"
++ }
++ },
++ "parse-json": {
++ "version": "2.2.0",
++ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
++ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
++ "dev": true,
++ "requires": {
++ "error-ex": "^1.2.0"
++ }
++ },
++ "path-browserify": {
++ "version": "0.0.0",
++ "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz",
++ "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=",
++ "dev": true
++ },
++ "path-exists": {
++ "version": "3.0.0",
++ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
++ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
++ "dev": true
++ },
++ "path-is-absolute": {
++ "version": "1.0.1",
++ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
++ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
++ "dev": true
++ },
++ "path-parse": {
++ "version": "1.0.5",
++ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz",
++ "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=",
++ "dev": true
++ },
++ "path-type": {
++ "version": "1.1.0",
++ "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
++ "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
++ "dev": true,
++ "requires": {
++ "graceful-fs": "^4.1.2",
++ "pify": "^2.0.0",
++ "pinkie-promise": "^2.0.0"
++ }
++ },
++ "pbkdf2": {
++ "version": "3.0.12",
++ "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.12.tgz",
++ "integrity": "sha1-vjZ4XFBn6kjYBv+SMojF91C2uKI=",
++ "dev": true,
++ "requires": {
++ "create-hash": "^1.1.2",
++ "create-hmac": "^1.1.4",
++ "ripemd160": "^2.0.1",
++ "safe-buffer": "^5.0.1",
++ "sha.js": "^2.4.8"
++ }
++ },
++ "pify": {
++ "version": "2.3.0",
++ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
++ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
++ "dev": true
++ },
++ "pinkie": {
++ "version": "2.0.4",
++ "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
++ "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
++ "dev": true
++ },
++ "pinkie-promise": {
++ "version": "2.0.1",
++ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
++ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
++ "dev": true,
++ "requires": {
++ "pinkie": "^2.0.0"
++ }
++ },
++ "pixrem": {
++ "version": "3.0.2",
++ "resolved": "https://registry.npmjs.org/pixrem/-/pixrem-3.0.2.tgz",
++ "integrity": "sha1-MNG6+0w73Ojpu0vVahOYVhkyDDQ=",
++ "dev": true,
++ "requires": {
++ "browserslist": "^1.0.0",
++ "postcss": "^5.0.0",
++ "reduce-css-calc": "^1.2.7"
++ },
++ "dependencies": {
++ "browserslist": {
++ "version": "1.7.7",
++ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz",
++ "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=",
++ "dev": true,
++ "requires": {
++ "caniuse-db": "^1.0.30000639",
++ "electron-to-chromium": "^1.2.7"
++ }
++ }
++ }
++ },
++ "pkg-dir": {
++ "version": "2.0.0",
++ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz",
++ "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=",
++ "dev": true,
++ "requires": {
++ "find-up": "^2.1.0"
++ }
++ },
++ "pleeease-filters": {
++ "version": "3.0.1",
++ "resolved": "https://registry.npmjs.org/pleeease-filters/-/pleeease-filters-3.0.1.tgz",
++ "integrity": "sha1-Tf4OjxBGYTUXxktyi8gGCKfr8i8=",
++ "dev": true,
++ "requires": {
++ "onecolor": "~2.4.0",
++ "postcss": "^5.0.4"
++ }
++ },
++ "postcss": {
++ "version": "5.2.17",
++ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz",
++ "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=",
++ "dev": true,
++ "requires": {
++ "chalk": "^1.1.3",
++ "js-base64": "^2.1.9",
++ "source-map": "^0.5.6",
++ "supports-color": "^3.2.3"
++ },
++ "dependencies": {
++ "supports-color": {
++ "version": "3.2.3",
++ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
++ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
++ "dev": true,
++ "requires": {
++ "has-flag": "^1.0.0"
++ }
++ }
++ }
++ },
++ "postcss-apply": {
++ "version": "0.3.0",
++ "resolved": "https://registry.npmjs.org/postcss-apply/-/postcss-apply-0.3.0.tgz",
++ "integrity": "sha1-ovN8W9+ogeTBX08kXsDNlt0ucNU=",
++ "dev": true,
++ "requires": {
++ "balanced-match": "^0.4.1",
++ "postcss": "^5.0.21"
++ },
++ "dependencies": {
++ "balanced-match": {
++ "version": "0.4.2",
++ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz",
++ "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=",
++ "dev": true
++ }
++ }
++ },
++ "postcss-attribute-case-insensitive": {
++ "version": "1.0.1",
++ "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-1.0.1.tgz",
++ "integrity": "sha1-zrc3d+EGFn6yM/GTjJvZ8uaXMI0=",
++ "dev": true,
++ "requires": {
++ "postcss": "^5.1.1",
++ "postcss-selector-parser": "^2.2.0"
++ }
++ },
++ "postcss-calc": {
++ "version": "5.3.1",
++ "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-5.3.1.tgz",
++ "integrity": "sha1-d7rnypKK2FcW4v2kLyYb98HWW14=",
++ "dev": true,
++ "requires": {
++ "postcss": "^5.0.2",
++ "postcss-message-helpers": "^2.0.0",
++ "reduce-css-calc": "^1.2.6"
++ }
++ },
++ "postcss-color-function": {
++ "version": "2.0.1",
++ "resolved": "https://registry.npmjs.org/postcss-color-function/-/postcss-color-function-2.0.1.tgz",
++ "integrity": "sha1-mtIm9VDop8f4uKd4YFRbbdf1UkE=",
++ "dev": true,
++ "requires": {
++ "css-color-function": "^1.2.0",
++ "postcss": "^5.0.4",
++ "postcss-message-helpers": "^2.0.0",
++ "postcss-value-parser": "^3.3.0"
++ }
++ },
++ "postcss-color-gray": {
++ "version": "3.0.1",
++ "resolved": "https://registry.npmjs.org/postcss-color-gray/-/postcss-color-gray-3.0.1.tgz",
++ "integrity": "sha1-dEMu3mbdg7HRNjVlxos3bhj/Z3A=",
++ "dev": true,
++ "requires": {
++ "color": "^0.11.3",
++ "postcss": "^5.0.4",
++ "postcss-message-helpers": "^2.0.0",
++ "reduce-function-call": "^1.0.1"
++ }
++ },
++ "postcss-color-hex-alpha": {
++ "version": "2.0.0",
++ "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-2.0.0.tgz",
++ "integrity": "sha1-RP1uyt5mAoZIyIHLZQTNy/3GzQk=",
++ "dev": true,
++ "requires": {
++ "color": "^0.10.1",
++ "postcss": "^5.0.4",
++ "postcss-message-helpers": "^2.0.0"
++ },
++ "dependencies": {
++ "color": {
++ "version": "0.10.1",
++ "resolved": "https://registry.npmjs.org/color/-/color-0.10.1.tgz",
++ "integrity": "sha1-wEGI34KiCd3rzOzazT7DIPGTc58=",
++ "dev": true,
++ "requires": {
++ "color-convert": "^0.5.3",
++ "color-string": "^0.3.0"
++ }
++ },
++ "color-convert": {
++ "version": "0.5.3",
++ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-0.5.3.tgz",
++ "integrity": "sha1-vbbGnOZg+t/+CwAHzER+G59ygr0=",
++ "dev": true
++ }
++ }
++ },
++ "postcss-color-hsl": {
++ "version": "1.0.5",
++ "resolved": "https://registry.npmjs.org/postcss-color-hsl/-/postcss-color-hsl-1.0.5.tgz",
++ "integrity": "sha1-9Tuxw0gxDOMHrYnjGBqGRzi15oc=",
++ "dev": true,
++ "requires": {
++ "postcss": "^5.2.0",
++ "postcss-value-parser": "^3.3.0",
++ "units-css": "^0.4.0"
++ }
++ },
++ "postcss-color-hwb": {
++ "version": "2.0.1",
++ "resolved": "https://registry.npmjs.org/postcss-color-hwb/-/postcss-color-hwb-2.0.1.tgz",
++ "integrity": "sha1-1jr6+bcMtZX5AKKcn+V78qMvq+w=",
++ "dev": true,
++ "requires": {
++ "color": "^0.11.4",
++ "postcss": "^5.0.4",
++ "postcss-message-helpers": "^2.0.0",
++ "reduce-function-call": "^1.0.1"
++ }
++ },
++ "postcss-color-rebeccapurple": {
++ "version": "2.0.1",
++ "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-2.0.1.tgz",
++ "integrity": "sha1-dMZETny7fYVhO19yht96SRYIRRw=",
++ "dev": true,
++ "requires": {
++ "color": "^0.11.4",
++ "postcss": "^5.0.4"
++ }
++ },
++ "postcss-color-rgb": {
++ "version": "1.1.4",
++ "resolved": "https://registry.npmjs.org/postcss-color-rgb/-/postcss-color-rgb-1.1.4.tgz",
++ "integrity": "sha1-8pJD4i6OjBNDRHQJI3LUzmBb6Lw=",
++ "dev": true,
++ "requires": {
++ "postcss": "^5.2.0",
++ "postcss-value-parser": "^3.3.0"
++ }
++ },
++ "postcss-color-rgba-fallback": {
++ "version": "2.2.0",
++ "resolved": "https://registry.npmjs.org/postcss-color-rgba-fallback/-/postcss-color-rgba-fallback-2.2.0.tgz",
++ "integrity": "sha1-bSlJG+WZCpMXPUfnx29YELCUAro=",
++ "dev": true,
++ "requires": {
++ "postcss": "^5.0.0",
++ "postcss-value-parser": "^3.0.2",
++ "rgb-hex": "^1.0.0"
++ }
++ },
++ "postcss-colormin": {
++ "version": "2.2.2",
++ "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-2.2.2.tgz",
++ "integrity": "sha1-ZjFBfV8OkJo9fsJrJMio0eT5bks=",
++ "dev": true,
++ "requires": {
++ "colormin": "^1.0.5",
++ "postcss": "^5.0.13",
++ "postcss-value-parser": "^3.2.3"
++ }
++ },
++ "postcss-convert-values": {
++ "version": "2.6.1",
++ "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz",
++ "integrity": "sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0=",
++ "dev": true,
++ "requires": {
++ "postcss": "^5.0.11",
++ "postcss-value-parser": "^3.1.2"
++ }
++ },
++ "postcss-cssnext": {
++ "version": "2.11.0",
++ "resolved": "https://registry.npmjs.org/postcss-cssnext/-/postcss-cssnext-2.11.0.tgz",
++ "integrity": "sha1-MeaPAB5AlgTacDtm3hS4uMjJ8rE=",
++ "dev": true,
++ "requires": {
++ "autoprefixer": "^6.0.2",
++ "caniuse-api": "^1.5.3",
++ "chalk": "^1.1.1",
++ "pixrem": "^3.0.0",
++ "pleeease-filters": "^3.0.0",
++ "postcss": "^5.0.4",
++ "postcss-apply": "^0.3.0",
++ "postcss-attribute-case-insensitive": "^1.0.1",
++ "postcss-calc": "^5.0.0",
++ "postcss-color-function": "^2.0.0",
++ "postcss-color-gray": "^3.0.0",
++ "postcss-color-hex-alpha": "^2.0.0",
++ "postcss-color-hsl": "^1.0.5",
++ "postcss-color-hwb": "^2.0.0",
++ "postcss-color-rebeccapurple": "^2.0.0",
++ "postcss-color-rgb": "^1.1.4",
++ "postcss-color-rgba-fallback": "^2.0.0",
++ "postcss-custom-media": "^5.0.0",
++ "postcss-custom-properties": "^5.0.0",
++ "postcss-custom-selectors": "^3.0.0",
++ "postcss-font-family-system-ui": "^1.0.1",
++ "postcss-font-variant": "^2.0.0",
++ "postcss-image-set-polyfill": "^0.3.3",
++ "postcss-initial": "^1.3.1",
++ "postcss-media-minmax": "^2.1.0",
++ "postcss-nesting": "^2.0.5",
++ "postcss-pseudo-class-any-link": "^1.0.0",
++ "postcss-pseudoelements": "^3.0.0",
++ "postcss-replace-overflow-wrap": "^1.0.0",
++ "postcss-selector-matches": "^2.0.0",
++ "postcss-selector-not": "^2.0.0"
++ }
++ },
++ "postcss-custom-media": {
++ "version": "5.0.1",
++ "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-5.0.1.tgz",
++ "integrity": "sha1-E40loYS/LrVN4S1VpsAcMKnYvYE=",
++ "dev": true,
++ "requires": {
++ "postcss": "^5.0.0"
++ }
++ },
++ "postcss-custom-properties": {
++ "version": "5.0.2",
++ "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-5.0.2.tgz",
++ "integrity": "sha1-lxnXjy2pz59TgQrrwj1GVhMKzrE=",
++ "dev": true,
++ "requires": {
++ "balanced-match": "^0.4.2",
++ "postcss": "^5.0.0"
++ },
++ "dependencies": {
++ "balanced-match": {
++ "version": "0.4.2",
++ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz",
++ "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=",
++ "dev": true
++ }
++ }
++ },
++ "postcss-custom-selectors": {
++ "version": "3.0.0",
++ "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-3.0.0.tgz",
++ "integrity": "sha1-j4Ekn17Qeo0JF89qOf5bBWt/lqw=",
++ "dev": true,
++ "requires": {
++ "balanced-match": "^0.2.0",
++ "postcss": "^5.0.0",
++ "postcss-selector-matches": "^2.0.0"
++ },
++ "dependencies": {
++ "balanced-match": {
++ "version": "0.2.1",
++ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.2.1.tgz",
++ "integrity": "sha1-e8ZYtL7WHu5CStdPdfXD4sTfPMc=",
++ "dev": true
++ }
++ }
++ },
++ "postcss-discard-comments": {
++ "version": "2.0.4",
++ "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz",
++ "integrity": "sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0=",
++ "dev": true,
++ "requires": {
++ "postcss": "^5.0.14"
++ }
++ },
++ "postcss-discard-duplicates": {
++ "version": "2.1.0",
++ "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz",
++ "integrity": "sha1-uavye4isGIFYpesSq8riAmO5GTI=",
++ "dev": true,
++ "requires": {
++ "postcss": "^5.0.4"
++ }
++ },
++ "postcss-discard-empty": {
++ "version": "2.1.0",
++ "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz",
++ "integrity": "sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU=",
++ "dev": true,
++ "requires": {
++ "postcss": "^5.0.14"
++ }
++ },
++ "postcss-discard-overridden": {
++ "version": "0.1.1",
++ "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz",
++ "integrity": "sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg=",
++ "dev": true,
++ "requires": {
++ "postcss": "^5.0.16"
++ }
++ },
++ "postcss-discard-unused": {
++ "version": "2.2.3",
++ "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz",
++ "integrity": "sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM=",
++ "dev": true,
++ "requires": {
++ "postcss": "^5.0.14",
++ "uniqs": "^2.0.0"
++ }
++ },
++ "postcss-filter-plugins": {
++ "version": "2.0.2",
++ "resolved": "https://registry.npmjs.org/postcss-filter-plugins/-/postcss-filter-plugins-2.0.2.tgz",
++ "integrity": "sha1-bYWGJTTXNaxCDkqFgG4fXUKG2Ew=",
++ "dev": true,
++ "requires": {
++ "postcss": "^5.0.4",
++ "uniqid": "^4.0.0"
++ }
++ },
++ "postcss-font-family-system-ui": {
++ "version": "1.0.2",
++ "resolved": "https://registry.npmjs.org/postcss-font-family-system-ui/-/postcss-font-family-system-ui-1.0.2.tgz",
++ "integrity": "sha1-PhpeP7fjHl6ecUOcyw6AFFVpJ8c=",
++ "dev": true,
++ "requires": {
++ "lodash": "^4.17.4",
++ "postcss": "^5.2.12",
++ "postcss-value-parser": "^3.3.0"
++ }
++ },
++ "postcss-font-variant": {
++ "version": "2.0.1",
++ "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-2.0.1.tgz",
++ "integrity": "sha1-fKKRA/WfoCyjrOLKIrL3VoU9Tvg=",
++ "dev": true,
++ "requires": {
++ "postcss": "^5.0.4"
++ }
++ },
++ "postcss-image-set-polyfill": {
++ "version": "0.3.5",
++ "resolved": "https://registry.npmjs.org/postcss-image-set-polyfill/-/postcss-image-set-polyfill-0.3.5.tgz",
++ "integrity": "sha1-Dxk0E3AM8fgr05Bm7wFtZaShgYE=",
++ "dev": true,
++ "requires": {
++ "postcss": "^6.0.1",
++ "postcss-media-query-parser": "^0.2.3"
++ },
++ "dependencies": {
++ "ansi-styles": {
++ "version": "3.1.0",
++ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.1.0.tgz",
++ "integrity": "sha1-CcIC1ckX7CMYjKpcnLkXnNlUd1A=",
++ "dev": true,
++ "requires": {
++ "color-convert": "^1.0.0"
++ }
++ },
++ "chalk": {
++ "version": "2.0.1",
++ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.0.1.tgz",
++ "integrity": "sha512-Mp+FXEI+FrwY/XYV45b2YD3E8i3HwnEAoFcM0qlZzq/RZ9RwWitt2Y/c7cqRAz70U7hfekqx6qNYthuKFO6K0g==",
++ "dev": true,
++ "requires": {
++ "ansi-styles": "^3.1.0",
++ "escape-string-regexp": "^1.0.5",
++ "supports-color": "^4.0.0"
++ }
++ },
++ "has-flag": {
++ "version": "2.0.0",
++ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
++ "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
++ "dev": true
++ },
++ "postcss": {
++ "version": "6.0.6",
++ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.6.tgz",
++ "integrity": "sha1-u6TVjohPx4yEDRU54Q7dqruPc70=",
++ "dev": true,
++ "requires": {
++ "chalk": "^2.0.1",
++ "source-map": "^0.5.6",
++ "supports-color": "^4.1.0"
++ }
++ },
++ "supports-color": {
++ "version": "4.2.0",
++ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.2.0.tgz",
++ "integrity": "sha512-Ts0Mu/A1S1aZxEJNG88I4Oc9rcZSBFNac5e27yh4j2mqbhZSSzR1Ah79EYwSn9Zuh7lrlGD2cVGzw1RKGzyLSg==",
++ "dev": true,
++ "requires": {
++ "has-flag": "^2.0.0"
++ }
++ }
++ }
++ },
++ "postcss-import": {
++ "version": "9.1.0",
++ "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-9.1.0.tgz",
++ "integrity": "sha1-lf6YdqHnmvSfvcNYnwH+WqfMHoA=",
++ "dev": true,
++ "requires": {
++ "object-assign": "^4.0.1",
++ "postcss": "^5.0.14",
++ "postcss-value-parser": "^3.2.3",
++ "promise-each": "^2.2.0",
++ "read-cache": "^1.0.0",
++ "resolve": "^1.1.7"
++ }
++ },
++ "postcss-initial": {
++ "version": "1.5.3",
++ "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-1.5.3.tgz",
++ "integrity": "sha1-IMPpHJaCLdsb7UlQjbltVrrDd9A=",
++ "dev": true,
++ "requires": {
++ "lodash.template": "^4.2.4",
++ "postcss": "^5.0.19"
++ },
++ "dependencies": {
++ "lodash.template": {
++ "version": "4.4.0",
++ "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.4.0.tgz",
++ "integrity": "sha1-5zoDhcg1VZF0bgILmWecaQ5o+6A=",
++ "dev": true,
++ "requires": {
++ "lodash._reinterpolate": "~3.0.0",
++ "lodash.templatesettings": "^4.0.0"
++ }
++ },
++ "lodash.templatesettings": {
++ "version": "4.1.0",
++ "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz",
++ "integrity": "sha1-K01OlbpEDZFf8IvImeRVNmZxMxY=",
++ "dev": true,
++ "requires": {
++ "lodash._reinterpolate": "~3.0.0"
++ }
++ }
++ }
++ },
++ "postcss-load-config": {
++ "version": "1.2.0",
++ "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-1.2.0.tgz",
++ "integrity": "sha1-U56a/J3chiASHr+djDZz4M5Q0oo=",
++ "dev": true,
++ "requires": {
++ "cosmiconfig": "^2.1.0",
++ "object-assign": "^4.1.0",
++ "postcss-load-options": "^1.2.0",
++ "postcss-load-plugins": "^2.3.0"
++ }
++ },
++ "postcss-load-options": {
++ "version": "1.2.0",
++ "resolved": "https://registry.npmjs.org/postcss-load-options/-/postcss-load-options-1.2.0.tgz",
++ "integrity": "sha1-sJixVZ3awt8EvAuzdfmaXP4rbYw=",
++ "dev": true,
++ "requires": {
++ "cosmiconfig": "^2.1.0",
++ "object-assign": "^4.1.0"
++ }
++ },
++ "postcss-load-plugins": {
++ "version": "2.3.0",
++ "resolved": "https://registry.npmjs.org/postcss-load-plugins/-/postcss-load-plugins-2.3.0.tgz",
++ "integrity": "sha1-dFdoEWWZrKLwCfrUJrABdQSdjZI=",
++ "dev": true,
++ "requires": {
++ "cosmiconfig": "^2.1.1",
++ "object-assign": "^4.1.0"
++ }
++ },
++ "postcss-loader": {
++ "version": "1.3.3",
++ "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-1.3.3.tgz",
++ "integrity": "sha1-piHqH6KQYqg5cqRvVEhncTAZFus=",
++ "dev": true,
++ "requires": {
++ "loader-utils": "^1.0.2",
++ "object-assign": "^4.1.1",
++ "postcss": "^5.2.15",
++ "postcss-load-config": "^1.2.0"
++ }
++ },
++ "postcss-media-minmax": {
++ "version": "2.1.2",
++ "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-2.1.2.tgz",
++ "integrity": "sha1-RExc+JJqteT9iiUJ6Sl+dRZJzfg=",
++ "dev": true,
++ "requires": {
++ "postcss": "^5.0.4"
++ }
++ },
++ "postcss-media-query-parser": {
++ "version": "0.2.3",
++ "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz",
++ "integrity": "sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ=",
++ "dev": true
++ },
++ "postcss-merge-idents": {
++ "version": "2.1.7",
++ "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz",
++ "integrity": "sha1-TFUwMTwI4dWzu/PSu8dH4njuonA=",
++ "dev": true,
++ "requires": {
++ "has": "^1.0.1",
++ "postcss": "^5.0.10",
++ "postcss-value-parser": "^3.1.1"
++ }
++ },
++ "postcss-merge-longhand": {
++ "version": "2.0.2",
++ "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz",
++ "integrity": "sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg=",
++ "dev": true,
++ "requires": {
++ "postcss": "^5.0.4"
++ }
++ },
++ "postcss-merge-rules": {
++ "version": "2.1.2",
++ "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz",
++ "integrity": "sha1-0d9d+qexrMO+VT8OnhDofGG19yE=",
++ "dev": true,
++ "requires": {
++ "browserslist": "^1.5.2",
++ "caniuse-api": "^1.5.2",
++ "postcss": "^5.0.4",
++ "postcss-selector-parser": "^2.2.2",
++ "vendors": "^1.0.0"
++ },
++ "dependencies": {
++ "browserslist": {
++ "version": "1.7.7",
++ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz",
++ "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=",
++ "dev": true,
++ "requires": {
++ "caniuse-db": "^1.0.30000639",
++ "electron-to-chromium": "^1.2.7"
++ }
++ }
++ }
++ },
++ "postcss-message-helpers": {
++ "version": "2.0.0",
++ "resolved": "https://registry.npmjs.org/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz",
++ "integrity": "sha1-pPL0+rbk/gAvCu0ABHjN9S+bpg4=",
++ "dev": true
++ },
++ "postcss-minify-font-values": {
++ "version": "1.0.5",
++ "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz",
++ "integrity": "sha1-S1jttWZB66fIR0qzUmyv17vey2k=",
++ "dev": true,
++ "requires": {
++ "object-assign": "^4.0.1",
++ "postcss": "^5.0.4",
++ "postcss-value-parser": "^3.0.2"
++ }
++ },
++ "postcss-minify-gradients": {
++ "version": "1.0.5",
++ "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz",
++ "integrity": "sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE=",
++ "dev": true,
++ "requires": {
++ "postcss": "^5.0.12",
++ "postcss-value-parser": "^3.3.0"
++ }
++ },
++ "postcss-minify-params": {
++ "version": "1.2.2",
++ "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz",
++ "integrity": "sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM=",
++ "dev": true,
++ "requires": {
++ "alphanum-sort": "^1.0.1",
++ "postcss": "^5.0.2",
++ "postcss-value-parser": "^3.0.2",
++ "uniqs": "^2.0.0"
++ }
++ },
++ "postcss-minify-selectors": {
++ "version": "2.1.1",
++ "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz",
++ "integrity": "sha1-ssapjAByz5G5MtGkllCBFDEXNb8=",
++ "dev": true,
++ "requires": {
++ "alphanum-sort": "^1.0.2",
++ "has": "^1.0.1",
++ "postcss": "^5.0.14",
++ "postcss-selector-parser": "^2.0.0"
++ }
++ },
++ "postcss-modules-extract-imports": {
++ "version": "1.1.0",
++ "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz",
++ "integrity": "sha1-thTJcgvmgW6u41+zpfqh26agXds=",
++ "dev": true,
++ "requires": {
++ "postcss": "^6.0.1"
++ },
++ "dependencies": {
++ "ansi-styles": {
++ "version": "3.1.0",
++ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.1.0.tgz",
++ "integrity": "sha1-CcIC1ckX7CMYjKpcnLkXnNlUd1A=",
++ "dev": true,
++ "requires": {
++ "color-convert": "^1.0.0"
++ }
++ },
++ "chalk": {
++ "version": "2.0.1",
++ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.0.1.tgz",
++ "integrity": "sha512-Mp+FXEI+FrwY/XYV45b2YD3E8i3HwnEAoFcM0qlZzq/RZ9RwWitt2Y/c7cqRAz70U7hfekqx6qNYthuKFO6K0g==",
++ "dev": true,
++ "requires": {
++ "ansi-styles": "^3.1.0",
++ "escape-string-regexp": "^1.0.5",
++ "supports-color": "^4.0.0"
++ }
++ },
++ "has-flag": {
++ "version": "2.0.0",
++ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
++ "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
++ "dev": true
++ },
++ "postcss": {
++ "version": "6.0.6",
++ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.6.tgz",
++ "integrity": "sha1-u6TVjohPx4yEDRU54Q7dqruPc70=",
++ "dev": true,
++ "requires": {
++ "chalk": "^2.0.1",
++ "source-map": "^0.5.6",
++ "supports-color": "^4.1.0"
++ }
++ },
++ "supports-color": {
++ "version": "4.2.0",
++ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.2.0.tgz",
++ "integrity": "sha512-Ts0Mu/A1S1aZxEJNG88I4Oc9rcZSBFNac5e27yh4j2mqbhZSSzR1Ah79EYwSn9Zuh7lrlGD2cVGzw1RKGzyLSg==",
++ "dev": true,
++ "requires": {
++ "has-flag": "^2.0.0"
++ }
++ }
++ }
++ },
++ "postcss-modules-local-by-default": {
++ "version": "1.2.0",
++ "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz",
++ "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=",
++ "dev": true,
++ "requires": {
++ "css-selector-tokenizer": "^0.7.0",
++ "postcss": "^6.0.1"
++ },
++ "dependencies": {
++ "ansi-styles": {
++ "version": "3.1.0",
++ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.1.0.tgz",
++ "integrity": "sha1-CcIC1ckX7CMYjKpcnLkXnNlUd1A=",
++ "dev": true,
++ "requires": {
++ "color-convert": "^1.0.0"
++ }
++ },
++ "chalk": {
++ "version": "2.0.1",
++ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.0.1.tgz",
++ "integrity": "sha512-Mp+FXEI+FrwY/XYV45b2YD3E8i3HwnEAoFcM0qlZzq/RZ9RwWitt2Y/c7cqRAz70U7hfekqx6qNYthuKFO6K0g==",
++ "dev": true,
++ "requires": {
++ "ansi-styles": "^3.1.0",
++ "escape-string-regexp": "^1.0.5",
++ "supports-color": "^4.0.0"
++ }
++ },
++ "has-flag": {
++ "version": "2.0.0",
++ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
++ "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
++ "dev": true
++ },
++ "postcss": {
++ "version": "6.0.6",
++ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.6.tgz",
++ "integrity": "sha1-u6TVjohPx4yEDRU54Q7dqruPc70=",
++ "dev": true,
++ "requires": {
++ "chalk": "^2.0.1",
++ "source-map": "^0.5.6",
++ "supports-color": "^4.1.0"
++ }
++ },
++ "supports-color": {
++ "version": "4.2.0",
++ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.2.0.tgz",
++ "integrity": "sha512-Ts0Mu/A1S1aZxEJNG88I4Oc9rcZSBFNac5e27yh4j2mqbhZSSzR1Ah79EYwSn9Zuh7lrlGD2cVGzw1RKGzyLSg==",
++ "dev": true,
++ "requires": {
++ "has-flag": "^2.0.0"
++ }
++ }
++ }
++ },
++ "postcss-modules-scope": {
++ "version": "1.1.0",
++ "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz",
++ "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=",
++ "dev": true,
++ "requires": {
++ "css-selector-tokenizer": "^0.7.0",
++ "postcss": "^6.0.1"
++ },
++ "dependencies": {
++ "ansi-styles": {
++ "version": "3.1.0",
++ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.1.0.tgz",
++ "integrity": "sha1-CcIC1ckX7CMYjKpcnLkXnNlUd1A=",
++ "dev": true,
++ "requires": {
++ "color-convert": "^1.0.0"
++ }
++ },
++ "chalk": {
++ "version": "2.0.1",
++ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.0.1.tgz",
++ "integrity": "sha512-Mp+FXEI+FrwY/XYV45b2YD3E8i3HwnEAoFcM0qlZzq/RZ9RwWitt2Y/c7cqRAz70U7hfekqx6qNYthuKFO6K0g==",
++ "dev": true,
++ "requires": {
++ "ansi-styles": "^3.1.0",
++ "escape-string-regexp": "^1.0.5",
++ "supports-color": "^4.0.0"
++ }
++ },
++ "has-flag": {
++ "version": "2.0.0",
++ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
++ "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
++ "dev": true
++ },
++ "postcss": {
++ "version": "6.0.6",
++ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.6.tgz",
++ "integrity": "sha1-u6TVjohPx4yEDRU54Q7dqruPc70=",
++ "dev": true,
++ "requires": {
++ "chalk": "^2.0.1",
++ "source-map": "^0.5.6",
++ "supports-color": "^4.1.0"
++ }
++ },
++ "supports-color": {
++ "version": "4.2.0",
++ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.2.0.tgz",
++ "integrity": "sha512-Ts0Mu/A1S1aZxEJNG88I4Oc9rcZSBFNac5e27yh4j2mqbhZSSzR1Ah79EYwSn9Zuh7lrlGD2cVGzw1RKGzyLSg==",
++ "dev": true,
++ "requires": {
++ "has-flag": "^2.0.0"
++ }
++ }
++ }
++ },
++ "postcss-modules-values": {
++ "version": "1.3.0",
++ "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz",
++ "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=",
++ "dev": true,
++ "requires": {
++ "icss-replace-symbols": "^1.1.0",
++ "postcss": "^6.0.1"
++ },
++ "dependencies": {
++ "ansi-styles": {
++ "version": "3.1.0",
++ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.1.0.tgz",
++ "integrity": "sha1-CcIC1ckX7CMYjKpcnLkXnNlUd1A=",
++ "dev": true,
++ "requires": {
++ "color-convert": "^1.0.0"
++ }
++ },
++ "chalk": {
++ "version": "2.0.1",
++ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.0.1.tgz",
++ "integrity": "sha512-Mp+FXEI+FrwY/XYV45b2YD3E8i3HwnEAoFcM0qlZzq/RZ9RwWitt2Y/c7cqRAz70U7hfekqx6qNYthuKFO6K0g==",
++ "dev": true,
++ "requires": {
++ "ansi-styles": "^3.1.0",
++ "escape-string-regexp": "^1.0.5",
++ "supports-color": "^4.0.0"
++ }
++ },
++ "has-flag": {
++ "version": "2.0.0",
++ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
++ "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
++ "dev": true
++ },
++ "postcss": {
++ "version": "6.0.6",
++ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.6.tgz",
++ "integrity": "sha1-u6TVjohPx4yEDRU54Q7dqruPc70=",
++ "dev": true,
++ "requires": {
++ "chalk": "^2.0.1",
++ "source-map": "^0.5.6",
++ "supports-color": "^4.1.0"
++ }
++ },
++ "supports-color": {
++ "version": "4.2.0",
++ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.2.0.tgz",
++ "integrity": "sha512-Ts0Mu/A1S1aZxEJNG88I4Oc9rcZSBFNac5e27yh4j2mqbhZSSzR1Ah79EYwSn9Zuh7lrlGD2cVGzw1RKGzyLSg==",
++ "dev": true,
++ "requires": {
++ "has-flag": "^2.0.0"
++ }
++ }
++ }
++ },
++ "postcss-nesting": {
++ "version": "2.3.1",
++ "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-2.3.1.tgz",
++ "integrity": "sha1-lKa2pO9wf77CCof+5clXdZtOAc8=",
++ "dev": true,
++ "requires": {
++ "postcss": "^5.0.19"
++ }
++ },
++ "postcss-normalize-charset": {
++ "version": "1.1.1",
++ "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz",
++ "integrity": "sha1-757nEhLX/nWceO0WL2HtYrXLk/E=",
++ "dev": true,
++ "requires": {
++ "postcss": "^5.0.5"
++ }
++ },
++ "postcss-normalize-url": {
++ "version": "3.0.8",
++ "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz",
++ "integrity": "sha1-EI90s/L82viRov+j6kWSJ5/HgiI=",
++ "dev": true,
++ "requires": {
++ "is-absolute-url": "^2.0.0",
++ "normalize-url": "^1.4.0",
++ "postcss": "^5.0.14",
++ "postcss-value-parser": "^3.2.3"
++ }
++ },
++ "postcss-ordered-values": {
++ "version": "2.2.3",
++ "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz",
++ "integrity": "sha1-7sbCpntsQSqNsgQud/6NpD+VwR0=",
++ "dev": true,
++ "requires": {
++ "postcss": "^5.0.4",
++ "postcss-value-parser": "^3.0.1"
++ }
++ },
++ "postcss-pseudo-class-any-link": {
++ "version": "1.0.0",
++ "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-1.0.0.tgz",
++ "integrity": "sha1-kDI5GWQB0zX+c6x1YYb6YuaTryY=",
++ "dev": true,
++ "requires": {
++ "postcss": "^5.0.3",
++ "postcss-selector-parser": "^1.1.4"
++ },
++ "dependencies": {
++ "postcss-selector-parser": {
++ "version": "1.3.3",
++ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-1.3.3.tgz",
++ "integrity": "sha1-0u4Z33pk+O8hwacchvfUg1yIwoE=",
++ "dev": true,
++ "requires": {
++ "flatten": "^1.0.2",
++ "indexes-of": "^1.0.1",
++ "uniq": "^1.0.1"
++ }
++ }
++ }
++ },
++ "postcss-pseudoelements": {
++ "version": "3.0.0",
++ "resolved": "https://registry.npmjs.org/postcss-pseudoelements/-/postcss-pseudoelements-3.0.0.tgz",
++ "integrity": "sha1-bGghd8eQC6BTtt8X+MWQKEx7i7w=",
++ "dev": true,
++ "requires": {
++ "postcss": "^5.0.4"
++ }
++ },
++ "postcss-reduce-idents": {
++ "version": "2.4.0",
++ "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz",
++ "integrity": "sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM=",
++ "dev": true,
++ "requires": {
++ "postcss": "^5.0.4",
++ "postcss-value-parser": "^3.0.2"
++ }
++ },
++ "postcss-reduce-initial": {
++ "version": "1.0.1",
++ "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz",
++ "integrity": "sha1-aPgGlfBF0IJjqHmtJA343WT2ROo=",
++ "dev": true,
++ "requires": {
++ "postcss": "^5.0.4"
++ }
++ },
++ "postcss-reduce-transforms": {
++ "version": "1.0.4",
++ "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz",
++ "integrity": "sha1-/3b02CEkN7McKYpC0uFEQCV3GuE=",
++ "dev": true,
++ "requires": {
++ "has": "^1.0.1",
++ "postcss": "^5.0.8",
++ "postcss-value-parser": "^3.0.1"
++ }
++ },
++ "postcss-replace-overflow-wrap": {
++ "version": "1.0.0",
++ "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-1.0.0.tgz",
++ "integrity": "sha1-8KA7Meq5Y2ppNr/SEOKu8bQ0pkM=",
++ "dev": true,
++ "requires": {
++ "postcss": "^5.0.16"
++ }
++ },
++ "postcss-selector-matches": {
++ "version": "2.0.5",
++ "resolved": "https://registry.npmjs.org/postcss-selector-matches/-/postcss-selector-matches-2.0.5.tgz",
++ "integrity": "sha1-+g9Dvle2jneqTNEYBwI0kqExAn8=",
++ "dev": true,
++ "requires": {
++ "balanced-match": "^0.4.2",
++ "postcss": "^5.0.0"
++ },
++ "dependencies": {
++ "balanced-match": {
++ "version": "0.4.2",
++ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz",
++ "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=",
++ "dev": true
++ }
++ }
++ },
++ "postcss-selector-not": {
++ "version": "2.0.0",
++ "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-2.0.0.tgz",
++ "integrity": "sha1-xzrSGj91I0vuf+4mnhVP1qhpeY0=",
++ "dev": true,
++ "requires": {
++ "balanced-match": "^0.2.0",
++ "postcss": "^5.0.0"
++ },
++ "dependencies": {
++ "balanced-match": {
++ "version": "0.2.1",
++ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.2.1.tgz",
++ "integrity": "sha1-e8ZYtL7WHu5CStdPdfXD4sTfPMc=",
++ "dev": true
++ }
++ }
++ },
++ "postcss-selector-parser": {
++ "version": "2.2.3",
++ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz",
++ "integrity": "sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=",
++ "dev": true,
++ "requires": {
++ "flatten": "^1.0.2",
++ "indexes-of": "^1.0.1",
++ "uniq": "^1.0.1"
++ }
++ },
++ "postcss-svgo": {
++ "version": "2.1.6",
++ "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-2.1.6.tgz",
++ "integrity": "sha1-tt8YqmE7Zm4TPwittSGcJoSsEI0=",
++ "dev": true,
++ "requires": {
++ "is-svg": "^2.0.0",
++ "postcss": "^5.0.14",
++ "postcss-value-parser": "^3.2.3",
++ "svgo": "^0.7.0"
++ }
++ },
++ "postcss-unique-selectors": {
++ "version": "2.0.2",
++ "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz",
++ "integrity": "sha1-mB1X0p3csz57Hf4f1DuGSfkzyh0=",
++ "dev": true,
++ "requires": {
++ "alphanum-sort": "^1.0.1",
++ "postcss": "^5.0.4",
++ "uniqs": "^2.0.0"
++ }
++ },
++ "postcss-value-parser": {
++ "version": "3.3.0",
++ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz",
++ "integrity": "sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=",
++ "dev": true
++ },
++ "postcss-zindex": {
++ "version": "2.2.0",
++ "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-2.2.0.tgz",
++ "integrity": "sha1-0hCd3AVbka9n/EyzsCWUZjnSryI=",
++ "dev": true,
++ "requires": {
++ "has": "^1.0.1",
++ "postcss": "^5.0.4",
++ "uniqs": "^2.0.0"
++ }
++ },
++ "prepend-http": {
++ "version": "1.0.4",
++ "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
++ "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=",
++ "dev": true
++ },
++ "preserve": {
++ "version": "0.2.0",
++ "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz",
++ "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=",
++ "dev": true
++ },
++ "private": {
++ "version": "0.1.8",
++ "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz",
++ "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==",
++ "dev": true
++ },
++ "process": {
++ "version": "0.5.2",
++ "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz",
++ "integrity": "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=",
++ "dev": true
++ },
++ "process-nextick-args": {
++ "version": "1.0.7",
++ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
++ "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=",
++ "dev": true
++ },
++ "promise-each": {
++ "version": "2.2.0",
++ "resolved": "https://registry.npmjs.org/promise-each/-/promise-each-2.2.0.tgz",
++ "integrity": "sha1-M1MXTv8mlEgQN+BOAfd6oPttG2A=",
++ "dev": true,
++ "requires": {
++ "any-promise": "^0.1.0"
++ }
++ },
++ "prr": {
++ "version": "0.0.0",
++ "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz",
++ "integrity": "sha1-GoS4WQgyVQFBGFPQCB7j+obikmo=",
++ "dev": true
++ },
++ "public-encrypt": {
++ "version": "4.0.0",
++ "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz",
++ "integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=",
++ "dev": true,
++ "requires": {
++ "bn.js": "^4.1.0",
++ "browserify-rsa": "^4.0.0",
++ "create-hash": "^1.1.0",
++ "parse-asn1": "^5.0.0",
++ "randombytes": "^2.0.1"
++ }
++ },
++ "punycode": {
++ "version": "1.4.1",
++ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
++ "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
++ "dev": true
++ },
++ "q": {
++ "version": "1.5.0",
++ "resolved": "https://registry.npmjs.org/q/-/q-1.5.0.tgz",
++ "integrity": "sha1-3QG6ydBtMObyGa7LglPunr3DCPE=",
++ "dev": true
++ },
++ "query-string": {
++ "version": "4.3.4",
++ "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz",
++ "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=",
++ "dev": true,
++ "requires": {
++ "object-assign": "^4.1.0",
++ "strict-uri-encode": "^1.0.0"
++ }
++ },
++ "querystring": {
++ "version": "0.2.0",
++ "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
++ "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=",
++ "dev": true
++ },
++ "querystring-es3": {
++ "version": "0.2.1",
++ "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz",
++ "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=",
++ "dev": true
++ },
++ "randomatic": {
++ "version": "3.1.1",
++ "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz",
++ "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==",
++ "dev": true,
++ "requires": {
++ "is-number": "^4.0.0",
++ "kind-of": "^6.0.0",
++ "math-random": "^1.0.1"
++ },
++ "dependencies": {
++ "is-number": {
++ "version": "4.0.0",
++ "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz",
++ "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==",
++ "dev": true
++ },
++ "kind-of": {
++ "version": "6.0.2",
++ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
++ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
++ "dev": true
++ }
++ }
++ },
++ "randombytes": {
++ "version": "2.0.5",
++ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.5.tgz",
++ "integrity": "sha512-8T7Zn1AhMsQ/HI1SjcCfT/t4ii3eAqco3yOcSzS4mozsOz69lHLsoMXmF9nZgnFanYscnSlUSgs8uZyKzpE6kg==",
++ "dev": true,
++ "requires": {
++ "safe-buffer": "^5.1.0"
++ }
++ },
++ "read-cache": {
++ "version": "1.0.0",
++ "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
++ "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=",
++ "dev": true,
++ "requires": {
++ "pify": "^2.3.0"
++ }
++ },
++ "read-pkg": {
++ "version": "1.1.0",
++ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
++ "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
++ "dev": true,
++ "requires": {
++ "load-json-file": "^1.0.0",
++ "normalize-package-data": "^2.3.2",
++ "path-type": "^1.0.0"
++ }
++ },
++ "read-pkg-up": {
++ "version": "1.0.1",
++ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
++ "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
++ "dev": true,
++ "requires": {
++ "find-up": "^1.0.0",
++ "read-pkg": "^1.0.0"
++ },
++ "dependencies": {
++ "find-up": {
++ "version": "1.1.2",
++ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
++ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
++ "dev": true,
++ "requires": {
++ "path-exists": "^2.0.0",
++ "pinkie-promise": "^2.0.0"
++ }
++ },
++ "path-exists": {
++ "version": "2.1.0",
++ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
++ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
++ "dev": true,
++ "requires": {
++ "pinkie-promise": "^2.0.0"
++ }
++ }
++ }
++ },
++ "readable-stream": {
++ "version": "2.3.3",
++ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz",
++ "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==",
++ "dev": true,
++ "requires": {
++ "core-util-is": "~1.0.0",
++ "inherits": "~2.0.3",
++ "isarray": "~1.0.0",
++ "process-nextick-args": "~1.0.6",
++ "safe-buffer": "~5.1.1",
++ "string_decoder": "~1.0.3",
++ "util-deprecate": "~1.0.1"
++ }
++ },
++ "readdirp": {
++ "version": "2.1.0",
++ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz",
++ "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=",
++ "dev": true,
++ "requires": {
++ "graceful-fs": "^4.1.2",
++ "minimatch": "^3.0.2",
++ "readable-stream": "^2.0.2",
++ "set-immediate-shim": "^1.0.1"
++ }
++ },
++ "reduce": {
++ "version": "1.0.1",
++ "resolved": "https://registry.npmjs.org/reduce/-/reduce-1.0.1.tgz",
++ "integrity": "sha1-FPouX/H8VgcDoCDLtfuqtpFWWAQ=",
++ "dev": true,
++ "requires": {
++ "object-keys": "~1.0.0"
++ }
++ },
++ "reduce-css-calc": {
++ "version": "1.3.0",
++ "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz",
++ "integrity": "sha1-dHyRTgSWFKTJz7umKYca0dKSdxY=",
++ "dev": true,
++ "requires": {
++ "balanced-match": "^0.4.2",
++ "math-expression-evaluator": "^1.2.14",
++ "reduce-function-call": "^1.0.1"
++ },
++ "dependencies": {
++ "balanced-match": {
++ "version": "0.4.2",
++ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz",
++ "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=",
++ "dev": true
++ }
++ }
++ },
++ "reduce-function-call": {
++ "version": "1.0.2",
++ "resolved": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.2.tgz",
++ "integrity": "sha1-WiAL+S4ON3UXUv5FsKszD9S2vpk=",
++ "dev": true,
++ "requires": {
++ "balanced-match": "^0.4.2"
++ },
++ "dependencies": {
++ "balanced-match": {
++ "version": "0.4.2",
++ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz",
++ "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=",
++ "dev": true
++ }
++ }
++ },
++ "regenerate": {
++ "version": "1.3.2",
++ "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.2.tgz",
++ "integrity": "sha1-0ZQcZ7rUN+G+dkM63Vs4X5WxkmA=",
++ "dev": true
++ },
++ "regenerator-runtime": {
++ "version": "0.11.1",
++ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
++ "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==",
++ "dev": true
++ },
++ "regenerator-transform": {
++ "version": "0.10.1",
++ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz",
++ "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==",
++ "dev": true,
++ "requires": {
++ "babel-runtime": "^6.18.0",
++ "babel-types": "^6.19.0",
++ "private": "^0.1.6"
++ }
++ },
++ "regex-cache": {
++ "version": "0.4.3",
++ "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz",
++ "integrity": "sha1-mxpsNdTQ3871cRrmUejp09cRQUU=",
++ "dev": true,
++ "requires": {
++ "is-equal-shallow": "^0.1.3",
++ "is-primitive": "^2.0.0"
++ }
++ },
++ "regexpu-core": {
++ "version": "2.0.0",
++ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz",
++ "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=",
++ "dev": true,
++ "requires": {
++ "regenerate": "^1.2.1",
++ "regjsgen": "^0.2.0",
++ "regjsparser": "^0.1.4"
++ }
++ },
++ "regjsgen": {
++ "version": "0.2.0",
++ "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz",
++ "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=",
++ "dev": true
++ },
++ "regjsparser": {
++ "version": "0.1.5",
++ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz",
++ "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=",
++ "dev": true,
++ "requires": {
++ "jsesc": "~0.5.0"
++ },
++ "dependencies": {
++ "jsesc": {
++ "version": "0.5.0",
++ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
++ "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
++ "dev": true
++ }
++ }
++ },
++ "remove-trailing-separator": {
++ "version": "1.0.2",
++ "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.0.2.tgz",
++ "integrity": "sha1-abBi2XhyetFNxrVrpKt3L9jXBRE=",
++ "dev": true
++ },
++ "repeat-element": {
++ "version": "1.1.2",
++ "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz",
++ "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=",
++ "dev": true
++ },
++ "repeat-string": {
++ "version": "1.6.1",
++ "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
++ "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
++ "dev": true
++ },
++ "repeating": {
++ "version": "2.0.1",
++ "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
++ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
++ "dev": true,
++ "requires": {
++ "is-finite": "^1.0.0"
++ }
++ },
++ "require-directory": {
++ "version": "2.1.1",
++ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
++ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
++ "dev": true
++ },
++ "require-from-string": {
++ "version": "1.2.1",
++ "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-1.2.1.tgz",
++ "integrity": "sha1-UpyczvJzgK3+yaL5ZbZJu+5jZBg=",
++ "dev": true
++ },
++ "require-main-filename": {
++ "version": "1.0.1",
++ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
++ "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=",
++ "dev": true
++ },
++ "resolve": {
++ "version": "1.3.3",
++ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.3.3.tgz",
++ "integrity": "sha1-ZVkHw0aahoDcLeOidaj91paR8OU=",
++ "dev": true,
++ "requires": {
++ "path-parse": "^1.0.5"
++ }
++ },
++ "rgb": {
++ "version": "0.1.0",
++ "resolved": "https://registry.npmjs.org/rgb/-/rgb-0.1.0.tgz",
++ "integrity": "sha1-vieykej+/+rBvZlylyG/pA/AN7U=",
++ "dev": true
++ },
++ "rgb-hex": {
++ "version": "1.0.0",
++ "resolved": "https://registry.npmjs.org/rgb-hex/-/rgb-hex-1.0.0.tgz",
++ "integrity": "sha1-v6+M2c2RZLWibXHrTxWgllMks8E=",
++ "dev": true
++ },
++ "right-align": {
++ "version": "0.1.3",
++ "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz",
++ "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=",
++ "dev": true,
++ "requires": {
++ "align-text": "^0.1.1"
++ }
++ },
++ "ripemd160": {
++ "version": "2.0.1",
++ "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz",
++ "integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=",
++ "dev": true,
++ "requires": {
++ "hash-base": "^2.0.0",
++ "inherits": "^2.0.1"
++ }
++ },
++ "safe-buffer": {
++ "version": "5.1.1",
++ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
++ "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==",
++ "dev": true
++ },
++ "sax": {
++ "version": "1.2.4",
++ "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
++ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
++ "dev": true
++ },
++ "schema-utils": {
++ "version": "0.3.0",
++ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz",
++ "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=",
++ "dev": true,
++ "requires": {
++ "ajv": "^5.0.0"
++ },
++ "dependencies": {
++ "ajv": {
++ "version": "5.2.2",
++ "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.2.2.tgz",
++ "integrity": "sha1-R8aNaehvXZUxA7AHSpQw3GPaXjk=",
++ "dev": true,
++ "requires": {
++ "co": "^4.6.0",
++ "fast-deep-equal": "^1.0.0",
++ "json-schema-traverse": "^0.3.0",
++ "json-stable-stringify": "^1.0.1"
++ }
++ }
++ }
++ },
++ "scrolldir": {
++ "version": "1.2.9",
++ "resolved": "https://registry.npmjs.org/scrolldir/-/scrolldir-1.2.9.tgz",
++ "integrity": "sha1-o6VKM4AG3SjA/hfq/m3ObQIcDb4=",
++ "dev": true
++ },
++ "select": {
++ "version": "1.1.2",
++ "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz",
++ "integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=",
++ "dev": true
++ },
++ "semver": {
++ "version": "5.3.0",
++ "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
++ "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=",
++ "dev": true
++ },
++ "set-blocking": {
++ "version": "2.0.0",
++ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
++ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
++ "dev": true
++ },
++ "set-immediate-shim": {
++ "version": "1.0.1",
++ "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz",
++ "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=",
++ "dev": true
++ },
++ "setimmediate": {
++ "version": "1.0.5",
++ "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
++ "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=",
++ "dev": true
++ },
++ "sha.js": {
++ "version": "2.4.8",
++ "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.8.tgz",
++ "integrity": "sha1-NwaMLEdra69ALRSknGf1l5IfY08=",
++ "dev": true,
++ "requires": {
++ "inherits": "^2.0.1"
++ }
++ },
++ "slash": {
++ "version": "1.0.0",
++ "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
++ "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=",
++ "dev": true
++ },
++ "sort-keys": {
++ "version": "1.1.2",
++ "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz",
++ "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=",
++ "dev": true,
++ "requires": {
++ "is-plain-obj": "^1.0.0"
++ }
++ },
++ "source-list-map": {
++ "version": "0.1.8",
++ "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.8.tgz",
++ "integrity": "sha1-xVCyq1Qn9rPyH1r+rYjE9Vh7IQY=",
++ "dev": true
++ },
++ "source-map": {
++ "version": "0.5.6",
++ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz",
++ "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=",
++ "dev": true
++ },
++ "source-map-support": {
++ "version": "0.4.18",
++ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz",
++ "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==",
++ "dev": true,
++ "requires": {
++ "source-map": "^0.5.6"
++ }
++ },
++ "spdx-correct": {
++ "version": "1.0.2",
++ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz",
++ "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=",
++ "dev": true,
++ "requires": {
++ "spdx-license-ids": "^1.0.2"
++ }
++ },
++ "spdx-expression-parse": {
++ "version": "1.0.4",
++ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz",
++ "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=",
++ "dev": true
++ },
++ "spdx-license-ids": {
++ "version": "1.2.2",
++ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz",
++ "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=",
++ "dev": true
++ },
++ "sprintf-js": {
++ "version": "1.0.3",
++ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
++ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
++ "dev": true
++ },
++ "stream-browserify": {
++ "version": "2.0.1",
++ "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz",
++ "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=",
++ "dev": true,
++ "requires": {
++ "inherits": "~2.0.1",
++ "readable-stream": "^2.0.2"
++ }
++ },
++ "stream-http": {
++ "version": "2.7.2",
++ "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.7.2.tgz",
++ "integrity": "sha512-c0yTD2rbQzXtSsFSVhtpvY/vS6u066PcXOX9kBB3mSO76RiUQzL340uJkGBWnlBg4/HZzqiUXtaVA7wcRcJgEw==",
++ "dev": true,
++ "requires": {
++ "builtin-status-codes": "^3.0.0",
++ "inherits": "^2.0.1",
++ "readable-stream": "^2.2.6",
++ "to-arraybuffer": "^1.0.0",
++ "xtend": "^4.0.0"
++ }
++ },
++ "strict-uri-encode": {
++ "version": "1.1.0",
++ "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
++ "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=",
++ "dev": true
++ },
++ "string-width": {
++ "version": "1.0.2",
++ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
++ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
++ "dev": true,
++ "requires": {
++ "code-point-at": "^1.0.0",
++ "is-fullwidth-code-point": "^1.0.0",
++ "strip-ansi": "^3.0.0"
++ }
++ },
++ "string_decoder": {
++ "version": "1.0.3",
++ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
++ "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
++ "dev": true,
++ "requires": {
++ "safe-buffer": "~5.1.0"
++ }
++ },
++ "strip-ansi": {
++ "version": "3.0.1",
++ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
++ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
++ "dev": true,
++ "requires": {
++ "ansi-regex": "^2.0.0"
++ }
++ },
++ "strip-bom": {
++ "version": "2.0.0",
++ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
++ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
++ "dev": true,
++ "requires": {
++ "is-utf8": "^0.2.0"
++ }
++ },
++ "style-loader": {
++ "version": "0.16.1",
++ "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.16.1.tgz",
++ "integrity": "sha1-UOMlJY1OeEId2WgGNrQehmFZXRA=",
++ "dev": true,
++ "requires": {
++ "loader-utils": "^1.0.2"
++ }
++ },
++ "supports-color": {
++ "version": "2.0.0",
++ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
++ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
++ "dev": true
++ },
++ "svgo": {
++ "version": "0.7.2",
++ "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.7.2.tgz",
++ "integrity": "sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U=",
++ "dev": true,
++ "requires": {
++ "coa": "~1.0.1",
++ "colors": "~1.1.2",
++ "csso": "~2.3.1",
++ "js-yaml": "~3.7.0",
++ "mkdirp": "~0.5.1",
++ "sax": "~1.2.1",
++ "whet.extend": "~0.9.9"
++ }
++ },
++ "tachyons": {
++ "version": "4.7.4",
++ "resolved": "https://registry.npmjs.org/tachyons/-/tachyons-4.7.4.tgz",
++ "integrity": "sha1-7KT/oVwfBqNX8IjG0OaH/F8ECMw=",
++ "dev": true
++ },
++ "tapable": {
++ "version": "0.2.6",
++ "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.6.tgz",
++ "integrity": "sha1-IGvo4YiGC1FEJTdebxrom/sB/Y0=",
++ "dev": true
++ },
++ "through": {
++ "version": "2.3.8",
++ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
++ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
++ "dev": true
++ },
++ "timers-browserify": {
++ "version": "2.0.2",
++ "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.2.tgz",
++ "integrity": "sha1-q0iDz1l9zVCvIRNJoA+8pWrIa4Y=",
++ "dev": true,
++ "requires": {
++ "setimmediate": "^1.0.4"
++ }
++ },
++ "tiny-emitter": {
++ "version": "2.0.1",
++ "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.0.1.tgz",
++ "integrity": "sha1-5lkZ2R5Ijip49+voJ6VsaxiNUa8=",
++ "dev": true
++ },
++ "to-arraybuffer": {
++ "version": "1.0.1",
++ "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz",
++ "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=",
++ "dev": true
++ },
++ "to-factory": {
++ "version": "1.0.0",
++ "resolved": "https://registry.npmjs.org/to-factory/-/to-factory-1.0.0.tgz",
++ "integrity": "sha1-hzivi9lxIK0dQEeXKtpVY7+UebE=",
++ "dev": true
++ },
++ "to-fast-properties": {
++ "version": "1.0.3",
++ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz",
++ "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=",
++ "dev": true
++ },
++ "trim-right": {
++ "version": "1.0.1",
++ "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz",
++ "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=",
++ "dev": true
++ },
++ "tty-browserify": {
++ "version": "0.0.0",
++ "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz",
++ "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=",
++ "dev": true
++ },
++ "uglify-to-browserify": {
++ "version": "1.0.2",
++ "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz",
++ "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=",
++ "dev": true,
++ "optional": true
++ },
++ "uniq": {
++ "version": "1.0.1",
++ "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz",
++ "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=",
++ "dev": true
++ },
++ "uniqid": {
++ "version": "4.1.1",
++ "resolved": "https://registry.npmjs.org/uniqid/-/uniqid-4.1.1.tgz",
++ "integrity": "sha1-iSIN32t1GuUrX3JISGNShZa7hME=",
++ "dev": true,
++ "requires": {
++ "macaddress": "^0.2.8"
++ }
++ },
++ "uniqs": {
++ "version": "2.0.0",
++ "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz",
++ "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=",
++ "dev": true
++ },
++ "units-css": {
++ "version": "0.4.0",
++ "resolved": "https://registry.npmjs.org/units-css/-/units-css-0.4.0.tgz",
++ "integrity": "sha1-1iKGU6UZg9fBb/KPi53Dsf/tOgc=",
++ "dev": true,
++ "requires": {
++ "isnumeric": "^0.2.0",
++ "viewport-dimensions": "^0.2.0"
++ }
++ },
++ "url": {
++ "version": "0.11.0",
++ "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz",
++ "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=",
++ "dev": true,
++ "requires": {
++ "punycode": "1.3.2",
++ "querystring": "0.2.0"
++ },
++ "dependencies": {
++ "punycode": {
++ "version": "1.3.2",
++ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
++ "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=",
++ "dev": true
++ }
++ }
++ },
++ "util": {
++ "version": "0.10.3",
++ "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
++ "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
++ "dev": true,
++ "requires": {
++ "inherits": "2.0.1"
++ },
++ "dependencies": {
++ "inherits": {
++ "version": "2.0.1",
++ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
++ "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=",
++ "dev": true
++ }
++ }
++ },
++ "util-deprecate": {
++ "version": "1.0.2",
++ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
++ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
++ "dev": true
++ },
++ "validate-npm-package-license": {
++ "version": "3.0.1",
++ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz",
++ "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=",
++ "dev": true,
++ "requires": {
++ "spdx-correct": "~1.0.0",
++ "spdx-expression-parse": "~1.0.0"
++ }
++ },
++ "vendors": {
++ "version": "1.0.1",
++ "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.1.tgz",
++ "integrity": "sha1-N61zyO5Bf7PVgOeFMSMH0nSEfyI=",
++ "dev": true
++ },
++ "viewport-dimensions": {
++ "version": "0.2.0",
++ "resolved": "https://registry.npmjs.org/viewport-dimensions/-/viewport-dimensions-0.2.0.tgz",
++ "integrity": "sha1-3nQHR9tTh/0XJfUXXpG6x2r982w=",
++ "dev": true
++ },
++ "vm-browserify": {
++ "version": "0.0.4",
++ "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz",
++ "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=",
++ "dev": true,
++ "requires": {
++ "indexof": "0.0.1"
++ }
++ },
++ "watchpack": {
++ "version": "1.3.1",
++ "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.3.1.tgz",
++ "integrity": "sha1-fYaTkHsozmAT5/NhCqKhrPB9rYc=",
++ "dev": true,
++ "requires": {
++ "async": "^2.1.2",
++ "chokidar": "^1.4.3",
++ "graceful-fs": "^4.1.2"
++ }
++ },
++ "webpack": {
++ "version": "2.6.1",
++ "resolved": "https://registry.npmjs.org/webpack/-/webpack-2.6.1.tgz",
++ "integrity": "sha1-LgRX8KuxrF3zqxBsacZy8jZ4Xwc=",
++ "dev": true,
++ "requires": {
++ "acorn": "^5.0.0",
++ "acorn-dynamic-import": "^2.0.0",
++ "ajv": "^4.7.0",
++ "ajv-keywords": "^1.1.1",
++ "async": "^2.1.2",
++ "enhanced-resolve": "^3.0.0",
++ "interpret": "^1.0.0",
++ "json-loader": "^0.5.4",
++ "json5": "^0.5.1",
++ "loader-runner": "^2.3.0",
++ "loader-utils": "^0.2.16",
++ "memory-fs": "~0.4.1",
++ "mkdirp": "~0.5.0",
++ "node-libs-browser": "^2.0.0",
++ "source-map": "^0.5.3",
++ "supports-color": "^3.1.0",
++ "tapable": "~0.2.5",
++ "uglify-js": "^2.8.27",
++ "watchpack": "^1.3.1",
++ "webpack-sources": "^0.2.3",
++ "yargs": "^6.0.0"
++ },
++ "dependencies": {
++ "ajv-keywords": {
++ "version": "1.5.1",
++ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-1.5.1.tgz",
++ "integrity": "sha1-MU3QpLM2j609/NxU7eYXG4htrzw=",
++ "dev": true
++ },
++ "camelcase": {
++ "version": "1.2.1",
++ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
++ "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=",
++ "dev": true
++ },
++ "loader-utils": {
++ "version": "0.2.17",
++ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz",
++ "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=",
++ "dev": true,
++ "requires": {
++ "big.js": "^3.1.3",
++ "emojis-list": "^2.0.0",
++ "json5": "^0.5.0",
++ "object-assign": "^4.0.1"
++ }
++ },
++ "source-list-map": {
++ "version": "1.1.2",
++ "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-1.1.2.tgz",
++ "integrity": "sha1-mIkBnRAkzOVc3AaUmDN+9hhqEaE=",
++ "dev": true
++ },
++ "supports-color": {
++ "version": "3.2.3",
++ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
++ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
++ "dev": true,
++ "requires": {
++ "has-flag": "^1.0.0"
++ }
++ },
++ "uglify-js": {
++ "version": "2.8.29",
++ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
++ "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=",
++ "dev": true,
++ "requires": {
++ "source-map": "~0.5.1",
++ "uglify-to-browserify": "~1.0.0",
++ "yargs": "~3.10.0"
++ },
++ "dependencies": {
++ "yargs": {
++ "version": "3.10.0",
++ "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
++ "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
++ "dev": true,
++ "requires": {
++ "camelcase": "^1.0.2",
++ "cliui": "^2.1.0",
++ "decamelize": "^1.0.0",
++ "window-size": "0.1.0"
++ }
++ }
++ }
++ },
++ "webpack-sources": {
++ "version": "0.2.3",
++ "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-0.2.3.tgz",
++ "integrity": "sha1-F8Yr+vE8cH+dAsR54Nzd6DgGl/s=",
++ "dev": true,
++ "requires": {
++ "source-list-map": "^1.1.1",
++ "source-map": "~0.5.3"
++ }
++ }
++ }
++ },
++ "webpack-sources": {
++ "version": "1.0.1",
++ "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.0.1.tgz",
++ "integrity": "sha512-05tMxipUCwHqYaVS8xc7sYPTly8PzXayRCB4dTxLhWTqlKUiwH6ezmEe0OSreL1c30LAuA3Zqmc+uEBUGFJDjw==",
++ "dev": true,
++ "requires": {
++ "source-list-map": "^2.0.0",
++ "source-map": "~0.5.3"
++ },
++ "dependencies": {
++ "source-list-map": {
++ "version": "2.0.0",
++ "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.0.tgz",
++ "integrity": "sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A==",
++ "dev": true
++ }
++ }
++ },
++ "whet.extend": {
++ "version": "0.9.9",
++ "resolved": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz",
++ "integrity": "sha1-+HfVv2SMl+WqVC+twW1qJZucEaE=",
++ "dev": true
++ },
++ "which-module": {
++ "version": "1.0.0",
++ "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz",
++ "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=",
++ "dev": true
++ },
++ "window-size": {
++ "version": "0.1.0",
++ "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
++ "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=",
++ "dev": true
++ },
++ "wrap-ansi": {
++ "version": "2.1.0",
++ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
++ "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
++ "dev": true,
++ "requires": {
++ "string-width": "^1.0.1",
++ "strip-ansi": "^3.0.1"
++ }
++ },
++ "xtend": {
++ "version": "4.0.1",
++ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
++ "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
++ "dev": true
++ },
++ "y18n": {
++ "version": "3.2.1",
++ "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
++ "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=",
++ "dev": true
++ },
++ "yargs": {
++ "version": "6.6.0",
++ "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz",
++ "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=",
++ "dev": true,
++ "requires": {
++ "camelcase": "^3.0.0",
++ "cliui": "^3.2.0",
++ "decamelize": "^1.1.1",
++ "get-caller-file": "^1.0.1",
++ "os-locale": "^1.4.0",
++ "read-pkg-up": "^1.0.1",
++ "require-directory": "^2.1.1",
++ "require-main-filename": "^1.0.1",
++ "set-blocking": "^2.0.0",
++ "string-width": "^1.0.2",
++ "which-module": "^1.0.0",
++ "y18n": "^3.2.1",
++ "yargs-parser": "^4.2.0"
++ },
++ "dependencies": {
++ "camelcase": {
++ "version": "3.0.0",
++ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
++ "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
++ "dev": true
++ },
++ "cliui": {
++ "version": "3.2.0",
++ "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
++ "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
++ "dev": true,
++ "requires": {
++ "string-width": "^1.0.1",
++ "strip-ansi": "^3.0.1",
++ "wrap-ansi": "^2.0.0"
++ }
++ }
++ }
++ },
++ "yargs-parser": {
++ "version": "4.2.1",
++ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz",
++ "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=",
++ "dev": true,
++ "requires": {
++ "camelcase": "^3.0.0"
++ },
++ "dependencies": {
++ "camelcase": {
++ "version": "3.0.0",
++ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
++ "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
++ "dev": true
++ }
++ }
++ }
++ }
++}
--- /dev/null
--- /dev/null
++{
++ "name": "gohugo-default-styles",
++ "version": "1.0.0",
++ "description": "Default Theme for Hugo Sites",
++ "main": "index.js",
++ "repository": "",
++ "author": "budparr",
++ "license": "MIT",
++ "scripts": {
++ "build:production": "rm -rf ../static/dist && webpack -p",
++ "build": "webpack --progress --colors --watch",
++ "start": "npm run build"
++ },
++ "devDependencies": {
++ "babel-core": "^6.26.3",
++ "babel-loader": "^7.0.0",
++ "babel-preset-env": "^1.7.0",
++ "clipboard": "^1.6.1",
++ "css-loader": "^0.28.0",
++ "cssnano": "^3.10.0",
++ "docsearch.js": "^2.3.3",
++ "extract-text-webpack-plugin": "^2.1.0",
++ "file-loader": "^0.11.1",
++ "highlight.js": "^9.11.0",
++ "lazysizes": "^3.0.0",
++ "postcss": "^5.2.16",
++ "postcss-cssnext": "^2.10.0",
++ "postcss-import": "^9.1.0",
++ "postcss-loader": "^1.3.3",
++ "scrolldir": "^1.2.7",
++ "style-loader": "^0.16.1",
++ "tachyons": "^4.7.0",
++ "webpack": "^2.3.3"
++ },
++ "dependencies": {}
++}
--- /dev/null
--- /dev/null
++!function(t){function e(r){if(n[r])return n[r].exports;var i=n[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,e),i.l=!0,i.exports}var n={};e.m=t,e.c=n,e.i=function(t){return t},e.d=function(t,n,r){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:r})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=11)}([function(t,e,n){"use strict";var r=function(t){var e=document.createElement("a");return e.className="header-link",e.href="#"+t,e.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>',e},i=function(t,e){for(var n=e.getElementsByTagName("h"+t),i=0;i<n.length;i++){var o=n[i];void 0!==o.id&&""!==o.id&&o.appendChild(r(o.id))}};document.onreadystatechange=function(){if("complete"===this.readyState){var t=document.getElementsByClassName("prose")[0];if(!t)return;for(var e=2;e<=4;e++)i(e,t)}}},function(t,e,n){"use strict";function r(t,e){t.setAttribute("class","copied bg-primary-color-dark f6 absolute top-0 right-0 lh-solid hover-bg-primary-color-dark bn white ph3 pv2"),t.setAttribute("aria-label",e)}function i(t,e){var n="cut"===e?"X":"C";return isMac?"Press ⌘-"+n:"Press Ctrl-"+n}new(n(12))(".copy",{target:function(t){return t.classList.contains("copy-toggle")?t.previousElementSibling:t.nextElementSibling}}).on("success",function(t){r(t.trigger,"Copied!"),t.clearSelection()}).on("error",function(t){r(t.trigger,i(t.action))})},function(t,e,n){"use strict";var r=function(){function t(t,e){var n=[],r=!0,i=!1,o=void 0;try{for(var s,a=t[Symbol.iterator]();!(r=(s=a.next()).done)&&(n.push(s.value),!e||n.length!==e);r=!0);}catch(t){i=!0,o=t}finally{try{!r&&a.return&&a.return()}finally{if(i)throw o}}return n}return function(e,n){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),i=document.getElementById("prose");if(i){var o=i.getElementsByTagName("code"),s=!0,a=!1,u=void 0;try{for(var c,l=Object.entries(o)[Symbol.iterator]();!(s=(c=l.next()).done);s=!0){var h=c.value,f=r(h,2),p=(f[0],f[1]);p.scrollWidth-p.clientWidth>0&&p.parentNode.classList.add("expand")}}catch(t){a=!0,u=t}finally{try{!s&&l.return&&l.return()}finally{if(a)throw u}}}},function(t,e,n){"use strict";n(13)({apiKey:"167e7998590aebda7f9fedcf86bc4a55",indexName:"hugodocs",inputSelector:"#search-input",debug:!0})},function(t,e,n){"use strict";n(14),n(15)},function(t,e,n){"use strict";function r(){for(var t=this.dataset.target.split(" "),e=document.querySelector(".mobilemenu:not(.dn)"),n=document.querySelector(".desktopmenu:not(.dn)"),r=document.querySelector(".desktopmenu:not(.dn)"),i=0;i<t.length;i++){var o=document.querySelectorAll(t[i]);[].forEach.call(o,function(t){return t.classList.contains("dn")?t.classList.remove("dn"):t.classList.add("dn"),!1}),e&&e.classList.add("dn"),n&&n.classList.add("dn"),r&&r.classList.remove("db")}}for(var i=document.getElementsByClassName("js-toggle"),o=0;o<i.length;o++)i[o].addEventListener("click",r,!1)},function(t,e,n){"use strict";document.documentElement.className=document.documentElement.className.replace(/\bno-js\b/,"js")},function(t,e,n){"use strict";n(16)},function(t,e,n){"use strict";!function(){if("querySelector"in document&&"addEventListener"in window&&Array.prototype.forEach){var t=function(t,e){var n,r=window.pageYOffset,i=t.offsetTop,o=i-r,s=o/(e/16),a=function(){window.scrollBy(0,s),n()};n=s>=0?function(){var t=window.pageYOffset;(t>=i-s||window.innerHeight+t>=document.body.offsetHeight)&&clearInterval(u)}:function(){window.pageYOffset<=(i||0)&&clearInterval(u)};var u=setInterval(a,16)},e=document.querySelectorAll("#TableOfContents ul li a");[].forEach.call(e,function(e){e.addEventListener("click",function(n){n.preventDefault();var r=e.getAttribute("href"),i=document.querySelector(r),o=e.getAttribute("data-speed");i&&t(i,o||500)},!1)})}}()},function(t,e,n){"use strict";function r(t){if(t.target){t.preventDefault();var e=t.currentTarget,n=e.getAttribute("data-toggle-tab")}else var n=t;window.localStorage&&window.localStorage.setItem("configLangPref",n);for(var r=document.querySelectorAll("[data-toggle-tab='"+n+"']"),i=document.querySelectorAll("[data-pane='"+n+"']"),a=0;a<o.length;a++)o[a].classList.remove("active"),s[a].classList.remove("active");for(var a=0;a<r.length;a++)r[a].classList.add("active"),i[a].classList.add("active")}var i,o=document.querySelectorAll("[data-toggle-tab]"),s=document.querySelectorAll("[data-pane]");for(i=0;i<o.length;i++)o[i].addEventListener("click",r);window.localStorage.getItem("configLangPref")&&r(window.localStorage.getItem("configLangPref"))},function(t,e){},function(t,e,n){"use strict";var r=n(10);!function(t){t&&t.__esModule}(r);n(0),n(1),n(2),n(3),n(4),n(5),n(7),n(8),n(9),n(6)},function(t,e,n){var r,r;/*!
++ * clipboard.js v1.7.1
++ * https://zenorocha.github.io/clipboard.js
++ *
++ * Licensed MIT © Zeno Rocha
++ */
++!function(e){t.exports=e()}(function(){var t;return function t(e,n,i){function o(a,u){if(!n[a]){if(!e[a]){var c="function"==typeof r&&r;if(!u&&c)return r(a,!0);if(s)return s(a,!0);var l=new Error("Cannot find module '"+a+"'");throw l.code="MODULE_NOT_FOUND",l}var h=n[a]={exports:{}};e[a][0].call(h.exports,function(t){var n=e[a][1][t];return o(n||t)},h,h.exports,t,e,n,i)}return n[a].exports}for(var s="function"==typeof r&&r,a=0;a<i.length;a++)o(i[a]);return o}({1:[function(t,e,n){function r(t,e){for(;t&&t.nodeType!==i;){if("function"==typeof t.matches&&t.matches(e))return t;t=t.parentNode}}var i=9;if("undefined"!=typeof Element&&!Element.prototype.matches){var o=Element.prototype;o.matches=o.matchesSelector||o.mozMatchesSelector||o.msMatchesSelector||o.oMatchesSelector||o.webkitMatchesSelector}e.exports=r},{}],2:[function(t,e,n){function r(t,e,n,r,o){var s=i.apply(this,arguments);return t.addEventListener(n,s,o),{destroy:function(){t.removeEventListener(n,s,o)}}}function i(t,e,n,r){return function(n){n.delegateTarget=o(n.target,e),n.delegateTarget&&r.call(t,n)}}var o=t("./closest");e.exports=r},{"./closest":1}],3:[function(t,e,n){n.node=function(t){return void 0!==t&&t instanceof HTMLElement&&1===t.nodeType},n.nodeList=function(t){var e=Object.prototype.toString.call(t);return void 0!==t&&("[object NodeList]"===e||"[object HTMLCollection]"===e)&&"length"in t&&(0===t.length||n.node(t[0]))},n.string=function(t){return"string"==typeof t||t instanceof String},n.fn=function(t){return"[object Function]"===Object.prototype.toString.call(t)}},{}],4:[function(t,e,n){function r(t,e,n){if(!t&&!e&&!n)throw new Error("Missing required arguments");if(!a.string(e))throw new TypeError("Second argument must be a String");if(!a.fn(n))throw new TypeError("Third argument must be a Function");if(a.node(t))return i(t,e,n);if(a.nodeList(t))return o(t,e,n);if(a.string(t))return s(t,e,n);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}function i(t,e,n){return t.addEventListener(e,n),{destroy:function(){t.removeEventListener(e,n)}}}function o(t,e,n){return Array.prototype.forEach.call(t,function(t){t.addEventListener(e,n)}),{destroy:function(){Array.prototype.forEach.call(t,function(t){t.removeEventListener(e,n)})}}}function s(t,e,n){return u(document.body,t,e,n)}var a=t("./is"),u=t("delegate");e.exports=r},{"./is":3,delegate:2}],5:[function(t,e,n){function r(t){var e;if("SELECT"===t.nodeName)t.focus(),e=t.value;else if("INPUT"===t.nodeName||"TEXTAREA"===t.nodeName){var n=t.hasAttribute("readonly");n||t.setAttribute("readonly",""),t.select(),t.setSelectionRange(0,t.value.length),n||t.removeAttribute("readonly"),e=t.value}else{t.hasAttribute("contenteditable")&&t.focus();var r=window.getSelection(),i=document.createRange();i.selectNodeContents(t),r.removeAllRanges(),r.addRange(i),e=r.toString()}return e}e.exports=r},{}],6:[function(t,e,n){function r(){}r.prototype={on:function(t,e,n){var r=this.e||(this.e={});return(r[t]||(r[t]=[])).push({fn:e,ctx:n}),this},once:function(t,e,n){function r(){i.off(t,r),e.apply(n,arguments)}var i=this;return r._=e,this.on(t,r,n)},emit:function(t){var e=[].slice.call(arguments,1),n=((this.e||(this.e={}))[t]||[]).slice(),r=0,i=n.length;for(r;r<i;r++)n[r].fn.apply(n[r].ctx,e);return this},off:function(t,e){var n=this.e||(this.e={}),r=n[t],i=[];if(r&&e)for(var o=0,s=r.length;o<s;o++)r[o].fn!==e&&r[o].fn._!==e&&i.push(r[o]);return i.length?n[t]=i:delete n[t],this}},e.exports=r},{}],7:[function(e,n,r){!function(i,o){if("function"==typeof t&&t.amd)t(["module","select"],o);else if(void 0!==r)o(n,e("select"));else{var s={exports:{}};o(s,i.select),i.clipboardAction=s.exports}}(this,function(t,e){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var r=function(t){return t&&t.__esModule?t:{default:t}}(e),i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},o=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),s=function(){function t(e){n(this,t),this.resolveOptions(e),this.initSelection()}return o(t,[{key:"resolveOptions",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.action=t.action,this.container=t.container,this.emitter=t.emitter,this.target=t.target,this.text=t.text,this.trigger=t.trigger,this.selectedText=""}},{key:"initSelection",value:function(){this.text?this.selectFake():this.target&&this.selectTarget()}},{key:"selectFake",value:function(){var t=this,e="rtl"==document.documentElement.getAttribute("dir");this.removeFake(),this.fakeHandlerCallback=function(){return t.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[e?"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,r.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,r.default)(this.target),this.copyText()}},{key:"copyText",value:function(){var t=void 0;try{t=document.execCommand(this.action)}catch(e){t=!1}this.handleResult(t)}},{key:"handleResult",value:function(t){this.emitter.emit(t?"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 t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"copy";if(this._action=t,"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(t){if(void 0!==t){if(!t||"object"!==(void 0===t?"undefined":i(t))||1!==t.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===this.action&&t.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===this.action&&(t.hasAttribute("readonly")||t.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');this._target=t}},get:function(){return this._target}}]),t}();t.exports=s})},{select:5}],8:[function(e,n,r){!function(i,o){if("function"==typeof t&&t.amd)t(["module","./clipboard-action","tiny-emitter","good-listener"],o);else if(void 0!==r)o(n,e("./clipboard-action"),e("tiny-emitter"),e("good-listener"));else{var s={exports:{}};o(s,i.clipboardAction,i.tinyEmitter,i.goodListener),i.clipboard=s.exports}}(this,function(t,e,n,r){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function a(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function u(t,e){var n="data-clipboard-"+t;if(e.hasAttribute(n))return e.getAttribute(n)}var c=i(e),l=i(n),h=i(r),f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},p=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),d=function(t){function e(t,n){o(this,e);var r=s(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return r.resolveOptions(n),r.listenClick(t),r}return a(e,t),p(e,[{key:"resolveOptions",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof t.action?t.action:this.defaultAction,this.target="function"==typeof t.target?t.target:this.defaultTarget,this.text="function"==typeof t.text?t.text:this.defaultText,this.container="object"===f(t.container)?t.container:document.body}},{key:"listenClick",value:function(t){var e=this;this.listener=(0,h.default)(t,"click",function(t){return e.onClick(t)})}},{key:"onClick",value:function(t){var e=t.delegateTarget||t.currentTarget;this.clipboardAction&&(this.clipboardAction=null),this.clipboardAction=new c.default({action:this.action(e),target:this.target(e),text:this.text(e),container:this.container,trigger:e,emitter:this})}},{key:"defaultAction",value:function(t){return u("action",t)}},{key:"defaultTarget",value:function(t){var e=u("target",t);if(e)return document.querySelector(e)}},{key:"defaultText",value:function(t){return u("text",t)}},{key:"destroy",value:function(){this.listener.destroy(),this.clipboardAction&&(this.clipboardAction.destroy(),this.clipboardAction=null)}}],[{key:"isSupported",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["copy","cut"],e="string"==typeof t?[t]:t,n=!!document.queryCommandSupported;return e.forEach(function(t){n=n&&!!document.queryCommandSupported(t)}),n}}]),e}(l.default);t.exports=d})},{"./clipboard-action":7,"good-listener":4,"tiny-emitter":6}]},{},[8])(8)})},function(t,e,n){/*! docsearch 2.4.1 | © Algolia | github.com/algolia/docsearch */
++!function(e,n){t.exports=n()}(0,function(){return function(t){function e(r){if(n[r])return n[r].exports;var i=n[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,e),i.l=!0,i.exports}var n={};return e.m=t,e.c=n,e.i=function(t){return t},e.d=function(t,n,r){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:r})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=46)}([function(t,e,n){"use strict";function r(t){return t.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}var i=n(1);t.exports={isArray:null,isFunction:null,isObject:null,bind:null,each:null,map:null,mixin:null,isMsie:function(){return!!/(msie|trident)/i.test(navigator.userAgent)&&navigator.userAgent.match(/(msie |rv:)(\d+(.\d+)?)/i)[2]},escapeRegExChars:function(t){return t.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")},isNumber:function(t){return"number"==typeof t},toStr:function(t){return void 0===t||null===t?"":t+""},cloneDeep:function(t){var e=this.mixin({},t),n=this;return this.each(e,function(t,r){t&&(n.isArray(t)?e[r]=[].concat(t):n.isObject(t)&&(e[r]=n.cloneDeep(t)))}),e},error:function(t){throw new Error(t)},every:function(t,e){var n=!0;return t?(this.each(t,function(r,i){if(!(n=e.call(null,r,i,t)))return!1}),!!n):n},any:function(t,e){var n=!1;return t?(this.each(t,function(r,i){if(e.call(null,r,i,t))return n=!0,!1}),n):n},getUniqueId:function(){var t=0;return function(){return t++}}(),templatify:function(t){if(this.isFunction(t))return t;var e=i.element(t);return"SCRIPT"===e.prop("tagName")?function(){return e.text()}:function(){return String(t)}},defer:function(t){setTimeout(t,0)},noop:function(){},formatPrefix:function(t,e){return e?"":t+"-"},className:function(t,e,n){return(n?"":".")+t+e},escapeHighlightedString:function(t,e,n){e=e||"<em>";var i=document.createElement("div");i.appendChild(document.createTextNode(e)),n=n||"</em>";var o=document.createElement("div");o.appendChild(document.createTextNode(n));var s=document.createElement("div");return s.appendChild(document.createTextNode(t)),s.innerHTML.replace(RegExp(r(i.innerHTML),"g"),e).replace(RegExp(r(o.innerHTML),"g"),n)}}},function(t,e,n){"use strict";t.exports={element:null}},function(t,e){var n=Object.prototype.hasOwnProperty,r=Object.prototype.toString;t.exports=function(t,e,i){if("[object Function]"!==r.call(e))throw new TypeError("iterator must be a function");var o=t.length;if(o===+o)for(var s=0;s<o;s++)e.call(i,t[s],s,t);else for(var a in t)n.call(t,a)&&e.call(i,t[a],a,t)}},function(t,e){var n;n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(t){"object"==typeof window&&(n=window)}t.exports=n},function(t,e){t.exports=function(t){return JSON.parse(JSON.stringify(t))}},function(t,e,n){"use strict";function r(t,e){var r=n(2),i=this;"function"==typeof Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):i.stack=(new Error).stack||"Cannot get a stacktrace, browser is too old",this.name="AlgoliaSearchError",this.message=t||"Unknown error",e&&r(e,function(t,e){i[e]=t})}function i(t,e){function n(){var n=Array.prototype.slice.call(arguments,0);"string"!=typeof n[0]&&n.unshift(e),r.apply(this,n),this.name="AlgoliaSearch"+t+"Error"}return o(n,r),n}var o=n(20);o(r,Error),t.exports={AlgoliaSearchError:r,UnparsableJSON:i("UnparsableJSON","Could not parse the incoming response as JSON, see err.more for details"),RequestTimeout:i("RequestTimeout","Request timedout before getting a response"),Network:i("Network","Network issue, see err.more for details"),JSONPScriptFail:i("JSONPScriptFail","<script> was loaded but did not call our provided callback"),JSONPScriptError:i("JSONPScriptError","<script> unable to load due to an `error` event on it"),Unknown:i("Unknown","Unknown error occured")}},function(t,e,n){(function(r){function i(){return"undefined"!=typeof document&&"WebkitAppearance"in document.documentElement.style||window.console&&(console.firebug||console.exception&&console.table)||navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31}function o(){var t=arguments,n=this.useColors;if(t[0]=(n?"%c":"")+this.namespace+(n?" %c":" ")+t[0]+(n?"%c ":" ")+"+"+e.humanize(this.diff),!n)return t;var r="color: "+this.color;t=[t[0],r,"color: inherit"].concat(Array.prototype.slice.call(t,1));var i=0,o=0;return t[0].replace(/%[a-z%]/g,function(t){"%%"!==t&&(i++,"%c"===t&&(o=i))}),t.splice(o,0,r),t}function s(){return"object"==typeof console&&console.log&&Function.prototype.apply.call(console.log,console,arguments)}function a(t){try{null==t?e.storage.removeItem("debug"):e.storage.debug=t}catch(t){}}function u(){try{return e.storage.debug}catch(t){}if(void 0!==r&&"env"in r)return n.i({NODE_ENV:"production"}).DEBUG}e=t.exports=n(50),e.log=s,e.formatArgs=o,e.save=a,e.load=u,e.useColors=i,e.storage="undefined"!=typeof chrome&&void 0!==chrome.storage?chrome.storage.local:function(){try{return window.localStorage}catch(t){}}(),e.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"],e.formatters.j=function(t){try{return JSON.stringify(t)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}},e.enable(u())}).call(e,n(11))},function(t,e,n){var r=n(2);t.exports=function(t,e){var n=[];return r(t,function(r,i){n.push(e(r,i,t))}),n}},function(t,e,n){"use strict";var r=n(0),i={wrapper:{position:"relative",display:"inline-block"},hint:{position:"absolute",top:"0",left:"0",borderColor:"transparent",boxShadow:"none",opacity:"1"},input:{position:"relative",verticalAlign:"top",backgroundColor:"transparent"},inputWithNoHint:{position:"relative",verticalAlign:"top"},dropdown:{position:"absolute",top:"100%",left:"0",zIndex:"100",display:"none"},suggestions:{display:"block"},suggestion:{whiteSpace:"nowrap",cursor:"pointer"},suggestionChild:{whiteSpace:"normal"},ltr:{left:"0",right:"auto"},rtl:{left:"auto",right:"0"},defaultClasses:{root:"algolia-autocomplete",prefix:"aa",noPrefix:!1,dropdownMenu:"dropdown-menu",input:"input",hint:"hint",suggestions:"suggestions",suggestion:"suggestion",cursor:"cursor",dataset:"dataset",empty:"empty"},appendTo:{wrapper:{position:"absolute",zIndex:"100",display:"none"},input:{},inputWithNoHint:{},dropdown:{display:"block"}}};r.isMsie()&&r.mixin(i.input,{backgroundImage:"url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)"}),r.isMsie()&&r.isMsie()<=7&&r.mixin(i.input,{marginTop:"-1px"}),t.exports=i},function(t,e,n){"use strict";function r(t,e,n,r){var i;if(!n)return this;for(e=e.split(h),n=r?c(n,r):n,this._callbacks=this._callbacks||{};i=e.shift();)this._callbacks[i]=this._callbacks[i]||{sync:[],async:[]},this._callbacks[i][t].push(n);return this}function i(t,e,n){return r.call(this,"async",t,e,n)}function o(t,e,n){return r.call(this,"sync",t,e,n)}function s(t){var e;if(!this._callbacks)return this;for(t=t.split(h);e=t.shift();)delete this._callbacks[e];return this}function a(t){var e,n,r,i,o;if(!this._callbacks)return this;for(t=t.split(h),r=[].slice.call(arguments,1);(e=t.shift())&&(n=this._callbacks[e]);)i=u(n.sync,this,[e].concat(r)),o=u(n.async,this,[e].concat(r)),i()&&l(o);return this}function u(t,e,n){function r(){for(var r,i=0,o=t.length;!r&&i<o;i+=1)r=!1===t[i].apply(e,n);return!r}return r}function c(t,e){return t.bind?t.bind(e):function(){t.apply(e,[].slice.call(arguments,0))}}var l=n(56),h=/\s+/;t.exports={onSync:o,onAsync:i,off:s,trigger:a}},function(t,e){var n={}.toString;t.exports=Array.isArray||function(t){return"[object Array]"==n.call(t)}},function(t,e){function n(){throw new Error("setTimeout has not been defined")}function r(){throw new Error("clearTimeout has not been defined")}function i(t){if(l===setTimeout)return setTimeout(t,0);if((l===n||!l)&&setTimeout)return l=setTimeout,setTimeout(t,0);try{return l(t,0)}catch(e){try{return l.call(null,t,0)}catch(e){return l.call(this,t,0)}}}function o(t){if(h===clearTimeout)return clearTimeout(t);if((h===r||!h)&&clearTimeout)return h=clearTimeout,clearTimeout(t);try{return h(t)}catch(e){try{return h.call(null,t)}catch(e){return h.call(this,t)}}}function s(){g&&p&&(g=!1,p.length?d=p.concat(d):m=-1,d.length&&a())}function a(){if(!g){var t=i(s);g=!0;for(var e=d.length;e;){for(p=d,d=[];++m<e;)p&&p[m].run();m=-1,e=d.length}p=null,g=!1,o(t)}}function u(t,e){this.fun=t,this.array=e}function c(){}var l,h,f=t.exports={};!function(){try{l="function"==typeof setTimeout?setTimeout:n}catch(t){l=n}try{h="function"==typeof clearTimeout?clearTimeout:r}catch(t){h=r}}();var p,d=[],g=!1,m=-1;f.nextTick=function(t){var e=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)e[n-1]=arguments[n];d.push(new u(t,e)),1!==d.length||g||i(a)},u.prototype.run=function(){this.fun.apply(null,this.array)},f.title="browser",f.browser=!0,f.env={},f.argv=[],f.version="",f.versions={},f.on=c,f.addListener=c,f.once=c,f.off=c,f.removeListener=c,f.removeAllListeners=c,f.emit=c,f.binding=function(t){throw new Error("process.binding is not supported")},f.cwd=function(){return"/"},f.chdir=function(t){throw new Error("process.chdir is not supported")},f.umask=function(){return 0}},function(t,e,n){function r(t,e){return function(n,r,o){if("function"==typeof n&&"object"==typeof r||"object"==typeof o)throw new i.AlgoliaSearchError("index.search usage is index.search(query, params, cb)");0===arguments.length||"function"==typeof n?(o=n,n=""):1!==arguments.length&&"function"!=typeof r||(o=r,r=void 0),"object"==typeof n&&null!==n?(r=n,n=void 0):void 0!==n&&null!==n||(n="");var s="";void 0!==n&&(s+=t+"="+encodeURIComponent(n));var a;return void 0!==r&&(r.additionalUA&&(a=r.additionalUA,delete r.additionalUA),s=this.as._getSearchParams(r,s)),this._search(s,e,o,a)}}t.exports=r;var i=n(5)},function(t,e,n){"use strict";function r(t){t&&t.el||i.error("EventBus initialized without el"),this.$el=o.element(t.el)}var i=n(0),o=n(1);i.mixin(r.prototype,{trigger:function(t){var e=[].slice.call(arguments,1),n=i.Event("autocomplete:"+t);return this.$el.trigger(n,e),n}}),t.exports=r},function(t,e,n){"use strict";t.exports={wrapper:'<span class="%ROOT%"></span>',dropdown:'<span class="%PREFIX%%DROPDOWN_MENU%"></span>',dataset:'<div class="%PREFIX%%DATASET%-%CLASS%"></div>',suggestions:'<span class="%PREFIX%%SUGGESTIONS%"></span>',suggestion:'<div class="%PREFIX%%SUGGESTION%"></div>'}},function(t,e,n){"use strict";t.exports=function(t){var e=t.match(/Algolia for vanilla JavaScript (\d+\.)(\d+\.)(\d+)/);if(e)return[e[1],e[2],e[3]]}},function(t,e){t.exports="0.28.0"},function(t,e){!function(e,n){t.exports=function(t){var e=function(){function e(t){return null==t?String(t):X[Q.call(t)]||"object"}function n(t){return"function"==e(t)}function r(t){return null!=t&&t==t.window}function i(t){return null!=t&&t.nodeType==t.DOCUMENT_NODE}function o(t){return"object"==e(t)}function s(t){return o(t)&&!r(t)&&Object.getPrototypeOf(t)==Object.prototype}function a(t){var e=!!t&&"length"in t&&t.length,n=A.type(t);return"function"!=n&&!r(t)&&("array"==n||0===e||"number"==typeof e&&e>0&&e-1 in t)}function u(t){return I.call(t,function(t){return null!=t})}function c(t){return t.length>0?A.fn.concat.apply([],t):t}function l(t){return t.replace(/::/g,"/").replace(/([A-Z]+)([A-Z][a-z])/g,"$1_$2").replace(/([a-z\d])([A-Z])/g,"$1_$2").replace(/_/g,"-").toLowerCase()}function h(t){return t in R?R[t]:R[t]=new RegExp("(^|\\s)"+t+"(\\s|$)")}function f(t,e){return"number"!=typeof e||D[l(t)]?e:e+"px"}function p(t){var e,n;return P[t]||(e=L.createElement(t),L.body.appendChild(e),n=getComputedStyle(e,"").getPropertyValue("display"),e.parentNode.removeChild(e),"none"==n&&(n="block"),P[t]=n),P[t]}function d(t){return"children"in t?j.call(t.children):A.map(t.childNodes,function(t){if(1==t.nodeType)return t})}function g(t,e){var n,r=t?t.length:0;for(n=0;n<r;n++)this[n]=t[n];this.length=r,this.selector=e||""}function m(t,e,n){for(C in e)n&&(s(e[C])||tt(e[C]))?(s(e[C])&&!s(t[C])&&(t[C]={}),tt(e[C])&&!tt(t[C])&&(t[C]=[]),m(t[C],e[C],n)):e[C]!==S&&(t[C]=e[C])}function v(t,e){return null==e?A(t):A(t).filter(e)}function y(t,e,r,i){return n(e)?e.call(t,r,i):e}function b(t,e,n){null==n?t.removeAttribute(e):t.setAttribute(e,n)}function w(t,e){var n=t.className||"",r=n&&n.baseVal!==S;if(e===S)return r?n.baseVal:n;r?n.baseVal=e:t.className=e}function _(t){try{return t?"true"==t||"false"!=t&&("null"==t?null:+t+""==t?+t:/^[\[\{]/.test(t)?A.parseJSON(t):t):t}catch(e){return t}}function x(t,e){e(t);for(var n=0,r=t.childNodes.length;n<r;n++)x(t.childNodes[n],e)}var S,C,A,E,T,k,O=[],N=O.concat,I=O.filter,j=O.slice,L=t.document,P={},R={},D={"column-count":1,columns:1,"font-weight":1,"line-height":1,opacity:1,"z-index":1,zoom:1},$=/^\s*<(\w+|!)[^>]*>/,M=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,q=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,H=/^(?:body|html)$/i,F=/([A-Z])/g,z=["val","css","html","text","data","width","height","offset"],B=["after","prepend","before","append"],U=L.createElement("table"),V=L.createElement("tr"),K={tr:L.createElement("tbody"),tbody:U,thead:U,tfoot:U,td:V,th:V,"*":L.createElement("div")},J=/complete|loaded|interactive/,W=/^[\w-]*$/,X={},Q=X.toString,G={},Y=L.createElement("div"),Z={tabindex:"tabIndex",readonly:"readOnly",for:"htmlFor",class:"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},tt=Array.isArray||function(t){return t instanceof Array};return G.matches=function(t,e){if(!e||!t||1!==t.nodeType)return!1;var n=t.matches||t.webkitMatchesSelector||t.mozMatchesSelector||t.oMatchesSelector||t.matchesSelector;if(n)return n.call(t,e);var r,i=t.parentNode,o=!i;return o&&(i=Y).appendChild(t),r=~G.qsa(i,e).indexOf(t),o&&Y.removeChild(t),r},T=function(t){return t.replace(/-+(.)?/g,function(t,e){return e?e.toUpperCase():""})},k=function(t){return I.call(t,function(e,n){return t.indexOf(e)==n})},G.fragment=function(t,e,n){var r,i,o;return M.test(t)&&(r=A(L.createElement(RegExp.$1))),r||(t.replace&&(t=t.replace(q,"<$1></$2>")),e===S&&(e=$.test(t)&&RegExp.$1),e in K||(e="*"),o=K[e],o.innerHTML=""+t,r=A.each(j.call(o.childNodes),function(){o.removeChild(this)})),s(n)&&(i=A(r),A.each(n,function(t,e){z.indexOf(t)>-1?i[t](e):i.attr(t,e)})),r},G.Z=function(t,e){return new g(t,e)},G.isZ=function(t){return t instanceof G.Z},G.init=function(t,e){var r;if(!t)return G.Z();if("string"==typeof t)if(t=t.trim(),"<"==t[0]&&$.test(t))r=G.fragment(t,RegExp.$1,e),t=null;else{if(e!==S)return A(e).find(t);r=G.qsa(L,t)}else{if(n(t))return A(L).ready(t);if(G.isZ(t))return t;if(tt(t))r=u(t);else if(o(t))r=[t],t=null;else if($.test(t))r=G.fragment(t.trim(),RegExp.$1,e),t=null;else{if(e!==S)return A(e).find(t);r=G.qsa(L,t)}}return G.Z(r,t)},A=function(t,e){return G.init(t,e)},A.extend=function(t){var e,n=j.call(arguments,1);return"boolean"==typeof t&&(e=t,t=n.shift()),n.forEach(function(n){m(t,n,e)}),t},G.qsa=function(t,e){var n,r="#"==e[0],i=!r&&"."==e[0],o=r||i?e.slice(1):e,s=W.test(o);return t.getElementById&&s&&r?(n=t.getElementById(o))?[n]:[]:1!==t.nodeType&&9!==t.nodeType&&11!==t.nodeType?[]:j.call(s&&!r&&t.getElementsByClassName?i?t.getElementsByClassName(o):t.getElementsByTagName(e):t.querySelectorAll(e))},A.contains=L.documentElement.contains?function(t,e){return t!==e&&t.contains(e)}:function(t,e){for(;e&&(e=e.parentNode);)if(e===t)return!0;return!1},A.type=e,A.isFunction=n,A.isWindow=r,A.isArray=tt,A.isPlainObject=s,A.isEmptyObject=function(t){var e;for(e in t)return!1;return!0},A.isNumeric=function(t){var e=Number(t),n=typeof t;return null!=t&&"boolean"!=n&&("string"!=n||t.length)&&!isNaN(e)&&isFinite(e)||!1},A.inArray=function(t,e,n){return O.indexOf.call(e,t,n)},A.camelCase=T,A.trim=function(t){return null==t?"":String.prototype.trim.call(t)},A.uuid=0,A.support={},A.expr={},A.noop=function(){},A.map=function(t,e){var n,r,i,o=[];if(a(t))for(r=0;r<t.length;r++)null!=(n=e(t[r],r))&&o.push(n);else for(i in t)null!=(n=e(t[i],i))&&o.push(n);return c(o)},A.each=function(t,e){var n,r;if(a(t)){for(n=0;n<t.length;n++)if(!1===e.call(t[n],n,t[n]))return t}else for(r in t)if(!1===e.call(t[r],r,t[r]))return t;return t},A.grep=function(t,e){return I.call(t,e)},t.JSON&&(A.parseJSON=JSON.parse),A.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(t,e){X["[object "+e+"]"]=e.toLowerCase()}),A.fn={constructor:G.Z,length:0,forEach:O.forEach,reduce:O.reduce,push:O.push,sort:O.sort,splice:O.splice,indexOf:O.indexOf,concat:function(){var t,e,n=[];for(t=0;t<arguments.length;t++)e=arguments[t],n[t]=G.isZ(e)?e.toArray():e;return N.apply(G.isZ(this)?this.toArray():this,n)},map:function(t){return A(A.map(this,function(e,n){return t.call(e,n,e)}))},slice:function(){return A(j.apply(this,arguments))},ready:function(t){return J.test(L.readyState)&&L.body?t(A):L.addEventListener("DOMContentLoaded",function(){t(A)},!1),this},get:function(t){return t===S?j.call(this):this[t>=0?t:t+this.length]},toArray:function(){return this.get()},size:function(){return this.length},remove:function(){return this.each(function(){null!=this.parentNode&&this.parentNode.removeChild(this)})},each:function(t){return O.every.call(this,function(e,n){return!1!==t.call(e,n,e)}),this},filter:function(t){return n(t)?this.not(this.not(t)):A(I.call(this,function(e){return G.matches(e,t)}))},add:function(t,e){return A(k(this.concat(A(t,e))))},is:function(t){return this.length>0&&G.matches(this[0],t)},not:function(t){var e=[];if(n(t)&&t.call!==S)this.each(function(n){t.call(this,n)||e.push(this)});else{var r="string"==typeof t?this.filter(t):a(t)&&n(t.item)?j.call(t):A(t);this.forEach(function(t){r.indexOf(t)<0&&e.push(t)})}return A(e)},has:function(t){return this.filter(function(){return o(t)?A.contains(this,t):A(this).find(t).size()})},eq:function(t){return-1===t?this.slice(t):this.slice(t,+t+1)},first:function(){var t=this[0];return t&&!o(t)?t:A(t)},last:function(){var t=this[this.length-1];return t&&!o(t)?t:A(t)},find:function(t){var e=this;return t?"object"==typeof t?A(t).filter(function(){var t=this;return O.some.call(e,function(e){return A.contains(e,t)})}):1==this.length?A(G.qsa(this[0],t)):this.map(function(){return G.qsa(this,t)}):A()},closest:function(t,e){var n=[],r="object"==typeof t&&A(t);return this.each(function(o,s){for(;s&&!(r?r.indexOf(s)>=0:G.matches(s,t));)s=s!==e&&!i(s)&&s.parentNode;s&&n.indexOf(s)<0&&n.push(s)}),A(n)},parents:function(t){for(var e=[],n=this;n.length>0;)n=A.map(n,function(t){if((t=t.parentNode)&&!i(t)&&e.indexOf(t)<0)return e.push(t),t});return v(e,t)},parent:function(t){return v(k(this.pluck("parentNode")),t)},children:function(t){return v(this.map(function(){return d(this)}),t)},contents:function(){return this.map(function(){return this.contentDocument||j.call(this.childNodes)})},siblings:function(t){return v(this.map(function(t,e){return I.call(d(e.parentNode),function(t){return t!==e})}),t)},empty:function(){return this.each(function(){this.innerHTML=""})},pluck:function(t){return A.map(this,function(e){return e[t]})},show:function(){return this.each(function(){"none"==this.style.display&&(this.style.display=""),"none"==getComputedStyle(this,"").getPropertyValue("display")&&(this.style.display=p(this.nodeName))})},replaceWith:function(t){return this.before(t).remove()},wrap:function(t){var e=n(t);if(this[0]&&!e)var r=A(t).get(0),i=r.parentNode||this.length>1;return this.each(function(n){A(this).wrapAll(e?t.call(this,n):i?r.cloneNode(!0):r)})},wrapAll:function(t){if(this[0]){A(this[0]).before(t=A(t));for(var e;(e=t.children()).length;)t=e.first();A(t).append(this)}return this},wrapInner:function(t){var e=n(t);return this.each(function(n){var r=A(this),i=r.contents(),o=e?t.call(this,n):t;i.length?i.wrapAll(o):r.append(o)})},unwrap:function(){return this.parent().each(function(){A(this).replaceWith(A(this).children())}),this},clone:function(){return this.map(function(){return this.cloneNode(!0)})},hide:function(){return this.css("display","none")},toggle:function(t){return this.each(function(){var e=A(this);(t===S?"none"==e.css("display"):t)?e.show():e.hide()})},prev:function(t){return A(this.pluck("previousElementSibling")).filter(t||"*")},next:function(t){return A(this.pluck("nextElementSibling")).filter(t||"*")},html:function(t){return 0 in arguments?this.each(function(e){var n=this.innerHTML;A(this).empty().append(y(this,t,e,n))}):0 in this?this[0].innerHTML:null},text:function(t){return 0 in arguments?this.each(function(e){var n=y(this,t,e,this.textContent);this.textContent=null==n?"":""+n}):0 in this?this.pluck("textContent").join(""):null},attr:function(t,e){var n;return"string"!=typeof t||1 in arguments?this.each(function(n){if(1===this.nodeType)if(o(t))for(C in t)b(this,C,t[C]);else b(this,t,y(this,e,n,this.getAttribute(t)))}):0 in this&&1==this[0].nodeType&&null!=(n=this[0].getAttribute(t))?n:S},removeAttr:function(t){return this.each(function(){1===this.nodeType&&t.split(" ").forEach(function(t){b(this,t)},this)})},prop:function(t,e){return t=Z[t]||t,1 in arguments?this.each(function(n){this[t]=y(this,e,n,this[t])}):this[0]&&this[0][t]},removeProp:function(t){return t=Z[t]||t,this.each(function(){delete this[t]})},data:function(t,e){var n="data-"+t.replace(F,"-$1").toLowerCase(),r=1 in arguments?this.attr(n,e):this.attr(n);return null!==r?_(r):S},val:function(t){return 0 in arguments?(null==t&&(t=""),this.each(function(e){this.value=y(this,t,e,this.value)})):this[0]&&(this[0].multiple?A(this[0]).find("option").filter(function(){return this.selected}).pluck("value"):this[0].value)},offset:function(e){if(e)return this.each(function(t){var n=A(this),r=y(this,e,t,n.offset()),i=n.offsetParent().offset(),o={top:r.top-i.top,left:r.left-i.left};"static"==n.css("position")&&(o.position="relative"),n.css(o)});if(!this.length)return null;if(L.documentElement!==this[0]&&!A.contains(L.documentElement,this[0]))return{top:0,left:0};var n=this[0].getBoundingClientRect();return{left:n.left+t.pageXOffset,top:n.top+t.pageYOffset,width:Math.round(n.width),height:Math.round(n.height)}},css:function(t,n){if(arguments.length<2){var r=this[0];if("string"==typeof t){if(!r)return;return r.style[T(t)]||getComputedStyle(r,"").getPropertyValue(t)}if(tt(t)){if(!r)return;var i={},o=getComputedStyle(r,"");return A.each(t,function(t,e){i[e]=r.style[T(e)]||o.getPropertyValue(e)}),i}}var s="";if("string"==e(t))n||0===n?s=l(t)+":"+f(t,n):this.each(function(){this.style.removeProperty(l(t))});else for(C in t)t[C]||0===t[C]?s+=l(C)+":"+f(C,t[C])+";":this.each(function(){this.style.removeProperty(l(C))});return this.each(function(){this.style.cssText+=";"+s})},index:function(t){return t?this.indexOf(A(t)[0]):this.parent().children().indexOf(this[0])},hasClass:function(t){return!!t&&O.some.call(this,function(t){return this.test(w(t))},h(t))},addClass:function(t){return t?this.each(function(e){if("className"in this){E=[];var n=w(this);y(this,t,e,n).split(/\s+/g).forEach(function(t){A(this).hasClass(t)||E.push(t)},this),E.length&&w(this,n+(n?" ":"")+E.join(" "))}}):this},removeClass:function(t){return this.each(function(e){if("className"in this){if(t===S)return w(this,"");E=w(this),y(this,t,e,E).split(/\s+/g).forEach(function(t){E=E.replace(h(t)," ")}),w(this,E.trim())}})},toggleClass:function(t,e){return t?this.each(function(n){var r=A(this);y(this,t,n,w(this)).split(/\s+/g).forEach(function(t){(e===S?!r.hasClass(t):e)?r.addClass(t):r.removeClass(t)})}):this},scrollTop:function(t){if(this.length){var e="scrollTop"in this[0];return t===S?e?this[0].scrollTop:this[0].pageYOffset:this.each(e?function(){this.scrollTop=t}:function(){this.scrollTo(this.scrollX,t)})}},scrollLeft:function(t){if(this.length){var e="scrollLeft"in this[0];return t===S?e?this[0].scrollLeft:this[0].pageXOffset:this.each(e?function(){this.scrollLeft=t}:function(){this.scrollTo(t,this.scrollY)})}},position:function(){if(this.length){var t=this[0],e=this.offsetParent(),n=this.offset(),r=H.test(e[0].nodeName)?{top:0,left:0}:e.offset();return n.top-=parseFloat(A(t).css("margin-top"))||0,n.left-=parseFloat(A(t).css("margin-left"))||0,r.top+=parseFloat(A(e[0]).css("border-top-width"))||0,r.left+=parseFloat(A(e[0]).css("border-left-width"))||0,{top:n.top-r.top,left:n.left-r.left}}},offsetParent:function(){return this.map(function(){for(var t=this.offsetParent||L.body;t&&!H.test(t.nodeName)&&"static"==A(t).css("position");)t=t.offsetParent;return t})}},A.fn.detach=A.fn.remove,["width","height"].forEach(function(t){var e=t.replace(/./,function(t){return t[0].toUpperCase()});A.fn[t]=function(n){var o,s=this[0];return n===S?r(s)?s["inner"+e]:i(s)?s.documentElement["scroll"+e]:(o=this.offset())&&o[t]:this.each(function(e){s=A(this),s.css(t,y(this,n,e,s[t]()))})}}),B.forEach(function(n,r){var i=r%2;A.fn[n]=function(){var n,o,s=A.map(arguments,function(t){var r=[];return n=e(t),"array"==n?(t.forEach(function(t){return t.nodeType!==S?r.push(t):A.zepto.isZ(t)?r=r.concat(t.get()):void(r=r.concat(G.fragment(t)))}),r):"object"==n||null==t?t:G.fragment(t)}),a=this.length>1;return s.length<1?this:this.each(function(e,n){o=i?n:n.parentNode,n=0==r?n.nextSibling:1==r?n.firstChild:2==r?n:null;var u=A.contains(L.documentElement,o);s.forEach(function(e){if(a)e=e.cloneNode(!0);else if(!o)return A(e).remove();o.insertBefore(e,n),u&&x(e,function(e){if(!(null==e.nodeName||"SCRIPT"!==e.nodeName.toUpperCase()||e.type&&"text/javascript"!==e.type||e.src)){var n=e.ownerDocument?e.ownerDocument.defaultView:t;n.eval.call(n,e.innerHTML)}})})})},A.fn[i?n+"To":"insert"+(r?"Before":"After")]=function(t){return A(t)[n](this),this}}),G.Z.prototype=g.prototype=A.fn,G.uniq=k,G.deserializeValue=_,A.zepto=G,A}();return function(e){function n(t){return t._zid||(t._zid=p++)}function r(t,e,r,s){if(e=i(e),e.ns)var a=o(e.ns);return(v[n(t)]||[]).filter(function(t){return t&&(!e.e||t.e==e.e)&&(!e.ns||a.test(t.ns))&&(!r||n(t.fn)===n(r))&&(!s||t.sel==s)})}function i(t){var e=(""+t).split(".");return{e:e[0],ns:e.slice(1).sort().join(" ")}}function o(t){return new RegExp("(?:^| )"+t.replace(" "," .* ?")+"(?: |$)")}function s(t,e){return t.del&&!b&&t.e in w||!!e}function a(t){return _[t]||b&&w[t]||t}function u(t,r,o,u,c,h,p){var d=n(t),g=v[d]||(v[d]=[]);r.split(/\s/).forEach(function(n){if("ready"==n)return e(document).ready(o);var r=i(n);r.fn=o,r.sel=c,r.e in _&&(o=function(t){var n=t.relatedTarget;if(!n||n!==this&&!e.contains(this,n))return r.fn.apply(this,arguments)}),r.del=h;var d=h||o;r.proxy=function(e){if(e=l(e),!e.isImmediatePropagationStopped()){e.data=u;var n=d.apply(t,e._args==f?[e]:[e].concat(e._args));return!1===n&&(e.preventDefault(),e.stopPropagation()),n}},r.i=g.length,g.push(r),"addEventListener"in t&&t.addEventListener(a(r.e),r.proxy,s(r,p))})}function c(t,e,i,o,u){var c=n(t);(e||"").split(/\s/).forEach(function(e){r(t,e,i,o).forEach(function(e){delete v[c][e.i],"removeEventListener"in t&&t.removeEventListener(a(e.e),e.proxy,s(e,u))})})}function l(t,n){return!n&&t.isDefaultPrevented||(n||(n=t),e.each(A,function(e,r){var i=n[e];t[e]=function(){return this[r]=x,i&&i.apply(n,arguments)},t[r]=S}),t.timeStamp||(t.timeStamp=Date.now()),(n.defaultPrevented!==f?n.defaultPrevented:"returnValue"in n?!1===n.returnValue:n.getPreventDefault&&n.getPreventDefault())&&(t.isDefaultPrevented=x)),t}function h(t){var e,n={originalEvent:t};for(e in t)C.test(e)||t[e]===f||(n[e]=t[e]);return l(n,t)}var f,p=1,d=Array.prototype.slice,g=e.isFunction,m=function(t){return"string"==typeof t},v={},y={},b="onfocusin"in t,w={focus:"focusin",blur:"focusout"},_={mouseenter:"mouseover",mouseleave:"mouseout"};y.click=y.mousedown=y.mouseup=y.mousemove="MouseEvents",e.event={add:u,remove:c},e.proxy=function(t,r){var i=2 in arguments&&d.call(arguments,2);if(g(t)){var o=function(){return t.apply(r,i?i.concat(d.call(arguments)):arguments)};return o._zid=n(t),o}if(m(r))return i?(i.unshift(t[r],t),e.proxy.apply(null,i)):e.proxy(t[r],t);throw new TypeError("expected function")},e.fn.bind=function(t,e,n){return this.on(t,e,n)},e.fn.unbind=function(t,e){return this.off(t,e)},e.fn.one=function(t,e,n,r){return this.on(t,e,n,r,1)};var x=function(){return!0},S=function(){return!1},C=/^([A-Z]|returnValue$|layer[XY]$|webkitMovement[XY]$)/,A={preventDefault:"isDefaultPrevented",stopImmediatePropagation:"isImmediatePropagationStopped",stopPropagation:"isPropagationStopped"};e.fn.delegate=function(t,e,n){return this.on(e,t,n)},e.fn.undelegate=function(t,e,n){return this.off(e,t,n)},e.fn.live=function(t,n){return e(document.body).delegate(this.selector,t,n),this},e.fn.die=function(t,n){return e(document.body).undelegate(this.selector,t,n),this},e.fn.on=function(t,n,r,i,o){var s,a,l=this;return t&&!m(t)?(e.each(t,function(t,e){l.on(t,n,r,e,o)}),l):(m(n)||g(i)||!1===i||(i=r,r=n,n=f),i!==f&&!1!==r||(i=r,r=f),!1===i&&(i=S),l.each(function(l,f){o&&(s=function(t){return c(f,t.type,i),i.apply(this,arguments)}),n&&(a=function(t){var r,o=e(t.target).closest(n,f).get(0);if(o&&o!==f)return r=e.extend(h(t),{currentTarget:o,liveFired:f}),(s||i).apply(o,[r].concat(d.call(arguments,1)))}),u(f,t,i,r,n,a||s)}))},e.fn.off=function(t,n,r){var i=this;return t&&!m(t)?(e.each(t,function(t,e){i.off(t,n,e)}),i):(m(n)||g(r)||!1===r||(r=n,n=f),!1===r&&(r=S),i.each(function(){c(this,t,r,n)}))},e.fn.trigger=function(t,n){return t=m(t)||e.isPlainObject(t)?e.Event(t):l(t),t._args=n,this.each(function(){t.type in w&&"function"==typeof this[t.type]?this[t.type]():"dispatchEvent"in this?this.dispatchEvent(t):e(this).triggerHandler(t,n)})},e.fn.triggerHandler=function(t,n){var i,o;return this.each(function(s,a){i=h(m(t)?e.Event(t):t),i._args=n,i.target=a,e.each(r(a,t.type||t),function(t,e){if(o=e.proxy(i),i.isImmediatePropagationStopped())return!1})}),o},"focusin focusout focus blur load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select keydown keypress keyup error".split(" ").forEach(function(t){e.fn[t]=function(e){return 0 in arguments?this.bind(t,e):this.trigger(t)}}),e.Event=function(t,e){m(t)||(e=t,t=e.type);var n=document.createEvent(y[t]||"Events"),r=!0;if(e)for(var i in e)"bubbles"==i?r=!!e[i]:n[i]=e[i];return n.initEvent(t,r,!0),l(n)}}(e),function(t){var e,n=[];t.fn.remove=function(){return this.each(function(){this.parentNode&&("IMG"===this.tagName&&(n.push(this),this.src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=",e&&clearTimeout(e),e=setTimeout(function(){n=[]},6e4)),this.parentNode.removeChild(this))})}}(e),function(t){function e(e,r){var u=e[a],c=u&&i[u];if(void 0===r)return c||n(e);if(c){if(r in c)return c[r];var l=s(r);if(l in c)return c[l]}return o.call(t(e),r)}function n(e,n,o){var u=e[a]||(e[a]=++t.uuid),c=i[u]||(i[u]=r(e));return void 0!==n&&(c[s(n)]=o),c}function r(e){var n={};return t.each(e.attributes||u,function(e,r){0==r.name.indexOf("data-")&&(n[s(r.name.replace("data-",""))]=t.zepto.deserializeValue(r.value))}),n}var i={},o=t.fn.data,s=t.camelCase,a=t.expando="Zepto"+ +new Date,u=[];t.fn.data=function(r,i){return void 0===i?t.isPlainObject(r)?this.each(function(e,i){t.each(r,function(t,e){n(i,t,e)})}):0 in this?e(this[0],r):void 0:this.each(function(){n(this,r,i)})},t.data=function(e,n,r){return t(e).data(n,r)},t.hasData=function(e){var n=e[a],r=n&&i[n];return!!r&&!t.isEmptyObject(r)},t.fn.removeData=function(e){return"string"==typeof e&&(e=e.split(/\s+/)),this.each(function(){var n=this[a],r=n&&i[n];r&&t.each(e||r,function(t){delete r[e?s(this):t]})})},["remove","empty"].forEach(function(e){var n=t.fn[e];t.fn[e]=function(){var t=this.find("*");return"remove"===e&&(t=t.add(this)),t.removeData(),n.call(this)}})}(e),e}(e)}(window)},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default="2.4.1"},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(17),i=function(t){return t&&t.__esModule?t:{default:t}}(r);e.default=i.default},function(t,e){"function"==typeof Object.create?t.exports=function(t,e){t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}})}:t.exports=function(t,e){t.super_=e;var n=function(){};n.prototype=e.prototype,t.prototype=new n,t.prototype.constructor=t}},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(66),o=r(i),s=n(47),a=r(s),u=n(18),c=r(u),l=(0,o.default)(a.default);l.version=c.default,e.default=l},function(t,e,n){function r(t,e,r){var o=n(6)("algoliasearch"),s=n(4),a=n(10),c=n(7),l="Usage: algoliasearch(applicationID, apiKey, opts)";if(!0!==r._allowEmptyCredentials&&!t)throw new u.AlgoliaSearchError("Please provide an application ID. "+l);if(!0!==r._allowEmptyCredentials&&!e)throw new u.AlgoliaSearchError("Please provide an API key. "+l);this.applicationID=t,this.apiKey=e,this.hosts={read:[],write:[]},r=r||{};var h=r.protocol||"https:";if(this._timeouts=r.timeouts||{connect:1e3,read:2e3,write:3e4},r.timeout&&(this._timeouts.connect=this._timeouts.read=this._timeouts.write=r.timeout),/:$/.test(h)||(h+=":"),"http:"!==r.protocol&&"https:"!==r.protocol)throw new u.AlgoliaSearchError("protocol must be `http:` or `https:` (was `"+r.protocol+"`)");if(this._checkAppIdData(),r.hosts)a(r.hosts)?(this.hosts.read=s(r.hosts),this.hosts.write=s(r.hosts)):(this.hosts.read=s(r.hosts.read),this.hosts.write=s(r.hosts.write));else{var f=c(this._shuffleResult,function(e){return t+"-"+e+".algolianet.com"});this.hosts.read=[this.applicationID+"-dsn.algolia.net"].concat(f),this.hosts.write=[this.applicationID+".algolia.net"].concat(f)}this.hosts.read=c(this.hosts.read,i(h)),this.hosts.write=c(this.hosts.write,i(h)),this.extraHeaders=[],this.cache=r._cache||{},this._ua=r._ua,this._useCache=!(void 0!==r._useCache&&!r._cache)||r._useCache,this._useFallback=void 0===r.useFallback||r.useFallback,this._setTimeout=r._setTimeout,o("init done, %j",this)}function i(t){return function(e){return t+"//"+e.toLowerCase()}}function o(t){if(void 0===Array.prototype.toJSON)return JSON.stringify(t);var e=Array.prototype.toJSON;delete Array.prototype.toJSON;var n=JSON.stringify(t);return Array.prototype.toJSON=e,n}function s(t){for(var e,n,r=t.length;0!==r;)n=Math.floor(Math.random()*r),r-=1,e=t[r],t[r]=t[n],t[n]=e;return t}function a(t){var e={};for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)){var r;r="x-algolia-api-key"===n||"x-algolia-application-id"===n?"**hidden for security purposes**":t[n],e[n]=r}return e}t.exports=r;var u=n(5),c=n(31),l=n(23),h=n(35),f=n.i({NODE_ENV:"production"}).RESET_APP_DATA_TIMER&&parseInt(n.i({NODE_ENV:"production"}).RESET_APP_DATA_TIMER,10)||12e4;r.prototype.initIndex=function(t){return new l(this,t)},r.prototype.setExtraHeader=function(t,e){this.extraHeaders.push({name:t.toLowerCase(),value:e})},r.prototype.addAlgoliaAgent=function(t){-1===this._ua.indexOf(";"+t)&&(this._ua+=";"+t)},r.prototype._jsonRequest=function(t){function e(n,c){function v(t){var e=t&&t.body&&t.body.message&&t.body.status||t.statusCode||t&&t.body&&200;s("received response: statusCode: %s, computed statusCode: %d, headers: %j",t.statusCode,e,t.headers);var n=2===Math.floor(e/100),o=new Date;if(m.push({currentHost:S,headers:a(i),content:r||null,contentLength:void 0!==r?r.length:null,method:c.method,timeouts:c.timeouts,url:c.url,startTime:x,endTime:o,duration:o-x,statusCode:e}),n)return f._useCache&&h&&(h[_]=t.responseText),t.body;if(4!==Math.floor(e/100))return p+=1,b();s("unrecoverable error");var l=new u.AlgoliaSearchError(t.body&&t.body.message,{debugData:m,statusCode:e});return f._promise.reject(l)}function y(e){s("error: %s, stack: %s",e.message,e.stack);var n=new Date;return m.push({currentHost:S,headers:a(i),content:r||null,contentLength:void 0!==r?r.length:null,method:c.method,timeouts:c.timeouts,url:c.url,startTime:x,endTime:n,duration:n-x}),e instanceof u.AlgoliaSearchError||(e=new u.Unknown(e&&e.message,e)),p+=1,e instanceof u.Unknown||e instanceof u.UnparsableJSON||p>=f.hosts[t.hostType].length&&(d||!g)?(e.debugData=m,f._promise.reject(e)):e instanceof u.RequestTimeout?w():b()}function b(){return s("retrying request"),f._incrementHostIndex(t.hostType),e(n,c)}function w(){return s("retrying request with higher timeout"),f._incrementHostIndex(t.hostType),f._incrementTimeoutMultipler(),c.timeouts=f._getTimeoutsForRequest(t.hostType),e(n,c)}f._checkAppIdData();var _,x=new Date;if(f._useCache&&(_=t.url),f._useCache&&r&&(_+="_body_"+c.body),f._useCache&&h&&void 0!==h[_])return s("serving response from cache"),f._promise.resolve(JSON.parse(h[_]));if(p>=f.hosts[t.hostType].length)return!g||d?(s("could not get any response"),f._promise.reject(new u.AlgoliaSearchError("Cannot connect to the AlgoliaSearch API. Send an email to support@algolia.com to report and resolve the issue. Application id was: "+f.applicationID,{debugData:m}))):(s("switching to fallback"),p=0,c.method=t.fallback.method,c.url=t.fallback.url,c.jsonBody=t.fallback.body,c.jsonBody&&(c.body=o(c.jsonBody)),i=f._computeRequestHeaders(l),c.timeouts=f._getTimeoutsForRequest(t.hostType),f._setHostIndexByType(0,t.hostType),d=!0,e(f._request.fallback,c));var S=f._getHostByType(t.hostType),C=S+c.url,A={body:c.body,jsonBody:c.jsonBody,method:c.method,headers:i,timeouts:c.timeouts,debug:s};return s("method: %s, url: %s, headers: %j, timeouts: %d",A.method,C,A.headers,A.timeouts),n===f._request.fallback&&s("using fallback"),n.call(f,C,A).then(v,y)}this._checkAppIdData();var r,i,s=n(6)("algoliasearch:"+t.url),l=t.additionalUA||"",h=t.cache,f=this,p=0,d=!1,g=f._useFallback&&f._request.fallback&&t.fallback;this.apiKey.length>500&&void 0!==t.body&&(void 0!==t.body.params||void 0!==t.body.requests)?(t.body.apiKey=this.apiKey,i=this._computeRequestHeaders(l,!1)):i=this._computeRequestHeaders(l),void 0!==t.body&&(r=o(t.body)),s("request start");var m=[],v=e(f._request,{url:t.url,method:t.method,body:r,jsonBody:t.body,timeouts:f._getTimeoutsForRequest(t.hostType)});if(!t.callback)return v;v.then(function(e){c(function(){t.callback(null,e)},f._setTimeout||setTimeout)},function(e){c(function(){t.callback(e)},f._setTimeout||setTimeout)})},r.prototype._getSearchParams=function(t,e){if(void 0===t||null===t)return e;for(var n in t)null!==n&&void 0!==t[n]&&t.hasOwnProperty(n)&&(e+=""===e?"":"&",e+=n+"="+encodeURIComponent("[object Array]"===Object.prototype.toString.call(t[n])?o(t[n]):t[n]));return e},r.prototype._computeRequestHeaders=function(t,e){var r=n(2),i=t?this._ua+";"+t:this._ua,o={"x-algolia-agent":i,"x-algolia-application-id":this.applicationID};return!1!==e&&(o["x-algolia-api-key"]=this.apiKey),this.userToken&&(o["x-algolia-usertoken"]=this.userToken),this.securityTags&&(o["x-algolia-tagfilters"]=this.securityTags),this.extraHeaders&&r(this.extraHeaders,function(t){o[t.name]=t.value}),o},r.prototype.search=function(t,e,r){var i=n(10),o=n(7);if(!i(t))throw new Error("Usage: client.search(arrayOfQueries[, callback])");"function"==typeof e?(r=e,e={}):void 0===e&&(e={});var s=this,a={requests:o(t,function(t){var e="";return void 0!==t.query&&(e+="query="+encodeURIComponent(t.query)),{indexName:t.indexName,params:s._getSearchParams(t.params,e)}})},u=o(a.requests,function(t,e){return e+"="+encodeURIComponent("/1/indexes/"+encodeURIComponent(t.indexName)+"?"+t.params)}).join("&"),c="/1/indexes/*/queries";return void 0!==e.strategy&&(c+="?strategy="+e.strategy),this._jsonRequest({cache:this.cache,method:"POST",url:c,body:a,hostType:"read",fallback:{method:"GET",url:"/1/indexes/*",body:{params:u}},callback:r})},r.prototype.setSecurityTags=function(t){if("[object Array]"===Object.prototype.toString.call(t)){for(var e=[],n=0;n<t.length;++n)if("[object Array]"===Object.prototype.toString.call(t[n])){for(var r=[],i=0;i<t[n].length;++i)r.push(t[n][i]);e.push("("+r.join(",")+")")}else e.push(t[n]);t=e.join(",")}this.securityTags=t},r.prototype.setUserToken=function(t){this.userToken=t},r.prototype.clearCache=function(){this.cache={}},r.prototype.setRequestTimeout=function(t){t&&(this._timeouts.connect=this._timeouts.read=this._timeouts.write=t)},r.prototype.setTimeouts=function(t){this._timeouts=t},r.prototype.getTimeouts=function(){return this._timeouts},r.prototype._getAppIdData=function(){var t=h.get(this.applicationID);return null!==t&&this._cacheAppIdData(t),t},r.prototype._setAppIdData=function(t){return t.lastChange=(new Date).getTime(),this._cacheAppIdData(t),h.set(this.applicationID,t)},r.prototype._checkAppIdData=function(){var t=this._getAppIdData(),e=(new Date).getTime();return null===t||e-t.lastChange>f?this._resetInitialAppIdData(t):t},r.prototype._resetInitialAppIdData=function(t){var e=t||{};return e.hostIndexes={read:0,write:0},e.timeoutMultiplier=1,e.shuffleResult=e.shuffleResult||s([1,2,3]),this._setAppIdData(e)},r.prototype._cacheAppIdData=function(t){this._hostIndexes=t.hostIndexes,this._timeoutMultiplier=t.timeoutMultiplier,this._shuffleResult=t.shuffleResult},r.prototype._partialAppIdDataUpdate=function(t){var e=n(2),r=this._getAppIdData();return e(t,function(t,e){r[e]=t}),this._setAppIdData(r)},r.prototype._getHostByType=function(t){return this.hosts[t][this._getHostIndexByType(t)]},r.prototype._getTimeoutMultiplier=function(){return this._timeoutMultiplier},r.prototype._getHostIndexByType=function(t){return this._hostIndexes[t]},r.prototype._setHostIndexByType=function(t,e){var r=n(4),i=r(this._hostIndexes);return i[e]=t,this._partialAppIdDataUpdate({hostIndexes:i}),t},r.prototype._incrementHostIndex=function(t){return this._setHostIndexByType((this._getHostIndexByType(t)+1)%this.hosts[t].length,t)},r.prototype._incrementTimeoutMultipler=function(){var t=Math.max(this._timeoutMultiplier+1,4);return this._partialAppIdDataUpdate({timeoutMultiplier:t})},r.prototype._getTimeoutsForRequest=function(t){return{connect:this._timeouts.connect*this._timeoutMultiplier,complete:this._timeouts[t]*this._timeoutMultiplier}}},function(t,e,n){function r(t,e){this.indexName=e,this.as=t,this.typeAheadArgs=null,this.typeAheadValueOption=null,this.cache={}}var i=n(12),o=n(29),s=n(30);t.exports=r,r.prototype.clearCache=function(){this.cache={}},r.prototype.search=i("query"),r.prototype.similarSearch=i("similarQuery"),r.prototype.browse=function(t,e,r){var i,o,s=n(32),a=this;0===arguments.length||1===arguments.length&&"function"==typeof arguments[0]?(i=0,r=arguments[0],t=void 0):"number"==typeof arguments[0]?(i=arguments[0],"number"==typeof arguments[1]?o=arguments[1]:"function"==typeof arguments[1]&&(r=arguments[1],o=void 0),t=void 0,e=void 0):"object"==typeof arguments[0]?("function"==typeof arguments[1]&&(r=arguments[1]),e=arguments[0],t=void 0):"string"==typeof arguments[0]&&"function"==typeof arguments[1]&&(r=arguments[1],e=void 0),e=s({},e||{},{page:i,hitsPerPage:o,query:t});var u=this.as._getSearchParams(e,"");return this.as._jsonRequest({method:"POST",url:"/1/indexes/"+encodeURIComponent(a.indexName)+"/browse",body:{params:u},hostType:"read",callback:r})},r.prototype.browseFrom=function(t,e){return this.as._jsonRequest({method:"POST",url:"/1/indexes/"+encodeURIComponent(this.indexName)+"/browse",body:{cursor:t},hostType:"read",callback:e})},r.prototype.searchForFacetValues=function(t,e){var r=n(4),i=n(33);if(void 0===t.facetName||void 0===t.facetQuery)throw new Error("Usage: index.searchForFacetValues({facetName, facetQuery, ...params}[, callback])");var o=t.facetName,s=i(r(t),function(t){return"facetName"===t}),a=this.as._getSearchParams(s,"");return this.as._jsonRequest({method:"POST",url:"/1/indexes/"+encodeURIComponent(this.indexName)+"/facets/"+encodeURIComponent(o)+"/query",hostType:"read",body:{params:a},callback:e})},r.prototype.searchFacet=o(function(t,e){return this.searchForFacetValues(t,e)},s("index.searchFacet(params[, callback])","index.searchForFacetValues(params[, callback])")),r.prototype._search=function(t,e,n,r){return this.as._jsonRequest({cache:this.cache,method:"POST",url:e||"/1/indexes/"+encodeURIComponent(this.indexName)+"/query",body:{params:t},hostType:"read",fallback:{method:"GET",url:"/1/indexes/"+encodeURIComponent(this.indexName),body:{params:t}},callback:n,additionalUA:r})},r.prototype.getObject=function(t,e,n){var r=this;1!==arguments.length&&"function"!=typeof e||(n=e,e=void 0);var i="";if(void 0!==e){i="?attributes=";for(var o=0;o<e.length;++o)0!==o&&(i+=","),i+=e[o]}return this.as._jsonRequest({method:"GET",url:"/1/indexes/"+encodeURIComponent(r.indexName)+"/"+encodeURIComponent(t)+i,hostType:"read",callback:n})},r.prototype.getObjects=function(t,e,r){var i=n(10),o=n(7);if(!i(t))throw new Error("Usage: index.getObjects(arrayOfObjectIDs[, callback])");var s=this;1!==arguments.length&&"function"!=typeof e||(r=e,e=void 0);var a={requests:o(t,function(t){var n={indexName:s.indexName,objectID:t};return e&&(n.attributesToRetrieve=e.join(",")),n})};return this.as._jsonRequest({method:"POST",url:"/1/indexes/*/objects",hostType:"read",body:a,callback:r})},r.prototype.as=null,r.prototype.indexName=null,r.prototype.typeAheadArgs=null,r.prototype.typeAheadValueOption=null},function(t,e,n){"use strict";var r=n(22),i=n(25);t.exports=i(r,"(lite) ")},function(t,e,n){"use strict";var r=n(52),i=r.Promise||n(51).Promise;t.exports=function(t,e){function o(t,e,r){var i=n(4),a=n(26);return r=i(r||{}),void 0===r.protocol&&(r.protocol=a()),r._ua=r._ua||o.ua,new s(t,e,r)}function s(){t.apply(this,arguments)}var a=n(20),u=n(5),c=n(27),l=n(28),h=n(34);e=e||"",o.version=n(36),o.ua="Algolia for vanilla JavaScript "+e+o.version,o.initPlaces=h(o),r.__algolia={debug:n(6),algoliasearch:o};var f={hasXMLHttpRequest:"XMLHttpRequest"in r,hasXDomainRequest:"XDomainRequest"in r};return f.hasXMLHttpRequest&&(f.cors="withCredentials"in new XMLHttpRequest),a(s,t),s.prototype._request=function(t,e){return new i(function(n,r){function i(){if(!d){clearTimeout(p);var t;try{t={body:JSON.parse(m.responseText),responseText:m.responseText,statusCode:m.status,headers:m.getAllResponseHeaders&&m.getAllResponseHeaders()||{}}}catch(e){t=new u.UnparsableJSON({more:m.responseText})}t instanceof u.UnparsableJSON?r(t):n(t)}}function o(t){d||(clearTimeout(p),r(new u.Network({more:t})))}function s(){d=!0,m.abort(),r(new u.RequestTimeout)}function a(){v=!0,clearTimeout(p),p=setTimeout(s,e.timeouts.complete)}function l(){v||a()}function h(){!v&&m.readyState>1&&a()}if(!f.cors&&!f.hasXDomainRequest)return void r(new u.Network("CORS not supported"));t=c(t,e.headers);var p,d,g=e.body,m=f.cors?new XMLHttpRequest:new XDomainRequest,v=!1;p=setTimeout(s,e.timeouts.connect),m.onprogress=l,"onreadystatechange"in m&&(m.onreadystatechange=h),m.onload=i,m.onerror=o,m instanceof XMLHttpRequest?m.open(e.method,t,!0):m.open(e.method,t),f.cors&&(g&&("POST"===e.method?m.setRequestHeader("content-type","application/x-www-form-urlencoded"):m.setRequestHeader("content-type","application/json")),m.setRequestHeader("accept","application/json")),m.send(g)})},s.prototype._request.fallback=function(t,e){return t=c(t,e.headers),new i(function(n,r){l(t,e,function(t,e){if(t)return void r(t);n(e)})})},s.prototype._promise={reject:function(t){return i.reject(t)},resolve:function(t){return i.resolve(t)},delay:function(t){return new i(function(e){setTimeout(e,t)})}},o}},function(t,e,n){"use strict";function r(){var t=window.document.location.protocol;return"http:"!==t&&"https:"!==t&&(t="http:"),t}t.exports=r},function(t,e,n){"use strict";function r(t,e){return/\?/.test(t)?t+="&":t+="?",t+i(e)}t.exports=r;var i=n(65)},function(t,e,n){"use strict";function r(t,e,n){function r(){e.debug("JSONP: success"),m||f||(m=!0,h||(e.debug("JSONP: Fail. Script loaded but did not call the callback"),a(),n(new i.JSONPScriptFail)))}function s(){"loaded"!==this.readyState&&"complete"!==this.readyState||r()}function a(){clearTimeout(v),d.onload=null,d.onreadystatechange=null,d.onerror=null,p.removeChild(d)}function u(){try{delete window[g],delete window[g+"_loaded"]}catch(t){window[g]=window[g+"_loaded"]=void 0}}function c(){e.debug("JSONP: Script timeout"),f=!0,a(),n(new i.RequestTimeout)}function l(){e.debug("JSONP: Script error"),m||f||(a(),n(new i.JSONPScriptError))}if("GET"!==e.method)return void n(new Error("Method "+e.method+" "+t+" is not supported by JSONP."));e.debug("JSONP: start");var h=!1,f=!1;o+=1;var p=document.getElementsByTagName("head")[0],d=document.createElement("script"),g="algoliaJSONP_"+o,m=!1;window[g]=function(t){if(u(),f)return void e.debug("JSONP: Late answer, ignoring");h=!0,a(),n(null,{body:t})},t+="&callback="+g,e.jsonBody&&e.jsonBody.params&&(t+="&"+e.jsonBody.params);var v=setTimeout(c,e.timeouts.complete);d.onreadystatechange=s,d.onload=r,d.onerror=l,d.async=!0,d.defer=!0,d.src=t,p.appendChild(d)}t.exports=r;var i=n(5),o=0},function(t,e){t.exports=function(t,e){function n(){return r||(console.log(e),r=!0),t.apply(this,arguments)}var r=!1;return n}},function(t,e){t.exports=function(t,e){return"algoliasearch: `"+t+"` was replaced by `"+e+"`. Please see https://github.com/algolia/algoliasearch-client-js/wiki/Deprecated#"+t.toLowerCase().replace(".","").replace("()","")}},function(t,e){t.exports=function(t,e){e(t,0)}},function(t,e,n){var r=n(2);t.exports=function t(e){var n=Array.prototype.slice.call(arguments);return r(n,function(n){for(var r in n)n.hasOwnProperty(r)&&("object"==typeof e[r]&&"object"==typeof n[r]?e[r]=t({},e[r],n[r]):void 0!==n[r]&&(e[r]=n[r]))}),e}},function(t,e,n){t.exports=function(t,e){var r=n(63),i=n(2),o={};return i(r(t),function(n){!0!==e(n)&&(o[n]=t[n])}),o}},function(t,e,n){function r(t){return function(e,r,o){var s=n(4);o=o&&s(o)||{},o.hosts=o.hosts||["places-dsn.algolia.net","places-1.algolianet.com","places-2.algolianet.com","places-3.algolianet.com"],0!==arguments.length&&"object"!=typeof e&&void 0!==e||(e="",r="",o._allowEmptyCredentials=!0);var a=t(e,r,o),u=a.initIndex("places");return u.search=i("query","/1/places/query"),u}}t.exports=r;var i=n(12)},function(t,e,n){(function(e){function r(t,e){return u("localStorage failed with",e),s(),a=l,a.get(t)}function i(t,e){return 1===arguments.length?a.get(t):a.set(t,e)}function o(){try{return"localStorage"in e&&null!==e.localStorage&&(e.localStorage[c]||e.localStorage.setItem(c,JSON.stringify({})),!0)}catch(t){return!1}}function s(){try{e.localStorage.removeItem(c)}catch(t){}}var a,u=n(6)("algoliasearch:src/hostIndexState.js"),c="algoliasearch-client-js",l={state:{},set:function(t,e){return this.state[t]=e,this.state[t]},get:function(t){return this.state[t]||null}},h={set:function(t,n){l.set(t,n);try{var i=JSON.parse(e.localStorage[c]);return i[t]=n,e.localStorage[c]=JSON.stringify(i),i[t]}catch(e){return r(t,e)}},get:function(t){try{return JSON.parse(e.localStorage[c])[t]||null}catch(e){return r(t,e)}}};a=o()?h:l,t.exports={get:i,set:i,supportsLocalStorage:o}}).call(e,n(3))},function(t,e,n){"use strict";t.exports="3.22.1"},function(t,e,n){"use strict";t.exports=n(45)},function(t,e,n){"use strict";function r(t){t=t||{},t.templates=t.templates||{},t.source||l.error("missing source"),t.name&&!s(t.name)&&l.error("invalid dataset name: "+t.name),this.query=null,this._isEmpty=!0,this.highlight=!!t.highlight,this.name=void 0===t.name||null===t.name?l.getUniqueId():t.name,this.source=t.source,this.displayFn=i(t.display||t.displayKey),this.templates=o(t.templates,this.displayFn),this.css=l.mixin({},p,t.appendTo?p.appendTo:{}),this.cssClasses=t.cssClasses=l.mixin({},p.defaultClasses,t.cssClasses||{}),this.cssClasses.prefix=t.cssClasses.formattedPrefix||l.formatPrefix(this.cssClasses.prefix,this.cssClasses.noPrefix);var e=l.className(this.cssClasses.prefix,this.cssClasses.dataset);this.$el=t.$menu&&t.$menu.find(e+"-"+this.name).length>0?h.element(t.$menu.find(e+"-"+this.name)[0]):h.element(f.dataset.replace("%CLASS%",this.name).replace("%PREFIX%",this.cssClasses.prefix).replace("%DATASET%",this.cssClasses.dataset)),this.$menu=t.$menu}function i(t){function e(e){return e[t]}return t=t||"value",l.isFunction(t)?t:e}function o(t,e){function n(t){return"<p>"+e(t)+"</p>"}return{empty:t.empty&&l.templatify(t.empty),header:t.header&&l.templatify(t.header),footer:t.footer&&l.templatify(t.footer),suggestion:t.suggestion||n}}function s(t){return/^[_a-zA-Z0-9-]+$/.test(t)}var a="aaDataset",u="aaValue",c="aaDatum",l=n(0),h=n(1),f=n(14),p=n(8),d=n(9);r.extractDatasetName=function(t){return h.element(t).data(a)},r.extractValue=function(t){return h.element(t).data(u)},r.extractDatum=function(t){var e=h.element(t).data(c);return"string"==typeof e&&(e=JSON.parse(e)),e},l.mixin(r.prototype,d,{_render:function(t,e){function n(){var e=[].slice.call(arguments,0);return e=[{query:t,isEmpty:!0}].concat(e),p.templates.empty.apply(this,e)}function r(){function t(t){var e,n=f.suggestion.replace("%PREFIX%",o.cssClasses.prefix).replace("%SUGGESTION%",o.cssClasses.suggestion);return e=h.element(n).attr({role:"option",id:["option",Math.floor(1e8*Math.random())].join("-")}).append(p.templates.suggestion.apply(this,[t].concat(i))),e.data(a,p.name),e.data(u,p.displayFn(t)||void 0),e.data(c,JSON.stringify(t)),e.children().each(function(){h.element(this).css(o.css.suggestionChild)}),e}var n,r,i=[].slice.call(arguments,0),o=this,s=f.suggestions.replace("%PREFIX%",this.cssClasses.prefix).replace("%SUGGESTIONS%",this.cssClasses.suggestions);return n=h.element(s).css(this.css.suggestions),r=l.map(e,t),n.append.apply(n,r),n}function i(){var e=[].slice.call(arguments,0);return e=[{query:t,isEmpty:!s}].concat(e),p.templates.header.apply(this,e)}function o(){var e=[].slice.call(arguments,0);return e=[{query:t,isEmpty:!s}].concat(e),p.templates.footer.apply(this,e)}if(this.$el){var s,p=this,d=[].slice.call(arguments,2);this.$el.empty(),s=e&&e.length,this._isEmpty=!s,!s&&this.templates.empty?this.$el.html(n.apply(this,d)).prepend(p.templates.header?i.apply(this,d):null).append(p.templates.footer?o.apply(this,d):null):s&&this.$el.html(r.apply(this,d)).prepend(p.templates.header?i.apply(this,d):null).append(p.templates.footer?o.apply(this,d):null),this.$menu&&this.$menu.addClass(this.cssClasses.prefix+(s?"with":"without")+"-"+this.name).removeClass(this.cssClasses.prefix+(s?"without":"with")+"-"+this.name),this.trigger("rendered",t)}},getRoot:function(){return this.$el},update:function(t){function e(e){if(!n.canceled&&t===n.query){var r=[].slice.call(arguments,1);r=[t,e].concat(r),n._render.apply(n,r)}}var n=this;this.query=t,this.canceled=!1,this.source(t,e)},cancel:function(){this.canceled=!0},clear:function(){this.cancel(),this.$el.empty(),this.trigger("rendered","")},isEmpty:function(){return this._isEmpty},destroy:function(){this.$el=null}}),t.exports=r},function(t,e,n){"use strict";function r(t){var e,n,r,a=this;t=t||{},t.menu||o.error("menu is required"),o.isArray(t.datasets)||o.isObject(t.datasets)||o.error("1 or more datasets required"),t.datasets||o.error("datasets is required"),this.isOpen=!1,this.isEmpty=!0,this.minLength=t.minLength||0,this.templates={},this.appendTo=t.appendTo||!1,this.css=o.mixin({},c,t.appendTo?c.appendTo:{}),this.cssClasses=t.cssClasses=o.mixin({},c.defaultClasses,t.cssClasses||{}),this.cssClasses.prefix=t.cssClasses.formattedPrefix||o.formatPrefix(this.cssClasses.prefix,this.cssClasses.noPrefix),e=o.bind(this._onSuggestionClick,this),n=o.bind(this._onSuggestionMouseEnter,this),r=o.bind(this._onSuggestionMouseLeave,this);var u=o.className(this.cssClasses.prefix,this.cssClasses.suggestion);this.$menu=s.element(t.menu).on("click.aa",u,e).on("mouseenter.aa",u,n).on("mouseleave.aa",u,r),this.$container=t.appendTo?t.wrapper:this.$menu,t.templates&&t.templates.header&&(this.templates.header=o.templatify(t.templates.header),this.$menu.prepend(this.templates.header())),t.templates&&t.templates.empty&&(this.templates.empty=o.templatify(t.templates.empty),this.$empty=s.element('<div class="'+o.className(this.cssClasses.prefix,this.cssClasses.empty,!0)+'"></div>'),this.$menu.append(this.$empty)),this.datasets=o.map(t.datasets,function(e){return i(a.$menu,e,t.cssClasses)}),o.each(this.datasets,function(t){var e=t.getRoot();e&&0===e.parent().length&&a.$menu.append(e),t.onSync("rendered",a._onRendered,a)}),t.templates&&t.templates.footer&&(this.templates.footer=o.templatify(t.templates.footer),this.$menu.append(this.templates.footer()));var l=this;s.element(window).resize(function(){l._redraw()})}function i(t,e,n){return new r.Dataset(o.mixin({$menu:t,cssClasses:n},e))}var o=n(0),s=n(1),a=n(9),u=n(38),c=n(8);o.mixin(r.prototype,a,{_onSuggestionClick:function(t){this.trigger("suggestionClicked",s.element(t.currentTarget))},_onSuggestionMouseEnter:function(t){var e=s.element(t.currentTarget);e.hasClass(o.className(this.cssClasses.prefix,this.cssClasses.cursor,!0))||(this._removeCursor(),this._setCursor(e,!1))},_onSuggestionMouseLeave:function(t){if(t.relatedTarget){if(s.element(t.relatedTarget).closest("."+o.className(this.cssClasses.prefix,this.cssClasses.cursor,!0)).length>0)return}this._removeCursor(),this.trigger("cursorRemoved")},_onRendered:function(t,e){function n(t){return t.isEmpty()}function r(t){return t.templates&&t.templates.empty}if(this.isEmpty=o.every(this.datasets,n),this.isEmpty)if(e.length>=this.minLength&&this.trigger("empty"),this.$empty)if(e.length<this.minLength)this._hide();else{var i=this.templates.empty({query:this.datasets[0]&&this.datasets[0].query});this.$empty.html(i),this._show()}else o.any(this.datasets,r)?e.length<this.minLength?this._hide():this._show():this._hide();else this.isOpen&&(this.$empty&&this.$empty.empty(),e.length>=this.minLength?this._show():this._hide());this.trigger("datasetRendered")},_hide:function(){this.$container.hide()},_show:function(){this.$container.css("display","block"),this._redraw(),this.trigger("shown")},_redraw:function(){this.isOpen&&this.appendTo&&this.trigger("redrawn")},_getSuggestions:function(){return this.$menu.find(o.className(this.cssClasses.prefix,this.cssClasses.suggestion))},_getCursor:function(){return this.$menu.find(o.className(this.cssClasses.prefix,this.cssClasses.cursor)).first()},_setCursor:function(t,e){t.first().addClass(o.className(this.cssClasses.prefix,this.cssClasses.cursor,!0)).attr("aria-selected","true"),this.trigger("cursorMoved",e)},_removeCursor:function(){this._getCursor().removeClass(o.className(this.cssClasses.prefix,this.cssClasses.cursor,!0)).removeAttr("aria-selected")},_moveCursor:function(t){var e,n,r,i;if(this.isOpen){if(n=this._getCursor(),e=this._getSuggestions(),this._removeCursor(),r=e.index(n)+t,-1===(r=(r+1)%(e.length+1)-1))return void this.trigger("cursorRemoved");r<-1&&(r=e.length-1),this._setCursor(i=e.eq(r),!0),this._ensureVisible(i)}},_ensureVisible:function(t){var e,n,r,i;e=t.position().top,n=e+t.height()+parseInt(t.css("margin-top"),10)+parseInt(t.css("margin-bottom"),10),r=this.$menu.scrollTop(),i=this.$menu.height()+parseInt(this.$menu.css("paddingTop"),10)+parseInt(this.$menu.css("paddingBottom"),10),e<0?this.$menu.scrollTop(r+e):i<n&&this.$menu.scrollTop(r+(n-i))},close:function(){this.isOpen&&(this.isOpen=!1,this._removeCursor(),this._hide(),this.trigger("closed"))},open:function(){this.isOpen||(this.isOpen=!0,this.isEmpty||this._show(),this.trigger("opened"))},setLanguageDirection:function(t){this.$menu.css("ltr"===t?this.css.ltr:this.css.rtl)},moveCursorUp:function(){this._moveCursor(-1)},moveCursorDown:function(){this._moveCursor(1)},getDatumForSuggestion:function(t){var e=null;return t.length&&(e={raw:u.extractDatum(t),value:u.extractValue(t),datasetName:u.extractDatasetName(t)}),e},getCurrentCursor:function(){return this._getCursor().first()},getDatumForCursor:function(){return this.getDatumForSuggestion(this._getCursor().first())},getDatumForTopSuggestion:function(){return this.getDatumForSuggestion(this._getSuggestions().first())},cursorTopSuggestion:function(){this._setCursor(this._getSuggestions().first(),!1)},update:function(t){function e(e){e.update(t)}o.each(this.datasets,e)},empty:function(){function t(t){t.clear()}o.each(this.datasets,t),this.isEmpty=!0},isVisible:function(){return this.isOpen&&!this.isEmpty},destroy:function(){function t(t){t.destroy()}this.$menu.off(".aa"),this.$menu=null,o.each(this.datasets,t)}}),r.Dataset=u,t.exports=r},function(t,e,n){"use strict";function r(t){var e,n,r,o,s=this;t=t||{},t.input||u.error("input is missing"),e=u.bind(this._onBlur,this),n=u.bind(this._onFocus,this),r=u.bind(this._onKeydown,this),o=u.bind(this._onInput,this),this.$hint=c.element(t.hint),this.$input=c.element(t.input).on("blur.aa",e).on("focus.aa",n).on("keydown.aa",r),0===this.$hint.length&&(this.setHint=this.getHint=this.clearHint=this.clearHintIfInvalid=u.noop),u.isMsie()?this.$input.on("keydown.aa keypress.aa cut.aa paste.aa",function(t){a[t.which||t.keyCode]||u.defer(u.bind(s._onInput,s,t))}):this.$input.on("input.aa",o),this.query=this.$input.val(),this.$overflowHelper=i(this.$input)}function i(t){return c.element('<pre aria-hidden="true"></pre>').css({position:"absolute",visibility:"hidden",whiteSpace:"pre",fontFamily:t.css("font-family"),fontSize:t.css("font-size"),fontStyle:t.css("font-style"),fontVariant:t.css("font-variant"),fontWeight:t.css("font-weight"),wordSpacing:t.css("word-spacing"),letterSpacing:t.css("letter-spacing"),textIndent:t.css("text-indent"),textRendering:t.css("text-rendering"),textTransform:t.css("text-transform")}).insertAfter(t)}function o(t,e){return r.normalizeQuery(t)===r.normalizeQuery(e)}function s(t){return t.altKey||t.ctrlKey||t.metaKey||t.shiftKey}var a;a={9:"tab",27:"esc",37:"left",39:"right",13:"enter",38:"up",40:"down"};var u=n(0),c=n(1),l=n(9);r.normalizeQuery=function(t){return(t||"").replace(/^\s*/g,"").replace(/\s{2,}/g," ")},u.mixin(r.prototype,l,{_onBlur:function(){this.resetInputValue(),this.$input.removeAttr("aria-activedescendant"),this.trigger("blurred")},_onFocus:function(){this.trigger("focused")},_onKeydown:function(t){var e=a[t.which||t.keyCode];this._managePreventDefault(e,t),e&&this._shouldTrigger(e,t)&&this.trigger(e+"Keyed",t)},_onInput:function(){this._checkInputValue()},_managePreventDefault:function(t,e){var n,r,i;switch(t){case"tab":r=this.getHint(),i=this.getInputValue(),n=r&&r!==i&&!s(e);break;case"up":case"down":n=!s(e);break;default:n=!1}n&&e.preventDefault()},_shouldTrigger:function(t,e){var n;switch(t){case"tab":n=!s(e);break;default:n=!0}return n},_checkInputValue:function(){var t,e,n;t=this.getInputValue(),e=o(t,this.query),n=!(!e||!this.query)&&this.query.length!==t.length,this.query=t,e?n&&this.trigger("whitespaceChanged",this.query):this.trigger("queryChanged",this.query)},focus:function(){this.$input.focus()},blur:function(){this.$input.blur()},getQuery:function(){return this.query},setQuery:function(t){this.query=t},getInputValue:function(){return this.$input.val()},setInputValue:function(t,e){void 0===t&&(t=this.query),this.$input.val(t),e?this.clearHint():this._checkInputValue()},expand:function(){this.$input.attr("aria-expanded","true")},collapse:function(){this.$input.attr("aria-expanded","false")},setActiveDescendant:function(t){this.$input.attr("aria-activedescendant",t)},removeActiveDescendant:function(){this.$input.removeAttr("aria-activedescendant")},resetInputValue:function(){this.setInputValue(this.query,!0)},getHint:function(){return this.$hint.val()},setHint:function(t){this.$hint.val(t)},clearHint:function(){this.setHint("")},clearHintIfInvalid:function(){var t,e,n,r;t=this.getInputValue(),e=this.getHint(),n=t!==e&&0===e.indexOf(t),(r=""!==t&&n&&!this.hasOverflow())||this.clearHint()},getLanguageDirection:function(){return(this.$input.css("direction")||"ltr").toLowerCase()},hasOverflow:function(){var t=this.$input.width()-2;return this.$overflowHelper.text(this.getInputValue()),this.$overflowHelper.width()>=t},isCursorAtEnd:function(){var t,e,n;return t=this.$input.val().length,e=this.$input[0].selectionStart,u.isNumber(e)?e===t:!document.selection||(n=document.selection.createRange(),n.moveStart("character",-t),t===n.text.length)},destroy:function(){this.$hint.off(".aa"),this.$input.off(".aa"),this.$hint=this.$input=this.$overflowHelper=null}}),t.exports=r},function(t,e,n){"use strict";function r(t){var e,n;if(t=t||{},t.input||u.error("missing input"),this.isActivated=!1,this.debug=!!t.debug,this.autoselect=!!t.autoselect,this.autoselectOnBlur=!!t.autoselectOnBlur,this.openOnFocus=!!t.openOnFocus,this.minLength=u.isNumber(t.minLength)?t.minLength:1,this.autoWidth=void 0===t.autoWidth||!!t.autoWidth,t.hint=!!t.hint,t.hint&&t.appendTo)throw new Error("[autocomplete.js] hint and appendTo options can't be used at the same time");this.css=t.css=u.mixin({},d,t.appendTo?d.appendTo:{}),this.cssClasses=t.cssClasses=u.mixin({},d.defaultClasses,t.cssClasses||{}),this.cssClasses.prefix=t.cssClasses.formattedPrefix=u.formatPrefix(this.cssClasses.prefix,this.cssClasses.noPrefix),this.listboxId=t.listboxId=[this.cssClasses.root,"listbox",u.getUniqueId()].join("-");var o=i(t);this.$node=o.wrapper;var s=this.$input=o.input;e=o.menu,n=o.hint,t.dropdownMenuContainer&&c.element(t.dropdownMenuContainer).css("position","relative").append(e.css("top","0")),s.on("blur.aa",function(t){var n=document.activeElement;u.isMsie()&&(e[0]===n||e[0].contains(n))&&(t.preventDefault(),t.stopImmediatePropagation(),u.defer(function(){s.focus()}))}),e.on("mousedown.aa",function(t){t.preventDefault()}),this.eventBus=t.eventBus||new l({el:s}),this.dropdown=new r.Dropdown({appendTo:t.appendTo,wrapper:this.$node,menu:e,datasets:t.datasets,templates:t.templates,cssClasses:t.cssClasses,minLength:this.minLength}).onSync("suggestionClicked",this._onSuggestionClicked,this).onSync("cursorMoved",this._onCursorMoved,this).onSync("cursorRemoved",this._onCursorRemoved,this).onSync("opened",this._onOpened,this).onSync("closed",this._onClosed,this).onSync("shown",this._onShown,this).onSync("empty",this._onEmpty,this).onSync("redrawn",this._onRedrawn,this).onAsync("datasetRendered",this._onDatasetRendered,this),this.input=new r.Input({input:s,hint:n}).onSync("focused",this._onFocused,this).onSync("blurred",this._onBlurred,this).onSync("enterKeyed",this._onEnterKeyed,this).onSync("tabKeyed",this._onTabKeyed,this).onSync("escKeyed",this._onEscKeyed,this).onSync("upKeyed",this._onUpKeyed,this).onSync("downKeyed",this._onDownKeyed,this).onSync("leftKeyed",this._onLeftKeyed,this).onSync("rightKeyed",this._onRightKeyed,this).onSync("queryChanged",this._onQueryChanged,this).onSync("whitespaceChanged",this._onWhitespaceChanged,this),this._bindKeyboardShortcuts(t),this._setLanguageDirection()}function i(t){var e,n,r,i;e=c.element(t.input),n=c.element(p.wrapper.replace("%ROOT%",t.cssClasses.root)).css(t.css.wrapper),t.appendTo||"block"!==e.css("display")||"table"!==e.parent().css("display")||n.css("display","table-cell");var s=p.dropdown.replace("%PREFIX%",t.cssClasses.prefix).replace("%DROPDOWN_MENU%",t.cssClasses.dropdownMenu);r=c.element(s).css(t.css.dropdown).attr({role:"listbox",id:t.listboxId}),t.templates&&t.templates.dropdownMenu&&r.html(u.templatify(t.templates.dropdownMenu)()),i=e.clone().css(t.css.hint).css(o(e)),i.val("").addClass(u.className(t.cssClasses.prefix,t.cssClasses.hint,!0)).removeAttr("id name placeholder required").prop("readonly",!0).attr({"aria-hidden":"true",autocomplete:"off",spellcheck:"false",tabindex:-1}),i.removeData&&i.removeData(),e.data(a,{"aria-autocomplete":e.attr("aria-autocomplete"),"aria-expanded":e.attr("aria-expanded"),"aria-owns":e.attr("aria-owns"),autocomplete:e.attr("autocomplete"),dir:e.attr("dir"),role:e.attr("role"),spellcheck:e.attr("spellcheck"),style:e.attr("style"),type:e.attr("type")}),e.addClass(u.className(t.cssClasses.prefix,t.cssClasses.input,!0)).attr({autocomplete:"off",spellcheck:!1,role:"combobox","aria-autocomplete":t.datasets&&t.datasets[0]&&t.datasets[0].displayKey?"both":"list","aria-expanded":"false","aria-labelledby":e.attr("placeholder")?e.attr("id"):null,"aria-owns":t.listboxId}).css(t.hint?t.css.input:t.css.inputWithNoHint);try{e.attr("dir")||e.attr("dir","auto")}catch(t){}return n=t.appendTo?n.appendTo(c.element(t.appendTo).eq(0)).eq(0):e.wrap(n).parent(),n.prepend(t.hint?i:null).append(r),{wrapper:n,input:e,hint:i,menu:r}}function o(t){return{backgroundAttachment:t.css("background-attachment"),backgroundClip:t.css("background-clip"),backgroundColor:t.css("background-color"),backgroundImage:t.css("background-image"),backgroundOrigin:t.css("background-origin"),backgroundPosition:t.css("background-position"),backgroundRepeat:t.css("background-repeat"),backgroundSize:t.css("background-size")}}function s(t,e){var n=t.find(u.className(e.prefix,e.input));u.each(n.data(a),function(t,e){void 0===t?n.removeAttr(e):n.attr(e,t)}),n.detach().removeClass(u.className(e.prefix,e.input,!0)).insertAfter(t),n.removeData&&n.removeData(a),t.remove()}var a="aaAttrs",u=n(0),c=n(1),l=n(13),h=n(40),f=n(39),p=n(14),d=n(8);u.mixin(r.prototype,{_bindKeyboardShortcuts:function(t){if(t.keyboardShortcuts){var e=this.$input,n=[];u.each(t.keyboardShortcuts,function(t){"string"==typeof t&&(t=t.toUpperCase().charCodeAt(0)),n.push(t)}),c.element(document).keydown(function(t){var r=t.target||t.srcElement,i=r.tagName;if(!r.isContentEditable&&"INPUT"!==i&&"SELECT"!==i&&"TEXTAREA"!==i){var o=t.which||t.keyCode;-1!==n.indexOf(o)&&(e.focus(),t.stopPropagation(),t.preventDefault())}})}},_onSuggestionClicked:function(t,e){var n;(n=this.dropdown.getDatumForSuggestion(e))&&this._select(n)},_onCursorMoved:function(t,e){var n=this.dropdown.getDatumForCursor(),r=this.dropdown.getCurrentCursor().attr("id");this.input.setActiveDescendant(r),n&&(e&&this.input.setInputValue(n.value,!0),this.eventBus.trigger("cursorchanged",n.raw,n.datasetName))},_onCursorRemoved:function(){this.input.resetInputValue(),this._updateHint(),this.eventBus.trigger("cursorremoved")},_onDatasetRendered:function(){this._updateHint(),this.eventBus.trigger("updated")},_onOpened:function(){this._updateHint(),this.input.expand(),this.eventBus.trigger("opened")},_onEmpty:function(){this.eventBus.trigger("empty")},_onRedrawn:function(){this.$node.css("top","0px"),this.$node.css("left","0px");var t=this.$input[0].getBoundingClientRect();this.autoWidth&&this.$node.css("width",t.width+"px");var e=this.$node[0].getBoundingClientRect(),n=t.bottom-e.top;this.$node.css("top",n+"px");var r=t.left-e.left;this.$node.css("left",r+"px"),this.eventBus.trigger("redrawn")},_onShown:function(){this.eventBus.trigger("shown"),this.autoselect&&this.dropdown.cursorTopSuggestion()},_onClosed:function(){this.input.clearHint(),this.input.removeActiveDescendant(),this.input.collapse(),this.eventBus.trigger("closed")},_onFocused:function(){if(this.isActivated=!0,this.openOnFocus){var t=this.input.getQuery();t.length>=this.minLength?this.dropdown.update(t):this.dropdown.empty(),this.dropdown.open()}},_onBlurred:function(){var t,e;t=this.dropdown.getDatumForCursor(),e=this.dropdown.getDatumForTopSuggestion(),this.debug||(this.autoselectOnBlur&&t?this._select(t):this.autoselectOnBlur&&e?this._select(e):(this.isActivated=!1,this.dropdown.empty(),this.dropdown.close()))},_onEnterKeyed:function(t,e){var n,r;n=this.dropdown.getDatumForCursor(),r=this.dropdown.getDatumForTopSuggestion(),n?(this._select(n),e.preventDefault()):this.autoselect&&r&&(this._select(r),e.preventDefault())},_onTabKeyed:function(t,e){var n;(n=this.dropdown.getDatumForCursor())?(this._select(n),e.preventDefault()):this._autocomplete(!0)},_onEscKeyed:function(){this.dropdown.close(),this.input.resetInputValue()},_onUpKeyed:function(){var t=this.input.getQuery();this.dropdown.isEmpty&&t.length>=this.minLength?this.dropdown.update(t):this.dropdown.moveCursorUp(),this.dropdown.open()},_onDownKeyed:function(){var t=this.input.getQuery();this.dropdown.isEmpty&&t.length>=this.minLength?this.dropdown.update(t):this.dropdown.moveCursorDown(),this.dropdown.open()},_onLeftKeyed:function(){"rtl"===this.dir&&this._autocomplete()},_onRightKeyed:function(){"ltr"===this.dir&&this._autocomplete()},_onQueryChanged:function(t,e){this.input.clearHintIfInvalid(),e.length>=this.minLength?this.dropdown.update(e):this.dropdown.empty(),this.dropdown.open(),this._setLanguageDirection()},_onWhitespaceChanged:function(){this._updateHint(),this.dropdown.open()},_setLanguageDirection:function(){var t=this.input.getLanguageDirection();this.dir!==t&&(this.dir=t,this.$node.css("direction",t),this.dropdown.setLanguageDirection(t))},_updateHint:function(){var t,e,n,r,i,o;t=this.dropdown.getDatumForTopSuggestion(),t&&this.dropdown.isVisible()&&!this.input.hasOverflow()?(e=this.input.getInputValue(),n=h.normalizeQuery(e),r=u.escapeRegExChars(n),i=new RegExp("^(?:"+r+")(.+$)","i"),o=i.exec(t.value),o?this.input.setHint(e+o[1]):this.input.clearHint()):this.input.clearHint()},_autocomplete:function(t){var e,n,r,i;e=this.input.getHint(),n=this.input.getQuery(),r=t||this.input.isCursorAtEnd(),e&&n!==e&&r&&(i=this.dropdown.getDatumForTopSuggestion(),i&&this.input.setInputValue(i.value),this.eventBus.trigger("autocompleted",i.raw,i.datasetName))},_select:function(t){void 0!==t.value&&this.input.setQuery(t.value),this.input.setInputValue(t.value,!0),this._setLanguageDirection(),!1===this.eventBus.trigger("selected",t.raw,t.datasetName).isDefaultPrevented()&&(this.dropdown.close(),u.defer(u.bind(this.dropdown.empty,this.dropdown)))},open:function(){if(!this.isActivated){var t=this.input.getInputValue();t.length>=this.minLength?this.dropdown.update(t):this.dropdown.empty()}this.dropdown.open()},close:function(){this.dropdown.close()},setVal:function(t){t=u.toStr(t),this.isActivated?this.input.setInputValue(t):(this.input.setQuery(t),this.input.setInputValue(t,!0)),this._setLanguageDirection()},getVal:function(){return this.input.getQuery()},destroy:function(){this.input.destroy(),this.dropdown.destroy(),s(this.$node,this.cssClasses),this.$node=null},getWrapper:function(){return this.dropdown.$container[0]}}),r.Dropdown=f,r.Input=h,r.sources=n(43),t.exports=r},function(t,e,n){"use strict";var r=n(0),i=n(16),o=n(15);t.exports=function(t,e){function n(n,i){t.search(n,e,function(t,e){if(t)return void r.error(t.message);i(e.hits,e)})}var s=o(t.as._ua);return s&&s[0]>=3&&s[1]>20&&(e=e||{},e.additionalUA="autocomplete.js "+i),n}},function(t,e,n){"use strict";t.exports={hits:n(42),popularIn:n(44)}},function(t,e,n){"use strict";var r=n(0),i=n(16),o=n(15);t.exports=function(t,e,n,s){function a(a,u){t.search(a,e,function(t,a){if(t)return void r.error(t.message);if(a.hits.length>0){var h=a.hits[0],f=r.mixin({hitsPerPage:0},n);delete f.source,delete f.index;var p=o(l.as._ua);return p&&p[0]>=3&&p[1]>20&&(e.additionalUA="autocomplete.js "+i),void l.search(c(h),f,function(t,e){if(t)return void r.error(t.message);var n=[];if(s.includeAll){var i=s.allTitle||"All departments";n.push(r.mixin({facet:{value:i,count:e.nbHits}},r.cloneDeep(h)))}r.each(e.facets,function(t,e){r.each(t,function(t,i){n.push(r.mixin({facet:{facet:e,value:i,count:t}},r.cloneDeep(h)))})});for(var o=1;o<a.hits.length;++o)n.push(a.hits[o]);u(n,a)})}u([])})}var u=o(t.as._ua);if(u&&u[0]>=3&&u[1]>20&&(e=e||{},e.additionalUA="autocomplete.js "+i),!n.source)return r.error("Missing 'source' key");var c=r.isFunction(n.source)?n.source:function(t){return t[n.source]};if(!n.index)return r.error("Missing 'index' key");var l=n.index;return s=s||{},a}},function(t,e,n){"use strict";function r(t,e,n,r){n=o.isArray(n)?n:[].slice.call(arguments,2);var c=i(t).each(function(t,o){var c=i(o),l=new u({el:c}),h=r||new a({input:c,eventBus:l,dropdownMenuContainer:e.dropdownMenuContainer,hint:void 0===e.hint||!!e.hint,minLength:e.minLength,autoselect:e.autoselect,autoselectOnBlur:e.autoselectOnBlur,openOnFocus:e.openOnFocus,templates:e.templates,debug:e.debug,cssClasses:e.cssClasses,datasets:n,keyboardShortcuts:e.keyboardShortcuts,appendTo:e.appendTo,autoWidth:e.autoWidth});c.data(s,h)});return c.autocomplete={},o.each(["open","close","getVal","setVal","destroy","getWrapper"],function(t){c.autocomplete[t]=function(){var e,n=arguments;return c.each(function(r,o){var a=i(o).data(s);e=a[t].apply(a,n)}),e}}),c}var i=n(17);n(1).element=i;var o=n(0);o.isArray=i.isArray,o.isFunction=i.isFunction,o.isObject=i.isPlainObject,o.bind=i.proxy,o.each=function(t,e){function n(t,n){return e(n,t)}i.each(t,n)},o.map=i.map,o.mixin=i.extend,o.Event=i.Event;var s="aaAutocomplete",a=n(41),u=n(13);r.sources=a.sources,r.escapeHighlightedString=o.escapeHighlightedString;var c="autocomplete"in window,l=window.autocomplete;r.noConflict=function(){return c?window.autocomplete=l:delete window.autocomplete,r},t.exports=r},function(t,e,n){"use strict";var r=n(21),i=function(t){return t&&t.__esModule?t:{default:t}}(r);t.exports=i.default},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var o=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t},s=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),a=n(54),u=r(a),c=n(24),l=r(c),h=n(37),f=r(h),p=n(48),d=r(p),g=n(49),m=r(g),v=n(18),y=r(v),b=n(19),w=r(b),_=function(){function t(e){var n=e.apiKey,r=e.indexName,s=e.inputSelector,a=e.appId,u=void 0===a?"BH4D9OD16A":a,c=e.debug,h=void 0!==c&&c,p=e.algoliaOptions,g=void 0===p?{}:p,m=e.autocompleteOptions,v=void 0===m?{debug:!1,hint:!1,autoselect:!0}:m,b=e.transformData,w=void 0!==b&&b,_=e.queryHook,x=void 0!==_&&_,S=e.handleSelected,C=void 0!==S&&S,A=e.enhancedSearchInput,E=void 0!==A&&A,T=e.layout,k=void 0===T?"collumns":T;i(this,t),t.checkArguments({apiKey:n,indexName:r,inputSelector:s,debug:h,algoliaOptions:g,autocompleteOptions:v,transformData:w,queryHook:x,handleSelected:C,enhancedSearchInput:E,layout:k}),this.apiKey=n,this.appId=u,this.indexName=r,this.input=t.getInputFromSelector(s),this.algoliaOptions=o({hitsPerPage:5},g);var O=!(!v||!v.debug)&&v.debug;v.debug=h||O,this.autocompleteOptions=v,this.autocompleteOptions.cssClasses={prefix:"ds"},C=C||this.handleSelected,this.isSimpleLayout="simple"===k,this.client=(0,l.default)(this.appId,this.apiKey),this.client.addAlgoliaAgent("docsearch.js "+y.default),E&&(this.input=t.injectSearchBox(this.input)),this.autocomplete=(0,f.default)(this.input,v,[{source:this.getAutocompleteSource(w,x),templates:{suggestion:t.getSuggestionTemplate(this.isSimpleLayout),footer:d.default.footer,empty:t.getEmptyTemplate()}}]),this.autocomplete.on("autocomplete:selected",C.bind(null,this.autocomplete.autocomplete)),this.autocomplete.on("autocomplete:shown",this.handleShown.bind(null,this.input)),E&&t.bindSearchBoxEvent()}return s(t,[{key:"getAutocompleteSource",value:function(e,n){var r=this;return function(i,o){n&&(i=n(i)||i),r.client.search([{indexName:r.indexName,query:i,params:r.algoliaOptions}]).then(function(n){var r=n.results[0].hits;e&&(r=e(r)||r),o(t.formatHits(r))})}}},{key:"handleSelected",value:function(t,e,n){t.setVal(""),window.location.href=n.url}},{key:"handleShown",value:function(t){var e=t.offset().left+t.width()/2,n=(0,w.default)(document).width()/2;isNaN(n)&&(n=900);var r=e-n>=0?"algolia-autocomplete-right":"algolia-autocomplete-left",i=e-n<0?"algolia-autocomplete-right":"algolia-autocomplete-left",o=(0,w.default)(".algolia-autocomplete");o.hasClass(r)||o.addClass(r),o.hasClass(i)&&o.removeClass(i)}}],[{key:"checkArguments",value:function(e){if(!e.apiKey||!e.indexName)throw new Error("Usage:\n documentationSearch({\n apiKey,\n indexName,\n inputSelector,\n [ appId ],\n [ algoliaOptions.{hitsPerPage} ]\n [ autocompleteOptions.{hint,debug} ]\n})");if(!t.getInputFromSelector(e.inputSelector))throw new Error("Error: No input element in the page matches "+e.inputSelector)}},{key:"injectSearchBox",value:function(t){t.before(d.default.searchBox);var e=t.prev().prev().find("input");return t.remove(),e}},{key:"bindSearchBoxEvent",value:function(){(0,w.default)('.searchbox [type="reset"]').on("click",function(){(0,w.default)("input#docsearch").focus(),(0,w.default)(this).addClass("hide"),f.default.autocomplete.setVal("")}),(0,w.default)("input#docsearch").on("keyup",function(){var t=document.querySelector("input#docsearch"),e=document.querySelector('.searchbox [type="reset"]');e.className="searchbox__reset",0===t.value.length&&(e.className+=" hide")})}},{key:"getInputFromSelector",value:function(t){var e=(0,w.default)(t).filter("input");return e.length?(0,w.default)(e[0]):null}},{key:"formatHits",value:function(e){var n=m.default.deepClone(e),r=n.map(function(t){return t._highlightResult&&(t._highlightResult=m.default.mergeKeyWithParent(t._highlightResult,"hierarchy")),m.default.mergeKeyWithParent(t,"hierarchy")}),i=m.default.groupBy(r,"lvl0");return w.default.each(i,function(t,e){var n=m.default.groupBy(e,"lvl1"),r=m.default.flattenAndFlagFirst(n,"isSubCategoryHeader");i[t]=r}),i=m.default.flattenAndFlagFirst(i,"isCategoryHeader"),i.map(function(e){var n=t.formatURL(e),r=m.default.getHighlightedValue(e,"lvl0"),i=m.default.getHighlightedValue(e,"lvl1")||r,o=m.default.compact([m.default.getHighlightedValue(e,"lvl2")||i,m.default.getHighlightedValue(e,"lvl3"),m.default.getHighlightedValue(e,"lvl4"),m.default.getHighlightedValue(e,"lvl5"),m.default.getHighlightedValue(e,"lvl6")]).join('<span class="aa-suggestion-title-separator" aria-hidden="true"> › </span>'),s=m.default.getSnippetedValue(e,"content"),a=i&&""!==i||o&&""!==o,u=!i||""===i||i===r,c=o&&""!==o&&o!==i,l=!c&&i&&""!==i&&i!==r;return{isLvl0:!l&&!c,isLvl1:l,isLvl2:c,isLvl1EmptyOrDuplicate:u,isCategoryHeader:e.isCategoryHeader,isSubCategoryHeader:e.isSubCategoryHeader,isTextOrSubcatoryNonEmpty:a,category:r,subcategory:i,title:o,text:s,url:n}})}},{key:"formatURL",value:function(t){var e=t.url,n=t.anchor;if(e){return-1!==e.indexOf("#")?e:n?t.url+"#"+t.anchor:e}return n?"#"+t.anchor:(console.warn("no anchor nor url for : ",JSON.stringify(t)),null)}},{key:"getEmptyTemplate",value:function(){return function(t){return u.default.compile(d.default.empty).render(t)}}},{key:"getSuggestionTemplate",value:function(t){var e=t?d.default.suggestionSimple:d.default.suggestion,n=u.default.compile(e);return function(t){return n.render(t)}}}]),t}();e.default=_},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r="algolia-docsearch-suggestion",i={suggestion:'\n <div class="'+r+"\n {{#isCategoryHeader}}"+r+"__main{{/isCategoryHeader}}\n {{#isSubCategoryHeader}}"+r+'__secondary{{/isSubCategoryHeader}}\n ">\n <div class="'+r+'--category-header">\n <span class="'+r+'--category-header-lvl0">{{{category}}}</span>\n </div>\n <div class="'+r+'--wrapper">\n <div class="'+r+'--subcategory-column">\n <span class="'+r+'--subcategory-column-text">{{{subcategory}}}</span>\n </div>\n {{#isTextOrSubcatoryNonEmpty}}\n <div class="'+r+'--content">\n <div class="'+r+'--subcategory-inline">{{{subcategory}}}</div>\n <div class="'+r+'--title">{{{title}}}</div>\n {{#text}}<div class="'+r+'--text">{{{text}}}</div>{{/text}}\n </div>\n {{/isTextOrSubcatoryNonEmpty}}\n </div>\n </div>\n ',suggestionSimple:'\n <div class="'+r+"\n {{#isCategoryHeader}}"+r+"__main{{/isCategoryHeader}}\n {{#isSubCategoryHeader}}"+r+'__secondary{{/isSubCategoryHeader}}\n suggestion-layout-simple\n ">\n <div class="'+r+'--category-header">\n {{^isLvl0}}\n <span class="'+r+"--category-header-lvl0 "+r+'--category-header-item">{{{category}}}</span>\n {{^isLvl1}}\n {{^isLvl1EmptyOrDuplicate}}\n <span class="'+r+"--category-header-lvl1 "+r+'--category-header-item">\n {{{subcategory}}}\n </span>\n {{/isLvl1EmptyOrDuplicate}}\n {{/isLvl1}}\n {{/isLvl0}}\n <div class="'+r+"--title "+r+'--category-header-item">\n {{#isLvl2}}\n {{{title}}}\n {{/isLvl2}}\n {{#isLvl1}}\n {{{subcategory}}}\n {{/isLvl1}}\n {{#isLvl0}}\n {{{category}}}\n {{/isLvl0}}\n </div>\n </div>\n <div class="'+r+'--wrapper">\n {{#text}}\n <div class="'+r+'--content">\n <div class="'+r+'--text">{{{text}}}</div>\n </div>\n {{/text}}\n </div>\n </div>\n ',footer:'\n <div class="algolia-docsearch-footer">\n Search by <a class="algolia-docsearch-footer--logo" href="https://www.algolia.com/docsearch">Algolia</a>\n </div>\n ',empty:'\n <div class="'+r+'">\n <div class="'+r+'--wrapper">\n <div class="'+r+"--content "+r+'--no-results">\n <div class="'+r+'--title">\n <div class="'+r+'--text">\n No results found for query <b>"{{query}}"</b>\n </div>\n </div>\n </div>\n </div>\n </div>\n ',searchBox:'\n <form novalidate="novalidate" onsubmit="return false;" class="searchbox">\n <div role="search" class="searchbox__wrapper">\n <input id="docsearch" type="search" name="search" placeholder="Search the docs" autocomplete="off" required="required" class="searchbox__input"/>\n <button type="submit" title="Submit your search query." class="searchbox__submit" >\n <svg width=12 height=12 role="img" aria-label="Search">\n <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sbx-icon-search-13"></use>\n </svg>\n </button>\n <button type="reset" title="Clear the search query." class="searchbox__reset hide">\n <svg width=12 height=12 role="img" aria-label="Reset">\n <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sbx-icon-clear-3"></use>\n </svg>\n </button>\n </div>\n</form>\n\n<div class="svg-icons" style="height: 0; width: 0; position: absolute; visibility: hidden">\n <svg xmlns="http://www.w3.org/2000/svg">\n <symbol id="sbx-icon-clear-3" viewBox="0 0 40 40"><path d="M16.228 20L1.886 5.657 0 3.772 3.772 0l1.885 1.886L20 16.228 34.343 1.886 36.228 0 40 3.772l-1.886 1.885L23.772 20l14.342 14.343L40 36.228 36.228 40l-1.885-1.886L20 23.772 5.657 38.114 3.772 40 0 36.228l1.886-1.885L16.228 20z" fill-rule="evenodd"></symbol>\n <symbol id="sbx-icon-search-13" viewBox="0 0 40 40"><path d="M26.806 29.012a16.312 16.312 0 0 1-10.427 3.746C7.332 32.758 0 25.425 0 16.378 0 7.334 7.333 0 16.38 0c9.045 0 16.378 7.333 16.378 16.38 0 3.96-1.406 7.593-3.746 10.426L39.547 37.34c.607.608.61 1.59-.004 2.203a1.56 1.56 0 0 1-2.202.004L26.807 29.012zm-10.427.627c7.322 0 13.26-5.938 13.26-13.26 0-7.324-5.938-13.26-13.26-13.26-7.324 0-13.26 5.936-13.26 13.26 0 7.322 5.936 13.26 13.26 13.26z" fill-rule="evenodd"></symbol>\n </svg>\n</div>\n '};e.default=i},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i=n(19),o=function(t){return t&&t.__esModule?t:{default:t}}(i),s={mergeKeyWithParent:function(t,e){if(void 0===t[e])return t;if("object"!==r(t[e]))return t;var n=o.default.extend({},t,t[e]);return delete n[e],n},groupBy:function(t,e){var n={};return o.default.each(t,function(t,r){if(void 0===r[e])throw new Error("[groupBy]: Object has no key "+e);var i=r[e];"string"==typeof i&&(i=i.toLowerCase()),Object.prototype.hasOwnProperty.call(n,i)||(n[i]=[]),n[i].push(r)}),n},values:function(t){return Object.keys(t).map(function(e){return t[e]})},flatten:function(t){var e=[];return t.forEach(function(t){if(!Array.isArray(t))return void e.push(t);t.forEach(function(t){e.push(t)})}),e},flattenAndFlagFirst:function(t,e){var n=this.values(t).map(function(t){return t.map(function(t,n){return t[e]=0===n,t})});return this.flatten(n)},compact:function(t){var e=[];return t.forEach(function(t){t&&e.push(t)}),e},getHighlightedValue:function(t,e){return t._highlightResult&&t._highlightResult.hierarchy_camel&&t._highlightResult.hierarchy_camel[e]&&t._highlightResult.hierarchy_camel[e].matchLevel&&"none"!==t._highlightResult.hierarchy_camel[e].matchLevel&&t._highlightResult.hierarchy_camel[e].value?t._highlightResult.hierarchy_camel[e].value:t._highlightResult&&t._highlightResult&&t._highlightResult[e]&&t._highlightResult[e].value?t._highlightResult[e].value:t[e]},getSnippetedValue:function(t,e){if(!t._snippetResult||!t._snippetResult[e]||!t._snippetResult[e].value)return t[e];var n=t._snippetResult[e].value;return n[0]!==n[0].toUpperCase()&&(n="…"+n),-1===[".","!","?"].indexOf(n[n.length-1])&&(n+="…"),n},deepClone:function(t){return JSON.parse(JSON.stringify(t))}};e.default=s},function(t,e,n){function r(){return e.colors[l++%e.colors.length]}function i(t){function n(){}function i(){var t=i,n=+new Date,o=n-(c||n);t.diff=o,t.prev=c,t.curr=n,c=n,null==t.useColors&&(t.useColors=e.useColors()),null==t.color&&t.useColors&&(t.color=r());for(var s=new Array(arguments.length),a=0;a<s.length;a++)s[a]=arguments[a];s[0]=e.coerce(s[0]),"string"!=typeof s[0]&&(s=["%o"].concat(s));var u=0;s[0]=s[0].replace(/%([a-z%])/g,function(n,r){if("%%"===n)return n;u++;var i=e.formatters[r];if("function"==typeof i){var o=s[u];n=i.call(t,o),s.splice(u,1),u--}return n}),s=e.formatArgs.apply(t,s),(i.log||e.log||console.log.bind(console)).apply(t,s)}n.enabled=!1,i.enabled=!0;var o=e.enabled(t)?i:n;return o.namespace=t,o}function o(t){e.save(t);for(var n=(t||"").split(/[\s,]+/),r=n.length,i=0;i<r;i++)n[i]&&(t=n[i].replace(/[\\^$+?.()|[\]{}]/g,"\\$&").replace(/\*/g,".*?"),"-"===t[0]?e.skips.push(new RegExp("^"+t.substr(1)+"$")):e.names.push(new RegExp("^"+t+"$")))}function s(){e.enable("")}function a(t){var n,r;for(n=0,r=e.skips.length;n<r;n++)if(e.skips[n].test(t))return!1;for(n=0,r=e.names.length;n<r;n++)if(e.names[n].test(t))return!0;return!1}function u(t){return t instanceof Error?t.stack||t.message:t}e=t.exports=i.debug=i,e.coerce=u,e.disable=s,e.enable=o,e.enabled=a,e.humanize=n(62),e.names=[],e.skips=[],e.formatters={};var c,l=0},function(t,e,n){(function(e,r){/*!
++ * @overview es6-promise - a tiny implementation of Promises/A+.
++ * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)
++ * @license Licensed under MIT license
++ * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE
++ * @version 4.0.5
++ */
++!function(e,n){t.exports=n()}(0,function(){"use strict";function t(t){return"function"==typeof t||"object"==typeof t&&null!==t}function i(t){return"function"==typeof t}function o(t){V=t}function s(t){K=t}function a(){return void 0!==U?function(){U(c)}:u()}function u(){var t=setTimeout;return function(){return t(c,1)}}function c(){for(var t=0;t<B;t+=2){(0,Y[t])(Y[t+1]),Y[t]=void 0,Y[t+1]=void 0}B=0}function l(t,e){var n=arguments,r=this,i=new this.constructor(f);void 0===i[tt]&&I(i);var o=r._state;return o?function(){var t=n[o-1];K(function(){return k(o,i,t,r._result)})}():C(r,i,t,e),i}function h(t){var e=this;if(t&&"object"==typeof t&&t.constructor===e)return t;var n=new e(f);return w(n,t),n}function f(){}function p(){return new TypeError("You cannot resolve a promise with itself")}function d(){return new TypeError("A promises callback cannot return that same promise.")}function g(t){try{return t.then}catch(t){return it.error=t,it}}function m(t,e,n,r){try{t.call(e,n,r)}catch(t){return t}}function v(t,e,n){K(function(t){var r=!1,i=m(n,e,function(n){r||(r=!0,e!==n?w(t,n):x(t,n))},function(e){r||(r=!0,S(t,e))},"Settle: "+(t._label||" unknown promise"));!r&&i&&(r=!0,S(t,i))},t)}function y(t,e){e._state===nt?x(t,e._result):e._state===rt?S(t,e._result):C(e,void 0,function(e){return w(t,e)},function(e){return S(t,e)})}function b(t,e,n){e.constructor===t.constructor&&n===l&&e.constructor.resolve===h?y(t,e):n===it?S(t,it.error):void 0===n?x(t,e):i(n)?v(t,e,n):x(t,e)}function w(e,n){e===n?S(e,p()):t(n)?b(e,n,g(n)):x(e,n)}function _(t){t._onerror&&t._onerror(t._result),A(t)}function x(t,e){t._state===et&&(t._result=e,t._state=nt,0!==t._subscribers.length&&K(A,t))}function S(t,e){t._state===et&&(t._state=rt,t._result=e,K(_,t))}function C(t,e,n,r){var i=t._subscribers,o=i.length;t._onerror=null,i[o]=e,i[o+nt]=n,i[o+rt]=r,0===o&&t._state&&K(A,t)}function A(t){var e=t._subscribers,n=t._state;if(0!==e.length){for(var r=void 0,i=void 0,o=t._result,s=0;s<e.length;s+=3)r=e[s],i=e[s+n],r?k(n,r,i,o):i(o);t._subscribers.length=0}}function E(){this.error=null}function T(t,e){try{return t(e)}catch(t){return ot.error=t,ot}}function k(t,e,n,r){var o=i(n),s=void 0,a=void 0,u=void 0,c=void 0;if(o){if(s=T(n,r),s===ot?(c=!0,a=s.error,s=null):u=!0,e===s)return void S(e,d())}else s=r,u=!0;e._state!==et||(o&&u?w(e,s):c?S(e,a):t===nt?x(e,s):t===rt&&S(e,s))}function O(t,e){try{e(function(e){w(t,e)},function(e){S(t,e)})}catch(e){S(t,e)}}function N(){return st++}function I(t){t[tt]=st++,t._state=void 0,t._result=void 0,t._subscribers=[]}function j(t,e){this._instanceConstructor=t,this.promise=new t(f),this.promise[tt]||I(this.promise),z(e)?(this._input=e,this.length=e.length,this._remaining=e.length,this._result=new Array(this.length),0===this.length?x(this.promise,this._result):(this.length=this.length||0,this._enumerate(),0===this._remaining&&x(this.promise,this._result))):S(this.promise,L())}function L(){return new Error("Array Methods must be provided an Array")}function P(t){return new j(this,t).promise}function R(t){var e=this;return new e(z(t)?function(n,r){for(var i=t.length,o=0;o<i;o++)e.resolve(t[o]).then(n,r)}:function(t,e){return e(new TypeError("You must pass an array to race."))})}function D(t){var e=this,n=new e(f);return S(n,t),n}function $(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}function M(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}function q(t){this[tt]=N(),this._result=this._state=void 0,this._subscribers=[],f!==t&&("function"!=typeof t&&$(),this instanceof q?O(this,t):M())}function H(){var t=void 0;if(void 0!==r)t=r;else if("undefined"!=typeof self)t=self;else try{t=Function("return this")()}catch(t){throw new Error("polyfill failed because global object is unavailable in this environment")}var e=t.Promise;if(e){var n=null;try{n=Object.prototype.toString.call(e.resolve())}catch(t){}if("[object Promise]"===n&&!e.cast)return}t.Promise=q}var F=void 0;F=Array.isArray?Array.isArray:function(t){return"[object Array]"===Object.prototype.toString.call(t)};var z=F,B=0,U=void 0,V=void 0,K=function(t,e){Y[B]=t,Y[B+1]=e,2===(B+=2)&&(V?V(c):Z())},J="undefined"!=typeof window?window:void 0,W=J||{},X=W.MutationObserver||W.WebKitMutationObserver,Q="undefined"==typeof self&&void 0!==e&&"[object process]"==={}.toString.call(e),G="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel,Y=new Array(1e3),Z=void 0;Z=Q?function(){return function(){return e.nextTick(c)}}():X?function(){var t=0,e=new X(c),n=document.createTextNode("");return e.observe(n,{characterData:!0}),function(){n.data=t=++t%2}}():G?function(){var t=new MessageChannel;return t.port1.onmessage=c,function(){return t.port2.postMessage(0)}}():void 0===J?function(){try{var t=n(67);return U=t.runOnLoop||t.runOnContext,a()}catch(t){return u()}}():u();var tt=Math.random().toString(36).substring(16),et=void 0,nt=1,rt=2,it=new E,ot=new E,st=0;return j.prototype._enumerate=function(){for(var t=this.length,e=this._input,n=0;this._state===et&&n<t;n++)this._eachEntry(e[n],n)},j.prototype._eachEntry=function(t,e){var n=this._instanceConstructor,r=n.resolve;if(r===h){var i=g(t);if(i===l&&t._state!==et)this._settledAt(t._state,e,t._result);else if("function"!=typeof i)this._remaining--,this._result[e]=t;else if(n===q){var o=new n(f);b(o,t,i),this._willSettleAt(o,e)}else this._willSettleAt(new n(function(e){return e(t)}),e)}else this._willSettleAt(r(t),e)},j.prototype._settledAt=function(t,e,n){var r=this.promise;r._state===et&&(this._remaining--,t===rt?S(r,n):this._result[e]=n),0===this._remaining&&x(r,this._result)},j.prototype._willSettleAt=function(t,e){var n=this;C(t,void 0,function(t){return n._settledAt(nt,e,t)},function(t){return n._settledAt(rt,e,t)})},q.all=P,q.race=R,q.resolve=h,q.reject=D,q._setScheduler=o,q._setAsap=s,q._asap=K,q.prototype={constructor:q,then:l,catch:function(t){return this.then(null,t)}},q.polyfill=H,q.Promise=q,q})}).call(e,n(11),n(3))},function(t,e,n){(function(e){"undefined"!=typeof window?t.exports=window:void 0!==e?t.exports=e:"undefined"!=typeof self?t.exports=self:t.exports={}}).call(e,n(3))},function(t,e,n){!function(t){function e(t){"}"===t.n.substr(t.n.length-1)&&(t.n=t.n.substring(0,t.n.length-1))}function n(t){return t.trim?t.trim():t.replace(/^\s*|\s*$/g,"")}function r(t,e,n){if(e.charAt(n)!=t.charAt(0))return!1;for(var r=1,i=t.length;r<i;r++)if(e.charAt(n+r)!=t.charAt(r))return!1;return!0}function i(e,n,r,a){var u=[],c=null,l=null,h=null;for(l=r[r.length-1];e.length>0;){if(h=e.shift(),l&&"<"==l.tag&&!(h.tag in _))throw new Error("Illegal content in < super tag.");if(t.tags[h.tag]<=t.tags.$||o(h,a))r.push(h),h.nodes=i(e,h.tag,r,a);else{if("/"==h.tag){if(0===r.length)throw new Error("Closing tag without opener: /"+h.n);if(c=r.pop(),h.n!=c.n&&!s(h.n,c.n,a))throw new Error("Nesting error: "+c.n+" vs. "+h.n);return c.end=h.i,u}"\n"==h.tag&&(h.last=0==e.length||"\n"==e[0].tag)}u.push(h)}if(r.length>0)throw new Error("missing closing tag: "+r.pop().n);return u}function o(t,e){for(var n=0,r=e.length;n<r;n++)if(e[n].o==t.n)return t.tag="#",!0}function s(t,e,n){for(var r=0,i=n.length;r<i;r++)if(n[r].c==t&&n[r].o==e)return!0}function a(t){var e=[];for(var n in t)e.push('"'+c(n)+'": function(c,p,t,i) {'+t[n]+"}");return"{ "+e.join(",")+" }"}function u(t){var e=[];for(var n in t.partials)e.push('"'+c(n)+'":{name:"'+c(t.partials[n].name)+'", '+u(t.partials[n])+"}");return"partials: {"+e.join(",")+"}, subs: "+a(t.subs)}function c(t){return t.replace(y,"\\\\").replace(g,'\\"').replace(m,"\\n").replace(v,"\\r").replace(b,"\\u2028").replace(w,"\\u2029")}function l(t){return~t.indexOf(".")?"d":"f"}function h(t,e){var n="<"+(e.prefix||""),r=n+t.n+x++;return e.partials[r]={name:t.n,partials:{}},e.code+='t.b(t.rp("'+c(r)+'",c,p,"'+(t.indent||"")+'"));',r}function f(t,e){e.code+="t.b(t.t(t."+l(t.n)+'("'+c(t.n)+'",c,p,0)));'}function p(t){return"t.b("+t+");"}var d=/\S/,g=/\"/g,m=/\n/g,v=/\r/g,y=/\\/g,b=/\u2028/,w=/\u2029/;t.tags={"#":1,"^":2,"<":3,$:4,"/":5,"!":6,">":7,"=":8,_v:9,"{":10,"&":11,_t:12},t.scan=function(i,o){function s(){p.length>0&&(g.push({tag:"_t",text:new String(p)}),p="")}function a(){for(var e=!0,n=y;n<g.length;n++)if(!(e=t.tags[g[n].tag]<t.tags._v||"_t"==g[n].tag&&null===g[n].text.match(d)))return!1;return e}function u(t,e){if(s(),t&&a())for(var n,r=y;r<g.length;r++)g[r].text&&((n=g[r+1])&&">"==n.tag&&(n.indent=g[r].text.toString()),g.splice(r,1));else e||g.push({tag:"\n"});m=!1,y=g.length}var c=i.length,l=0,h=null,f=null,p="",g=[],m=!1,v=0,y=0,b="{{",w="}}";for(o&&(o=o.split(" "),b=o[0],w=o[1]),v=0;v<c;v++)0==l?r(b,i,v)?(--v,s(),l=1):"\n"==i.charAt(v)?u(m):p+=i.charAt(v):1==l?(v+=b.length-1,f=t.tags[i.charAt(v+1)],h=f?i.charAt(v+1):"_v","="==h?(v=function(t,e){var r="="+w,i=t.indexOf(r,e),o=n(t.substring(t.indexOf("=",e)+1,i)).split(" ");return b=o[0],w=o[o.length-1],i+r.length-1}(i,v),l=0):(f&&v++,l=2),m=v):r(w,i,v)?(g.push({tag:h,n:n(p),otag:b,ctag:w,i:"/"==h?m-b.length:v+w.length}),p="",v+=w.length-1,l=0,"{"==h&&("}}"==w?v++:e(g[g.length-1]))):p+=i.charAt(v);return u(m,!0),g};var _={_t:!0,"\n":!0,$:!0,"/":!0};t.stringify=function(e,n,r){return"{code: function (c,p,i) { "+t.wrapMain(e.code)+" },"+u(e)+"}"};var x=0;t.generate=function(e,n,r){x=0;var i={code:"",subs:{},partials:{}};return t.walk(e,i),r.asString?this.stringify(i,n,r):this.makeTemplate(i,n,r)},t.wrapMain=function(t){return'var t=this;t.b(i=i||"");'+t+"return t.fl();"},t.template=t.Template,t.makeTemplate=function(t,e,n){var r=this.makePartials(t);return r.code=new Function("c","p","i",this.wrapMain(t.code)),new this.template(r,e,this,n)},t.makePartials=function(t){var e,n={subs:{},partials:t.partials,name:t.name};for(e in n.partials)n.partials[e]=this.makePartials(n.partials[e]);for(e in t.subs)n.subs[e]=new Function("c","p","t","i",t.subs[e]);return n},t.codegen={"#":function(e,n){n.code+="if(t.s(t."+l(e.n)+'("'+c(e.n)+'",c,p,1),c,p,0,'+e.i+","+e.end+',"'+e.otag+" "+e.ctag+'")){t.rs(c,p,function(c,p,t){',t.walk(e.nodes,n),n.code+="});c.pop();}"},"^":function(e,n){n.code+="if(!t.s(t."+l(e.n)+'("'+c(e.n)+'",c,p,1),c,p,1,0,0,"")){',t.walk(e.nodes,n),n.code+="};"},">":h,"<":function(e,n){var r={partials:{},code:"",subs:{},inPartial:!0};t.walk(e.nodes,r);var i=n.partials[h(e,n)];i.subs=r.subs,i.partials=r.partials},$:function(e,n){var r={subs:{},code:"",partials:n.partials,prefix:e.n};t.walk(e.nodes,r),n.subs[e.n]=r.code,n.inPartial||(n.code+='t.sub("'+c(e.n)+'",c,p,i);')},"\n":function(t,e){e.code+=p('"\\n"'+(t.last?"":" + i"))},_v:function(t,e){e.code+="t.b(t.v(t."+l(t.n)+'("'+c(t.n)+'",c,p,0)));'},_t:function(t,e){e.code+=p('"'+c(t.text)+'"')},"{":f,"&":f},t.walk=function(e,n){for(var r,i=0,o=e.length;i<o;i++)(r=t.codegen[e[i].tag])&&r(e[i],n);return n},t.parse=function(t,e,n){return n=n||{},i(t,"",[],n.sectionTags||[])},t.cache={},t.cacheKey=function(t,e){return[t,!!e.asString,!!e.disableLambda,e.delimiters,!!e.modelGet].join("||")},t.compile=function(e,n){n=n||{};var r=t.cacheKey(e,n),i=this.cache[r];if(i){var o=i.partials;for(var s in o)delete o[s].instance;return i}return i=this.generate(this.parse(this.scan(e,n.delimiters),e,n),e,n),this.cache[r]=i}}(e)},function(t,e,n){var r=n(53);r.Template=n(55).Template,r.template=r.Template,t.exports=r},function(t,e,n){!function(t){function e(t,e,n){var r;return e&&"object"==typeof e&&(void 0!==e[t]?r=e[t]:n&&e.get&&"function"==typeof e.get&&(r=e.get(t))),r}function n(t,e,n,r,i,o){function s(){}function a(){}s.prototype=t,a.prototype=t.subs;var u,c=new s;c.subs=new a,c.subsText={},c.buf="",r=r||{},c.stackSubs=r,c.subsText=o;for(u in e)r[u]||(r[u]=e[u]);for(u in r)c.subs[u]=r[u];i=i||{},c.stackPartials=i;for(u in n)i[u]||(i[u]=n[u]);for(u in i)c.partials[u]=i[u];return c}function r(t){return String(null===t||void 0===t?"":t)}function i(t){return t=r(t),l.test(t)?t.replace(o,"&").replace(s,"<").replace(a,">").replace(u,"'").replace(c,"""):t}t.Template=function(t,e,n,r){t=t||{},this.r=t.code||this.r,this.c=n,this.options=r||{},this.text=e||"",this.partials=t.partials||{},this.subs=t.subs||{},this.buf=""},t.Template.prototype={r:function(t,e,n){return""},v:i,t:r,render:function(t,e,n){return this.ri([t],e||{},n)},ri:function(t,e,n){return this.r(t,e,n)},ep:function(t,e){var r=this.partials[t],i=e[r.name];if(r.instance&&r.base==i)return r.instance;if("string"==typeof i){if(!this.c)throw new Error("No compiler available.");i=this.c.compile(i,this.options)}if(!i)return null;if(this.partials[t].base=i,r.subs){e.stackText||(e.stackText={});for(key in r.subs)e.stackText[key]||(e.stackText[key]=void 0!==this.activeSub&&e.stackText[this.activeSub]?e.stackText[this.activeSub]:this.text);i=n(i,r.subs,r.partials,this.stackSubs,this.stackPartials,e.stackText)}return this.partials[t].instance=i,i},rp:function(t,e,n,r){var i=this.ep(t,n);return i?i.ri(e,n,r):""},rs:function(t,e,n){var r=t[t.length-1];if(!h(r))return void n(t,e,this);for(var i=0;i<r.length;i++)t.push(r[i]),n(t,e,this),t.pop()},s:function(t,e,n,r,i,o,s){var a;return(!h(t)||0!==t.length)&&("function"==typeof t&&(t=this.ms(t,e,n,r,i,o,s)),a=!!t,!r&&a&&e&&e.push("object"==typeof t?t:e[e.length-1]),a)},d:function(t,n,r,i){var o,s=t.split("."),a=this.f(s[0],n,r,i),u=this.options.modelGet,c=null;if("."===t&&h(n[n.length-2]))a=n[n.length-1];else for(var l=1;l<s.length;l++)o=e(s[l],a,u),void 0!==o?(c=a,a=o):a="";return!(i&&!a)&&(i||"function"!=typeof a||(n.push(c),a=this.mv(a,n,r),n.pop()),a)},f:function(t,n,r,i){for(var o=!1,s=null,a=!1,u=this.options.modelGet,c=n.length-1;c>=0;c--)if(s=n[c],void 0!==(o=e(t,s,u))){a=!0;break}return a?(i||"function"!=typeof o||(o=this.mv(o,n,r)),o):!i&&""},ls:function(t,e,n,i,o){var s=this.options.delimiters;return this.options.delimiters=o,this.b(this.ct(r(t.call(e,i)),e,n)),this.options.delimiters=s,!1},ct:function(t,e,n){if(this.options.disableLambda)throw new Error("Lambda features disabled.");return this.c.compile(t,this.options).render(e,n)},b:function(t){this.buf+=t},fl:function(){var t=this.buf;return this.buf="",t},ms:function(t,e,n,r,i,o,s){var a,u=e[e.length-1],c=t.call(u);return"function"==typeof c?!!r||(a=this.activeSub&&this.subsText&&this.subsText[this.activeSub]?this.subsText[this.activeSub]:this.text,this.ls(c,u,n,a.substring(i,o),s)):c},mv:function(t,e,n){var i=e[e.length-1],o=t.call(i);return"function"==typeof o?this.ct(r(o.call(i)),i,n):o},sub:function(t,e,n,r){var i=this.subs[t];i&&(this.activeSub=t,i(e,n,this,r),this.activeSub=!1)}};var o=/&/g,s=/</g,a=/>/g,u=/\'/g,c=/\"/g,l=/[&<>\"\']/,h=Array.isArray||function(t){return"[object Array]"===Object.prototype.toString.call(t)}}(e)},function(t,e,n){"use strict";function r(){a&&u&&(a=!1,u.length?f=u.concat(f):h=-1,f.length&&i())}function i(){if(!a){p=!1,a=!0;for(var t=f.length,e=setTimeout(r);t;){for(u=f,f=[];u&&++h<t;)u[h].run();h=-1,t=f.length}u=null,h=-1,a=!1,clearTimeout(e)}}function o(t,e){this.fun=t,this.array=e}function s(t){var e=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)e[n-1]=arguments[n];f.push(new o(t,e)),p||a||(p=!0,c())}for(var a,u,c,l=[n(59),n(58),n(57),n(60),n(61)],h=-1,f=[],p=!1,d=-1,g=l.length;++d<g;)if(l[d]&&l[d].test&&l[d].test()){c=l[d].install(i);break}o.prototype.run=function(){var t=this.fun,e=this.array;switch(e.length){case 0:return t();case 1:return t(e[0]);case 2:return t(e[0],e[1]);case 3:return t(e[0],e[1],e[2]);default:return t.apply(null,e)}},t.exports=s},function(t,e,n){"use strict";(function(t){e.test=function(){return!t.setImmediate&&void 0!==t.MessageChannel},e.install=function(e){var n=new t.MessageChannel;return n.port1.onmessage=e,function(){n.port2.postMessage(0)}}}).call(e,n(3))},function(t,e,n){"use strict";(function(t){var n=t.MutationObserver||t.WebKitMutationObserver;e.test=function(){return n},e.install=function(e){var r=0,i=new n(e),o=t.document.createTextNode("");return i.observe(o,{characterData:!0}),function(){o.data=r=++r%2}}}).call(e,n(3))},function(t,e,n){"use strict";(function(t){e.test=function(){return void 0!==t&&!t.browser},e.install=function(e){return function(){t.nextTick(e)}}}).call(e,n(11))},function(t,e,n){"use strict";(function(t){e.test=function(){return"document"in t&&"onreadystatechange"in t.document.createElement("script")},e.install=function(e){return function(){var n=t.document.createElement("script");return n.onreadystatechange=function(){e(),n.onreadystatechange=null,n.parentNode.removeChild(n),n=null},t.document.documentElement.appendChild(n),e}}}).call(e,n(3))},function(t,e,n){"use strict";e.test=function(){return!0},e.install=function(t){return function(){setTimeout(t,0)}}},function(t,e){function n(t){if(t=String(t),!(t.length>1e4)){var e=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(t);if(e){var n=parseFloat(e[1]);switch((e[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return n*l;case"days":case"day":case"d":return n*c;case"hours":case"hour":case"hrs":case"hr":case"h":return n*u;case"minutes":case"minute":case"mins":case"min":case"m":return n*a;case"seconds":case"second":case"secs":case"sec":case"s":return n*s;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n;default:return}}}}function r(t){return t>=c?Math.round(t/c)+"d":t>=u?Math.round(t/u)+"h":t>=a?Math.round(t/a)+"m":t>=s?Math.round(t/s)+"s":t+"ms"}function i(t){return o(t,c,"day")||o(t,u,"hour")||o(t,a,"minute")||o(t,s,"second")||t+" ms"}function o(t,e,n){if(!(t<e))return t<1.5*e?Math.floor(t/e)+" "+n:Math.ceil(t/e)+" "+n+"s"}var s=1e3,a=60*s,u=60*a,c=24*u,l=365.25*c;t.exports=function(t,e){e=e||{};var o=typeof t;if("string"===o&&t.length>0)return n(t);if("number"===o&&!1===isNaN(t))return e.long?i(t):r(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))}},function(t,e,n){"use strict";var r=Object.prototype.hasOwnProperty,i=Object.prototype.toString,o=Array.prototype.slice,s=n(64),a=Object.prototype.propertyIsEnumerable,u=!a.call({toString:null},"toString"),c=a.call(function(){},"prototype"),l=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],h=function(t){var e=t.constructor;return e&&e.prototype===t},f={$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},p=function(){if("undefined"==typeof window)return!1;for(var t in window)try{if(!f["$"+t]&&r.call(window,t)&&null!==window[t]&&"object"==typeof window[t])try{h(window[t])}catch(t){return!0}}catch(t){return!0}return!1}(),d=function(t){if("undefined"==typeof window||!p)return h(t);try{return h(t)}catch(t){return!1}},g=function(t){var e=null!==t&&"object"==typeof t,n="[object Function]"===i.call(t),o=s(t),a=e&&"[object String]"===i.call(t),h=[];if(!e&&!n&&!o)throw new TypeError("Object.keys called on a non-object");var f=c&&n;if(a&&t.length>0&&!r.call(t,0))for(var p=0;p<t.length;++p)h.push(String(p));if(o&&t.length>0)for(var g=0;g<t.length;++g)h.push(String(g));else for(var m in t)f&&"prototype"===m||!r.call(t,m)||h.push(String(m));if(u)for(var v=d(t),y=0;y<l.length;++y)v&&"constructor"===l[y]||!r.call(t,l[y])||h.push(l[y]);return h};g.shim=function(){if(Object.keys){if(!function(){return 2===(Object.keys(arguments)||"").length}(1,2)){var t=Object.keys;Object.keys=function(e){return t(s(e)?o.call(e):e)}}}else Object.keys=g;return Object.keys||g},t.exports=g},function(t,e,n){"use strict";var r=Object.prototype.toString;t.exports=function(t){var e=r.call(t),n="[object Arguments]"===e;return n||(n="[object Array]"!==e&&null!==t&&"object"==typeof t&&"number"==typeof t.length&&t.length>=0&&"[object Function]"===r.call(t.callee)),n}},function(t,e,n){"use strict";function r(t,e){if(t.map)return t.map(e);for(var n=[],r=0;r<t.length;r++)n.push(e(t[r],r));return n}var i=function(t){switch(typeof t){case"string":return t;case"boolean":return t?"true":"false";case"number":return isFinite(t)?t:"";default:return""}};t.exports=function(t,e,n,a){return e=e||"&",n=n||"=",null===t&&(t=void 0),"object"==typeof t?r(s(t),function(s){var a=encodeURIComponent(i(s))+n;return o(t[s])?r(t[s],function(t){return a+encodeURIComponent(i(t))}).join(e):a+encodeURIComponent(i(t[s]))}).join(e):a?encodeURIComponent(i(a))+n+encodeURIComponent(i(t)):""};var o=Array.isArray||function(t){return"[object Array]"===Object.prototype.toString.call(t)},s=Object.keys||function(t){var e=[];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&e.push(n);return e}},function(t,e,n){"use strict";function r(t){var e=function(){for(var e=arguments.length,n=Array(e),r=0;r<e;r++)n[r]=arguments[r];return new(i.apply(t,[null].concat(n)))};return e.__proto__=t,e.prototype=t.prototype,e}var i=Function.prototype.bind;t.exports=r},function(t,e){}])})},function(t,e){!function(e,n){var r=function(t,e){"use strict";if(e.getElementsByClassName){var n,r=e.documentElement,i=t.Date,o=t.HTMLPictureElement,s=t.addEventListener,a=t.setTimeout,u=t.requestAnimationFrame||a,c=t.requestIdleCallback,l=/^picture$/i,h=["load","error","lazyincluded","_lazyloaded"],f={},p=Array.prototype.forEach,d=function(t,e){return f[e]||(f[e]=new RegExp("(\\s|^)"+e+"(\\s|$)")),f[e].test(t.getAttribute("class")||"")&&f[e]},g=function(t,e){d(t,e)||t.setAttribute("class",(t.getAttribute("class")||"").trim()+" "+e)},m=function(t,e){var n;(n=d(t,e))&&t.setAttribute("class",(t.getAttribute("class")||"").replace(n," "))},v=function(t,e,n){var r=n?"addEventListener":"removeEventListener";n&&v(t,e),h.forEach(function(n){t[r](n,e)})},y=function(t,n,r,i,o){var s=e.createEvent("CustomEvent");return s.initCustomEvent(n,!i,!o,r||{}),t.dispatchEvent(s),s},b=function(e,r){var i;!o&&(i=t.picturefill||n.pf)?i({reevaluate:!0,elements:[e]}):r&&r.src&&(e.src=r.src)},w=function(t,e){return(getComputedStyle(t,null)||{})[e]},_=function(t,e,r){for(r=r||t.offsetWidth;r<n.minSize&&e&&!t._lazysizesWidth;)r=e.offsetWidth,e=e.parentNode;return r},x=function(){var t,n,r=[],i=[],o=r,s=function(){var e=o;for(o=r.length?i:r,t=!0,n=!1;e.length;)e.shift()();t=!1},c=function(r,i){t&&!i?r.apply(this,arguments):(o.push(r),n||(n=!0,(e.hidden?a:u)(s)))};return c._lsFlush=s,c}(),S=function(t,e){return e?function(){x(t)}:function(){var e=this,n=arguments;x(function(){t.apply(e,n)})}},C=function(t){var e,n=0,r=666,o=function(){e=!1,n=i.now(),t()},s=c?function(){c(o,{timeout:r}),666!==r&&(r=666)}:S(function(){a(o)},!0);return function(t){var o;(t=!0===t)&&(r=44),e||(e=!0,o=125-(i.now()-n),o<0&&(o=0),t||o<9&&c?s():a(s,o))}},A=function(t){var e,n,r=function(){e=null,t()},o=function(){var t=i.now()-n;t<99?a(o,99-t):(c||r)(r)};return function(){n=i.now(),e||(e=a(o,99))}},E=function(){var o,u,c,h,f,_,E,k,O,N,I,j,L,P,R,D=/^img$/i,$=/^iframe$/i,M="onscroll"in t&&!/glebot/.test(navigator.userAgent),q=0,H=0,F=-1,z=function(t){H--,t&&t.target&&v(t.target,z),(!t||H<0||!t.target)&&(H=0)},B=function(t,n){var i,o=t,s="hidden"==w(e.body,"visibility")||"hidden"!=w(t,"visibility");for(O-=n,j+=n,N-=n,I+=n;s&&(o=o.offsetParent)&&o!=e.body&&o!=r;)(s=(w(o,"opacity")||1)>0)&&"visible"!=w(o,"overflow")&&(i=o.getBoundingClientRect(),s=I>i.left&&N<i.right&&j>i.top-1&&O<i.bottom+1);return s},U=function(){var t,i,s,a,l,h,p,d,g;if((f=n.loadMode)&&H<8&&(t=o.length)){i=0,F++,null==P&&("expand"in n||(n.expand=r.clientHeight>500&&r.clientWidth>500?500:370),L=n.expand,P=L*n.expFactor),q<P&&H<1&&F>2&&f>2&&!e.hidden?(q=P,F=0):q=f>1&&F>1&&H<6?L:0;for(;i<t;i++)if(o[i]&&!o[i]._lazyRace)if(M)if((d=o[i].getAttribute("data-expand"))&&(h=1*d)||(h=q),g!==h&&(E=innerWidth+h*R,k=innerHeight+h,p=-1*h,g=h),s=o[i].getBoundingClientRect(),(j=s.bottom)>=p&&(O=s.top)<=k&&(I=s.right)>=p*R&&(N=s.left)<=E&&(j||I||N||O)&&(c&&H<3&&!d&&(f<3||F<4)||B(o[i],h))){if(Y(o[i]),l=!0,H>9)break}else!l&&c&&!a&&H<4&&F<4&&f>2&&(u[0]||n.preloadAfterLoad)&&(u[0]||!d&&(j||I||N||O||"auto"!=o[i].getAttribute(n.sizesAttr)))&&(a=u[0]||o[i]);else Y(o[i]);a&&!l&&Y(a)}},V=C(U),K=function(t){g(t.target,n.loadedClass),m(t.target,n.loadingClass),v(t.target,W)},J=S(K),W=function(t){J({target:t.target})},X=function(t,e){try{t.contentWindow.location.replace(e)}catch(n){t.src=e}},Q=function(t){var e,r,i=t.getAttribute(n.srcsetAttr);(e=n.customMedia[t.getAttribute("data-media")||t.getAttribute("media")])&&t.setAttribute("media",e),i&&t.setAttribute("srcset",i),e&&(r=t.parentNode,r.insertBefore(t.cloneNode(),t),r.removeChild(t))},G=S(function(t,e,r,i,o){var s,u,c,f,d,w;(d=y(t,"lazybeforeunveil",e)).defaultPrevented||(i&&(r?g(t,n.autosizesClass):t.setAttribute("sizes",i)),u=t.getAttribute(n.srcsetAttr),s=t.getAttribute(n.srcAttr),o&&(c=t.parentNode,f=c&&l.test(c.nodeName||"")),w=e.firesLoad||"src"in t&&(u||s||f),d={target:t},w&&(v(t,z,!0),clearTimeout(h),h=a(z,2500),g(t,n.loadingClass),v(t,W,!0)),f&&p.call(c.getElementsByTagName("source"),Q),u?t.setAttribute("srcset",u):s&&!f&&($.test(t.nodeName)?X(t,s):t.src=s),(u||f)&&b(t,{src:s})),t._lazyRace&&delete t._lazyRace,m(t,n.lazyClass),x(function(){(!w||t.complete&&t.naturalWidth>1)&&(w?z(d):H--,K(d))},!0)}),Y=function(t){var e,r=D.test(t.nodeName),i=r&&(t.getAttribute(n.sizesAttr)||t.getAttribute("sizes")),o="auto"==i;(!o&&c||!r||!t.src&&!t.srcset||t.complete||d(t,n.errorClass))&&(e=y(t,"lazyunveilread").detail,o&&T.updateElem(t,!0,t.offsetWidth),t._lazyRace=!0,H++,G(t,e,o,i,r))},Z=function(){if(!c){if(i.now()-_<999)return void a(Z,999);var t=A(function(){n.loadMode=3,V()});c=!0,n.loadMode=3,V(),s("scroll",function(){3==n.loadMode&&(n.loadMode=2),t()},!0)}};return{_:function(){_=i.now(),o=e.getElementsByClassName(n.lazyClass),u=e.getElementsByClassName(n.lazyClass+" "+n.preloadClass),R=n.hFac,s("scroll",V,!0),s("resize",V,!0),t.MutationObserver?new MutationObserver(V).observe(r,{childList:!0,subtree:!0,attributes:!0}):(r.addEventListener("DOMNodeInserted",V,!0),r.addEventListener("DOMAttrModified",V,!0),setInterval(V,999)),s("hashchange",V,!0),["focus","mouseover","click","load","transitionend","animationend","webkitAnimationEnd"].forEach(function(t){e.addEventListener(t,V,!0)}),/d$|^c/.test(e.readyState)?Z():(s("load",Z),e.addEventListener("DOMContentLoaded",V),a(Z,2e4)),o.length?(U(),x._lsFlush()):V()},checkElems:V,unveil:Y}}(),T=function(){var t,r=S(function(t,e,n,r){var i,o,s;if(t._lazysizesWidth=r,r+="px",t.setAttribute("sizes",r),l.test(e.nodeName||""))for(i=e.getElementsByTagName("source"),o=0,s=i.length;o<s;o++)i[o].setAttribute("sizes",r);n.detail.dataAttr||b(t,n.detail)}),i=function(t,e,n){var i,o=t.parentNode;o&&(n=_(t,o,n),i=y(t,"lazybeforesizes",{width:n,dataAttr:!!e}),i.defaultPrevented||(n=i.detail.width)&&n!==t._lazysizesWidth&&r(t,o,i,n))},o=function(){var e,n=t.length;if(n)for(e=0;e<n;e++)i(t[e])},a=A(o);return{_:function(){t=e.getElementsByClassName(n.autosizesClass),s("resize",a)},checkElems:a,updateElem:i}}(),k=function(){k.i||(k.i=!0,T._(),E._())};return function(){var e,r={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};n=t.lazySizesConfig||t.lazysizesConfig||{};for(e in r)e in n||(n[e]=r[e]);t.lazySizesConfig=n,a(function(){n.init&&k()})}(),{cfg:n,autoSizer:T,loader:E,init:k,uP:b,aC:g,rC:m,hC:d,fire:y,gW:_,rAF:x}}}(e,e.document);e.lazySizes=r,"object"==typeof t&&t.exports&&(t.exports=r)}(window)},function(t,e){!function(t,e){"use strict";function n(t,n){if(!o[t]){var r=e.createElement(n?"link":"script"),i=e.getElementsByTagName("script")[0];n?(r.rel="stylesheet",r.href=t):r.src=t,o[t]=!0,o[r.src||r.href]=!0,i.parentNode.insertBefore(r,i)}}var r,i,o={};e.addEventListener&&(i=/\(|\)|\s|'/,r=function(t,n){var r=e.createElement("img");r.onload=function(){r.onload=null,r.onerror=null,r=null,n()},r.onerror=r.onload,r.src=t,r&&r.complete&&r.onload&&r.onload()},addEventListener("lazybeforeunveil",function(t){var e,o,s,a;t.defaultPrevented||("none"==t.target.preload&&(t.target.preload="auto"),e=t.target.getAttribute("data-link"),e&&n(e,!0),e=t.target.getAttribute("data-script"),e&&n(e),e=t.target.getAttribute("data-require"),e&&(lazySizes.cfg.requireJs?lazySizes.cfg.requireJs([e]):n(e)),s=t.target.getAttribute("data-bg"),s&&(t.detail.firesLoad=!0,o=function(){t.target.style.backgroundImage="url("+(i.test(s)?JSON.stringify(s):s)+")",t.detail.firesLoad=!1,lazySizes.fire(t.target,"_lazyloaded",{},!0,!0)},r(s,o)),(a=t.target.getAttribute("data-poster"))&&(t.detail.firesLoad=!0,o=function(){t.target.poster=a,t.detail.firesLoad=!1,lazySizes.fire(t.target,"_lazyloaded",{},!0,!0)},r(a,o)))},!1))}(window,document)},function(t,e,n){/**
++ * scrolldir - Vertical scroll direction in CSS
++ * @version v1.2.17
++ * @link https://github.com/dollarshaveclub/scrolldir.git
++ * @author Patrick Fisher <patrick@pwfisher.com>
++ * @license MIT
++**/
++!function(t,e){e()}(0,function(){"use strict";function t(){var t=i.scrollY||i.pageYOffset,e=f.timeStamp,n="down"===s?Math.max:Math.min,g=a.offsetHeight-i.innerHeight;if(t=Math.max(0,t),t=Math.min(g,t),h.unshift({y:t,t:e}),h.pop(),t===n(p,t))return d=e,void(p=t);var m=e-c;if(m>d){p=t;for(var v=0;v<u&&h[v]&&!(h[v].t<m);v+=1)p=n(p,h[v].y)}Math.abs(t-p)>l&&(p=t,d=e,s="down"===s?"up":"down",r.setAttribute(o,s))}function e(e){return f=e,i.requestAnimationFrame(t)}var n={el:document.documentElement,win:window,attribute:"data-scrolldir",dir:"down"},r=void 0,i=void 0,o=void 0,s=void 0,a=document.body,u=32,c=512,l=64,h=Array(u),f=void 0,p=void 0,d=0;!function(t){r=n.el,i=n.win,o=n.attribute,s=n.dir,p=i.scrollY||i.pageYOffset,r.setAttribute(o,s),i.addEventListener("scroll",e)}()})}]);
--- /dev/null
--- /dev/null
++html{line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,footer,header,nav,section{display:block}h1{font-size:2em;margin:.67em 0}figcaption,figure,main{display:block}figure{margin:1em 40px}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent;-webkit-text-decoration-skip:objects}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:inherit;font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}dfn{font-style:italic}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{display:inline-block;vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{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-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details,menu{display:block}summary{display:list-item}canvas{display:inline-block}[hidden],template{display:none}.border-box,a,article,body,code,dd,div,dl,dt,fieldset,footer,form,h1,h2,h3,h4,h5,h6,header,html,input[type=email],input[type=number],input[type=password],input[type=tel],input[type=text],input[type=url],legend,li,main,ol,p,pre,section,table,td,textarea,th,tr,ul{box-sizing:border-box}img{max-width:100%}.cover{background-size:cover!important}.contain{background-size:contain!important}@media screen and (min-width:30em){.cover-ns{background-size:cover!important}.contain-ns{background-size:contain!important}}@media screen and (min-width:30em) and (max-width:60em){.cover-m{background-size:cover!important}.contain-m{background-size:contain!important}}@media screen and (min-width:60em){.cover-l{background-size:cover!important}.contain-l{background-size:contain!important}}.bg-center{background-position:50%}.bg-center,.bg-top{background-repeat:no-repeat}.bg-top{background-position:top}.bg-right{background-position:100%}.bg-bottom,.bg-right{background-repeat:no-repeat}.bg-bottom{background-position:bottom}.bg-left{background-repeat:no-repeat;background-position:0}@media screen and (min-width:30em){.bg-center-ns{background-position:50%}.bg-center-ns,.bg-top-ns{background-repeat:no-repeat}.bg-top-ns{background-position:top}.bg-right-ns{background-position:100%}.bg-bottom-ns,.bg-right-ns{background-repeat:no-repeat}.bg-bottom-ns{background-position:bottom}.bg-left-ns{background-repeat:no-repeat;background-position:0}}@media screen and (min-width:30em) and (max-width:60em){.bg-center-m{background-position:50%}.bg-center-m,.bg-top-m{background-repeat:no-repeat}.bg-top-m{background-position:top}.bg-right-m{background-position:100%}.bg-bottom-m,.bg-right-m{background-repeat:no-repeat}.bg-bottom-m{background-position:bottom}.bg-left-m{background-repeat:no-repeat;background-position:0}}@media screen and (min-width:60em){.bg-center-l{background-position:50%}.bg-center-l,.bg-top-l{background-repeat:no-repeat}.bg-top-l{background-position:top}.bg-right-l{background-position:100%}.bg-bottom-l,.bg-right-l{background-repeat:no-repeat}.bg-bottom-l{background-position:bottom}.bg-left-l{background-repeat:no-repeat;background-position:0}}.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:30em){.ba-ns{border-style:solid;border-width:1px}.bt-ns{border-top-style:solid;border-top-width:1px}.br-ns{border-right-style:solid;border-right-width:1px}.bb-ns{border-bottom-style:solid;border-bottom-width:1px}.bl-ns{border-left-style:solid;border-left-width:1px}.bn-ns{border-style:none;border-width:0}}@media screen and (min-width:30em) and (max-width:60em){.ba-m{border-style:solid;border-width:1px}.bt-m{border-top-style:solid;border-top-width:1px}.br-m{border-right-style:solid;border-right-width:1px}.bb-m{border-bottom-style:solid;border-bottom-width:1px}.bl-m{border-left-style:solid;border-left-width:1px}.bn-m{border-style:none;border-width:0}}@media screen and (min-width:60em){.ba-l{border-style:solid;border-width:1px}.bt-l{border-top-style:solid;border-top-width:1px}.br-l{border-right-style:solid;border-right-width:1px}.bb-l{border-bottom-style:solid;border-bottom-width:1px}.bl-l{border-left-style:solid;border-left-width:1px}.bn-l{border-style:none;border-width:0}}.b--black{border-color:#000}.b--near-black{border-color:#111}.b--dark-gray{border-color:#333}.b--mid-gray{border-color:#555}.b--gray{border-color:#777}.b--silver{border-color:#999}.b--light-silver{border-color:#aaa}.b--moon-gray{border-color:#ccc}.b--light-gray{border-color:#eee}.b--near-white{border-color:#f4f4f4}.b--white{border-color:#fff}.b--white-90{border-color:hsla(0,0%,100%,.9)}.b--white-80{border-color:hsla(0,0%,100%,.8)}.b--white-70{border-color:hsla(0,0%,100%,.7)}.b--white-60{border-color:hsla(0,0%,100%,.6)}.b--white-50{border-color:hsla(0,0%,100%,.5)}.b--white-40{border-color:hsla(0,0%,100%,.4)}.b--white-30{border-color:hsla(0,0%,100%,.3)}.b--white-20{border-color:hsla(0,0%,100%,.2)}.b--white-10{border-color:hsla(0,0%,100%,.1)}.b--white-05{border-color:hsla(0,0%,100%,.05)}.b--white-025{border-color:hsla(0,0%,100%,.025)}.b--white-0125{border-color:hsla(0,0%,100%,.0125)}.b--black-90{border-color:rgba(0,0,0,.9)}.b--black-80{border-color:rgba(0,0,0,.8)}.b--black-70{border-color:rgba(0,0,0,.7)}.b--black-60{border-color:rgba(0,0,0,.6)}.b--black-50{border-color:rgba(0,0,0,.5)}.b--black-40{border-color:rgba(0,0,0,.4)}.b--black-30{border-color:rgba(0,0,0,.3)}.b--black-20{border-color:rgba(0,0,0,.2)}.b--black-10{border-color:rgba(0,0,0,.1)}.b--black-05{border-color:rgba(0,0,0,.05)}.b--black-025{border-color:rgba(0,0,0,.025)}.b--black-0125{border-color:rgba(0,0,0,.0125)}.b--dark-red{border-color:#e7040f}.b--red{border-color:#ff4136}.b--light-red{border-color:#ff725c}.b--orange{border-color:#ff6300}.b--gold{border-color:#ffb700}.b--yellow{border-color:gold}.b--light-yellow{border-color:#fbf1a9}.b--purple{border-color:#5e2ca5}.b--light-purple{border-color:#a463f2}.b--dark-pink{border-color:#d5008f}.b--hot-pink{border-color:#ff41b4}.b--pink{border-color:#ff80cc}.b--light-pink{border-color:#ffa3d7}.b--dark-green{border-color:#137752}.b--green{border-color:#19a974}.b--light-green{border-color:#9eebcf}.b--navy{border-color:#001b44}.b--dark-blue{border-color:#00449e}.b--blue{border-color:#0594cb}.b--light-blue{border-color:#96ccff}.b--lightest-blue{border-color:#cdecff}.b--washed-blue{border-color:#f6fffe}.b--washed-green{border-color:#e8fdf5}.b--washed-yellow{border-color:#fffceb}.b--washed-red{border-color:#ffdfdf}.b--transparent{border-color:transparent}.b--inherit{border-color:inherit}.br0{border-radius:0}.br1{border-radius:.125rem}.br2{border-radius:.25rem}.br3{border-radius:.5rem}.br4{border-radius:1rem}.br-100{border-radius:100%}.br-pill{border-radius:9999px}.br--bottom{border-top-left-radius:0;border-top-right-radius:0}.br--top{border-bottom-right-radius:0}.br--right,.br--top{border-bottom-left-radius:0}.br--right{border-top-left-radius:0}.br--left{border-top-right-radius:0;border-bottom-right-radius:0}@media screen and (min-width:30em){.br0-ns{border-radius:0}.br1-ns{border-radius:.125rem}.br2-ns{border-radius:.25rem}.br3-ns{border-radius:.5rem}.br4-ns{border-radius:1rem}.br-100-ns{border-radius:100%}.br-pill-ns{border-radius:9999px}.br--bottom-ns{border-top-left-radius:0;border-top-right-radius:0}.br--top-ns{border-bottom-right-radius:0}.br--right-ns,.br--top-ns{border-bottom-left-radius:0}.br--right-ns{border-top-left-radius:0}.br--left-ns{border-top-right-radius:0;border-bottom-right-radius:0}}@media screen and (min-width:30em) and (max-width:60em){.br0-m{border-radius:0}.br1-m{border-radius:.125rem}.br2-m{border-radius:.25rem}.br3-m{border-radius:.5rem}.br4-m{border-radius:1rem}.br-100-m{border-radius:100%}.br-pill-m{border-radius:9999px}.br--bottom-m{border-top-left-radius:0;border-top-right-radius:0}.br--top-m{border-bottom-right-radius:0}.br--right-m,.br--top-m{border-bottom-left-radius:0}.br--right-m{border-top-left-radius:0}.br--left-m{border-top-right-radius:0;border-bottom-right-radius:0}}@media screen and (min-width:60em){.br0-l{border-radius:0}.br1-l{border-radius:.125rem}.br2-l{border-radius:.25rem}.br3-l{border-radius:.5rem}.br4-l{border-radius:1rem}.br-100-l{border-radius:100%}.br-pill-l{border-radius:9999px}.br--bottom-l{border-top-left-radius:0;border-top-right-radius:0}.br--top-l{border-bottom-right-radius:0}.br--right-l,.br--top-l{border-bottom-left-radius:0}.br--right-l{border-top-left-radius:0}.br--left-l{border-top-right-radius:0;border-bottom-right-radius:0}}.b--dotted{border-style:dotted}.b--dashed{border-style:dashed}.b--solid{border-style:solid}.b--none{border-style:none}@media screen and (min-width:30em){.b--dotted-ns{border-style:dotted}.b--dashed-ns{border-style:dashed}.b--solid-ns{border-style:solid}.b--none-ns{border-style:none}}@media screen and (min-width:30em) and (max-width:60em){.b--dotted-m{border-style:dotted}.b--dashed-m{border-style:dashed}.b--solid-m{border-style:solid}.b--none-m{border-style:none}}@media screen and (min-width:60em){.b--dotted-l{border-style:dotted}.b--dashed-l{border-style:dashed}.b--solid-l{border-style:solid}.b--none-l{border-style:none}}.bw0{border-width:0}.bw1{border-width:.125rem}.bw2{border-width:.25rem}.bw3{border-width:.5rem}.bw4{border-width:1rem}.bw5{border-width:2rem}.bt-0{border-top-width:0}.br-0{border-right-width:0}.bb-0{border-bottom-width:0}.bl-0{border-left-width:0}@media screen and (min-width:30em){.bw0-ns{border-width:0}.bw1-ns{border-width:.125rem}.bw2-ns{border-width:.25rem}.bw3-ns{border-width:.5rem}.bw4-ns{border-width:1rem}.bw5-ns{border-width:2rem}.bt-0-ns{border-top-width:0}.br-0-ns{border-right-width:0}.bb-0-ns{border-bottom-width:0}.bl-0-ns{border-left-width:0}}@media screen and (min-width:30em) and (max-width:60em){.bw0-m{border-width:0}.bw1-m{border-width:.125rem}.bw2-m{border-width:.25rem}.bw3-m{border-width:.5rem}.bw4-m{border-width:1rem}.bw5-m{border-width:2rem}.bt-0-m{border-top-width:0}.br-0-m{border-right-width:0}.bb-0-m{border-bottom-width:0}.bl-0-m{border-left-width:0}}@media screen and (min-width:60em){.bw0-l{border-width:0}.bw1-l{border-width:.125rem}.bw2-l{border-width:.25rem}.bw3-l{border-width:.5rem}.bw4-l{border-width:1rem}.bw5-l{border-width:2rem}.bt-0-l{border-top-width:0}.br-0-l{border-right-width:0}.bb-0-l{border-bottom-width:0}.bl-0-l{border-left-width:0}}.shadow-1{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.shadow-2{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.shadow-3{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.shadow-4{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.shadow-5{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}@media screen and (min-width:30em){.shadow-1-ns{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.shadow-2-ns{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.shadow-3-ns{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.shadow-4-ns{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.shadow-5-ns{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}}@media screen and (min-width:30em) and (max-width:60em){.shadow-1-m{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.shadow-2-m{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.shadow-3-m{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.shadow-4-m{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.shadow-5-m{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}}@media screen and (min-width:60em){.shadow-1-l{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.shadow-2-l{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.shadow-3-l{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.shadow-4-l{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.shadow-5-l{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}}.top-0{top:0}.right-0{right:0}.bottom-0{bottom:0}.left-0{left:0}.top-1{top:1rem}.right-1{right:1rem}.bottom-1{bottom:1rem}.left-1{left:1rem}.top-2{top:2rem}.right-2{right:2rem}.bottom-2{bottom:2rem}.left-2{left:2rem}.top--1{top:-1rem}.right--1{right:-1rem}.bottom--1{bottom:-1rem}.left--1{left:-1rem}.top--2{top:-2rem}.right--2{right:-2rem}.bottom--2{bottom:-2rem}.left--2{left:-2rem}.absolute--fill{top:0;right:0;bottom:0;left:0}@media screen and (min-width:30em){.top-0-ns{top:0}.left-0-ns{left:0}.right-0-ns{right:0}.bottom-0-ns{bottom:0}.top-1-ns{top:1rem}.left-1-ns{left:1rem}.right-1-ns{right:1rem}.bottom-1-ns{bottom:1rem}.top-2-ns{top:2rem}.left-2-ns{left:2rem}.right-2-ns{right:2rem}.bottom-2-ns{bottom:2rem}.top--1-ns{top:-1rem}.right--1-ns{right:-1rem}.bottom--1-ns{bottom:-1rem}.left--1-ns{left:-1rem}.top--2-ns{top:-2rem}.right--2-ns{right:-2rem}.bottom--2-ns{bottom:-2rem}.left--2-ns{left:-2rem}.absolute--fill-ns{top:0;right:0;bottom:0;left:0}}@media screen and (min-width:30em) and (max-width:60em){.top-0-m{top:0}.left-0-m{left:0}.right-0-m{right:0}.bottom-0-m{bottom:0}.top-1-m{top:1rem}.left-1-m{left:1rem}.right-1-m{right:1rem}.bottom-1-m{bottom:1rem}.top-2-m{top:2rem}.left-2-m{left:2rem}.right-2-m{right:2rem}.bottom-2-m{bottom:2rem}.top--1-m{top:-1rem}.right--1-m{right:-1rem}.bottom--1-m{bottom:-1rem}.left--1-m{left:-1rem}.top--2-m{top:-2rem}.right--2-m{right:-2rem}.bottom--2-m{bottom:-2rem}.left--2-m{left:-2rem}.absolute--fill-m{top:0;right:0;bottom:0;left:0}}@media screen and (min-width:60em){.top-0-l{top:0}.left-0-l{left:0}.right-0-l{right:0}.bottom-0-l{bottom:0}.top-1-l{top:1rem}.left-1-l{left:1rem}.right-1-l{right:1rem}.bottom-1-l{bottom:1rem}.top-2-l{top:2rem}.left-2-l{left:2rem}.right-2-l{right:2rem}.bottom-2-l{bottom:2rem}.top--1-l{top:-1rem}.right--1-l{right:-1rem}.bottom--1-l{bottom:-1rem}.left--1-l{left:-1rem}.top--2-l{top:-2rem}.right--2-l{right:-2rem}.bottom--2-l{bottom:-2rem}.left--2-l{left:-2rem}.absolute--fill-l{top:0;right:0;bottom:0;left:0}}.cf:after,.cf:before{content:" ";display:table}.cf:after{clear:both}.cf{*zoom:1}.cl{clear:left}.cr{clear:right}.cb{clear:both}.cn{clear:none}@media screen and (min-width:30em){.cl-ns{clear:left}.cr-ns{clear:right}.cb-ns{clear:both}.cn-ns{clear:none}}@media screen and (min-width:30em) and (max-width:60em){.cl-m{clear:left}.cr-m{clear:right}.cb-m{clear:both}.cn-m{clear:none}}@media screen and (min-width:60em){.cl-l{clear:left}.cr-l{clear:right}.cb-l{clear:both}.cn-l{clear:none}}.dn{display:none}.di{display:inline}.db{display:block}.dib{display:inline-block}.dit{display:inline-table}.dt{display:table}.dtc{display:table-cell}.dt-row{display:table-row}.dt-row-group{display:table-row-group}.dt-column{display:table-column}.dt-column-group{display:table-column-group}.dt--fixed{table-layout:fixed;width:100%}@media screen and (min-width:30em){.dn-ns{display:none}.di-ns{display:inline}.db-ns{display:block}.dib-ns{display:inline-block}.dit-ns{display:inline-table}.dt-ns{display:table}.dtc-ns{display:table-cell}.dt-row-ns{display:table-row}.dt-row-group-ns{display:table-row-group}.dt-column-ns{display:table-column}.dt-column-group-ns{display:table-column-group}.dt--fixed-ns{table-layout:fixed;width:100%}}@media screen and (min-width:30em) and (max-width:60em){.dn-m{display:none}.di-m{display:inline}.db-m{display:block}.dib-m{display:inline-block}.dit-m{display:inline-table}.dt-m{display:table}.dtc-m{display:table-cell}.dt-row-m{display:table-row}.dt-row-group-m{display:table-row-group}.dt-column-m{display:table-column}.dt-column-group-m{display:table-column-group}.dt--fixed-m{table-layout:fixed;width:100%}}@media screen and (min-width:60em){.dn-l{display:none}.di-l{display:inline}.db-l{display:block}.dib-l{display:inline-block}.dit-l{display:inline-table}.dt-l{display:table}.dtc-l{display:table-cell}.dt-row-l{display:table-row}.dt-row-group-l{display:table-row-group}.dt-column-l{display:table-column}.dt-column-group-l{display:table-column-group}.dt--fixed-l{table-layout:fixed;width:100%}}.flex{display:-webkit-box;display:-ms-flexbox;display:flex}.inline-flex{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-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;-ms-flex-direction:column;flex-direction:column}.flex-column,.flex-row{-webkit-box-direction:normal}.flex-row{-webkit-box-orient:horizontal;-ms-flex-direction:row;flex-direction:row}.flex-wrap{-ms-flex-wrap:wrap;flex-wrap:wrap}.flex-nowrap{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse;flex-wrap:wrap-reverse}.flex-column-reverse{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}.flex-row-reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.items-start{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.items-end{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}.items-center{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.items-baseline{-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline}.items-stretch{-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.self-start{-ms-flex-item-align:start;align-self:flex-start}.self-end{-ms-flex-item-align:end;align-self:flex-end}.self-center{-ms-flex-item-align:center;-ms-grid-row-align:center;align-self:center}.self-baseline{-ms-flex-item-align:baseline;align-self:baseline}.self-stretch{-ms-flex-item-align:stretch;-ms-grid-row-align:stretch;align-self: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}.justify-around{-ms-flex-pack:distribute;justify-content:space-around}.content-start{-ms-flex-line-pack:start;align-content:flex-start}.content-end{-ms-flex-line-pack:end;align-content:flex-end}.content-center{-ms-flex-line-pack:center;align-content:center}.content-between{-ms-flex-line-pack:justify;align-content:space-between}.content-around{-ms-flex-line-pack:distribute;align-content:space-around}.content-stretch{-ms-flex-line-pack:stretch;align-content:stretch}.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}.order-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-last{-webkit-box-ordinal-group:100000;-ms-flex-order:99999;order:99999}@media screen and (min-width:30em){.flex-ns{display:-webkit-box;display:-ms-flexbox;display:flex}.inline-flex-ns{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.flex-auto-ns{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;min-width:0;min-height:0}.flex-none-ns{-webkit-box-flex:0;-ms-flex:none;flex:none}.flex-column-ns{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.flex-row-ns{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.flex-wrap-ns{-ms-flex-wrap:wrap;flex-wrap:wrap}.flex-nowrap-ns{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.flex-wrap-reverse-ns{-ms-flex-wrap:wrap-reverse;flex-wrap:wrap-reverse}.flex-column-reverse-ns{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}.flex-row-reverse-ns{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.items-start-ns{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.items-end-ns{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}.items-center-ns{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.items-baseline-ns{-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline}.items-stretch-ns{-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.self-start-ns{-ms-flex-item-align:start;align-self:flex-start}.self-end-ns{-ms-flex-item-align:end;align-self:flex-end}.self-center-ns{-ms-flex-item-align:center;-ms-grid-row-align:center;align-self:center}.self-baseline-ns{-ms-flex-item-align:baseline;align-self:baseline}.self-stretch-ns{-ms-flex-item-align:stretch;-ms-grid-row-align:stretch;align-self:stretch}.justify-start-ns{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.justify-end-ns{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.justify-center-ns{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.justify-between-ns{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.justify-around-ns{-ms-flex-pack:distribute;justify-content:space-around}.content-start-ns{-ms-flex-line-pack:start;align-content:flex-start}.content-end-ns{-ms-flex-line-pack:end;align-content:flex-end}.content-center-ns{-ms-flex-line-pack:center;align-content:center}.content-between-ns{-ms-flex-line-pack:justify;align-content:space-between}.content-around-ns{-ms-flex-line-pack:distribute;align-content:space-around}.content-stretch-ns{-ms-flex-line-pack:stretch;align-content:stretch}.order-0-ns{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-1-ns{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-2-ns{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-3-ns{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-4-ns{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-5-ns{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-6-ns{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-7-ns{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-8-ns{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-last-ns{-webkit-box-ordinal-group:100000;-ms-flex-order:99999;order:99999}}@media screen and (min-width:30em) and (max-width:60em){.flex-m{display:-webkit-box;display:-ms-flexbox;display:flex}.inline-flex-m{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.flex-auto-m{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;min-width:0;min-height:0}.flex-none-m{-webkit-box-flex:0;-ms-flex:none;flex:none}.flex-column-m{-webkit-box-orient:vertical;-ms-flex-direction:column;flex-direction:column}.flex-column-m,.flex-row-m{-webkit-box-direction:normal}.flex-row-m{-webkit-box-orient:horizontal;-ms-flex-direction:row;flex-direction:row}.flex-wrap-m{-ms-flex-wrap:wrap;flex-wrap:wrap}.flex-nowrap-m{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.flex-wrap-reverse-m{-ms-flex-wrap:wrap-reverse;flex-wrap:wrap-reverse}.flex-column-reverse-m{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}.flex-row-reverse-m{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.items-start-m{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.items-end-m{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}.items-center-m{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.items-baseline-m{-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline}.items-stretch-m{-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.self-start-m{-ms-flex-item-align:start;align-self:flex-start}.self-end-m{-ms-flex-item-align:end;align-self:flex-end}.self-center-m{-ms-flex-item-align:center;-ms-grid-row-align:center;align-self:center}.self-baseline-m{-ms-flex-item-align:baseline;align-self:baseline}.self-stretch-m{-ms-flex-item-align:stretch;-ms-grid-row-align:stretch;align-self:stretch}.justify-start-m{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.justify-end-m{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.justify-center-m{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.justify-between-m{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.justify-around-m{-ms-flex-pack:distribute;justify-content:space-around}.content-start-m{-ms-flex-line-pack:start;align-content:flex-start}.content-end-m{-ms-flex-line-pack:end;align-content:flex-end}.content-center-m{-ms-flex-line-pack:center;align-content:center}.content-between-m{-ms-flex-line-pack:justify;align-content:space-between}.content-around-m{-ms-flex-line-pack:distribute;align-content:space-around}.content-stretch-m{-ms-flex-line-pack:stretch;align-content:stretch}.order-0-m{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-1-m{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-2-m{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-3-m{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-4-m{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-5-m{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-6-m{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-7-m{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-8-m{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-last-m{-webkit-box-ordinal-group:100000;-ms-flex-order:99999;order:99999}}@media screen and (min-width:60em){.flex-l{display:-webkit-box;display:-ms-flexbox;display:flex}.inline-flex-l{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.flex-auto-l{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;min-width:0;min-height:0}.flex-none-l{-webkit-box-flex:0;-ms-flex:none;flex:none}.flex-column-l{-webkit-box-orient:vertical;-ms-flex-direction:column;flex-direction:column}.flex-column-l,.flex-row-l{-webkit-box-direction:normal}.flex-row-l{-webkit-box-orient:horizontal;-ms-flex-direction:row;flex-direction:row}.flex-wrap-l{-ms-flex-wrap:wrap;flex-wrap:wrap}.flex-nowrap-l{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.flex-wrap-reverse-l{-ms-flex-wrap:wrap-reverse;flex-wrap:wrap-reverse}.flex-column-reverse-l{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}.flex-row-reverse-l{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.items-start-l{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.items-end-l{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}.items-center-l{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.items-baseline-l{-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline}.items-stretch-l{-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.self-start-l{-ms-flex-item-align:start;align-self:flex-start}.self-end-l{-ms-flex-item-align:end;align-self:flex-end}.self-center-l{-ms-flex-item-align:center;-ms-grid-row-align:center;align-self:center}.self-baseline-l{-ms-flex-item-align:baseline;align-self:baseline}.self-stretch-l{-ms-flex-item-align:stretch;-ms-grid-row-align:stretch;align-self:stretch}.justify-start-l{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.justify-end-l{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.justify-center-l{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.justify-between-l{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.justify-around-l{-ms-flex-pack:distribute;justify-content:space-around}.content-start-l{-ms-flex-line-pack:start;align-content:flex-start}.content-end-l{-ms-flex-line-pack:end;align-content:flex-end}.content-center-l{-ms-flex-line-pack:center;align-content:center}.content-between-l{-ms-flex-line-pack:justify;align-content:space-between}.content-around-l{-ms-flex-line-pack:distribute;align-content:space-around}.content-stretch-l{-ms-flex-line-pack:stretch;align-content:stretch}.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}.order-2-l{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-3-l{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-4-l{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-5-l{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-6-l{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-7-l{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-8-l{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-last-l{-webkit-box-ordinal-group:100000;-ms-flex-order:99999;order:99999}}.fl{float:left}.fl,.fr{_display:inline}.fr{float:right}.fn{float:none}@media screen and (min-width:30em){.fl-ns{float:left}.fl-ns,.fr-ns{_display:inline}.fr-ns{float:right}.fn-ns{float:none}}@media screen and (min-width:30em) and (max-width:60em){.fl-m{float:left}.fl-m,.fr-m{_display:inline}.fr-m{float:right}.fn-m{float:none}}@media screen and (min-width:60em){.fl-l{float:left}.fl-l,.fr-l{_display:inline}.fr-l{float:right}.fn-l{float:none}}.i{font-style:italic}.fs-normal{font-style:normal}@media screen and (min-width:30em){.i-ns{font-style:italic}.fs-normal-ns{font-style:normal}}@media screen and (min-width:30em) and (max-width:60em){.i-m{font-style:italic}.fs-normal-m{font-style:normal}}@media screen and (min-width:60em){.i-l{font-style:italic}.fs-normal-l{font-style:normal}}.normal{font-weight:400}.b{font-weight:700}.fw1{font-weight:100}.fw2{font-weight:200}.fw3{font-weight:300}.fw4{font-weight:400}.fw5{font-weight:500}.fw6{font-weight:600}.fw7{font-weight:700}.fw8{font-weight:800}.fw9{font-weight:900}@media screen and (min-width:30em){.normal-ns{font-weight:400}.b-ns{font-weight:700}.fw1-ns{font-weight:100}.fw2-ns{font-weight:200}.fw3-ns{font-weight:300}.fw4-ns{font-weight:400}.fw5-ns{font-weight:500}.fw6-ns{font-weight:600}.fw7-ns{font-weight:700}.fw8-ns{font-weight:800}.fw9-ns{font-weight:900}}@media screen and (min-width:30em) and (max-width:60em){.normal-m{font-weight:400}.b-m{font-weight:700}.fw1-m{font-weight:100}.fw2-m{font-weight:200}.fw3-m{font-weight:300}.fw4-m{font-weight:400}.fw5-m{font-weight:500}.fw6-m{font-weight:600}.fw7-m{font-weight:700}.fw8-m{font-weight:800}.fw9-m{font-weight:900}}@media screen and (min-width:60em){.normal-l{font-weight:400}.b-l{font-weight:700}.fw1-l{font-weight:100}.fw2-l{font-weight:200}.fw3-l{font-weight:300}.fw4-l{font-weight:400}.fw5-l{font-weight:500}.fw6-l{font-weight:600}.fw7-l{font-weight:700}.fw8-l{font-weight:800}.fw9-l{font-weight:900}}.input-reset{-webkit-appearance:none;-moz-appearance:none}.button-reset::-moz-focus-inner,.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-25{height:25%}.h-50{height:50%}.h-75{height:75%}.h-100{height:100%}.min-h-100{min-height:100%}.vh-25{height:25vh}.vh-50{height:50vh}.vh-75{height:75vh}.vh-100{height:100vh}.min-vh-100{min-height:100vh}.h-auto{height:auto}.h-inherit{height:inherit}@media screen and (min-width:30em){.h1-ns{height:1rem}.h2-ns{height:2rem}.h3-ns{height:4rem}.h4-ns{height:8rem}.h5-ns{height:16rem}.h-25-ns{height:25%}.h-50-ns{height:50%}.h-75-ns{height:75%}.h-100-ns{height:100%}.min-h-100-ns{min-height:100%}.vh-25-ns{height:25vh}.vh-50-ns{height:50vh}.vh-75-ns{height:75vh}.vh-100-ns{height:100vh}.min-vh-100-ns{min-height:100vh}.h-auto-ns{height:auto}.h-inherit-ns{height:inherit}}@media screen and (min-width:30em) and (max-width:60em){.h1-m{height:1rem}.h2-m{height:2rem}.h3-m{height:4rem}.h4-m{height:8rem}.h5-m{height:16rem}.h-25-m{height:25%}.h-50-m{height:50%}.h-75-m{height:75%}.h-100-m{height:100%}.min-h-100-m{min-height:100%}.vh-25-m{height:25vh}.vh-50-m{height:50vh}.vh-75-m{height:75vh}.vh-100-m{height:100vh}.min-vh-100-m{min-height:100vh}.h-auto-m{height:auto}.h-inherit-m{height:inherit}}@media screen and (min-width:60em){.h1-l{height:1rem}.h2-l{height:2rem}.h3-l{height:4rem}.h4-l{height:8rem}.h5-l{height:16rem}.h-25-l{height:25%}.h-50-l{height:50%}.h-75-l{height:75%}.h-100-l{height:100%}.min-h-100-l{min-height:100%}.vh-25-l{height:25vh}.vh-50-l{height:50vh}.vh-75-l{height:75vh}.vh-100-l{height:100vh}.min-vh-100-l{min-height:100vh}.h-auto-l{height:auto}.h-inherit-l{height:inherit}}.tracked{letter-spacing:.1em}.tracked-tight{letter-spacing:-.05em}.tracked-mega{letter-spacing:.25em}@media screen and (min-width:30em){.tracked-ns{letter-spacing:.1em}.tracked-tight-ns{letter-spacing:-.05em}.tracked-mega-ns{letter-spacing:.25em}}@media screen and (min-width:30em) and (max-width:60em){.tracked-m{letter-spacing:.1em}.tracked-tight-m{letter-spacing:-.05em}.tracked-mega-m{letter-spacing:.25em}}@media screen and (min-width:60em){.tracked-l{letter-spacing:.1em}.tracked-tight-l{letter-spacing:-.05em}.tracked-mega-l{letter-spacing:.25em}}.lh-solid{line-height:1}.lh-title{line-height:1.25}.lh-copy{line-height:1.5}@media screen and (min-width:30em){.lh-solid-ns{line-height:1}.lh-title-ns{line-height:1.25}.lh-copy-ns{line-height:1.5}}@media screen and (min-width:30em) and (max-width:60em){.lh-solid-m{line-height:1}.lh-title-m{line-height:1.25}.lh-copy-m{line-height:1.5}}@media screen and (min-width:60em){.lh-solid-l{line-height:1}.lh-title-l{line-height:1.25}.lh-copy-l{line-height:1.5}}.link{text-decoration:none}.link,.link:active,.link:focus,.link:hover,.link:link,.link:visited{transition:color .15s ease-in}.link:focus{outline:1px dotted currentColor}.list{list-style-type:none}.mw-100{max-width:100%}.mw1{max-width:1rem}.mw2{max-width:2rem}.mw3{max-width:4rem}.mw4{max-width:8rem}.mw5{max-width:16rem}.mw6{max-width:32rem}.mw7{max-width:48rem}.mw8{max-width:64rem}.mw9{max-width:96rem}.mw-none{max-width:none}@media screen and (min-width:30em){.mw-100-ns{max-width:100%}.mw1-ns{max-width:1rem}.mw2-ns{max-width:2rem}.mw3-ns{max-width:4rem}.mw4-ns{max-width:8rem}.mw5-ns{max-width:16rem}.mw6-ns{max-width:32rem}.mw7-ns{max-width:48rem}.mw8-ns{max-width:64rem}.mw9-ns{max-width:96rem}.mw-none-ns{max-width:none}}@media screen and (min-width:30em) and (max-width:60em){.mw-100-m{max-width:100%}.mw1-m{max-width:1rem}.mw2-m{max-width:2rem}.mw3-m{max-width:4rem}.mw4-m{max-width:8rem}.mw5-m{max-width:16rem}.mw6-m{max-width:32rem}.mw7-m{max-width:48rem}.mw8-m{max-width:64rem}.mw9-m{max-width:96rem}.mw-none-m{max-width:none}}@media screen and (min-width:60em){.mw-100-l{max-width:100%}.mw1-l{max-width:1rem}.mw2-l{max-width:2rem}.mw3-l{max-width:4rem}.mw4-l{max-width:8rem}.mw5-l{max-width:16rem}.mw6-l{max-width:32rem}.mw7-l{max-width:48rem}.mw8-l{max-width:64rem}.mw9-l{max-width:96rem}.mw-none-l{max-width:none}}.w1{width:1rem}.w2{width:2rem}.w3{width:4rem}.w4{width:8rem}.w5{width:16rem}.w-10{width:10%}.w-20{width:20%}.w-25{width:25%}.w-30{width:30%}.w-33{width:33%}.w-34{width:34%}.w-40{width:40%}.w-50{width:50%}.w-60{width:60%}.w-70{width:70%}.w-75{width:75%}.w-80{width:80%}.w-90{width:90%}.w-100{width:100%}.w-third{width:33.33333%}.w-two-thirds{width:66.66667%}.w-auto{width:auto}@media screen and (min-width:30em){.w1-ns{width:1rem}.w2-ns{width:2rem}.w3-ns{width:4rem}.w4-ns{width:8rem}.w5-ns{width:16rem}.w-10-ns{width:10%}.w-20-ns{width:20%}.w-25-ns{width:25%}.w-30-ns{width:30%}.w-33-ns{width:33%}.w-34-ns{width:34%}.w-40-ns{width:40%}.w-50-ns{width:50%}.w-60-ns{width:60%}.w-70-ns{width:70%}.w-75-ns{width:75%}.w-80-ns{width:80%}.w-90-ns{width:90%}.w-100-ns{width:100%}.w-third-ns{width:33.33333%}.w-two-thirds-ns{width:66.66667%}.w-auto-ns{width:auto}}@media screen and (min-width:30em) and (max-width:60em){.w1-m{width:1rem}.w2-m{width:2rem}.w3-m{width:4rem}.w4-m{width:8rem}.w5-m{width:16rem}.w-10-m{width:10%}.w-20-m{width:20%}.w-25-m{width:25%}.w-30-m{width:30%}.w-33-m{width:33%}.w-34-m{width:34%}.w-40-m{width:40%}.w-50-m{width:50%}.w-60-m{width:60%}.w-70-m{width:70%}.w-75-m{width:75%}.w-80-m{width:80%}.w-90-m{width:90%}.w-100-m{width:100%}.w-third-m{width:33.33333%}.w-two-thirds-m{width:66.66667%}.w-auto-m{width:auto}}@media screen and (min-width:60em){.w1-l{width:1rem}.w2-l{width:2rem}.w3-l{width:4rem}.w4-l{width:8rem}.w5-l{width:16rem}.w-10-l{width:10%}.w-20-l{width:20%}.w-25-l{width:25%}.w-30-l{width:30%}.w-33-l{width:33%}.w-34-l{width:34%}.w-40-l{width:40%}.w-50-l{width:50%}.w-60-l{width:60%}.w-70-l{width:70%}.w-75-l{width:75%}.w-80-l{width:80%}.w-90-l{width:90%}.w-100-l{width:100%}.w-third-l{width:33.33333%}.w-two-thirds-l{width:66.66667%}.w-auto-l{width:auto}}.overflow-visible{overflow:visible}.overflow-hidden{overflow:hidden}.overflow-scroll{overflow:scroll}.overflow-auto{overflow:auto}.overflow-x-visible{overflow-x:visible}.overflow-x-hidden{overflow-x:hidden}.overflow-x-scroll{overflow-x:scroll}.overflow-x-auto{overflow-x:auto}.overflow-y-visible{overflow-y:visible}.overflow-y-hidden{overflow-y:hidden}.overflow-y-scroll{overflow-y:scroll}.overflow-y-auto{overflow-y:auto}@media screen and (min-width:30em){.overflow-visible-ns{overflow:visible}.overflow-hidden-ns{overflow:hidden}.overflow-scroll-ns{overflow:scroll}.overflow-auto-ns{overflow:auto}.overflow-x-visible-ns{overflow-x:visible}.overflow-x-hidden-ns{overflow-x:hidden}.overflow-x-scroll-ns{overflow-x:scroll}.overflow-x-auto-ns{overflow-x:auto}.overflow-y-visible-ns{overflow-y:visible}.overflow-y-hidden-ns{overflow-y:hidden}.overflow-y-scroll-ns{overflow-y:scroll}.overflow-y-auto-ns{overflow-y:auto}}@media screen and (min-width:30em) and (max-width:60em){.overflow-visible-m{overflow:visible}.overflow-hidden-m{overflow:hidden}.overflow-scroll-m{overflow:scroll}.overflow-auto-m{overflow:auto}.overflow-x-visible-m{overflow-x:visible}.overflow-x-hidden-m{overflow-x:hidden}.overflow-x-scroll-m{overflow-x:scroll}.overflow-x-auto-m{overflow-x:auto}.overflow-y-visible-m{overflow-y:visible}.overflow-y-hidden-m{overflow-y:hidden}.overflow-y-scroll-m{overflow-y:scroll}.overflow-y-auto-m{overflow-y:auto}}@media screen and (min-width:60em){.overflow-visible-l{overflow:visible}.overflow-hidden-l{overflow:hidden}.overflow-scroll-l{overflow:scroll}.overflow-auto-l{overflow:auto}.overflow-x-visible-l{overflow-x:visible}.overflow-x-hidden-l{overflow-x:hidden}.overflow-x-scroll-l{overflow-x:scroll}.overflow-x-auto-l{overflow-x:auto}.overflow-y-visible-l{overflow-y:visible}.overflow-y-hidden-l{overflow-y:hidden}.overflow-y-scroll-l{overflow-y:scroll}.overflow-y-auto-l{overflow-y:auto}}.static{position:static}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}@media screen and (min-width:30em){.static-ns{position:static}.relative-ns{position:relative}.absolute-ns{position:absolute}.fixed-ns{position:fixed}}@media screen and (min-width:30em) and (max-width:60em){.static-m{position:static}.relative-m{position:relative}.absolute-m{position:absolute}.fixed-m{position:fixed}}@media screen and (min-width:60em){.static-l{position:static}.relative-l{position:relative}.absolute-l{position:absolute}.fixed-l{position:fixed}}.o-100{opacity:1}.o-90{opacity:.9}.o-80{opacity:.8}.o-70{opacity:.7}.o-60{opacity:.6}.o-50{opacity:.5}.o-40{opacity:.4}.o-30{opacity:.3}.o-20{opacity:.2}.o-10{opacity:.1}.o-05{opacity:.05}.o-025{opacity:.025}.o-0{opacity:0}.black-90{color:rgba(0,0,0,.9)}.black-80{color:rgba(0,0,0,.8)}.black-70{color:rgba(0,0,0,.7)}.black-60{color:rgba(0,0,0,.6)}.black-50{color:rgba(0,0,0,.5)}.black-40{color:rgba(0,0,0,.4)}.black-30{color:rgba(0,0,0,.3)}.black-20{color:rgba(0,0,0,.2)}.black-10{color:rgba(0,0,0,.1)}.black-05{color:rgba(0,0,0,.05)}.white-90{color:hsla(0,0%,100%,.9)}.white-80{color:hsla(0,0%,100%,.8)}.white-70{color:hsla(0,0%,100%,.7)}.white-60{color:hsla(0,0%,100%,.6)}.white-50{color:hsla(0,0%,100%,.5)}.white-40{color:hsla(0,0%,100%,.4)}.white-30{color:hsla(0,0%,100%,.3)}.white-20{color:hsla(0,0%,100%,.2)}.white-10{color:hsla(0,0%,100%,.1)}.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}.near-white{color:#f4f4f4}.white{color:#fff}.dark-red{color:#e7040f}.red{color:#ff4136}.light-red{color:#ff725c}.orange{color:#ff6300}.gold{color:#ffb700}.yellow{color:gold}.light-yellow{color:#fbf1a9}.purple{color:#5e2ca5}.light-purple{color:#a463f2}.dark-pink{color:#d5008f}.hot-pink{color:#ff41b4}.pink{color:#ff80cc}.light-pink{color:#ffa3d7}.dark-green{color:#137752}.green{color:#19a974}.light-green{color:#9eebcf}.navy{color:#001b44}.dark-blue{color:#00449e}.blue{color:#0594cb}.light-blue{color:#96ccff}.lightest-blue{color:#cdecff}.washed-blue{color:#f6fffe}.washed-green{color:#e8fdf5}.washed-yellow{color:#fffceb}.washed-red{color:#ffdfdf}.color-inherit{color:inherit}.bg-black-90{background-color:rgba(0,0,0,.9)}.bg-black-80{background-color:rgba(0,0,0,.8)}.bg-black-70{background-color:rgba(0,0,0,.7)}.bg-black-60{background-color:rgba(0,0,0,.6)}.bg-black-50{background-color:rgba(0,0,0,.5)}.bg-black-40{background-color:rgba(0,0,0,.4)}.bg-black-30{background-color:rgba(0,0,0,.3)}.bg-black-20{background-color:rgba(0,0,0,.2)}.bg-black-10{background-color:rgba(0,0,0,.1)}.bg-black-05{background-color:rgba(0,0,0,.05)}.bg-white-90{background-color:hsla(0,0%,100%,.9)}.bg-white-80{background-color:hsla(0,0%,100%,.8)}.bg-white-70{background-color:hsla(0,0%,100%,.7)}.bg-white-60{background-color:hsla(0,0%,100%,.6)}.bg-white-50{background-color:hsla(0,0%,100%,.5)}.bg-white-40{background-color:hsla(0,0%,100%,.4)}.bg-white-30{background-color:hsla(0,0%,100%,.3)}.bg-white-20{background-color:hsla(0,0%,100%,.2)}.bg-white-10{background-color:hsla(0,0%,100%,.1)}.bg-black{background-color:#000}.bg-near-black{background-color:#111}.bg-dark-gray{background-color:#333}.bg-mid-gray{background-color:#555}.bg-gray{background-color:#777}.bg-silver{background-color:#999}.bg-light-silver{background-color:#aaa}.bg-moon-gray{background-color:#ccc}.bg-light-gray{background-color:#eee}.bg-near-white{background-color:#f4f4f4}.bg-white{background-color:#fff}.bg-transparent{background-color:transparent}.bg-dark-red{background-color:#e7040f}.bg-red{background-color:#ff4136}.bg-light-red{background-color:#ff725c}.bg-orange{background-color:#ff6300}.bg-gold{background-color:#ffb700}.bg-yellow{background-color:gold}.bg-light-yellow{background-color:#fbf1a9}.bg-purple{background-color:#5e2ca5}.bg-light-purple{background-color:#a463f2}.bg-dark-pink{background-color:#d5008f}.bg-hot-pink{background-color:#ff41b4}.bg-pink{background-color:#ff80cc}.bg-light-pink{background-color:#ffa3d7}.bg-dark-green{background-color:#137752}.bg-green{background-color:#19a974}.bg-light-green{background-color:#9eebcf}.bg-navy{background-color:#001b44}.bg-dark-blue{background-color:#00449e}.bg-blue{background-color:#0594cb}.bg-light-blue{background-color:#96ccff}.bg-lightest-blue{background-color:#cdecff}.bg-washed-blue{background-color:#f6fffe}.bg-washed-green{background-color:#e8fdf5}.bg-washed-yellow{background-color:#fffceb}.bg-washed-red{background-color:#ffdfdf}.bg-inherit{background-color:inherit}.hover-black:focus,.hover-black:hover{color:#000}.hover-near-black:focus,.hover-near-black:hover{color:#111}.hover-dark-gray:focus,.hover-dark-gray:hover{color:#333}.hover-mid-gray:focus,.hover-mid-gray:hover{color:#555}.hover-gray:focus,.hover-gray:hover{color:#777}.hover-silver:focus,.hover-silver:hover{color:#999}.hover-light-silver:focus,.hover-light-silver:hover{color:#aaa}.hover-moon-gray:focus,.hover-moon-gray:hover{color:#ccc}.hover-light-gray:focus,.hover-light-gray:hover{color:#eee}.hover-near-white:focus,.hover-near-white:hover{color:#f4f4f4}.hover-white:focus,.hover-white:hover{color:#fff}.hover-black-90:focus,.hover-black-90:hover{color:rgba(0,0,0,.9)}.hover-black-80:focus,.hover-black-80:hover{color:rgba(0,0,0,.8)}.hover-black-70:focus,.hover-black-70:hover{color:rgba(0,0,0,.7)}.hover-black-60:focus,.hover-black-60:hover{color:rgba(0,0,0,.6)}.hover-black-50:focus,.hover-black-50:hover{color:rgba(0,0,0,.5)}.hover-black-40:focus,.hover-black-40:hover{color:rgba(0,0,0,.4)}.hover-black-30:focus,.hover-black-30:hover{color:rgba(0,0,0,.3)}.hover-black-20:focus,.hover-black-20:hover{color:rgba(0,0,0,.2)}.hover-black-10:focus,.hover-black-10:hover{color:rgba(0,0,0,.1)}.hover-white-90:focus,.hover-white-90:hover{color:hsla(0,0%,100%,.9)}.hover-white-80:focus,.hover-white-80:hover{color:hsla(0,0%,100%,.8)}.hover-white-70:focus,.hover-white-70:hover{color:hsla(0,0%,100%,.7)}.hover-white-60:focus,.hover-white-60:hover{color:hsla(0,0%,100%,.6)}.hover-white-50:focus,.hover-white-50:hover{color:hsla(0,0%,100%,.5)}.hover-white-40:focus,.hover-white-40:hover{color:hsla(0,0%,100%,.4)}.hover-white-30:focus,.hover-white-30:hover{color:hsla(0,0%,100%,.3)}.hover-white-20:focus,.hover-white-20:hover{color:hsla(0,0%,100%,.2)}.hover-white-10:focus,.hover-white-10:hover{color:hsla(0,0%,100%,.1)}.hover-inherit:focus,.hover-inherit:hover{color:inherit}.hover-bg-black:focus,.hover-bg-black:hover{background-color:#000}.hover-bg-near-black:focus,.hover-bg-near-black:hover{background-color:#111}.hover-bg-dark-gray:focus,.hover-bg-dark-gray:hover{background-color:#333}.hover-bg-mid-gray:focus,.hover-bg-mid-gray:hover{background-color:#555}.hover-bg-gray:focus,.hover-bg-gray:hover{background-color:#777}.hover-bg-silver:focus,.hover-bg-silver:hover{background-color:#999}.hover-bg-light-silver:focus,.hover-bg-light-silver:hover{background-color:#aaa}.hover-bg-moon-gray:focus,.hover-bg-moon-gray:hover{background-color:#ccc}.hover-bg-light-gray:focus,.hover-bg-light-gray:hover{background-color:#eee}.hover-bg-near-white:focus,.hover-bg-near-white:hover{background-color:#f4f4f4}.hover-bg-white:focus,.hover-bg-white:hover{background-color:#fff}.hover-bg-transparent:focus,.hover-bg-transparent:hover{background-color:transparent}.hover-bg-black-90:focus,.hover-bg-black-90:hover{background-color:rgba(0,0,0,.9)}.hover-bg-black-80:focus,.hover-bg-black-80:hover{background-color:rgba(0,0,0,.8)}.hover-bg-black-70:focus,.hover-bg-black-70:hover{background-color:rgba(0,0,0,.7)}.hover-bg-black-60:focus,.hover-bg-black-60:hover{background-color:rgba(0,0,0,.6)}.hover-bg-black-50:focus,.hover-bg-black-50:hover{background-color:rgba(0,0,0,.5)}.hover-bg-black-40:focus,.hover-bg-black-40:hover{background-color:rgba(0,0,0,.4)}.hover-bg-black-30:focus,.hover-bg-black-30:hover{background-color:rgba(0,0,0,.3)}.hover-bg-black-20:focus,.hover-bg-black-20:hover{background-color:rgba(0,0,0,.2)}.hover-bg-black-10:focus,.hover-bg-black-10:hover{background-color:rgba(0,0,0,.1)}.hover-bg-white-90:focus,.hover-bg-white-90:hover{background-color:hsla(0,0%,100%,.9)}.hover-bg-white-80:focus,.hover-bg-white-80:hover{background-color:hsla(0,0%,100%,.8)}.hover-bg-white-70:focus,.hover-bg-white-70:hover{background-color:hsla(0,0%,100%,.7)}.hover-bg-white-60:focus,.hover-bg-white-60:hover{background-color:hsla(0,0%,100%,.6)}.hover-bg-white-50:focus,.hover-bg-white-50:hover{background-color:hsla(0,0%,100%,.5)}.hover-bg-white-40:focus,.hover-bg-white-40:hover{background-color:hsla(0,0%,100%,.4)}.hover-bg-white-30:focus,.hover-bg-white-30:hover{background-color:hsla(0,0%,100%,.3)}.hover-bg-white-20:focus,.hover-bg-white-20:hover{background-color:hsla(0,0%,100%,.2)}.hover-bg-white-10:focus,.hover-bg-white-10:hover{background-color:hsla(0,0%,100%,.1)}.hover-dark-red:focus,.hover-dark-red:hover{color:#e7040f}.hover-red:focus,.hover-red:hover{color:#ff4136}.hover-light-red:focus,.hover-light-red:hover{color:#ff725c}.hover-orange:focus,.hover-orange:hover{color:#ff6300}.hover-gold:focus,.hover-gold:hover{color:#ffb700}.hover-yellow:focus,.hover-yellow:hover{color:gold}.hover-light-yellow:focus,.hover-light-yellow:hover{color:#fbf1a9}.hover-purple:focus,.hover-purple:hover{color:#5e2ca5}.hover-light-purple:focus,.hover-light-purple:hover{color:#a463f2}.hover-dark-pink:focus,.hover-dark-pink:hover{color:#d5008f}.hover-hot-pink:focus,.hover-hot-pink:hover{color:#ff41b4}.hover-pink:focus,.hover-pink:hover{color:#ff80cc}.hover-light-pink:focus,.hover-light-pink:hover{color:#ffa3d7}.hover-dark-green:focus,.hover-dark-green:hover{color:#137752}.hover-green:focus,.hover-green:hover{color:#19a974}.hover-light-green:focus,.hover-light-green:hover{color:#9eebcf}.hover-navy:focus,.hover-navy:hover{color:#001b44}.hover-dark-blue:focus,.hover-dark-blue:hover{color:#00449e}.hover-blue:focus,.hover-blue:hover{color:#0594cb}.hover-light-blue:focus,.hover-light-blue:hover{color:#96ccff}.hover-lightest-blue:focus,.hover-lightest-blue:hover{color:#cdecff}.hover-washed-blue:focus,.hover-washed-blue:hover{color:#f6fffe}.hover-washed-green:focus,.hover-washed-green:hover{color:#e8fdf5}.hover-washed-yellow:focus,.hover-washed-yellow:hover{color:#fffceb}.hover-washed-red:focus,.hover-washed-red:hover{color:#ffdfdf}.hover-bg-dark-red:focus,.hover-bg-dark-red:hover{background-color:#e7040f}.hover-bg-red:focus,.hover-bg-red:hover{background-color:#ff4136}.hover-bg-light-red:focus,.hover-bg-light-red:hover{background-color:#ff725c}.hover-bg-orange:focus,.hover-bg-orange:hover{background-color:#ff6300}.hover-bg-gold:focus,.hover-bg-gold:hover{background-color:#ffb700}.hover-bg-yellow:focus,.hover-bg-yellow:hover{background-color:gold}.hover-bg-light-yellow:focus,.hover-bg-light-yellow:hover{background-color:#fbf1a9}.hover-bg-purple:focus,.hover-bg-purple:hover{background-color:#5e2ca5}.hover-bg-light-purple:focus,.hover-bg-light-purple:hover{background-color:#a463f2}.hover-bg-dark-pink:focus,.hover-bg-dark-pink:hover{background-color:#d5008f}.hover-bg-hot-pink:focus,.hover-bg-hot-pink:hover{background-color:#ff41b4}.hover-bg-pink:focus,.hover-bg-pink:hover{background-color:#ff80cc}.hover-bg-light-pink:focus,.hover-bg-light-pink:hover{background-color:#ffa3d7}.hover-bg-dark-green:focus,.hover-bg-dark-green:hover{background-color:#137752}.hover-bg-green:focus,.hover-bg-green:hover{background-color:#19a974}.hover-bg-light-green:focus,.hover-bg-light-green:hover{background-color:#9eebcf}.hover-bg-navy:focus,.hover-bg-navy:hover{background-color:#001b44}.hover-bg-dark-blue:focus,.hover-bg-dark-blue:hover{background-color:#00449e}.hover-bg-blue:focus,.hover-bg-blue:hover{background-color:#0594cb}.hover-bg-light-blue:focus,.hover-bg-light-blue:hover{background-color:#96ccff}.hover-bg-lightest-blue:focus,.hover-bg-lightest-blue:hover{background-color:#cdecff}.hover-bg-washed-blue:focus,.hover-bg-washed-blue:hover{background-color:#f6fffe}.hover-bg-washed-green:focus,.hover-bg-washed-green:hover{background-color:#e8fdf5}.hover-bg-washed-yellow:focus,.hover-bg-washed-yellow:hover{background-color:#fffceb}.hover-bg-washed-red:focus,.hover-bg-washed-red:hover{background-color:#ffdfdf}.hover-bg-inherit:focus,.hover-bg-inherit:hover{background-color:inherit}.pa0{padding:0}.pa1{padding:.25rem}.pa2{padding:.5rem}.pa3{padding:1rem}.pa4{padding:2rem}.pa5{padding:4rem}.pa6{padding:8rem}.pa7{padding:16rem}.pl0{padding-left:0}.pl1{padding-left:.25rem}.pl2{padding-left:.5rem}.pl3{padding-left:1rem}.pl4{padding-left:2rem}.pl5{padding-left:4rem}.pl6{padding-left:8rem}.pl7{padding-left:16rem}.pr0{padding-right:0}.pr1{padding-right:.25rem}.pr2{padding-right:.5rem}.pr3{padding-right:1rem}.pr4{padding-right:2rem}.pr5{padding-right:4rem}.pr6{padding-right:8rem}.pr7{padding-right:16rem}.pb0{padding-bottom:0}.pb1{padding-bottom:.25rem}.pb2{padding-bottom:.5rem}.pb3{padding-bottom:1rem}.pb4{padding-bottom:2rem}.pb5{padding-bottom:4rem}.pb6{padding-bottom:8rem}.pb7{padding-bottom:16rem}.pt0{padding-top:0}.pt1{padding-top:.25rem}.pt2{padding-top:.5rem}.pt3{padding-top:1rem}.pt4{padding-top:2rem}.pt5{padding-top:4rem}.pt6{padding-top:8rem}.pt7{padding-top:16rem}.pv0{padding-top:0;padding-bottom:0}.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}.pv5{padding-top:4rem;padding-bottom:4rem}.pv6{padding-top:8rem;padding-bottom:8rem}.pv7{padding-top:16rem;padding-bottom:16rem}.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}.ph6{padding-left:8rem;padding-right:8rem}.ph7{padding-left:16rem;padding-right:16rem}.ma0{margin:0}.ma1{margin:.25rem}.ma2{margin:.5rem}.ma3{margin:1rem}.ma4{margin:2rem}.ma5{margin:4rem}.ma6{margin:8rem}.ma7{margin:16rem}.ml0{margin-left:0}.ml1{margin-left:.25rem}.ml2{margin-left:.5rem}.ml3{margin-left:1rem}.ml4{margin-left:2rem}.ml5{margin-left:4rem}.ml6{margin-left:8rem}.ml7{margin-left:16rem}.mr0{margin-right:0}.mr1{margin-right:.25rem}.mr2{margin-right:.5rem}.mr3{margin-right:1rem}.mr4{margin-right:2rem}.mr5{margin-right:4rem}.mr6{margin-right:8rem}.mr7{margin-right:16rem}.mb0{margin-bottom:0}.mb1{margin-bottom:.25rem}.mb2{margin-bottom:.5rem}.mb3{margin-bottom:1rem}.mb4{margin-bottom:2rem}.mb5{margin-bottom:4rem}.mb6{margin-bottom:8rem}.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}.mt6{margin-top:8rem}.mt7{margin-top:16rem}.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}.mv5{margin-top:4rem;margin-bottom:4rem}.mv6{margin-top:8rem;margin-bottom:8rem}.mv7{margin-top:16rem;margin-bottom:16rem}.mh0{margin-left:0;margin-right:0}.mh1{margin-left:.25rem;margin-right:.25rem}.mh2{margin-left:.5rem;margin-right:.5rem}.mh3{margin-left:1rem;margin-right:1rem}.mh4{margin-left:2rem;margin-right:2rem}.mh5{margin-left:4rem;margin-right:4rem}.mh6{margin-left:8rem;margin-right:8rem}.mh7{margin-left:16rem;margin-right:16rem}@media screen and (min-width:30em){.pa0-ns{padding:0}.pa1-ns{padding:.25rem}.pa2-ns{padding:.5rem}.pa3-ns{padding:1rem}.pa4-ns{padding:2rem}.pa5-ns{padding:4rem}.pa6-ns{padding:8rem}.pa7-ns{padding:16rem}.pl0-ns{padding-left:0}.pl1-ns{padding-left:.25rem}.pl2-ns{padding-left:.5rem}.pl3-ns{padding-left:1rem}.pl4-ns{padding-left:2rem}.pl5-ns{padding-left:4rem}.pl6-ns{padding-left:8rem}.pl7-ns{padding-left:16rem}.pr0-ns{padding-right:0}.pr1-ns{padding-right:.25rem}.pr2-ns{padding-right:.5rem}.pr3-ns{padding-right:1rem}.pr4-ns{padding-right:2rem}.pr5-ns{padding-right:4rem}.pr6-ns{padding-right:8rem}.pr7-ns{padding-right:16rem}.pb0-ns{padding-bottom:0}.pb1-ns{padding-bottom:.25rem}.pb2-ns{padding-bottom:.5rem}.pb3-ns{padding-bottom:1rem}.pb4-ns{padding-bottom:2rem}.pb5-ns{padding-bottom:4rem}.pb6-ns{padding-bottom:8rem}.pb7-ns{padding-bottom:16rem}.pt0-ns{padding-top:0}.pt1-ns{padding-top:.25rem}.pt2-ns{padding-top:.5rem}.pt3-ns{padding-top:1rem}.pt4-ns{padding-top:2rem}.pt5-ns{padding-top:4rem}.pt6-ns{padding-top:8rem}.pt7-ns{padding-top:16rem}.pv0-ns{padding-top:0;padding-bottom:0}.pv1-ns{padding-top:.25rem;padding-bottom:.25rem}.pv2-ns{padding-top:.5rem;padding-bottom:.5rem}.pv3-ns{padding-top:1rem;padding-bottom:1rem}.pv4-ns{padding-top:2rem;padding-bottom:2rem}.pv5-ns{padding-top:4rem;padding-bottom:4rem}.pv6-ns{padding-top:8rem;padding-bottom:8rem}.pv7-ns{padding-top:16rem;padding-bottom:16rem}.ph0-ns{padding-left:0;padding-right:0}.ph1-ns{padding-left:.25rem;padding-right:.25rem}.ph2-ns{padding-left:.5rem;padding-right:.5rem}.ph3-ns{padding-left:1rem;padding-right:1rem}.ph4-ns{padding-left:2rem;padding-right:2rem}.ph5-ns{padding-left:4rem;padding-right:4rem}.ph6-ns{padding-left:8rem;padding-right:8rem}.ph7-ns{padding-left:16rem;padding-right:16rem}.ma0-ns{margin:0}.ma1-ns{margin:.25rem}.ma2-ns{margin:.5rem}.ma3-ns{margin:1rem}.ma4-ns{margin:2rem}.ma5-ns{margin:4rem}.ma6-ns{margin:8rem}.ma7-ns{margin:16rem}.ml0-ns{margin-left:0}.ml1-ns{margin-left:.25rem}.ml2-ns{margin-left:.5rem}.ml3-ns{margin-left:1rem}.ml4-ns{margin-left:2rem}.ml5-ns{margin-left:4rem}.ml6-ns{margin-left:8rem}.ml7-ns{margin-left:16rem}.mr0-ns{margin-right:0}.mr1-ns{margin-right:.25rem}.mr2-ns{margin-right:.5rem}.mr3-ns{margin-right:1rem}.mr4-ns{margin-right:2rem}.mr5-ns{margin-right:4rem}.mr6-ns{margin-right:8rem}.mr7-ns{margin-right:16rem}.mb0-ns{margin-bottom:0}.mb1-ns{margin-bottom:.25rem}.mb2-ns{margin-bottom:.5rem}.mb3-ns{margin-bottom:1rem}.mb4-ns{margin-bottom:2rem}.mb5-ns{margin-bottom:4rem}.mb6-ns{margin-bottom:8rem}.mb7-ns{margin-bottom:16rem}.mt0-ns{margin-top:0}.mt1-ns{margin-top:.25rem}.mt2-ns{margin-top:.5rem}.mt3-ns{margin-top:1rem}.mt4-ns{margin-top:2rem}.mt5-ns{margin-top:4rem}.mt6-ns{margin-top:8rem}.mt7-ns{margin-top:16rem}.mv0-ns{margin-top:0;margin-bottom:0}.mv1-ns{margin-top:.25rem;margin-bottom:.25rem}.mv2-ns{margin-top:.5rem;margin-bottom:.5rem}.mv3-ns{margin-top:1rem;margin-bottom:1rem}.mv4-ns{margin-top:2rem;margin-bottom:2rem}.mv5-ns{margin-top:4rem;margin-bottom:4rem}.mv6-ns{margin-top:8rem;margin-bottom:8rem}.mv7-ns{margin-top:16rem;margin-bottom:16rem}.mh0-ns{margin-left:0;margin-right:0}.mh1-ns{margin-left:.25rem;margin-right:.25rem}.mh2-ns{margin-left:.5rem;margin-right:.5rem}.mh3-ns{margin-left:1rem;margin-right:1rem}.mh4-ns{margin-left:2rem;margin-right:2rem}.mh5-ns{margin-left:4rem;margin-right:4rem}.mh6-ns{margin-left:8rem;margin-right:8rem}.mh7-ns{margin-left:16rem;margin-right:16rem}}@media screen and (min-width:30em) and (max-width:60em){.pa0-m{padding:0}.pa1-m{padding:.25rem}.pa2-m{padding:.5rem}.pa3-m{padding:1rem}.pa4-m{padding:2rem}.pa5-m{padding:4rem}.pa6-m{padding:8rem}.pa7-m{padding:16rem}.pl0-m{padding-left:0}.pl1-m{padding-left:.25rem}.pl2-m{padding-left:.5rem}.pl3-m{padding-left:1rem}.pl4-m{padding-left:2rem}.pl5-m{padding-left:4rem}.pl6-m{padding-left:8rem}.pl7-m{padding-left:16rem}.pr0-m{padding-right:0}.pr1-m{padding-right:.25rem}.pr2-m{padding-right:.5rem}.pr3-m{padding-right:1rem}.pr4-m{padding-right:2rem}.pr5-m{padding-right:4rem}.pr6-m{padding-right:8rem}.pr7-m{padding-right:16rem}.pb0-m{padding-bottom:0}.pb1-m{padding-bottom:.25rem}.pb2-m{padding-bottom:.5rem}.pb3-m{padding-bottom:1rem}.pb4-m{padding-bottom:2rem}.pb5-m{padding-bottom:4rem}.pb6-m{padding-bottom:8rem}.pb7-m{padding-bottom:16rem}.pt0-m{padding-top:0}.pt1-m{padding-top:.25rem}.pt2-m{padding-top:.5rem}.pt3-m{padding-top:1rem}.pt4-m{padding-top:2rem}.pt5-m{padding-top:4rem}.pt6-m{padding-top:8rem}.pt7-m{padding-top:16rem}.pv0-m{padding-top:0;padding-bottom:0}.pv1-m{padding-top:.25rem;padding-bottom:.25rem}.pv2-m{padding-top:.5rem;padding-bottom:.5rem}.pv3-m{padding-top:1rem;padding-bottom:1rem}.pv4-m{padding-top:2rem;padding-bottom:2rem}.pv5-m{padding-top:4rem;padding-bottom:4rem}.pv6-m{padding-top:8rem;padding-bottom:8rem}.pv7-m{padding-top:16rem;padding-bottom:16rem}.ph0-m{padding-left:0;padding-right:0}.ph1-m{padding-left:.25rem;padding-right:.25rem}.ph2-m{padding-left:.5rem;padding-right:.5rem}.ph3-m{padding-left:1rem;padding-right:1rem}.ph4-m{padding-left:2rem;padding-right:2rem}.ph5-m{padding-left:4rem;padding-right:4rem}.ph6-m{padding-left:8rem;padding-right:8rem}.ph7-m{padding-left:16rem;padding-right:16rem}.ma0-m{margin:0}.ma1-m{margin:.25rem}.ma2-m{margin:.5rem}.ma3-m{margin:1rem}.ma4-m{margin:2rem}.ma5-m{margin:4rem}.ma6-m{margin:8rem}.ma7-m{margin:16rem}.ml0-m{margin-left:0}.ml1-m{margin-left:.25rem}.ml2-m{margin-left:.5rem}.ml3-m{margin-left:1rem}.ml4-m{margin-left:2rem}.ml5-m{margin-left:4rem}.ml6-m{margin-left:8rem}.ml7-m{margin-left:16rem}.mr0-m{margin-right:0}.mr1-m{margin-right:.25rem}.mr2-m{margin-right:.5rem}.mr3-m{margin-right:1rem}.mr4-m{margin-right:2rem}.mr5-m{margin-right:4rem}.mr6-m{margin-right:8rem}.mr7-m{margin-right:16rem}.mb0-m{margin-bottom:0}.mb1-m{margin-bottom:.25rem}.mb2-m{margin-bottom:.5rem}.mb3-m{margin-bottom:1rem}.mb4-m{margin-bottom:2rem}.mb5-m{margin-bottom:4rem}.mb6-m{margin-bottom:8rem}.mb7-m{margin-bottom:16rem}.mt0-m{margin-top:0}.mt1-m{margin-top:.25rem}.mt2-m{margin-top:.5rem}.mt3-m{margin-top:1rem}.mt4-m{margin-top:2rem}.mt5-m{margin-top:4rem}.mt6-m{margin-top:8rem}.mt7-m{margin-top:16rem}.mv0-m{margin-top:0;margin-bottom:0}.mv1-m{margin-top:.25rem;margin-bottom:.25rem}.mv2-m{margin-top:.5rem;margin-bottom:.5rem}.mv3-m{margin-top:1rem;margin-bottom:1rem}.mv4-m{margin-top:2rem;margin-bottom:2rem}.mv5-m{margin-top:4rem;margin-bottom:4rem}.mv6-m{margin-top:8rem;margin-bottom:8rem}.mv7-m{margin-top:16rem;margin-bottom:16rem}.mh0-m{margin-left:0;margin-right:0}.mh1-m{margin-left:.25rem;margin-right:.25rem}.mh2-m{margin-left:.5rem;margin-right:.5rem}.mh3-m{margin-left:1rem;margin-right:1rem}.mh4-m{margin-left:2rem;margin-right:2rem}.mh5-m{margin-left:4rem;margin-right:4rem}.mh6-m{margin-left:8rem;margin-right:8rem}.mh7-m{margin-left:16rem;margin-right:16rem}}@media screen and (min-width:60em){.pa0-l{padding:0}.pa1-l{padding:.25rem}.pa2-l{padding:.5rem}.pa3-l{padding:1rem}.pa4-l{padding:2rem}.pa5-l{padding:4rem}.pa6-l{padding:8rem}.pa7-l{padding:16rem}.pl0-l{padding-left:0}.pl1-l{padding-left:.25rem}.pl2-l{padding-left:.5rem}.pl3-l{padding-left:1rem}.pl4-l{padding-left:2rem}.pl5-l{padding-left:4rem}.pl6-l{padding-left:8rem}.pl7-l{padding-left:16rem}.pr0-l{padding-right:0}.pr1-l{padding-right:.25rem}.pr2-l{padding-right:.5rem}.pr3-l{padding-right:1rem}.pr4-l{padding-right:2rem}.pr5-l{padding-right:4rem}.pr6-l{padding-right:8rem}.pr7-l{padding-right:16rem}.pb0-l{padding-bottom:0}.pb1-l{padding-bottom:.25rem}.pb2-l{padding-bottom:.5rem}.pb3-l{padding-bottom:1rem}.pb4-l{padding-bottom:2rem}.pb5-l{padding-bottom:4rem}.pb6-l{padding-bottom:8rem}.pb7-l{padding-bottom:16rem}.pt0-l{padding-top:0}.pt1-l{padding-top:.25rem}.pt2-l{padding-top:.5rem}.pt3-l{padding-top:1rem}.pt4-l{padding-top:2rem}.pt5-l{padding-top:4rem}.pt6-l{padding-top:8rem}.pt7-l{padding-top:16rem}.pv0-l{padding-top:0;padding-bottom:0}.pv1-l{padding-top:.25rem;padding-bottom:.25rem}.pv2-l{padding-top:.5rem;padding-bottom:.5rem}.pv3-l{padding-top:1rem;padding-bottom:1rem}.pv4-l{padding-top:2rem;padding-bottom:2rem}.pv5-l{padding-top:4rem;padding-bottom:4rem}.pv6-l{padding-top:8rem;padding-bottom:8rem}.pv7-l{padding-top:16rem;padding-bottom:16rem}.ph0-l{padding-left:0;padding-right:0}.ph1-l{padding-left:.25rem;padding-right:.25rem}.ph2-l{padding-left:.5rem;padding-right:.5rem}.ph3-l{padding-left:1rem;padding-right:1rem}.ph4-l{padding-left:2rem;padding-right:2rem}.ph5-l{padding-left:4rem;padding-right:4rem}.ph6-l{padding-left:8rem;padding-right:8rem}.ph7-l{padding-left:16rem;padding-right:16rem}.ma0-l{margin:0}.ma1-l{margin:.25rem}.ma2-l{margin:.5rem}.ma3-l{margin:1rem}.ma4-l{margin:2rem}.ma5-l{margin:4rem}.ma6-l{margin:8rem}.ma7-l{margin:16rem}.ml0-l{margin-left:0}.ml1-l{margin-left:.25rem}.ml2-l{margin-left:.5rem}.ml3-l{margin-left:1rem}.ml4-l{margin-left:2rem}.ml5-l{margin-left:4rem}.ml6-l{margin-left:8rem}.ml7-l{margin-left:16rem}.mr0-l{margin-right:0}.mr1-l{margin-right:.25rem}.mr2-l{margin-right:.5rem}.mr3-l{margin-right:1rem}.mr4-l{margin-right:2rem}.mr5-l{margin-right:4rem}.mr6-l{margin-right:8rem}.mr7-l{margin-right:16rem}.mb0-l{margin-bottom:0}.mb1-l{margin-bottom:.25rem}.mb2-l{margin-bottom:.5rem}.mb3-l{margin-bottom:1rem}.mb4-l{margin-bottom:2rem}.mb5-l{margin-bottom:4rem}.mb6-l{margin-bottom:8rem}.mb7-l{margin-bottom:16rem}.mt0-l{margin-top:0}.mt1-l{margin-top:.25rem}.mt2-l{margin-top:.5rem}.mt3-l{margin-top:1rem}.mt4-l{margin-top:2rem}.mt5-l{margin-top:4rem}.mt6-l{margin-top:8rem}.mt7-l{margin-top:16rem}.mv0-l{margin-top:0;margin-bottom:0}.mv1-l{margin-top:.25rem;margin-bottom:.25rem}.mv2-l{margin-top:.5rem;margin-bottom:.5rem}.mv3-l{margin-top:1rem;margin-bottom:1rem}.mv4-l{margin-top:2rem;margin-bottom:2rem}.mv5-l{margin-top:4rem;margin-bottom:4rem}.mv6-l{margin-top:8rem;margin-bottom:8rem}.mv7-l{margin-top:16rem;margin-bottom:16rem}.mh0-l{margin-left:0;margin-right:0}.mh1-l{margin-left:.25rem;margin-right:.25rem}.mh2-l{margin-left:.5rem;margin-right:.5rem}.mh3-l{margin-left:1rem;margin-right:1rem}.mh4-l{margin-left:2rem;margin-right:2rem}.mh5-l{margin-left:4rem;margin-right:4rem}.mh6-l{margin-left:8rem;margin-right:8rem}.mh7-l{margin-left:16rem;margin-right:16rem}}.na1{margin:-.25rem}.na2{margin:-.5rem}.na3{margin:-1rem}.na4{margin:-2rem}.na5{margin:-4rem}.na6{margin:-8rem}.na7{margin:-16rem}.nl1{margin-left:-.25rem}.nl2{margin-left:-.5rem}.nl3{margin-left:-1rem}.nl4{margin-left:-2rem}.nl5{margin-left:-4rem}.nl6{margin-left:-8rem}.nl7{margin-left:-16rem}.nr1{margin-right:-.25rem}.nr2{margin-right:-.5rem}.nr3{margin-right:-1rem}.nr4{margin-right:-2rem}.nr5{margin-right:-4rem}.nr6{margin-right:-8rem}.nr7{margin-right:-16rem}.nb1{margin-bottom:-.25rem}.nb2{margin-bottom:-.5rem}.nb3{margin-bottom:-1rem}.nb4{margin-bottom:-2rem}.nb5{margin-bottom:-4rem}.nb6{margin-bottom:-8rem}.nb7{margin-bottom:-16rem}.nt1{margin-top:-.25rem}.nt2{margin-top:-.5rem}.nt3{margin-top:-1rem}.nt4{margin-top:-2rem}.nt5{margin-top:-4rem}.nt6{margin-top:-8rem}.nt7{margin-top:-16rem}@media screen and (min-width:30em){.na1-ns{margin:-.25rem}.na2-ns{margin:-.5rem}.na3-ns{margin:-1rem}.na4-ns{margin:-2rem}.na5-ns{margin:-4rem}.na6-ns{margin:-8rem}.na7-ns{margin:-16rem}.nl1-ns{margin-left:-.25rem}.nl2-ns{margin-left:-.5rem}.nl3-ns{margin-left:-1rem}.nl4-ns{margin-left:-2rem}.nl5-ns{margin-left:-4rem}.nl6-ns{margin-left:-8rem}.nl7-ns{margin-left:-16rem}.nr1-ns{margin-right:-.25rem}.nr2-ns{margin-right:-.5rem}.nr3-ns{margin-right:-1rem}.nr4-ns{margin-right:-2rem}.nr5-ns{margin-right:-4rem}.nr6-ns{margin-right:-8rem}.nr7-ns{margin-right:-16rem}.nb1-ns{margin-bottom:-.25rem}.nb2-ns{margin-bottom:-.5rem}.nb3-ns{margin-bottom:-1rem}.nb4-ns{margin-bottom:-2rem}.nb5-ns{margin-bottom:-4rem}.nb6-ns{margin-bottom:-8rem}.nb7-ns{margin-bottom:-16rem}.nt1-ns{margin-top:-.25rem}.nt2-ns{margin-top:-.5rem}.nt3-ns{margin-top:-1rem}.nt4-ns{margin-top:-2rem}.nt5-ns{margin-top:-4rem}.nt6-ns{margin-top:-8rem}.nt7-ns{margin-top:-16rem}}@media screen and (min-width:30em) and (max-width:60em){.na1-m{margin:-.25rem}.na2-m{margin:-.5rem}.na3-m{margin:-1rem}.na4-m{margin:-2rem}.na5-m{margin:-4rem}.na6-m{margin:-8rem}.na7-m{margin:-16rem}.nl1-m{margin-left:-.25rem}.nl2-m{margin-left:-.5rem}.nl3-m{margin-left:-1rem}.nl4-m{margin-left:-2rem}.nl5-m{margin-left:-4rem}.nl6-m{margin-left:-8rem}.nl7-m{margin-left:-16rem}.nr1-m{margin-right:-.25rem}.nr2-m{margin-right:-.5rem}.nr3-m{margin-right:-1rem}.nr4-m{margin-right:-2rem}.nr5-m{margin-right:-4rem}.nr6-m{margin-right:-8rem}.nr7-m{margin-right:-16rem}.nb1-m{margin-bottom:-.25rem}.nb2-m{margin-bottom:-.5rem}.nb3-m{margin-bottom:-1rem}.nb4-m{margin-bottom:-2rem}.nb5-m{margin-bottom:-4rem}.nb6-m{margin-bottom:-8rem}.nb7-m{margin-bottom:-16rem}.nt1-m{margin-top:-.25rem}.nt2-m{margin-top:-.5rem}.nt3-m{margin-top:-1rem}.nt4-m{margin-top:-2rem}.nt5-m{margin-top:-4rem}.nt6-m{margin-top:-8rem}.nt7-m{margin-top:-16rem}}@media screen and (min-width:60em){.na1-l{margin:-.25rem}.na2-l{margin:-.5rem}.na3-l{margin:-1rem}.na4-l{margin:-2rem}.na5-l{margin:-4rem}.na6-l{margin:-8rem}.na7-l{margin:-16rem}.nl1-l{margin-left:-.25rem}.nl2-l{margin-left:-.5rem}.nl3-l{margin-left:-1rem}.nl4-l{margin-left:-2rem}.nl5-l{margin-left:-4rem}.nl6-l{margin-left:-8rem}.nl7-l{margin-left:-16rem}.nr1-l{margin-right:-.25rem}.nr2-l{margin-right:-.5rem}.nr3-l{margin-right:-1rem}.nr4-l{margin-right:-2rem}.nr5-l{margin-right:-4rem}.nr6-l{margin-right:-8rem}.nr7-l{margin-right:-16rem}.nb1-l{margin-bottom:-.25rem}.nb2-l{margin-bottom:-.5rem}.nb3-l{margin-bottom:-1rem}.nb4-l{margin-bottom:-2rem}.nb5-l{margin-bottom:-4rem}.nb6-l{margin-bottom:-8rem}.nb7-l{margin-bottom:-16rem}.nt1-l{margin-top:-.25rem}.nt2-l{margin-top:-.5rem}.nt3-l{margin-top:-1rem}.nt4-l{margin-top:-2rem}.nt5-l{margin-top:-4rem}.nt6-l{margin-top:-8rem}.nt7-l{margin-top:-16rem}}.collapse{border-collapse:collapse;border-spacing:0}.striped--light-silver:nth-child(odd){background-color:#aaa}.striped--moon-gray:nth-child(odd){background-color:#ccc}.striped--light-gray:nth-child(odd){background-color:#eee}.striped--near-white:nth-child(odd){background-color:#f4f4f4}.stripe-light:nth-child(odd){background-color:hsla(0,0%,100%,.1)}.stripe-dark:nth-child(odd){background-color:rgba(0,0,0,.1)}.strike{text-decoration:line-through}.underline{text-decoration:underline}.no-underline{text-decoration:none}@media screen and (min-width:30em){.strike-ns{text-decoration:line-through}.underline-ns{text-decoration:underline}.no-underline-ns{text-decoration:none}}@media screen and (min-width:30em) and (max-width:60em){.strike-m{text-decoration:line-through}.underline-m{text-decoration:underline}.no-underline-m{text-decoration:none}}@media screen and (min-width:60em){.strike-l{text-decoration:line-through}.underline-l{text-decoration:underline}.no-underline-l{text-decoration:none}}.tl{text-align:left}.tr{text-align:right}.tc{text-align:center}.tj{text-align:justify}@media screen and (min-width:30em){.tl-ns{text-align:left}.tr-ns{text-align:right}.tc-ns{text-align:center}.tj-ns{text-align:justify}}@media screen and (min-width:30em) and (max-width:60em){.tl-m{text-align:left}.tr-m{text-align:right}.tc-m{text-align:center}.tj-m{text-align:justify}}@media screen and (min-width:60em){.tl-l{text-align:left}.tr-l{text-align:right}.tc-l{text-align:center}.tj-l{text-align:justify}}.ttc{text-transform:capitalize}.ttl{text-transform:lowercase}.ttu{text-transform:uppercase}.ttn{text-transform:none}@media screen and (min-width:30em){.ttc-ns{text-transform:capitalize}.ttl-ns{text-transform:lowercase}.ttu-ns{text-transform:uppercase}.ttn-ns{text-transform:none}}@media screen and (min-width:30em) and (max-width:60em){.ttc-m{text-transform:capitalize}.ttl-m{text-transform:lowercase}.ttu-m{text-transform:uppercase}.ttn-m{text-transform:none}}@media screen and (min-width:60em){.ttc-l{text-transform:capitalize}.ttl-l{text-transform:lowercase}.ttu-l{text-transform:uppercase}.ttn-l{text-transform:none}}.f-6,.f-headline{font-size:6rem}.f-5,.f-subheadline{font-size:5rem}.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){.f-6-ns,.f-headline-ns{font-size:6rem}.f-5-ns,.f-subheadline-ns{font-size:5rem}.f1-ns{font-size:3rem}.f2-ns{font-size:2.25rem}.f3-ns{font-size:1.5rem}.f4-ns{font-size:1.25rem}.f5-ns{font-size:1rem}.f6-ns{font-size:.875rem}.f7-ns{font-size:.75rem}}@media screen and (min-width:30em) and (max-width:60em){.f-6-m,.f-headline-m{font-size:6rem}.f-5-m,.f-subheadline-m{font-size:5rem}.f1-m{font-size:3rem}.f2-m{font-size:2.25rem}.f3-m{font-size:1.5rem}.f4-m{font-size:1.25rem}.f5-m{font-size:1rem}.f6-m{font-size:.875rem}.f7-m{font-size:.75rem}}@media screen and (min-width:60em){.f-6-l,.f-headline-l{font-size:6rem}.f-5-l,.f-subheadline-l{font-size:5rem}.f1-l{font-size:3rem}.f2-l{font-size:2.25rem}.f3-l{font-size:1.5rem}.f4-l{font-size:1.25rem}.f5-l{font-size:1rem}.f6-l{font-size:.875rem}.f7-l{font-size:.75rem}}.measure{max-width:30em}.measure-wide{max-width:34em}.measure-narrow{max-width:20em}.indent{text-indent:1em;margin-top:0;margin-bottom:0}.small-caps{-webkit-font-feature-settings:"c2sc";font-feature-settings:"c2sc";font-variant:small-caps}.truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media screen and (min-width:30em){.measure-ns{max-width:30em}.measure-wide-ns{max-width:34em}.measure-narrow-ns{max-width:20em}.indent-ns{text-indent:1em;margin-top:0;margin-bottom:0}.small-caps-ns{-webkit-font-feature-settings:"c2sc";font-feature-settings:"c2sc";font-variant:small-caps}.truncate-ns{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}@media screen and (min-width:30em) and (max-width:60em){.measure-m{max-width:30em}.measure-wide-m{max-width:34em}.measure-narrow-m{max-width:20em}.indent-m{text-indent:1em;margin-top:0;margin-bottom:0}.small-caps-m{-webkit-font-feature-settings:"c2sc";font-feature-settings:"c2sc";font-variant:small-caps}.truncate-m{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}@media screen and (min-width:60em){.measure-l{max-width:30em}.measure-wide-l{max-width:34em}.measure-narrow-l{max-width:20em}.indent-l{text-indent:1em;margin-top:0;margin-bottom:0}.small-caps-l{-webkit-font-feature-settings:"c2sc";font-feature-settings:"c2sc";font-variant:small-caps}.truncate-l{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}.overflow-container{overflow-y:scroll}.center{margin-left:auto}.center,.mr-auto{margin-right:auto}.ml-auto{margin-left:auto}@media screen and (min-width:30em){.center-ns{margin-left:auto}.center-ns,.mr-auto-ns{margin-right:auto}.ml-auto-ns{margin-left:auto}}@media screen and (min-width:30em) and (max-width:60em){.center-m{margin-left:auto}.center-m,.mr-auto-m{margin-right:auto}.ml-auto-m{margin-left:auto}}@media screen and (min-width:60em){.center-l{margin-left:auto}.center-l,.mr-auto-l{margin-right:auto}.ml-auto-l{margin-left:auto}}.clip{position:fixed!important;_position:absolute!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px)}@media screen and (min-width:30em){.clip-ns{position:fixed!important;_position:absolute!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px)}}@media screen and (min-width:30em) and (max-width:60em){.clip-m{position:fixed!important;_position:absolute!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px)}}@media screen and (min-width:60em){.clip-l{position:fixed!important;_position:absolute!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px)}}.ws-normal{white-space:normal}.nowrap{white-space:nowrap}.pre{white-space:pre}@media screen and (min-width:30em){.ws-normal-ns{white-space:normal}.nowrap-ns{white-space:nowrap}.pre-ns{white-space:pre}}@media screen and (min-width:30em) and (max-width:60em){.ws-normal-m{white-space:normal}.nowrap-m{white-space:nowrap}.pre-m{white-space:pre}}@media screen and (min-width:60em){.ws-normal-l{white-space:normal}.nowrap-l{white-space:nowrap}.pre-l{white-space:pre}}.v-base{vertical-align:baseline}.v-mid{vertical-align:middle}.v-top{vertical-align:top}.v-btm{vertical-align:bottom}@media screen and (min-width:30em){.v-base-ns{vertical-align:baseline}.v-mid-ns{vertical-align:middle}.v-top-ns{vertical-align:top}.v-btm-ns{vertical-align:bottom}}@media screen and (min-width:30em) and (max-width:60em){.v-base-m{vertical-align:baseline}.v-mid-m{vertical-align:middle}.v-top-m{vertical-align:top}.v-btm-m{vertical-align:bottom}}@media screen and (min-width:60em){.v-base-l{vertical-align:baseline}.v-mid-l{vertical-align:middle}.v-top-l{vertical-align:top}.v-btm-l{vertical-align:bottom}}.dim{opacity:1}.dim,.dim:focus,.dim:hover{transition:opacity .15s ease-in}.dim:focus,.dim:hover{opacity:.5}.dim:active{opacity:.8;transition:opacity .15s ease-out}.glow,.glow:focus,.glow:hover{transition:opacity .15s ease-in}.glow:focus,.glow:hover{opacity:1}.hide-child .child{opacity:0;transition:opacity .15s ease-in}.hide-child:active .child,.hide-child:focus .child,.hide-child:hover .child{opacity:1;transition:opacity .15s ease-in}.underline-hover:focus,.underline-hover:hover{text-decoration:underline}.grow{-moz-osx-font-smoothing:grayscale;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform:translateZ(0);transform:translateZ(0);transition:-webkit-transform .25s ease-out;transition:transform .25s ease-out;transition:transform .25s ease-out,-webkit-transform .25s ease-out}.grow:focus,.grow:hover{-webkit-transform:scale(1.05);transform:scale(1.05)}.grow:active{-webkit-transform:scale(.9);transform:scale(.9)}.grow-large{-moz-osx-font-smoothing:grayscale;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform:translateZ(0);transform:translateZ(0);transition:-webkit-transform .25s ease-in-out;transition:transform .25s ease-in-out;transition:transform .25s ease-in-out,-webkit-transform .25s ease-in-out}.grow-large:focus,.grow-large:hover{-webkit-transform:scale(1.2);transform:scale(1.2)}.grow-large:active{-webkit-transform:scale(.95);transform:scale(.95)}.pointer:hover,.shadow-hover{cursor:pointer}.shadow-hover{position:relative;transition:all .5s cubic-bezier(.165,.84,.44,1)}.shadow-hover:after{content:"";box-shadow:0 0 16px 2px rgba(0,0,0,.2);border-radius:inherit;opacity:0;position:absolute;top:0;left:0;width:100%;height:100%;z-index:-1;transition:opacity .5s cubic-bezier(.165,.84,.44,1)}.shadow-hover:focus:after,.shadow-hover:hover:after{opacity:1}.bg-animate,.bg-animate:focus,.bg-animate:hover{transition:background-color .15s ease-in-out}.z-0{z-index:0}.z-1{z-index:1}.z-2{z-index:2}.z-3{z-index:3}.z-4{z-index:4}.z-5{z-index:5}.z-999{z-index:999}.z-9999{z-index:9999}.z-max{z-index:2147483647}.z-inherit{z-index:inherit}.z-initial{z-index:auto}.z-unset{z-index:unset}.nested-copy-line-height ol,.nested-copy-line-height p,.nested-copy-line-height ul{line-height:1.5}.nested-headline-line-height h1,.nested-headline-line-height h2,.nested-headline-line-height h3,.nested-headline-line-height h4,.nested-headline-line-height h5,.nested-headline-line-height h6{line-height:1.25}.nested-list-reset ol,.nested-list-reset ul{padding-left:0;margin-left:0;list-style-type:none}.nested-copy-indent p+p{text-indent:1em;margin-top:0;margin-bottom:0}.nested-copy-seperator p+p{margin-top:1.5em}.nested-img img{width:100%;max-width:100%;display:block}.nested-links a{transition:color .15s ease-in}.nested-links a:focus,.nested-links a:hover{color:#96ccff;transition:color .15s ease-in}@font-face{font-family:Muli;font-style:normal;font-weight:200;src:url(/files/muli-latin-200.eot);src:local("Muli Extra Light "),local("Muli-Extra Light"),url(/files/muli-latin-200.eot?#iefix) format("embedded-opentype"),url(/files/muli-latin-200.woff2) format("woff2"),url(/files/muli-latin-200.woff) format("woff"),url(/files/muli-latin-200.svg#muli) format("svg")}@font-face{font-family:Muli;font-style:italic;font-weight:200;src:url(/files/muli-latin-200italic.eot);src:local("Muli Extra Light italic"),local("Muli-Extra Lightitalic"),url(/files/muli-latin-200italic.eot?#iefix) format("embedded-opentype"),url(/files/muli-latin-200italic.woff2) format("woff2"),url(/files/muli-latin-200italic.woff) format("woff"),url(/files/muli-latin-200italic.svg#muli) format("svg")}@font-face{font-family:Muli;font-style:normal;font-weight:400;src:url(/files/muli-latin-400.eot);src:local("Muli Regular "),local("Muli-Regular"),url(/files/muli-latin-400.eot?#iefix) format("embedded-opentype"),url(/files/muli-latin-400.woff2) format("woff2"),url(/files/muli-latin-400.woff) format("woff"),url(/files/muli-latin-400.svg#muli) format("svg")}@font-face{font-family:Muli;font-style:italic;font-weight:400;src:url(/files/muli-latin-400italic.eot);src:local("Muli Regular italic"),local("Muli-Regularitalic"),url(/files/muli-latin-400italic.eot?#iefix) format("embedded-opentype"),url(/files/muli-latin-400italic.woff2) format("woff2"),url(/files/muli-latin-400italic.woff) format("woff"),url(/files/muli-latin-400italic.svg#muli) format("svg")}@font-face{font-family:Muli;font-style:normal;font-weight:800;src:url(/files/muli-latin-800.eot);src:local("Muli ExtraBold "),local("Muli-ExtraBold"),url(/files/muli-latin-800.eot?#iefix) format("embedded-opentype"),url(/files/muli-latin-800.woff2) format("woff2"),url(/files/muli-latin-800.woff) format("woff"),url(/files/muli-latin-800.svg#muli) format("svg")}@font-face{font-family:Muli;font-style:italic;font-weight:800;src:url(/files/muli-latin-800italic.eot);src:local("Muli ExtraBold italic"),local("Muli-ExtraBolditalic"),url(/files/muli-latin-800italic.eot?#iefix) format("embedded-opentype"),url(/files/muli-latin-800italic.woff2) format("woff2"),url(/files/muli-latin-800italic.woff) format("woff"),url(/files/muli-latin-800italic.svg#muli) format("svg")}.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 a{0%{opacity:0}to{opacity:1}}@keyframes a{0%{opacity:0}to{opacity:1}}.fadeIn{-webkit-animation-name:a;animation-name:a}.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:rgba(0,0,0,.05)}.hide-child-menu .child-menu{display:none}.hide-child-menu:active .child-menu,.hide-child-menu:focus .child-menu,.hide-child-menu:hover .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;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;box-sizing:border-box;transition:box-shadow .4s ease,background .4s ease;border:0;border-radius:16px;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{box-shadow:inset 0 0 0 1px #b3b3b3}.searchbox__input:active,.searchbox__input:focus{outline:0;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::placeholder{color:#aaa}.searchbox__submit{position:absolute;top:0;margin:0;border:0;border-radius:16px 0 0 16px;background-color:rgba(69,142,225,0);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:none;cursor:pointer;padding:0;font-size:inherit;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;fill:rgba(0,0,0,.5)}.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:b;animation-name:b;-webkit-animation-duration:.15s;animation-duration:.15s}@-webkit-keyframes b{0%{-webkit-transform:translate3d(-20%,0,0);transform:translate3d(-20%,0,0);opacity:0}to{-webkit-transform:none;transform:none;opacity:1}}@keyframes b{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:transparent;border:none;z-index:1;max-width:600px;min-width:500px;box-shadow:0 1px 0 0 rgba(0,0,0,.2),0 2px 3px 0 rgba(0,0,0,.1)}.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:rgba(69,142,225,.05)}.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 *{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:rgba(143,187,237,.1);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;box-shadow:inset 0 -2px 0 0 rgba(69,142,225,.8);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:none}.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,<svg width="10" height="10" viewBox="0 0 20 38" xmlns="http://www.w3.org/2000/svg"><path d="M1.49 4.31l14 16.126.002-2.624-14 16.074-1.314 1.51 3.017 2.626 1.313-1.508 14-16.075 1.142-1.313-1.14-1.313-14-16.125L3.2.18.18 2.8l1.31 1.51z" fill-rule="evenodd" fill="%231D3657" /></svg>');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;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,<svg viewBox='0 0 130 18' xmlns='http://www.w3.org/2000/svg'><defs><linearGradient x1='-36.868%' y1='134.936%' x2='129.432%' y2='-27.7%' id='a'><stop stop-color='%2300AEFF' offset='0%'/><stop stop-color='%233369E7' offset='100%'/></linearGradient></defs><g fill='none' fill-rule='evenodd'><path d='M59.399.022h13.299a2.372 2.372 0 0 1 2.377 2.364V15.62a2.372 2.372 0 0 1-2.377 2.364H59.399a2.372 2.372 0 0 1-2.377-2.364V2.381A2.368 2.368 0 0 1 59.399.022z' fill='url(%23a)'/><path d='M66.257 4.56c-2.815 0-5.1 2.272-5.1 5.078 0 2.806 2.284 5.072 5.1 5.072 2.815 0 5.1-2.272 5.1-5.078 0-2.806-2.279-5.072-5.1-5.072zm0 8.652c-1.983 0-3.593-1.602-3.593-3.574 0-1.972 1.61-3.574 3.593-3.574 1.983 0 3.593 1.602 3.593 3.574a3.582 3.582 0 0 1-3.593 3.574zm0-6.418v2.664c0 .076.082.131.153.093l2.377-1.226c.055-.027.071-.093.044-.147a2.96 2.96 0 0 0-2.465-1.487c-.055 0-.11.044-.11.104l.001-.001zm-3.33-1.956l-.312-.311a.783.783 0 0 0-1.106 0l-.372.37a.773.773 0 0 0 0 1.101l.307.305c.049.049.121.038.164-.011.181-.245.378-.479.597-.697.225-.223.455-.42.707-.599.055-.033.06-.109.016-.158h-.001zm5.001-.806v-.616a.781.781 0 0 0-.783-.779h-1.824a.78.78 0 0 0-.783.779v.632c0 .071.066.12.137.104a5.736 5.736 0 0 1 1.588-.223c.52 0 1.035.071 1.534.207a.106.106 0 0 0 .131-.104z' fill='%23FFF'/><path d='M102.162 13.762c0 1.455-.372 2.517-1.123 3.193-.75.676-1.895 1.013-3.44 1.013-.564 0-1.736-.109-2.673-.316l.345-1.689c.783.163 1.819.207 2.361.207.86 0 1.473-.174 1.84-.523.367-.349.548-.866.548-1.553v-.349a6.374 6.374 0 0 1-.838.316 4.151 4.151 0 0 1-1.194.158 4.515 4.515 0 0 1-1.616-.278 3.385 3.385 0 0 1-1.254-.817 3.744 3.744 0 0 1-.811-1.351c-.192-.539-.29-1.504-.29-2.212 0-.665.104-1.498.307-2.054a3.925 3.925 0 0 1 .904-1.433 4.124 4.124 0 0 1 1.441-.926 5.31 5.31 0 0 1 1.945-.365c.696 0 1.337.087 1.961.191a15.86 15.86 0 0 1 1.588.332v8.456h-.001zm-5.954-4.206c0 .893.197 1.885.592 2.299.394.414.904.621 1.528.621.34 0 .663-.049.964-.142a2.75 2.75 0 0 0 .734-.332v-5.29a8.531 8.531 0 0 0-1.413-.18c-.778-.022-1.369.294-1.786.801-.411.507-.619 1.395-.619 2.223zm16.12 0c0 .719-.104 1.264-.318 1.858a4.389 4.389 0 0 1-.904 1.52c-.389.42-.854.746-1.402.975-.548.229-1.391.36-1.813.36-.422-.005-1.26-.125-1.802-.36a4.088 4.088 0 0 1-1.397-.975 4.486 4.486 0 0 1-.909-1.52 5.037 5.037 0 0 1-.329-1.858c0-.719.099-1.411.318-1.999.219-.588.526-1.09.92-1.509.394-.42.865-.741 1.402-.97a4.547 4.547 0 0 1 1.786-.338 4.69 4.69 0 0 1 1.791.338c.548.229 1.019.55 1.402.97.389.42.69.921.909 1.509.23.588.345 1.28.345 1.999h.001zm-2.191.005c0-.921-.203-1.689-.597-2.223-.394-.539-.948-.806-1.654-.806-.707 0-1.26.267-1.654.806-.394.539-.586 1.302-.586 2.223 0 .932.197 1.558.592 2.098.394.545.948.812 1.654.812.707 0 1.26-.272 1.654-.812.394-.545.592-1.166.592-2.098h-.001zm6.962 4.707c-3.511.016-3.511-2.822-3.511-3.274L113.583.926l2.142-.338v10.003c0 .256 0 1.88 1.375 1.885v1.792h-.001zm3.774 0h-2.153V5.072l2.153-.338v9.534zm-1.079-10.542c.718 0 1.304-.578 1.304-1.291 0-.714-.581-1.291-1.304-1.291-.723 0-1.304.578-1.304 1.291 0 .714.586 1.291 1.304 1.291zm6.431 1.013c.707 0 1.304.087 1.786.262.482.174.871.42 1.156.73.285.311.488.735.608 1.182.126.447.186.937.186 1.476v5.481a25.24 25.24 0 0 1-1.495.251c-.668.098-1.419.147-2.251.147a6.829 6.829 0 0 1-1.517-.158 3.213 3.213 0 0 1-1.178-.507 2.455 2.455 0 0 1-.761-.904c-.181-.37-.274-.893-.274-1.438 0-.523.104-.855.307-1.215.208-.36.487-.654.838-.883a3.609 3.609 0 0 1 1.227-.49 7.073 7.073 0 0 1 2.202-.103c.263.027.537.076.833.147v-.349c0-.245-.027-.479-.088-.697a1.486 1.486 0 0 0-.307-.583c-.148-.169-.34-.3-.581-.392a2.536 2.536 0 0 0-.915-.163c-.493 0-.942.06-1.353.131-.411.071-.75.153-1.008.245l-.257-1.749c.268-.093.668-.185 1.183-.278a9.335 9.335 0 0 1 1.66-.142l-.001-.001zm.181 7.731c.657 0 1.145-.038 1.484-.104v-2.168a5.097 5.097 0 0 0-1.978-.104c-.241.033-.46.098-.652.191a1.167 1.167 0 0 0-.466.392c-.121.169-.175.267-.175.523 0 .501.175.79.493.981.323.196.75.289 1.293.289h.001zM84.109 4.794c.707 0 1.304.087 1.786.262.482.174.871.42 1.156.73.29.316.487.735.608 1.182.126.447.186.937.186 1.476v5.481a25.24 25.24 0 0 1-1.495.251c-.668.098-1.419.147-2.251.147a6.829 6.829 0 0 1-1.517-.158 3.213 3.213 0 0 1-1.178-.507 2.455 2.455 0 0 1-.761-.904c-.181-.37-.274-.893-.274-1.438 0-.523.104-.855.307-1.215.208-.36.487-.654.838-.883a3.609 3.609 0 0 1 1.227-.49 7.073 7.073 0 0 1 2.202-.103c.257.027.537.076.833.147v-.349c0-.245-.027-.479-.088-.697a1.486 1.486 0 0 0-.307-.583c-.148-.169-.34-.3-.581-.392a2.536 2.536 0 0 0-.915-.163c-.493 0-.942.06-1.353.131-.411.071-.75.153-1.008.245l-.257-1.749c.268-.093.668-.185 1.183-.278a8.89 8.89 0 0 1 1.66-.142l-.001-.001zm.186 7.736c.657 0 1.145-.038 1.484-.104v-2.168a5.097 5.097 0 0 0-1.978-.104c-.241.033-.46.098-.652.191a1.167 1.167 0 0 0-.466.392c-.121.169-.175.267-.175.523 0 .501.175.79.493.981.318.191.75.289 1.293.289h.001zm8.682 1.738c-3.511.016-3.511-2.822-3.511-3.274L89.461.926l2.142-.338v10.003c0 .256 0 1.88 1.375 1.885v1.792h-.001z' fill='%23182359'/><path d='M5.027 11.025c0 .698-.252 1.246-.757 1.644-.505.397-1.201.596-2.089.596-.888 0-1.615-.138-2.181-.414v-1.214c.358.168.739.301 1.141.397.403.097.778.145 1.125.145.508 0 .884-.097 1.125-.29a.945.945 0 0 0 .363-.779.978.978 0 0 0-.333-.747c-.222-.204-.68-.446-1.375-.725-.716-.29-1.221-.621-1.515-.994-.294-.372-.44-.82-.44-1.343 0-.655.233-1.171.698-1.547.466-.376 1.09-.564 1.875-.564.752 0 1.5.165 2.245.494l-.408 1.047c-.698-.294-1.321-.44-1.869-.44-.415 0-.73.09-.945.271a.89.89 0 0 0-.322.717c0 .204.043.379.129.524.086.145.227.282.424.411.197.129.551.299 1.063.51.577.24.999.464 1.268.671.269.208.466.442.591.704.125.261.188.569.188.924l-.001.002zm3.98 2.24c-.924 0-1.646-.269-2.167-.808-.521-.539-.782-1.281-.782-2.226 0-.97.242-1.733.725-2.288.483-.555 1.148-.833 1.993-.833.784 0 1.404.238 1.858.714.455.476.682 1.132.682 1.966v.682H7.357c.018.577.174 1.02.467 1.329.294.31.707.465 1.241.465.351 0 .678-.033.98-.099a5.1 5.1 0 0 0 .975-.33v1.026a3.865 3.865 0 0 1-.935.312 5.723 5.723 0 0 1-1.08.091l.002-.001zm-.231-5.199c-.401 0-.722.127-.964.381s-.386.625-.432 1.112h2.696c-.007-.491-.125-.862-.354-1.115-.229-.252-.544-.379-.945-.379l-.001.001zm7.692 5.092l-.252-.827h-.043c-.286.362-.575.608-.865.739-.29.131-.662.196-1.117.196-.584 0-1.039-.158-1.367-.473-.328-.315-.491-.761-.491-1.337 0-.612.227-1.074.682-1.386.455-.312 1.148-.482 2.079-.51l1.026-.032v-.317c0-.38-.089-.663-.266-.851-.177-.188-.452-.282-.824-.282-.304 0-.596.045-.876.134a6.68 6.68 0 0 0-.806.317l-.408-.902a4.414 4.414 0 0 1 1.058-.384 4.856 4.856 0 0 1 1.085-.132c.756 0 1.326.165 1.711.494.385.329.577.847.577 1.552v4.002h-.902l-.001-.001zm-1.88-.859c.458 0 .826-.128 1.104-.384.278-.256.416-.615.416-1.077v-.516l-.763.032c-.594.021-1.027.121-1.297.298s-.406.448-.406.814c0 .265.079.47.236.615.158.145.394.218.709.218h.001zm7.557-5.189c.254 0 .464.018.628.054l-.124 1.176a2.383 2.383 0 0 0-.559-.064c-.505 0-.914.165-1.227.494-.313.329-.47.757-.47 1.284v3.105h-1.262V7.218h.988l.167 1.047h.064c.197-.354.454-.636.771-.843a1.83 1.83 0 0 1 1.023-.312h.001zm4.125 6.155c-.899 0-1.582-.262-2.049-.787-.467-.525-.701-1.277-.701-2.259 0-.999.244-1.767.733-2.304.489-.537 1.195-.806 2.119-.806.627 0 1.191.116 1.692.349l-.381 1.015c-.534-.208-.974-.312-1.321-.312-1.028 0-1.542.682-1.542 2.046 0 .666.128 1.166.384 1.501.256.335.631.502 1.125.502a3.23 3.23 0 0 0 1.595-.419v1.101a2.53 2.53 0 0 1-.722.285 4.356 4.356 0 0 1-.932.086v.002zm8.277-.107h-1.268V9.506c0-.458-.092-.8-.277-1.026-.184-.226-.477-.338-.878-.338-.53 0-.919.158-1.168.475-.249.317-.373.848-.373 1.593v2.949h-1.262V4.801h1.262v2.122c0 .34-.021.704-.064 1.09h.081a1.76 1.76 0 0 1 .717-.666c.306-.158.663-.236 1.072-.236 1.439 0 2.159.725 2.159 2.175v3.873l-.001-.001zm7.649-6.048c.741 0 1.319.269 1.732.806.414.537.62 1.291.62 2.261 0 .974-.209 1.732-.628 2.275-.419.542-1.001.814-1.746.814-.752 0-1.336-.27-1.751-.811h-.086l-.231.704h-.945V4.801h1.262v1.987l-.021.655-.032.553h.054c.401-.591.992-.886 1.772-.886zm-.328 1.031c-.508 0-.875.149-1.098.448-.224.299-.339.799-.346 1.501v.086c0 .723.115 1.247.344 1.571.229.324.603.486 1.123.486.448 0 .787-.177 1.018-.532.231-.354.346-.867.346-1.536 0-1.35-.462-2.025-1.386-2.025l-.001.001zm3.244-.924h1.375l1.209 3.368c.183.48.304.931.365 1.354h.043c.032-.197.091-.436.177-.717.086-.281.541-1.616 1.364-4.004h1.364l-2.541 6.73c-.462 1.235-1.232 1.853-2.31 1.853-.279 0-.551-.03-.816-.091v-.999c.19.043.406.064.65.064.609 0 1.037-.353 1.284-1.058l.22-.559-2.385-5.941h.001z' fill='%231D3657'/></g></svg>");background-repeat:no-repeat;background-position:50%;background-size:100%;overflow:hidden;text-indent:-9000px;padding:0!important;width:100%;height:100%;display:block}.overflow-x-scroll{-webkit-overflow-scrolling:touch}.row{transition:-webkit-transform .45s;transition:transform .45s;transition:transform .45s,-webkit-transform .45s;font-size:0}.tile{transition:all .45s}.details{background:linear-gradient(0deg,rgba(0,0,0,.9),transparent);transition:opacity .45s}.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:rgba(27,31,35,.05);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:1px solid #ccc}.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:none;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 .copied,.tab-content .copy{display:none}.tab-content .tab-pane.active+.copied,.tab-content .tab-pane.active+.copy{display:block}.primary-color{color:#0594cb}.bg-primary-color,.hover-bg-primary-color:hover{background-color:#0594cb}.primary-color-dark{color:#0a1922}.bg-primary-color-dark,.hover-bg-primary-color-dark:hover{background-color:#0a1922}.primary-color-light{color:#f9f9f9}.bg-primary-color-light,.hover-bg-primary-color-light:hover{background-color:#f9f9f9}.accent-color{color:#ebb951}.bg-accent-color,.hover-bg-accent-color:hover{background-color:#ebb951}.accent-color-light,.hover-accent-color-light:hover{color:#ff4088}.bg-accent-color-light,.hover-bg-accent-color-light:hover{background-color:#ff4088}.accent-color-dark{color:#33ba91}.bg-accent-color-dark,.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 ol,.prose ul{margin-bottom:2em}.prose ol li,.prose ul li{margin-bottom:.5em}.prose li:hover{background-color:#eee}.prose ::-moz-selection{background:#0594cb;color:#fff}.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}.font_small,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 tc,.prose table td{padding:.75em .5em;text-align:left;border-right:1px solid #eee}.prose table tr:nth-child(2n){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(.875rem + .5 * ((100vw - 20rem) / 60))}}.code,.highlight pre,code,pre code{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:active,.pagination li.active a:link,.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;transition:opacity .15s ease-in}.facebook,.instagram,.twitter,.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,[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 .ln,.chroma .lnt{margin-right:.4em;padding:0 .4em}.chroma .k,.chroma .kc,.chroma .kd,.chroma .kn,.chroma .kp,.chroma .kr,.chroma .kt{font-weight:700}.chroma .kt{color:#458}.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,.chroma .nf{color:#900;font-weight:700}.chroma .nn{color:#555}.chroma .nt{color:navy}.chroma .nv{color:teal}.chroma .dl,.chroma .s,.chroma .s2,.chroma .sa,.chroma .sb,.chroma .sc,.chroma .sd,.chroma .se,.chroma .sh,.chroma .si,.chroma .sx{color:#b84}.chroma .sr{color:olive}.chroma .s1,.chroma .ss{color:#b84}.chroma .il,.chroma .m,.chroma .mb,.chroma .mf,.chroma .mh,.chroma .mi,.chroma .mo{color:#099}.chroma .o,.chroma .ow{font-weight:700}.chroma .c,.chroma .c1,.chroma .ch,.chroma .cm{color:#998;font-style:italic}.chroma .cs{font-style:italic}.chroma .cp,.chroma .cpf,.chroma .cs{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%}