diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 00000000..e69de29b diff --git a/CNAME b/CNAME new file mode 100644 index 00000000..b6f0ecb2 --- /dev/null +++ b/CNAME @@ -0,0 +1 @@ +mbt.informal.systems diff --git a/README.md b/README.md new file mode 100644 index 00000000..d3def5ae --- /dev/null +++ b/README.md @@ -0,0 +1,154 @@ +# Jekyll Website for Model Based Techniques + +The website is live at [https://mbt.informal.systems](https://mbt.informal.systems) + +## Description + +The website is built using [`jekyll`](https://jekyllrb.com) and the sources are contained inside `jekyll` directory. + +The pages are written in Markdown format supporting some [extra](https://github.com/pmarsceill/just-the-docs) [features](https://github.com/jeffreytse/jekyll-spaceship). + +## Publishing + +The website is always compiled and served from the latest `main` branch using [Github workflow](https://github.com/informalsystems/modelator/blob/main/.github/workflows/ghpages.yml). + +_So, don't push any imcomplete changes to the `main` branch._ + +To see your changes, compile locally. + +```sh +git checkout -b new_page # to create a new branch +cd jekyll +# make sure `bundle` is installed +bundle install +bundle exec jekyll serve +# add `-w` option to recompile automatically the files are changed +# when you are finished, push the commits to new_page branch +``` + +### Troubleshooting + +If you are using M1 Apple silicon then you might have issues running jekyll locally. + +You _might_ benefit from these resources + +- [github issue discussing jekyll on M1](https://github.com/jekyll/jekyll/issues/8576) +- [a guide to installing Ruby (on M1)](https://github.com/monfresh/laptop) + +## Maintainance + +As discussed above, to add new changes or pages to the website, we need to update `main` branch. As per our [contribution guide](/CONTRIBUTING.md), please follow the rules of opening a PR to `main`. + +## Creating new pages + +0. We write pages using `Markdown` syntax. The files are named `*.md`. +1. Each page must start with a [front matter](https://jekyllrb.com/docs/front-matter). + - It is a code block with `yaml` data wrapped with `---`. It contains the necessary information for `jekyll` to compile the markdown file. It looks like this, + ``` + --- + title: Homepage + layout: default + --- + ``` +2. It must mention these following `variables`. + - `title` - title of the page + - `layout` - jekyll layout. just use `default` if you do not know what to use. + - Other useful `variables` for our websites are, + - `nav_order` - orders the title in TOC. + - `has_children` - mentions the page has child pages. + - `parent` - mentions who's the parent of this child page. + - `grand_parent` - mentions who's the grand parent of this child page + - [more](https://pmarsceill.github.io/just-the-docs/docs/navigation-structure) - `just-the-doc` reference + +3. Write your page in `markdown` format; probably using [some of the extra features](https://github.com/jeffreytse/jekyll-spaceship). + +4. Verify everything compiles using `bundle exec jekyll serve` and check the website on localhost. + +5. Push the changes to your branch. + +### Structuring + +Normally the new files can be anywhere as long as they are properly related by `parent`, `grand_parent` and `has_children` variables. + +Also `just-the-doc` supports [some customizations](https://pmarsceill.github.io/just-the-docs/docs/navigation-structure). + +## Sample page + +``` +> cat blogs.md +--- +title: Blog posts +layout: default +parent: Homepage +nav_order: 2 +--- + +# Welcome to my blogs. +``` + +## Light CheatSheat + +### Emoji + +You can type any emoji like this `:smile: :smiley: :cry: :wink:` + +> See full emoji list [here](https://www.webfx.com/tools/emoji-cheat-sheet/). + +### Embedding + +``` +![](https://www.youtube.com/watch?v=aqz-KE-bpKQ) +![](https://vimeo.com/124148255) +{%pdf https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf %} +``` + +### MathJax + +You can render *LaTeX* mathematical expressions using **MathJax**, as on [math.stackexchange.com](https://math.stackexchange.com/): + +``` +The *Gamma function* satisfying $\Gamma(n) = (n-1)!\quad\forall n\in\mathbb N$ is via the Euler integral + +$$ +x = {-b \pm \sqrt{b^2-4ac} \over 2a}. +$$ + +$$ +\Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,. +$$ +``` + +> More information about **LaTeX** mathematical expressions [here](https://meta.math.stackexchange.com/questions/5020/mathjax-basic-tutorial-and-quick-reference). + +### Diagrams + +#### UML Sequence Diagrams + +You can render sequence diagrams like this: + +```plantuml! +Alice->Bob: Hello Bob, how are you? +Note right of Bob: Bob thinks +Bob-->Alice: I am good thanks! +Note left of Alice: Alice responds +Alice->Bob: Where have you been? +``` +#### Mermaid + +```mermaid! +gantt + title A Gantt Diagram + + section Section + A task: a1, 2014-01-01, 30d + Another task: after a1, 20d + + section Another + Task in sec: 2014-01-12, 12d + Another task: 24d +``` + +## Dev details + +Theme: `just-the-docs` ([Github](https://github.com/pmarsceill/just-the-docs), [Usage](https://pmarsceill.github.io/just-the-docs))\ +Jekyll plugin: `jekyll-spaceship` ([Github](https://github.com/jeffreytse/jekyll-spaceship), [Usage](https://github.com/jeffreytse/jekyll-spaceship#usage)) diff --git a/assets/css/just-the-docs-dark.css b/assets/css/just-the-docs-dark.css new file mode 100644 index 00000000..152a35eb --- /dev/null +++ b/assets/css/just-the-docs-dark.css @@ -0,0 +1,7595 @@ +@charset "UTF-8"; +@import url("https://fonts.googleapis.com/css2?family=Mukta+Mahee&display=swap"); +.highlight, +pre.highlight { + background: #f9f9f9; + color: #383942; +} + +.highlight pre { + background: #f9f9f9; +} + +.highlight .hll { + background: #f9f9f9; +} + +.highlight .c { + color: #9fa0a6; + font-style: italic; +} + +.highlight .err { + color: #fff; + background-color: #e05151; +} + +.highlight .k { + color: #a625a4; +} + +.highlight .l { + color: #50a04f; +} + +.highlight .n { + color: #383942; +} + +.highlight .o { + color: #383942; +} + +.highlight .p { + color: #383942; +} + +.highlight .cm { + color: #9fa0a6; + font-style: italic; +} + +.highlight .cp { + color: #9fa0a6; + font-style: italic; +} + +.highlight .c1 { + color: #9fa0a6; + font-style: italic; +} + +.highlight .cs { + color: #9fa0a6; + font-style: italic; +} + +.highlight .ge { + font-style: italic; +} + +.highlight .gs { + font-weight: 700; +} + +.highlight .kc { + color: #a625a4; +} + +.highlight .kd { + color: #a625a4; +} + +.highlight .kn { + color: #a625a4; +} + +.highlight .kp { + color: #a625a4; +} + +.highlight .kr { + color: #a625a4; +} + +.highlight .kt { + color: #a625a4; +} + +.highlight .ld { + color: #50a04f; +} + +.highlight .m { + color: #b66a00; +} + +.highlight .s { + color: #50a04f; +} + +.highlight .na { + color: #b66a00; +} + +.highlight .nb { + color: #ca7601; +} + +.highlight .nc { + color: #ca7601; +} + +.highlight .no { + color: #ca7601; +} + +.highlight .nd { + color: #ca7601; +} + +.highlight .ni { + color: #ca7601; +} + +.highlight .ne { + color: #ca7601; +} + +.highlight .nf { + color: #383942; +} + +.highlight .nl { + color: #ca7601; +} + +.highlight .nn { + color: #383942; +} + +.highlight .nx { + color: #383942; +} + +.highlight .py { + color: #ca7601; +} + +.highlight .nt { + color: #e35549; +} + +.highlight .nv { + color: #ca7601; +} + +.highlight .ow { + font-weight: 700; +} + +.highlight .w { + color: #f8f8f2; +} + +.highlight .mf { + color: #b66a00; +} + +.highlight .mh { + color: #b66a00; +} + +.highlight .mi { + color: #b66a00; +} + +.highlight .mo { + color: #b66a00; +} + +.highlight .sb { + color: #50a04f; +} + +.highlight .sc { + color: #50a04f; +} + +.highlight .sd { + color: #50a04f; +} + +.highlight .s2 { + color: #50a04f; +} + +.highlight .se { + color: #50a04f; +} + +.highlight .sh { + color: #50a04f; +} + +.highlight .si { + color: #50a04f; +} + +.highlight .sx { + color: #50a04f; +} + +.highlight .sr { + color: #0083bb; +} + +.highlight .s1 { + color: #50a04f; +} + +.highlight .ss { + color: #0083bb; +} + +.highlight .bp { + color: #ca7601; +} + +.highlight .vc { + color: #ca7601; +} + +.highlight .vg { + color: #ca7601; +} + +.highlight .vi { + color: #e35549; +} + +.highlight .il { + color: #b66a00; +} + +.highlight .gu { + color: #75715e; +} + +.highlight .gd { + color: #e05151; +} + +.highlight .gi { + color: #43d089; +} + +.highlight .language-json .w + .s2 { + color: #e35549; +} + +.highlight .language-json .kc { + color: #0083bb; +} + +.highlight, +pre.highlight { + background: #31343f; + color: #dee2f7; +} + +.highlight pre { + background: #31343f; +} + +.highlight .hll { + background: #31343f; +} + +.highlight .c { + color: #63677e; + font-style: italic; +} + +.highlight .err { + color: #960050; + background-color: #1e0010; +} + +.highlight .k { + color: #e19ef5; +} + +.highlight .l { + color: #a3eea0; +} + +.highlight .n { + color: #dee2f7; +} + +.highlight .o { + color: #dee2f7; +} + +.highlight .p { + color: #dee2f7; +} + +.highlight .cm { + color: #63677e; + font-style: italic; +} + +.highlight .cp { + color: #63677e; + font-style: italic; +} + +.highlight .c1 { + color: #63677e; + font-style: italic; +} + +.highlight .cs { + color: #63677e; + font-style: italic; +} + +.highlight .ge { + font-style: italic; +} + +.highlight .gs { + font-weight: 700; +} + +.highlight .kc { + color: #e19ef5; +} + +.highlight .kd { + color: #e19ef5; +} + +.highlight .kn { + color: #e19ef5; +} + +.highlight .kp { + color: #e19ef5; +} + +.highlight .kr { + color: #e19ef5; +} + +.highlight .kt { + color: #e19ef5; +} + +.highlight .ld { + color: #a3eea0; +} + +.highlight .m { + color: #eddc96; +} + +.highlight .s { + color: #a3eea0; +} + +.highlight .na { + color: #eddc96; +} + +.highlight .nb { + color: #fdce68; +} + +.highlight .nc { + color: #fdce68; +} + +.highlight .no { + color: #fdce68; +} + +.highlight .nd { + color: #fdce68; +} + +.highlight .ni { + color: #fdce68; +} + +.highlight .ne { + color: #fdce68; +} + +.highlight .nf { + color: #dee2f7; +} + +.highlight .nl { + color: #fdce68; +} + +.highlight .nn { + color: #dee2f7; +} + +.highlight .nx { + color: #dee2f7; +} + +.highlight .py { + color: #fdce68; +} + +.highlight .nt { + color: #f9867b; +} + +.highlight .nv { + color: #fdce68; +} + +.highlight .ow { + font-weight: 700; +} + +.highlight .w { + color: #f8f8f2; +} + +.highlight .mf { + color: #eddc96; +} + +.highlight .mh { + color: #eddc96; +} + +.highlight .mi { + color: #eddc96; +} + +.highlight .mo { + color: #eddc96; +} + +.highlight .sb { + color: #a3eea0; +} + +.highlight .sc { + color: #a3eea0; +} + +.highlight .sd { + color: #a3eea0; +} + +.highlight .s2 { + color: #a3eea0; +} + +.highlight .se { + color: #a3eea0; +} + +.highlight .sh { + color: #a3eea0; +} + +.highlight .si { + color: #a3eea0; +} + +.highlight .sx { + color: #a3eea0; +} + +.highlight .sr { + color: #7be2f9; +} + +.highlight .s1 { + color: #a3eea0; +} + +.highlight .ss { + color: #7be2f9; +} + +.highlight .bp { + color: #fdce68; +} + +.highlight .vc { + color: #fdce68; +} + +.highlight .vg { + color: #fdce68; +} + +.highlight .vi { + color: #f9867b; +} + +.highlight .il { + color: #eddc96; +} + +.highlight .gu { + color: #75715e; +} + +.highlight .gd { + color: #f92672; +} + +.highlight .gi { + color: #a6e22e; +} + +/*! normalize.css v8.0.1 | 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; +} + +/** + * Render the `main` element consistently in IE. + */ +main { + display: block; +} + +/** + * 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 { + 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. + */ +abbr[title] { + border-bottom: none; /* 1 */ + text-decoration: underline; /* 2 */ + text-decoration: underline dotted; /* 2 */ +} + +/** + * 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, +kbd, +samp { + 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. + */ +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +/* 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, +optgroup, +select, +textarea { + 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, +select { + /* 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 { + 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. + */ +progress { + vertical-align: baseline; +} + +/** + * Remove the default vertical scrollbar in IE 10+. + */ +textarea { + overflow: auto; +} + +/** + * 1. Add the correct box sizing in IE 10. + * 2. Remove the padding in IE 10. + */ +[type=checkbox], +[type=radio] { + 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. + */ +summary { + display: list-item; +} + +/* Misc + ========================================================================== */ +/** + * Add the correct display in IE 10+. + */ +template { + display: none; +} + +/** + * Add the correct display in IE 10. + */ +[hidden] { + display: none; +} + +:root { + color-scheme: dark; +} + +* { + box-sizing: border-box; +} + +html { + font-size: 0.875rem !important; + scroll-behavior: smooth; +} +@media (min-width: 31.25rem) { + html { + font-size: 1rem !important; + } +} + +body { + font-family: system-ui, -apple-system, blinkmacsystemfont, "Segoe UI", roboto, "Helvetica Neue", arial, sans-serif, "Segoe UI Emoji"; + font-size: inherit; + line-height: 1.4; + color: #e6e1e8; + background-color: #27262b; + overflow-wrap: break-word; +} + +ol, +ul, +dl, +pre, +address, +blockquote, +table, +div, +hr, +form, +fieldset, +noscript .table-wrapper { + margin-top: 0; +} + +h1, +h2, +h3, +h4, +h5, +h6, +#toctitle { + margin-top: 0; + margin-bottom: 1em; + font-weight: 500; + line-height: 1.25; + color: #f5f6fa; +} + +p { + margin-top: 1em; + margin-bottom: 1em; +} + +a { + color: #2c84fa; + text-decoration: none; +} + +a:not([class]) { + text-decoration: underline; + text-decoration-color: #44434d; + text-underline-offset: 2px; +} +a:not([class]):hover { + text-decoration-color: rgba(44, 132, 250, 0.45); +} + +code { + font-family: "SFMono-Regular", menlo, consolas, monospace; + font-size: 0.75em; + line-height: 1.4; +} + +figure, +pre { + margin: 0; +} + +li { + margin: 0.25em 0; +} + +img { + max-width: 100%; + height: auto; +} + +hr { + height: 1px; + padding: 0; + margin: 2rem 0; + background-color: #44434d; + border: 0; +} + +blockquote { + margin: 10px 0; + margin-block-start: 0; + margin-inline-start: 0; + padding-left: 1rem; + border-left: 3px solid #44434d; +} + +.side-bar { + z-index: 0; + display: flex; + flex-wrap: wrap; + background-color: #27262b; +} +@media (min-width: 50rem) { + .side-bar { + flex-flow: column nowrap; + position: fixed; + width: 15.5rem; + height: 100%; + border-right: 1px solid #44434d; + align-items: flex-end; + } +} +@media (min-width: 66.5rem) { + .side-bar { + width: calc((100% - 66.5rem) / 2 + 16.5rem); + min-width: 16.5rem; + } +} +@media (min-width: 50rem) { + .side-bar + .main { + margin-left: 15.5rem; + } +} +@media (min-width: 66.5rem) { + .side-bar + .main { + margin-left: max(16.5rem, (100% - 66.5rem) / 2 + 16.5rem); + } +} +.side-bar + .main .main-header { + display: none; + background-color: #27262b; +} +@media (min-width: 50rem) { + .side-bar + .main .main-header { + display: flex; + background-color: #27262b; + } +} +.side-bar + .main .main-header.nav-open { + display: block; +} +@media (min-width: 50rem) { + .side-bar + .main .main-header.nav-open { + display: flex; + } +} + +.main { + margin: auto; +} +@media (min-width: 50rem) { + .main { + position: relative; + max-width: 50rem; + } +} + +.main-content-wrap { + padding-right: 1rem; + padding-left: 1rem; + padding-top: 1rem; + padding-bottom: 1rem; +} +@media (min-width: 50rem) { + .main-content-wrap { + padding-right: 2rem; + padding-left: 2rem; + } +} +@media (min-width: 50rem) { + .main-content-wrap { + padding-top: 2rem; + padding-bottom: 2rem; + } +} + +.main-header { + z-index: 0; + border-bottom: 1px solid #44434d; +} +@media (min-width: 50rem) { + .main-header { + display: flex; + justify-content: space-between; + height: 3.75rem; + } +} + +.site-nav, +.site-header, +.site-footer { + width: 100%; +} +@media (min-width: 66.5rem) { + .site-nav, + .site-header, + .site-footer { + width: 16.5rem; + } +} + +.site-nav { + display: none; +} +.site-nav.nav-open { + display: block; +} +@media (min-width: 50rem) { + .site-nav { + display: block; + padding-top: 3rem; + padding-bottom: 1rem; + overflow-y: auto; + flex: 1 1 auto; + } +} + +.site-header { + display: flex; + min-height: 3.75rem; + align-items: center; +} +@media (min-width: 50rem) { + .site-header { + height: 3.75rem; + max-height: 3.75rem; + border-bottom: 1px solid #44434d; + } +} + +.site-title { + padding-right: 1rem; + padding-left: 1rem; + flex-grow: 1; + display: flex; + height: 100%; + align-items: center; + padding-top: 0.75rem; + padding-bottom: 0.75rem; + color: #f5f6fa; + font-size: 1.125rem !important; +} +@media (min-width: 50rem) { + .site-title { + padding-right: 2rem; + padding-left: 2rem; + } +} +@media (min-width: 31.25rem) { + .site-title { + font-size: 1.5rem !important; + line-height: 1.25; + } +} +@media (min-width: 50rem) { + .site-title { + padding-top: 0.5rem; + padding-bottom: 0.5rem; + } +} + +.site-button { + display: flex; + height: 100%; + padding: 1rem; + align-items: center; +} + +@media (min-width: 50rem) { + .site-header .site-button { + display: none; + } +} +.site-title:hover { + background-image: linear-gradient(-90deg, #201f23 0%, rgba(32, 31, 35, 0.8) 80%, rgba(32, 31, 35, 0) 100%); +} + +.site-button:hover { + background-image: linear-gradient(-90deg, #201f23 0%, rgba(32, 31, 35, 0.8) 100%); +} + +body { + position: relative; + padding-bottom: 4rem; + overflow-y: scroll; +} +@media (min-width: 50rem) { + body { + position: static; + padding-bottom: 0; + } +} + +.site-footer { + padding-right: 1rem; + padding-left: 1rem; + position: absolute; + bottom: 0; + left: 0; + padding-top: 1rem; + padding-bottom: 1rem; + color: #959396; + font-size: 0.6875rem !important; +} +@media (min-width: 50rem) { + .site-footer { + padding-right: 2rem; + padding-left: 2rem; + } +} +@media (min-width: 31.25rem) { + .site-footer { + font-size: 0.75rem !important; + } +} +@media (min-width: 50rem) { + .site-footer { + position: static; + justify-self: end; + } +} + +.icon { + width: 1.5rem; + height: 1.5rem; + color: #2c84fa; +} + +.main-content { + line-height: 1.6; +} +.main-content ol, +.main-content ul, +.main-content dl, +.main-content pre, +.main-content address, +.main-content blockquote, +.main-content .table-wrapper { + margin-top: 0.5em; +} +.main-content a { + overflow: hidden; + text-overflow: ellipsis; +} +.main-content ul, +.main-content ol { + padding-left: 1.5em; +} +.main-content li .highlight { + margin-top: 0.25rem; +} +.main-content ol { + list-style-type: none; + counter-reset: step-counter; +} +.main-content ol > li { + position: relative; +} +.main-content ol > li::before { + position: absolute; + top: 0.2em; + left: -1.6em; + color: #959396; + content: counter(step-counter); + counter-increment: step-counter; + font-size: 0.75rem !important; +} +@media (min-width: 31.25rem) { + .main-content ol > li::before { + font-size: 0.875rem !important; + } +} +@media (min-width: 31.25rem) { + .main-content ol > li::before { + top: 0.11em; + } +} +.main-content ol > li ol { + counter-reset: sub-counter; +} +.main-content ol > li ol > li::before { + content: counter(sub-counter, lower-alpha); + counter-increment: sub-counter; +} +.main-content ul { + list-style: none; +} +.main-content ul > li::before { + position: absolute; + margin-left: -1.4em; + color: #959396; + content: "•"; +} +.main-content .task-list-item::before { + content: ""; +} +.main-content .task-list-item-checkbox { + margin-right: 0.6em; + margin-left: -1.4em; +} +.main-content hr + * { + margin-top: 0; +} +.main-content h1:first-of-type { + margin-top: 0.5em; +} +.main-content dl { + display: grid; + grid-template: auto/10em 1fr; +} +.main-content dt, +.main-content dd { + margin: 0.25em 0; +} +.main-content dt { + grid-column: 1; + font-weight: 500; + text-align: right; +} +.main-content dt::after { + content: ":"; +} +.main-content dd { + grid-column: 2; + margin-bottom: 0; + margin-left: 1em; +} +.main-content dd blockquote:first-child, +.main-content dd div:first-child, +.main-content dd dl:first-child, +.main-content dd dt:first-child, +.main-content dd h1:first-child, +.main-content dd h2:first-child, +.main-content dd h3:first-child, +.main-content dd h4:first-child, +.main-content dd h5:first-child, +.main-content dd h6:first-child, +.main-content dd li:first-child, +.main-content dd ol:first-child, +.main-content dd p:first-child, +.main-content dd pre:first-child, +.main-content dd table:first-child, +.main-content dd ul:first-child, +.main-content dd .table-wrapper:first-child { + margin-top: 0; +} +.main-content dd dl:first-child dt:first-child, +.main-content dd dl:first-child dd:nth-child(2), +.main-content ol dl:first-child dt:first-child, +.main-content ol dl:first-child dd:nth-child(2), +.main-content ul dl:first-child dt:first-child, +.main-content ul dl:first-child dd:nth-child(2) { + margin-top: 0; +} +.main-content .anchor-heading { + position: absolute; + right: -1rem; + width: 1.5rem; + height: 100%; + padding-right: 0.25rem; + padding-left: 0.25rem; + overflow: visible; +} +@media (min-width: 50rem) { + .main-content .anchor-heading { + right: auto; + left: -1.5rem; + } +} +.main-content .anchor-heading svg { + display: inline-block; + width: 100%; + height: 100%; + color: #2c84fa; + visibility: hidden; +} +.main-content .anchor-heading:hover svg, +.main-content .anchor-heading:focus svg, +.main-content h1:hover > .anchor-heading svg, +.main-content h2:hover > .anchor-heading svg, +.main-content h3:hover > .anchor-heading svg, +.main-content h4:hover > .anchor-heading svg, +.main-content h5:hover > .anchor-heading svg, +.main-content h6:hover > .anchor-heading svg { + visibility: visible; +} +.main-content summary { + cursor: pointer; +} +.main-content h1, +.main-content h2, +.main-content h3, +.main-content h4, +.main-content h5, +.main-content h6, +.main-content #toctitle { + position: relative; + margin-top: 1.5em; + margin-bottom: 0.25em; +} +.main-content h1 + table, +.main-content h1 + .table-wrapper, +.main-content h1 + .code-example, +.main-content h1 + .highlighter-rouge, +.main-content h1 + .sectionbody .listingblock, +.main-content h2 + table, +.main-content h2 + .table-wrapper, +.main-content h2 + .code-example, +.main-content h2 + .highlighter-rouge, +.main-content h2 + .sectionbody .listingblock, +.main-content h3 + table, +.main-content h3 + .table-wrapper, +.main-content h3 + .code-example, +.main-content h3 + .highlighter-rouge, +.main-content h3 + .sectionbody .listingblock, +.main-content h4 + table, +.main-content h4 + .table-wrapper, +.main-content h4 + .code-example, +.main-content h4 + .highlighter-rouge, +.main-content h4 + .sectionbody .listingblock, +.main-content h5 + table, +.main-content h5 + .table-wrapper, +.main-content h5 + .code-example, +.main-content h5 + .highlighter-rouge, +.main-content h5 + .sectionbody .listingblock, +.main-content h6 + table, +.main-content h6 + .table-wrapper, +.main-content h6 + .code-example, +.main-content h6 + .highlighter-rouge, +.main-content h6 + .sectionbody .listingblock, +.main-content #toctitle + table, +.main-content #toctitle + .table-wrapper, +.main-content #toctitle + .code-example, +.main-content #toctitle + .highlighter-rouge, +.main-content #toctitle + .sectionbody .listingblock { + margin-top: 1em; +} +.main-content h1 + p:not(.label), +.main-content h2 + p:not(.label), +.main-content h3 + p:not(.label), +.main-content h4 + p:not(.label), +.main-content h5 + p:not(.label), +.main-content h6 + p:not(.label), +.main-content #toctitle + p:not(.label) { + margin-top: 0; +} +.main-content > h1:first-child, +.main-content > h2:first-child, +.main-content > h3:first-child, +.main-content > h4:first-child, +.main-content > h5:first-child, +.main-content > h6:first-child, +.main-content > .sect1:first-child > h2, +.main-content > .sect2:first-child > h3, +.main-content > .sect3:first-child > h4, +.main-content > .sect4:first-child > h5, +.main-content > .sect5:first-child > h6 { + margin-top: 0.5rem; +} + +.nav-list { + padding: 0; + margin-top: 0; + margin-bottom: 0; + list-style: none; +} +.nav-list .nav-list-item { + font-size: 0.875rem !important; + position: relative; + margin: 0; +} +@media (min-width: 31.25rem) { + .nav-list .nav-list-item { + font-size: 1rem !important; + } +} +@media (min-width: 50rem) { + .nav-list .nav-list-item { + font-size: 0.75rem !important; + } +} +@media (min-width: 50rem) and (min-width: 31.25rem) { + .nav-list .nav-list-item { + font-size: 0.875rem !important; + } +} +.nav-list .nav-list-item .nav-list-link { + display: block; + min-height: 3rem; + padding-top: 0.25rem; + padding-bottom: 0.25rem; + line-height: 2.5rem; + padding-right: 3rem; + padding-left: 1rem; +} +@media (min-width: 50rem) { + .nav-list .nav-list-item .nav-list-link { + min-height: 2rem; + line-height: 1.5rem; + padding-right: 2rem; + padding-left: 2rem; + } +} +.nav-list .nav-list-item .nav-list-link.external > svg { + width: 1rem; + height: 1rem; + vertical-align: text-bottom; +} +.nav-list .nav-list-item .nav-list-link.active { + font-weight: 600; + text-decoration: none; +} +.nav-list .nav-list-item .nav-list-link:hover, .nav-list .nav-list-item .nav-list-link.active { + background-image: linear-gradient(-90deg, #201f23 0%, rgba(32, 31, 35, 0.8) 80%, rgba(32, 31, 35, 0) 100%); +} +.nav-list .nav-list-item .nav-list-expander { + position: absolute; + right: 0; + width: 3rem; + height: 3rem; + padding: 0.75rem; + color: #2c84fa; +} +@media (min-width: 50rem) { + .nav-list .nav-list-item .nav-list-expander { + width: 2rem; + height: 2rem; + padding: 0.5rem; + } +} +.nav-list .nav-list-item .nav-list-expander:hover { + background-image: linear-gradient(-90deg, #201f23 0%, rgba(32, 31, 35, 0.8) 100%); +} +.nav-list .nav-list-item .nav-list-expander svg { + transform: rotate(90deg); +} +.nav-list .nav-list-item > .nav-list { + display: none; + padding-left: 0.75rem; + list-style: none; +} +.nav-list .nav-list-item > .nav-list .nav-list-item { + position: relative; +} +.nav-list .nav-list-item > .nav-list .nav-list-item .nav-list-link { + color: #959396; +} +.nav-list .nav-list-item > .nav-list .nav-list-item .nav-list-expander { + color: #959396; +} +.nav-list .nav-list-item.active > .nav-list-expander svg { + transform: rotate(-90deg); +} +.nav-list .nav-list-item.active > .nav-list { + display: block; +} + +.nav-category { + padding: 0.5rem 1rem; + font-weight: 600; + text-align: start; + text-transform: uppercase; + border-bottom: 1px solid #44434d; + font-size: 0.6875rem !important; +} +@media (min-width: 31.25rem) { + .nav-category { + font-size: 0.75rem !important; + } +} +@media (min-width: 50rem) { + .nav-category { + padding: 0.5rem 2rem; + margin-top: 1rem; + text-align: start; + } + .nav-category:first-child { + margin-top: 0; + } +} + +.nav-list.nav-category-list > .nav-list-item { + margin: 0; +} +.nav-list.nav-category-list > .nav-list-item > .nav-list { + padding: 0; +} +.nav-list.nav-category-list > .nav-list-item > .nav-list > .nav-list-item > .nav-list-link { + color: #2c84fa; +} +.nav-list.nav-category-list > .nav-list-item > .nav-list > .nav-list-item > .nav-list-expander { + color: #2c84fa; +} + +.aux-nav { + height: 100%; + overflow-x: auto; + font-size: 0.6875rem !important; +} +@media (min-width: 31.25rem) { + .aux-nav { + font-size: 0.75rem !important; + } +} +.aux-nav .aux-nav-list { + display: flex; + height: 100%; + padding: 0; + margin: 0; + list-style: none; +} +.aux-nav .aux-nav-list-item { + display: inline-block; + height: 100%; + padding: 0; + margin: 0; +} +@media (min-width: 50rem) { + .aux-nav { + padding-right: 1rem; + } +} + +@media (min-width: 50rem) { + .breadcrumb-nav { + margin-top: -1rem; + } +} + +.breadcrumb-nav-list { + padding-left: 0; + margin-bottom: 0.75rem; + list-style: none; +} + +.breadcrumb-nav-list-item { + display: table-cell; + font-size: 0.6875rem !important; +} +@media (min-width: 31.25rem) { + .breadcrumb-nav-list-item { + font-size: 0.75rem !important; + } +} +.breadcrumb-nav-list-item::before { + display: none; +} +.breadcrumb-nav-list-item::after { + display: inline-block; + margin-right: 0.5rem; + margin-left: 0.5rem; + color: #959396; + content: "/"; +} +.breadcrumb-nav-list-item:last-child::after { + content: ""; +} + +h1, +.text-alpha { + font-size: 2rem !important; + line-height: 1.25; + font-weight: 300; +} +@media (min-width: 31.25rem) { + h1, + .text-alpha { + font-size: 2.25rem !important; + } +} + +h2, +.text-beta, +#toctitle { + font-size: 1.125rem !important; +} +@media (min-width: 31.25rem) { + h2, + .text-beta, + #toctitle { + font-size: 1.5rem !important; + line-height: 1.25; + } +} + +h3, +.text-gamma { + font-size: 1rem !important; +} +@media (min-width: 31.25rem) { + h3, + .text-gamma { + font-size: 1.125rem !important; + } +} + +h4, +.text-delta { + font-size: 0.6875rem !important; + font-weight: 400; + text-transform: uppercase; + letter-spacing: 0.1em; +} +@media (min-width: 31.25rem) { + h4, + .text-delta { + font-size: 0.75rem !important; + } +} + +h4 code { + text-transform: none; +} + +h5, +.text-epsilon { + font-size: 0.75rem !important; +} +@media (min-width: 31.25rem) { + h5, + .text-epsilon { + font-size: 0.875rem !important; + } +} + +h6, +.text-zeta { + font-size: 0.6875rem !important; +} +@media (min-width: 31.25rem) { + h6, + .text-zeta { + font-size: 0.75rem !important; + } +} + +.text-small { + font-size: 0.6875rem !important; +} +@media (min-width: 31.25rem) { + .text-small { + font-size: 0.75rem !important; + } +} + +.text-mono { + font-family: "SFMono-Regular", menlo, consolas, monospace !important; +} + +.text-left { + text-align: left !important; +} + +.text-center { + text-align: center !important; +} + +.text-right { + text-align: right !important; +} + +.label:not(g), +.label-blue:not(g) { + display: inline-block; + padding: 0.16em 0.56em; + margin-right: 0.5rem; + margin-left: 0.5rem; + color: #fff; + text-transform: uppercase; + vertical-align: middle; + background-color: #2869e6; + font-size: 0.6875rem !important; + border-radius: 12px; +} +@media (min-width: 31.25rem) { + .label:not(g), + .label-blue:not(g) { + font-size: 0.75rem !important; + } +} + +.label-green:not(g) { + background-color: #009c7b; +} + +.label-purple:not(g) { + background-color: #5e41d0; +} + +.label-red:not(g) { + background-color: #e94c4c; +} + +.label-yellow:not(g) { + color: #44434d; + background-color: #f7d12e; +} + +.btn { + display: inline-block; + box-sizing: border-box; + padding: 0.3em 1em; + margin: 0; + font-family: inherit; + font-size: inherit; + font-weight: 500; + line-height: 1.5; + color: #2c84fa; + text-decoration: none; + vertical-align: baseline; + cursor: pointer; + background-color: #302d36; + border-width: 0; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + appearance: none; +} +.btn:focus { + text-decoration: none; + outline: none; + box-shadow: 0 0 0 3px rgba(0, 0, 255, 0.25); +} +.btn:focus:hover, .btn.selected:focus { + box-shadow: 0 0 0 3px rgba(0, 0, 255, 0.25); +} +.btn:hover, .btn.zeroclipboard-is-hover { + color: #227efa; +} +.btn:hover, .btn:active, .btn.zeroclipboard-is-hover, .btn.zeroclipboard-is-active { + text-decoration: none; + background-color: #2e2b33; +} +.btn:active, .btn.selected, .btn.zeroclipboard-is-active { + background-color: #29262e; + background-image: none; + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); +} +.btn.selected:hover { + background-color: #cfcfcf; +} +.btn:disabled, .btn:disabled:hover, .btn.disabled, .btn.disabled:hover { + color: rgba(102, 102, 102, 0.5); + cursor: default; + background-color: rgba(229, 229, 229, 0.5); + background-image: none; + box-shadow: none; +} + +.btn-outline { + color: #2c84fa; + background: transparent; + box-shadow: inset 0 0 0 2px #e6e1e8; +} +.btn-outline:hover, .btn-outline:active, .btn-outline.zeroclipboard-is-hover, .btn-outline.zeroclipboard-is-active { + color: #1878fa; + text-decoration: none; + background-color: transparent; + box-shadow: inset 0 0 0 3px #e6e1e8; +} +.btn-outline:focus { + text-decoration: none; + outline: none; + box-shadow: inset 0 0 0 2px #5c5962, 0 0 0 3px rgba(0, 0, 255, 0.25); +} +.btn-outline:focus:hover, .btn-outline.selected:focus { + box-shadow: inset 0 0 0 2px #5c5962; +} + +.btn-primary { + color: #fff; + background-color: #2448a7; + background-image: linear-gradient(#2b55c4, #2448a7); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), 0 4px 10px rgba(0, 0, 0, 0.12); +} +.btn-primary:hover, .btn-primary.zeroclipboard-is-hover { + color: #fff; + background-color: #22459e; + background-image: linear-gradient(#2850b7, #22459e); +} +.btn-primary:active, .btn-primary.selected, .btn-primary.zeroclipboard-is-active { + background-color: #21439a; + background-image: none; + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); +} +.btn-primary.selected:hover { + background-color: #1d3a85; +} + +.btn-purple { + color: #fff; + background-color: #5739ce; + background-image: linear-gradient(#6f55d5, #5739ce); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), 0 4px 10px rgba(0, 0, 0, 0.12); +} +.btn-purple:hover, .btn-purple.zeroclipboard-is-hover { + color: #fff; + background-color: #5132cb; + background-image: linear-gradient(#6549d2, #5132cb); +} +.btn-purple:active, .btn-purple.selected, .btn-purple.zeroclipboard-is-active { + background-color: #4f31c6; + background-image: none; + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); +} +.btn-purple.selected:hover { + background-color: #472cb2; +} + +.btn-blue { + color: #fff; + background-color: #227efa; + background-image: linear-gradient(#4593fb, #227efa); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), 0 4px 10px rgba(0, 0, 0, 0.12); +} +.btn-blue:hover, .btn-blue.zeroclipboard-is-hover { + color: #fff; + background-color: #1878fa; + background-image: linear-gradient(#368afa, #1878fa); +} +.btn-blue:active, .btn-blue.selected, .btn-blue.zeroclipboard-is-active { + background-color: #1375f9; + background-image: none; + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); +} +.btn-blue.selected:hover { + background-color: #0669ed; +} + +.btn-green { + color: #fff; + background-color: #10ac7d; + background-image: linear-gradient(#13cc95, #10ac7d); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), 0 4px 10px rgba(0, 0, 0, 0.12); +} +.btn-green:hover, .btn-green.zeroclipboard-is-hover { + color: #fff; + background-color: #0fa276; + background-image: linear-gradient(#12be8b, #0fa276); +} +.btn-green:active, .btn-green.selected, .btn-green.zeroclipboard-is-active { + background-color: #0f9e73; + background-image: none; + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); +} +.btn-green.selected:hover { + background-color: #0d8662; +} + +.btn-reset { + background: none; + border: none; + margin: 0; + text-align: inherit; + font: inherit; + border-radius: 0; + appearance: none; +} + +.search { + position: relative; + z-index: 2; + flex-grow: 1; + height: 4rem; + padding: 0.5rem; + transition: padding linear 200ms; +} +@media (min-width: 50rem) { + .search { + position: relative !important; + width: auto !important; + height: 100% !important; + padding: 0; + transition: none; + } +} + +.search-input-wrap { + position: relative; + z-index: 1; + height: 3rem; + overflow: hidden; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + transition: height linear 200ms; +} +@media (min-width: 50rem) { + .search-input-wrap { + position: absolute; + width: 100%; + max-width: 33.5rem; + height: 100% !important; + border-radius: 0; + box-shadow: none; + transition: width ease 400ms; + } +} + +.search-input { + position: absolute; + width: 100%; + height: 100%; + padding: 0.5rem 1rem 0.5rem 2.5rem; + font-size: 1rem; + color: #e6e1e8; + background-color: #302d36; + border-top: 0; + border-right: 0; + border-bottom: 0; + border-left: 0; + border-radius: 0; +} +@media (min-width: 50rem) { + .search-input { + padding: 0.5rem 1rem 0.5rem 3.5rem; + font-size: 0.875rem; + background-color: #27262b; + transition: padding-left linear 200ms; + } +} +.search-input:focus { + outline: 0; +} +.search-input:focus + .search-label .search-icon { + color: #2c84fa; +} + +.search-label { + position: absolute; + display: flex; + height: 100%; + padding-left: 1rem; +} +@media (min-width: 50rem) { + .search-label { + padding-left: 2rem; + transition: padding-left linear 200ms; + } +} +.search-label .search-icon { + width: 1.2rem; + height: 1.2rem; + align-self: center; + color: #959396; +} + +.search-results { + position: absolute; + left: 0; + display: none; + width: 100%; + max-height: calc(100% - 4rem); + overflow-y: auto; + background-color: #302d36; + border-bottom-right-radius: 4px; + border-bottom-left-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); +} +@media (min-width: 50rem) { + .search-results { + top: 100%; + width: 33.5rem; + max-height: calc(100vh - 200%) !important; + } +} + +.search-results-list { + padding-left: 0; + margin-bottom: 0.25rem; + list-style: none; + font-size: 0.875rem !important; +} +@media (min-width: 31.25rem) { + .search-results-list { + font-size: 1rem !important; + } +} +@media (min-width: 50rem) { + .search-results-list { + font-size: 0.75rem !important; + } +} +@media (min-width: 50rem) and (min-width: 31.25rem) { + .search-results-list { + font-size: 0.875rem !important; + } +} + +.search-results-list-item { + padding: 0; + margin: 0; +} + +.search-result { + display: block; + padding: 0.25rem 0.75rem; +} +.search-result:hover, .search-result.active { + background-color: #201f23; +} + +.search-result-title { + display: block; + padding-top: 0.5rem; + padding-bottom: 0.5rem; +} +@media (min-width: 31.25rem) { + .search-result-title { + display: inline-block; + width: 40%; + padding-right: 0.5rem; + vertical-align: top; + } +} + +.search-result-doc { + display: flex; + align-items: center; + word-wrap: break-word; +} +.search-result-doc.search-result-doc-parent { + opacity: 0.5; + font-size: 0.75rem !important; +} +@media (min-width: 31.25rem) { + .search-result-doc.search-result-doc-parent { + font-size: 0.875rem !important; + } +} +@media (min-width: 50rem) { + .search-result-doc.search-result-doc-parent { + font-size: 0.6875rem !important; + } +} +@media (min-width: 50rem) and (min-width: 31.25rem) { + .search-result-doc.search-result-doc-parent { + font-size: 0.75rem !important; + } +} +.search-result-doc .search-result-icon { + width: 1rem; + height: 1rem; + margin-right: 0.5rem; + color: #2c84fa; + flex-shrink: 0; +} +.search-result-doc .search-result-doc-title { + overflow: auto; +} + +.search-result-section { + margin-left: 1.5rem; + word-wrap: break-word; +} + +.search-result-rel-url { + display: block; + margin-left: 1.5rem; + overflow: hidden; + color: #959396; + text-overflow: ellipsis; + white-space: nowrap; + font-size: 0.5625rem !important; +} +@media (min-width: 31.25rem) { + .search-result-rel-url { + font-size: 0.625rem !important; + } +} + +.search-result-previews { + display: block; + padding-top: 0.5rem; + padding-bottom: 0.5rem; + padding-left: 1rem; + margin-left: 0.5rem; + color: #959396; + word-wrap: break-word; + border-left: 1px solid; + border-left-color: #44434d; + font-size: 0.6875rem !important; +} +@media (min-width: 31.25rem) { + .search-result-previews { + font-size: 0.75rem !important; + } +} +@media (min-width: 31.25rem) { + .search-result-previews { + display: inline-block; + width: 60%; + padding-left: 0.5rem; + margin-left: 0; + vertical-align: top; + } +} + +.search-result-preview + .search-result-preview { + margin-top: 0.25rem; +} + +.search-result-highlight { + font-weight: bold; +} + +.search-no-result { + padding: 0.5rem 0.75rem; + font-size: 0.75rem !important; +} +@media (min-width: 31.25rem) { + .search-no-result { + font-size: 0.875rem !important; + } +} + +.search-button { + position: fixed; + right: 1rem; + bottom: 1rem; + display: flex; + width: 3.5rem; + height: 3.5rem; + background-color: #302d36; + border: 1px solid rgba(44, 132, 250, 0.3); + border-radius: 1.75rem; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + align-items: center; + justify-content: center; +} + +.search-overlay { + position: fixed; + top: 0; + left: 0; + z-index: 1; + width: 0; + height: 0; + background-color: rgba(0, 0, 0, 0.3); + opacity: 0; + transition: opacity ease 400ms, width 0s 400ms, height 0s 400ms; +} + +.search-active .search { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + padding: 0; +} +.search-active .search-input-wrap { + height: 4rem; + border-radius: 0; +} +@media (min-width: 50rem) { + .search-active .search-input-wrap { + width: 33.5rem; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + } +} +.search-active .search-input { + background-color: #302d36; +} +@media (min-width: 50rem) { + .search-active .search-input { + padding-left: 2.3rem; + } +} +@media (min-width: 50rem) { + .search-active .search-label { + padding-left: 0.6rem; + } +} +.search-active .search-results { + display: block; +} +.search-active .search-overlay { + width: 100%; + height: 100%; + opacity: 1; + transition: opacity ease 400ms, width 0s, height 0s; +} +@media (min-width: 50rem) { + .search-active .main { + position: fixed; + right: 0; + left: 0; + } +} +.search-active .main-header { + padding-top: 4rem; +} +@media (min-width: 50rem) { + .search-active .main-header { + padding-top: 0; + } +} + +.table-wrapper { + display: block; + width: 100%; + max-width: 100%; + margin-bottom: 1.5rem; + overflow-x: auto; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); +} + +table { + display: table; + min-width: 100%; + border-collapse: separate; +} + +th, +td { + font-size: 0.75rem !important; + min-width: 7.5rem; + padding: 0.5rem 0.75rem; + background-color: #302d36; + border-bottom: 1px solid rgba(68, 67, 77, 0.5); + border-left: 1px solid #44434d; +} +@media (min-width: 31.25rem) { + th, + td { + font-size: 0.875rem !important; + } +} +th:first-of-type, +td:first-of-type { + border-left: 0; +} + +tbody tr:last-of-type th, +tbody tr:last-of-type td { + border-bottom: 0; +} +tbody tr:last-of-type td { + padding-bottom: 0.75rem; +} + +thead th { + border-bottom: 1px solid #44434d; +} + +:not(pre, figure) > code { + padding: 0.2em 0.15em; + font-weight: 400; + background-color: #31343f; + border: 1px solid #44434d; + border-radius: 4px; +} + +a:visited code { + border-color: #44434d; +} + +div.highlighter-rouge, +div.listingblock > div.content, +figure.highlight { + margin-top: 0; + margin-bottom: 0.75rem; + background-color: #31343f; + border-radius: 4px; + box-shadow: none; + -webkit-overflow-scrolling: touch; + position: relative; + padding: 0; +} +div.highlighter-rouge > button, +div.listingblock > div.content > button, +figure.highlight > button { + width: 0.75rem; + opacity: 0; + position: absolute; + top: 0; + right: 0; + border: 0.75rem solid #31343f; + background-color: #31343f; + color: #e6e1e8; + box-sizing: content-box; +} +div.highlighter-rouge > button svg, +div.listingblock > div.content > button svg, +figure.highlight > button svg { + fill: #e6e1e8; +} +div.highlighter-rouge > button:active, +div.listingblock > div.content > button:active, +figure.highlight > button:active { + text-decoration: none; + outline: none; + opacity: 1; +} +div.highlighter-rouge > button:focus, +div.listingblock > div.content > button:focus, +figure.highlight > button:focus { + opacity: 1; +} +div.highlighter-rouge:hover > button, +div.listingblock > div.content:hover > button, +figure.highlight:hover > button { + cursor: copy; + opacity: 1; +} + +div.highlighter-rouge div.highlight { + overflow-x: auto; + padding: 0.75rem; + margin: 0; + border: 0; +} +div.highlighter-rouge pre.highlight, +div.highlighter-rouge code { + padding: 0; + margin: 0; + border: 0; +} + +div.listingblock { + margin-top: 0; + margin-bottom: 0.75rem; +} +div.listingblock div.content { + overflow-x: auto; + padding: 0.75rem; + margin: 0; + border: 0; +} +div.listingblock div.content > pre, +div.listingblock code { + padding: 0; + margin: 0; + border: 0; +} + +figure.highlight pre, +figure.highlight :not(pre) > code { + overflow-x: auto; + padding: 0.75rem; + margin: 0; + border: 0; +} + +.highlight .table-wrapper { + padding: 0.75rem 0; + margin: 0; + border: 0; + box-shadow: none; +} +.highlight .table-wrapper td, +.highlight .table-wrapper pre { + font-size: 0.6875rem !important; + min-width: 0; + padding: 0; + background-color: #31343f; + border: 0; +} +@media (min-width: 31.25rem) { + .highlight .table-wrapper td, + .highlight .table-wrapper pre { + font-size: 0.75rem !important; + } +} +.highlight .table-wrapper td.gl { + width: 1em; + padding-right: 0.75rem; + padding-left: 0.75rem; +} +.highlight .table-wrapper pre { + margin: 0; + line-height: 2; +} + +.code-example, +.listingblock > .title { + padding: 0.75rem; + margin-bottom: 0.75rem; + overflow: auto; + border: 1px solid #44434d; + border-radius: 4px; +} +.code-example + .highlighter-rouge, +.code-example + .sectionbody .listingblock, +.code-example + .content, +.code-example + figure.highlight, +.listingblock > .title + .highlighter-rouge, +.listingblock > .title + .sectionbody .listingblock, +.listingblock > .title + .content, +.listingblock > .title + figure.highlight { + position: relative; + margin-top: -1rem; + border-right: 1px solid #44434d; + border-bottom: 1px solid #44434d; + border-left: 1px solid #44434d; + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +code.language-mermaid { + padding: 0; + background-color: inherit; + border: 0; +} + +.highlight, +pre.highlight { + background: #31343f; + color: #dee2f7; +} + +.highlight pre { + background: #31343f; +} + +.text-grey-dk-000 { + color: #959396 !important; +} + +.text-grey-dk-100 { + color: #5c5962 !important; +} + +.text-grey-dk-200 { + color: #44434d !important; +} + +.text-grey-dk-250 { + color: #302d36 !important; +} + +.text-grey-dk-300 { + color: #27262b !important; +} + +.text-grey-lt-000 { + color: #f5f6fa !important; +} + +.text-grey-lt-100 { + color: #eeebee !important; +} + +.text-grey-lt-200 { + color: #ecebed !important; +} + +.text-grey-lt-300 { + color: #e6e1e8 !important; +} + +.text-blue-000 { + color: #2c84fa !important; +} + +.text-blue-100 { + color: #2869e6 !important; +} + +.text-blue-200 { + color: #264caf !important; +} + +.text-blue-300 { + color: #183385 !important; +} + +.text-green-000 { + color: #41d693 !important; +} + +.text-green-100 { + color: #11b584 !important; +} + +.text-green-200 { + color: #009c7b !important; +} + +.text-green-300 { + color: #026e57 !important; +} + +.text-purple-000 { + color: #7253ed !important; +} + +.text-purple-100 { + color: #5e41d0 !important; +} + +.text-purple-200 { + color: #4e26af !important; +} + +.text-purple-300 { + color: #381885 !important; +} + +.text-yellow-000 { + color: #ffeb82 !important; +} + +.text-yellow-100 { + color: #fadf50 !important; +} + +.text-yellow-200 { + color: #f7d12e !important; +} + +.text-yellow-300 { + color: #e7af06 !important; +} + +.text-red-000 { + color: #f77e7e !important; +} + +.text-red-100 { + color: #f96e65 !important; +} + +.text-red-200 { + color: #e94c4c !important; +} + +.text-red-300 { + color: #dd2e2e !important; +} + +.bg-grey-dk-000 { + background-color: #959396 !important; +} + +.bg-grey-dk-100 { + background-color: #5c5962 !important; +} + +.bg-grey-dk-200 { + background-color: #44434d !important; +} + +.bg-grey-dk-250 { + background-color: #302d36 !important; +} + +.bg-grey-dk-300 { + background-color: #27262b !important; +} + +.bg-grey-lt-000 { + background-color: #f5f6fa !important; +} + +.bg-grey-lt-100 { + background-color: #eeebee !important; +} + +.bg-grey-lt-200 { + background-color: #ecebed !important; +} + +.bg-grey-lt-300 { + background-color: #e6e1e8 !important; +} + +.bg-blue-000 { + background-color: #2c84fa !important; +} + +.bg-blue-100 { + background-color: #2869e6 !important; +} + +.bg-blue-200 { + background-color: #264caf !important; +} + +.bg-blue-300 { + background-color: #183385 !important; +} + +.bg-green-000 { + background-color: #41d693 !important; +} + +.bg-green-100 { + background-color: #11b584 !important; +} + +.bg-green-200 { + background-color: #009c7b !important; +} + +.bg-green-300 { + background-color: #026e57 !important; +} + +.bg-purple-000 { + background-color: #7253ed !important; +} + +.bg-purple-100 { + background-color: #5e41d0 !important; +} + +.bg-purple-200 { + background-color: #4e26af !important; +} + +.bg-purple-300 { + background-color: #381885 !important; +} + +.bg-yellow-000 { + background-color: #ffeb82 !important; +} + +.bg-yellow-100 { + background-color: #fadf50 !important; +} + +.bg-yellow-200 { + background-color: #f7d12e !important; +} + +.bg-yellow-300 { + background-color: #e7af06 !important; +} + +.bg-red-000 { + background-color: #f77e7e !important; +} + +.bg-red-100 { + background-color: #f96e65 !important; +} + +.bg-red-200 { + background-color: #e94c4c !important; +} + +.bg-red-300 { + background-color: #dd2e2e !important; +} + +.d-block { + display: block !important; +} + +.d-flex { + display: flex !important; +} + +.d-inline { + display: inline !important; +} + +.d-inline-block { + display: inline-block !important; +} + +.d-none { + display: none !important; +} + +@media (min-width: 20rem) { + .d-xs-block { + display: block !important; + } + .d-xs-flex { + display: flex !important; + } + .d-xs-inline { + display: inline !important; + } + .d-xs-inline-block { + display: inline-block !important; + } + .d-xs-none { + display: none !important; + } +} +@media (min-width: 20rem) { + .d-xs-block { + display: block !important; + } + .d-xs-flex { + display: flex !important; + } + .d-xs-inline { + display: inline !important; + } + .d-xs-inline-block { + display: inline-block !important; + } + .d-xs-none { + display: none !important; + } +} +@media (min-width: 20rem) { + .d-xs-block { + display: block !important; + } + .d-xs-flex { + display: flex !important; + } + .d-xs-inline { + display: inline !important; + } + .d-xs-inline-block { + display: inline-block !important; + } + .d-xs-none { + display: none !important; + } +} +@media (min-width: 20rem) { + .d-xs-block { + display: block !important; + } + .d-xs-flex { + display: flex !important; + } + .d-xs-inline { + display: inline !important; + } + .d-xs-inline-block { + display: inline-block !important; + } + .d-xs-none { + display: none !important; + } +} +@media (min-width: 20rem) { + .d-xs-block { + display: block !important; + } + .d-xs-flex { + display: flex !important; + } + .d-xs-inline { + display: inline !important; + } + .d-xs-inline-block { + display: inline-block !important; + } + .d-xs-none { + display: none !important; + } +} +@media (min-width: 20rem) { + .d-xs-block { + display: block !important; + } + .d-xs-flex { + display: flex !important; + } + .d-xs-inline { + display: inline !important; + } + .d-xs-inline-block { + display: inline-block !important; + } + .d-xs-none { + display: none !important; + } +} +@media (min-width: 20rem) { + .d-xs-block { + display: block !important; + } + .d-xs-flex { + display: flex !important; + } + .d-xs-inline { + display: inline !important; + } + .d-xs-inline-block { + display: inline-block !important; + } + .d-xs-none { + display: none !important; + } +} +@media (min-width: 20rem) { + .d-xs-block { + display: block !important; + } + .d-xs-flex { + display: flex !important; + } + .d-xs-inline { + display: inline !important; + } + .d-xs-inline-block { + display: inline-block !important; + } + .d-xs-none { + display: none !important; + } +} +@media (min-width: 20rem) { + .d-xs-block { + display: block !important; + } + .d-xs-flex { + display: flex !important; + } + .d-xs-inline { + display: inline !important; + } + .d-xs-inline-block { + display: inline-block !important; + } + .d-xs-none { + display: none !important; + } +} +@media (min-width: 20rem) { + .d-xs-block { + display: block !important; + } + .d-xs-flex { + display: flex !important; + } + .d-xs-inline { + display: inline !important; + } + .d-xs-inline-block { + display: inline-block !important; + } + .d-xs-none { + display: none !important; + } +} +@media (min-width: 20rem) { + .d-xs-block { + display: block !important; + } + .d-xs-flex { + display: flex !important; + } + .d-xs-inline { + display: inline !important; + } + .d-xs-inline-block { + display: inline-block !important; + } + .d-xs-none { + display: none !important; + } +} +@media (min-width: 31.25rem) { + .d-sm-block { + display: block !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-none { + display: none !important; + } +} +@media (min-width: 31.25rem) { + .d-sm-block { + display: block !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-none { + display: none !important; + } +} +@media (min-width: 31.25rem) { + .d-sm-block { + display: block !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-none { + display: none !important; + } +} +@media (min-width: 31.25rem) { + .d-sm-block { + display: block !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-none { + display: none !important; + } +} +@media (min-width: 31.25rem) { + .d-sm-block { + display: block !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-none { + display: none !important; + } +} +@media (min-width: 31.25rem) { + .d-sm-block { + display: block !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-none { + display: none !important; + } +} +@media (min-width: 31.25rem) { + .d-sm-block { + display: block !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-none { + display: none !important; + } +} +@media (min-width: 31.25rem) { + .d-sm-block { + display: block !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-none { + display: none !important; + } +} +@media (min-width: 31.25rem) { + .d-sm-block { + display: block !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-none { + display: none !important; + } +} +@media (min-width: 31.25rem) { + .d-sm-block { + display: block !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-none { + display: none !important; + } +} +@media (min-width: 31.25rem) { + .d-sm-block { + display: block !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-none { + display: none !important; + } +} +@media (min-width: 50rem) { + .d-md-block { + display: block !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-none { + display: none !important; + } +} +@media (min-width: 50rem) { + .d-md-block { + display: block !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-none { + display: none !important; + } +} +@media (min-width: 50rem) { + .d-md-block { + display: block !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-none { + display: none !important; + } +} +@media (min-width: 50rem) { + .d-md-block { + display: block !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-none { + display: none !important; + } +} +@media (min-width: 50rem) { + .d-md-block { + display: block !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-none { + display: none !important; + } +} +@media (min-width: 50rem) { + .d-md-block { + display: block !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-none { + display: none !important; + } +} +@media (min-width: 50rem) { + .d-md-block { + display: block !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-none { + display: none !important; + } +} +@media (min-width: 50rem) { + .d-md-block { + display: block !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-none { + display: none !important; + } +} +@media (min-width: 50rem) { + .d-md-block { + display: block !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-none { + display: none !important; + } +} +@media (min-width: 50rem) { + .d-md-block { + display: block !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-none { + display: none !important; + } +} +@media (min-width: 50rem) { + .d-md-block { + display: block !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-none { + display: none !important; + } +} +@media (min-width: 66.5rem) { + .d-lg-block { + display: block !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-none { + display: none !important; + } +} +@media (min-width: 66.5rem) { + .d-lg-block { + display: block !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-none { + display: none !important; + } +} +@media (min-width: 66.5rem) { + .d-lg-block { + display: block !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-none { + display: none !important; + } +} +@media (min-width: 66.5rem) { + .d-lg-block { + display: block !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-none { + display: none !important; + } +} +@media (min-width: 66.5rem) { + .d-lg-block { + display: block !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-none { + display: none !important; + } +} +@media (min-width: 66.5rem) { + .d-lg-block { + display: block !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-none { + display: none !important; + } +} +@media (min-width: 66.5rem) { + .d-lg-block { + display: block !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-none { + display: none !important; + } +} +@media (min-width: 66.5rem) { + .d-lg-block { + display: block !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-none { + display: none !important; + } +} +@media (min-width: 66.5rem) { + .d-lg-block { + display: block !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-none { + display: none !important; + } +} +@media (min-width: 66.5rem) { + .d-lg-block { + display: block !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-none { + display: none !important; + } +} +@media (min-width: 66.5rem) { + .d-lg-block { + display: block !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-none { + display: none !important; + } +} +@media (min-width: 87.5rem) { + .d-xl-block { + display: block !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-none { + display: none !important; + } +} +@media (min-width: 87.5rem) { + .d-xl-block { + display: block !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-none { + display: none !important; + } +} +@media (min-width: 87.5rem) { + .d-xl-block { + display: block !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-none { + display: none !important; + } +} +@media (min-width: 87.5rem) { + .d-xl-block { + display: block !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-none { + display: none !important; + } +} +@media (min-width: 87.5rem) { + .d-xl-block { + display: block !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-none { + display: none !important; + } +} +@media (min-width: 87.5rem) { + .d-xl-block { + display: block !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-none { + display: none !important; + } +} +@media (min-width: 87.5rem) { + .d-xl-block { + display: block !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-none { + display: none !important; + } +} +@media (min-width: 87.5rem) { + .d-xl-block { + display: block !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-none { + display: none !important; + } +} +@media (min-width: 87.5rem) { + .d-xl-block { + display: block !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-none { + display: none !important; + } +} +@media (min-width: 87.5rem) { + .d-xl-block { + display: block !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-none { + display: none !important; + } +} +@media (min-width: 87.5rem) { + .d-xl-block { + display: block !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-none { + display: none !important; + } +} +.float-left { + float: left !important; +} + +.float-right { + float: right !important; +} + +.flex-justify-start { + justify-content: flex-start !important; +} + +.flex-justify-end { + justify-content: flex-end !important; +} + +.flex-justify-between { + justify-content: space-between !important; +} + +.flex-justify-around { + justify-content: space-around !important; +} + +.v-align-baseline { + vertical-align: baseline !important; +} + +.v-align-bottom { + vertical-align: bottom !important; +} + +.v-align-middle { + vertical-align: middle !important; +} + +.v-align-text-bottom { + vertical-align: text-bottom !important; +} + +.v-align-text-top { + vertical-align: text-top !important; +} + +.v-align-top { + vertical-align: top !important; +} + +.fs-1 { + font-size: 0.5625rem !important; +} +@media (min-width: 31.25rem) { + .fs-1 { + font-size: 0.625rem !important; + } +} + +.fs-2 { + font-size: 0.6875rem !important; +} +@media (min-width: 31.25rem) { + .fs-2 { + font-size: 0.75rem !important; + } +} + +.fs-3 { + font-size: 0.75rem !important; +} +@media (min-width: 31.25rem) { + .fs-3 { + font-size: 0.875rem !important; + } +} + +.fs-4 { + font-size: 0.875rem !important; +} +@media (min-width: 31.25rem) { + .fs-4 { + font-size: 1rem !important; + } +} + +.fs-5 { + font-size: 1rem !important; +} +@media (min-width: 31.25rem) { + .fs-5 { + font-size: 1.125rem !important; + } +} + +.fs-6 { + font-size: 1.125rem !important; +} +@media (min-width: 31.25rem) { + .fs-6 { + font-size: 1.5rem !important; + line-height: 1.25; + } +} + +.fs-7 { + font-size: 1.5rem !important; + line-height: 1.25; +} +@media (min-width: 31.25rem) { + .fs-7 { + font-size: 2rem !important; + } +} + +.fs-8 { + font-size: 2rem !important; + line-height: 1.25; +} +@media (min-width: 31.25rem) { + .fs-8 { + font-size: 2.25rem !important; + } +} + +.fs-9 { + font-size: 2.25rem !important; + line-height: 1.25; +} +@media (min-width: 31.25rem) { + .fs-9 { + font-size: 2.625rem !important; + } +} + +.fs-10 { + font-size: 2.625rem !important; + line-height: 1.25; +} +@media (min-width: 31.25rem) { + .fs-10 { + font-size: 3rem !important; + } +} + +.fw-300 { + font-weight: 300 !important; +} + +.fw-400 { + font-weight: 400 !important; +} + +.fw-500 { + font-weight: 500 !important; +} + +.fw-700 { + font-weight: 700 !important; +} + +.lh-0 { + line-height: 0 !important; +} + +.lh-default { + line-height: 1.4; +} + +.lh-tight { + line-height: 1.25; +} + +.ls-5 { + letter-spacing: 0.05em !important; +} + +.ls-10 { + letter-spacing: 0.1em !important; +} + +.ls-0 { + letter-spacing: 0 !important; +} + +.text-uppercase { + text-transform: uppercase !important; +} + +.list-style-none { + padding: 0 !important; + margin: 0 !important; + list-style: none !important; +} +.list-style-none li::before { + display: none !important; +} + +.mx-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.m-0 { + margin: 0 !important; +} + +.mt-0 { + margin-top: 0 !important; +} + +.mr-0 { + margin-right: 0 !important; +} + +.mb-0 { + margin-bottom: 0 !important; +} + +.ml-0 { + margin-left: 0 !important; +} + +.mx-0 { + margin-right: 0 !important; + margin-left: 0 !important; +} + +.my-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; +} + +.mxn-0 { + margin-right: -0 !important; + margin-left: -0 !important; +} + +.mx-0-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.m-1 { + margin: 0.25rem !important; +} + +.mt-1 { + margin-top: 0.25rem !important; +} + +.mr-1 { + margin-right: 0.25rem !important; +} + +.mb-1 { + margin-bottom: 0.25rem !important; +} + +.ml-1 { + margin-left: 0.25rem !important; +} + +.mx-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; +} + +.my-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; +} + +.mxn-1 { + margin-right: -0.25rem !important; + margin-left: -0.25rem !important; +} + +.mx-1-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.m-2 { + margin: 0.5rem !important; +} + +.mt-2 { + margin-top: 0.5rem !important; +} + +.mr-2 { + margin-right: 0.5rem !important; +} + +.mb-2 { + margin-bottom: 0.5rem !important; +} + +.ml-2 { + margin-left: 0.5rem !important; +} + +.mx-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; +} + +.my-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; +} + +.mxn-2 { + margin-right: -0.5rem !important; + margin-left: -0.5rem !important; +} + +.mx-2-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.m-3 { + margin: 0.75rem !important; +} + +.mt-3 { + margin-top: 0.75rem !important; +} + +.mr-3 { + margin-right: 0.75rem !important; +} + +.mb-3 { + margin-bottom: 0.75rem !important; +} + +.ml-3 { + margin-left: 0.75rem !important; +} + +.mx-3 { + margin-right: 0.75rem !important; + margin-left: 0.75rem !important; +} + +.my-3 { + margin-top: 0.75rem !important; + margin-bottom: 0.75rem !important; +} + +.mxn-3 { + margin-right: -0.75rem !important; + margin-left: -0.75rem !important; +} + +.mx-3-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.m-4 { + margin: 1rem !important; +} + +.mt-4 { + margin-top: 1rem !important; +} + +.mr-4 { + margin-right: 1rem !important; +} + +.mb-4 { + margin-bottom: 1rem !important; +} + +.ml-4 { + margin-left: 1rem !important; +} + +.mx-4 { + margin-right: 1rem !important; + margin-left: 1rem !important; +} + +.my-4 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; +} + +.mxn-4 { + margin-right: -1rem !important; + margin-left: -1rem !important; +} + +.mx-4-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.m-5 { + margin: 1.5rem !important; +} + +.mt-5 { + margin-top: 1.5rem !important; +} + +.mr-5 { + margin-right: 1.5rem !important; +} + +.mb-5 { + margin-bottom: 1.5rem !important; +} + +.ml-5 { + margin-left: 1.5rem !important; +} + +.mx-5 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; +} + +.my-5 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; +} + +.mxn-5 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important; +} + +.mx-5-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.m-6 { + margin: 2rem !important; +} + +.mt-6 { + margin-top: 2rem !important; +} + +.mr-6 { + margin-right: 2rem !important; +} + +.mb-6 { + margin-bottom: 2rem !important; +} + +.ml-6 { + margin-left: 2rem !important; +} + +.mx-6 { + margin-right: 2rem !important; + margin-left: 2rem !important; +} + +.my-6 { + margin-top: 2rem !important; + margin-bottom: 2rem !important; +} + +.mxn-6 { + margin-right: -2rem !important; + margin-left: -2rem !important; +} + +.mx-6-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.m-7 { + margin: 2.5rem !important; +} + +.mt-7 { + margin-top: 2.5rem !important; +} + +.mr-7 { + margin-right: 2.5rem !important; +} + +.mb-7 { + margin-bottom: 2.5rem !important; +} + +.ml-7 { + margin-left: 2.5rem !important; +} + +.mx-7 { + margin-right: 2.5rem !important; + margin-left: 2.5rem !important; +} + +.my-7 { + margin-top: 2.5rem !important; + margin-bottom: 2.5rem !important; +} + +.mxn-7 { + margin-right: -2.5rem !important; + margin-left: -2.5rem !important; +} + +.mx-7-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.m-8 { + margin: 3rem !important; +} + +.mt-8 { + margin-top: 3rem !important; +} + +.mr-8 { + margin-right: 3rem !important; +} + +.mb-8 { + margin-bottom: 3rem !important; +} + +.ml-8 { + margin-left: 3rem !important; +} + +.mx-8 { + margin-right: 3rem !important; + margin-left: 3rem !important; +} + +.my-8 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; +} + +.mxn-8 { + margin-right: -3rem !important; + margin-left: -3rem !important; +} + +.mx-8-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.m-9 { + margin: 3.5rem !important; +} + +.mt-9 { + margin-top: 3.5rem !important; +} + +.mr-9 { + margin-right: 3.5rem !important; +} + +.mb-9 { + margin-bottom: 3.5rem !important; +} + +.ml-9 { + margin-left: 3.5rem !important; +} + +.mx-9 { + margin-right: 3.5rem !important; + margin-left: 3.5rem !important; +} + +.my-9 { + margin-top: 3.5rem !important; + margin-bottom: 3.5rem !important; +} + +.mxn-9 { + margin-right: -3.5rem !important; + margin-left: -3.5rem !important; +} + +.mx-9-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.m-10 { + margin: 4rem !important; +} + +.mt-10 { + margin-top: 4rem !important; +} + +.mr-10 { + margin-right: 4rem !important; +} + +.mb-10 { + margin-bottom: 4rem !important; +} + +.ml-10 { + margin-left: 4rem !important; +} + +.mx-10 { + margin-right: 4rem !important; + margin-left: 4rem !important; +} + +.my-10 { + margin-top: 4rem !important; + margin-bottom: 4rem !important; +} + +.mxn-10 { + margin-right: -4rem !important; + margin-left: -4rem !important; +} + +.mx-10-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +@media (min-width: 20rem) { + .m-xs-0 { + margin: 0 !important; + } + .mt-xs-0 { + margin-top: 0 !important; + } + .mr-xs-0 { + margin-right: 0 !important; + } + .mb-xs-0 { + margin-bottom: 0 !important; + } + .ml-xs-0 { + margin-left: 0 !important; + } + .mx-xs-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .my-xs-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .mxn-xs-0 { + margin-right: -0 !important; + margin-left: -0 !important; + } +} +@media (min-width: 20rem) { + .m-xs-1 { + margin: 0.25rem !important; + } + .mt-xs-1 { + margin-top: 0.25rem !important; + } + .mr-xs-1 { + margin-right: 0.25rem !important; + } + .mb-xs-1 { + margin-bottom: 0.25rem !important; + } + .ml-xs-1 { + margin-left: 0.25rem !important; + } + .mx-xs-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .my-xs-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .mxn-xs-1 { + margin-right: -0.25rem !important; + margin-left: -0.25rem !important; + } +} +@media (min-width: 20rem) { + .m-xs-2 { + margin: 0.5rem !important; + } + .mt-xs-2 { + margin-top: 0.5rem !important; + } + .mr-xs-2 { + margin-right: 0.5rem !important; + } + .mb-xs-2 { + margin-bottom: 0.5rem !important; + } + .ml-xs-2 { + margin-left: 0.5rem !important; + } + .mx-xs-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .my-xs-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .mxn-xs-2 { + margin-right: -0.5rem !important; + margin-left: -0.5rem !important; + } +} +@media (min-width: 20rem) { + .m-xs-3 { + margin: 0.75rem !important; + } + .mt-xs-3 { + margin-top: 0.75rem !important; + } + .mr-xs-3 { + margin-right: 0.75rem !important; + } + .mb-xs-3 { + margin-bottom: 0.75rem !important; + } + .ml-xs-3 { + margin-left: 0.75rem !important; + } + .mx-xs-3 { + margin-right: 0.75rem !important; + margin-left: 0.75rem !important; + } + .my-xs-3 { + margin-top: 0.75rem !important; + margin-bottom: 0.75rem !important; + } + .mxn-xs-3 { + margin-right: -0.75rem !important; + margin-left: -0.75rem !important; + } +} +@media (min-width: 20rem) { + .m-xs-4 { + margin: 1rem !important; + } + .mt-xs-4 { + margin-top: 1rem !important; + } + .mr-xs-4 { + margin-right: 1rem !important; + } + .mb-xs-4 { + margin-bottom: 1rem !important; + } + .ml-xs-4 { + margin-left: 1rem !important; + } + .mx-xs-4 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .my-xs-4 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .mxn-xs-4 { + margin-right: -1rem !important; + margin-left: -1rem !important; + } +} +@media (min-width: 20rem) { + .m-xs-5 { + margin: 1.5rem !important; + } + .mt-xs-5 { + margin-top: 1.5rem !important; + } + .mr-xs-5 { + margin-right: 1.5rem !important; + } + .mb-xs-5 { + margin-bottom: 1.5rem !important; + } + .ml-xs-5 { + margin-left: 1.5rem !important; + } + .mx-xs-5 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .my-xs-5 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .mxn-xs-5 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important; + } +} +@media (min-width: 20rem) { + .m-xs-6 { + margin: 2rem !important; + } + .mt-xs-6 { + margin-top: 2rem !important; + } + .mr-xs-6 { + margin-right: 2rem !important; + } + .mb-xs-6 { + margin-bottom: 2rem !important; + } + .ml-xs-6 { + margin-left: 2rem !important; + } + .mx-xs-6 { + margin-right: 2rem !important; + margin-left: 2rem !important; + } + .my-xs-6 { + margin-top: 2rem !important; + margin-bottom: 2rem !important; + } + .mxn-xs-6 { + margin-right: -2rem !important; + margin-left: -2rem !important; + } +} +@media (min-width: 20rem) { + .m-xs-7 { + margin: 2.5rem !important; + } + .mt-xs-7 { + margin-top: 2.5rem !important; + } + .mr-xs-7 { + margin-right: 2.5rem !important; + } + .mb-xs-7 { + margin-bottom: 2.5rem !important; + } + .ml-xs-7 { + margin-left: 2.5rem !important; + } + .mx-xs-7 { + margin-right: 2.5rem !important; + margin-left: 2.5rem !important; + } + .my-xs-7 { + margin-top: 2.5rem !important; + margin-bottom: 2.5rem !important; + } + .mxn-xs-7 { + margin-right: -2.5rem !important; + margin-left: -2.5rem !important; + } +} +@media (min-width: 20rem) { + .m-xs-8 { + margin: 3rem !important; + } + .mt-xs-8 { + margin-top: 3rem !important; + } + .mr-xs-8 { + margin-right: 3rem !important; + } + .mb-xs-8 { + margin-bottom: 3rem !important; + } + .ml-xs-8 { + margin-left: 3rem !important; + } + .mx-xs-8 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .my-xs-8 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .mxn-xs-8 { + margin-right: -3rem !important; + margin-left: -3rem !important; + } +} +@media (min-width: 20rem) { + .m-xs-9 { + margin: 3.5rem !important; + } + .mt-xs-9 { + margin-top: 3.5rem !important; + } + .mr-xs-9 { + margin-right: 3.5rem !important; + } + .mb-xs-9 { + margin-bottom: 3.5rem !important; + } + .ml-xs-9 { + margin-left: 3.5rem !important; + } + .mx-xs-9 { + margin-right: 3.5rem !important; + margin-left: 3.5rem !important; + } + .my-xs-9 { + margin-top: 3.5rem !important; + margin-bottom: 3.5rem !important; + } + .mxn-xs-9 { + margin-right: -3.5rem !important; + margin-left: -3.5rem !important; + } +} +@media (min-width: 20rem) { + .m-xs-10 { + margin: 4rem !important; + } + .mt-xs-10 { + margin-top: 4rem !important; + } + .mr-xs-10 { + margin-right: 4rem !important; + } + .mb-xs-10 { + margin-bottom: 4rem !important; + } + .ml-xs-10 { + margin-left: 4rem !important; + } + .mx-xs-10 { + margin-right: 4rem !important; + margin-left: 4rem !important; + } + .my-xs-10 { + margin-top: 4rem !important; + margin-bottom: 4rem !important; + } + .mxn-xs-10 { + margin-right: -4rem !important; + margin-left: -4rem !important; + } +} +@media (min-width: 31.25rem) { + .m-sm-0 { + margin: 0 !important; + } + .mt-sm-0 { + margin-top: 0 !important; + } + .mr-sm-0 { + margin-right: 0 !important; + } + .mb-sm-0 { + margin-bottom: 0 !important; + } + .ml-sm-0 { + margin-left: 0 !important; + } + .mx-sm-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .my-sm-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .mxn-sm-0 { + margin-right: -0 !important; + margin-left: -0 !important; + } +} +@media (min-width: 31.25rem) { + .m-sm-1 { + margin: 0.25rem !important; + } + .mt-sm-1 { + margin-top: 0.25rem !important; + } + .mr-sm-1 { + margin-right: 0.25rem !important; + } + .mb-sm-1 { + margin-bottom: 0.25rem !important; + } + .ml-sm-1 { + margin-left: 0.25rem !important; + } + .mx-sm-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .my-sm-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .mxn-sm-1 { + margin-right: -0.25rem !important; + margin-left: -0.25rem !important; + } +} +@media (min-width: 31.25rem) { + .m-sm-2 { + margin: 0.5rem !important; + } + .mt-sm-2 { + margin-top: 0.5rem !important; + } + .mr-sm-2 { + margin-right: 0.5rem !important; + } + .mb-sm-2 { + margin-bottom: 0.5rem !important; + } + .ml-sm-2 { + margin-left: 0.5rem !important; + } + .mx-sm-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .my-sm-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .mxn-sm-2 { + margin-right: -0.5rem !important; + margin-left: -0.5rem !important; + } +} +@media (min-width: 31.25rem) { + .m-sm-3 { + margin: 0.75rem !important; + } + .mt-sm-3 { + margin-top: 0.75rem !important; + } + .mr-sm-3 { + margin-right: 0.75rem !important; + } + .mb-sm-3 { + margin-bottom: 0.75rem !important; + } + .ml-sm-3 { + margin-left: 0.75rem !important; + } + .mx-sm-3 { + margin-right: 0.75rem !important; + margin-left: 0.75rem !important; + } + .my-sm-3 { + margin-top: 0.75rem !important; + margin-bottom: 0.75rem !important; + } + .mxn-sm-3 { + margin-right: -0.75rem !important; + margin-left: -0.75rem !important; + } +} +@media (min-width: 31.25rem) { + .m-sm-4 { + margin: 1rem !important; + } + .mt-sm-4 { + margin-top: 1rem !important; + } + .mr-sm-4 { + margin-right: 1rem !important; + } + .mb-sm-4 { + margin-bottom: 1rem !important; + } + .ml-sm-4 { + margin-left: 1rem !important; + } + .mx-sm-4 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .my-sm-4 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .mxn-sm-4 { + margin-right: -1rem !important; + margin-left: -1rem !important; + } +} +@media (min-width: 31.25rem) { + .m-sm-5 { + margin: 1.5rem !important; + } + .mt-sm-5 { + margin-top: 1.5rem !important; + } + .mr-sm-5 { + margin-right: 1.5rem !important; + } + .mb-sm-5 { + margin-bottom: 1.5rem !important; + } + .ml-sm-5 { + margin-left: 1.5rem !important; + } + .mx-sm-5 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .my-sm-5 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .mxn-sm-5 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important; + } +} +@media (min-width: 31.25rem) { + .m-sm-6 { + margin: 2rem !important; + } + .mt-sm-6 { + margin-top: 2rem !important; + } + .mr-sm-6 { + margin-right: 2rem !important; + } + .mb-sm-6 { + margin-bottom: 2rem !important; + } + .ml-sm-6 { + margin-left: 2rem !important; + } + .mx-sm-6 { + margin-right: 2rem !important; + margin-left: 2rem !important; + } + .my-sm-6 { + margin-top: 2rem !important; + margin-bottom: 2rem !important; + } + .mxn-sm-6 { + margin-right: -2rem !important; + margin-left: -2rem !important; + } +} +@media (min-width: 31.25rem) { + .m-sm-7 { + margin: 2.5rem !important; + } + .mt-sm-7 { + margin-top: 2.5rem !important; + } + .mr-sm-7 { + margin-right: 2.5rem !important; + } + .mb-sm-7 { + margin-bottom: 2.5rem !important; + } + .ml-sm-7 { + margin-left: 2.5rem !important; + } + .mx-sm-7 { + margin-right: 2.5rem !important; + margin-left: 2.5rem !important; + } + .my-sm-7 { + margin-top: 2.5rem !important; + margin-bottom: 2.5rem !important; + } + .mxn-sm-7 { + margin-right: -2.5rem !important; + margin-left: -2.5rem !important; + } +} +@media (min-width: 31.25rem) { + .m-sm-8 { + margin: 3rem !important; + } + .mt-sm-8 { + margin-top: 3rem !important; + } + .mr-sm-8 { + margin-right: 3rem !important; + } + .mb-sm-8 { + margin-bottom: 3rem !important; + } + .ml-sm-8 { + margin-left: 3rem !important; + } + .mx-sm-8 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .my-sm-8 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .mxn-sm-8 { + margin-right: -3rem !important; + margin-left: -3rem !important; + } +} +@media (min-width: 31.25rem) { + .m-sm-9 { + margin: 3.5rem !important; + } + .mt-sm-9 { + margin-top: 3.5rem !important; + } + .mr-sm-9 { + margin-right: 3.5rem !important; + } + .mb-sm-9 { + margin-bottom: 3.5rem !important; + } + .ml-sm-9 { + margin-left: 3.5rem !important; + } + .mx-sm-9 { + margin-right: 3.5rem !important; + margin-left: 3.5rem !important; + } + .my-sm-9 { + margin-top: 3.5rem !important; + margin-bottom: 3.5rem !important; + } + .mxn-sm-9 { + margin-right: -3.5rem !important; + margin-left: -3.5rem !important; + } +} +@media (min-width: 31.25rem) { + .m-sm-10 { + margin: 4rem !important; + } + .mt-sm-10 { + margin-top: 4rem !important; + } + .mr-sm-10 { + margin-right: 4rem !important; + } + .mb-sm-10 { + margin-bottom: 4rem !important; + } + .ml-sm-10 { + margin-left: 4rem !important; + } + .mx-sm-10 { + margin-right: 4rem !important; + margin-left: 4rem !important; + } + .my-sm-10 { + margin-top: 4rem !important; + margin-bottom: 4rem !important; + } + .mxn-sm-10 { + margin-right: -4rem !important; + margin-left: -4rem !important; + } +} +@media (min-width: 50rem) { + .m-md-0 { + margin: 0 !important; + } + .mt-md-0 { + margin-top: 0 !important; + } + .mr-md-0 { + margin-right: 0 !important; + } + .mb-md-0 { + margin-bottom: 0 !important; + } + .ml-md-0 { + margin-left: 0 !important; + } + .mx-md-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .my-md-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .mxn-md-0 { + margin-right: -0 !important; + margin-left: -0 !important; + } +} +@media (min-width: 50rem) { + .m-md-1 { + margin: 0.25rem !important; + } + .mt-md-1 { + margin-top: 0.25rem !important; + } + .mr-md-1 { + margin-right: 0.25rem !important; + } + .mb-md-1 { + margin-bottom: 0.25rem !important; + } + .ml-md-1 { + margin-left: 0.25rem !important; + } + .mx-md-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .my-md-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .mxn-md-1 { + margin-right: -0.25rem !important; + margin-left: -0.25rem !important; + } +} +@media (min-width: 50rem) { + .m-md-2 { + margin: 0.5rem !important; + } + .mt-md-2 { + margin-top: 0.5rem !important; + } + .mr-md-2 { + margin-right: 0.5rem !important; + } + .mb-md-2 { + margin-bottom: 0.5rem !important; + } + .ml-md-2 { + margin-left: 0.5rem !important; + } + .mx-md-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .my-md-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .mxn-md-2 { + margin-right: -0.5rem !important; + margin-left: -0.5rem !important; + } +} +@media (min-width: 50rem) { + .m-md-3 { + margin: 0.75rem !important; + } + .mt-md-3 { + margin-top: 0.75rem !important; + } + .mr-md-3 { + margin-right: 0.75rem !important; + } + .mb-md-3 { + margin-bottom: 0.75rem !important; + } + .ml-md-3 { + margin-left: 0.75rem !important; + } + .mx-md-3 { + margin-right: 0.75rem !important; + margin-left: 0.75rem !important; + } + .my-md-3 { + margin-top: 0.75rem !important; + margin-bottom: 0.75rem !important; + } + .mxn-md-3 { + margin-right: -0.75rem !important; + margin-left: -0.75rem !important; + } +} +@media (min-width: 50rem) { + .m-md-4 { + margin: 1rem !important; + } + .mt-md-4 { + margin-top: 1rem !important; + } + .mr-md-4 { + margin-right: 1rem !important; + } + .mb-md-4 { + margin-bottom: 1rem !important; + } + .ml-md-4 { + margin-left: 1rem !important; + } + .mx-md-4 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .my-md-4 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .mxn-md-4 { + margin-right: -1rem !important; + margin-left: -1rem !important; + } +} +@media (min-width: 50rem) { + .m-md-5 { + margin: 1.5rem !important; + } + .mt-md-5 { + margin-top: 1.5rem !important; + } + .mr-md-5 { + margin-right: 1.5rem !important; + } + .mb-md-5 { + margin-bottom: 1.5rem !important; + } + .ml-md-5 { + margin-left: 1.5rem !important; + } + .mx-md-5 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .my-md-5 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .mxn-md-5 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important; + } +} +@media (min-width: 50rem) { + .m-md-6 { + margin: 2rem !important; + } + .mt-md-6 { + margin-top: 2rem !important; + } + .mr-md-6 { + margin-right: 2rem !important; + } + .mb-md-6 { + margin-bottom: 2rem !important; + } + .ml-md-6 { + margin-left: 2rem !important; + } + .mx-md-6 { + margin-right: 2rem !important; + margin-left: 2rem !important; + } + .my-md-6 { + margin-top: 2rem !important; + margin-bottom: 2rem !important; + } + .mxn-md-6 { + margin-right: -2rem !important; + margin-left: -2rem !important; + } +} +@media (min-width: 50rem) { + .m-md-7 { + margin: 2.5rem !important; + } + .mt-md-7 { + margin-top: 2.5rem !important; + } + .mr-md-7 { + margin-right: 2.5rem !important; + } + .mb-md-7 { + margin-bottom: 2.5rem !important; + } + .ml-md-7 { + margin-left: 2.5rem !important; + } + .mx-md-7 { + margin-right: 2.5rem !important; + margin-left: 2.5rem !important; + } + .my-md-7 { + margin-top: 2.5rem !important; + margin-bottom: 2.5rem !important; + } + .mxn-md-7 { + margin-right: -2.5rem !important; + margin-left: -2.5rem !important; + } +} +@media (min-width: 50rem) { + .m-md-8 { + margin: 3rem !important; + } + .mt-md-8 { + margin-top: 3rem !important; + } + .mr-md-8 { + margin-right: 3rem !important; + } + .mb-md-8 { + margin-bottom: 3rem !important; + } + .ml-md-8 { + margin-left: 3rem !important; + } + .mx-md-8 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .my-md-8 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .mxn-md-8 { + margin-right: -3rem !important; + margin-left: -3rem !important; + } +} +@media (min-width: 50rem) { + .m-md-9 { + margin: 3.5rem !important; + } + .mt-md-9 { + margin-top: 3.5rem !important; + } + .mr-md-9 { + margin-right: 3.5rem !important; + } + .mb-md-9 { + margin-bottom: 3.5rem !important; + } + .ml-md-9 { + margin-left: 3.5rem !important; + } + .mx-md-9 { + margin-right: 3.5rem !important; + margin-left: 3.5rem !important; + } + .my-md-9 { + margin-top: 3.5rem !important; + margin-bottom: 3.5rem !important; + } + .mxn-md-9 { + margin-right: -3.5rem !important; + margin-left: -3.5rem !important; + } +} +@media (min-width: 50rem) { + .m-md-10 { + margin: 4rem !important; + } + .mt-md-10 { + margin-top: 4rem !important; + } + .mr-md-10 { + margin-right: 4rem !important; + } + .mb-md-10 { + margin-bottom: 4rem !important; + } + .ml-md-10 { + margin-left: 4rem !important; + } + .mx-md-10 { + margin-right: 4rem !important; + margin-left: 4rem !important; + } + .my-md-10 { + margin-top: 4rem !important; + margin-bottom: 4rem !important; + } + .mxn-md-10 { + margin-right: -4rem !important; + margin-left: -4rem !important; + } +} +@media (min-width: 66.5rem) { + .m-lg-0 { + margin: 0 !important; + } + .mt-lg-0 { + margin-top: 0 !important; + } + .mr-lg-0 { + margin-right: 0 !important; + } + .mb-lg-0 { + margin-bottom: 0 !important; + } + .ml-lg-0 { + margin-left: 0 !important; + } + .mx-lg-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .my-lg-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .mxn-lg-0 { + margin-right: -0 !important; + margin-left: -0 !important; + } +} +@media (min-width: 66.5rem) { + .m-lg-1 { + margin: 0.25rem !important; + } + .mt-lg-1 { + margin-top: 0.25rem !important; + } + .mr-lg-1 { + margin-right: 0.25rem !important; + } + .mb-lg-1 { + margin-bottom: 0.25rem !important; + } + .ml-lg-1 { + margin-left: 0.25rem !important; + } + .mx-lg-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .my-lg-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .mxn-lg-1 { + margin-right: -0.25rem !important; + margin-left: -0.25rem !important; + } +} +@media (min-width: 66.5rem) { + .m-lg-2 { + margin: 0.5rem !important; + } + .mt-lg-2 { + margin-top: 0.5rem !important; + } + .mr-lg-2 { + margin-right: 0.5rem !important; + } + .mb-lg-2 { + margin-bottom: 0.5rem !important; + } + .ml-lg-2 { + margin-left: 0.5rem !important; + } + .mx-lg-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .my-lg-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .mxn-lg-2 { + margin-right: -0.5rem !important; + margin-left: -0.5rem !important; + } +} +@media (min-width: 66.5rem) { + .m-lg-3 { + margin: 0.75rem !important; + } + .mt-lg-3 { + margin-top: 0.75rem !important; + } + .mr-lg-3 { + margin-right: 0.75rem !important; + } + .mb-lg-3 { + margin-bottom: 0.75rem !important; + } + .ml-lg-3 { + margin-left: 0.75rem !important; + } + .mx-lg-3 { + margin-right: 0.75rem !important; + margin-left: 0.75rem !important; + } + .my-lg-3 { + margin-top: 0.75rem !important; + margin-bottom: 0.75rem !important; + } + .mxn-lg-3 { + margin-right: -0.75rem !important; + margin-left: -0.75rem !important; + } +} +@media (min-width: 66.5rem) { + .m-lg-4 { + margin: 1rem !important; + } + .mt-lg-4 { + margin-top: 1rem !important; + } + .mr-lg-4 { + margin-right: 1rem !important; + } + .mb-lg-4 { + margin-bottom: 1rem !important; + } + .ml-lg-4 { + margin-left: 1rem !important; + } + .mx-lg-4 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .my-lg-4 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .mxn-lg-4 { + margin-right: -1rem !important; + margin-left: -1rem !important; + } +} +@media (min-width: 66.5rem) { + .m-lg-5 { + margin: 1.5rem !important; + } + .mt-lg-5 { + margin-top: 1.5rem !important; + } + .mr-lg-5 { + margin-right: 1.5rem !important; + } + .mb-lg-5 { + margin-bottom: 1.5rem !important; + } + .ml-lg-5 { + margin-left: 1.5rem !important; + } + .mx-lg-5 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .my-lg-5 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .mxn-lg-5 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important; + } +} +@media (min-width: 66.5rem) { + .m-lg-6 { + margin: 2rem !important; + } + .mt-lg-6 { + margin-top: 2rem !important; + } + .mr-lg-6 { + margin-right: 2rem !important; + } + .mb-lg-6 { + margin-bottom: 2rem !important; + } + .ml-lg-6 { + margin-left: 2rem !important; + } + .mx-lg-6 { + margin-right: 2rem !important; + margin-left: 2rem !important; + } + .my-lg-6 { + margin-top: 2rem !important; + margin-bottom: 2rem !important; + } + .mxn-lg-6 { + margin-right: -2rem !important; + margin-left: -2rem !important; + } +} +@media (min-width: 66.5rem) { + .m-lg-7 { + margin: 2.5rem !important; + } + .mt-lg-7 { + margin-top: 2.5rem !important; + } + .mr-lg-7 { + margin-right: 2.5rem !important; + } + .mb-lg-7 { + margin-bottom: 2.5rem !important; + } + .ml-lg-7 { + margin-left: 2.5rem !important; + } + .mx-lg-7 { + margin-right: 2.5rem !important; + margin-left: 2.5rem !important; + } + .my-lg-7 { + margin-top: 2.5rem !important; + margin-bottom: 2.5rem !important; + } + .mxn-lg-7 { + margin-right: -2.5rem !important; + margin-left: -2.5rem !important; + } +} +@media (min-width: 66.5rem) { + .m-lg-8 { + margin: 3rem !important; + } + .mt-lg-8 { + margin-top: 3rem !important; + } + .mr-lg-8 { + margin-right: 3rem !important; + } + .mb-lg-8 { + margin-bottom: 3rem !important; + } + .ml-lg-8 { + margin-left: 3rem !important; + } + .mx-lg-8 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .my-lg-8 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .mxn-lg-8 { + margin-right: -3rem !important; + margin-left: -3rem !important; + } +} +@media (min-width: 66.5rem) { + .m-lg-9 { + margin: 3.5rem !important; + } + .mt-lg-9 { + margin-top: 3.5rem !important; + } + .mr-lg-9 { + margin-right: 3.5rem !important; + } + .mb-lg-9 { + margin-bottom: 3.5rem !important; + } + .ml-lg-9 { + margin-left: 3.5rem !important; + } + .mx-lg-9 { + margin-right: 3.5rem !important; + margin-left: 3.5rem !important; + } + .my-lg-9 { + margin-top: 3.5rem !important; + margin-bottom: 3.5rem !important; + } + .mxn-lg-9 { + margin-right: -3.5rem !important; + margin-left: -3.5rem !important; + } +} +@media (min-width: 66.5rem) { + .m-lg-10 { + margin: 4rem !important; + } + .mt-lg-10 { + margin-top: 4rem !important; + } + .mr-lg-10 { + margin-right: 4rem !important; + } + .mb-lg-10 { + margin-bottom: 4rem !important; + } + .ml-lg-10 { + margin-left: 4rem !important; + } + .mx-lg-10 { + margin-right: 4rem !important; + margin-left: 4rem !important; + } + .my-lg-10 { + margin-top: 4rem !important; + margin-bottom: 4rem !important; + } + .mxn-lg-10 { + margin-right: -4rem !important; + margin-left: -4rem !important; + } +} +@media (min-width: 87.5rem) { + .m-xl-0 { + margin: 0 !important; + } + .mt-xl-0 { + margin-top: 0 !important; + } + .mr-xl-0 { + margin-right: 0 !important; + } + .mb-xl-0 { + margin-bottom: 0 !important; + } + .ml-xl-0 { + margin-left: 0 !important; + } + .mx-xl-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .my-xl-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .mxn-xl-0 { + margin-right: -0 !important; + margin-left: -0 !important; + } +} +@media (min-width: 87.5rem) { + .m-xl-1 { + margin: 0.25rem !important; + } + .mt-xl-1 { + margin-top: 0.25rem !important; + } + .mr-xl-1 { + margin-right: 0.25rem !important; + } + .mb-xl-1 { + margin-bottom: 0.25rem !important; + } + .ml-xl-1 { + margin-left: 0.25rem !important; + } + .mx-xl-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .my-xl-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .mxn-xl-1 { + margin-right: -0.25rem !important; + margin-left: -0.25rem !important; + } +} +@media (min-width: 87.5rem) { + .m-xl-2 { + margin: 0.5rem !important; + } + .mt-xl-2 { + margin-top: 0.5rem !important; + } + .mr-xl-2 { + margin-right: 0.5rem !important; + } + .mb-xl-2 { + margin-bottom: 0.5rem !important; + } + .ml-xl-2 { + margin-left: 0.5rem !important; + } + .mx-xl-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .my-xl-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .mxn-xl-2 { + margin-right: -0.5rem !important; + margin-left: -0.5rem !important; + } +} +@media (min-width: 87.5rem) { + .m-xl-3 { + margin: 0.75rem !important; + } + .mt-xl-3 { + margin-top: 0.75rem !important; + } + .mr-xl-3 { + margin-right: 0.75rem !important; + } + .mb-xl-3 { + margin-bottom: 0.75rem !important; + } + .ml-xl-3 { + margin-left: 0.75rem !important; + } + .mx-xl-3 { + margin-right: 0.75rem !important; + margin-left: 0.75rem !important; + } + .my-xl-3 { + margin-top: 0.75rem !important; + margin-bottom: 0.75rem !important; + } + .mxn-xl-3 { + margin-right: -0.75rem !important; + margin-left: -0.75rem !important; + } +} +@media (min-width: 87.5rem) { + .m-xl-4 { + margin: 1rem !important; + } + .mt-xl-4 { + margin-top: 1rem !important; + } + .mr-xl-4 { + margin-right: 1rem !important; + } + .mb-xl-4 { + margin-bottom: 1rem !important; + } + .ml-xl-4 { + margin-left: 1rem !important; + } + .mx-xl-4 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .my-xl-4 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .mxn-xl-4 { + margin-right: -1rem !important; + margin-left: -1rem !important; + } +} +@media (min-width: 87.5rem) { + .m-xl-5 { + margin: 1.5rem !important; + } + .mt-xl-5 { + margin-top: 1.5rem !important; + } + .mr-xl-5 { + margin-right: 1.5rem !important; + } + .mb-xl-5 { + margin-bottom: 1.5rem !important; + } + .ml-xl-5 { + margin-left: 1.5rem !important; + } + .mx-xl-5 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .my-xl-5 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .mxn-xl-5 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important; + } +} +@media (min-width: 87.5rem) { + .m-xl-6 { + margin: 2rem !important; + } + .mt-xl-6 { + margin-top: 2rem !important; + } + .mr-xl-6 { + margin-right: 2rem !important; + } + .mb-xl-6 { + margin-bottom: 2rem !important; + } + .ml-xl-6 { + margin-left: 2rem !important; + } + .mx-xl-6 { + margin-right: 2rem !important; + margin-left: 2rem !important; + } + .my-xl-6 { + margin-top: 2rem !important; + margin-bottom: 2rem !important; + } + .mxn-xl-6 { + margin-right: -2rem !important; + margin-left: -2rem !important; + } +} +@media (min-width: 87.5rem) { + .m-xl-7 { + margin: 2.5rem !important; + } + .mt-xl-7 { + margin-top: 2.5rem !important; + } + .mr-xl-7 { + margin-right: 2.5rem !important; + } + .mb-xl-7 { + margin-bottom: 2.5rem !important; + } + .ml-xl-7 { + margin-left: 2.5rem !important; + } + .mx-xl-7 { + margin-right: 2.5rem !important; + margin-left: 2.5rem !important; + } + .my-xl-7 { + margin-top: 2.5rem !important; + margin-bottom: 2.5rem !important; + } + .mxn-xl-7 { + margin-right: -2.5rem !important; + margin-left: -2.5rem !important; + } +} +@media (min-width: 87.5rem) { + .m-xl-8 { + margin: 3rem !important; + } + .mt-xl-8 { + margin-top: 3rem !important; + } + .mr-xl-8 { + margin-right: 3rem !important; + } + .mb-xl-8 { + margin-bottom: 3rem !important; + } + .ml-xl-8 { + margin-left: 3rem !important; + } + .mx-xl-8 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .my-xl-8 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .mxn-xl-8 { + margin-right: -3rem !important; + margin-left: -3rem !important; + } +} +@media (min-width: 87.5rem) { + .m-xl-9 { + margin: 3.5rem !important; + } + .mt-xl-9 { + margin-top: 3.5rem !important; + } + .mr-xl-9 { + margin-right: 3.5rem !important; + } + .mb-xl-9 { + margin-bottom: 3.5rem !important; + } + .ml-xl-9 { + margin-left: 3.5rem !important; + } + .mx-xl-9 { + margin-right: 3.5rem !important; + margin-left: 3.5rem !important; + } + .my-xl-9 { + margin-top: 3.5rem !important; + margin-bottom: 3.5rem !important; + } + .mxn-xl-9 { + margin-right: -3.5rem !important; + margin-left: -3.5rem !important; + } +} +@media (min-width: 87.5rem) { + .m-xl-10 { + margin: 4rem !important; + } + .mt-xl-10 { + margin-top: 4rem !important; + } + .mr-xl-10 { + margin-right: 4rem !important; + } + .mb-xl-10 { + margin-bottom: 4rem !important; + } + .ml-xl-10 { + margin-left: 4rem !important; + } + .mx-xl-10 { + margin-right: 4rem !important; + margin-left: 4rem !important; + } + .my-xl-10 { + margin-top: 4rem !important; + margin-bottom: 4rem !important; + } + .mxn-xl-10 { + margin-right: -4rem !important; + margin-left: -4rem !important; + } +} +.p-0 { + padding: 0 !important; +} + +.pt-0 { + padding-top: 0 !important; +} + +.pr-0 { + padding-right: 0 !important; +} + +.pb-0 { + padding-bottom: 0 !important; +} + +.pl-0 { + padding-left: 0 !important; +} + +.px-0 { + padding-right: 0 !important; + padding-left: 0 !important; +} + +.py-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; +} + +.p-1 { + padding: 0.25rem !important; +} + +.pt-1 { + padding-top: 0.25rem !important; +} + +.pr-1 { + padding-right: 0.25rem !important; +} + +.pb-1 { + padding-bottom: 0.25rem !important; +} + +.pl-1 { + padding-left: 0.25rem !important; +} + +.px-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; +} + +.py-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; +} + +.p-2 { + padding: 0.5rem !important; +} + +.pt-2 { + padding-top: 0.5rem !important; +} + +.pr-2 { + padding-right: 0.5rem !important; +} + +.pb-2 { + padding-bottom: 0.5rem !important; +} + +.pl-2 { + padding-left: 0.5rem !important; +} + +.px-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; +} + +.py-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; +} + +.p-3 { + padding: 0.75rem !important; +} + +.pt-3 { + padding-top: 0.75rem !important; +} + +.pr-3 { + padding-right: 0.75rem !important; +} + +.pb-3 { + padding-bottom: 0.75rem !important; +} + +.pl-3 { + padding-left: 0.75rem !important; +} + +.px-3 { + padding-right: 0.75rem !important; + padding-left: 0.75rem !important; +} + +.py-3 { + padding-top: 0.75rem !important; + padding-bottom: 0.75rem !important; +} + +.p-4 { + padding: 1rem !important; +} + +.pt-4 { + padding-top: 1rem !important; +} + +.pr-4 { + padding-right: 1rem !important; +} + +.pb-4 { + padding-bottom: 1rem !important; +} + +.pl-4 { + padding-left: 1rem !important; +} + +.px-4 { + padding-right: 1rem !important; + padding-left: 1rem !important; +} + +.py-4 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; +} + +.p-5 { + padding: 1.5rem !important; +} + +.pt-5 { + padding-top: 1.5rem !important; +} + +.pr-5 { + padding-right: 1.5rem !important; +} + +.pb-5 { + padding-bottom: 1.5rem !important; +} + +.pl-5 { + padding-left: 1.5rem !important; +} + +.px-5 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; +} + +.py-5 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; +} + +.p-6 { + padding: 2rem !important; +} + +.pt-6 { + padding-top: 2rem !important; +} + +.pr-6 { + padding-right: 2rem !important; +} + +.pb-6 { + padding-bottom: 2rem !important; +} + +.pl-6 { + padding-left: 2rem !important; +} + +.px-6 { + padding-right: 2rem !important; + padding-left: 2rem !important; +} + +.py-6 { + padding-top: 2rem !important; + padding-bottom: 2rem !important; +} + +.p-7 { + padding: 2.5rem !important; +} + +.pt-7 { + padding-top: 2.5rem !important; +} + +.pr-7 { + padding-right: 2.5rem !important; +} + +.pb-7 { + padding-bottom: 2.5rem !important; +} + +.pl-7 { + padding-left: 2.5rem !important; +} + +.px-7 { + padding-right: 2.5rem !important; + padding-left: 2.5rem !important; +} + +.py-7 { + padding-top: 2.5rem !important; + padding-bottom: 2.5rem !important; +} + +.p-8 { + padding: 3rem !important; +} + +.pt-8 { + padding-top: 3rem !important; +} + +.pr-8 { + padding-right: 3rem !important; +} + +.pb-8 { + padding-bottom: 3rem !important; +} + +.pl-8 { + padding-left: 3rem !important; +} + +.px-8 { + padding-right: 3rem !important; + padding-left: 3rem !important; +} + +.py-8 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; +} + +.p-9 { + padding: 3.5rem !important; +} + +.pt-9 { + padding-top: 3.5rem !important; +} + +.pr-9 { + padding-right: 3.5rem !important; +} + +.pb-9 { + padding-bottom: 3.5rem !important; +} + +.pl-9 { + padding-left: 3.5rem !important; +} + +.px-9 { + padding-right: 3.5rem !important; + padding-left: 3.5rem !important; +} + +.py-9 { + padding-top: 3.5rem !important; + padding-bottom: 3.5rem !important; +} + +.p-10 { + padding: 4rem !important; +} + +.pt-10 { + padding-top: 4rem !important; +} + +.pr-10 { + padding-right: 4rem !important; +} + +.pb-10 { + padding-bottom: 4rem !important; +} + +.pl-10 { + padding-left: 4rem !important; +} + +.px-10 { + padding-right: 4rem !important; + padding-left: 4rem !important; +} + +.py-10 { + padding-top: 4rem !important; + padding-bottom: 4rem !important; +} + +@media (min-width: 20rem) { + .p-xs-0 { + padding: 0 !important; + } + .pt-xs-0 { + padding-top: 0 !important; + } + .pr-xs-0 { + padding-right: 0 !important; + } + .pb-xs-0 { + padding-bottom: 0 !important; + } + .pl-xs-0 { + padding-left: 0 !important; + } + .px-xs-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .py-xs-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .p-xs-1 { + padding: 0.25rem !important; + } + .pt-xs-1 { + padding-top: 0.25rem !important; + } + .pr-xs-1 { + padding-right: 0.25rem !important; + } + .pb-xs-1 { + padding-bottom: 0.25rem !important; + } + .pl-xs-1 { + padding-left: 0.25rem !important; + } + .px-xs-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .py-xs-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .p-xs-2 { + padding: 0.5rem !important; + } + .pt-xs-2 { + padding-top: 0.5rem !important; + } + .pr-xs-2 { + padding-right: 0.5rem !important; + } + .pb-xs-2 { + padding-bottom: 0.5rem !important; + } + .pl-xs-2 { + padding-left: 0.5rem !important; + } + .px-xs-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .py-xs-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .p-xs-3 { + padding: 0.75rem !important; + } + .pt-xs-3 { + padding-top: 0.75rem !important; + } + .pr-xs-3 { + padding-right: 0.75rem !important; + } + .pb-xs-3 { + padding-bottom: 0.75rem !important; + } + .pl-xs-3 { + padding-left: 0.75rem !important; + } + .px-xs-3 { + padding-right: 0.75rem !important; + padding-left: 0.75rem !important; + } + .py-xs-3 { + padding-top: 0.75rem !important; + padding-bottom: 0.75rem !important; + } + .p-xs-4 { + padding: 1rem !important; + } + .pt-xs-4 { + padding-top: 1rem !important; + } + .pr-xs-4 { + padding-right: 1rem !important; + } + .pb-xs-4 { + padding-bottom: 1rem !important; + } + .pl-xs-4 { + padding-left: 1rem !important; + } + .px-xs-4 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .py-xs-4 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .p-xs-5 { + padding: 1.5rem !important; + } + .pt-xs-5 { + padding-top: 1.5rem !important; + } + .pr-xs-5 { + padding-right: 1.5rem !important; + } + .pb-xs-5 { + padding-bottom: 1.5rem !important; + } + .pl-xs-5 { + padding-left: 1.5rem !important; + } + .px-xs-5 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .py-xs-5 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .p-xs-6 { + padding: 2rem !important; + } + .pt-xs-6 { + padding-top: 2rem !important; + } + .pr-xs-6 { + padding-right: 2rem !important; + } + .pb-xs-6 { + padding-bottom: 2rem !important; + } + .pl-xs-6 { + padding-left: 2rem !important; + } + .px-xs-6 { + padding-right: 2rem !important; + padding-left: 2rem !important; + } + .py-xs-6 { + padding-top: 2rem !important; + padding-bottom: 2rem !important; + } + .p-xs-7 { + padding: 2.5rem !important; + } + .pt-xs-7 { + padding-top: 2.5rem !important; + } + .pr-xs-7 { + padding-right: 2.5rem !important; + } + .pb-xs-7 { + padding-bottom: 2.5rem !important; + } + .pl-xs-7 { + padding-left: 2.5rem !important; + } + .px-xs-7 { + padding-right: 2.5rem !important; + padding-left: 2.5rem !important; + } + .py-xs-7 { + padding-top: 2.5rem !important; + padding-bottom: 2.5rem !important; + } + .p-xs-8 { + padding: 3rem !important; + } + .pt-xs-8 { + padding-top: 3rem !important; + } + .pr-xs-8 { + padding-right: 3rem !important; + } + .pb-xs-8 { + padding-bottom: 3rem !important; + } + .pl-xs-8 { + padding-left: 3rem !important; + } + .px-xs-8 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-xs-8 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .p-xs-9 { + padding: 3.5rem !important; + } + .pt-xs-9 { + padding-top: 3.5rem !important; + } + .pr-xs-9 { + padding-right: 3.5rem !important; + } + .pb-xs-9 { + padding-bottom: 3.5rem !important; + } + .pl-xs-9 { + padding-left: 3.5rem !important; + } + .px-xs-9 { + padding-right: 3.5rem !important; + padding-left: 3.5rem !important; + } + .py-xs-9 { + padding-top: 3.5rem !important; + padding-bottom: 3.5rem !important; + } + .p-xs-10 { + padding: 4rem !important; + } + .pt-xs-10 { + padding-top: 4rem !important; + } + .pr-xs-10 { + padding-right: 4rem !important; + } + .pb-xs-10 { + padding-bottom: 4rem !important; + } + .pl-xs-10 { + padding-left: 4rem !important; + } + .px-xs-10 { + padding-right: 4rem !important; + padding-left: 4rem !important; + } + .py-xs-10 { + padding-top: 4rem !important; + padding-bottom: 4rem !important; + } +} +@media (min-width: 31.25rem) { + .p-sm-0 { + padding: 0 !important; + } + .pt-sm-0 { + padding-top: 0 !important; + } + .pr-sm-0 { + padding-right: 0 !important; + } + .pb-sm-0 { + padding-bottom: 0 !important; + } + .pl-sm-0 { + padding-left: 0 !important; + } + .px-sm-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .py-sm-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .p-sm-1 { + padding: 0.25rem !important; + } + .pt-sm-1 { + padding-top: 0.25rem !important; + } + .pr-sm-1 { + padding-right: 0.25rem !important; + } + .pb-sm-1 { + padding-bottom: 0.25rem !important; + } + .pl-sm-1 { + padding-left: 0.25rem !important; + } + .px-sm-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .py-sm-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .p-sm-2 { + padding: 0.5rem !important; + } + .pt-sm-2 { + padding-top: 0.5rem !important; + } + .pr-sm-2 { + padding-right: 0.5rem !important; + } + .pb-sm-2 { + padding-bottom: 0.5rem !important; + } + .pl-sm-2 { + padding-left: 0.5rem !important; + } + .px-sm-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .py-sm-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .p-sm-3 { + padding: 0.75rem !important; + } + .pt-sm-3 { + padding-top: 0.75rem !important; + } + .pr-sm-3 { + padding-right: 0.75rem !important; + } + .pb-sm-3 { + padding-bottom: 0.75rem !important; + } + .pl-sm-3 { + padding-left: 0.75rem !important; + } + .px-sm-3 { + padding-right: 0.75rem !important; + padding-left: 0.75rem !important; + } + .py-sm-3 { + padding-top: 0.75rem !important; + padding-bottom: 0.75rem !important; + } + .p-sm-4 { + padding: 1rem !important; + } + .pt-sm-4 { + padding-top: 1rem !important; + } + .pr-sm-4 { + padding-right: 1rem !important; + } + .pb-sm-4 { + padding-bottom: 1rem !important; + } + .pl-sm-4 { + padding-left: 1rem !important; + } + .px-sm-4 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .py-sm-4 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .p-sm-5 { + padding: 1.5rem !important; + } + .pt-sm-5 { + padding-top: 1.5rem !important; + } + .pr-sm-5 { + padding-right: 1.5rem !important; + } + .pb-sm-5 { + padding-bottom: 1.5rem !important; + } + .pl-sm-5 { + padding-left: 1.5rem !important; + } + .px-sm-5 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .py-sm-5 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .p-sm-6 { + padding: 2rem !important; + } + .pt-sm-6 { + padding-top: 2rem !important; + } + .pr-sm-6 { + padding-right: 2rem !important; + } + .pb-sm-6 { + padding-bottom: 2rem !important; + } + .pl-sm-6 { + padding-left: 2rem !important; + } + .px-sm-6 { + padding-right: 2rem !important; + padding-left: 2rem !important; + } + .py-sm-6 { + padding-top: 2rem !important; + padding-bottom: 2rem !important; + } + .p-sm-7 { + padding: 2.5rem !important; + } + .pt-sm-7 { + padding-top: 2.5rem !important; + } + .pr-sm-7 { + padding-right: 2.5rem !important; + } + .pb-sm-7 { + padding-bottom: 2.5rem !important; + } + .pl-sm-7 { + padding-left: 2.5rem !important; + } + .px-sm-7 { + padding-right: 2.5rem !important; + padding-left: 2.5rem !important; + } + .py-sm-7 { + padding-top: 2.5rem !important; + padding-bottom: 2.5rem !important; + } + .p-sm-8 { + padding: 3rem !important; + } + .pt-sm-8 { + padding-top: 3rem !important; + } + .pr-sm-8 { + padding-right: 3rem !important; + } + .pb-sm-8 { + padding-bottom: 3rem !important; + } + .pl-sm-8 { + padding-left: 3rem !important; + } + .px-sm-8 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-sm-8 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .p-sm-9 { + padding: 3.5rem !important; + } + .pt-sm-9 { + padding-top: 3.5rem !important; + } + .pr-sm-9 { + padding-right: 3.5rem !important; + } + .pb-sm-9 { + padding-bottom: 3.5rem !important; + } + .pl-sm-9 { + padding-left: 3.5rem !important; + } + .px-sm-9 { + padding-right: 3.5rem !important; + padding-left: 3.5rem !important; + } + .py-sm-9 { + padding-top: 3.5rem !important; + padding-bottom: 3.5rem !important; + } + .p-sm-10 { + padding: 4rem !important; + } + .pt-sm-10 { + padding-top: 4rem !important; + } + .pr-sm-10 { + padding-right: 4rem !important; + } + .pb-sm-10 { + padding-bottom: 4rem !important; + } + .pl-sm-10 { + padding-left: 4rem !important; + } + .px-sm-10 { + padding-right: 4rem !important; + padding-left: 4rem !important; + } + .py-sm-10 { + padding-top: 4rem !important; + padding-bottom: 4rem !important; + } +} +@media (min-width: 50rem) { + .p-md-0 { + padding: 0 !important; + } + .pt-md-0 { + padding-top: 0 !important; + } + .pr-md-0 { + padding-right: 0 !important; + } + .pb-md-0 { + padding-bottom: 0 !important; + } + .pl-md-0 { + padding-left: 0 !important; + } + .px-md-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .py-md-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .p-md-1 { + padding: 0.25rem !important; + } + .pt-md-1 { + padding-top: 0.25rem !important; + } + .pr-md-1 { + padding-right: 0.25rem !important; + } + .pb-md-1 { + padding-bottom: 0.25rem !important; + } + .pl-md-1 { + padding-left: 0.25rem !important; + } + .px-md-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .py-md-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .p-md-2 { + padding: 0.5rem !important; + } + .pt-md-2 { + padding-top: 0.5rem !important; + } + .pr-md-2 { + padding-right: 0.5rem !important; + } + .pb-md-2 { + padding-bottom: 0.5rem !important; + } + .pl-md-2 { + padding-left: 0.5rem !important; + } + .px-md-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .py-md-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .p-md-3 { + padding: 0.75rem !important; + } + .pt-md-3 { + padding-top: 0.75rem !important; + } + .pr-md-3 { + padding-right: 0.75rem !important; + } + .pb-md-3 { + padding-bottom: 0.75rem !important; + } + .pl-md-3 { + padding-left: 0.75rem !important; + } + .px-md-3 { + padding-right: 0.75rem !important; + padding-left: 0.75rem !important; + } + .py-md-3 { + padding-top: 0.75rem !important; + padding-bottom: 0.75rem !important; + } + .p-md-4 { + padding: 1rem !important; + } + .pt-md-4 { + padding-top: 1rem !important; + } + .pr-md-4 { + padding-right: 1rem !important; + } + .pb-md-4 { + padding-bottom: 1rem !important; + } + .pl-md-4 { + padding-left: 1rem !important; + } + .px-md-4 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .py-md-4 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .p-md-5 { + padding: 1.5rem !important; + } + .pt-md-5 { + padding-top: 1.5rem !important; + } + .pr-md-5 { + padding-right: 1.5rem !important; + } + .pb-md-5 { + padding-bottom: 1.5rem !important; + } + .pl-md-5 { + padding-left: 1.5rem !important; + } + .px-md-5 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .py-md-5 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .p-md-6 { + padding: 2rem !important; + } + .pt-md-6 { + padding-top: 2rem !important; + } + .pr-md-6 { + padding-right: 2rem !important; + } + .pb-md-6 { + padding-bottom: 2rem !important; + } + .pl-md-6 { + padding-left: 2rem !important; + } + .px-md-6 { + padding-right: 2rem !important; + padding-left: 2rem !important; + } + .py-md-6 { + padding-top: 2rem !important; + padding-bottom: 2rem !important; + } + .p-md-7 { + padding: 2.5rem !important; + } + .pt-md-7 { + padding-top: 2.5rem !important; + } + .pr-md-7 { + padding-right: 2.5rem !important; + } + .pb-md-7 { + padding-bottom: 2.5rem !important; + } + .pl-md-7 { + padding-left: 2.5rem !important; + } + .px-md-7 { + padding-right: 2.5rem !important; + padding-left: 2.5rem !important; + } + .py-md-7 { + padding-top: 2.5rem !important; + padding-bottom: 2.5rem !important; + } + .p-md-8 { + padding: 3rem !important; + } + .pt-md-8 { + padding-top: 3rem !important; + } + .pr-md-8 { + padding-right: 3rem !important; + } + .pb-md-8 { + padding-bottom: 3rem !important; + } + .pl-md-8 { + padding-left: 3rem !important; + } + .px-md-8 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-md-8 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .p-md-9 { + padding: 3.5rem !important; + } + .pt-md-9 { + padding-top: 3.5rem !important; + } + .pr-md-9 { + padding-right: 3.5rem !important; + } + .pb-md-9 { + padding-bottom: 3.5rem !important; + } + .pl-md-9 { + padding-left: 3.5rem !important; + } + .px-md-9 { + padding-right: 3.5rem !important; + padding-left: 3.5rem !important; + } + .py-md-9 { + padding-top: 3.5rem !important; + padding-bottom: 3.5rem !important; + } + .p-md-10 { + padding: 4rem !important; + } + .pt-md-10 { + padding-top: 4rem !important; + } + .pr-md-10 { + padding-right: 4rem !important; + } + .pb-md-10 { + padding-bottom: 4rem !important; + } + .pl-md-10 { + padding-left: 4rem !important; + } + .px-md-10 { + padding-right: 4rem !important; + padding-left: 4rem !important; + } + .py-md-10 { + padding-top: 4rem !important; + padding-bottom: 4rem !important; + } +} +@media (min-width: 66.5rem) { + .p-lg-0 { + padding: 0 !important; + } + .pt-lg-0 { + padding-top: 0 !important; + } + .pr-lg-0 { + padding-right: 0 !important; + } + .pb-lg-0 { + padding-bottom: 0 !important; + } + .pl-lg-0 { + padding-left: 0 !important; + } + .px-lg-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .py-lg-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .p-lg-1 { + padding: 0.25rem !important; + } + .pt-lg-1 { + padding-top: 0.25rem !important; + } + .pr-lg-1 { + padding-right: 0.25rem !important; + } + .pb-lg-1 { + padding-bottom: 0.25rem !important; + } + .pl-lg-1 { + padding-left: 0.25rem !important; + } + .px-lg-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .py-lg-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .p-lg-2 { + padding: 0.5rem !important; + } + .pt-lg-2 { + padding-top: 0.5rem !important; + } + .pr-lg-2 { + padding-right: 0.5rem !important; + } + .pb-lg-2 { + padding-bottom: 0.5rem !important; + } + .pl-lg-2 { + padding-left: 0.5rem !important; + } + .px-lg-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .py-lg-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .p-lg-3 { + padding: 0.75rem !important; + } + .pt-lg-3 { + padding-top: 0.75rem !important; + } + .pr-lg-3 { + padding-right: 0.75rem !important; + } + .pb-lg-3 { + padding-bottom: 0.75rem !important; + } + .pl-lg-3 { + padding-left: 0.75rem !important; + } + .px-lg-3 { + padding-right: 0.75rem !important; + padding-left: 0.75rem !important; + } + .py-lg-3 { + padding-top: 0.75rem !important; + padding-bottom: 0.75rem !important; + } + .p-lg-4 { + padding: 1rem !important; + } + .pt-lg-4 { + padding-top: 1rem !important; + } + .pr-lg-4 { + padding-right: 1rem !important; + } + .pb-lg-4 { + padding-bottom: 1rem !important; + } + .pl-lg-4 { + padding-left: 1rem !important; + } + .px-lg-4 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .py-lg-4 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .p-lg-5 { + padding: 1.5rem !important; + } + .pt-lg-5 { + padding-top: 1.5rem !important; + } + .pr-lg-5 { + padding-right: 1.5rem !important; + } + .pb-lg-5 { + padding-bottom: 1.5rem !important; + } + .pl-lg-5 { + padding-left: 1.5rem !important; + } + .px-lg-5 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .py-lg-5 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .p-lg-6 { + padding: 2rem !important; + } + .pt-lg-6 { + padding-top: 2rem !important; + } + .pr-lg-6 { + padding-right: 2rem !important; + } + .pb-lg-6 { + padding-bottom: 2rem !important; + } + .pl-lg-6 { + padding-left: 2rem !important; + } + .px-lg-6 { + padding-right: 2rem !important; + padding-left: 2rem !important; + } + .py-lg-6 { + padding-top: 2rem !important; + padding-bottom: 2rem !important; + } + .p-lg-7 { + padding: 2.5rem !important; + } + .pt-lg-7 { + padding-top: 2.5rem !important; + } + .pr-lg-7 { + padding-right: 2.5rem !important; + } + .pb-lg-7 { + padding-bottom: 2.5rem !important; + } + .pl-lg-7 { + padding-left: 2.5rem !important; + } + .px-lg-7 { + padding-right: 2.5rem !important; + padding-left: 2.5rem !important; + } + .py-lg-7 { + padding-top: 2.5rem !important; + padding-bottom: 2.5rem !important; + } + .p-lg-8 { + padding: 3rem !important; + } + .pt-lg-8 { + padding-top: 3rem !important; + } + .pr-lg-8 { + padding-right: 3rem !important; + } + .pb-lg-8 { + padding-bottom: 3rem !important; + } + .pl-lg-8 { + padding-left: 3rem !important; + } + .px-lg-8 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-lg-8 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .p-lg-9 { + padding: 3.5rem !important; + } + .pt-lg-9 { + padding-top: 3.5rem !important; + } + .pr-lg-9 { + padding-right: 3.5rem !important; + } + .pb-lg-9 { + padding-bottom: 3.5rem !important; + } + .pl-lg-9 { + padding-left: 3.5rem !important; + } + .px-lg-9 { + padding-right: 3.5rem !important; + padding-left: 3.5rem !important; + } + .py-lg-9 { + padding-top: 3.5rem !important; + padding-bottom: 3.5rem !important; + } + .p-lg-10 { + padding: 4rem !important; + } + .pt-lg-10 { + padding-top: 4rem !important; + } + .pr-lg-10 { + padding-right: 4rem !important; + } + .pb-lg-10 { + padding-bottom: 4rem !important; + } + .pl-lg-10 { + padding-left: 4rem !important; + } + .px-lg-10 { + padding-right: 4rem !important; + padding-left: 4rem !important; + } + .py-lg-10 { + padding-top: 4rem !important; + padding-bottom: 4rem !important; + } +} +@media (min-width: 87.5rem) { + .p-xl-0 { + padding: 0 !important; + } + .pt-xl-0 { + padding-top: 0 !important; + } + .pr-xl-0 { + padding-right: 0 !important; + } + .pb-xl-0 { + padding-bottom: 0 !important; + } + .pl-xl-0 { + padding-left: 0 !important; + } + .px-xl-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .py-xl-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .p-xl-1 { + padding: 0.25rem !important; + } + .pt-xl-1 { + padding-top: 0.25rem !important; + } + .pr-xl-1 { + padding-right: 0.25rem !important; + } + .pb-xl-1 { + padding-bottom: 0.25rem !important; + } + .pl-xl-1 { + padding-left: 0.25rem !important; + } + .px-xl-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .py-xl-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .p-xl-2 { + padding: 0.5rem !important; + } + .pt-xl-2 { + padding-top: 0.5rem !important; + } + .pr-xl-2 { + padding-right: 0.5rem !important; + } + .pb-xl-2 { + padding-bottom: 0.5rem !important; + } + .pl-xl-2 { + padding-left: 0.5rem !important; + } + .px-xl-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .py-xl-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .p-xl-3 { + padding: 0.75rem !important; + } + .pt-xl-3 { + padding-top: 0.75rem !important; + } + .pr-xl-3 { + padding-right: 0.75rem !important; + } + .pb-xl-3 { + padding-bottom: 0.75rem !important; + } + .pl-xl-3 { + padding-left: 0.75rem !important; + } + .px-xl-3 { + padding-right: 0.75rem !important; + padding-left: 0.75rem !important; + } + .py-xl-3 { + padding-top: 0.75rem !important; + padding-bottom: 0.75rem !important; + } + .p-xl-4 { + padding: 1rem !important; + } + .pt-xl-4 { + padding-top: 1rem !important; + } + .pr-xl-4 { + padding-right: 1rem !important; + } + .pb-xl-4 { + padding-bottom: 1rem !important; + } + .pl-xl-4 { + padding-left: 1rem !important; + } + .px-xl-4 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .py-xl-4 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .p-xl-5 { + padding: 1.5rem !important; + } + .pt-xl-5 { + padding-top: 1.5rem !important; + } + .pr-xl-5 { + padding-right: 1.5rem !important; + } + .pb-xl-5 { + padding-bottom: 1.5rem !important; + } + .pl-xl-5 { + padding-left: 1.5rem !important; + } + .px-xl-5 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .py-xl-5 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .p-xl-6 { + padding: 2rem !important; + } + .pt-xl-6 { + padding-top: 2rem !important; + } + .pr-xl-6 { + padding-right: 2rem !important; + } + .pb-xl-6 { + padding-bottom: 2rem !important; + } + .pl-xl-6 { + padding-left: 2rem !important; + } + .px-xl-6 { + padding-right: 2rem !important; + padding-left: 2rem !important; + } + .py-xl-6 { + padding-top: 2rem !important; + padding-bottom: 2rem !important; + } + .p-xl-7 { + padding: 2.5rem !important; + } + .pt-xl-7 { + padding-top: 2.5rem !important; + } + .pr-xl-7 { + padding-right: 2.5rem !important; + } + .pb-xl-7 { + padding-bottom: 2.5rem !important; + } + .pl-xl-7 { + padding-left: 2.5rem !important; + } + .px-xl-7 { + padding-right: 2.5rem !important; + padding-left: 2.5rem !important; + } + .py-xl-7 { + padding-top: 2.5rem !important; + padding-bottom: 2.5rem !important; + } + .p-xl-8 { + padding: 3rem !important; + } + .pt-xl-8 { + padding-top: 3rem !important; + } + .pr-xl-8 { + padding-right: 3rem !important; + } + .pb-xl-8 { + padding-bottom: 3rem !important; + } + .pl-xl-8 { + padding-left: 3rem !important; + } + .px-xl-8 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-xl-8 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .p-xl-9 { + padding: 3.5rem !important; + } + .pt-xl-9 { + padding-top: 3.5rem !important; + } + .pr-xl-9 { + padding-right: 3.5rem !important; + } + .pb-xl-9 { + padding-bottom: 3.5rem !important; + } + .pl-xl-9 { + padding-left: 3.5rem !important; + } + .px-xl-9 { + padding-right: 3.5rem !important; + padding-left: 3.5rem !important; + } + .py-xl-9 { + padding-top: 3.5rem !important; + padding-bottom: 3.5rem !important; + } + .p-xl-10 { + padding: 4rem !important; + } + .pt-xl-10 { + padding-top: 4rem !important; + } + .pr-xl-10 { + padding-right: 4rem !important; + } + .pb-xl-10 { + padding-bottom: 4rem !important; + } + .pl-xl-10 { + padding-left: 4rem !important; + } + .px-xl-10 { + padding-right: 4rem !important; + padding-left: 4rem !important; + } + .py-xl-10 { + padding-top: 4rem !important; + padding-bottom: 4rem !important; + } +} +@media print { + .site-footer, + .site-button, + #edit-this-page, + #back-to-top, + .site-nav, + .main-header { + display: none !important; + } + .side-bar { + width: 100%; + height: auto; + border-right: 0 !important; + } + .site-header { + border-bottom: 1px solid #44434d; + } + .site-title { + font-size: 1rem !important; + font-weight: 700 !important; + } + .text-small { + font-size: 8pt !important; + } + pre.highlight { + border: 1px solid #44434d; + } + .main { + max-width: none; + margin-left: 0; + } +} +a.skip-to-main { + left: -999px; + position: absolute; + top: auto; + width: 1px; + height: 1px; + overflow: hidden; + z-index: -999; +} + +a.skip-to-main:focus, +a.skip-to-main:active { + color: #2c84fa; + background-color: #27262b; + left: auto; + top: auto; + width: 30%; + height: auto; + overflow: auto; + margin: 10px 35%; + padding: 5px; + border-radius: 15px; + border: 4px solid #264caf; + text-align: center; + font-size: 1.2em; + z-index: 999; +} + +div.opaque { + background-color: #27262b; +} + +#mbtlogo { + width: auto; + margin-left: 1em; + margin-right: 1em; +} + +#mbtlogo > path { + fill: #7253ed; +} + +#minititle { + margin-left: auto; + font-family: "Mukta Mahee", sans-serif; + vertical-align: middle; + font-size: xx-large; + color: #44434d; +} + +code.language-tla { + display: block; + overflow: auto; +} + +/*# sourceMappingURL=just-the-docs-dark.css.map */ \ No newline at end of file diff --git a/assets/css/just-the-docs-dark.css.map b/assets/css/just-the-docs-dark.css.map new file mode 100644 index 00000000..4b145ad4 --- /dev/null +++ b/assets/css/just-the-docs-dark.css.map @@ -0,0 +1 @@ +{"version":3,"sourceRoot":"","sources":["../../_sass/custom/custom.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/vendor/OneLightJekyll/syntax.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/vendor/OneDarkJekyll/syntax.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/vendor/normalize.scss/normalize.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/base.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/color_schemes/dark.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/support/mixins/_typography.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/support/mixins/_layout.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/support/_variables.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/layout.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/content.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/navigation.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/typography.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/labels.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/buttons.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/support/mixins/_buttons.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/search.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/tables.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/code.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/utilities/_colors.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/utilities/_layout.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/utilities/_typography.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/utilities/_lists.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/utilities/_spacing.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/print.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/skiptomain.scss","just-the-docs-dark.scss"],"names":[],"mappings":";AAWQ;ACTR;AAAA;EAEE;EACA;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AC5MF;AAAA;EAEE;EACA;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;ACxMF;AAEA;AAAA;AAGA;AAAA;AAAA;AAAA;AAKA;EACE;EACA;;;AAGF;AAAA;AAGA;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAAA;AAKA;EACE;EACA;;;AAGF;AAAA;AAGA;AAAA;AAAA;AAAA;AAKA;EACE;EACA;EACA;;;AAGF;AAAA;AAAA;AAAA;AAKA;EACE;EACA;;;AAGF;AAAA;AAGA;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAAA;AAKA;EACE;EACA;EACA;;;AAGF;AAAA;AAAA;AAIA;AAAA;EAEE;;;AAGF;AAAA;AAAA;AAAA;AAKA;AAAA;AAAA;EAGE;EACA;;;AAGF;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAAA;AAKA;AAAA;EAEE;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;AAAA;AAGA;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAGA;AAAA;AAAA;AAAA;AAKA;AAAA;AAAA;AAAA;AAAA;EAKE;EACA;EACA;EACA;;;AAGF;AAAA;AAAA;AAAA;AAKA;AAAA;AAEE;EACA;;;AAGF;AAAA;AAAA;AAAA;AAKA;AAAA;AAEE;EACA;;;AAGF;AAAA;AAAA;AAIA;AAAA;AAAA;AAAA;EAIE;;;AAGF;AAAA;AAAA;AAIA;AAAA;AAAA;AAAA;EAIE;EACA;;;AAGF;AAAA;AAAA;AAIA;AAAA;AAAA;AAAA;EAIE;;;AAGF;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAAA;AAKA;AAAA;EAEE;EACA;;;AAGF;AAAA;AAAA;AAIA;AAAA;EAEE;;;AAGF;AAAA;AAAA;AAAA;AAKA;EACE;EACA;;;AAGF;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAAA;AAKA;EACE;EACA;;;AAGF;AAAA;AAGA;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAGA;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAIA;EACE;;;AC1VF;EACE,cCJa;;;ADOf;EACE;;;AAGF;EEcE;EFXA;;AGAE;EHHJ;IEiBI;;;;AFXJ;EACE,aIfiB;EJgBjB;EACA,aIbiB;EJcjB,OIiBY;EJhBZ,kBIYY;EJXZ;;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAYE;;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAOE;EACA;EACA;EACA,aI1CyB;EJ2CzB,OIjBY;;;AJoBd;EACE;EACA;;;AAGF;EACE,OIlBS;EJmBT;;;AAGF;EACE;EACA,uBInCY;EJoCZ;;AAEA;EACE;;;AAIJ;EACE,aIvEiB;EJwEjB;EACA,aIvEiB;;;AJ0EnB;AAAA;EAEE;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA,kBInEY;EJoEZ;;;AAIF;EACE;EAGA;EACA;EACA;EACA;;;AK7GF;EACE;EACA;EACA;EACA,kBD4BY;;ADpBV;EEZJ;IAOI;IACA;IACA,ODwFW;ICvFX;IACA;IACA;;;AFAA;EEZJ;IAgBI;IACA,WD+EQ;;;ADpFR;EEQF;IAEI,aD2ES;;;ADrFX;EEQF;IAQI;;;AAOF;EACE;EACA,kBDLQ;;ADpBV;EEuBA;IAKI;IACA,kBDTM;;;ACYR;EACE;;AFjCJ;EEgCE;IAII;;;;AAOV;EACE;;AF5CE;EE2CJ;IAII;IACA,WDyCY;;;;ACrChB;EFzCE,eCuDK;EDtDL,cCsDK;ECXL,aDWK;ECVL,gBDUK;;ADlEH;EEoDJ;IFrCI,eCqDG;IDpDH,cCoDG;;;ADpEH;EEoDJ;IAOI,aDSG;ICRH,gBDQG;;;;ACJP;EACE;EACA;;AFlEE;EEgEJ;IAKI;IACA;IACA,QDmBY;;;;ACfhB;AAAA;AAAA;EAGE;;AF9EE;EE2EJ;AAAA;AAAA;IAMI,ODGQ;;;;ACCZ;EACE;;AAEA;EACE;;AFzFA;EEqFJ;IAQI;IACA,aDxBG;ICyBH,gBD7BG;IC8BH;IACA;;;;AAIJ;EACE;EACA,YDbc;ECcd;;AFxGE;EEqGJ;IAMI,QDjBY;ICkBZ,YDlBY;ICmBZ;;;;AAIJ;EFtGE,eCuDK;EDtDL,cCsDK;ECkDL;EACA;EACA;EACA;EACA,aDvDK;ECwDL,gBDxDK;ECyDL,ODrGY;EFMZ;;AC3BE;EEiHJ;IFlGI,eCqDG;IDpDH,cCoDG;;;ADpEH;EEiHJ;IHnFI;IACA,aEpCuB;;;ADKvB;EEiHJ;IAaI,aD9DG;IC+DH,gBD/DG;;;;AC8EP;EACE;EACA;EACA,SD/EK;ECgFL;;;AFlJE;EEsJF;IACE;;;AAIJ;EACE;;;AAQF;EACE;;;AASF;EACE;EACA,gBDxGM;ECyGN;;AFjLE;EE8KJ;IAMI;IACA;;;;AAMJ;EFhLE,eCuDK;EDtDL,cCsDK;EC4HL;EACA;EACA;EACA,aD/HK;ECgIL,gBDhIK;ECiIL,ODnLY;EFrBZ;;ACKE;EE2LJ;IF5KI,eCqDG;IDpDH,cCoDG;;;ADpEH;EE2LJ;IH7LI;;;ACEA;EE2LJ;IAYI;IACA;;;;AAIJ;EACE,OD1IK;EC2IL,QD3IK;EC4IL,ODlLS;;;AEtCX;EACE,aFEoB;;AEApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAOE;;AAGF;EACE;EACA;;AAGF;AAAA;EAEE;;AAIA;EACE,YF+CC;;AE3CL;EACE;EACA;;AAEA;EACE;;AAEA;EACE;EACA;EACA;EACA,OFfM;EEgBN;EACA;EJ9BN;;ACHE;EG2BE;IJrBF;;;ACNA;EG2BE;IAUI;;;AAIJ;EACE;;AAGE;EACE;EACA;;AAOV;EACE;;AAGE;EACE;EACA;EACA,OF7CM;EE8CN;;AAMJ;EACE;;AAIJ;EACE;EACA;;AAKF;EACE;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;AAAA;EAEE;;AAGF;EACE;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;;AAmBE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;;AASF;AAAA;AAAA;AAAA;AAAA;AAAA;EAEE;;AAKN;EACE;EACA;EACA,OFnFG;EEoFH;EACA,eFzFG;EE0FH,cF1FG;EE2FH;;AH1JA;EGmJF;IAUI;IACA;;;AAGF;EACE;EACA;EACA;EACA,OFxIK;EEyIL;;AAYF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;;AAIJ;EACE;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAOE;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAKE;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;;AAIJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAWE,YF9JG;;;AG3EP;EACE;EACA;EACA;EACA;;AAEA;ELgBA;EKbE;EACA;;AJCA;EILF;ILmBE;;;ACdA;EILF;ILQA;;;ACHE;EILF;ILWE;;;AKDA;EACE;EACA,YH+DC;EG9DD,aHuDC;EGtDD,gBHsDC;EGrDD;EAEE,eH0DD;EGzDC,cHqDD;;ADlEH;EIKA;IAeI,YHgDD;IG/CC;IAEE,eH6CH;IG5CG,cH4CH;;;AGrCD;EACE,OHkCD;EGjCC,QHiCD;EGhCC;;AAGF;EACE;EACA;;AAGF;EAEE;;AASJ;EACE;EAEE;EAGF,OHWC;EGVD,QHUC;EGTD;EACA,OHjCK;;AD7BP;EIqDA;IAYI,OHGD;IGFC,QHED;IGDC;;;AAGF;EACE;;AAQA;EACE;;AAKN;EACE;EACA,cHtBC;EGuBD;;AAEA;EACE;;AAEA;EACE,OH9EI;;AGiFN;EACE,OHlFI;;AGwFR;EAEI;;AAMJ;EACE;;;AAMR;EACE;EACA;EACA;EACA;EACA;ELjIA;;ACKE;EIuHJ;ILzHI;;;ACEA;EIuHJ;IASI;IACA,YH/DG;IGgEH;;EAEA;IACE;;;;AAMJ;EACE;;AAEA;EACE;;AAGE;EACE,OHtHC;;AGyHH;EACE,OH1HC;;;AGmIX;EACE;EACA;ELvKA;;ACKE;EIgKJ;ILlKI;;;AKuKF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AJjLA;EIgKJ;IAqBI,eHnHG;;;;ADlEH;EI2LJ;IAEI;;;;AAIJ;EACE;EACA,eHlIK;EGmIL;;;AAGF;EACE;EL7MA;;ACKE;EIuMJ;ILzMI;;;AK6MF;EACE;;AAGF;EACE;EACA,cHjJG;EGkJH,aHlJG;EGmJH,OHnMU;EGoMV;;AAIA;EACE;;;ACpON;AAAA;ENwDE;EACA,aEnDyB;EIFzB;;ALOE;EKXJ;AAAA;IN4DI;;;;AMrDJ;AAAA;AAAA;EN+BE;;AC3BE;EKJJ;AAAA;AAAA;INkCI;IACA,aEpCuB;;;;AIO3B;AAAA;ENiBE;;ACnBE;EKEJ;AAAA;INoBI;;;;AMfJ;AAAA;ENZE;EMgBA;EACA;EACA;;ALbE;EKOJ;AAAA;INTI;;;;AMkBJ;EACE;;;AAGF;AAAA;ENjBE;;ACHE;EKoBJ;AAAA;INdI;;;;AMmBJ;AAAA;EN9BE;;ACKE;EKyBJ;AAAA;IN3BI;;;;AMgCJ;ENnCE;;ACKE;EK8BJ;INhCI;;;;AMoCJ;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;ACvDF;AAAA;EAEE;EACA;EACA,cLoEK;EKnEL,aLmEK;EKlEL,OLiBM;EKhBN;EACA;EACA,kBL6BS;EFnCT;EOSA;;ANJE;EMRJ;AAAA;IPMI;;;;AOSJ;EACE,kBL2BU;;;AKxBZ;EACE,kBLcW;;;AKXb;EACE,kBL2BQ;;;AKxBV;EACE,OLFY;EKGZ,kBLkBW;;;AMlDb;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,ON+BS;EM9BT;EACA;EACA;EACA,kBNiBY;EMhBZ;EACA,eNyEc;EMxEd,YACE;EAEF;;AAEA;EACE;EACA;EACA;;AAGF;EAEE;;AAGF;EAEE;;AAGF;EAIE;EACA;;AAGF;EAGE;EACA;EACA;;AAGF;EACE;;AAKA;EAEE;EACA;EACA;EACA;EACA;;;AAKN;EACE,ON/BS;EMgCT;EACA;;AAEA;EAIE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA,YACE;;AAIJ;EAEE;;;AAIJ;ECnGE,OP0BM;EOzBN;EACA;EACA,YACE;;AAGF;EAEE,OPiBI;EOhBJ;EACA;;AAGF;EAGE;EACA;EACA;;AAGF;EACE;;;ADgFJ;ECvGE,OP0BM;EOzBN;EACA;EACA,YACE;;AAGF;EAEE,OPiBI;EOhBJ;EACA;;AAGF;EAGE;EACA;EACA;;AAGF;EACE;;;ADoFJ;EC3GE,OP0BM;EOzBN;EACA;EACA,YACE;;AAGF;EAEE,OPiBI;EOhBJ;EACA;;AAGF;EAGE;EACA;EACA;;AAGF;EACE;;;ADwFJ;EC/GE,OP0BM;EOzBN;EACA;EACA,YACE;;AAGF;EAEE,OPiBI;EOhBJ;EACA;;AAGF;EAGE;EACA;EACA;;AAGF;EACE;;;AD4FJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AE3HF;EACE;EACA;EACA;EACA,QRgFM;EQ/EN,SRuEK;EQtEL;;ATME;ESZJ;IASI;IACA;IACA;IACA;IACA;;;;AAIJ;EACE;EACA;EACA,QR8DK;EQ7DL;EACA,eRmEc;EQlEd,YACE;EAEF;;ATdE;ESKJ;IAYI;IACA;IACA,WRwEmB;IQvEnB;IACA;IACA;IACA;;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA,ORTY;EQUZ,kBRfY;EQgBZ;EACA;EACA;EACA;EACA;;ATvCE;ES2BJ;IAeI;IACA;IACA,kBRxBU;IQyBV;;;AAGF;EACE;;AAEA;EACE,ORvBK;;;AQ4BX;EACE;EACA;EACA;EACA,cRKK;;ADlEH;ESyDJ;IAOI,cRIG;IQHH;;;AAGF;EACE;EACA;EACA;EACA,ORxDU;;;AQ4Dd;EACE;EACA;EACA;EACA;EACA;EACA;EACA,kBRhEY;EQiEZ,4BRPc;EQQd,2BRRc;EQSd,YACE;;ATvFA;ES4EJ;IAeI;IACA,ORDmB;IQEnB;;;;AAIJ;EACE;EACA,eRpCK;EQqCL;EVzFA;;ACXE;ESiGJ;IVnFI;;;ACdA;ESiGJ;IV9FE;;;ACHE;ESiGJ;IV3FI;;;;AUsGJ;EACE;EACA;;;AAGF;EACE;EACA;;AAEA;EAEE,kBX1Ha;;;AW8HjB;EACE;EACA,aR7DK;EQ8DL,gBR9DK;;ADhEH;ES2HJ;IAMI;IACA;IACA,eRnEG;IQoEH;;;;AAIJ;EACE;EACA;EACA;;AAEA;EACE;EV3IF;;ACHE;ES6IF;IVvIE;;;ACNA;ES6IF;IVlJA;;;ACKE;ES6IF;IV/IE;;;AUwJF;EACE,ORrFG;EQsFH,QRtFG;EQuFH,cRzFG;EQ0FH,OR7HO;EQ8HP;;AAGF;EACE;;;AAIJ;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA,OR5JY;EQ6JZ;EACA;EV3LA;;ACaE;ESwKJ;IVlLI;;;;AU4LJ;EACE;EACA,aRpHK;EQqHL,gBRrHK;EQsHL,cRpHK;EQqHL,aRvHK;EQwHL,ORxKY;EQyKZ;EACA,aR9GO;EQ+GP,mBRzKY;EFvBZ;;ACKE;ESkLJ;IVpLI;;;ACEA;ESkLJ;IAaI;IACA;IACA,cRjIG;IQkIH;IACA;;;;AAIJ;EACE,YRzIK;;;AQ4IP;EACE;;;AAGF;EACE;EV7MA;;ACHE;ES+MJ;IVzMI;;;;AU8MJ;EACE;EACA,ORpJK;EQqJL,QRrJK;EQsJL;EACA,ORlJK;EQmJL,QRnJK;EQoJL,kBRxMY;EQyMZ;EACA;EACA,YACE;EAEF;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YACE;;;AAMF;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE,QRvLI;EQwLJ;;AThQA;ES8PF;IAKI,ORxKiB;IQyKjB,YACE;;;AAKN;EACE,kBRxPU;;ADnBV;ES0QF;IAII;;;AT9QF;ESkRF;IAEI;;;AAIJ;EACE;;AAGF;EACE;EACA;EACA;EACA,YACE;;ATjSF;ESuSA;IACE;IACA;IACA;;;AAIJ;EACE,aRvOI;;ADxEJ;ES8SF;IAII;;;;AC7TN;EACE;EACA;EACA;EACA,eT0EK;ESzEL;EACA,eTkFc;ESjFd,YACE;;;AAIJ;EACE;EACA;EACA;;;AAGF;AAAA;EXJE;EWQA;EACA;EACA,kBTMY;ESLZ;EACA;;AVfE;EUOJ;AAAA;IXDI;;;AWWF;AAAA;EACE;;;AAOE;AAAA;EAEE;;AAGF;EACE,gBTkCD;;;AS3BL;EACE;;;AC9CF;EACE;EACA;EACA,kBbDoB;EaEpB;EACA,eV+EY;;;AU1EhB;EACE,cVcY;;;AUqCd;AAAA;AAAA;EAGE;EACA,eVMK;EULL,kBbjEsB;EakEtB,eVgBc;EUfd;EACA;EACA;EACA;;AAIA;AAAA;AAAA;EACE,OVLG;EUMH;EACA;EACA;EACA;EACA;EACA,kBbjFoB;EakFpB,OVrDU;EUsDV;;AAEA;AAAA;AAAA;EACE,MVzDQ;;AU4DV;AAAA;AAAA;EACE;EACA;EACA;;AAGF;AAAA;AAAA;EACE;;AAMF;AAAA;AAAA;EACE;EACA;;;AASJ;EACE;EACA,SV7CG;EU8CH;EACA;;AAGF;AAAA;EAEE;EACA;EACA;;;AAUJ;EAGE;EACA,eVpEK;;AU2CL;EACE;EACA,SV7CG;EU8CH;EACA;;AAGF;AAAA;EAEE;EACA;EACA;;;AAwBF;AAAA;EAEE;EACA,SVjFG;EUkFH;EACA;;;AAQJ;EACE;EACA;EACA;EACA;;AAEA;AAAA;EZvKA;EY2KE;EACA;EACA,kBb7KoB;Ea8KpB;;AXzKA;EWkKF;AAAA;IZpKE;;;AY8KF;EACE;EACA,eV7GG;EU8GH,cV9GG;;AUiHL;EACE;EACA;;;AAKJ;AAAA;EAEE,SV1HK;EU2HL,eV3HK;EU4HL;EACA;EACA,eVlHc;;AUoHd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAIE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAKJ;EACE;EACA;EACA;;;AAIF;AAAA;EAEE,Yb9NsB;EaiOpB,ObhOoB;;;AauOxB;EACE,YbzOsB;;;AcLxB;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAKF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;ACvOF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AbPE;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;AAQR;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAKF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;ACjGF;EfDE;;ACaE;EcZJ;IfEI;;;;AeEJ;EfGE;;ACKE;EcRJ;IfMI;;;;AeFJ;EfOE;;ACHE;EcJJ;IfUI;;;;AeNJ;EfWE;;ACXE;EcAJ;IfcI;;;;AeVJ;EfeE;;ACnBE;EcIJ;IfkBI;;;;AedJ;EfmBE;;AC3BE;EcQJ;IfsBI;IACA,aEpCuB;;;;AaiB3B;EfwBE;EACA,aE1CyB;;ADKvB;EcYJ;If4BI;;;;AexBJ;Ef6BE;EACA,aEnDyB;;ADKvB;EcgBJ;IfiCI;;;;Ae7BJ;EfkCE;EACA,aE5DyB;;ADKvB;EcoBJ;IfsCI;;;;AelCJ;EfuCE;EACA,aErEyB;;ADKvB;EcwBJ;If2CI;;;;AevCJ;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE,abxDiB;;;Aa2DnB;EACE,ab1DyB;;;Aa6D3B;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AC/EF;EACE;EACA;EACA;;AAGE;EACE;;;ACLN;EACE;EACA;;;AAQA;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;AAhCF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;AAhCF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;AAhCF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;AAhCF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;AAhCF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;AAhCF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;AAhCF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;AAhCF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;AAhCF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;AAhCF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;AhBlCA;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AAaN;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAvBF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAvBF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAvBF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAvBF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAvBF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAvBF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAvBF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAvBF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAvBF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAvBF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AhB7GA;EgBwHE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhB/IJ;EgBwHE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhB/IJ;EgBwHE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhB/IJ;EgBwHE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhB/IJ;EgBwHE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AC3JR;EACE;AAAA;AAAA;AAAA;AAAA;AAAA;IAME;;EAGF;IACE;IACA;IACA;;EAGF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;IACA;;;AClCJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;AAAA;EAEE,OjB4BS;EiB3BT,kBjBkBY;EiBjBZ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;ACpBF;EACE,kBlByBY;;;ARjCd;EACI;EACA;EACA;;;AAGJ;EACI,MQ+BS;;;AR3Bb;EACI;EACA;EACA;EACA;EACA,OQeU;;;ARZd;EACE;EACA","sourcesContent":["\n#mbtlogo {\n width: auto;\n margin-left: 1em;\n margin-right: 1em;\n}\n\n#mbtlogo > path {\n fill: $purple-000;\n}\n\n@import url('https://fonts.googleapis.com/css2?family=Mukta+Mahee&display=swap');\n#minititle {\n margin-left: auto;\n font-family: 'Mukta Mahee', sans-serif;\n vertical-align: middle;\n font-size: xx-large;\n color: $grey-dk-200;\n}\n\ncode.language-tla {\n display: block;\n overflow: auto;\n}\n","// Generated with OneLightJekyll applied to Atom's One Light theme\n\n.highlight,\npre.highlight {\n background: #f9f9f9;\n color: #383942;\n}\n.highlight pre {\n background: #f9f9f9;\n}\n.highlight .hll {\n background: #f9f9f9;\n}\n.highlight .c {\n color: #9fa0a6;\n font-style: italic;\n}\n.highlight .err {\n color: #fff;\n background-color: #e05151;\n}\n.highlight .k {\n color: #a625a4;\n}\n.highlight .l {\n color: #50a04f;\n}\n.highlight .n {\n color: #383942;\n}\n.highlight .o {\n color: #383942;\n}\n.highlight .p {\n color: #383942;\n}\n.highlight .cm {\n color: #9fa0a6;\n font-style: italic;\n}\n.highlight .cp {\n color: #9fa0a6;\n font-style: italic;\n}\n.highlight .c1 {\n color: #9fa0a6;\n font-style: italic;\n}\n.highlight .cs {\n color: #9fa0a6;\n font-style: italic;\n}\n.highlight .ge {\n font-style: italic;\n}\n.highlight .gs {\n font-weight: 700;\n}\n.highlight .kc {\n color: #a625a4;\n}\n.highlight .kd {\n color: #a625a4;\n}\n.highlight .kn {\n color: #a625a4;\n}\n.highlight .kp {\n color: #a625a4;\n}\n.highlight .kr {\n color: #a625a4;\n}\n.highlight .kt {\n color: #a625a4;\n}\n.highlight .ld {\n color: #50a04f;\n}\n.highlight .m {\n color: #b66a00;\n}\n.highlight .s {\n color: #50a04f;\n}\n.highlight .na {\n color: #b66a00;\n}\n.highlight .nb {\n color: #ca7601;\n}\n.highlight .nc {\n color: #ca7601;\n}\n.highlight .no {\n color: #ca7601;\n}\n.highlight .nd {\n color: #ca7601;\n}\n.highlight .ni {\n color: #ca7601;\n}\n.highlight .ne {\n color: #ca7601;\n}\n.highlight .nf {\n color: #383942;\n}\n.highlight .nl {\n color: #ca7601;\n}\n.highlight .nn {\n color: #383942;\n}\n.highlight .nx {\n color: #383942;\n}\n.highlight .py {\n color: #ca7601;\n}\n.highlight .nt {\n color: #e35549;\n}\n.highlight .nv {\n color: #ca7601;\n}\n.highlight .ow {\n font-weight: 700;\n}\n.highlight .w {\n color: #f8f8f2;\n}\n.highlight .mf {\n color: #b66a00;\n}\n.highlight .mh {\n color: #b66a00;\n}\n.highlight .mi {\n color: #b66a00;\n}\n.highlight .mo {\n color: #b66a00;\n}\n.highlight .sb {\n color: #50a04f;\n}\n.highlight .sc {\n color: #50a04f;\n}\n.highlight .sd {\n color: #50a04f;\n}\n.highlight .s2 {\n color: #50a04f;\n}\n.highlight .se {\n color: #50a04f;\n}\n.highlight .sh {\n color: #50a04f;\n}\n.highlight .si {\n color: #50a04f;\n}\n.highlight .sx {\n color: #50a04f;\n}\n.highlight .sr {\n color: #0083bb;\n}\n.highlight .s1 {\n color: #50a04f;\n}\n.highlight .ss {\n color: #0083bb;\n}\n.highlight .bp {\n color: #ca7601;\n}\n.highlight .vc {\n color: #ca7601;\n}\n.highlight .vg {\n color: #ca7601;\n}\n.highlight .vi {\n color: #e35549;\n}\n.highlight .il {\n color: #b66a00;\n}\n.highlight .gu {\n color: #75715e;\n}\n.highlight .gd {\n color: #e05151;\n}\n.highlight .gi {\n color: #43d089;\n}\n.highlight .language-json .w + .s2 {\n color: #e35549;\n}\n.highlight .language-json .kc {\n color: #0083bb;\n}\n","// Generated with OneDarkJekyll applied to Atom's One Dark Vivid theme\n\n.highlight,\npre.highlight {\n background: #31343f;\n color: #dee2f7;\n}\n.highlight pre {\n background: #31343f;\n}\n.highlight .hll {\n background: #31343f;\n}\n.highlight .c {\n color: #63677e;\n font-style: italic;\n}\n.highlight .err {\n color: #960050;\n background-color: #1e0010;\n}\n.highlight .k {\n color: #e19ef5;\n}\n.highlight .l {\n color: #a3eea0;\n}\n.highlight .n {\n color: #dee2f7;\n}\n.highlight .o {\n color: #dee2f7;\n}\n.highlight .p {\n color: #dee2f7;\n}\n.highlight .cm {\n color: #63677e;\n font-style: italic;\n}\n.highlight .cp {\n color: #63677e;\n font-style: italic;\n}\n.highlight .c1 {\n color: #63677e;\n font-style: italic;\n}\n.highlight .cs {\n color: #63677e;\n font-style: italic;\n}\n.highlight .ge {\n font-style: italic;\n}\n.highlight .gs {\n font-weight: 700;\n}\n.highlight .kc {\n color: #e19ef5;\n}\n.highlight .kd {\n color: #e19ef5;\n}\n.highlight .kn {\n color: #e19ef5;\n}\n.highlight .kp {\n color: #e19ef5;\n}\n.highlight .kr {\n color: #e19ef5;\n}\n.highlight .kt {\n color: #e19ef5;\n}\n.highlight .ld {\n color: #a3eea0;\n}\n.highlight .m {\n color: #eddc96;\n}\n.highlight .s {\n color: #a3eea0;\n}\n.highlight .na {\n color: #eddc96;\n}\n.highlight .nb {\n color: #fdce68;\n}\n.highlight .nc {\n color: #fdce68;\n}\n.highlight .no {\n color: #fdce68;\n}\n.highlight .nd {\n color: #fdce68;\n}\n.highlight .ni {\n color: #fdce68;\n}\n.highlight .ne {\n color: #fdce68;\n}\n.highlight .nf {\n color: #dee2f7;\n}\n.highlight .nl {\n color: #fdce68;\n}\n.highlight .nn {\n color: #dee2f7;\n}\n.highlight .nx {\n color: #dee2f7;\n}\n.highlight .py {\n color: #fdce68;\n}\n.highlight .nt {\n color: #f9867b;\n}\n.highlight .nv {\n color: #fdce68;\n}\n.highlight .ow {\n font-weight: 700;\n}\n.highlight .w {\n color: #f8f8f2;\n}\n.highlight .mf {\n color: #eddc96;\n}\n.highlight .mh {\n color: #eddc96;\n}\n.highlight .mi {\n color: #eddc96;\n}\n.highlight .mo {\n color: #eddc96;\n}\n.highlight .sb {\n color: #a3eea0;\n}\n.highlight .sc {\n color: #a3eea0;\n}\n.highlight .sd {\n color: #a3eea0;\n}\n.highlight .s2 {\n color: #a3eea0;\n}\n.highlight .se {\n color: #a3eea0;\n}\n.highlight .sh {\n color: #a3eea0;\n}\n.highlight .si {\n color: #a3eea0;\n}\n.highlight .sx {\n color: #a3eea0;\n}\n.highlight .sr {\n color: #7be2f9;\n}\n.highlight .s1 {\n color: #a3eea0;\n}\n.highlight .ss {\n color: #7be2f9;\n}\n.highlight .bp {\n color: #fdce68;\n}\n.highlight .vc {\n color: #fdce68;\n}\n.highlight .vg {\n color: #fdce68;\n}\n.highlight .vi {\n color: #f9867b;\n}\n.highlight .il {\n color: #eddc96;\n}\n.highlight .gu {\n color: #75715e;\n}\n.highlight .gd {\n color: #f92672;\n}\n.highlight .gi {\n color: #a6e22e;\n}\n","/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput {\n /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect {\n /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n","// Base element style overrides\n// stylelint-disable selector-no-type, selector-max-type, selector-max-specificity, selector-max-id\n\n:root {\n color-scheme: $color-scheme;\n}\n\n* {\n box-sizing: border-box;\n}\n\nhtml {\n @include fs-4;\n\n scroll-behavior: smooth;\n}\n\nbody {\n font-family: $body-font-family;\n font-size: inherit;\n line-height: $body-line-height;\n color: $body-text-color;\n background-color: $body-background-color;\n overflow-wrap: break-word;\n}\n\nol,\nul,\ndl,\npre,\naddress,\nblockquote,\ntable,\ndiv,\nhr,\nform,\nfieldset,\nnoscript .table-wrapper {\n margin-top: 0;\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\n#toctitle {\n margin-top: 0;\n margin-bottom: 1em;\n font-weight: 500;\n line-height: $body-heading-line-height;\n color: $body-heading-color;\n}\n\np {\n margin-top: 1em;\n margin-bottom: 1em;\n}\n\na {\n color: $link-color;\n text-decoration: none;\n}\n\na:not([class]) {\n text-decoration: underline;\n text-decoration-color: $border-color;\n text-underline-offset: 2px;\n\n &:hover {\n text-decoration-color: rgba($link-color, 0.45);\n }\n}\n\ncode {\n font-family: $mono-font-family;\n font-size: 0.75em;\n line-height: $body-line-height;\n}\n\nfigure,\npre {\n margin: 0;\n}\n\nli {\n margin: 0.25em 0;\n}\n\nimg {\n max-width: 100%;\n height: auto;\n}\n\nhr {\n height: 1px;\n padding: 0;\n margin: $sp-6 0;\n background-color: $border-color;\n border: 0;\n}\n\n// adds a GitHub-style sidebar to blockquotes\nblockquote {\n margin: 10px 0;\n\n // resets user-agent stylesheets for blockquotes\n margin-block-start: 0;\n margin-inline-start: 0;\n padding-left: 1rem;\n border-left: 3px solid $border-color;\n}\n","$color-scheme: dark;\n$body-background-color: $grey-dk-300;\n$body-heading-color: $grey-lt-000;\n$body-text-color: $grey-lt-300;\n$link-color: $blue-000;\n$nav-child-link-color: $grey-dk-000;\n$sidebar-color: $grey-dk-300;\n$base-button-color: $grey-dk-250;\n$btn-primary-color: $blue-200;\n$code-background-color: #31343f; // OneDarkJekyll default for syntax-one-dark-vivid\n$code-linenumber-color: #dee2f7; // OneDarkJekyll .nf for syntax-one-dark-vivid\n$feedback-color: darken($sidebar-color, 3%);\n$table-background-color: $grey-dk-250;\n$search-background-color: $grey-dk-250;\n$search-result-preview-color: $grey-dk-000;\n$border-color: $grey-dk-200;\n\n@import \"./vendor/OneDarkJekyll/syntax\"; // this is the one-dark-vivid atom syntax theme\n","@mixin fs-1 {\n font-size: $font-size-1 !important;\n\n @include mq(sm) {\n font-size: $font-size-1-sm !important;\n }\n}\n\n@mixin fs-2 {\n font-size: $font-size-2 !important;\n\n @include mq(sm) {\n font-size: $font-size-3 !important;\n }\n}\n\n@mixin fs-3 {\n font-size: $font-size-3 !important;\n\n @include mq(sm) {\n font-size: $font-size-4 !important;\n }\n}\n\n@mixin fs-4 {\n font-size: $font-size-4 !important;\n\n @include mq(sm) {\n font-size: $font-size-5 !important;\n }\n}\n\n@mixin fs-5 {\n font-size: $font-size-5 !important;\n\n @include mq(sm) {\n font-size: $font-size-6 !important;\n }\n}\n\n@mixin fs-6 {\n font-size: $font-size-6 !important;\n\n @include mq(sm) {\n font-size: $font-size-7 !important;\n line-height: $body-heading-line-height;\n }\n}\n\n@mixin fs-7 {\n font-size: $font-size-7 !important;\n line-height: $body-heading-line-height;\n\n @include mq(sm) {\n font-size: $font-size-8 !important;\n }\n}\n\n@mixin fs-8 {\n font-size: $font-size-8 !important;\n line-height: $body-heading-line-height;\n\n @include mq(sm) {\n font-size: $font-size-9 !important;\n }\n}\n\n@mixin fs-9 {\n font-size: $font-size-9 !important;\n line-height: $body-heading-line-height;\n\n @include mq(sm) {\n font-size: $font-size-10 !important;\n }\n}\n\n@mixin fs-10 {\n font-size: $font-size-10 !important;\n line-height: $body-heading-line-height;\n\n @include mq(sm) {\n font-size: $font-size-10-sm !important;\n }\n}\n","// Media query\n\n// Media query mixin\n// Usage:\n// @include mq(md) {\n// ..medium and up styles\n// }\n@mixin mq($name) {\n // Retrieves the value from the key\n $value: map-get($media-queries, $name);\n\n // If the key exists in the map\n @if $value {\n // Prints a media query based on the value\n @media (min-width: $value) {\n @content;\n }\n } @else {\n @warn \"No value could be retrieved from `#{$media-query}`. Please make sure it is defined in `$media-queries` map.\";\n }\n}\n\n// Responsive container\n\n@mixin container {\n padding-right: $gutter-spacing-sm;\n padding-left: $gutter-spacing-sm;\n\n @include mq(md) {\n padding-right: $gutter-spacing;\n padding-left: $gutter-spacing;\n }\n}\n","// Typography\n\n// prettier-ignore\n$body-font-family: system-ui, -apple-system, blinkmacsystemfont, \"Segoe UI\",\n roboto, \"Helvetica Neue\", arial, sans-serif, \"Segoe UI Emoji\" !default;\n$mono-font-family: \"SFMono-Regular\", menlo, consolas, monospace !default;\n$root-font-size: 16px !default; // DEPRECATED: previously base font-size for rems\n$body-line-height: 1.4 !default;\n$content-line-height: 1.6 !default;\n$body-heading-line-height: 1.25 !default;\n\n// Font size\n// `-sm` suffix is the size at the small (and above) media query\n\n$font-size-1: 0.5625rem !default;\n$font-size-1-sm: 0.625rem !default;\n$font-size-2: 0.6875rem !default; // h4 - uppercased!, h6 not uppercased, text-small\n$font-size-3: 0.75rem !default; // h5\n$font-size-4: 0.875rem !default;\n$font-size-5: 1rem !default; // h3\n$font-size-6: 1.125rem !default; // h2\n$font-size-7: 1.5rem !default;\n$font-size-8: 2rem !default; // h1\n$font-size-9: 2.25rem !default;\n$font-size-10: 2.625rem !default;\n$font-size-10-sm: 3rem !default;\n\n// Colors\n\n$white: #fff !default;\n$grey-dk-000: #959396 !default;\n$grey-dk-100: #5c5962 !default;\n$grey-dk-200: #44434d !default;\n$grey-dk-250: #302d36 !default;\n$grey-dk-300: #27262b !default;\n$grey-lt-000: #f5f6fa !default;\n$grey-lt-100: #eeebee !default;\n$grey-lt-200: #ecebed !default;\n$grey-lt-300: #e6e1e8 !default;\n$purple-000: #7253ed !default;\n$purple-100: #5e41d0 !default;\n$purple-200: #4e26af !default;\n$purple-300: #381885 !default;\n$blue-000: #2c84fa !default;\n$blue-100: #2869e6 !default;\n$blue-200: #264caf !default;\n$blue-300: #183385 !default;\n$green-000: #41d693 !default;\n$green-100: #11b584 !default;\n$green-200: #009c7b !default;\n$green-300: #026e57 !default;\n$yellow-000: #ffeb82 !default;\n$yellow-100: #fadf50 !default;\n$yellow-200: #f7d12e !default;\n$yellow-300: #e7af06 !default;\n$red-000: #f77e7e !default;\n$red-100: #f96e65 !default;\n$red-200: #e94c4c !default;\n$red-300: #dd2e2e !default;\n\n// Spacing\n\n$spacing-unit: 1rem; // 1rem == 16px\n\n$spacers: (\n sp-0: 0,\n sp-1: $spacing-unit * 0.25,\n sp-2: $spacing-unit * 0.5,\n sp-3: $spacing-unit * 0.75,\n sp-4: $spacing-unit,\n sp-5: $spacing-unit * 1.5,\n sp-6: $spacing-unit * 2,\n sp-7: $spacing-unit * 2.5,\n sp-8: $spacing-unit * 3,\n sp-9: $spacing-unit * 3.5,\n sp-10: $spacing-unit * 4,\n) !default;\n$sp-1: map-get($spacers, sp-1) !default; // 0.25 rem == 4px\n$sp-2: map-get($spacers, sp-2) !default; // 0.5 rem == 8px\n$sp-3: map-get($spacers, sp-3) !default; // 0.75 rem == 12px\n$sp-4: map-get($spacers, sp-4) !default; // 1 rem == 16px\n$sp-5: map-get($spacers, sp-5) !default; // 1.5 rem == 24px\n$sp-6: map-get($spacers, sp-6) !default; // 2 rem == 32px\n$sp-7: map-get($spacers, sp-7) !default; // 2.5 rem == 40px\n$sp-8: map-get($spacers, sp-8) !default; // 3 rem == 48px\n$sp-9: map-get($spacers, sp-9) !default; // 3.5 rem == 56px\n$sp-10: map-get($spacers, sp-10) !default; // 4 rem == 64px\n\n// Borders\n\n$border: 1px solid !default;\n$border-radius: 4px !default;\n$border-color: $grey-lt-100 !default;\n\n// Grid system\n\n$gutter-spacing: $sp-6 !default;\n$gutter-spacing-sm: $sp-4 !default;\n$nav-width: 16.5rem !default;\n$nav-width-md: 15.5rem !default;\n$nav-list-item-height: $sp-6 !default;\n$nav-list-item-height-sm: $sp-8 !default;\n$nav-list-expander-right: true;\n$content-width: 50rem !default;\n$header-height: 3.75rem !default;\n$search-results-width: $content-width - $nav-width !default;\n$transition-duration: 400ms;\n\n// Media queries in pixels\n\n$media-queries: (\n xs: 20rem,\n sm: 31.25rem,\n md: $content-width,\n lg: $content-width + $nav-width,\n xl: 87.5rem,\n) !default;\n","// The basic two column layout\n\n.side-bar {\n z-index: 0;\n display: flex;\n flex-wrap: wrap;\n background-color: $sidebar-color;\n\n @include mq(md) {\n flex-flow: column nowrap;\n position: fixed;\n width: $nav-width-md;\n height: 100%;\n border-right: $border $border-color;\n align-items: flex-end;\n }\n\n @include mq(lg) {\n width: calc((100% - #{$nav-width + $content-width}) / 2 + #{$nav-width});\n min-width: $nav-width;\n }\n\n & + .main {\n @include mq(md) {\n margin-left: $nav-width-md;\n }\n\n @include mq(lg) {\n // stylelint-disable function-name-case\n // disable for Max(), we want to use the CSS max() function\n margin-left: Max(\n #{$nav-width},\n calc((100% - #{$nav-width + $content-width}) / 2 + #{$nav-width})\n );\n // stylelint-enable function-name-case\n }\n\n .main-header {\n display: none;\n background-color: $sidebar-color;\n\n @include mq(md) {\n display: flex;\n background-color: $body-background-color;\n }\n\n &.nav-open {\n display: block;\n\n @include mq(md) {\n display: flex;\n }\n }\n }\n }\n}\n\n.main {\n margin: auto;\n\n @include mq(md) {\n position: relative;\n max-width: $content-width;\n }\n}\n\n.main-content-wrap {\n @include container;\n\n padding-top: $gutter-spacing-sm;\n padding-bottom: $gutter-spacing-sm;\n\n @include mq(md) {\n padding-top: $gutter-spacing;\n padding-bottom: $gutter-spacing;\n }\n}\n\n.main-header {\n z-index: 0;\n border-bottom: $border $border-color;\n\n @include mq(md) {\n display: flex;\n justify-content: space-between;\n height: $header-height;\n }\n}\n\n.site-nav,\n.site-header,\n.site-footer {\n width: 100%;\n\n @include mq(lg) {\n width: $nav-width;\n }\n}\n\n.site-nav {\n display: none;\n\n &.nav-open {\n display: block;\n }\n\n @include mq(md) {\n display: block;\n padding-top: $sp-8;\n padding-bottom: $gutter-spacing-sm;\n overflow-y: auto;\n flex: 1 1 auto;\n }\n}\n\n.site-header {\n display: flex;\n min-height: $header-height;\n align-items: center;\n\n @include mq(md) {\n height: $header-height;\n max-height: $header-height;\n border-bottom: $border $border-color;\n }\n}\n\n.site-title {\n @include container;\n\n flex-grow: 1;\n display: flex;\n height: 100%;\n align-items: center;\n padding-top: $sp-3;\n padding-bottom: $sp-3;\n color: $body-heading-color;\n @include fs-6;\n\n @include mq(md) {\n padding-top: $sp-2;\n padding-bottom: $sp-2;\n }\n}\n\n@if variable-exists(logo) {\n .site-logo {\n width: 100%;\n height: 100%;\n background-image: url($logo);\n background-repeat: no-repeat;\n background-position: left center;\n background-size: contain;\n }\n}\n\n.site-button {\n display: flex;\n height: 100%;\n padding: $gutter-spacing-sm;\n align-items: center;\n}\n\n@include mq(md) {\n .site-header .site-button {\n display: none;\n }\n}\n\n.site-title:hover {\n background-image: linear-gradient(\n -90deg,\n rgba($feedback-color, 1) 0%,\n rgba($feedback-color, 0.8) 80%,\n rgba($feedback-color, 0) 100%\n );\n}\n\n.site-button:hover {\n background-image: linear-gradient(\n -90deg,\n rgba($feedback-color, 1) 0%,\n rgba($feedback-color, 0.8) 100%\n );\n}\n\n// stylelint-disable selector-max-type\n\nbody {\n position: relative;\n padding-bottom: $sp-10;\n overflow-y: scroll;\n\n @include mq(md) {\n position: static;\n padding-bottom: 0;\n }\n}\n\n// stylelint-enable selector-max-type\n\n.site-footer {\n @include container;\n\n position: absolute;\n bottom: 0;\n left: 0;\n padding-top: $sp-4;\n padding-bottom: $sp-4;\n color: $grey-dk-000;\n @include fs-2;\n\n @include mq(md) {\n position: static;\n justify-self: end;\n }\n}\n\n.icon {\n width: $sp-5;\n height: $sp-5;\n color: $link-color;\n}\n","@charset \"UTF-8\";\n\n// Styles for rendered markdown in the .main-content container\n// stylelint-disable selector-no-type, max-nesting-depth, selector-max-compound-selectors, selector-max-type, selector-max-specificity, selector-max-id\n\n.main-content {\n line-height: $content-line-height;\n\n ol,\n ul,\n dl,\n pre,\n address,\n blockquote,\n .table-wrapper {\n margin-top: 0.5em;\n }\n\n a {\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n ul,\n ol {\n padding-left: 1.5em;\n }\n\n li {\n .highlight {\n margin-top: $sp-1;\n }\n }\n\n ol {\n list-style-type: none;\n counter-reset: step-counter;\n\n > li {\n position: relative;\n\n &::before {\n position: absolute;\n top: 0.2em;\n left: -1.6em;\n color: $grey-dk-000;\n content: counter(step-counter);\n counter-increment: step-counter;\n @include fs-3;\n\n @include mq(sm) {\n top: 0.11em;\n }\n }\n\n ol {\n counter-reset: sub-counter;\n\n > li {\n &::before {\n content: counter(sub-counter, lower-alpha);\n counter-increment: sub-counter;\n }\n }\n }\n }\n }\n\n ul {\n list-style: none;\n\n > li {\n &::before {\n position: absolute;\n margin-left: -1.4em;\n color: $grey-dk-000;\n content: \"•\";\n }\n }\n }\n\n .task-list-item {\n &::before {\n content: \"\";\n }\n }\n\n .task-list-item-checkbox {\n margin-right: 0.6em;\n margin-left: -1.4em;\n\n // The same margin-left is used above for ul > li::before\n }\n\n hr + * {\n margin-top: 0;\n }\n\n h1:first-of-type {\n margin-top: 0.5em;\n }\n\n dl {\n display: grid;\n grid-template: auto / 10em 1fr;\n }\n\n dt,\n dd {\n margin: 0.25em 0;\n }\n\n dt {\n grid-column: 1;\n font-weight: 500;\n text-align: right;\n\n &::after {\n content: \":\";\n }\n }\n\n dd {\n grid-column: 2;\n margin-bottom: 0;\n margin-left: 1em;\n\n blockquote,\n div,\n dl,\n dt,\n h1,\n h2,\n h3,\n h4,\n h5,\n h6,\n li,\n ol,\n p,\n pre,\n table,\n ul,\n .table-wrapper {\n &:first-child {\n margin-top: 0;\n }\n }\n }\n\n dd,\n ol,\n ul {\n dl:first-child {\n dt:first-child,\n dd:nth-child(2) {\n margin-top: 0;\n }\n }\n }\n\n .anchor-heading {\n position: absolute;\n right: -$sp-4;\n width: $sp-5;\n height: 100%;\n padding-right: $sp-1;\n padding-left: $sp-1;\n overflow: visible;\n\n @include mq(md) {\n right: auto;\n left: -$sp-5;\n }\n\n svg {\n display: inline-block;\n width: 100%;\n height: 100%;\n color: $link-color;\n visibility: hidden;\n }\n }\n\n .anchor-heading:hover,\n .anchor-heading:focus,\n h1:hover > .anchor-heading,\n h2:hover > .anchor-heading,\n h3:hover > .anchor-heading,\n h4:hover > .anchor-heading,\n h5:hover > .anchor-heading,\n h6:hover > .anchor-heading {\n svg {\n visibility: visible;\n }\n }\n\n summary {\n cursor: pointer;\n }\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6,\n #toctitle {\n position: relative;\n margin-top: 1.5em;\n margin-bottom: 0.25em;\n\n + table,\n + .table-wrapper,\n + .code-example,\n + .highlighter-rouge,\n + .sectionbody .listingblock {\n margin-top: 1em;\n }\n\n + p:not(.label) {\n margin-top: 0;\n }\n }\n\n > h1:first-child,\n > h2:first-child,\n > h3:first-child,\n > h4:first-child,\n > h5:first-child,\n > h6:first-child,\n > .sect1:first-child > h2,\n > .sect2:first-child > h3,\n > .sect3:first-child > h4,\n > .sect4:first-child > h5,\n > .sect5:first-child > h6 {\n margin-top: $sp-2;\n }\n}\n","// Main nav, breadcrumb, etc...\n// stylelint-disable selector-no-type, max-nesting-depth, selector-max-compound-selectors, selector-max-type, selector-max-specificity\n\n.nav-list {\n padding: 0;\n margin-top: 0;\n margin-bottom: 0;\n list-style: none;\n\n .nav-list-item {\n @include fs-4;\n\n position: relative;\n margin: 0;\n\n @include mq(md) {\n @include fs-3;\n }\n\n .nav-list-link {\n display: block;\n min-height: $nav-list-item-height-sm;\n padding-top: $sp-1;\n padding-bottom: $sp-1;\n line-height: #{$nav-list-item-height-sm - 2 * $sp-1};\n @if $nav-list-expander-right {\n padding-right: $nav-list-item-height-sm;\n padding-left: $gutter-spacing-sm;\n } @else {\n padding-right: $gutter-spacing-sm;\n padding-left: $nav-list-item-height-sm;\n }\n\n @include mq(md) {\n min-height: $nav-list-item-height;\n line-height: #{$nav-list-item-height - 2 * $sp-1};\n @if $nav-list-expander-right {\n padding-right: $nav-list-item-height;\n padding-left: $gutter-spacing;\n } @else {\n padding-right: $gutter-spacing;\n padding-left: $nav-list-item-height;\n }\n }\n\n &.external > svg {\n width: $sp-4;\n height: $sp-4;\n vertical-align: text-bottom;\n }\n\n &.active {\n font-weight: 600;\n text-decoration: none;\n }\n\n &:hover,\n &.active {\n background-image: linear-gradient(\n -90deg,\n rgba($feedback-color, 1) 0%,\n rgba($feedback-color, 0.8) 80%,\n rgba($feedback-color, 0) 100%\n );\n }\n }\n\n .nav-list-expander {\n position: absolute;\n @if $nav-list-expander-right {\n right: 0;\n }\n\n width: $nav-list-item-height-sm;\n height: $nav-list-item-height-sm;\n padding: #{$nav-list-item-height-sm * 0.25};\n color: $link-color;\n\n @include mq(md) {\n width: $nav-list-item-height;\n height: $nav-list-item-height;\n padding: #{$nav-list-item-height * 0.25};\n }\n\n &:hover {\n background-image: linear-gradient(\n -90deg,\n rgba($feedback-color, 1) 0%,\n rgba($feedback-color, 0.8) 100%\n );\n }\n\n @if $nav-list-expander-right {\n svg {\n transform: rotate(90deg);\n }\n }\n }\n\n > .nav-list {\n display: none;\n padding-left: $sp-3;\n list-style: none;\n\n .nav-list-item {\n position: relative;\n\n .nav-list-link {\n color: $nav-child-link-color;\n }\n\n .nav-list-expander {\n color: $nav-child-link-color;\n }\n }\n }\n\n &.active {\n > .nav-list-expander svg {\n @if $nav-list-expander-right {\n transform: rotate(-90deg);\n } @else {\n transform: rotate(90deg);\n }\n }\n\n > .nav-list {\n display: block;\n }\n }\n }\n}\n\n.nav-category {\n padding: $sp-2 $gutter-spacing-sm;\n font-weight: 600;\n text-align: start;\n text-transform: uppercase;\n border-bottom: $border $border-color;\n @include fs-2;\n\n @include mq(md) {\n padding: $sp-2 $gutter-spacing;\n margin-top: $gutter-spacing-sm;\n text-align: start;\n\n &:first-child {\n margin-top: 0;\n }\n }\n}\n\n.nav-list.nav-category-list {\n > .nav-list-item {\n margin: 0;\n\n > .nav-list {\n padding: 0;\n\n > .nav-list-item {\n > .nav-list-link {\n color: $link-color;\n }\n\n > .nav-list-expander {\n color: $link-color;\n }\n }\n }\n }\n}\n\n// Aux nav\n\n.aux-nav {\n height: 100%;\n overflow-x: auto;\n @include fs-2;\n\n .aux-nav-list {\n display: flex;\n height: 100%;\n padding: 0;\n margin: 0;\n list-style: none;\n }\n\n .aux-nav-list-item {\n display: inline-block;\n height: 100%;\n padding: 0;\n margin: 0;\n }\n\n @include mq(md) {\n padding-right: $gutter-spacing-sm;\n }\n}\n\n// Breadcrumb nav\n\n.breadcrumb-nav {\n @include mq(md) {\n margin-top: -$sp-4;\n }\n}\n\n.breadcrumb-nav-list {\n padding-left: 0;\n margin-bottom: $sp-3;\n list-style: none;\n}\n\n.breadcrumb-nav-list-item {\n display: table-cell;\n @include fs-2;\n\n &::before {\n display: none;\n }\n\n &::after {\n display: inline-block;\n margin-right: $sp-2;\n margin-left: $sp-2;\n color: $grey-dk-000;\n content: \"/\";\n }\n\n &:last-child {\n &::after {\n content: \"\";\n }\n }\n}\n","// Typography\n// stylelint-disable selector-no-type, selector-max-type, selector-max-specificity, selector-max-id\n\nh1,\n.text-alpha {\n @include fs-8;\n\n font-weight: 300;\n}\n\nh2,\n.text-beta,\n#toctitle {\n @include fs-6;\n}\n\nh3,\n.text-gamma {\n @include fs-5;\n}\n\nh4,\n.text-delta {\n @include fs-2;\n\n font-weight: 400;\n text-transform: uppercase;\n letter-spacing: 0.1em;\n}\n\nh4 code {\n text-transform: none;\n}\n\nh5,\n.text-epsilon {\n @include fs-3;\n}\n\nh6,\n.text-zeta {\n @include fs-2;\n}\n\n.text-small {\n @include fs-2;\n}\n\n.text-mono {\n font-family: $mono-font-family !important;\n}\n\n.text-left {\n text-align: left !important;\n}\n\n.text-center {\n text-align: center !important;\n}\n\n.text-right {\n text-align: right !important;\n}\n","// Labels (not the form kind)\n\n// this :not() prevents a style clash with Mermaid.js's\n// diagram labels, which also use .label\n// for more, see https://github.com/just-the-docs/just-the-docs/issues/1272\n// and the accompanying PR\n.label:not(g),\n.label-blue:not(g) {\n display: inline-block;\n padding: 0.16em 0.56em;\n margin-right: $sp-2;\n margin-left: $sp-2;\n color: $white;\n text-transform: uppercase;\n vertical-align: middle;\n background-color: $blue-100;\n @include fs-2;\n\n border-radius: 12px;\n}\n\n.label-green:not(g) {\n background-color: $green-200;\n}\n\n.label-purple:not(g) {\n background-color: $purple-100;\n}\n\n.label-red:not(g) {\n background-color: $red-200;\n}\n\n.label-yellow:not(g) {\n color: $grey-dk-200;\n background-color: $yellow-200;\n}\n","// Buttons and things that look like buttons\n// stylelint-disable color-named\n\n.btn {\n display: inline-block;\n box-sizing: border-box;\n padding: 0.3em 1em;\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n font-weight: 500;\n line-height: 1.5;\n color: $link-color;\n text-decoration: none;\n vertical-align: baseline;\n cursor: pointer;\n background-color: $base-button-color;\n border-width: 0;\n border-radius: $border-radius;\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n appearance: none;\n\n &:focus {\n text-decoration: none;\n outline: none;\n box-shadow: 0 0 0 3px rgba(blue, 0.25);\n }\n\n &:focus:hover,\n &.selected:focus {\n box-shadow: 0 0 0 3px rgba(blue, 0.25);\n }\n\n &:hover,\n &.zeroclipboard-is-hover {\n color: darken($link-color, 2%);\n }\n\n &:hover,\n &:active,\n &.zeroclipboard-is-hover,\n &.zeroclipboard-is-active {\n text-decoration: none;\n background-color: darken($base-button-color, 1%);\n }\n\n &:active,\n &.selected,\n &.zeroclipboard-is-active {\n background-color: darken($base-button-color, 3%);\n background-image: none;\n box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15);\n }\n\n &.selected:hover {\n background-color: darken(#dcdcdc, 5%);\n }\n\n &:disabled,\n &.disabled {\n &,\n &:hover {\n color: rgba(102, 102, 102, 0.5);\n cursor: default;\n background-color: rgba(229, 229, 229, 0.5);\n background-image: none;\n box-shadow: none;\n }\n }\n}\n\n.btn-outline {\n color: $link-color;\n background: transparent;\n box-shadow: inset 0 0 0 2px $grey-lt-300;\n\n &:hover,\n &:active,\n &.zeroclipboard-is-hover,\n &.zeroclipboard-is-active {\n color: darken($link-color, 4%);\n text-decoration: none;\n background-color: transparent;\n box-shadow: inset 0 0 0 3px $grey-lt-300;\n }\n\n &:focus {\n text-decoration: none;\n outline: none;\n box-shadow:\n inset 0 0 0 2px $grey-dk-100,\n 0 0 0 3px rgba(blue, 0.25);\n }\n\n &:focus:hover,\n &.selected:focus {\n box-shadow: inset 0 0 0 2px $grey-dk-100;\n }\n}\n\n.btn-primary {\n @include btn-color($white, $btn-primary-color);\n}\n\n.btn-purple {\n @include btn-color($white, $purple-100);\n}\n\n.btn-blue {\n @include btn-color($white, $blue-000);\n}\n\n.btn-green {\n @include btn-color($white, $green-100);\n}\n\n.btn-reset {\n background: none;\n border: none;\n margin: 0;\n text-align: inherit;\n font: inherit;\n border-radius: 0;\n appearance: none;\n}\n","// Colored button\n\n@mixin btn-color($fg, $bg) {\n color: $fg;\n background-color: darken($bg, 2%);\n background-image: linear-gradient(lighten($bg, 5%), darken($bg, 2%));\n box-shadow:\n 0 1px 3px rgba(0, 0, 0, 0.25),\n 0 4px 10px rgba(0, 0, 0, 0.12);\n\n &:hover,\n &.zeroclipboard-is-hover {\n color: $fg;\n background-color: darken($bg, 4%);\n background-image: linear-gradient((lighten($bg, 2%), darken($bg, 4%)));\n }\n\n &:active,\n &.selected,\n &.zeroclipboard-is-active {\n background-color: darken($bg, 5%);\n background-image: none;\n box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15);\n }\n\n &.selected:hover {\n background-color: darken($bg, 10%);\n }\n}\n","// Search input and autocomplete\n\n.search {\n position: relative;\n z-index: 2;\n flex-grow: 1;\n height: $sp-10;\n padding: $sp-2;\n transition: padding linear #{$transition-duration * 0.5};\n\n @include mq(md) {\n position: relative !important;\n width: auto !important;\n height: 100% !important;\n padding: 0;\n transition: none;\n }\n}\n\n.search-input-wrap {\n position: relative;\n z-index: 1;\n height: $sp-8;\n overflow: hidden;\n border-radius: $border-radius;\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n transition: height linear #{$transition-duration * 0.5};\n\n @include mq(md) {\n position: absolute;\n width: 100%;\n max-width: $search-results-width;\n height: 100% !important;\n border-radius: 0;\n box-shadow: none;\n transition: width ease $transition-duration;\n }\n}\n\n.search-input {\n position: absolute;\n width: 100%;\n height: 100%;\n padding: $sp-2 $gutter-spacing-sm $sp-2 #{$gutter-spacing-sm + $sp-5};\n font-size: 1rem;\n color: $body-text-color;\n background-color: $search-background-color;\n border-top: 0;\n border-right: 0;\n border-bottom: 0;\n border-left: 0;\n border-radius: 0;\n\n @include mq(md) {\n padding: $sp-2 $gutter-spacing-sm $sp-2 #{$gutter-spacing + $sp-5};\n font-size: 0.875rem;\n background-color: $body-background-color;\n transition: padding-left linear #{$transition-duration * 0.5};\n }\n\n &:focus {\n outline: 0;\n\n + .search-label .search-icon {\n color: $link-color;\n }\n }\n}\n\n.search-label {\n position: absolute;\n display: flex;\n height: 100%;\n padding-left: $gutter-spacing-sm;\n\n @include mq(md) {\n padding-left: $gutter-spacing;\n transition: padding-left linear #{$transition-duration * 0.5};\n }\n\n .search-icon {\n width: #{$sp-4 * 1.2};\n height: #{$sp-4 * 1.2};\n align-self: center;\n color: $grey-dk-000;\n }\n}\n\n.search-results {\n position: absolute;\n left: 0;\n display: none;\n width: 100%;\n max-height: calc(100% - #{$sp-10});\n overflow-y: auto;\n background-color: $search-background-color;\n border-bottom-right-radius: $border-radius;\n border-bottom-left-radius: $border-radius;\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n\n @include mq(md) {\n top: 100%;\n width: $search-results-width;\n max-height: calc(100vh - 200%) !important;\n }\n}\n\n.search-results-list {\n padding-left: 0;\n margin-bottom: $sp-1;\n list-style: none;\n @include fs-4;\n\n @include mq(md) {\n @include fs-3;\n }\n}\n\n.search-results-list-item {\n padding: 0;\n margin: 0;\n}\n\n.search-result {\n display: block;\n padding: $sp-1 $sp-3;\n\n &:hover,\n &.active {\n background-color: $feedback-color;\n }\n}\n\n.search-result-title {\n display: block;\n padding-top: $sp-2;\n padding-bottom: $sp-2;\n\n @include mq(sm) {\n display: inline-block;\n width: 40%;\n padding-right: $sp-2;\n vertical-align: top;\n }\n}\n\n.search-result-doc {\n display: flex;\n align-items: center;\n word-wrap: break-word;\n\n &.search-result-doc-parent {\n opacity: 0.5;\n @include fs-3;\n\n @include mq(md) {\n @include fs-2;\n }\n }\n\n .search-result-icon {\n width: $sp-4;\n height: $sp-4;\n margin-right: $sp-2;\n color: $link-color;\n flex-shrink: 0;\n }\n\n .search-result-doc-title {\n overflow: auto;\n }\n}\n\n.search-result-section {\n margin-left: #{$sp-4 + $sp-2};\n word-wrap: break-word;\n}\n\n.search-result-rel-url {\n display: block;\n margin-left: #{$sp-4 + $sp-2};\n overflow: hidden;\n color: $search-result-preview-color;\n text-overflow: ellipsis;\n white-space: nowrap;\n @include fs-1;\n}\n\n.search-result-previews {\n display: block;\n padding-top: $sp-2;\n padding-bottom: $sp-2;\n padding-left: $sp-4;\n margin-left: $sp-2;\n color: $search-result-preview-color;\n word-wrap: break-word;\n border-left: $border;\n border-left-color: $border-color;\n @include fs-2;\n\n @include mq(sm) {\n display: inline-block;\n width: 60%;\n padding-left: $sp-2;\n margin-left: 0;\n vertical-align: top;\n }\n}\n\n.search-result-preview + .search-result-preview {\n margin-top: $sp-1;\n}\n\n.search-result-highlight {\n font-weight: bold;\n}\n\n.search-no-result {\n padding: $sp-2 $sp-3;\n @include fs-3;\n}\n\n.search-button {\n position: fixed;\n right: $sp-4;\n bottom: $sp-4;\n display: flex;\n width: $sp-9;\n height: $sp-9;\n background-color: $search-background-color;\n border: 1px solid rgba($link-color, 0.3);\n border-radius: #{$sp-9 * 0.5};\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n align-items: center;\n justify-content: center;\n}\n\n.search-overlay {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1;\n width: 0;\n height: 0;\n background-color: rgba(0, 0, 0, 0.3);\n opacity: 0;\n transition:\n opacity ease $transition-duration,\n width 0s $transition-duration,\n height 0s $transition-duration;\n}\n\n.search-active {\n .search {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n padding: 0;\n }\n\n .search-input-wrap {\n height: $sp-10;\n border-radius: 0;\n\n @include mq(md) {\n width: $search-results-width;\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n }\n }\n\n .search-input {\n background-color: $search-background-color;\n\n @include mq(md) {\n padding-left: 2.3rem;\n }\n }\n\n .search-label {\n @include mq(md) {\n padding-left: 0.6rem;\n }\n }\n\n .search-results {\n display: block;\n }\n\n .search-overlay {\n width: 100%;\n height: 100%;\n opacity: 1;\n transition:\n opacity ease $transition-duration,\n width 0s,\n height 0s;\n }\n\n @include mq(md) {\n .main {\n position: fixed;\n right: 0;\n left: 0;\n }\n }\n\n .main-header {\n padding-top: $sp-10;\n\n @include mq(md) {\n padding-top: 0;\n }\n }\n}\n","// Tables\n// stylelint-disable max-nesting-depth, selector-no-type, selector-max-type\n\n.table-wrapper {\n display: block;\n width: 100%;\n max-width: 100%;\n margin-bottom: $sp-5;\n overflow-x: auto;\n border-radius: $border-radius;\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n}\n\ntable {\n display: table;\n min-width: 100%;\n border-collapse: separate;\n}\n\nth,\ntd {\n @include fs-3;\n\n min-width: 7.5rem;\n padding: $sp-2 $sp-3;\n background-color: $table-background-color;\n border-bottom: $border rgba($border-color, 0.5);\n border-left: $border $border-color;\n\n &:first-of-type {\n border-left: 0;\n }\n}\n\ntbody {\n tr {\n &:last-of-type {\n th,\n td {\n border-bottom: 0;\n }\n\n td {\n padding-bottom: $sp-3;\n }\n }\n }\n}\n\nthead {\n th {\n border-bottom: $border $border-color;\n }\n}\n","// Code and syntax highlighting\n// stylelint-disable selector-no-qualifying-type, declaration-block-semicolon-newline-after,declaration-block-single-line-max-declarations, selector-no-type, selector-max-type, scss/comment-no-empty\n\n// {% raw %}\n\n// This instruction applies to all queues not within 'pre' or 'figure', avoiding 'code' generated by the highlight.\n:not(pre, figure) {\n & > code {\n padding: 0.2em 0.15em;\n font-weight: 400;\n background-color: $code-background-color;\n border: $border $border-color;\n border-radius: $border-radius;\n }\n}\n\n// Avoid appearance of dark border around visited code links in Safari\na:visited code {\n border-color: $border-color;\n}\n\n// Content structure for highlighted code blocks using fences or Liquid\n//\n// ```[LANG]...```, no kramdown line_numbers:\n// div.[language-LANG.]highlighter-rouge > div.highlight > pre.highlight > code\n//\n// ```[LANG]...```, kramdown line_numbers = true:\n// div.[language-LANG.]highlighter-rouge > div.highlight > pre.highlight > code\n// > div.table-wrapper > table.rouge-table > tbody > tr\n// > td.rouge-gutter.gl > pre.lineno\n// | td.rouge-code > pre\n//\n// {% highlight LANG %}...{% endhighlight %}:\n// figure.highlight > pre > code.language-LANG\n//\n// {% highlight LANG linenos %}...{% endhighlight %}:\n// figure.highlight > pre > code.language-LANG\n// > div.table-wrapper > table.rouge-table > tbody > tr\n// > td.gutter.gl > pre.lineno\n// | td.code > pre\n//\n// ----...---- (AsciiDoc)\n// div.listingblock > div.content > pre.rouge.highlight\n//\n// fix_linenos removes the outermost pre when it encloses table.rouge-table\n//\n// See docs/index-test.md for some tests.\n//\n// No kramdown line_numbers: fences and Liquid highlighting look the same.\n// Kramdown line_numbers = true: fences have a wider gutter than with Liquid?\n\n// ```[LANG]...```\n// or in AsciiDoc:\n//\n// ----\n// ...\n// ----\n\n// the code may appear with 3 different types:\n// container \\ case: default case, code with line number, code with html rendering\n// top level: div.highlighter-rouge, figure.highlight, figure.highlight\n// second level: div.highlight, div.table-wrapper, pre.highlight\n// third level: pre.highlight, td.code, absent\n// last level: code, pre, code (optionality)\n// highlighter level: span, span, span\n// the spacing are only in the second level for case 1, 3 and in the third level for case 2\n// in AsciiDoc, there is a parent container that contains optionally a title and the content.\n\n// select top level container\ndiv.highlighter-rouge,\ndiv.listingblock > div.content,\nfigure.highlight {\n margin-top: 0;\n margin-bottom: $sp-3;\n background-color: $code-background-color;\n border-radius: $border-radius;\n box-shadow: none;\n -webkit-overflow-scrolling: touch;\n position: relative;\n padding: 0;\n\n // copy button (or other button)\n // the button appear only when there is a hover on the code or focus on button\n > button {\n width: $sp-3;\n opacity: 0;\n position: absolute;\n top: 0;\n right: 0;\n border: $sp-3 solid $code-background-color;\n background-color: $code-background-color;\n color: $body-text-color;\n box-sizing: content-box;\n\n svg {\n fill: $body-text-color;\n }\n\n &:active {\n text-decoration: none;\n outline: none;\n opacity: 1;\n }\n\n &:focus {\n opacity: 1;\n }\n }\n\n // the button can be seen by doing a simple hover in the code, there is no need to go over the location of the button\n &:hover {\n > button {\n cursor: copy;\n opacity: 1;\n }\n }\n}\n\n// setting the spacing and scrollbar on the second level for the first case\n// remove all space on the second and third level\n// this is a mixin to accommodate for the slightly different structures generated via Markdown vs AsciiDoc\n@mixin scroll-and-spacing($code-div, $pre-select) {\n #{$code-div} {\n overflow-x: auto;\n padding: $sp-3;\n margin: 0;\n border: 0;\n }\n\n #{$pre-select},\n code {\n padding: 0;\n margin: 0;\n border: 0;\n }\n}\n\n// for Markdown\ndiv.highlighter-rouge {\n @include scroll-and-spacing(\"div.highlight\", \"pre.highlight\");\n}\n\n// for AsciiDoc. we also need to fix the margins for its parent container.\ndiv.listingblock {\n @include scroll-and-spacing(\"div.content\", \"div.content > pre\");\n\n margin-top: 0;\n margin-bottom: $sp-3;\n}\n\n// {% highlight LANG %}...{% endhighlight %},\n// {% highlight LANG linenos %}...{% endhighlight %}:\n\n// setting the spacing and scrollbar on the second level for the thirt case\n// the css rule are apply only to the last code enviroment\n// setting the scroolbar\nfigure.highlight {\n pre,\n :not(pre) > code {\n overflow-x: auto;\n padding: $sp-3;\n margin: 0;\n border: 0;\n }\n}\n\n// ```[LANG]...```, kramdown line_numbers = true,\n// {% highlight LANG linenos %}...{% endhighlight %}:\n\n// setting the spacing and scrollbar on the thirt level for the second case\n.highlight .table-wrapper {\n padding: $sp-3 0;\n margin: 0;\n border: 0;\n box-shadow: none;\n\n td,\n pre {\n @include fs-2;\n\n min-width: 0;\n padding: 0;\n background-color: $code-background-color;\n border: 0;\n }\n\n td.gl {\n width: 1em;\n padding-right: $sp-3;\n padding-left: $sp-3;\n }\n\n pre {\n margin: 0;\n line-height: 2;\n }\n}\n\n// Code examples: html render of a code\n.code-example,\n.listingblock > .title {\n padding: $sp-3;\n margin-bottom: $sp-3;\n overflow: auto;\n border: 1px solid $border-color;\n border-radius: $border-radius;\n\n + .highlighter-rouge,\n + .sectionbody .listingblock,\n + .content,\n + figure.highlight {\n position: relative;\n margin-top: -$sp-4;\n border-right: 1px solid $border-color;\n border-bottom: 1px solid $border-color;\n border-left: 1px solid $border-color;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n }\n}\n\n// Mermaid diagram code blocks should be left unstyled.\ncode.language-mermaid {\n padding: 0;\n background-color: inherit;\n border: 0;\n}\n\n// Override OneDarkJekyll Colors for Code Blocks\n.highlight,\npre.highlight {\n background: $code-background-color; // Code Background\n // For Backwards Compatibility Before $code-linenumber-color was added\n @if variable-exists(code-linenumber-color) {\n color: $code-linenumber-color; // Code Line Numbers\n } @else {\n color: $body-text-color; // Code Line Numbers\n }\n}\n\n// Override OneDarkJekyll Colors for Code Blocks\n.highlight pre {\n background: $code-background-color; // Code Background\n}\n\n// {% endraw %}\n","// Utility classes for colors\n\n// Text colors\n\n.text-grey-dk-000 {\n color: $grey-dk-000 !important;\n}\n\n.text-grey-dk-100 {\n color: $grey-dk-100 !important;\n}\n\n.text-grey-dk-200 {\n color: $grey-dk-200 !important;\n}\n\n.text-grey-dk-250 {\n color: $grey-dk-250 !important;\n}\n\n.text-grey-dk-300 {\n color: $grey-dk-300 !important;\n}\n\n.text-grey-lt-000 {\n color: $grey-lt-000 !important;\n}\n\n.text-grey-lt-100 {\n color: $grey-lt-100 !important;\n}\n\n.text-grey-lt-200 {\n color: $grey-lt-200 !important;\n}\n\n.text-grey-lt-300 {\n color: $grey-lt-300 !important;\n}\n\n.text-blue-000 {\n color: $blue-000 !important;\n}\n\n.text-blue-100 {\n color: $blue-100 !important;\n}\n\n.text-blue-200 {\n color: $blue-200 !important;\n}\n\n.text-blue-300 {\n color: $blue-300 !important;\n}\n\n.text-green-000 {\n color: $green-000 !important;\n}\n\n.text-green-100 {\n color: $green-100 !important;\n}\n\n.text-green-200 {\n color: $green-200 !important;\n}\n\n.text-green-300 {\n color: $green-300 !important;\n}\n\n.text-purple-000 {\n color: $purple-000 !important;\n}\n\n.text-purple-100 {\n color: $purple-100 !important;\n}\n\n.text-purple-200 {\n color: $purple-200 !important;\n}\n\n.text-purple-300 {\n color: $purple-300 !important;\n}\n\n.text-yellow-000 {\n color: $yellow-000 !important;\n}\n\n.text-yellow-100 {\n color: $yellow-100 !important;\n}\n\n.text-yellow-200 {\n color: $yellow-200 !important;\n}\n\n.text-yellow-300 {\n color: $yellow-300 !important;\n}\n\n.text-red-000 {\n color: $red-000 !important;\n}\n\n.text-red-100 {\n color: $red-100 !important;\n}\n\n.text-red-200 {\n color: $red-200 !important;\n}\n\n.text-red-300 {\n color: $red-300 !important;\n}\n\n// Background colors\n\n.bg-grey-dk-000 {\n background-color: $grey-dk-000 !important;\n}\n\n.bg-grey-dk-100 {\n background-color: $grey-dk-100 !important;\n}\n\n.bg-grey-dk-200 {\n background-color: $grey-dk-200 !important;\n}\n\n.bg-grey-dk-250 {\n background-color: $grey-dk-250 !important;\n}\n\n.bg-grey-dk-300 {\n background-color: $grey-dk-300 !important;\n}\n\n.bg-grey-lt-000 {\n background-color: $grey-lt-000 !important;\n}\n\n.bg-grey-lt-100 {\n background-color: $grey-lt-100 !important;\n}\n\n.bg-grey-lt-200 {\n background-color: $grey-lt-200 !important;\n}\n\n.bg-grey-lt-300 {\n background-color: $grey-lt-300 !important;\n}\n\n.bg-blue-000 {\n background-color: $blue-000 !important;\n}\n\n.bg-blue-100 {\n background-color: $blue-100 !important;\n}\n\n.bg-blue-200 {\n background-color: $blue-200 !important;\n}\n\n.bg-blue-300 {\n background-color: $blue-300 !important;\n}\n\n.bg-green-000 {\n background-color: $green-000 !important;\n}\n\n.bg-green-100 {\n background-color: $green-100 !important;\n}\n\n.bg-green-200 {\n background-color: $green-200 !important;\n}\n\n.bg-green-300 {\n background-color: $green-300 !important;\n}\n\n.bg-purple-000 {\n background-color: $purple-000 !important;\n}\n\n.bg-purple-100 {\n background-color: $purple-100 !important;\n}\n\n.bg-purple-200 {\n background-color: $purple-200 !important;\n}\n\n.bg-purple-300 {\n background-color: $purple-300 !important;\n}\n\n.bg-yellow-000 {\n background-color: $yellow-000 !important;\n}\n\n.bg-yellow-100 {\n background-color: $yellow-100 !important;\n}\n\n.bg-yellow-200 {\n background-color: $yellow-200 !important;\n}\n\n.bg-yellow-300 {\n background-color: $yellow-300 !important;\n}\n\n.bg-red-000 {\n background-color: $red-000 !important;\n}\n\n.bg-red-100 {\n background-color: $red-100 !important;\n}\n\n.bg-red-200 {\n background-color: $red-200 !important;\n}\n\n.bg-red-300 {\n background-color: $red-300 !important;\n}\n","// Utility classes for layout\n\n// Display\n\n.d-block {\n display: block !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-none {\n display: none !important;\n}\n\n@each $media-query in map-keys($media-queries) {\n @for $i from 1 through length($spacers) {\n @include mq($media-query) {\n $size: #{map-get($spacers, sp-#{$i - 1})};\n $scale: #{$i - 1};\n\n // .d-sm-block, .d-md-none, .d-lg-inline\n .d-#{$media-query}-block {\n display: block !important;\n }\n .d-#{$media-query}-flex {\n display: flex !important;\n }\n .d-#{$media-query}-inline {\n display: inline !important;\n }\n .d-#{$media-query}-inline-block {\n display: inline-block !important;\n }\n .d-#{$media-query}-none {\n display: none !important;\n }\n }\n }\n}\n\n// Horizontal alignment\n\n.float-left {\n float: left !important;\n}\n\n.float-right {\n float: right !important;\n}\n\n.flex-justify-start {\n justify-content: flex-start !important;\n}\n\n.flex-justify-end {\n justify-content: flex-end !important;\n}\n\n.flex-justify-between {\n justify-content: space-between !important;\n}\n\n.flex-justify-around {\n justify-content: space-around !important;\n}\n\n// Vertical alignment\n\n.v-align-baseline {\n vertical-align: baseline !important;\n}\n\n.v-align-bottom {\n vertical-align: bottom !important;\n}\n\n.v-align-middle {\n vertical-align: middle !important;\n}\n\n.v-align-text-bottom {\n vertical-align: text-bottom !important;\n}\n\n.v-align-text-top {\n vertical-align: text-top !important;\n}\n\n.v-align-top {\n vertical-align: top !important;\n}\n","// Utility classes for typography\n\n.fs-1 {\n @include fs-1;\n}\n\n.fs-2 {\n @include fs-2;\n}\n\n.fs-3 {\n @include fs-3;\n}\n\n.fs-4 {\n @include fs-4;\n}\n\n.fs-5 {\n @include fs-5;\n}\n\n.fs-6 {\n @include fs-6;\n}\n\n.fs-7 {\n @include fs-7;\n}\n\n.fs-8 {\n @include fs-8;\n}\n\n.fs-9 {\n @include fs-9;\n}\n\n.fs-10 {\n @include fs-10;\n}\n\n.fw-300 {\n font-weight: 300 !important;\n}\n\n.fw-400 {\n font-weight: 400 !important;\n}\n\n.fw-500 {\n font-weight: 500 !important;\n}\n\n.fw-700 {\n font-weight: 700 !important;\n}\n\n.lh-0 {\n line-height: 0 !important;\n}\n\n.lh-default {\n line-height: $body-line-height;\n}\n\n.lh-tight {\n line-height: $body-heading-line-height;\n}\n\n.ls-5 {\n letter-spacing: 0.05em !important;\n}\n\n.ls-10 {\n letter-spacing: 0.1em !important;\n}\n\n.ls-0 {\n letter-spacing: 0 !important;\n}\n\n.text-uppercase {\n text-transform: uppercase !important;\n}\n","// Utility classes for lists\n\n// stylelint-disable selector-max-type\n\n.list-style-none {\n padding: 0 !important;\n margin: 0 !important;\n list-style: none !important;\n\n li {\n &::before {\n display: none !important;\n }\n }\n}\n","// Utility classes for margins and padding\n\n// stylelint-disable block-opening-brace-space-after, block-opening-brace-space-before\n\n// Margin spacer utilities\n\n.mx-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n}\n\n@for $i from 1 through length($spacers) {\n $size: #{map-get($spacers, sp-#{$i - 1})};\n $scale: #{$i - 1};\n\n // .m-0, .m-1, .m-2...\n .m-#{$scale} {\n margin: #{$size} !important;\n }\n .mt-#{$scale} {\n margin-top: #{$size} !important;\n }\n .mr-#{$scale} {\n margin-right: #{$size} !important;\n }\n .mb-#{$scale} {\n margin-bottom: #{$size} !important;\n }\n .ml-#{$scale} {\n margin-left: #{$size} !important;\n }\n\n .mx-#{$scale} {\n margin-right: #{$size} !important;\n margin-left: #{$size} !important;\n }\n\n .my-#{$scale} {\n margin-top: #{$size} !important;\n margin-bottom: #{$size} !important;\n }\n\n .mxn-#{$scale} {\n margin-right: -#{$size} !important;\n margin-left: -#{$size} !important;\n }\n .mx-#{$scale}-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n}\n\n@each $media-query in map-keys($media-queries) {\n @for $i from 1 through length($spacers) {\n @include mq($media-query) {\n $size: #{map-get($spacers, sp-#{$i - 1})};\n $scale: #{$i - 1};\n\n // .m-sm-0, .m-md-1, .m-lg-2...\n .m-#{$media-query}-#{$scale} {\n margin: #{$size} !important;\n }\n .mt-#{$media-query}-#{$scale} {\n margin-top: #{$size} !important;\n }\n .mr-#{$media-query}-#{$scale} {\n margin-right: #{$size} !important;\n }\n .mb-#{$media-query}-#{$scale} {\n margin-bottom: #{$size} !important;\n }\n .ml-#{$media-query}-#{$scale} {\n margin-left: #{$size} !important;\n }\n\n .mx-#{$media-query}-#{$scale} {\n margin-right: #{$size} !important;\n margin-left: #{$size} !important;\n }\n\n .my-#{$media-query}-#{$scale} {\n margin-top: #{$size} !important;\n margin-bottom: #{$size} !important;\n }\n\n .mxn-#{$media-query}-#{$scale} {\n margin-right: -#{$size} !important;\n margin-left: -#{$size} !important;\n }\n }\n }\n}\n\n// Padding spacer utilities\n\n@for $i from 1 through length($spacers) {\n $size: #{map-get($spacers, sp-#{$i - 1})};\n $scale: #{$i - 1};\n\n // .p-0, .p-1, .p-2...\n .p-#{$scale} {\n padding: #{$size} !important;\n }\n .pt-#{$scale} {\n padding-top: #{$size} !important;\n }\n .pr-#{$scale} {\n padding-right: #{$size} !important;\n }\n .pb-#{$scale} {\n padding-bottom: #{$size} !important;\n }\n .pl-#{$scale} {\n padding-left: #{$size} !important;\n }\n\n .px-#{$scale} {\n padding-right: #{$size} !important;\n padding-left: #{$size} !important;\n }\n\n .py-#{$scale} {\n padding-top: #{$size} !important;\n padding-bottom: #{$size} !important;\n }\n}\n\n@each $media-query in map-keys($media-queries) {\n @include mq($media-query) {\n @for $i from 1 through length($spacers) {\n $size: #{map-get($spacers, sp-#{$i - 1})};\n $scale: #{$i - 1};\n\n // .p-sm-0, .p-md-1, .p-lg-2...\n .p-#{$media-query}-#{$scale} {\n padding: #{$size} !important;\n }\n .pt-#{$media-query}-#{$scale} {\n padding-top: #{$size} !important;\n }\n .pr-#{$media-query}-#{$scale} {\n padding-right: #{$size} !important;\n }\n .pb-#{$media-query}-#{$scale} {\n padding-bottom: #{$size} !important;\n }\n .pl-#{$media-query}-#{$scale} {\n padding-left: #{$size} !important;\n }\n\n .px-#{$media-query}-#{$scale} {\n padding-right: #{$size} !important;\n padding-left: #{$size} !important;\n }\n\n .py-#{$media-query}-#{$scale} {\n padding-top: #{$size} !important;\n padding-bottom: #{$size} !important;\n }\n }\n }\n}\n","// stylelint-disable selector-max-specificity, selector-max-id, selector-max-type, selector-no-qualifying-type\n\n@media print {\n .site-footer,\n .site-button,\n #edit-this-page,\n #back-to-top,\n .site-nav,\n .main-header {\n display: none !important;\n }\n\n .side-bar {\n width: 100%;\n height: auto;\n border-right: 0 !important;\n }\n\n .site-header {\n border-bottom: 1px solid $border-color;\n }\n\n .site-title {\n font-size: 1rem !important;\n font-weight: 700 !important;\n }\n\n .text-small {\n font-size: 8pt !important;\n }\n\n pre.highlight {\n border: 1px solid $border-color;\n }\n\n .main {\n max-width: none;\n margin-left: 0;\n }\n}\n","// Skipnav\n// Skip to main content\n\na.skip-to-main {\n left: -999px;\n position: absolute;\n top: auto;\n width: 1px;\n height: 1px;\n overflow: hidden;\n z-index: -999;\n}\n\na.skip-to-main:focus,\na.skip-to-main:active {\n color: $link-color;\n background-color: $body-background-color;\n left: auto;\n top: auto;\n width: 30%;\n height: auto;\n overflow: auto;\n margin: 10px 35%;\n padding: 5px;\n border-radius: 15px;\n border: 4px solid $btn-primary-color;\n text-align: center;\n font-size: 1.2em;\n z-index: 999;\n}\n","\n@import \"./support/support\";\n@import \"./custom/setup\";\n@import \"./color_schemes/light\";\n\n@import \"./color_schemes/dark\";\n\n@import \"./modules\";\ndiv.opaque {\n background-color: $body-background-color;\n}\n@import \"./custom/custom\";\n\n\n"],"file":"just-the-docs-dark.css"} \ No newline at end of file diff --git a/assets/css/just-the-docs-default.css b/assets/css/just-the-docs-default.css new file mode 100644 index 00000000..587c3d83 --- /dev/null +++ b/assets/css/just-the-docs-default.css @@ -0,0 +1,7331 @@ +@charset "UTF-8"; +@import url("https://fonts.googleapis.com/css2?family=Mukta+Mahee&display=swap"); +.highlight, +pre.highlight { + background: #f9f9f9; + color: #383942; +} + +.highlight pre { + background: #f9f9f9; +} + +.highlight .hll { + background: #f9f9f9; +} + +.highlight .c { + color: #9fa0a6; + font-style: italic; +} + +.highlight .err { + color: #fff; + background-color: #e05151; +} + +.highlight .k { + color: #a625a4; +} + +.highlight .l { + color: #50a04f; +} + +.highlight .n { + color: #383942; +} + +.highlight .o { + color: #383942; +} + +.highlight .p { + color: #383942; +} + +.highlight .cm { + color: #9fa0a6; + font-style: italic; +} + +.highlight .cp { + color: #9fa0a6; + font-style: italic; +} + +.highlight .c1 { + color: #9fa0a6; + font-style: italic; +} + +.highlight .cs { + color: #9fa0a6; + font-style: italic; +} + +.highlight .ge { + font-style: italic; +} + +.highlight .gs { + font-weight: 700; +} + +.highlight .kc { + color: #a625a4; +} + +.highlight .kd { + color: #a625a4; +} + +.highlight .kn { + color: #a625a4; +} + +.highlight .kp { + color: #a625a4; +} + +.highlight .kr { + color: #a625a4; +} + +.highlight .kt { + color: #a625a4; +} + +.highlight .ld { + color: #50a04f; +} + +.highlight .m { + color: #b66a00; +} + +.highlight .s { + color: #50a04f; +} + +.highlight .na { + color: #b66a00; +} + +.highlight .nb { + color: #ca7601; +} + +.highlight .nc { + color: #ca7601; +} + +.highlight .no { + color: #ca7601; +} + +.highlight .nd { + color: #ca7601; +} + +.highlight .ni { + color: #ca7601; +} + +.highlight .ne { + color: #ca7601; +} + +.highlight .nf { + color: #383942; +} + +.highlight .nl { + color: #ca7601; +} + +.highlight .nn { + color: #383942; +} + +.highlight .nx { + color: #383942; +} + +.highlight .py { + color: #ca7601; +} + +.highlight .nt { + color: #e35549; +} + +.highlight .nv { + color: #ca7601; +} + +.highlight .ow { + font-weight: 700; +} + +.highlight .w { + color: #f8f8f2; +} + +.highlight .mf { + color: #b66a00; +} + +.highlight .mh { + color: #b66a00; +} + +.highlight .mi { + color: #b66a00; +} + +.highlight .mo { + color: #b66a00; +} + +.highlight .sb { + color: #50a04f; +} + +.highlight .sc { + color: #50a04f; +} + +.highlight .sd { + color: #50a04f; +} + +.highlight .s2 { + color: #50a04f; +} + +.highlight .se { + color: #50a04f; +} + +.highlight .sh { + color: #50a04f; +} + +.highlight .si { + color: #50a04f; +} + +.highlight .sx { + color: #50a04f; +} + +.highlight .sr { + color: #0083bb; +} + +.highlight .s1 { + color: #50a04f; +} + +.highlight .ss { + color: #0083bb; +} + +.highlight .bp { + color: #ca7601; +} + +.highlight .vc { + color: #ca7601; +} + +.highlight .vg { + color: #ca7601; +} + +.highlight .vi { + color: #e35549; +} + +.highlight .il { + color: #b66a00; +} + +.highlight .gu { + color: #75715e; +} + +.highlight .gd { + color: #e05151; +} + +.highlight .gi { + color: #43d089; +} + +.highlight .language-json .w + .s2 { + color: #e35549; +} + +.highlight .language-json .kc { + color: #0083bb; +} + +/*! normalize.css v8.0.1 | 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; +} + +/** + * Render the `main` element consistently in IE. + */ +main { + display: block; +} + +/** + * 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 { + 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. + */ +abbr[title] { + border-bottom: none; /* 1 */ + text-decoration: underline; /* 2 */ + text-decoration: underline dotted; /* 2 */ +} + +/** + * 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, +kbd, +samp { + 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. + */ +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +/* 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, +optgroup, +select, +textarea { + 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, +select { + /* 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 { + 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. + */ +progress { + vertical-align: baseline; +} + +/** + * Remove the default vertical scrollbar in IE 10+. + */ +textarea { + overflow: auto; +} + +/** + * 1. Add the correct box sizing in IE 10. + * 2. Remove the padding in IE 10. + */ +[type=checkbox], +[type=radio] { + 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. + */ +summary { + display: list-item; +} + +/* Misc + ========================================================================== */ +/** + * Add the correct display in IE 10+. + */ +template { + display: none; +} + +/** + * Add the correct display in IE 10. + */ +[hidden] { + display: none; +} + +:root { + color-scheme: light; +} + +* { + box-sizing: border-box; +} + +html { + font-size: 0.875rem !important; + scroll-behavior: smooth; +} +@media (min-width: 31.25rem) { + html { + font-size: 1rem !important; + } +} + +body { + font-family: system-ui, -apple-system, blinkmacsystemfont, "Segoe UI", roboto, "Helvetica Neue", arial, sans-serif, "Segoe UI Emoji"; + font-size: inherit; + line-height: 1.4; + color: #5c5962; + background-color: #fff; + overflow-wrap: break-word; +} + +ol, +ul, +dl, +pre, +address, +blockquote, +table, +div, +hr, +form, +fieldset, +noscript .table-wrapper { + margin-top: 0; +} + +h1, +h2, +h3, +h4, +h5, +h6, +#toctitle { + margin-top: 0; + margin-bottom: 1em; + font-weight: 500; + line-height: 1.25; + color: #27262b; +} + +p { + margin-top: 1em; + margin-bottom: 1em; +} + +a { + color: #7253ed; + text-decoration: none; +} + +a:not([class]) { + text-decoration: underline; + text-decoration-color: #eeebee; + text-underline-offset: 2px; +} +a:not([class]):hover { + text-decoration-color: rgba(114, 83, 237, 0.45); +} + +code { + font-family: "SFMono-Regular", menlo, consolas, monospace; + font-size: 0.75em; + line-height: 1.4; +} + +figure, +pre { + margin: 0; +} + +li { + margin: 0.25em 0; +} + +img { + max-width: 100%; + height: auto; +} + +hr { + height: 1px; + padding: 0; + margin: 2rem 0; + background-color: #eeebee; + border: 0; +} + +blockquote { + margin: 10px 0; + margin-block-start: 0; + margin-inline-start: 0; + padding-left: 1rem; + border-left: 3px solid #eeebee; +} + +.side-bar { + z-index: 0; + display: flex; + flex-wrap: wrap; + background-color: #f5f6fa; +} +@media (min-width: 50rem) { + .side-bar { + flex-flow: column nowrap; + position: fixed; + width: 15.5rem; + height: 100%; + border-right: 1px solid #eeebee; + align-items: flex-end; + } +} +@media (min-width: 66.5rem) { + .side-bar { + width: calc((100% - 66.5rem) / 2 + 16.5rem); + min-width: 16.5rem; + } +} +@media (min-width: 50rem) { + .side-bar + .main { + margin-left: 15.5rem; + } +} +@media (min-width: 66.5rem) { + .side-bar + .main { + margin-left: max(16.5rem, (100% - 66.5rem) / 2 + 16.5rem); + } +} +.side-bar + .main .main-header { + display: none; + background-color: #f5f6fa; +} +@media (min-width: 50rem) { + .side-bar + .main .main-header { + display: flex; + background-color: #fff; + } +} +.side-bar + .main .main-header.nav-open { + display: block; +} +@media (min-width: 50rem) { + .side-bar + .main .main-header.nav-open { + display: flex; + } +} + +.main { + margin: auto; +} +@media (min-width: 50rem) { + .main { + position: relative; + max-width: 50rem; + } +} + +.main-content-wrap { + padding-right: 1rem; + padding-left: 1rem; + padding-top: 1rem; + padding-bottom: 1rem; +} +@media (min-width: 50rem) { + .main-content-wrap { + padding-right: 2rem; + padding-left: 2rem; + } +} +@media (min-width: 50rem) { + .main-content-wrap { + padding-top: 2rem; + padding-bottom: 2rem; + } +} + +.main-header { + z-index: 0; + border-bottom: 1px solid #eeebee; +} +@media (min-width: 50rem) { + .main-header { + display: flex; + justify-content: space-between; + height: 3.75rem; + } +} + +.site-nav, +.site-header, +.site-footer { + width: 100%; +} +@media (min-width: 66.5rem) { + .site-nav, + .site-header, + .site-footer { + width: 16.5rem; + } +} + +.site-nav { + display: none; +} +.site-nav.nav-open { + display: block; +} +@media (min-width: 50rem) { + .site-nav { + display: block; + padding-top: 3rem; + padding-bottom: 1rem; + overflow-y: auto; + flex: 1 1 auto; + } +} + +.site-header { + display: flex; + min-height: 3.75rem; + align-items: center; +} +@media (min-width: 50rem) { + .site-header { + height: 3.75rem; + max-height: 3.75rem; + border-bottom: 1px solid #eeebee; + } +} + +.site-title { + padding-right: 1rem; + padding-left: 1rem; + flex-grow: 1; + display: flex; + height: 100%; + align-items: center; + padding-top: 0.75rem; + padding-bottom: 0.75rem; + color: #27262b; + font-size: 1.125rem !important; +} +@media (min-width: 50rem) { + .site-title { + padding-right: 2rem; + padding-left: 2rem; + } +} +@media (min-width: 31.25rem) { + .site-title { + font-size: 1.5rem !important; + line-height: 1.25; + } +} +@media (min-width: 50rem) { + .site-title { + padding-top: 0.5rem; + padding-bottom: 0.5rem; + } +} + +.site-button { + display: flex; + height: 100%; + padding: 1rem; + align-items: center; +} + +@media (min-width: 50rem) { + .site-header .site-button { + display: none; + } +} +.site-title:hover { + background-image: linear-gradient(-90deg, #ebedf5 0%, rgba(235, 237, 245, 0.8) 80%, rgba(235, 237, 245, 0) 100%); +} + +.site-button:hover { + background-image: linear-gradient(-90deg, #ebedf5 0%, rgba(235, 237, 245, 0.8) 100%); +} + +body { + position: relative; + padding-bottom: 4rem; + overflow-y: scroll; +} +@media (min-width: 50rem) { + body { + position: static; + padding-bottom: 0; + } +} + +.site-footer { + padding-right: 1rem; + padding-left: 1rem; + position: absolute; + bottom: 0; + left: 0; + padding-top: 1rem; + padding-bottom: 1rem; + color: #959396; + font-size: 0.6875rem !important; +} +@media (min-width: 50rem) { + .site-footer { + padding-right: 2rem; + padding-left: 2rem; + } +} +@media (min-width: 31.25rem) { + .site-footer { + font-size: 0.75rem !important; + } +} +@media (min-width: 50rem) { + .site-footer { + position: static; + justify-self: end; + } +} + +.icon { + width: 1.5rem; + height: 1.5rem; + color: #7253ed; +} + +.main-content { + line-height: 1.6; +} +.main-content ol, +.main-content ul, +.main-content dl, +.main-content pre, +.main-content address, +.main-content blockquote, +.main-content .table-wrapper { + margin-top: 0.5em; +} +.main-content a { + overflow: hidden; + text-overflow: ellipsis; +} +.main-content ul, +.main-content ol { + padding-left: 1.5em; +} +.main-content li .highlight { + margin-top: 0.25rem; +} +.main-content ol { + list-style-type: none; + counter-reset: step-counter; +} +.main-content ol > li { + position: relative; +} +.main-content ol > li::before { + position: absolute; + top: 0.2em; + left: -1.6em; + color: #959396; + content: counter(step-counter); + counter-increment: step-counter; + font-size: 0.75rem !important; +} +@media (min-width: 31.25rem) { + .main-content ol > li::before { + font-size: 0.875rem !important; + } +} +@media (min-width: 31.25rem) { + .main-content ol > li::before { + top: 0.11em; + } +} +.main-content ol > li ol { + counter-reset: sub-counter; +} +.main-content ol > li ol > li::before { + content: counter(sub-counter, lower-alpha); + counter-increment: sub-counter; +} +.main-content ul { + list-style: none; +} +.main-content ul > li::before { + position: absolute; + margin-left: -1.4em; + color: #959396; + content: "•"; +} +.main-content .task-list-item::before { + content: ""; +} +.main-content .task-list-item-checkbox { + margin-right: 0.6em; + margin-left: -1.4em; +} +.main-content hr + * { + margin-top: 0; +} +.main-content h1:first-of-type { + margin-top: 0.5em; +} +.main-content dl { + display: grid; + grid-template: auto/10em 1fr; +} +.main-content dt, +.main-content dd { + margin: 0.25em 0; +} +.main-content dt { + grid-column: 1; + font-weight: 500; + text-align: right; +} +.main-content dt::after { + content: ":"; +} +.main-content dd { + grid-column: 2; + margin-bottom: 0; + margin-left: 1em; +} +.main-content dd blockquote:first-child, +.main-content dd div:first-child, +.main-content dd dl:first-child, +.main-content dd dt:first-child, +.main-content dd h1:first-child, +.main-content dd h2:first-child, +.main-content dd h3:first-child, +.main-content dd h4:first-child, +.main-content dd h5:first-child, +.main-content dd h6:first-child, +.main-content dd li:first-child, +.main-content dd ol:first-child, +.main-content dd p:first-child, +.main-content dd pre:first-child, +.main-content dd table:first-child, +.main-content dd ul:first-child, +.main-content dd .table-wrapper:first-child { + margin-top: 0; +} +.main-content dd dl:first-child dt:first-child, +.main-content dd dl:first-child dd:nth-child(2), +.main-content ol dl:first-child dt:first-child, +.main-content ol dl:first-child dd:nth-child(2), +.main-content ul dl:first-child dt:first-child, +.main-content ul dl:first-child dd:nth-child(2) { + margin-top: 0; +} +.main-content .anchor-heading { + position: absolute; + right: -1rem; + width: 1.5rem; + height: 100%; + padding-right: 0.25rem; + padding-left: 0.25rem; + overflow: visible; +} +@media (min-width: 50rem) { + .main-content .anchor-heading { + right: auto; + left: -1.5rem; + } +} +.main-content .anchor-heading svg { + display: inline-block; + width: 100%; + height: 100%; + color: #7253ed; + visibility: hidden; +} +.main-content .anchor-heading:hover svg, +.main-content .anchor-heading:focus svg, +.main-content h1:hover > .anchor-heading svg, +.main-content h2:hover > .anchor-heading svg, +.main-content h3:hover > .anchor-heading svg, +.main-content h4:hover > .anchor-heading svg, +.main-content h5:hover > .anchor-heading svg, +.main-content h6:hover > .anchor-heading svg { + visibility: visible; +} +.main-content summary { + cursor: pointer; +} +.main-content h1, +.main-content h2, +.main-content h3, +.main-content h4, +.main-content h5, +.main-content h6, +.main-content #toctitle { + position: relative; + margin-top: 1.5em; + margin-bottom: 0.25em; +} +.main-content h1 + table, +.main-content h1 + .table-wrapper, +.main-content h1 + .code-example, +.main-content h1 + .highlighter-rouge, +.main-content h1 + .sectionbody .listingblock, +.main-content h2 + table, +.main-content h2 + .table-wrapper, +.main-content h2 + .code-example, +.main-content h2 + .highlighter-rouge, +.main-content h2 + .sectionbody .listingblock, +.main-content h3 + table, +.main-content h3 + .table-wrapper, +.main-content h3 + .code-example, +.main-content h3 + .highlighter-rouge, +.main-content h3 + .sectionbody .listingblock, +.main-content h4 + table, +.main-content h4 + .table-wrapper, +.main-content h4 + .code-example, +.main-content h4 + .highlighter-rouge, +.main-content h4 + .sectionbody .listingblock, +.main-content h5 + table, +.main-content h5 + .table-wrapper, +.main-content h5 + .code-example, +.main-content h5 + .highlighter-rouge, +.main-content h5 + .sectionbody .listingblock, +.main-content h6 + table, +.main-content h6 + .table-wrapper, +.main-content h6 + .code-example, +.main-content h6 + .highlighter-rouge, +.main-content h6 + .sectionbody .listingblock, +.main-content #toctitle + table, +.main-content #toctitle + .table-wrapper, +.main-content #toctitle + .code-example, +.main-content #toctitle + .highlighter-rouge, +.main-content #toctitle + .sectionbody .listingblock { + margin-top: 1em; +} +.main-content h1 + p:not(.label), +.main-content h2 + p:not(.label), +.main-content h3 + p:not(.label), +.main-content h4 + p:not(.label), +.main-content h5 + p:not(.label), +.main-content h6 + p:not(.label), +.main-content #toctitle + p:not(.label) { + margin-top: 0; +} +.main-content > h1:first-child, +.main-content > h2:first-child, +.main-content > h3:first-child, +.main-content > h4:first-child, +.main-content > h5:first-child, +.main-content > h6:first-child, +.main-content > .sect1:first-child > h2, +.main-content > .sect2:first-child > h3, +.main-content > .sect3:first-child > h4, +.main-content > .sect4:first-child > h5, +.main-content > .sect5:first-child > h6 { + margin-top: 0.5rem; +} + +.nav-list { + padding: 0; + margin-top: 0; + margin-bottom: 0; + list-style: none; +} +.nav-list .nav-list-item { + font-size: 0.875rem !important; + position: relative; + margin: 0; +} +@media (min-width: 31.25rem) { + .nav-list .nav-list-item { + font-size: 1rem !important; + } +} +@media (min-width: 50rem) { + .nav-list .nav-list-item { + font-size: 0.75rem !important; + } +} +@media (min-width: 50rem) and (min-width: 31.25rem) { + .nav-list .nav-list-item { + font-size: 0.875rem !important; + } +} +.nav-list .nav-list-item .nav-list-link { + display: block; + min-height: 3rem; + padding-top: 0.25rem; + padding-bottom: 0.25rem; + line-height: 2.5rem; + padding-right: 3rem; + padding-left: 1rem; +} +@media (min-width: 50rem) { + .nav-list .nav-list-item .nav-list-link { + min-height: 2rem; + line-height: 1.5rem; + padding-right: 2rem; + padding-left: 2rem; + } +} +.nav-list .nav-list-item .nav-list-link.external > svg { + width: 1rem; + height: 1rem; + vertical-align: text-bottom; +} +.nav-list .nav-list-item .nav-list-link.active { + font-weight: 600; + text-decoration: none; +} +.nav-list .nav-list-item .nav-list-link:hover, .nav-list .nav-list-item .nav-list-link.active { + background-image: linear-gradient(-90deg, #ebedf5 0%, rgba(235, 237, 245, 0.8) 80%, rgba(235, 237, 245, 0) 100%); +} +.nav-list .nav-list-item .nav-list-expander { + position: absolute; + right: 0; + width: 3rem; + height: 3rem; + padding: 0.75rem; + color: #7253ed; +} +@media (min-width: 50rem) { + .nav-list .nav-list-item .nav-list-expander { + width: 2rem; + height: 2rem; + padding: 0.5rem; + } +} +.nav-list .nav-list-item .nav-list-expander:hover { + background-image: linear-gradient(-90deg, #ebedf5 0%, rgba(235, 237, 245, 0.8) 100%); +} +.nav-list .nav-list-item .nav-list-expander svg { + transform: rotate(90deg); +} +.nav-list .nav-list-item > .nav-list { + display: none; + padding-left: 0.75rem; + list-style: none; +} +.nav-list .nav-list-item > .nav-list .nav-list-item { + position: relative; +} +.nav-list .nav-list-item > .nav-list .nav-list-item .nav-list-link { + color: #5c5962; +} +.nav-list .nav-list-item > .nav-list .nav-list-item .nav-list-expander { + color: #5c5962; +} +.nav-list .nav-list-item.active > .nav-list-expander svg { + transform: rotate(-90deg); +} +.nav-list .nav-list-item.active > .nav-list { + display: block; +} + +.nav-category { + padding: 0.5rem 1rem; + font-weight: 600; + text-align: start; + text-transform: uppercase; + border-bottom: 1px solid #eeebee; + font-size: 0.6875rem !important; +} +@media (min-width: 31.25rem) { + .nav-category { + font-size: 0.75rem !important; + } +} +@media (min-width: 50rem) { + .nav-category { + padding: 0.5rem 2rem; + margin-top: 1rem; + text-align: start; + } + .nav-category:first-child { + margin-top: 0; + } +} + +.nav-list.nav-category-list > .nav-list-item { + margin: 0; +} +.nav-list.nav-category-list > .nav-list-item > .nav-list { + padding: 0; +} +.nav-list.nav-category-list > .nav-list-item > .nav-list > .nav-list-item > .nav-list-link { + color: #7253ed; +} +.nav-list.nav-category-list > .nav-list-item > .nav-list > .nav-list-item > .nav-list-expander { + color: #7253ed; +} + +.aux-nav { + height: 100%; + overflow-x: auto; + font-size: 0.6875rem !important; +} +@media (min-width: 31.25rem) { + .aux-nav { + font-size: 0.75rem !important; + } +} +.aux-nav .aux-nav-list { + display: flex; + height: 100%; + padding: 0; + margin: 0; + list-style: none; +} +.aux-nav .aux-nav-list-item { + display: inline-block; + height: 100%; + padding: 0; + margin: 0; +} +@media (min-width: 50rem) { + .aux-nav { + padding-right: 1rem; + } +} + +@media (min-width: 50rem) { + .breadcrumb-nav { + margin-top: -1rem; + } +} + +.breadcrumb-nav-list { + padding-left: 0; + margin-bottom: 0.75rem; + list-style: none; +} + +.breadcrumb-nav-list-item { + display: table-cell; + font-size: 0.6875rem !important; +} +@media (min-width: 31.25rem) { + .breadcrumb-nav-list-item { + font-size: 0.75rem !important; + } +} +.breadcrumb-nav-list-item::before { + display: none; +} +.breadcrumb-nav-list-item::after { + display: inline-block; + margin-right: 0.5rem; + margin-left: 0.5rem; + color: #959396; + content: "/"; +} +.breadcrumb-nav-list-item:last-child::after { + content: ""; +} + +h1, +.text-alpha { + font-size: 2rem !important; + line-height: 1.25; + font-weight: 300; +} +@media (min-width: 31.25rem) { + h1, + .text-alpha { + font-size: 2.25rem !important; + } +} + +h2, +.text-beta, +#toctitle { + font-size: 1.125rem !important; +} +@media (min-width: 31.25rem) { + h2, + .text-beta, + #toctitle { + font-size: 1.5rem !important; + line-height: 1.25; + } +} + +h3, +.text-gamma { + font-size: 1rem !important; +} +@media (min-width: 31.25rem) { + h3, + .text-gamma { + font-size: 1.125rem !important; + } +} + +h4, +.text-delta { + font-size: 0.6875rem !important; + font-weight: 400; + text-transform: uppercase; + letter-spacing: 0.1em; +} +@media (min-width: 31.25rem) { + h4, + .text-delta { + font-size: 0.75rem !important; + } +} + +h4 code { + text-transform: none; +} + +h5, +.text-epsilon { + font-size: 0.75rem !important; +} +@media (min-width: 31.25rem) { + h5, + .text-epsilon { + font-size: 0.875rem !important; + } +} + +h6, +.text-zeta { + font-size: 0.6875rem !important; +} +@media (min-width: 31.25rem) { + h6, + .text-zeta { + font-size: 0.75rem !important; + } +} + +.text-small { + font-size: 0.6875rem !important; +} +@media (min-width: 31.25rem) { + .text-small { + font-size: 0.75rem !important; + } +} + +.text-mono { + font-family: "SFMono-Regular", menlo, consolas, monospace !important; +} + +.text-left { + text-align: left !important; +} + +.text-center { + text-align: center !important; +} + +.text-right { + text-align: right !important; +} + +.label:not(g), +.label-blue:not(g) { + display: inline-block; + padding: 0.16em 0.56em; + margin-right: 0.5rem; + margin-left: 0.5rem; + color: #fff; + text-transform: uppercase; + vertical-align: middle; + background-color: #2869e6; + font-size: 0.6875rem !important; + border-radius: 12px; +} +@media (min-width: 31.25rem) { + .label:not(g), + .label-blue:not(g) { + font-size: 0.75rem !important; + } +} + +.label-green:not(g) { + background-color: #009c7b; +} + +.label-purple:not(g) { + background-color: #5e41d0; +} + +.label-red:not(g) { + background-color: #e94c4c; +} + +.label-yellow:not(g) { + color: #44434d; + background-color: #f7d12e; +} + +.btn { + display: inline-block; + box-sizing: border-box; + padding: 0.3em 1em; + margin: 0; + font-family: inherit; + font-size: inherit; + font-weight: 500; + line-height: 1.5; + color: #7253ed; + text-decoration: none; + vertical-align: baseline; + cursor: pointer; + background-color: #f7f7f7; + border-width: 0; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + appearance: none; +} +.btn:focus { + text-decoration: none; + outline: none; + box-shadow: 0 0 0 3px rgba(0, 0, 255, 0.25); +} +.btn:focus:hover, .btn.selected:focus { + box-shadow: 0 0 0 3px rgba(0, 0, 255, 0.25); +} +.btn:hover, .btn.zeroclipboard-is-hover { + color: #6a4aec; +} +.btn:hover, .btn:active, .btn.zeroclipboard-is-hover, .btn.zeroclipboard-is-active { + text-decoration: none; + background-color: #f4f4f4; +} +.btn:active, .btn.selected, .btn.zeroclipboard-is-active { + background-color: #efefef; + background-image: none; + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); +} +.btn.selected:hover { + background-color: #cfcfcf; +} +.btn:disabled, .btn:disabled:hover, .btn.disabled, .btn.disabled:hover { + color: rgba(102, 102, 102, 0.5); + cursor: default; + background-color: rgba(229, 229, 229, 0.5); + background-image: none; + box-shadow: none; +} + +.btn-outline { + color: #7253ed; + background: transparent; + box-shadow: inset 0 0 0 2px #e6e1e8; +} +.btn-outline:hover, .btn-outline:active, .btn-outline.zeroclipboard-is-hover, .btn-outline.zeroclipboard-is-active { + color: #6341eb; + text-decoration: none; + background-color: transparent; + box-shadow: inset 0 0 0 3px #e6e1e8; +} +.btn-outline:focus { + text-decoration: none; + outline: none; + box-shadow: inset 0 0 0 2px #5c5962, 0 0 0 3px rgba(0, 0, 255, 0.25); +} +.btn-outline:focus:hover, .btn-outline.selected:focus { + box-shadow: inset 0 0 0 2px #5c5962; +} + +.btn-primary { + color: #fff; + background-color: #5739ce; + background-image: linear-gradient(#6f55d5, #5739ce); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), 0 4px 10px rgba(0, 0, 0, 0.12); +} +.btn-primary:hover, .btn-primary.zeroclipboard-is-hover { + color: #fff; + background-color: #5132cb; + background-image: linear-gradient(#6549d2, #5132cb); +} +.btn-primary:active, .btn-primary.selected, .btn-primary.zeroclipboard-is-active { + background-color: #4f31c6; + background-image: none; + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); +} +.btn-primary.selected:hover { + background-color: #472cb2; +} + +.btn-purple { + color: #fff; + background-color: #5739ce; + background-image: linear-gradient(#6f55d5, #5739ce); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), 0 4px 10px rgba(0, 0, 0, 0.12); +} +.btn-purple:hover, .btn-purple.zeroclipboard-is-hover { + color: #fff; + background-color: #5132cb; + background-image: linear-gradient(#6549d2, #5132cb); +} +.btn-purple:active, .btn-purple.selected, .btn-purple.zeroclipboard-is-active { + background-color: #4f31c6; + background-image: none; + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); +} +.btn-purple.selected:hover { + background-color: #472cb2; +} + +.btn-blue { + color: #fff; + background-color: #227efa; + background-image: linear-gradient(#4593fb, #227efa); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), 0 4px 10px rgba(0, 0, 0, 0.12); +} +.btn-blue:hover, .btn-blue.zeroclipboard-is-hover { + color: #fff; + background-color: #1878fa; + background-image: linear-gradient(#368afa, #1878fa); +} +.btn-blue:active, .btn-blue.selected, .btn-blue.zeroclipboard-is-active { + background-color: #1375f9; + background-image: none; + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); +} +.btn-blue.selected:hover { + background-color: #0669ed; +} + +.btn-green { + color: #fff; + background-color: #10ac7d; + background-image: linear-gradient(#13cc95, #10ac7d); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), 0 4px 10px rgba(0, 0, 0, 0.12); +} +.btn-green:hover, .btn-green.zeroclipboard-is-hover { + color: #fff; + background-color: #0fa276; + background-image: linear-gradient(#12be8b, #0fa276); +} +.btn-green:active, .btn-green.selected, .btn-green.zeroclipboard-is-active { + background-color: #0f9e73; + background-image: none; + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); +} +.btn-green.selected:hover { + background-color: #0d8662; +} + +.btn-reset { + background: none; + border: none; + margin: 0; + text-align: inherit; + font: inherit; + border-radius: 0; + appearance: none; +} + +.search { + position: relative; + z-index: 2; + flex-grow: 1; + height: 4rem; + padding: 0.5rem; + transition: padding linear 200ms; +} +@media (min-width: 50rem) { + .search { + position: relative !important; + width: auto !important; + height: 100% !important; + padding: 0; + transition: none; + } +} + +.search-input-wrap { + position: relative; + z-index: 1; + height: 3rem; + overflow: hidden; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + transition: height linear 200ms; +} +@media (min-width: 50rem) { + .search-input-wrap { + position: absolute; + width: 100%; + max-width: 33.5rem; + height: 100% !important; + border-radius: 0; + box-shadow: none; + transition: width ease 400ms; + } +} + +.search-input { + position: absolute; + width: 100%; + height: 100%; + padding: 0.5rem 1rem 0.5rem 2.5rem; + font-size: 1rem; + color: #5c5962; + background-color: #fff; + border-top: 0; + border-right: 0; + border-bottom: 0; + border-left: 0; + border-radius: 0; +} +@media (min-width: 50rem) { + .search-input { + padding: 0.5rem 1rem 0.5rem 3.5rem; + font-size: 0.875rem; + background-color: #fff; + transition: padding-left linear 200ms; + } +} +.search-input:focus { + outline: 0; +} +.search-input:focus + .search-label .search-icon { + color: #7253ed; +} + +.search-label { + position: absolute; + display: flex; + height: 100%; + padding-left: 1rem; +} +@media (min-width: 50rem) { + .search-label { + padding-left: 2rem; + transition: padding-left linear 200ms; + } +} +.search-label .search-icon { + width: 1.2rem; + height: 1.2rem; + align-self: center; + color: #959396; +} + +.search-results { + position: absolute; + left: 0; + display: none; + width: 100%; + max-height: calc(100% - 4rem); + overflow-y: auto; + background-color: #fff; + border-bottom-right-radius: 4px; + border-bottom-left-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); +} +@media (min-width: 50rem) { + .search-results { + top: 100%; + width: 33.5rem; + max-height: calc(100vh - 200%) !important; + } +} + +.search-results-list { + padding-left: 0; + margin-bottom: 0.25rem; + list-style: none; + font-size: 0.875rem !important; +} +@media (min-width: 31.25rem) { + .search-results-list { + font-size: 1rem !important; + } +} +@media (min-width: 50rem) { + .search-results-list { + font-size: 0.75rem !important; + } +} +@media (min-width: 50rem) and (min-width: 31.25rem) { + .search-results-list { + font-size: 0.875rem !important; + } +} + +.search-results-list-item { + padding: 0; + margin: 0; +} + +.search-result { + display: block; + padding: 0.25rem 0.75rem; +} +.search-result:hover, .search-result.active { + background-color: #ebedf5; +} + +.search-result-title { + display: block; + padding-top: 0.5rem; + padding-bottom: 0.5rem; +} +@media (min-width: 31.25rem) { + .search-result-title { + display: inline-block; + width: 40%; + padding-right: 0.5rem; + vertical-align: top; + } +} + +.search-result-doc { + display: flex; + align-items: center; + word-wrap: break-word; +} +.search-result-doc.search-result-doc-parent { + opacity: 0.5; + font-size: 0.75rem !important; +} +@media (min-width: 31.25rem) { + .search-result-doc.search-result-doc-parent { + font-size: 0.875rem !important; + } +} +@media (min-width: 50rem) { + .search-result-doc.search-result-doc-parent { + font-size: 0.6875rem !important; + } +} +@media (min-width: 50rem) and (min-width: 31.25rem) { + .search-result-doc.search-result-doc-parent { + font-size: 0.75rem !important; + } +} +.search-result-doc .search-result-icon { + width: 1rem; + height: 1rem; + margin-right: 0.5rem; + color: #7253ed; + flex-shrink: 0; +} +.search-result-doc .search-result-doc-title { + overflow: auto; +} + +.search-result-section { + margin-left: 1.5rem; + word-wrap: break-word; +} + +.search-result-rel-url { + display: block; + margin-left: 1.5rem; + overflow: hidden; + color: #959396; + text-overflow: ellipsis; + white-space: nowrap; + font-size: 0.5625rem !important; +} +@media (min-width: 31.25rem) { + .search-result-rel-url { + font-size: 0.625rem !important; + } +} + +.search-result-previews { + display: block; + padding-top: 0.5rem; + padding-bottom: 0.5rem; + padding-left: 1rem; + margin-left: 0.5rem; + color: #959396; + word-wrap: break-word; + border-left: 1px solid; + border-left-color: #eeebee; + font-size: 0.6875rem !important; +} +@media (min-width: 31.25rem) { + .search-result-previews { + font-size: 0.75rem !important; + } +} +@media (min-width: 31.25rem) { + .search-result-previews { + display: inline-block; + width: 60%; + padding-left: 0.5rem; + margin-left: 0; + vertical-align: top; + } +} + +.search-result-preview + .search-result-preview { + margin-top: 0.25rem; +} + +.search-result-highlight { + font-weight: bold; +} + +.search-no-result { + padding: 0.5rem 0.75rem; + font-size: 0.75rem !important; +} +@media (min-width: 31.25rem) { + .search-no-result { + font-size: 0.875rem !important; + } +} + +.search-button { + position: fixed; + right: 1rem; + bottom: 1rem; + display: flex; + width: 3.5rem; + height: 3.5rem; + background-color: #fff; + border: 1px solid rgba(114, 83, 237, 0.3); + border-radius: 1.75rem; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + align-items: center; + justify-content: center; +} + +.search-overlay { + position: fixed; + top: 0; + left: 0; + z-index: 1; + width: 0; + height: 0; + background-color: rgba(0, 0, 0, 0.3); + opacity: 0; + transition: opacity ease 400ms, width 0s 400ms, height 0s 400ms; +} + +.search-active .search { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + padding: 0; +} +.search-active .search-input-wrap { + height: 4rem; + border-radius: 0; +} +@media (min-width: 50rem) { + .search-active .search-input-wrap { + width: 33.5rem; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + } +} +.search-active .search-input { + background-color: #fff; +} +@media (min-width: 50rem) { + .search-active .search-input { + padding-left: 2.3rem; + } +} +@media (min-width: 50rem) { + .search-active .search-label { + padding-left: 0.6rem; + } +} +.search-active .search-results { + display: block; +} +.search-active .search-overlay { + width: 100%; + height: 100%; + opacity: 1; + transition: opacity ease 400ms, width 0s, height 0s; +} +@media (min-width: 50rem) { + .search-active .main { + position: fixed; + right: 0; + left: 0; + } +} +.search-active .main-header { + padding-top: 4rem; +} +@media (min-width: 50rem) { + .search-active .main-header { + padding-top: 0; + } +} + +.table-wrapper { + display: block; + width: 100%; + max-width: 100%; + margin-bottom: 1.5rem; + overflow-x: auto; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); +} + +table { + display: table; + min-width: 100%; + border-collapse: separate; +} + +th, +td { + font-size: 0.75rem !important; + min-width: 7.5rem; + padding: 0.5rem 0.75rem; + background-color: #fff; + border-bottom: 1px solid rgba(238, 235, 238, 0.5); + border-left: 1px solid #eeebee; +} +@media (min-width: 31.25rem) { + th, + td { + font-size: 0.875rem !important; + } +} +th:first-of-type, +td:first-of-type { + border-left: 0; +} + +tbody tr:last-of-type th, +tbody tr:last-of-type td { + border-bottom: 0; +} +tbody tr:last-of-type td { + padding-bottom: 0.75rem; +} + +thead th { + border-bottom: 1px solid #eeebee; +} + +:not(pre, figure) > code { + padding: 0.2em 0.15em; + font-weight: 400; + background-color: #f5f6fa; + border: 1px solid #eeebee; + border-radius: 4px; +} + +a:visited code { + border-color: #eeebee; +} + +div.highlighter-rouge, +div.listingblock > div.content, +figure.highlight { + margin-top: 0; + margin-bottom: 0.75rem; + background-color: #f5f6fa; + border-radius: 4px; + box-shadow: none; + -webkit-overflow-scrolling: touch; + position: relative; + padding: 0; +} +div.highlighter-rouge > button, +div.listingblock > div.content > button, +figure.highlight > button { + width: 0.75rem; + opacity: 0; + position: absolute; + top: 0; + right: 0; + border: 0.75rem solid #f5f6fa; + background-color: #f5f6fa; + color: #5c5962; + box-sizing: content-box; +} +div.highlighter-rouge > button svg, +div.listingblock > div.content > button svg, +figure.highlight > button svg { + fill: #5c5962; +} +div.highlighter-rouge > button:active, +div.listingblock > div.content > button:active, +figure.highlight > button:active { + text-decoration: none; + outline: none; + opacity: 1; +} +div.highlighter-rouge > button:focus, +div.listingblock > div.content > button:focus, +figure.highlight > button:focus { + opacity: 1; +} +div.highlighter-rouge:hover > button, +div.listingblock > div.content:hover > button, +figure.highlight:hover > button { + cursor: copy; + opacity: 1; +} + +div.highlighter-rouge div.highlight { + overflow-x: auto; + padding: 0.75rem; + margin: 0; + border: 0; +} +div.highlighter-rouge pre.highlight, +div.highlighter-rouge code { + padding: 0; + margin: 0; + border: 0; +} + +div.listingblock { + margin-top: 0; + margin-bottom: 0.75rem; +} +div.listingblock div.content { + overflow-x: auto; + padding: 0.75rem; + margin: 0; + border: 0; +} +div.listingblock div.content > pre, +div.listingblock code { + padding: 0; + margin: 0; + border: 0; +} + +figure.highlight pre, +figure.highlight :not(pre) > code { + overflow-x: auto; + padding: 0.75rem; + margin: 0; + border: 0; +} + +.highlight .table-wrapper { + padding: 0.75rem 0; + margin: 0; + border: 0; + box-shadow: none; +} +.highlight .table-wrapper td, +.highlight .table-wrapper pre { + font-size: 0.6875rem !important; + min-width: 0; + padding: 0; + background-color: #f5f6fa; + border: 0; +} +@media (min-width: 31.25rem) { + .highlight .table-wrapper td, + .highlight .table-wrapper pre { + font-size: 0.75rem !important; + } +} +.highlight .table-wrapper td.gl { + width: 1em; + padding-right: 0.75rem; + padding-left: 0.75rem; +} +.highlight .table-wrapper pre { + margin: 0; + line-height: 2; +} + +.code-example, +.listingblock > .title { + padding: 0.75rem; + margin-bottom: 0.75rem; + overflow: auto; + border: 1px solid #eeebee; + border-radius: 4px; +} +.code-example + .highlighter-rouge, +.code-example + .sectionbody .listingblock, +.code-example + .content, +.code-example + figure.highlight, +.listingblock > .title + .highlighter-rouge, +.listingblock > .title + .sectionbody .listingblock, +.listingblock > .title + .content, +.listingblock > .title + figure.highlight { + position: relative; + margin-top: -1rem; + border-right: 1px solid #eeebee; + border-bottom: 1px solid #eeebee; + border-left: 1px solid #eeebee; + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +code.language-mermaid { + padding: 0; + background-color: inherit; + border: 0; +} + +.highlight, +pre.highlight { + background: #f5f6fa; + color: #5c5962; +} + +.highlight pre { + background: #f5f6fa; +} + +.text-grey-dk-000 { + color: #959396 !important; +} + +.text-grey-dk-100 { + color: #5c5962 !important; +} + +.text-grey-dk-200 { + color: #44434d !important; +} + +.text-grey-dk-250 { + color: #302d36 !important; +} + +.text-grey-dk-300 { + color: #27262b !important; +} + +.text-grey-lt-000 { + color: #f5f6fa !important; +} + +.text-grey-lt-100 { + color: #eeebee !important; +} + +.text-grey-lt-200 { + color: #ecebed !important; +} + +.text-grey-lt-300 { + color: #e6e1e8 !important; +} + +.text-blue-000 { + color: #2c84fa !important; +} + +.text-blue-100 { + color: #2869e6 !important; +} + +.text-blue-200 { + color: #264caf !important; +} + +.text-blue-300 { + color: #183385 !important; +} + +.text-green-000 { + color: #41d693 !important; +} + +.text-green-100 { + color: #11b584 !important; +} + +.text-green-200 { + color: #009c7b !important; +} + +.text-green-300 { + color: #026e57 !important; +} + +.text-purple-000 { + color: #7253ed !important; +} + +.text-purple-100 { + color: #5e41d0 !important; +} + +.text-purple-200 { + color: #4e26af !important; +} + +.text-purple-300 { + color: #381885 !important; +} + +.text-yellow-000 { + color: #ffeb82 !important; +} + +.text-yellow-100 { + color: #fadf50 !important; +} + +.text-yellow-200 { + color: #f7d12e !important; +} + +.text-yellow-300 { + color: #e7af06 !important; +} + +.text-red-000 { + color: #f77e7e !important; +} + +.text-red-100 { + color: #f96e65 !important; +} + +.text-red-200 { + color: #e94c4c !important; +} + +.text-red-300 { + color: #dd2e2e !important; +} + +.bg-grey-dk-000 { + background-color: #959396 !important; +} + +.bg-grey-dk-100 { + background-color: #5c5962 !important; +} + +.bg-grey-dk-200 { + background-color: #44434d !important; +} + +.bg-grey-dk-250 { + background-color: #302d36 !important; +} + +.bg-grey-dk-300 { + background-color: #27262b !important; +} + +.bg-grey-lt-000 { + background-color: #f5f6fa !important; +} + +.bg-grey-lt-100 { + background-color: #eeebee !important; +} + +.bg-grey-lt-200 { + background-color: #ecebed !important; +} + +.bg-grey-lt-300 { + background-color: #e6e1e8 !important; +} + +.bg-blue-000 { + background-color: #2c84fa !important; +} + +.bg-blue-100 { + background-color: #2869e6 !important; +} + +.bg-blue-200 { + background-color: #264caf !important; +} + +.bg-blue-300 { + background-color: #183385 !important; +} + +.bg-green-000 { + background-color: #41d693 !important; +} + +.bg-green-100 { + background-color: #11b584 !important; +} + +.bg-green-200 { + background-color: #009c7b !important; +} + +.bg-green-300 { + background-color: #026e57 !important; +} + +.bg-purple-000 { + background-color: #7253ed !important; +} + +.bg-purple-100 { + background-color: #5e41d0 !important; +} + +.bg-purple-200 { + background-color: #4e26af !important; +} + +.bg-purple-300 { + background-color: #381885 !important; +} + +.bg-yellow-000 { + background-color: #ffeb82 !important; +} + +.bg-yellow-100 { + background-color: #fadf50 !important; +} + +.bg-yellow-200 { + background-color: #f7d12e !important; +} + +.bg-yellow-300 { + background-color: #e7af06 !important; +} + +.bg-red-000 { + background-color: #f77e7e !important; +} + +.bg-red-100 { + background-color: #f96e65 !important; +} + +.bg-red-200 { + background-color: #e94c4c !important; +} + +.bg-red-300 { + background-color: #dd2e2e !important; +} + +.d-block { + display: block !important; +} + +.d-flex { + display: flex !important; +} + +.d-inline { + display: inline !important; +} + +.d-inline-block { + display: inline-block !important; +} + +.d-none { + display: none !important; +} + +@media (min-width: 20rem) { + .d-xs-block { + display: block !important; + } + .d-xs-flex { + display: flex !important; + } + .d-xs-inline { + display: inline !important; + } + .d-xs-inline-block { + display: inline-block !important; + } + .d-xs-none { + display: none !important; + } +} +@media (min-width: 20rem) { + .d-xs-block { + display: block !important; + } + .d-xs-flex { + display: flex !important; + } + .d-xs-inline { + display: inline !important; + } + .d-xs-inline-block { + display: inline-block !important; + } + .d-xs-none { + display: none !important; + } +} +@media (min-width: 20rem) { + .d-xs-block { + display: block !important; + } + .d-xs-flex { + display: flex !important; + } + .d-xs-inline { + display: inline !important; + } + .d-xs-inline-block { + display: inline-block !important; + } + .d-xs-none { + display: none !important; + } +} +@media (min-width: 20rem) { + .d-xs-block { + display: block !important; + } + .d-xs-flex { + display: flex !important; + } + .d-xs-inline { + display: inline !important; + } + .d-xs-inline-block { + display: inline-block !important; + } + .d-xs-none { + display: none !important; + } +} +@media (min-width: 20rem) { + .d-xs-block { + display: block !important; + } + .d-xs-flex { + display: flex !important; + } + .d-xs-inline { + display: inline !important; + } + .d-xs-inline-block { + display: inline-block !important; + } + .d-xs-none { + display: none !important; + } +} +@media (min-width: 20rem) { + .d-xs-block { + display: block !important; + } + .d-xs-flex { + display: flex !important; + } + .d-xs-inline { + display: inline !important; + } + .d-xs-inline-block { + display: inline-block !important; + } + .d-xs-none { + display: none !important; + } +} +@media (min-width: 20rem) { + .d-xs-block { + display: block !important; + } + .d-xs-flex { + display: flex !important; + } + .d-xs-inline { + display: inline !important; + } + .d-xs-inline-block { + display: inline-block !important; + } + .d-xs-none { + display: none !important; + } +} +@media (min-width: 20rem) { + .d-xs-block { + display: block !important; + } + .d-xs-flex { + display: flex !important; + } + .d-xs-inline { + display: inline !important; + } + .d-xs-inline-block { + display: inline-block !important; + } + .d-xs-none { + display: none !important; + } +} +@media (min-width: 20rem) { + .d-xs-block { + display: block !important; + } + .d-xs-flex { + display: flex !important; + } + .d-xs-inline { + display: inline !important; + } + .d-xs-inline-block { + display: inline-block !important; + } + .d-xs-none { + display: none !important; + } +} +@media (min-width: 20rem) { + .d-xs-block { + display: block !important; + } + .d-xs-flex { + display: flex !important; + } + .d-xs-inline { + display: inline !important; + } + .d-xs-inline-block { + display: inline-block !important; + } + .d-xs-none { + display: none !important; + } +} +@media (min-width: 20rem) { + .d-xs-block { + display: block !important; + } + .d-xs-flex { + display: flex !important; + } + .d-xs-inline { + display: inline !important; + } + .d-xs-inline-block { + display: inline-block !important; + } + .d-xs-none { + display: none !important; + } +} +@media (min-width: 31.25rem) { + .d-sm-block { + display: block !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-none { + display: none !important; + } +} +@media (min-width: 31.25rem) { + .d-sm-block { + display: block !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-none { + display: none !important; + } +} +@media (min-width: 31.25rem) { + .d-sm-block { + display: block !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-none { + display: none !important; + } +} +@media (min-width: 31.25rem) { + .d-sm-block { + display: block !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-none { + display: none !important; + } +} +@media (min-width: 31.25rem) { + .d-sm-block { + display: block !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-none { + display: none !important; + } +} +@media (min-width: 31.25rem) { + .d-sm-block { + display: block !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-none { + display: none !important; + } +} +@media (min-width: 31.25rem) { + .d-sm-block { + display: block !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-none { + display: none !important; + } +} +@media (min-width: 31.25rem) { + .d-sm-block { + display: block !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-none { + display: none !important; + } +} +@media (min-width: 31.25rem) { + .d-sm-block { + display: block !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-none { + display: none !important; + } +} +@media (min-width: 31.25rem) { + .d-sm-block { + display: block !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-none { + display: none !important; + } +} +@media (min-width: 31.25rem) { + .d-sm-block { + display: block !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-none { + display: none !important; + } +} +@media (min-width: 50rem) { + .d-md-block { + display: block !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-none { + display: none !important; + } +} +@media (min-width: 50rem) { + .d-md-block { + display: block !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-none { + display: none !important; + } +} +@media (min-width: 50rem) { + .d-md-block { + display: block !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-none { + display: none !important; + } +} +@media (min-width: 50rem) { + .d-md-block { + display: block !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-none { + display: none !important; + } +} +@media (min-width: 50rem) { + .d-md-block { + display: block !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-none { + display: none !important; + } +} +@media (min-width: 50rem) { + .d-md-block { + display: block !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-none { + display: none !important; + } +} +@media (min-width: 50rem) { + .d-md-block { + display: block !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-none { + display: none !important; + } +} +@media (min-width: 50rem) { + .d-md-block { + display: block !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-none { + display: none !important; + } +} +@media (min-width: 50rem) { + .d-md-block { + display: block !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-none { + display: none !important; + } +} +@media (min-width: 50rem) { + .d-md-block { + display: block !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-none { + display: none !important; + } +} +@media (min-width: 50rem) { + .d-md-block { + display: block !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-none { + display: none !important; + } +} +@media (min-width: 66.5rem) { + .d-lg-block { + display: block !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-none { + display: none !important; + } +} +@media (min-width: 66.5rem) { + .d-lg-block { + display: block !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-none { + display: none !important; + } +} +@media (min-width: 66.5rem) { + .d-lg-block { + display: block !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-none { + display: none !important; + } +} +@media (min-width: 66.5rem) { + .d-lg-block { + display: block !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-none { + display: none !important; + } +} +@media (min-width: 66.5rem) { + .d-lg-block { + display: block !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-none { + display: none !important; + } +} +@media (min-width: 66.5rem) { + .d-lg-block { + display: block !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-none { + display: none !important; + } +} +@media (min-width: 66.5rem) { + .d-lg-block { + display: block !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-none { + display: none !important; + } +} +@media (min-width: 66.5rem) { + .d-lg-block { + display: block !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-none { + display: none !important; + } +} +@media (min-width: 66.5rem) { + .d-lg-block { + display: block !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-none { + display: none !important; + } +} +@media (min-width: 66.5rem) { + .d-lg-block { + display: block !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-none { + display: none !important; + } +} +@media (min-width: 66.5rem) { + .d-lg-block { + display: block !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-none { + display: none !important; + } +} +@media (min-width: 87.5rem) { + .d-xl-block { + display: block !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-none { + display: none !important; + } +} +@media (min-width: 87.5rem) { + .d-xl-block { + display: block !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-none { + display: none !important; + } +} +@media (min-width: 87.5rem) { + .d-xl-block { + display: block !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-none { + display: none !important; + } +} +@media (min-width: 87.5rem) { + .d-xl-block { + display: block !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-none { + display: none !important; + } +} +@media (min-width: 87.5rem) { + .d-xl-block { + display: block !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-none { + display: none !important; + } +} +@media (min-width: 87.5rem) { + .d-xl-block { + display: block !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-none { + display: none !important; + } +} +@media (min-width: 87.5rem) { + .d-xl-block { + display: block !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-none { + display: none !important; + } +} +@media (min-width: 87.5rem) { + .d-xl-block { + display: block !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-none { + display: none !important; + } +} +@media (min-width: 87.5rem) { + .d-xl-block { + display: block !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-none { + display: none !important; + } +} +@media (min-width: 87.5rem) { + .d-xl-block { + display: block !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-none { + display: none !important; + } +} +@media (min-width: 87.5rem) { + .d-xl-block { + display: block !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-none { + display: none !important; + } +} +.float-left { + float: left !important; +} + +.float-right { + float: right !important; +} + +.flex-justify-start { + justify-content: flex-start !important; +} + +.flex-justify-end { + justify-content: flex-end !important; +} + +.flex-justify-between { + justify-content: space-between !important; +} + +.flex-justify-around { + justify-content: space-around !important; +} + +.v-align-baseline { + vertical-align: baseline !important; +} + +.v-align-bottom { + vertical-align: bottom !important; +} + +.v-align-middle { + vertical-align: middle !important; +} + +.v-align-text-bottom { + vertical-align: text-bottom !important; +} + +.v-align-text-top { + vertical-align: text-top !important; +} + +.v-align-top { + vertical-align: top !important; +} + +.fs-1 { + font-size: 0.5625rem !important; +} +@media (min-width: 31.25rem) { + .fs-1 { + font-size: 0.625rem !important; + } +} + +.fs-2 { + font-size: 0.6875rem !important; +} +@media (min-width: 31.25rem) { + .fs-2 { + font-size: 0.75rem !important; + } +} + +.fs-3 { + font-size: 0.75rem !important; +} +@media (min-width: 31.25rem) { + .fs-3 { + font-size: 0.875rem !important; + } +} + +.fs-4 { + font-size: 0.875rem !important; +} +@media (min-width: 31.25rem) { + .fs-4 { + font-size: 1rem !important; + } +} + +.fs-5 { + font-size: 1rem !important; +} +@media (min-width: 31.25rem) { + .fs-5 { + font-size: 1.125rem !important; + } +} + +.fs-6 { + font-size: 1.125rem !important; +} +@media (min-width: 31.25rem) { + .fs-6 { + font-size: 1.5rem !important; + line-height: 1.25; + } +} + +.fs-7 { + font-size: 1.5rem !important; + line-height: 1.25; +} +@media (min-width: 31.25rem) { + .fs-7 { + font-size: 2rem !important; + } +} + +.fs-8 { + font-size: 2rem !important; + line-height: 1.25; +} +@media (min-width: 31.25rem) { + .fs-8 { + font-size: 2.25rem !important; + } +} + +.fs-9 { + font-size: 2.25rem !important; + line-height: 1.25; +} +@media (min-width: 31.25rem) { + .fs-9 { + font-size: 2.625rem !important; + } +} + +.fs-10 { + font-size: 2.625rem !important; + line-height: 1.25; +} +@media (min-width: 31.25rem) { + .fs-10 { + font-size: 3rem !important; + } +} + +.fw-300 { + font-weight: 300 !important; +} + +.fw-400 { + font-weight: 400 !important; +} + +.fw-500 { + font-weight: 500 !important; +} + +.fw-700 { + font-weight: 700 !important; +} + +.lh-0 { + line-height: 0 !important; +} + +.lh-default { + line-height: 1.4; +} + +.lh-tight { + line-height: 1.25; +} + +.ls-5 { + letter-spacing: 0.05em !important; +} + +.ls-10 { + letter-spacing: 0.1em !important; +} + +.ls-0 { + letter-spacing: 0 !important; +} + +.text-uppercase { + text-transform: uppercase !important; +} + +.list-style-none { + padding: 0 !important; + margin: 0 !important; + list-style: none !important; +} +.list-style-none li::before { + display: none !important; +} + +.mx-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.m-0 { + margin: 0 !important; +} + +.mt-0 { + margin-top: 0 !important; +} + +.mr-0 { + margin-right: 0 !important; +} + +.mb-0 { + margin-bottom: 0 !important; +} + +.ml-0 { + margin-left: 0 !important; +} + +.mx-0 { + margin-right: 0 !important; + margin-left: 0 !important; +} + +.my-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; +} + +.mxn-0 { + margin-right: -0 !important; + margin-left: -0 !important; +} + +.mx-0-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.m-1 { + margin: 0.25rem !important; +} + +.mt-1 { + margin-top: 0.25rem !important; +} + +.mr-1 { + margin-right: 0.25rem !important; +} + +.mb-1 { + margin-bottom: 0.25rem !important; +} + +.ml-1 { + margin-left: 0.25rem !important; +} + +.mx-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; +} + +.my-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; +} + +.mxn-1 { + margin-right: -0.25rem !important; + margin-left: -0.25rem !important; +} + +.mx-1-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.m-2 { + margin: 0.5rem !important; +} + +.mt-2 { + margin-top: 0.5rem !important; +} + +.mr-2 { + margin-right: 0.5rem !important; +} + +.mb-2 { + margin-bottom: 0.5rem !important; +} + +.ml-2 { + margin-left: 0.5rem !important; +} + +.mx-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; +} + +.my-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; +} + +.mxn-2 { + margin-right: -0.5rem !important; + margin-left: -0.5rem !important; +} + +.mx-2-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.m-3 { + margin: 0.75rem !important; +} + +.mt-3 { + margin-top: 0.75rem !important; +} + +.mr-3 { + margin-right: 0.75rem !important; +} + +.mb-3 { + margin-bottom: 0.75rem !important; +} + +.ml-3 { + margin-left: 0.75rem !important; +} + +.mx-3 { + margin-right: 0.75rem !important; + margin-left: 0.75rem !important; +} + +.my-3 { + margin-top: 0.75rem !important; + margin-bottom: 0.75rem !important; +} + +.mxn-3 { + margin-right: -0.75rem !important; + margin-left: -0.75rem !important; +} + +.mx-3-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.m-4 { + margin: 1rem !important; +} + +.mt-4 { + margin-top: 1rem !important; +} + +.mr-4 { + margin-right: 1rem !important; +} + +.mb-4 { + margin-bottom: 1rem !important; +} + +.ml-4 { + margin-left: 1rem !important; +} + +.mx-4 { + margin-right: 1rem !important; + margin-left: 1rem !important; +} + +.my-4 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; +} + +.mxn-4 { + margin-right: -1rem !important; + margin-left: -1rem !important; +} + +.mx-4-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.m-5 { + margin: 1.5rem !important; +} + +.mt-5 { + margin-top: 1.5rem !important; +} + +.mr-5 { + margin-right: 1.5rem !important; +} + +.mb-5 { + margin-bottom: 1.5rem !important; +} + +.ml-5 { + margin-left: 1.5rem !important; +} + +.mx-5 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; +} + +.my-5 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; +} + +.mxn-5 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important; +} + +.mx-5-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.m-6 { + margin: 2rem !important; +} + +.mt-6 { + margin-top: 2rem !important; +} + +.mr-6 { + margin-right: 2rem !important; +} + +.mb-6 { + margin-bottom: 2rem !important; +} + +.ml-6 { + margin-left: 2rem !important; +} + +.mx-6 { + margin-right: 2rem !important; + margin-left: 2rem !important; +} + +.my-6 { + margin-top: 2rem !important; + margin-bottom: 2rem !important; +} + +.mxn-6 { + margin-right: -2rem !important; + margin-left: -2rem !important; +} + +.mx-6-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.m-7 { + margin: 2.5rem !important; +} + +.mt-7 { + margin-top: 2.5rem !important; +} + +.mr-7 { + margin-right: 2.5rem !important; +} + +.mb-7 { + margin-bottom: 2.5rem !important; +} + +.ml-7 { + margin-left: 2.5rem !important; +} + +.mx-7 { + margin-right: 2.5rem !important; + margin-left: 2.5rem !important; +} + +.my-7 { + margin-top: 2.5rem !important; + margin-bottom: 2.5rem !important; +} + +.mxn-7 { + margin-right: -2.5rem !important; + margin-left: -2.5rem !important; +} + +.mx-7-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.m-8 { + margin: 3rem !important; +} + +.mt-8 { + margin-top: 3rem !important; +} + +.mr-8 { + margin-right: 3rem !important; +} + +.mb-8 { + margin-bottom: 3rem !important; +} + +.ml-8 { + margin-left: 3rem !important; +} + +.mx-8 { + margin-right: 3rem !important; + margin-left: 3rem !important; +} + +.my-8 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; +} + +.mxn-8 { + margin-right: -3rem !important; + margin-left: -3rem !important; +} + +.mx-8-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.m-9 { + margin: 3.5rem !important; +} + +.mt-9 { + margin-top: 3.5rem !important; +} + +.mr-9 { + margin-right: 3.5rem !important; +} + +.mb-9 { + margin-bottom: 3.5rem !important; +} + +.ml-9 { + margin-left: 3.5rem !important; +} + +.mx-9 { + margin-right: 3.5rem !important; + margin-left: 3.5rem !important; +} + +.my-9 { + margin-top: 3.5rem !important; + margin-bottom: 3.5rem !important; +} + +.mxn-9 { + margin-right: -3.5rem !important; + margin-left: -3.5rem !important; +} + +.mx-9-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.m-10 { + margin: 4rem !important; +} + +.mt-10 { + margin-top: 4rem !important; +} + +.mr-10 { + margin-right: 4rem !important; +} + +.mb-10 { + margin-bottom: 4rem !important; +} + +.ml-10 { + margin-left: 4rem !important; +} + +.mx-10 { + margin-right: 4rem !important; + margin-left: 4rem !important; +} + +.my-10 { + margin-top: 4rem !important; + margin-bottom: 4rem !important; +} + +.mxn-10 { + margin-right: -4rem !important; + margin-left: -4rem !important; +} + +.mx-10-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +@media (min-width: 20rem) { + .m-xs-0 { + margin: 0 !important; + } + .mt-xs-0 { + margin-top: 0 !important; + } + .mr-xs-0 { + margin-right: 0 !important; + } + .mb-xs-0 { + margin-bottom: 0 !important; + } + .ml-xs-0 { + margin-left: 0 !important; + } + .mx-xs-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .my-xs-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .mxn-xs-0 { + margin-right: -0 !important; + margin-left: -0 !important; + } +} +@media (min-width: 20rem) { + .m-xs-1 { + margin: 0.25rem !important; + } + .mt-xs-1 { + margin-top: 0.25rem !important; + } + .mr-xs-1 { + margin-right: 0.25rem !important; + } + .mb-xs-1 { + margin-bottom: 0.25rem !important; + } + .ml-xs-1 { + margin-left: 0.25rem !important; + } + .mx-xs-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .my-xs-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .mxn-xs-1 { + margin-right: -0.25rem !important; + margin-left: -0.25rem !important; + } +} +@media (min-width: 20rem) { + .m-xs-2 { + margin: 0.5rem !important; + } + .mt-xs-2 { + margin-top: 0.5rem !important; + } + .mr-xs-2 { + margin-right: 0.5rem !important; + } + .mb-xs-2 { + margin-bottom: 0.5rem !important; + } + .ml-xs-2 { + margin-left: 0.5rem !important; + } + .mx-xs-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .my-xs-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .mxn-xs-2 { + margin-right: -0.5rem !important; + margin-left: -0.5rem !important; + } +} +@media (min-width: 20rem) { + .m-xs-3 { + margin: 0.75rem !important; + } + .mt-xs-3 { + margin-top: 0.75rem !important; + } + .mr-xs-3 { + margin-right: 0.75rem !important; + } + .mb-xs-3 { + margin-bottom: 0.75rem !important; + } + .ml-xs-3 { + margin-left: 0.75rem !important; + } + .mx-xs-3 { + margin-right: 0.75rem !important; + margin-left: 0.75rem !important; + } + .my-xs-3 { + margin-top: 0.75rem !important; + margin-bottom: 0.75rem !important; + } + .mxn-xs-3 { + margin-right: -0.75rem !important; + margin-left: -0.75rem !important; + } +} +@media (min-width: 20rem) { + .m-xs-4 { + margin: 1rem !important; + } + .mt-xs-4 { + margin-top: 1rem !important; + } + .mr-xs-4 { + margin-right: 1rem !important; + } + .mb-xs-4 { + margin-bottom: 1rem !important; + } + .ml-xs-4 { + margin-left: 1rem !important; + } + .mx-xs-4 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .my-xs-4 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .mxn-xs-4 { + margin-right: -1rem !important; + margin-left: -1rem !important; + } +} +@media (min-width: 20rem) { + .m-xs-5 { + margin: 1.5rem !important; + } + .mt-xs-5 { + margin-top: 1.5rem !important; + } + .mr-xs-5 { + margin-right: 1.5rem !important; + } + .mb-xs-5 { + margin-bottom: 1.5rem !important; + } + .ml-xs-5 { + margin-left: 1.5rem !important; + } + .mx-xs-5 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .my-xs-5 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .mxn-xs-5 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important; + } +} +@media (min-width: 20rem) { + .m-xs-6 { + margin: 2rem !important; + } + .mt-xs-6 { + margin-top: 2rem !important; + } + .mr-xs-6 { + margin-right: 2rem !important; + } + .mb-xs-6 { + margin-bottom: 2rem !important; + } + .ml-xs-6 { + margin-left: 2rem !important; + } + .mx-xs-6 { + margin-right: 2rem !important; + margin-left: 2rem !important; + } + .my-xs-6 { + margin-top: 2rem !important; + margin-bottom: 2rem !important; + } + .mxn-xs-6 { + margin-right: -2rem !important; + margin-left: -2rem !important; + } +} +@media (min-width: 20rem) { + .m-xs-7 { + margin: 2.5rem !important; + } + .mt-xs-7 { + margin-top: 2.5rem !important; + } + .mr-xs-7 { + margin-right: 2.5rem !important; + } + .mb-xs-7 { + margin-bottom: 2.5rem !important; + } + .ml-xs-7 { + margin-left: 2.5rem !important; + } + .mx-xs-7 { + margin-right: 2.5rem !important; + margin-left: 2.5rem !important; + } + .my-xs-7 { + margin-top: 2.5rem !important; + margin-bottom: 2.5rem !important; + } + .mxn-xs-7 { + margin-right: -2.5rem !important; + margin-left: -2.5rem !important; + } +} +@media (min-width: 20rem) { + .m-xs-8 { + margin: 3rem !important; + } + .mt-xs-8 { + margin-top: 3rem !important; + } + .mr-xs-8 { + margin-right: 3rem !important; + } + .mb-xs-8 { + margin-bottom: 3rem !important; + } + .ml-xs-8 { + margin-left: 3rem !important; + } + .mx-xs-8 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .my-xs-8 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .mxn-xs-8 { + margin-right: -3rem !important; + margin-left: -3rem !important; + } +} +@media (min-width: 20rem) { + .m-xs-9 { + margin: 3.5rem !important; + } + .mt-xs-9 { + margin-top: 3.5rem !important; + } + .mr-xs-9 { + margin-right: 3.5rem !important; + } + .mb-xs-9 { + margin-bottom: 3.5rem !important; + } + .ml-xs-9 { + margin-left: 3.5rem !important; + } + .mx-xs-9 { + margin-right: 3.5rem !important; + margin-left: 3.5rem !important; + } + .my-xs-9 { + margin-top: 3.5rem !important; + margin-bottom: 3.5rem !important; + } + .mxn-xs-9 { + margin-right: -3.5rem !important; + margin-left: -3.5rem !important; + } +} +@media (min-width: 20rem) { + .m-xs-10 { + margin: 4rem !important; + } + .mt-xs-10 { + margin-top: 4rem !important; + } + .mr-xs-10 { + margin-right: 4rem !important; + } + .mb-xs-10 { + margin-bottom: 4rem !important; + } + .ml-xs-10 { + margin-left: 4rem !important; + } + .mx-xs-10 { + margin-right: 4rem !important; + margin-left: 4rem !important; + } + .my-xs-10 { + margin-top: 4rem !important; + margin-bottom: 4rem !important; + } + .mxn-xs-10 { + margin-right: -4rem !important; + margin-left: -4rem !important; + } +} +@media (min-width: 31.25rem) { + .m-sm-0 { + margin: 0 !important; + } + .mt-sm-0 { + margin-top: 0 !important; + } + .mr-sm-0 { + margin-right: 0 !important; + } + .mb-sm-0 { + margin-bottom: 0 !important; + } + .ml-sm-0 { + margin-left: 0 !important; + } + .mx-sm-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .my-sm-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .mxn-sm-0 { + margin-right: -0 !important; + margin-left: -0 !important; + } +} +@media (min-width: 31.25rem) { + .m-sm-1 { + margin: 0.25rem !important; + } + .mt-sm-1 { + margin-top: 0.25rem !important; + } + .mr-sm-1 { + margin-right: 0.25rem !important; + } + .mb-sm-1 { + margin-bottom: 0.25rem !important; + } + .ml-sm-1 { + margin-left: 0.25rem !important; + } + .mx-sm-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .my-sm-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .mxn-sm-1 { + margin-right: -0.25rem !important; + margin-left: -0.25rem !important; + } +} +@media (min-width: 31.25rem) { + .m-sm-2 { + margin: 0.5rem !important; + } + .mt-sm-2 { + margin-top: 0.5rem !important; + } + .mr-sm-2 { + margin-right: 0.5rem !important; + } + .mb-sm-2 { + margin-bottom: 0.5rem !important; + } + .ml-sm-2 { + margin-left: 0.5rem !important; + } + .mx-sm-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .my-sm-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .mxn-sm-2 { + margin-right: -0.5rem !important; + margin-left: -0.5rem !important; + } +} +@media (min-width: 31.25rem) { + .m-sm-3 { + margin: 0.75rem !important; + } + .mt-sm-3 { + margin-top: 0.75rem !important; + } + .mr-sm-3 { + margin-right: 0.75rem !important; + } + .mb-sm-3 { + margin-bottom: 0.75rem !important; + } + .ml-sm-3 { + margin-left: 0.75rem !important; + } + .mx-sm-3 { + margin-right: 0.75rem !important; + margin-left: 0.75rem !important; + } + .my-sm-3 { + margin-top: 0.75rem !important; + margin-bottom: 0.75rem !important; + } + .mxn-sm-3 { + margin-right: -0.75rem !important; + margin-left: -0.75rem !important; + } +} +@media (min-width: 31.25rem) { + .m-sm-4 { + margin: 1rem !important; + } + .mt-sm-4 { + margin-top: 1rem !important; + } + .mr-sm-4 { + margin-right: 1rem !important; + } + .mb-sm-4 { + margin-bottom: 1rem !important; + } + .ml-sm-4 { + margin-left: 1rem !important; + } + .mx-sm-4 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .my-sm-4 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .mxn-sm-4 { + margin-right: -1rem !important; + margin-left: -1rem !important; + } +} +@media (min-width: 31.25rem) { + .m-sm-5 { + margin: 1.5rem !important; + } + .mt-sm-5 { + margin-top: 1.5rem !important; + } + .mr-sm-5 { + margin-right: 1.5rem !important; + } + .mb-sm-5 { + margin-bottom: 1.5rem !important; + } + .ml-sm-5 { + margin-left: 1.5rem !important; + } + .mx-sm-5 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .my-sm-5 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .mxn-sm-5 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important; + } +} +@media (min-width: 31.25rem) { + .m-sm-6 { + margin: 2rem !important; + } + .mt-sm-6 { + margin-top: 2rem !important; + } + .mr-sm-6 { + margin-right: 2rem !important; + } + .mb-sm-6 { + margin-bottom: 2rem !important; + } + .ml-sm-6 { + margin-left: 2rem !important; + } + .mx-sm-6 { + margin-right: 2rem !important; + margin-left: 2rem !important; + } + .my-sm-6 { + margin-top: 2rem !important; + margin-bottom: 2rem !important; + } + .mxn-sm-6 { + margin-right: -2rem !important; + margin-left: -2rem !important; + } +} +@media (min-width: 31.25rem) { + .m-sm-7 { + margin: 2.5rem !important; + } + .mt-sm-7 { + margin-top: 2.5rem !important; + } + .mr-sm-7 { + margin-right: 2.5rem !important; + } + .mb-sm-7 { + margin-bottom: 2.5rem !important; + } + .ml-sm-7 { + margin-left: 2.5rem !important; + } + .mx-sm-7 { + margin-right: 2.5rem !important; + margin-left: 2.5rem !important; + } + .my-sm-7 { + margin-top: 2.5rem !important; + margin-bottom: 2.5rem !important; + } + .mxn-sm-7 { + margin-right: -2.5rem !important; + margin-left: -2.5rem !important; + } +} +@media (min-width: 31.25rem) { + .m-sm-8 { + margin: 3rem !important; + } + .mt-sm-8 { + margin-top: 3rem !important; + } + .mr-sm-8 { + margin-right: 3rem !important; + } + .mb-sm-8 { + margin-bottom: 3rem !important; + } + .ml-sm-8 { + margin-left: 3rem !important; + } + .mx-sm-8 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .my-sm-8 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .mxn-sm-8 { + margin-right: -3rem !important; + margin-left: -3rem !important; + } +} +@media (min-width: 31.25rem) { + .m-sm-9 { + margin: 3.5rem !important; + } + .mt-sm-9 { + margin-top: 3.5rem !important; + } + .mr-sm-9 { + margin-right: 3.5rem !important; + } + .mb-sm-9 { + margin-bottom: 3.5rem !important; + } + .ml-sm-9 { + margin-left: 3.5rem !important; + } + .mx-sm-9 { + margin-right: 3.5rem !important; + margin-left: 3.5rem !important; + } + .my-sm-9 { + margin-top: 3.5rem !important; + margin-bottom: 3.5rem !important; + } + .mxn-sm-9 { + margin-right: -3.5rem !important; + margin-left: -3.5rem !important; + } +} +@media (min-width: 31.25rem) { + .m-sm-10 { + margin: 4rem !important; + } + .mt-sm-10 { + margin-top: 4rem !important; + } + .mr-sm-10 { + margin-right: 4rem !important; + } + .mb-sm-10 { + margin-bottom: 4rem !important; + } + .ml-sm-10 { + margin-left: 4rem !important; + } + .mx-sm-10 { + margin-right: 4rem !important; + margin-left: 4rem !important; + } + .my-sm-10 { + margin-top: 4rem !important; + margin-bottom: 4rem !important; + } + .mxn-sm-10 { + margin-right: -4rem !important; + margin-left: -4rem !important; + } +} +@media (min-width: 50rem) { + .m-md-0 { + margin: 0 !important; + } + .mt-md-0 { + margin-top: 0 !important; + } + .mr-md-0 { + margin-right: 0 !important; + } + .mb-md-0 { + margin-bottom: 0 !important; + } + .ml-md-0 { + margin-left: 0 !important; + } + .mx-md-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .my-md-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .mxn-md-0 { + margin-right: -0 !important; + margin-left: -0 !important; + } +} +@media (min-width: 50rem) { + .m-md-1 { + margin: 0.25rem !important; + } + .mt-md-1 { + margin-top: 0.25rem !important; + } + .mr-md-1 { + margin-right: 0.25rem !important; + } + .mb-md-1 { + margin-bottom: 0.25rem !important; + } + .ml-md-1 { + margin-left: 0.25rem !important; + } + .mx-md-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .my-md-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .mxn-md-1 { + margin-right: -0.25rem !important; + margin-left: -0.25rem !important; + } +} +@media (min-width: 50rem) { + .m-md-2 { + margin: 0.5rem !important; + } + .mt-md-2 { + margin-top: 0.5rem !important; + } + .mr-md-2 { + margin-right: 0.5rem !important; + } + .mb-md-2 { + margin-bottom: 0.5rem !important; + } + .ml-md-2 { + margin-left: 0.5rem !important; + } + .mx-md-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .my-md-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .mxn-md-2 { + margin-right: -0.5rem !important; + margin-left: -0.5rem !important; + } +} +@media (min-width: 50rem) { + .m-md-3 { + margin: 0.75rem !important; + } + .mt-md-3 { + margin-top: 0.75rem !important; + } + .mr-md-3 { + margin-right: 0.75rem !important; + } + .mb-md-3 { + margin-bottom: 0.75rem !important; + } + .ml-md-3 { + margin-left: 0.75rem !important; + } + .mx-md-3 { + margin-right: 0.75rem !important; + margin-left: 0.75rem !important; + } + .my-md-3 { + margin-top: 0.75rem !important; + margin-bottom: 0.75rem !important; + } + .mxn-md-3 { + margin-right: -0.75rem !important; + margin-left: -0.75rem !important; + } +} +@media (min-width: 50rem) { + .m-md-4 { + margin: 1rem !important; + } + .mt-md-4 { + margin-top: 1rem !important; + } + .mr-md-4 { + margin-right: 1rem !important; + } + .mb-md-4 { + margin-bottom: 1rem !important; + } + .ml-md-4 { + margin-left: 1rem !important; + } + .mx-md-4 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .my-md-4 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .mxn-md-4 { + margin-right: -1rem !important; + margin-left: -1rem !important; + } +} +@media (min-width: 50rem) { + .m-md-5 { + margin: 1.5rem !important; + } + .mt-md-5 { + margin-top: 1.5rem !important; + } + .mr-md-5 { + margin-right: 1.5rem !important; + } + .mb-md-5 { + margin-bottom: 1.5rem !important; + } + .ml-md-5 { + margin-left: 1.5rem !important; + } + .mx-md-5 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .my-md-5 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .mxn-md-5 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important; + } +} +@media (min-width: 50rem) { + .m-md-6 { + margin: 2rem !important; + } + .mt-md-6 { + margin-top: 2rem !important; + } + .mr-md-6 { + margin-right: 2rem !important; + } + .mb-md-6 { + margin-bottom: 2rem !important; + } + .ml-md-6 { + margin-left: 2rem !important; + } + .mx-md-6 { + margin-right: 2rem !important; + margin-left: 2rem !important; + } + .my-md-6 { + margin-top: 2rem !important; + margin-bottom: 2rem !important; + } + .mxn-md-6 { + margin-right: -2rem !important; + margin-left: -2rem !important; + } +} +@media (min-width: 50rem) { + .m-md-7 { + margin: 2.5rem !important; + } + .mt-md-7 { + margin-top: 2.5rem !important; + } + .mr-md-7 { + margin-right: 2.5rem !important; + } + .mb-md-7 { + margin-bottom: 2.5rem !important; + } + .ml-md-7 { + margin-left: 2.5rem !important; + } + .mx-md-7 { + margin-right: 2.5rem !important; + margin-left: 2.5rem !important; + } + .my-md-7 { + margin-top: 2.5rem !important; + margin-bottom: 2.5rem !important; + } + .mxn-md-7 { + margin-right: -2.5rem !important; + margin-left: -2.5rem !important; + } +} +@media (min-width: 50rem) { + .m-md-8 { + margin: 3rem !important; + } + .mt-md-8 { + margin-top: 3rem !important; + } + .mr-md-8 { + margin-right: 3rem !important; + } + .mb-md-8 { + margin-bottom: 3rem !important; + } + .ml-md-8 { + margin-left: 3rem !important; + } + .mx-md-8 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .my-md-8 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .mxn-md-8 { + margin-right: -3rem !important; + margin-left: -3rem !important; + } +} +@media (min-width: 50rem) { + .m-md-9 { + margin: 3.5rem !important; + } + .mt-md-9 { + margin-top: 3.5rem !important; + } + .mr-md-9 { + margin-right: 3.5rem !important; + } + .mb-md-9 { + margin-bottom: 3.5rem !important; + } + .ml-md-9 { + margin-left: 3.5rem !important; + } + .mx-md-9 { + margin-right: 3.5rem !important; + margin-left: 3.5rem !important; + } + .my-md-9 { + margin-top: 3.5rem !important; + margin-bottom: 3.5rem !important; + } + .mxn-md-9 { + margin-right: -3.5rem !important; + margin-left: -3.5rem !important; + } +} +@media (min-width: 50rem) { + .m-md-10 { + margin: 4rem !important; + } + .mt-md-10 { + margin-top: 4rem !important; + } + .mr-md-10 { + margin-right: 4rem !important; + } + .mb-md-10 { + margin-bottom: 4rem !important; + } + .ml-md-10 { + margin-left: 4rem !important; + } + .mx-md-10 { + margin-right: 4rem !important; + margin-left: 4rem !important; + } + .my-md-10 { + margin-top: 4rem !important; + margin-bottom: 4rem !important; + } + .mxn-md-10 { + margin-right: -4rem !important; + margin-left: -4rem !important; + } +} +@media (min-width: 66.5rem) { + .m-lg-0 { + margin: 0 !important; + } + .mt-lg-0 { + margin-top: 0 !important; + } + .mr-lg-0 { + margin-right: 0 !important; + } + .mb-lg-0 { + margin-bottom: 0 !important; + } + .ml-lg-0 { + margin-left: 0 !important; + } + .mx-lg-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .my-lg-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .mxn-lg-0 { + margin-right: -0 !important; + margin-left: -0 !important; + } +} +@media (min-width: 66.5rem) { + .m-lg-1 { + margin: 0.25rem !important; + } + .mt-lg-1 { + margin-top: 0.25rem !important; + } + .mr-lg-1 { + margin-right: 0.25rem !important; + } + .mb-lg-1 { + margin-bottom: 0.25rem !important; + } + .ml-lg-1 { + margin-left: 0.25rem !important; + } + .mx-lg-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .my-lg-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .mxn-lg-1 { + margin-right: -0.25rem !important; + margin-left: -0.25rem !important; + } +} +@media (min-width: 66.5rem) { + .m-lg-2 { + margin: 0.5rem !important; + } + .mt-lg-2 { + margin-top: 0.5rem !important; + } + .mr-lg-2 { + margin-right: 0.5rem !important; + } + .mb-lg-2 { + margin-bottom: 0.5rem !important; + } + .ml-lg-2 { + margin-left: 0.5rem !important; + } + .mx-lg-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .my-lg-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .mxn-lg-2 { + margin-right: -0.5rem !important; + margin-left: -0.5rem !important; + } +} +@media (min-width: 66.5rem) { + .m-lg-3 { + margin: 0.75rem !important; + } + .mt-lg-3 { + margin-top: 0.75rem !important; + } + .mr-lg-3 { + margin-right: 0.75rem !important; + } + .mb-lg-3 { + margin-bottom: 0.75rem !important; + } + .ml-lg-3 { + margin-left: 0.75rem !important; + } + .mx-lg-3 { + margin-right: 0.75rem !important; + margin-left: 0.75rem !important; + } + .my-lg-3 { + margin-top: 0.75rem !important; + margin-bottom: 0.75rem !important; + } + .mxn-lg-3 { + margin-right: -0.75rem !important; + margin-left: -0.75rem !important; + } +} +@media (min-width: 66.5rem) { + .m-lg-4 { + margin: 1rem !important; + } + .mt-lg-4 { + margin-top: 1rem !important; + } + .mr-lg-4 { + margin-right: 1rem !important; + } + .mb-lg-4 { + margin-bottom: 1rem !important; + } + .ml-lg-4 { + margin-left: 1rem !important; + } + .mx-lg-4 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .my-lg-4 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .mxn-lg-4 { + margin-right: -1rem !important; + margin-left: -1rem !important; + } +} +@media (min-width: 66.5rem) { + .m-lg-5 { + margin: 1.5rem !important; + } + .mt-lg-5 { + margin-top: 1.5rem !important; + } + .mr-lg-5 { + margin-right: 1.5rem !important; + } + .mb-lg-5 { + margin-bottom: 1.5rem !important; + } + .ml-lg-5 { + margin-left: 1.5rem !important; + } + .mx-lg-5 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .my-lg-5 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .mxn-lg-5 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important; + } +} +@media (min-width: 66.5rem) { + .m-lg-6 { + margin: 2rem !important; + } + .mt-lg-6 { + margin-top: 2rem !important; + } + .mr-lg-6 { + margin-right: 2rem !important; + } + .mb-lg-6 { + margin-bottom: 2rem !important; + } + .ml-lg-6 { + margin-left: 2rem !important; + } + .mx-lg-6 { + margin-right: 2rem !important; + margin-left: 2rem !important; + } + .my-lg-6 { + margin-top: 2rem !important; + margin-bottom: 2rem !important; + } + .mxn-lg-6 { + margin-right: -2rem !important; + margin-left: -2rem !important; + } +} +@media (min-width: 66.5rem) { + .m-lg-7 { + margin: 2.5rem !important; + } + .mt-lg-7 { + margin-top: 2.5rem !important; + } + .mr-lg-7 { + margin-right: 2.5rem !important; + } + .mb-lg-7 { + margin-bottom: 2.5rem !important; + } + .ml-lg-7 { + margin-left: 2.5rem !important; + } + .mx-lg-7 { + margin-right: 2.5rem !important; + margin-left: 2.5rem !important; + } + .my-lg-7 { + margin-top: 2.5rem !important; + margin-bottom: 2.5rem !important; + } + .mxn-lg-7 { + margin-right: -2.5rem !important; + margin-left: -2.5rem !important; + } +} +@media (min-width: 66.5rem) { + .m-lg-8 { + margin: 3rem !important; + } + .mt-lg-8 { + margin-top: 3rem !important; + } + .mr-lg-8 { + margin-right: 3rem !important; + } + .mb-lg-8 { + margin-bottom: 3rem !important; + } + .ml-lg-8 { + margin-left: 3rem !important; + } + .mx-lg-8 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .my-lg-8 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .mxn-lg-8 { + margin-right: -3rem !important; + margin-left: -3rem !important; + } +} +@media (min-width: 66.5rem) { + .m-lg-9 { + margin: 3.5rem !important; + } + .mt-lg-9 { + margin-top: 3.5rem !important; + } + .mr-lg-9 { + margin-right: 3.5rem !important; + } + .mb-lg-9 { + margin-bottom: 3.5rem !important; + } + .ml-lg-9 { + margin-left: 3.5rem !important; + } + .mx-lg-9 { + margin-right: 3.5rem !important; + margin-left: 3.5rem !important; + } + .my-lg-9 { + margin-top: 3.5rem !important; + margin-bottom: 3.5rem !important; + } + .mxn-lg-9 { + margin-right: -3.5rem !important; + margin-left: -3.5rem !important; + } +} +@media (min-width: 66.5rem) { + .m-lg-10 { + margin: 4rem !important; + } + .mt-lg-10 { + margin-top: 4rem !important; + } + .mr-lg-10 { + margin-right: 4rem !important; + } + .mb-lg-10 { + margin-bottom: 4rem !important; + } + .ml-lg-10 { + margin-left: 4rem !important; + } + .mx-lg-10 { + margin-right: 4rem !important; + margin-left: 4rem !important; + } + .my-lg-10 { + margin-top: 4rem !important; + margin-bottom: 4rem !important; + } + .mxn-lg-10 { + margin-right: -4rem !important; + margin-left: -4rem !important; + } +} +@media (min-width: 87.5rem) { + .m-xl-0 { + margin: 0 !important; + } + .mt-xl-0 { + margin-top: 0 !important; + } + .mr-xl-0 { + margin-right: 0 !important; + } + .mb-xl-0 { + margin-bottom: 0 !important; + } + .ml-xl-0 { + margin-left: 0 !important; + } + .mx-xl-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .my-xl-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .mxn-xl-0 { + margin-right: -0 !important; + margin-left: -0 !important; + } +} +@media (min-width: 87.5rem) { + .m-xl-1 { + margin: 0.25rem !important; + } + .mt-xl-1 { + margin-top: 0.25rem !important; + } + .mr-xl-1 { + margin-right: 0.25rem !important; + } + .mb-xl-1 { + margin-bottom: 0.25rem !important; + } + .ml-xl-1 { + margin-left: 0.25rem !important; + } + .mx-xl-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .my-xl-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .mxn-xl-1 { + margin-right: -0.25rem !important; + margin-left: -0.25rem !important; + } +} +@media (min-width: 87.5rem) { + .m-xl-2 { + margin: 0.5rem !important; + } + .mt-xl-2 { + margin-top: 0.5rem !important; + } + .mr-xl-2 { + margin-right: 0.5rem !important; + } + .mb-xl-2 { + margin-bottom: 0.5rem !important; + } + .ml-xl-2 { + margin-left: 0.5rem !important; + } + .mx-xl-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .my-xl-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .mxn-xl-2 { + margin-right: -0.5rem !important; + margin-left: -0.5rem !important; + } +} +@media (min-width: 87.5rem) { + .m-xl-3 { + margin: 0.75rem !important; + } + .mt-xl-3 { + margin-top: 0.75rem !important; + } + .mr-xl-3 { + margin-right: 0.75rem !important; + } + .mb-xl-3 { + margin-bottom: 0.75rem !important; + } + .ml-xl-3 { + margin-left: 0.75rem !important; + } + .mx-xl-3 { + margin-right: 0.75rem !important; + margin-left: 0.75rem !important; + } + .my-xl-3 { + margin-top: 0.75rem !important; + margin-bottom: 0.75rem !important; + } + .mxn-xl-3 { + margin-right: -0.75rem !important; + margin-left: -0.75rem !important; + } +} +@media (min-width: 87.5rem) { + .m-xl-4 { + margin: 1rem !important; + } + .mt-xl-4 { + margin-top: 1rem !important; + } + .mr-xl-4 { + margin-right: 1rem !important; + } + .mb-xl-4 { + margin-bottom: 1rem !important; + } + .ml-xl-4 { + margin-left: 1rem !important; + } + .mx-xl-4 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .my-xl-4 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .mxn-xl-4 { + margin-right: -1rem !important; + margin-left: -1rem !important; + } +} +@media (min-width: 87.5rem) { + .m-xl-5 { + margin: 1.5rem !important; + } + .mt-xl-5 { + margin-top: 1.5rem !important; + } + .mr-xl-5 { + margin-right: 1.5rem !important; + } + .mb-xl-5 { + margin-bottom: 1.5rem !important; + } + .ml-xl-5 { + margin-left: 1.5rem !important; + } + .mx-xl-5 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .my-xl-5 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .mxn-xl-5 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important; + } +} +@media (min-width: 87.5rem) { + .m-xl-6 { + margin: 2rem !important; + } + .mt-xl-6 { + margin-top: 2rem !important; + } + .mr-xl-6 { + margin-right: 2rem !important; + } + .mb-xl-6 { + margin-bottom: 2rem !important; + } + .ml-xl-6 { + margin-left: 2rem !important; + } + .mx-xl-6 { + margin-right: 2rem !important; + margin-left: 2rem !important; + } + .my-xl-6 { + margin-top: 2rem !important; + margin-bottom: 2rem !important; + } + .mxn-xl-6 { + margin-right: -2rem !important; + margin-left: -2rem !important; + } +} +@media (min-width: 87.5rem) { + .m-xl-7 { + margin: 2.5rem !important; + } + .mt-xl-7 { + margin-top: 2.5rem !important; + } + .mr-xl-7 { + margin-right: 2.5rem !important; + } + .mb-xl-7 { + margin-bottom: 2.5rem !important; + } + .ml-xl-7 { + margin-left: 2.5rem !important; + } + .mx-xl-7 { + margin-right: 2.5rem !important; + margin-left: 2.5rem !important; + } + .my-xl-7 { + margin-top: 2.5rem !important; + margin-bottom: 2.5rem !important; + } + .mxn-xl-7 { + margin-right: -2.5rem !important; + margin-left: -2.5rem !important; + } +} +@media (min-width: 87.5rem) { + .m-xl-8 { + margin: 3rem !important; + } + .mt-xl-8 { + margin-top: 3rem !important; + } + .mr-xl-8 { + margin-right: 3rem !important; + } + .mb-xl-8 { + margin-bottom: 3rem !important; + } + .ml-xl-8 { + margin-left: 3rem !important; + } + .mx-xl-8 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .my-xl-8 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .mxn-xl-8 { + margin-right: -3rem !important; + margin-left: -3rem !important; + } +} +@media (min-width: 87.5rem) { + .m-xl-9 { + margin: 3.5rem !important; + } + .mt-xl-9 { + margin-top: 3.5rem !important; + } + .mr-xl-9 { + margin-right: 3.5rem !important; + } + .mb-xl-9 { + margin-bottom: 3.5rem !important; + } + .ml-xl-9 { + margin-left: 3.5rem !important; + } + .mx-xl-9 { + margin-right: 3.5rem !important; + margin-left: 3.5rem !important; + } + .my-xl-9 { + margin-top: 3.5rem !important; + margin-bottom: 3.5rem !important; + } + .mxn-xl-9 { + margin-right: -3.5rem !important; + margin-left: -3.5rem !important; + } +} +@media (min-width: 87.5rem) { + .m-xl-10 { + margin: 4rem !important; + } + .mt-xl-10 { + margin-top: 4rem !important; + } + .mr-xl-10 { + margin-right: 4rem !important; + } + .mb-xl-10 { + margin-bottom: 4rem !important; + } + .ml-xl-10 { + margin-left: 4rem !important; + } + .mx-xl-10 { + margin-right: 4rem !important; + margin-left: 4rem !important; + } + .my-xl-10 { + margin-top: 4rem !important; + margin-bottom: 4rem !important; + } + .mxn-xl-10 { + margin-right: -4rem !important; + margin-left: -4rem !important; + } +} +.p-0 { + padding: 0 !important; +} + +.pt-0 { + padding-top: 0 !important; +} + +.pr-0 { + padding-right: 0 !important; +} + +.pb-0 { + padding-bottom: 0 !important; +} + +.pl-0 { + padding-left: 0 !important; +} + +.px-0 { + padding-right: 0 !important; + padding-left: 0 !important; +} + +.py-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; +} + +.p-1 { + padding: 0.25rem !important; +} + +.pt-1 { + padding-top: 0.25rem !important; +} + +.pr-1 { + padding-right: 0.25rem !important; +} + +.pb-1 { + padding-bottom: 0.25rem !important; +} + +.pl-1 { + padding-left: 0.25rem !important; +} + +.px-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; +} + +.py-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; +} + +.p-2 { + padding: 0.5rem !important; +} + +.pt-2 { + padding-top: 0.5rem !important; +} + +.pr-2 { + padding-right: 0.5rem !important; +} + +.pb-2 { + padding-bottom: 0.5rem !important; +} + +.pl-2 { + padding-left: 0.5rem !important; +} + +.px-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; +} + +.py-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; +} + +.p-3 { + padding: 0.75rem !important; +} + +.pt-3 { + padding-top: 0.75rem !important; +} + +.pr-3 { + padding-right: 0.75rem !important; +} + +.pb-3 { + padding-bottom: 0.75rem !important; +} + +.pl-3 { + padding-left: 0.75rem !important; +} + +.px-3 { + padding-right: 0.75rem !important; + padding-left: 0.75rem !important; +} + +.py-3 { + padding-top: 0.75rem !important; + padding-bottom: 0.75rem !important; +} + +.p-4 { + padding: 1rem !important; +} + +.pt-4 { + padding-top: 1rem !important; +} + +.pr-4 { + padding-right: 1rem !important; +} + +.pb-4 { + padding-bottom: 1rem !important; +} + +.pl-4 { + padding-left: 1rem !important; +} + +.px-4 { + padding-right: 1rem !important; + padding-left: 1rem !important; +} + +.py-4 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; +} + +.p-5 { + padding: 1.5rem !important; +} + +.pt-5 { + padding-top: 1.5rem !important; +} + +.pr-5 { + padding-right: 1.5rem !important; +} + +.pb-5 { + padding-bottom: 1.5rem !important; +} + +.pl-5 { + padding-left: 1.5rem !important; +} + +.px-5 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; +} + +.py-5 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; +} + +.p-6 { + padding: 2rem !important; +} + +.pt-6 { + padding-top: 2rem !important; +} + +.pr-6 { + padding-right: 2rem !important; +} + +.pb-6 { + padding-bottom: 2rem !important; +} + +.pl-6 { + padding-left: 2rem !important; +} + +.px-6 { + padding-right: 2rem !important; + padding-left: 2rem !important; +} + +.py-6 { + padding-top: 2rem !important; + padding-bottom: 2rem !important; +} + +.p-7 { + padding: 2.5rem !important; +} + +.pt-7 { + padding-top: 2.5rem !important; +} + +.pr-7 { + padding-right: 2.5rem !important; +} + +.pb-7 { + padding-bottom: 2.5rem !important; +} + +.pl-7 { + padding-left: 2.5rem !important; +} + +.px-7 { + padding-right: 2.5rem !important; + padding-left: 2.5rem !important; +} + +.py-7 { + padding-top: 2.5rem !important; + padding-bottom: 2.5rem !important; +} + +.p-8 { + padding: 3rem !important; +} + +.pt-8 { + padding-top: 3rem !important; +} + +.pr-8 { + padding-right: 3rem !important; +} + +.pb-8 { + padding-bottom: 3rem !important; +} + +.pl-8 { + padding-left: 3rem !important; +} + +.px-8 { + padding-right: 3rem !important; + padding-left: 3rem !important; +} + +.py-8 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; +} + +.p-9 { + padding: 3.5rem !important; +} + +.pt-9 { + padding-top: 3.5rem !important; +} + +.pr-9 { + padding-right: 3.5rem !important; +} + +.pb-9 { + padding-bottom: 3.5rem !important; +} + +.pl-9 { + padding-left: 3.5rem !important; +} + +.px-9 { + padding-right: 3.5rem !important; + padding-left: 3.5rem !important; +} + +.py-9 { + padding-top: 3.5rem !important; + padding-bottom: 3.5rem !important; +} + +.p-10 { + padding: 4rem !important; +} + +.pt-10 { + padding-top: 4rem !important; +} + +.pr-10 { + padding-right: 4rem !important; +} + +.pb-10 { + padding-bottom: 4rem !important; +} + +.pl-10 { + padding-left: 4rem !important; +} + +.px-10 { + padding-right: 4rem !important; + padding-left: 4rem !important; +} + +.py-10 { + padding-top: 4rem !important; + padding-bottom: 4rem !important; +} + +@media (min-width: 20rem) { + .p-xs-0 { + padding: 0 !important; + } + .pt-xs-0 { + padding-top: 0 !important; + } + .pr-xs-0 { + padding-right: 0 !important; + } + .pb-xs-0 { + padding-bottom: 0 !important; + } + .pl-xs-0 { + padding-left: 0 !important; + } + .px-xs-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .py-xs-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .p-xs-1 { + padding: 0.25rem !important; + } + .pt-xs-1 { + padding-top: 0.25rem !important; + } + .pr-xs-1 { + padding-right: 0.25rem !important; + } + .pb-xs-1 { + padding-bottom: 0.25rem !important; + } + .pl-xs-1 { + padding-left: 0.25rem !important; + } + .px-xs-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .py-xs-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .p-xs-2 { + padding: 0.5rem !important; + } + .pt-xs-2 { + padding-top: 0.5rem !important; + } + .pr-xs-2 { + padding-right: 0.5rem !important; + } + .pb-xs-2 { + padding-bottom: 0.5rem !important; + } + .pl-xs-2 { + padding-left: 0.5rem !important; + } + .px-xs-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .py-xs-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .p-xs-3 { + padding: 0.75rem !important; + } + .pt-xs-3 { + padding-top: 0.75rem !important; + } + .pr-xs-3 { + padding-right: 0.75rem !important; + } + .pb-xs-3 { + padding-bottom: 0.75rem !important; + } + .pl-xs-3 { + padding-left: 0.75rem !important; + } + .px-xs-3 { + padding-right: 0.75rem !important; + padding-left: 0.75rem !important; + } + .py-xs-3 { + padding-top: 0.75rem !important; + padding-bottom: 0.75rem !important; + } + .p-xs-4 { + padding: 1rem !important; + } + .pt-xs-4 { + padding-top: 1rem !important; + } + .pr-xs-4 { + padding-right: 1rem !important; + } + .pb-xs-4 { + padding-bottom: 1rem !important; + } + .pl-xs-4 { + padding-left: 1rem !important; + } + .px-xs-4 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .py-xs-4 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .p-xs-5 { + padding: 1.5rem !important; + } + .pt-xs-5 { + padding-top: 1.5rem !important; + } + .pr-xs-5 { + padding-right: 1.5rem !important; + } + .pb-xs-5 { + padding-bottom: 1.5rem !important; + } + .pl-xs-5 { + padding-left: 1.5rem !important; + } + .px-xs-5 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .py-xs-5 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .p-xs-6 { + padding: 2rem !important; + } + .pt-xs-6 { + padding-top: 2rem !important; + } + .pr-xs-6 { + padding-right: 2rem !important; + } + .pb-xs-6 { + padding-bottom: 2rem !important; + } + .pl-xs-6 { + padding-left: 2rem !important; + } + .px-xs-6 { + padding-right: 2rem !important; + padding-left: 2rem !important; + } + .py-xs-6 { + padding-top: 2rem !important; + padding-bottom: 2rem !important; + } + .p-xs-7 { + padding: 2.5rem !important; + } + .pt-xs-7 { + padding-top: 2.5rem !important; + } + .pr-xs-7 { + padding-right: 2.5rem !important; + } + .pb-xs-7 { + padding-bottom: 2.5rem !important; + } + .pl-xs-7 { + padding-left: 2.5rem !important; + } + .px-xs-7 { + padding-right: 2.5rem !important; + padding-left: 2.5rem !important; + } + .py-xs-7 { + padding-top: 2.5rem !important; + padding-bottom: 2.5rem !important; + } + .p-xs-8 { + padding: 3rem !important; + } + .pt-xs-8 { + padding-top: 3rem !important; + } + .pr-xs-8 { + padding-right: 3rem !important; + } + .pb-xs-8 { + padding-bottom: 3rem !important; + } + .pl-xs-8 { + padding-left: 3rem !important; + } + .px-xs-8 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-xs-8 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .p-xs-9 { + padding: 3.5rem !important; + } + .pt-xs-9 { + padding-top: 3.5rem !important; + } + .pr-xs-9 { + padding-right: 3.5rem !important; + } + .pb-xs-9 { + padding-bottom: 3.5rem !important; + } + .pl-xs-9 { + padding-left: 3.5rem !important; + } + .px-xs-9 { + padding-right: 3.5rem !important; + padding-left: 3.5rem !important; + } + .py-xs-9 { + padding-top: 3.5rem !important; + padding-bottom: 3.5rem !important; + } + .p-xs-10 { + padding: 4rem !important; + } + .pt-xs-10 { + padding-top: 4rem !important; + } + .pr-xs-10 { + padding-right: 4rem !important; + } + .pb-xs-10 { + padding-bottom: 4rem !important; + } + .pl-xs-10 { + padding-left: 4rem !important; + } + .px-xs-10 { + padding-right: 4rem !important; + padding-left: 4rem !important; + } + .py-xs-10 { + padding-top: 4rem !important; + padding-bottom: 4rem !important; + } +} +@media (min-width: 31.25rem) { + .p-sm-0 { + padding: 0 !important; + } + .pt-sm-0 { + padding-top: 0 !important; + } + .pr-sm-0 { + padding-right: 0 !important; + } + .pb-sm-0 { + padding-bottom: 0 !important; + } + .pl-sm-0 { + padding-left: 0 !important; + } + .px-sm-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .py-sm-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .p-sm-1 { + padding: 0.25rem !important; + } + .pt-sm-1 { + padding-top: 0.25rem !important; + } + .pr-sm-1 { + padding-right: 0.25rem !important; + } + .pb-sm-1 { + padding-bottom: 0.25rem !important; + } + .pl-sm-1 { + padding-left: 0.25rem !important; + } + .px-sm-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .py-sm-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .p-sm-2 { + padding: 0.5rem !important; + } + .pt-sm-2 { + padding-top: 0.5rem !important; + } + .pr-sm-2 { + padding-right: 0.5rem !important; + } + .pb-sm-2 { + padding-bottom: 0.5rem !important; + } + .pl-sm-2 { + padding-left: 0.5rem !important; + } + .px-sm-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .py-sm-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .p-sm-3 { + padding: 0.75rem !important; + } + .pt-sm-3 { + padding-top: 0.75rem !important; + } + .pr-sm-3 { + padding-right: 0.75rem !important; + } + .pb-sm-3 { + padding-bottom: 0.75rem !important; + } + .pl-sm-3 { + padding-left: 0.75rem !important; + } + .px-sm-3 { + padding-right: 0.75rem !important; + padding-left: 0.75rem !important; + } + .py-sm-3 { + padding-top: 0.75rem !important; + padding-bottom: 0.75rem !important; + } + .p-sm-4 { + padding: 1rem !important; + } + .pt-sm-4 { + padding-top: 1rem !important; + } + .pr-sm-4 { + padding-right: 1rem !important; + } + .pb-sm-4 { + padding-bottom: 1rem !important; + } + .pl-sm-4 { + padding-left: 1rem !important; + } + .px-sm-4 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .py-sm-4 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .p-sm-5 { + padding: 1.5rem !important; + } + .pt-sm-5 { + padding-top: 1.5rem !important; + } + .pr-sm-5 { + padding-right: 1.5rem !important; + } + .pb-sm-5 { + padding-bottom: 1.5rem !important; + } + .pl-sm-5 { + padding-left: 1.5rem !important; + } + .px-sm-5 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .py-sm-5 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .p-sm-6 { + padding: 2rem !important; + } + .pt-sm-6 { + padding-top: 2rem !important; + } + .pr-sm-6 { + padding-right: 2rem !important; + } + .pb-sm-6 { + padding-bottom: 2rem !important; + } + .pl-sm-6 { + padding-left: 2rem !important; + } + .px-sm-6 { + padding-right: 2rem !important; + padding-left: 2rem !important; + } + .py-sm-6 { + padding-top: 2rem !important; + padding-bottom: 2rem !important; + } + .p-sm-7 { + padding: 2.5rem !important; + } + .pt-sm-7 { + padding-top: 2.5rem !important; + } + .pr-sm-7 { + padding-right: 2.5rem !important; + } + .pb-sm-7 { + padding-bottom: 2.5rem !important; + } + .pl-sm-7 { + padding-left: 2.5rem !important; + } + .px-sm-7 { + padding-right: 2.5rem !important; + padding-left: 2.5rem !important; + } + .py-sm-7 { + padding-top: 2.5rem !important; + padding-bottom: 2.5rem !important; + } + .p-sm-8 { + padding: 3rem !important; + } + .pt-sm-8 { + padding-top: 3rem !important; + } + .pr-sm-8 { + padding-right: 3rem !important; + } + .pb-sm-8 { + padding-bottom: 3rem !important; + } + .pl-sm-8 { + padding-left: 3rem !important; + } + .px-sm-8 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-sm-8 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .p-sm-9 { + padding: 3.5rem !important; + } + .pt-sm-9 { + padding-top: 3.5rem !important; + } + .pr-sm-9 { + padding-right: 3.5rem !important; + } + .pb-sm-9 { + padding-bottom: 3.5rem !important; + } + .pl-sm-9 { + padding-left: 3.5rem !important; + } + .px-sm-9 { + padding-right: 3.5rem !important; + padding-left: 3.5rem !important; + } + .py-sm-9 { + padding-top: 3.5rem !important; + padding-bottom: 3.5rem !important; + } + .p-sm-10 { + padding: 4rem !important; + } + .pt-sm-10 { + padding-top: 4rem !important; + } + .pr-sm-10 { + padding-right: 4rem !important; + } + .pb-sm-10 { + padding-bottom: 4rem !important; + } + .pl-sm-10 { + padding-left: 4rem !important; + } + .px-sm-10 { + padding-right: 4rem !important; + padding-left: 4rem !important; + } + .py-sm-10 { + padding-top: 4rem !important; + padding-bottom: 4rem !important; + } +} +@media (min-width: 50rem) { + .p-md-0 { + padding: 0 !important; + } + .pt-md-0 { + padding-top: 0 !important; + } + .pr-md-0 { + padding-right: 0 !important; + } + .pb-md-0 { + padding-bottom: 0 !important; + } + .pl-md-0 { + padding-left: 0 !important; + } + .px-md-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .py-md-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .p-md-1 { + padding: 0.25rem !important; + } + .pt-md-1 { + padding-top: 0.25rem !important; + } + .pr-md-1 { + padding-right: 0.25rem !important; + } + .pb-md-1 { + padding-bottom: 0.25rem !important; + } + .pl-md-1 { + padding-left: 0.25rem !important; + } + .px-md-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .py-md-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .p-md-2 { + padding: 0.5rem !important; + } + .pt-md-2 { + padding-top: 0.5rem !important; + } + .pr-md-2 { + padding-right: 0.5rem !important; + } + .pb-md-2 { + padding-bottom: 0.5rem !important; + } + .pl-md-2 { + padding-left: 0.5rem !important; + } + .px-md-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .py-md-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .p-md-3 { + padding: 0.75rem !important; + } + .pt-md-3 { + padding-top: 0.75rem !important; + } + .pr-md-3 { + padding-right: 0.75rem !important; + } + .pb-md-3 { + padding-bottom: 0.75rem !important; + } + .pl-md-3 { + padding-left: 0.75rem !important; + } + .px-md-3 { + padding-right: 0.75rem !important; + padding-left: 0.75rem !important; + } + .py-md-3 { + padding-top: 0.75rem !important; + padding-bottom: 0.75rem !important; + } + .p-md-4 { + padding: 1rem !important; + } + .pt-md-4 { + padding-top: 1rem !important; + } + .pr-md-4 { + padding-right: 1rem !important; + } + .pb-md-4 { + padding-bottom: 1rem !important; + } + .pl-md-4 { + padding-left: 1rem !important; + } + .px-md-4 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .py-md-4 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .p-md-5 { + padding: 1.5rem !important; + } + .pt-md-5 { + padding-top: 1.5rem !important; + } + .pr-md-5 { + padding-right: 1.5rem !important; + } + .pb-md-5 { + padding-bottom: 1.5rem !important; + } + .pl-md-5 { + padding-left: 1.5rem !important; + } + .px-md-5 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .py-md-5 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .p-md-6 { + padding: 2rem !important; + } + .pt-md-6 { + padding-top: 2rem !important; + } + .pr-md-6 { + padding-right: 2rem !important; + } + .pb-md-6 { + padding-bottom: 2rem !important; + } + .pl-md-6 { + padding-left: 2rem !important; + } + .px-md-6 { + padding-right: 2rem !important; + padding-left: 2rem !important; + } + .py-md-6 { + padding-top: 2rem !important; + padding-bottom: 2rem !important; + } + .p-md-7 { + padding: 2.5rem !important; + } + .pt-md-7 { + padding-top: 2.5rem !important; + } + .pr-md-7 { + padding-right: 2.5rem !important; + } + .pb-md-7 { + padding-bottom: 2.5rem !important; + } + .pl-md-7 { + padding-left: 2.5rem !important; + } + .px-md-7 { + padding-right: 2.5rem !important; + padding-left: 2.5rem !important; + } + .py-md-7 { + padding-top: 2.5rem !important; + padding-bottom: 2.5rem !important; + } + .p-md-8 { + padding: 3rem !important; + } + .pt-md-8 { + padding-top: 3rem !important; + } + .pr-md-8 { + padding-right: 3rem !important; + } + .pb-md-8 { + padding-bottom: 3rem !important; + } + .pl-md-8 { + padding-left: 3rem !important; + } + .px-md-8 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-md-8 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .p-md-9 { + padding: 3.5rem !important; + } + .pt-md-9 { + padding-top: 3.5rem !important; + } + .pr-md-9 { + padding-right: 3.5rem !important; + } + .pb-md-9 { + padding-bottom: 3.5rem !important; + } + .pl-md-9 { + padding-left: 3.5rem !important; + } + .px-md-9 { + padding-right: 3.5rem !important; + padding-left: 3.5rem !important; + } + .py-md-9 { + padding-top: 3.5rem !important; + padding-bottom: 3.5rem !important; + } + .p-md-10 { + padding: 4rem !important; + } + .pt-md-10 { + padding-top: 4rem !important; + } + .pr-md-10 { + padding-right: 4rem !important; + } + .pb-md-10 { + padding-bottom: 4rem !important; + } + .pl-md-10 { + padding-left: 4rem !important; + } + .px-md-10 { + padding-right: 4rem !important; + padding-left: 4rem !important; + } + .py-md-10 { + padding-top: 4rem !important; + padding-bottom: 4rem !important; + } +} +@media (min-width: 66.5rem) { + .p-lg-0 { + padding: 0 !important; + } + .pt-lg-0 { + padding-top: 0 !important; + } + .pr-lg-0 { + padding-right: 0 !important; + } + .pb-lg-0 { + padding-bottom: 0 !important; + } + .pl-lg-0 { + padding-left: 0 !important; + } + .px-lg-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .py-lg-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .p-lg-1 { + padding: 0.25rem !important; + } + .pt-lg-1 { + padding-top: 0.25rem !important; + } + .pr-lg-1 { + padding-right: 0.25rem !important; + } + .pb-lg-1 { + padding-bottom: 0.25rem !important; + } + .pl-lg-1 { + padding-left: 0.25rem !important; + } + .px-lg-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .py-lg-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .p-lg-2 { + padding: 0.5rem !important; + } + .pt-lg-2 { + padding-top: 0.5rem !important; + } + .pr-lg-2 { + padding-right: 0.5rem !important; + } + .pb-lg-2 { + padding-bottom: 0.5rem !important; + } + .pl-lg-2 { + padding-left: 0.5rem !important; + } + .px-lg-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .py-lg-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .p-lg-3 { + padding: 0.75rem !important; + } + .pt-lg-3 { + padding-top: 0.75rem !important; + } + .pr-lg-3 { + padding-right: 0.75rem !important; + } + .pb-lg-3 { + padding-bottom: 0.75rem !important; + } + .pl-lg-3 { + padding-left: 0.75rem !important; + } + .px-lg-3 { + padding-right: 0.75rem !important; + padding-left: 0.75rem !important; + } + .py-lg-3 { + padding-top: 0.75rem !important; + padding-bottom: 0.75rem !important; + } + .p-lg-4 { + padding: 1rem !important; + } + .pt-lg-4 { + padding-top: 1rem !important; + } + .pr-lg-4 { + padding-right: 1rem !important; + } + .pb-lg-4 { + padding-bottom: 1rem !important; + } + .pl-lg-4 { + padding-left: 1rem !important; + } + .px-lg-4 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .py-lg-4 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .p-lg-5 { + padding: 1.5rem !important; + } + .pt-lg-5 { + padding-top: 1.5rem !important; + } + .pr-lg-5 { + padding-right: 1.5rem !important; + } + .pb-lg-5 { + padding-bottom: 1.5rem !important; + } + .pl-lg-5 { + padding-left: 1.5rem !important; + } + .px-lg-5 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .py-lg-5 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .p-lg-6 { + padding: 2rem !important; + } + .pt-lg-6 { + padding-top: 2rem !important; + } + .pr-lg-6 { + padding-right: 2rem !important; + } + .pb-lg-6 { + padding-bottom: 2rem !important; + } + .pl-lg-6 { + padding-left: 2rem !important; + } + .px-lg-6 { + padding-right: 2rem !important; + padding-left: 2rem !important; + } + .py-lg-6 { + padding-top: 2rem !important; + padding-bottom: 2rem !important; + } + .p-lg-7 { + padding: 2.5rem !important; + } + .pt-lg-7 { + padding-top: 2.5rem !important; + } + .pr-lg-7 { + padding-right: 2.5rem !important; + } + .pb-lg-7 { + padding-bottom: 2.5rem !important; + } + .pl-lg-7 { + padding-left: 2.5rem !important; + } + .px-lg-7 { + padding-right: 2.5rem !important; + padding-left: 2.5rem !important; + } + .py-lg-7 { + padding-top: 2.5rem !important; + padding-bottom: 2.5rem !important; + } + .p-lg-8 { + padding: 3rem !important; + } + .pt-lg-8 { + padding-top: 3rem !important; + } + .pr-lg-8 { + padding-right: 3rem !important; + } + .pb-lg-8 { + padding-bottom: 3rem !important; + } + .pl-lg-8 { + padding-left: 3rem !important; + } + .px-lg-8 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-lg-8 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .p-lg-9 { + padding: 3.5rem !important; + } + .pt-lg-9 { + padding-top: 3.5rem !important; + } + .pr-lg-9 { + padding-right: 3.5rem !important; + } + .pb-lg-9 { + padding-bottom: 3.5rem !important; + } + .pl-lg-9 { + padding-left: 3.5rem !important; + } + .px-lg-9 { + padding-right: 3.5rem !important; + padding-left: 3.5rem !important; + } + .py-lg-9 { + padding-top: 3.5rem !important; + padding-bottom: 3.5rem !important; + } + .p-lg-10 { + padding: 4rem !important; + } + .pt-lg-10 { + padding-top: 4rem !important; + } + .pr-lg-10 { + padding-right: 4rem !important; + } + .pb-lg-10 { + padding-bottom: 4rem !important; + } + .pl-lg-10 { + padding-left: 4rem !important; + } + .px-lg-10 { + padding-right: 4rem !important; + padding-left: 4rem !important; + } + .py-lg-10 { + padding-top: 4rem !important; + padding-bottom: 4rem !important; + } +} +@media (min-width: 87.5rem) { + .p-xl-0 { + padding: 0 !important; + } + .pt-xl-0 { + padding-top: 0 !important; + } + .pr-xl-0 { + padding-right: 0 !important; + } + .pb-xl-0 { + padding-bottom: 0 !important; + } + .pl-xl-0 { + padding-left: 0 !important; + } + .px-xl-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .py-xl-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .p-xl-1 { + padding: 0.25rem !important; + } + .pt-xl-1 { + padding-top: 0.25rem !important; + } + .pr-xl-1 { + padding-right: 0.25rem !important; + } + .pb-xl-1 { + padding-bottom: 0.25rem !important; + } + .pl-xl-1 { + padding-left: 0.25rem !important; + } + .px-xl-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .py-xl-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .p-xl-2 { + padding: 0.5rem !important; + } + .pt-xl-2 { + padding-top: 0.5rem !important; + } + .pr-xl-2 { + padding-right: 0.5rem !important; + } + .pb-xl-2 { + padding-bottom: 0.5rem !important; + } + .pl-xl-2 { + padding-left: 0.5rem !important; + } + .px-xl-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .py-xl-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .p-xl-3 { + padding: 0.75rem !important; + } + .pt-xl-3 { + padding-top: 0.75rem !important; + } + .pr-xl-3 { + padding-right: 0.75rem !important; + } + .pb-xl-3 { + padding-bottom: 0.75rem !important; + } + .pl-xl-3 { + padding-left: 0.75rem !important; + } + .px-xl-3 { + padding-right: 0.75rem !important; + padding-left: 0.75rem !important; + } + .py-xl-3 { + padding-top: 0.75rem !important; + padding-bottom: 0.75rem !important; + } + .p-xl-4 { + padding: 1rem !important; + } + .pt-xl-4 { + padding-top: 1rem !important; + } + .pr-xl-4 { + padding-right: 1rem !important; + } + .pb-xl-4 { + padding-bottom: 1rem !important; + } + .pl-xl-4 { + padding-left: 1rem !important; + } + .px-xl-4 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .py-xl-4 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .p-xl-5 { + padding: 1.5rem !important; + } + .pt-xl-5 { + padding-top: 1.5rem !important; + } + .pr-xl-5 { + padding-right: 1.5rem !important; + } + .pb-xl-5 { + padding-bottom: 1.5rem !important; + } + .pl-xl-5 { + padding-left: 1.5rem !important; + } + .px-xl-5 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .py-xl-5 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .p-xl-6 { + padding: 2rem !important; + } + .pt-xl-6 { + padding-top: 2rem !important; + } + .pr-xl-6 { + padding-right: 2rem !important; + } + .pb-xl-6 { + padding-bottom: 2rem !important; + } + .pl-xl-6 { + padding-left: 2rem !important; + } + .px-xl-6 { + padding-right: 2rem !important; + padding-left: 2rem !important; + } + .py-xl-6 { + padding-top: 2rem !important; + padding-bottom: 2rem !important; + } + .p-xl-7 { + padding: 2.5rem !important; + } + .pt-xl-7 { + padding-top: 2.5rem !important; + } + .pr-xl-7 { + padding-right: 2.5rem !important; + } + .pb-xl-7 { + padding-bottom: 2.5rem !important; + } + .pl-xl-7 { + padding-left: 2.5rem !important; + } + .px-xl-7 { + padding-right: 2.5rem !important; + padding-left: 2.5rem !important; + } + .py-xl-7 { + padding-top: 2.5rem !important; + padding-bottom: 2.5rem !important; + } + .p-xl-8 { + padding: 3rem !important; + } + .pt-xl-8 { + padding-top: 3rem !important; + } + .pr-xl-8 { + padding-right: 3rem !important; + } + .pb-xl-8 { + padding-bottom: 3rem !important; + } + .pl-xl-8 { + padding-left: 3rem !important; + } + .px-xl-8 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-xl-8 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .p-xl-9 { + padding: 3.5rem !important; + } + .pt-xl-9 { + padding-top: 3.5rem !important; + } + .pr-xl-9 { + padding-right: 3.5rem !important; + } + .pb-xl-9 { + padding-bottom: 3.5rem !important; + } + .pl-xl-9 { + padding-left: 3.5rem !important; + } + .px-xl-9 { + padding-right: 3.5rem !important; + padding-left: 3.5rem !important; + } + .py-xl-9 { + padding-top: 3.5rem !important; + padding-bottom: 3.5rem !important; + } + .p-xl-10 { + padding: 4rem !important; + } + .pt-xl-10 { + padding-top: 4rem !important; + } + .pr-xl-10 { + padding-right: 4rem !important; + } + .pb-xl-10 { + padding-bottom: 4rem !important; + } + .pl-xl-10 { + padding-left: 4rem !important; + } + .px-xl-10 { + padding-right: 4rem !important; + padding-left: 4rem !important; + } + .py-xl-10 { + padding-top: 4rem !important; + padding-bottom: 4rem !important; + } +} +@media print { + .site-footer, + .site-button, + #edit-this-page, + #back-to-top, + .site-nav, + .main-header { + display: none !important; + } + .side-bar { + width: 100%; + height: auto; + border-right: 0 !important; + } + .site-header { + border-bottom: 1px solid #eeebee; + } + .site-title { + font-size: 1rem !important; + font-weight: 700 !important; + } + .text-small { + font-size: 8pt !important; + } + pre.highlight { + border: 1px solid #eeebee; + } + .main { + max-width: none; + margin-left: 0; + } +} +a.skip-to-main { + left: -999px; + position: absolute; + top: auto; + width: 1px; + height: 1px; + overflow: hidden; + z-index: -999; +} + +a.skip-to-main:focus, +a.skip-to-main:active { + color: #7253ed; + background-color: #fff; + left: auto; + top: auto; + width: 30%; + height: auto; + overflow: auto; + margin: 10px 35%; + padding: 5px; + border-radius: 15px; + border: 4px solid #5e41d0; + text-align: center; + font-size: 1.2em; + z-index: 999; +} + +div.opaque { + background-color: #fff; +} + +#mbtlogo { + width: auto; + margin-left: 1em; + margin-right: 1em; +} + +#mbtlogo > path { + fill: #7253ed; +} + +#minititle { + margin-left: auto; + font-family: "Mukta Mahee", sans-serif; + vertical-align: middle; + font-size: xx-large; + color: #44434d; +} + +code.language-tla { + display: block; + overflow: auto; +} + +/*# sourceMappingURL=just-the-docs-default.css.map */ \ No newline at end of file diff --git a/assets/css/just-the-docs-default.css.map b/assets/css/just-the-docs-default.css.map new file mode 100644 index 00000000..9d61e26c --- /dev/null +++ b/assets/css/just-the-docs-default.css.map @@ -0,0 +1 @@ +{"version":3,"sourceRoot":"","sources":["../../_sass/custom/custom.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/vendor/OneLightJekyll/syntax.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/vendor/normalize.scss/normalize.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/base.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/color_schemes/light.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/support/mixins/_typography.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/support/mixins/_layout.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/support/_variables.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/layout.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/content.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/navigation.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/typography.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/labels.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/buttons.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/support/mixins/_buttons.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/search.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/tables.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/code.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/utilities/_colors.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/utilities/_layout.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/utilities/_typography.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/utilities/_lists.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/utilities/_spacing.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/print.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/skiptomain.scss","just-the-docs-default.scss"],"names":[],"mappings":";AAWQ;ACTR;AAAA;EAEE;EACA;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AC9MF;AAEA;AAAA;AAGA;AAAA;AAAA;AAAA;AAKA;EACE;EACA;;;AAGF;AAAA;AAGA;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAAA;AAKA;EACE;EACA;;;AAGF;AAAA;AAGA;AAAA;AAAA;AAAA;AAKA;EACE;EACA;EACA;;;AAGF;AAAA;AAAA;AAAA;AAKA;EACE;EACA;;;AAGF;AAAA;AAGA;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAAA;AAKA;EACE;EACA;EACA;;;AAGF;AAAA;AAAA;AAIA;AAAA;EAEE;;;AAGF;AAAA;AAAA;AAAA;AAKA;AAAA;AAAA;EAGE;EACA;;;AAGF;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAAA;AAKA;AAAA;EAEE;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;AAAA;AAGA;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAGA;AAAA;AAAA;AAAA;AAKA;AAAA;AAAA;AAAA;AAAA;EAKE;EACA;EACA;EACA;;;AAGF;AAAA;AAAA;AAAA;AAKA;AAAA;AAEE;EACA;;;AAGF;AAAA;AAAA;AAAA;AAKA;AAAA;AAEE;EACA;;;AAGF;AAAA;AAAA;AAIA;AAAA;AAAA;AAAA;EAIE;;;AAGF;AAAA;AAAA;AAIA;AAAA;AAAA;AAAA;EAIE;EACA;;;AAGF;AAAA;AAAA;AAIA;AAAA;AAAA;AAAA;EAIE;;;AAGF;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAAA;AAKA;AAAA;EAEE;EACA;;;AAGF;AAAA;AAAA;AAIA;AAAA;EAEE;;;AAGF;AAAA;AAAA;AAAA;AAKA;EACE;EACA;;;AAGF;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAAA;AAKA;EACE;EACA;;;AAGF;AAAA;AAGA;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAGA;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAIA;EACE;;;AC1VF;EACE,cCJa;;;ADOf;EACE;;;AAGF;EEcE;EFXA;;AGAE;EHHJ;IEiBI;;;;AFXJ;EACE,aIfiB;EJgBjB;EACA,aIbiB;EJcjB,OIUY;EJTZ,kBIOM;EJNN;;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAYE;;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAOE;EACA;EACA;EACA,aI1CyB;EJ2CzB,OIlBY;;;AJqBd;EACE;EACA;;;AAGF;EACE,OItBW;EJuBX;;;AAGF;EACE;EACA,uBI/BY;EJgCZ;;AAEA;EACE;;;AAIJ;EACE,aIvEiB;EJwEjB;EACA,aIvEiB;;;AJ0EnB;AAAA;EAEE;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA,kBI/DY;EJgEZ;;;AAIF;EACE;EAGA;EACA;EACA;EACA;;;AK7GF;EACE;EACA;EACA;EACA,kBD6BY;;ADrBV;EEZJ;IAOI;IACA;IACA,ODwFW;ICvFX;IACA;IACA;;;AFAA;EEZJ;IAgBI;IACA,WD+EQ;;;ADpFR;EEQF;IAEI,aD2ES;;;ADrFX;EEQF;IAQI;;;AAOF;EACE;EACA,kBDJQ;;ADrBV;EEuBA;IAKI;IACA,kBDdA;;;ACiBF;EACE;;AFjCJ;EEgCE;IAII;;;;AAOV;EACE;;AF5CE;EE2CJ;IAII;IACA,WDyCY;;;;ACrChB;EFzCE,eCuDK;EDtDL,cCsDK;ECXL,aDWK;ECVL,gBDUK;;ADlEH;EEoDJ;IFrCI,eCqDG;IDpDH,cCoDG;;;ADpEH;EEoDJ;IAOI,aDSG;ICRH,gBDQG;;;;ACJP;EACE;EACA;;AFlEE;EEgEJ;IAKI;IACA;IACA,QDmBY;;;;ACfhB;AAAA;AAAA;EAGE;;AF9EE;EE2EJ;AAAA;AAAA;IAMI,ODGQ;;;;ACCZ;EACE;;AAEA;EACE;;AFzFA;EEqFJ;IAQI;IACA,aDxBG;ICyBH,gBD7BG;IC8BH;IACA;;;;AAIJ;EACE;EACA,YDbc;ECcd;;AFxGE;EEqGJ;IAMI,QDjBY;ICkBZ,YDlBY;ICmBZ;;;;AAIJ;EFtGE,eCuDK;EDtDL,cCsDK;ECkDL;EACA;EACA;EACA;EACA,aDvDK;ECwDL,gBDxDK;ECyDL,ODtGY;EFOZ;;AC3BE;EEiHJ;IFlGI,eCqDG;IDpDH,cCoDG;;;ADpEH;EEiHJ;IHnFI;IACA,aEpCuB;;;ADKvB;EEiHJ;IAaI,aD9DG;IC+DH,gBD/DG;;;;AC8EP;EACE;EACA;EACA,SD/EK;ECgFL;;;AFlJE;EEsJF;IACE;;;AAIJ;EACE;;;AAQF;EACE;;;AASF;EACE;EACA,gBDxGM;ECyGN;;AFjLE;EE8KJ;IAMI;IACA;;;;AAMJ;EFhLE,eCuDK;EDtDL,cCsDK;EC4HL;EACA;EACA;EACA,aD/HK;ECgIL,gBDhIK;ECiIL,ODnLY;EFrBZ;;ACKE;EE2LJ;IF5KI,eCqDG;IDpDH,cCoDG;;;ADpEH;EE2LJ;IH7LI;;;ACEA;EE2LJ;IAYI;IACA;;;;AAIJ;EACE,OD1IK;EC2IL,QD3IK;EC4IL,ODtLW;;;AElCb;EACE,aFEoB;;AEApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAOE;;AAGF;EACE;EACA;;AAGF;AAAA;EAEE;;AAIA;EACE,YF+CC;;AE3CL;EACE;EACA;;AAEA;EACE;;AAEA;EACE;EACA;EACA;EACA,OFfM;EEgBN;EACA;EJ9BN;;ACHE;EG2BE;IJrBF;;;ACNA;EG2BE;IAUI;;;AAIJ;EACE;;AAGE;EACE;EACA;;AAOV;EACE;;AAGE;EACE;EACA;EACA,OF7CM;EE8CN;;AAMJ;EACE;;AAIJ;EACE;EACA;;AAKF;EACE;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;AAAA;EAEE;;AAGF;EACE;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;;AAmBE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;;AASF;AAAA;AAAA;AAAA;AAAA;AAAA;EAEE;;AAKN;EACE;EACA;EACA,OFnFG;EEoFH;EACA,eFzFG;EE0FH,cF1FG;EE2FH;;AH1JA;EGmJF;IAUI;IACA;;;AAGF;EACE;EACA;EACA;EACA,OF5IO;EE6IP;;AAYF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;;AAIJ;EACE;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAOE;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAKE;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;;AAIJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAWE,YF9JG;;;AG3EP;EACE;EACA;EACA;EACA;;AAEA;ELgBA;EKbE;EACA;;AJCA;EILF;ILmBE;;;ACdA;EILF;ILQA;;;ACHE;EILF;ILWE;;;AKDA;EACE;EACA,YH+DC;EG9DD,aHuDC;EGtDD,gBHsDC;EGrDD;EAEE,eH0DD;EGzDC,cHqDD;;ADlEH;EIKA;IAeI,YHgDD;IG/CC;IAEE,eH6CH;IG5CG,cH4CH;;;AGrCD;EACE,OHkCD;EGjCC,QHiCD;EGhCC;;AAGF;EACE;EACA;;AAGF;EAEE;;AASJ;EACE;EAEE;EAGF,OHWC;EGVD,QHUC;EGTD;EACA,OHrCO;;ADzBT;EIqDA;IAYI,OHGD;IGFC,QHED;IGDC;;;AAGF;EACE;;AAQA;EACE;;AAKN;EACE;EACA,cHtBC;EGuBD;;AAEA;EACE;;AAEA;EACE,OH7EI;;AGgFN;EACE,OHjFI;;AGuFR;EAEI;;AAMJ;EACE;;;AAMR;EACE;EACA;EACA;EACA;EACA;ELjIA;;ACKE;EIuHJ;ILzHI;;;ACEA;EIuHJ;IASI;IACA,YH/DG;IGgEH;;EAEA;IACE;;;;AAMJ;EACE;;AAEA;EACE;;AAGE;EACE,OH1HG;;AG6HL;EACE,OH9HG;;;AGuIb;EACE;EACA;ELvKA;;ACKE;EIgKJ;ILlKI;;;AKuKF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AJjLA;EIgKJ;IAqBI,eHnHG;;;;ADlEH;EI2LJ;IAEI;;;;AAIJ;EACE;EACA,eHlIK;EGmIL;;;AAGF;EACE;EL7MA;;ACKE;EIuMJ;ILzMI;;;AK6MF;EACE;;AAGF;EACE;EACA,cHjJG;EGkJH,aHlJG;EGmJH,OHnMU;EGoMV;;AAIA;EACE;;;ACpON;AAAA;ENwDE;EACA,aEnDyB;EIFzB;;ALOE;EKXJ;AAAA;IN4DI;;;;AMrDJ;AAAA;AAAA;EN+BE;;AC3BE;EKJJ;AAAA;AAAA;INkCI;IACA,aEpCuB;;;;AIO3B;AAAA;ENiBE;;ACnBE;EKEJ;AAAA;INoBI;;;;AMfJ;AAAA;ENZE;EMgBA;EACA;EACA;;ALbE;EKOJ;AAAA;INTI;;;;AMkBJ;EACE;;;AAGF;AAAA;ENjBE;;ACHE;EKoBJ;AAAA;INdI;;;;AMmBJ;AAAA;EN9BE;;ACKE;EKyBJ;AAAA;IN3BI;;;;AMgCJ;ENnCE;;ACKE;EK8BJ;INhCI;;;;AMoCJ;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;ACvDF;AAAA;EAEE;EACA;EACA,cLoEK;EKnEL,aLmEK;EKlEL,OLiBM;EKhBN;EACA;EACA,kBL6BS;EFnCT;EOSA;;ANJE;EMRJ;AAAA;IPMI;;;;AOSJ;EACE,kBL2BU;;;AKxBZ;EACE,kBLcW;;;AKXb;EACE,kBL2BQ;;;AKxBV;EACE,OLFY;EKGZ,kBLkBW;;;AMlDb;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,ON2BW;EM1BX;EACA;EACA;EACA,kBTTkB;ESUlB;EACA,eNyEc;EMxEd,YACE;EAEF;;AAEA;EACE;EACA;EACA;;AAGF;EAEE;;AAGF;EAEE;;AAGF;EAIE;EACA;;AAGF;EAGE;EACA;EACA;;AAGF;EACE;;AAKA;EAEE;EACA;EACA;EACA;EACA;;;AAKN;EACE,ONnCW;EMoCX;EACA;;AAEA;EAIE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA,YACE;;AAIJ;EAEE;;;AAIJ;ECnGE,OP0BM;EOzBN;EACA;EACA,YACE;;AAGF;EAEE,OPiBI;EOhBJ;EACA;;AAGF;EAGE;EACA;EACA;;AAGF;EACE;;;ADgFJ;ECvGE,OP0BM;EOzBN;EACA;EACA,YACE;;AAGF;EAEE,OPiBI;EOhBJ;EACA;;AAGF;EAGE;EACA;EACA;;AAGF;EACE;;;ADoFJ;EC3GE,OP0BM;EOzBN;EACA;EACA,YACE;;AAGF;EAEE,OPiBI;EOhBJ;EACA;;AAGF;EAGE;EACA;EACA;;AAGF;EACE;;;ADwFJ;EC/GE,OP0BM;EOzBN;EACA;EACA,YACE;;AAGF;EAEE,OPiBI;EOhBJ;EACA;;AAGF;EAGE;EACA;EACA;;AAGF;EACE;;;AD4FJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AE3HF;EACE;EACA;EACA;EACA,QRgFM;EQ/EN,SRuEK;EQtEL;;ATME;ESZJ;IASI;IACA;IACA;IACA;IACA;;;;AAIJ;EACE;EACA;EACA,QR8DK;EQ7DL;EACA,eRmEc;EQlEd,YACE;EAEF;;ATdE;ESKJ;IAYI;IACA;IACA,WRwEmB;IQvEnB;IACA;IACA;IACA;;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA,ORhBY;EQiBZ,kBRnBM;EQoBN;EACA;EACA;EACA;EACA;;ATvCE;ES2BJ;IAeI;IACA;IACA,kBR7BI;IQ8BJ;;;AAGF;EACE;;AAEA;EACE,OR3BO;;;AQgCb;EACE;EACA;EACA;EACA,cRKK;;ADlEH;ESyDJ;IAOI,cRIG;IQHH;;;AAGF;EACE;EACA;EACA;EACA,ORxDU;;;AQ4Dd;EACE;EACA;EACA;EACA;EACA;EACA;EACA,kBRpEM;EQqEN,4BRPc;EQQd,2BRRc;EQSd,YACE;;ATvFA;ES4EJ;IAeI;IACA,ORDmB;IQEnB;;;;AAIJ;EACE;EACA,eRpCK;EQqCL;EVzFA;;ACXE;ESiGJ;IVnFI;;;ACdA;ESiGJ;IV9FE;;;ACHE;ESiGJ;IV3FI;;;;AUsGJ;EACE;EACA;;;AAGF;EACE;EACA;;AAEA;EAEE,kBX3Ha;;;AW+HjB;EACE;EACA,aR7DK;EQ8DL,gBR9DK;;ADhEH;ES2HJ;IAMI;IACA;IACA,eRnEG;IQoEH;;;;AAIJ;EACE;EACA;EACA;;AAEA;EACE;EV3IF;;ACHE;ES6IF;IVvIE;;;ACNA;ES6IF;IVlJA;;;ACKE;ES6IF;IV/IE;;;AUwJF;EACE,ORrFG;EQsFH,QRtFG;EQuFH,cRzFG;EQ0FH,ORjIS;EQkIT;;AAGF;EACE;;;AAIJ;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA,OR5JY;EQ6JZ;EACA;EV3LA;;ACaE;ESwKJ;IVlLI;;;;AU4LJ;EACE;EACA,aRpHK;EQqHL,gBRrHK;EQsHL,cRpHK;EQqHL,aRvHK;EQwHL,ORxKY;EQyKZ;EACA,aR9GO;EQ+GP,mBRrKY;EF3BZ;;ACKE;ESkLJ;IVpLI;;;ACEA;ESkLJ;IAaI;IACA;IACA,cRjIG;IQkIH;IACA;;;;AAIJ;EACE,YRzIK;;;AQ4IP;EACE;;;AAGF;EACE;EV7MA;;ACHE;ES+MJ;IVzMI;;;;AU8MJ;EACE;EACA,ORpJK;EQqJL,QRrJK;EQsJL;EACA,ORlJK;EQmJL,QRnJK;EQoJL,kBR5MM;EQ6MN;EACA;EACA,YACE;EAEF;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YACE;;;AAMF;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE,QRvLI;EQwLJ;;AThQA;ES8PF;IAKI,ORxKiB;IQyKjB,YACE;;;AAKN;EACE,kBR5PI;;ADfJ;ES0QF;IAII;;;AT9QF;ESkRF;IAEI;;;AAIJ;EACE;;AAGF;EACE;EACA;EACA;EACA,YACE;;ATjSF;ESuSA;IACE;IACA;IACA;;;AAIJ;EACE,aRvOI;;ADxEJ;ES8SF;IAII;;;;AC7TN;EACE;EACA;EACA;EACA,eT0EK;ESzEL;EACA,eTkFc;ESjFd,YACE;;;AAIJ;EACE;EACA;EACA;;;AAGF;AAAA;EXJE;EWQA;EACA;EACA,kBTEM;ESDN;EACA;;AVfE;EUOJ;AAAA;IXDI;;;AWWF;AAAA;EACE;;;AAOE;AAAA;EAEE;;AAGF;EACE,gBTkCD;;;AS3BL;EACE;;;AC9CF;EACE;EACA;EACA,kBVyBU;EUxBV;EACA,eV+EY;;;AU1EhB;EACE,cVkBY;;;AUiCd;AAAA;AAAA;EAGE;EACA,eVMK;EULL,kBVvCY;EUwCZ,eVgBc;EUfd;EACA;EACA;EACA;;AAIA;AAAA;AAAA;EACE,OVLG;EUMH;EACA;EACA;EACA;EACA;EACA,kBVvDU;EUwDV,OV5DU;EU6DV;;AAEA;AAAA;AAAA;EACE,MVhEQ;;AUmEV;AAAA;AAAA;EACE;EACA;EACA;;AAGF;AAAA;AAAA;EACE;;AAMF;AAAA;AAAA;EACE;EACA;;;AASJ;EACE;EACA,SV7CG;EU8CH;EACA;;AAGF;AAAA;EAEE;EACA;EACA;;;AAUJ;EAGE;EACA,eVpEK;;AU2CL;EACE;EACA,SV7CG;EU8CH;EACA;;AAGF;AAAA;EAEE;EACA;EACA;;;AAwBF;AAAA;EAEE;EACA,SVjFG;EUkFH;EACA;;;AAQJ;EACE;EACA;EACA;EACA;;AAEA;AAAA;EZvKA;EY2KE;EACA;EACA,kBVnJU;EUoJV;;AXzKA;EWkKF;AAAA;IZpKE;;;AY8KF;EACE;EACA,eV7GG;EU8GH,cV9GG;;AUiHL;EACE;EACA;;;AAKJ;AAAA;EAEE,SV1HK;EU2HL,eV3HK;EU4HL;EACA;EACA,eVlHc;;AUoHd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAIE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAKJ;EACE;EACA;EACA;;;AAIF;AAAA;EAEE,YVpMY;EUyMV,OV7MU;;;AUkNd;EACE,YV/MY;;;AW/Bd;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAKF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;ACvOF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AbPE;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;AAQR;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAKF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;ACjGF;EfDE;;ACaE;EcZJ;IfEI;;;;AeEJ;EfGE;;ACKE;EcRJ;IfMI;;;;AeFJ;EfOE;;ACHE;EcJJ;IfUI;;;;AeNJ;EfWE;;ACXE;EcAJ;IfcI;;;;AeVJ;EfeE;;ACnBE;EcIJ;IfkBI;;;;AedJ;EfmBE;;AC3BE;EcQJ;IfsBI;IACA,aEpCuB;;;;AaiB3B;EfwBE;EACA,aE1CyB;;ADKvB;EcYJ;If4BI;;;;AexBJ;Ef6BE;EACA,aEnDyB;;ADKvB;EcgBJ;IfiCI;;;;Ae7BJ;EfkCE;EACA,aE5DyB;;ADKvB;EcoBJ;IfsCI;;;;AelCJ;EfuCE;EACA,aErEyB;;ADKvB;EcwBJ;If2CI;;;;AevCJ;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE,abxDiB;;;Aa2DnB;EACE,ab1DyB;;;Aa6D3B;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AC/EF;EACE;EACA;EACA;;AAGE;EACE;;;ACLN;EACE;EACA;;;AAQA;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;AAhCF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;AAhCF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;AAhCF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;AAhCF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;AAhCF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;AAhCF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;AAhCF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;AAhCF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;AAhCF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;AAhCF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;AhBlCA;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AAaN;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAvBF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAvBF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAvBF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAvBF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAvBF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAvBF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAvBF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAvBF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAvBF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAvBF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AhB7GA;EgBwHE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhB/IJ;EgBwHE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhB/IJ;EgBwHE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhB/IJ;EgBwHE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhB/IJ;EgBwHE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AC3JR;EACE;AAAA;AAAA;AAAA;AAAA;AAAA;IAME;;EAGF;IACE;IACA;IACA;;EAGF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;IACA;;;AClCJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;AAAA;EAEE,OjBwBW;EiBvBX,kBjBaM;EiBZN;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;ACrBF;EACE,kBlBqBM;;;AP5BR;EACI;EACA;EACA;;;AAGJ;EACI,MO+BS;;;AP3Bb;EACI;EACA;EACA;EACA;EACA,OOeU;;;APZd;EACE;EACA","sourcesContent":["\n#mbtlogo {\n width: auto;\n margin-left: 1em;\n margin-right: 1em;\n}\n\n#mbtlogo > path {\n fill: $purple-000;\n}\n\n@import url('https://fonts.googleapis.com/css2?family=Mukta+Mahee&display=swap');\n#minititle {\n margin-left: auto;\n font-family: 'Mukta Mahee', sans-serif;\n vertical-align: middle;\n font-size: xx-large;\n color: $grey-dk-200;\n}\n\ncode.language-tla {\n display: block;\n overflow: auto;\n}\n","// Generated with OneLightJekyll applied to Atom's One Light theme\n\n.highlight,\npre.highlight {\n background: #f9f9f9;\n color: #383942;\n}\n.highlight pre {\n background: #f9f9f9;\n}\n.highlight .hll {\n background: #f9f9f9;\n}\n.highlight .c {\n color: #9fa0a6;\n font-style: italic;\n}\n.highlight .err {\n color: #fff;\n background-color: #e05151;\n}\n.highlight .k {\n color: #a625a4;\n}\n.highlight .l {\n color: #50a04f;\n}\n.highlight .n {\n color: #383942;\n}\n.highlight .o {\n color: #383942;\n}\n.highlight .p {\n color: #383942;\n}\n.highlight .cm {\n color: #9fa0a6;\n font-style: italic;\n}\n.highlight .cp {\n color: #9fa0a6;\n font-style: italic;\n}\n.highlight .c1 {\n color: #9fa0a6;\n font-style: italic;\n}\n.highlight .cs {\n color: #9fa0a6;\n font-style: italic;\n}\n.highlight .ge {\n font-style: italic;\n}\n.highlight .gs {\n font-weight: 700;\n}\n.highlight .kc {\n color: #a625a4;\n}\n.highlight .kd {\n color: #a625a4;\n}\n.highlight .kn {\n color: #a625a4;\n}\n.highlight .kp {\n color: #a625a4;\n}\n.highlight .kr {\n color: #a625a4;\n}\n.highlight .kt {\n color: #a625a4;\n}\n.highlight .ld {\n color: #50a04f;\n}\n.highlight .m {\n color: #b66a00;\n}\n.highlight .s {\n color: #50a04f;\n}\n.highlight .na {\n color: #b66a00;\n}\n.highlight .nb {\n color: #ca7601;\n}\n.highlight .nc {\n color: #ca7601;\n}\n.highlight .no {\n color: #ca7601;\n}\n.highlight .nd {\n color: #ca7601;\n}\n.highlight .ni {\n color: #ca7601;\n}\n.highlight .ne {\n color: #ca7601;\n}\n.highlight .nf {\n color: #383942;\n}\n.highlight .nl {\n color: #ca7601;\n}\n.highlight .nn {\n color: #383942;\n}\n.highlight .nx {\n color: #383942;\n}\n.highlight .py {\n color: #ca7601;\n}\n.highlight .nt {\n color: #e35549;\n}\n.highlight .nv {\n color: #ca7601;\n}\n.highlight .ow {\n font-weight: 700;\n}\n.highlight .w {\n color: #f8f8f2;\n}\n.highlight .mf {\n color: #b66a00;\n}\n.highlight .mh {\n color: #b66a00;\n}\n.highlight .mi {\n color: #b66a00;\n}\n.highlight .mo {\n color: #b66a00;\n}\n.highlight .sb {\n color: #50a04f;\n}\n.highlight .sc {\n color: #50a04f;\n}\n.highlight .sd {\n color: #50a04f;\n}\n.highlight .s2 {\n color: #50a04f;\n}\n.highlight .se {\n color: #50a04f;\n}\n.highlight .sh {\n color: #50a04f;\n}\n.highlight .si {\n color: #50a04f;\n}\n.highlight .sx {\n color: #50a04f;\n}\n.highlight .sr {\n color: #0083bb;\n}\n.highlight .s1 {\n color: #50a04f;\n}\n.highlight .ss {\n color: #0083bb;\n}\n.highlight .bp {\n color: #ca7601;\n}\n.highlight .vc {\n color: #ca7601;\n}\n.highlight .vg {\n color: #ca7601;\n}\n.highlight .vi {\n color: #e35549;\n}\n.highlight .il {\n color: #b66a00;\n}\n.highlight .gu {\n color: #75715e;\n}\n.highlight .gd {\n color: #e05151;\n}\n.highlight .gi {\n color: #43d089;\n}\n.highlight .language-json .w + .s2 {\n color: #e35549;\n}\n.highlight .language-json .kc {\n color: #0083bb;\n}\n","/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput {\n /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect {\n /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n","// Base element style overrides\n// stylelint-disable selector-no-type, selector-max-type, selector-max-specificity, selector-max-id\n\n:root {\n color-scheme: $color-scheme;\n}\n\n* {\n box-sizing: border-box;\n}\n\nhtml {\n @include fs-4;\n\n scroll-behavior: smooth;\n}\n\nbody {\n font-family: $body-font-family;\n font-size: inherit;\n line-height: $body-line-height;\n color: $body-text-color;\n background-color: $body-background-color;\n overflow-wrap: break-word;\n}\n\nol,\nul,\ndl,\npre,\naddress,\nblockquote,\ntable,\ndiv,\nhr,\nform,\nfieldset,\nnoscript .table-wrapper {\n margin-top: 0;\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\n#toctitle {\n margin-top: 0;\n margin-bottom: 1em;\n font-weight: 500;\n line-height: $body-heading-line-height;\n color: $body-heading-color;\n}\n\np {\n margin-top: 1em;\n margin-bottom: 1em;\n}\n\na {\n color: $link-color;\n text-decoration: none;\n}\n\na:not([class]) {\n text-decoration: underline;\n text-decoration-color: $border-color;\n text-underline-offset: 2px;\n\n &:hover {\n text-decoration-color: rgba($link-color, 0.45);\n }\n}\n\ncode {\n font-family: $mono-font-family;\n font-size: 0.75em;\n line-height: $body-line-height;\n}\n\nfigure,\npre {\n margin: 0;\n}\n\nli {\n margin: 0.25em 0;\n}\n\nimg {\n max-width: 100%;\n height: auto;\n}\n\nhr {\n height: 1px;\n padding: 0;\n margin: $sp-6 0;\n background-color: $border-color;\n border: 0;\n}\n\n// adds a GitHub-style sidebar to blockquotes\nblockquote {\n margin: 10px 0;\n\n // resets user-agent stylesheets for blockquotes\n margin-block-start: 0;\n margin-inline-start: 0;\n padding-left: 1rem;\n border-left: 3px solid $border-color;\n}\n","$color-scheme: light !default;\n$body-background-color: $white !default;\n$body-heading-color: $grey-dk-300 !default;\n$body-text-color: $grey-dk-100 !default;\n$link-color: $purple-000 !default;\n$nav-child-link-color: $grey-dk-100 !default;\n$sidebar-color: $grey-lt-000 !default;\n$base-button-color: #f7f7f7 !default;\n$btn-primary-color: $purple-100 !default;\n$code-background-color: $grey-lt-000 !default;\n$feedback-color: darken($sidebar-color, 3%) !default;\n$table-background-color: $white !default;\n$search-background-color: $white !default;\n$search-result-preview-color: $grey-dk-000 !default;\n\n@import \"./vendor/OneLightJekyll/syntax\";\n","@mixin fs-1 {\n font-size: $font-size-1 !important;\n\n @include mq(sm) {\n font-size: $font-size-1-sm !important;\n }\n}\n\n@mixin fs-2 {\n font-size: $font-size-2 !important;\n\n @include mq(sm) {\n font-size: $font-size-3 !important;\n }\n}\n\n@mixin fs-3 {\n font-size: $font-size-3 !important;\n\n @include mq(sm) {\n font-size: $font-size-4 !important;\n }\n}\n\n@mixin fs-4 {\n font-size: $font-size-4 !important;\n\n @include mq(sm) {\n font-size: $font-size-5 !important;\n }\n}\n\n@mixin fs-5 {\n font-size: $font-size-5 !important;\n\n @include mq(sm) {\n font-size: $font-size-6 !important;\n }\n}\n\n@mixin fs-6 {\n font-size: $font-size-6 !important;\n\n @include mq(sm) {\n font-size: $font-size-7 !important;\n line-height: $body-heading-line-height;\n }\n}\n\n@mixin fs-7 {\n font-size: $font-size-7 !important;\n line-height: $body-heading-line-height;\n\n @include mq(sm) {\n font-size: $font-size-8 !important;\n }\n}\n\n@mixin fs-8 {\n font-size: $font-size-8 !important;\n line-height: $body-heading-line-height;\n\n @include mq(sm) {\n font-size: $font-size-9 !important;\n }\n}\n\n@mixin fs-9 {\n font-size: $font-size-9 !important;\n line-height: $body-heading-line-height;\n\n @include mq(sm) {\n font-size: $font-size-10 !important;\n }\n}\n\n@mixin fs-10 {\n font-size: $font-size-10 !important;\n line-height: $body-heading-line-height;\n\n @include mq(sm) {\n font-size: $font-size-10-sm !important;\n }\n}\n","// Media query\n\n// Media query mixin\n// Usage:\n// @include mq(md) {\n// ..medium and up styles\n// }\n@mixin mq($name) {\n // Retrieves the value from the key\n $value: map-get($media-queries, $name);\n\n // If the key exists in the map\n @if $value {\n // Prints a media query based on the value\n @media (min-width: $value) {\n @content;\n }\n } @else {\n @warn \"No value could be retrieved from `#{$media-query}`. Please make sure it is defined in `$media-queries` map.\";\n }\n}\n\n// Responsive container\n\n@mixin container {\n padding-right: $gutter-spacing-sm;\n padding-left: $gutter-spacing-sm;\n\n @include mq(md) {\n padding-right: $gutter-spacing;\n padding-left: $gutter-spacing;\n }\n}\n","// Typography\n\n// prettier-ignore\n$body-font-family: system-ui, -apple-system, blinkmacsystemfont, \"Segoe UI\",\n roboto, \"Helvetica Neue\", arial, sans-serif, \"Segoe UI Emoji\" !default;\n$mono-font-family: \"SFMono-Regular\", menlo, consolas, monospace !default;\n$root-font-size: 16px !default; // DEPRECATED: previously base font-size for rems\n$body-line-height: 1.4 !default;\n$content-line-height: 1.6 !default;\n$body-heading-line-height: 1.25 !default;\n\n// Font size\n// `-sm` suffix is the size at the small (and above) media query\n\n$font-size-1: 0.5625rem !default;\n$font-size-1-sm: 0.625rem !default;\n$font-size-2: 0.6875rem !default; // h4 - uppercased!, h6 not uppercased, text-small\n$font-size-3: 0.75rem !default; // h5\n$font-size-4: 0.875rem !default;\n$font-size-5: 1rem !default; // h3\n$font-size-6: 1.125rem !default; // h2\n$font-size-7: 1.5rem !default;\n$font-size-8: 2rem !default; // h1\n$font-size-9: 2.25rem !default;\n$font-size-10: 2.625rem !default;\n$font-size-10-sm: 3rem !default;\n\n// Colors\n\n$white: #fff !default;\n$grey-dk-000: #959396 !default;\n$grey-dk-100: #5c5962 !default;\n$grey-dk-200: #44434d !default;\n$grey-dk-250: #302d36 !default;\n$grey-dk-300: #27262b !default;\n$grey-lt-000: #f5f6fa !default;\n$grey-lt-100: #eeebee !default;\n$grey-lt-200: #ecebed !default;\n$grey-lt-300: #e6e1e8 !default;\n$purple-000: #7253ed !default;\n$purple-100: #5e41d0 !default;\n$purple-200: #4e26af !default;\n$purple-300: #381885 !default;\n$blue-000: #2c84fa !default;\n$blue-100: #2869e6 !default;\n$blue-200: #264caf !default;\n$blue-300: #183385 !default;\n$green-000: #41d693 !default;\n$green-100: #11b584 !default;\n$green-200: #009c7b !default;\n$green-300: #026e57 !default;\n$yellow-000: #ffeb82 !default;\n$yellow-100: #fadf50 !default;\n$yellow-200: #f7d12e !default;\n$yellow-300: #e7af06 !default;\n$red-000: #f77e7e !default;\n$red-100: #f96e65 !default;\n$red-200: #e94c4c !default;\n$red-300: #dd2e2e !default;\n\n// Spacing\n\n$spacing-unit: 1rem; // 1rem == 16px\n\n$spacers: (\n sp-0: 0,\n sp-1: $spacing-unit * 0.25,\n sp-2: $spacing-unit * 0.5,\n sp-3: $spacing-unit * 0.75,\n sp-4: $spacing-unit,\n sp-5: $spacing-unit * 1.5,\n sp-6: $spacing-unit * 2,\n sp-7: $spacing-unit * 2.5,\n sp-8: $spacing-unit * 3,\n sp-9: $spacing-unit * 3.5,\n sp-10: $spacing-unit * 4,\n) !default;\n$sp-1: map-get($spacers, sp-1) !default; // 0.25 rem == 4px\n$sp-2: map-get($spacers, sp-2) !default; // 0.5 rem == 8px\n$sp-3: map-get($spacers, sp-3) !default; // 0.75 rem == 12px\n$sp-4: map-get($spacers, sp-4) !default; // 1 rem == 16px\n$sp-5: map-get($spacers, sp-5) !default; // 1.5 rem == 24px\n$sp-6: map-get($spacers, sp-6) !default; // 2 rem == 32px\n$sp-7: map-get($spacers, sp-7) !default; // 2.5 rem == 40px\n$sp-8: map-get($spacers, sp-8) !default; // 3 rem == 48px\n$sp-9: map-get($spacers, sp-9) !default; // 3.5 rem == 56px\n$sp-10: map-get($spacers, sp-10) !default; // 4 rem == 64px\n\n// Borders\n\n$border: 1px solid !default;\n$border-radius: 4px !default;\n$border-color: $grey-lt-100 !default;\n\n// Grid system\n\n$gutter-spacing: $sp-6 !default;\n$gutter-spacing-sm: $sp-4 !default;\n$nav-width: 16.5rem !default;\n$nav-width-md: 15.5rem !default;\n$nav-list-item-height: $sp-6 !default;\n$nav-list-item-height-sm: $sp-8 !default;\n$nav-list-expander-right: true;\n$content-width: 50rem !default;\n$header-height: 3.75rem !default;\n$search-results-width: $content-width - $nav-width !default;\n$transition-duration: 400ms;\n\n// Media queries in pixels\n\n$media-queries: (\n xs: 20rem,\n sm: 31.25rem,\n md: $content-width,\n lg: $content-width + $nav-width,\n xl: 87.5rem,\n) !default;\n","// The basic two column layout\n\n.side-bar {\n z-index: 0;\n display: flex;\n flex-wrap: wrap;\n background-color: $sidebar-color;\n\n @include mq(md) {\n flex-flow: column nowrap;\n position: fixed;\n width: $nav-width-md;\n height: 100%;\n border-right: $border $border-color;\n align-items: flex-end;\n }\n\n @include mq(lg) {\n width: calc((100% - #{$nav-width + $content-width}) / 2 + #{$nav-width});\n min-width: $nav-width;\n }\n\n & + .main {\n @include mq(md) {\n margin-left: $nav-width-md;\n }\n\n @include mq(lg) {\n // stylelint-disable function-name-case\n // disable for Max(), we want to use the CSS max() function\n margin-left: Max(\n #{$nav-width},\n calc((100% - #{$nav-width + $content-width}) / 2 + #{$nav-width})\n );\n // stylelint-enable function-name-case\n }\n\n .main-header {\n display: none;\n background-color: $sidebar-color;\n\n @include mq(md) {\n display: flex;\n background-color: $body-background-color;\n }\n\n &.nav-open {\n display: block;\n\n @include mq(md) {\n display: flex;\n }\n }\n }\n }\n}\n\n.main {\n margin: auto;\n\n @include mq(md) {\n position: relative;\n max-width: $content-width;\n }\n}\n\n.main-content-wrap {\n @include container;\n\n padding-top: $gutter-spacing-sm;\n padding-bottom: $gutter-spacing-sm;\n\n @include mq(md) {\n padding-top: $gutter-spacing;\n padding-bottom: $gutter-spacing;\n }\n}\n\n.main-header {\n z-index: 0;\n border-bottom: $border $border-color;\n\n @include mq(md) {\n display: flex;\n justify-content: space-between;\n height: $header-height;\n }\n}\n\n.site-nav,\n.site-header,\n.site-footer {\n width: 100%;\n\n @include mq(lg) {\n width: $nav-width;\n }\n}\n\n.site-nav {\n display: none;\n\n &.nav-open {\n display: block;\n }\n\n @include mq(md) {\n display: block;\n padding-top: $sp-8;\n padding-bottom: $gutter-spacing-sm;\n overflow-y: auto;\n flex: 1 1 auto;\n }\n}\n\n.site-header {\n display: flex;\n min-height: $header-height;\n align-items: center;\n\n @include mq(md) {\n height: $header-height;\n max-height: $header-height;\n border-bottom: $border $border-color;\n }\n}\n\n.site-title {\n @include container;\n\n flex-grow: 1;\n display: flex;\n height: 100%;\n align-items: center;\n padding-top: $sp-3;\n padding-bottom: $sp-3;\n color: $body-heading-color;\n @include fs-6;\n\n @include mq(md) {\n padding-top: $sp-2;\n padding-bottom: $sp-2;\n }\n}\n\n@if variable-exists(logo) {\n .site-logo {\n width: 100%;\n height: 100%;\n background-image: url($logo);\n background-repeat: no-repeat;\n background-position: left center;\n background-size: contain;\n }\n}\n\n.site-button {\n display: flex;\n height: 100%;\n padding: $gutter-spacing-sm;\n align-items: center;\n}\n\n@include mq(md) {\n .site-header .site-button {\n display: none;\n }\n}\n\n.site-title:hover {\n background-image: linear-gradient(\n -90deg,\n rgba($feedback-color, 1) 0%,\n rgba($feedback-color, 0.8) 80%,\n rgba($feedback-color, 0) 100%\n );\n}\n\n.site-button:hover {\n background-image: linear-gradient(\n -90deg,\n rgba($feedback-color, 1) 0%,\n rgba($feedback-color, 0.8) 100%\n );\n}\n\n// stylelint-disable selector-max-type\n\nbody {\n position: relative;\n padding-bottom: $sp-10;\n overflow-y: scroll;\n\n @include mq(md) {\n position: static;\n padding-bottom: 0;\n }\n}\n\n// stylelint-enable selector-max-type\n\n.site-footer {\n @include container;\n\n position: absolute;\n bottom: 0;\n left: 0;\n padding-top: $sp-4;\n padding-bottom: $sp-4;\n color: $grey-dk-000;\n @include fs-2;\n\n @include mq(md) {\n position: static;\n justify-self: end;\n }\n}\n\n.icon {\n width: $sp-5;\n height: $sp-5;\n color: $link-color;\n}\n","@charset \"UTF-8\";\n\n// Styles for rendered markdown in the .main-content container\n// stylelint-disable selector-no-type, max-nesting-depth, selector-max-compound-selectors, selector-max-type, selector-max-specificity, selector-max-id\n\n.main-content {\n line-height: $content-line-height;\n\n ol,\n ul,\n dl,\n pre,\n address,\n blockquote,\n .table-wrapper {\n margin-top: 0.5em;\n }\n\n a {\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n ul,\n ol {\n padding-left: 1.5em;\n }\n\n li {\n .highlight {\n margin-top: $sp-1;\n }\n }\n\n ol {\n list-style-type: none;\n counter-reset: step-counter;\n\n > li {\n position: relative;\n\n &::before {\n position: absolute;\n top: 0.2em;\n left: -1.6em;\n color: $grey-dk-000;\n content: counter(step-counter);\n counter-increment: step-counter;\n @include fs-3;\n\n @include mq(sm) {\n top: 0.11em;\n }\n }\n\n ol {\n counter-reset: sub-counter;\n\n > li {\n &::before {\n content: counter(sub-counter, lower-alpha);\n counter-increment: sub-counter;\n }\n }\n }\n }\n }\n\n ul {\n list-style: none;\n\n > li {\n &::before {\n position: absolute;\n margin-left: -1.4em;\n color: $grey-dk-000;\n content: \"•\";\n }\n }\n }\n\n .task-list-item {\n &::before {\n content: \"\";\n }\n }\n\n .task-list-item-checkbox {\n margin-right: 0.6em;\n margin-left: -1.4em;\n\n // The same margin-left is used above for ul > li::before\n }\n\n hr + * {\n margin-top: 0;\n }\n\n h1:first-of-type {\n margin-top: 0.5em;\n }\n\n dl {\n display: grid;\n grid-template: auto / 10em 1fr;\n }\n\n dt,\n dd {\n margin: 0.25em 0;\n }\n\n dt {\n grid-column: 1;\n font-weight: 500;\n text-align: right;\n\n &::after {\n content: \":\";\n }\n }\n\n dd {\n grid-column: 2;\n margin-bottom: 0;\n margin-left: 1em;\n\n blockquote,\n div,\n dl,\n dt,\n h1,\n h2,\n h3,\n h4,\n h5,\n h6,\n li,\n ol,\n p,\n pre,\n table,\n ul,\n .table-wrapper {\n &:first-child {\n margin-top: 0;\n }\n }\n }\n\n dd,\n ol,\n ul {\n dl:first-child {\n dt:first-child,\n dd:nth-child(2) {\n margin-top: 0;\n }\n }\n }\n\n .anchor-heading {\n position: absolute;\n right: -$sp-4;\n width: $sp-5;\n height: 100%;\n padding-right: $sp-1;\n padding-left: $sp-1;\n overflow: visible;\n\n @include mq(md) {\n right: auto;\n left: -$sp-5;\n }\n\n svg {\n display: inline-block;\n width: 100%;\n height: 100%;\n color: $link-color;\n visibility: hidden;\n }\n }\n\n .anchor-heading:hover,\n .anchor-heading:focus,\n h1:hover > .anchor-heading,\n h2:hover > .anchor-heading,\n h3:hover > .anchor-heading,\n h4:hover > .anchor-heading,\n h5:hover > .anchor-heading,\n h6:hover > .anchor-heading {\n svg {\n visibility: visible;\n }\n }\n\n summary {\n cursor: pointer;\n }\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6,\n #toctitle {\n position: relative;\n margin-top: 1.5em;\n margin-bottom: 0.25em;\n\n + table,\n + .table-wrapper,\n + .code-example,\n + .highlighter-rouge,\n + .sectionbody .listingblock {\n margin-top: 1em;\n }\n\n + p:not(.label) {\n margin-top: 0;\n }\n }\n\n > h1:first-child,\n > h2:first-child,\n > h3:first-child,\n > h4:first-child,\n > h5:first-child,\n > h6:first-child,\n > .sect1:first-child > h2,\n > .sect2:first-child > h3,\n > .sect3:first-child > h4,\n > .sect4:first-child > h5,\n > .sect5:first-child > h6 {\n margin-top: $sp-2;\n }\n}\n","// Main nav, breadcrumb, etc...\n// stylelint-disable selector-no-type, max-nesting-depth, selector-max-compound-selectors, selector-max-type, selector-max-specificity\n\n.nav-list {\n padding: 0;\n margin-top: 0;\n margin-bottom: 0;\n list-style: none;\n\n .nav-list-item {\n @include fs-4;\n\n position: relative;\n margin: 0;\n\n @include mq(md) {\n @include fs-3;\n }\n\n .nav-list-link {\n display: block;\n min-height: $nav-list-item-height-sm;\n padding-top: $sp-1;\n padding-bottom: $sp-1;\n line-height: #{$nav-list-item-height-sm - 2 * $sp-1};\n @if $nav-list-expander-right {\n padding-right: $nav-list-item-height-sm;\n padding-left: $gutter-spacing-sm;\n } @else {\n padding-right: $gutter-spacing-sm;\n padding-left: $nav-list-item-height-sm;\n }\n\n @include mq(md) {\n min-height: $nav-list-item-height;\n line-height: #{$nav-list-item-height - 2 * $sp-1};\n @if $nav-list-expander-right {\n padding-right: $nav-list-item-height;\n padding-left: $gutter-spacing;\n } @else {\n padding-right: $gutter-spacing;\n padding-left: $nav-list-item-height;\n }\n }\n\n &.external > svg {\n width: $sp-4;\n height: $sp-4;\n vertical-align: text-bottom;\n }\n\n &.active {\n font-weight: 600;\n text-decoration: none;\n }\n\n &:hover,\n &.active {\n background-image: linear-gradient(\n -90deg,\n rgba($feedback-color, 1) 0%,\n rgba($feedback-color, 0.8) 80%,\n rgba($feedback-color, 0) 100%\n );\n }\n }\n\n .nav-list-expander {\n position: absolute;\n @if $nav-list-expander-right {\n right: 0;\n }\n\n width: $nav-list-item-height-sm;\n height: $nav-list-item-height-sm;\n padding: #{$nav-list-item-height-sm * 0.25};\n color: $link-color;\n\n @include mq(md) {\n width: $nav-list-item-height;\n height: $nav-list-item-height;\n padding: #{$nav-list-item-height * 0.25};\n }\n\n &:hover {\n background-image: linear-gradient(\n -90deg,\n rgba($feedback-color, 1) 0%,\n rgba($feedback-color, 0.8) 100%\n );\n }\n\n @if $nav-list-expander-right {\n svg {\n transform: rotate(90deg);\n }\n }\n }\n\n > .nav-list {\n display: none;\n padding-left: $sp-3;\n list-style: none;\n\n .nav-list-item {\n position: relative;\n\n .nav-list-link {\n color: $nav-child-link-color;\n }\n\n .nav-list-expander {\n color: $nav-child-link-color;\n }\n }\n }\n\n &.active {\n > .nav-list-expander svg {\n @if $nav-list-expander-right {\n transform: rotate(-90deg);\n } @else {\n transform: rotate(90deg);\n }\n }\n\n > .nav-list {\n display: block;\n }\n }\n }\n}\n\n.nav-category {\n padding: $sp-2 $gutter-spacing-sm;\n font-weight: 600;\n text-align: start;\n text-transform: uppercase;\n border-bottom: $border $border-color;\n @include fs-2;\n\n @include mq(md) {\n padding: $sp-2 $gutter-spacing;\n margin-top: $gutter-spacing-sm;\n text-align: start;\n\n &:first-child {\n margin-top: 0;\n }\n }\n}\n\n.nav-list.nav-category-list {\n > .nav-list-item {\n margin: 0;\n\n > .nav-list {\n padding: 0;\n\n > .nav-list-item {\n > .nav-list-link {\n color: $link-color;\n }\n\n > .nav-list-expander {\n color: $link-color;\n }\n }\n }\n }\n}\n\n// Aux nav\n\n.aux-nav {\n height: 100%;\n overflow-x: auto;\n @include fs-2;\n\n .aux-nav-list {\n display: flex;\n height: 100%;\n padding: 0;\n margin: 0;\n list-style: none;\n }\n\n .aux-nav-list-item {\n display: inline-block;\n height: 100%;\n padding: 0;\n margin: 0;\n }\n\n @include mq(md) {\n padding-right: $gutter-spacing-sm;\n }\n}\n\n// Breadcrumb nav\n\n.breadcrumb-nav {\n @include mq(md) {\n margin-top: -$sp-4;\n }\n}\n\n.breadcrumb-nav-list {\n padding-left: 0;\n margin-bottom: $sp-3;\n list-style: none;\n}\n\n.breadcrumb-nav-list-item {\n display: table-cell;\n @include fs-2;\n\n &::before {\n display: none;\n }\n\n &::after {\n display: inline-block;\n margin-right: $sp-2;\n margin-left: $sp-2;\n color: $grey-dk-000;\n content: \"/\";\n }\n\n &:last-child {\n &::after {\n content: \"\";\n }\n }\n}\n","// Typography\n// stylelint-disable selector-no-type, selector-max-type, selector-max-specificity, selector-max-id\n\nh1,\n.text-alpha {\n @include fs-8;\n\n font-weight: 300;\n}\n\nh2,\n.text-beta,\n#toctitle {\n @include fs-6;\n}\n\nh3,\n.text-gamma {\n @include fs-5;\n}\n\nh4,\n.text-delta {\n @include fs-2;\n\n font-weight: 400;\n text-transform: uppercase;\n letter-spacing: 0.1em;\n}\n\nh4 code {\n text-transform: none;\n}\n\nh5,\n.text-epsilon {\n @include fs-3;\n}\n\nh6,\n.text-zeta {\n @include fs-2;\n}\n\n.text-small {\n @include fs-2;\n}\n\n.text-mono {\n font-family: $mono-font-family !important;\n}\n\n.text-left {\n text-align: left !important;\n}\n\n.text-center {\n text-align: center !important;\n}\n\n.text-right {\n text-align: right !important;\n}\n","// Labels (not the form kind)\n\n// this :not() prevents a style clash with Mermaid.js's\n// diagram labels, which also use .label\n// for more, see https://github.com/just-the-docs/just-the-docs/issues/1272\n// and the accompanying PR\n.label:not(g),\n.label-blue:not(g) {\n display: inline-block;\n padding: 0.16em 0.56em;\n margin-right: $sp-2;\n margin-left: $sp-2;\n color: $white;\n text-transform: uppercase;\n vertical-align: middle;\n background-color: $blue-100;\n @include fs-2;\n\n border-radius: 12px;\n}\n\n.label-green:not(g) {\n background-color: $green-200;\n}\n\n.label-purple:not(g) {\n background-color: $purple-100;\n}\n\n.label-red:not(g) {\n background-color: $red-200;\n}\n\n.label-yellow:not(g) {\n color: $grey-dk-200;\n background-color: $yellow-200;\n}\n","// Buttons and things that look like buttons\n// stylelint-disable color-named\n\n.btn {\n display: inline-block;\n box-sizing: border-box;\n padding: 0.3em 1em;\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n font-weight: 500;\n line-height: 1.5;\n color: $link-color;\n text-decoration: none;\n vertical-align: baseline;\n cursor: pointer;\n background-color: $base-button-color;\n border-width: 0;\n border-radius: $border-radius;\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n appearance: none;\n\n &:focus {\n text-decoration: none;\n outline: none;\n box-shadow: 0 0 0 3px rgba(blue, 0.25);\n }\n\n &:focus:hover,\n &.selected:focus {\n box-shadow: 0 0 0 3px rgba(blue, 0.25);\n }\n\n &:hover,\n &.zeroclipboard-is-hover {\n color: darken($link-color, 2%);\n }\n\n &:hover,\n &:active,\n &.zeroclipboard-is-hover,\n &.zeroclipboard-is-active {\n text-decoration: none;\n background-color: darken($base-button-color, 1%);\n }\n\n &:active,\n &.selected,\n &.zeroclipboard-is-active {\n background-color: darken($base-button-color, 3%);\n background-image: none;\n box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15);\n }\n\n &.selected:hover {\n background-color: darken(#dcdcdc, 5%);\n }\n\n &:disabled,\n &.disabled {\n &,\n &:hover {\n color: rgba(102, 102, 102, 0.5);\n cursor: default;\n background-color: rgba(229, 229, 229, 0.5);\n background-image: none;\n box-shadow: none;\n }\n }\n}\n\n.btn-outline {\n color: $link-color;\n background: transparent;\n box-shadow: inset 0 0 0 2px $grey-lt-300;\n\n &:hover,\n &:active,\n &.zeroclipboard-is-hover,\n &.zeroclipboard-is-active {\n color: darken($link-color, 4%);\n text-decoration: none;\n background-color: transparent;\n box-shadow: inset 0 0 0 3px $grey-lt-300;\n }\n\n &:focus {\n text-decoration: none;\n outline: none;\n box-shadow:\n inset 0 0 0 2px $grey-dk-100,\n 0 0 0 3px rgba(blue, 0.25);\n }\n\n &:focus:hover,\n &.selected:focus {\n box-shadow: inset 0 0 0 2px $grey-dk-100;\n }\n}\n\n.btn-primary {\n @include btn-color($white, $btn-primary-color);\n}\n\n.btn-purple {\n @include btn-color($white, $purple-100);\n}\n\n.btn-blue {\n @include btn-color($white, $blue-000);\n}\n\n.btn-green {\n @include btn-color($white, $green-100);\n}\n\n.btn-reset {\n background: none;\n border: none;\n margin: 0;\n text-align: inherit;\n font: inherit;\n border-radius: 0;\n appearance: none;\n}\n","// Colored button\n\n@mixin btn-color($fg, $bg) {\n color: $fg;\n background-color: darken($bg, 2%);\n background-image: linear-gradient(lighten($bg, 5%), darken($bg, 2%));\n box-shadow:\n 0 1px 3px rgba(0, 0, 0, 0.25),\n 0 4px 10px rgba(0, 0, 0, 0.12);\n\n &:hover,\n &.zeroclipboard-is-hover {\n color: $fg;\n background-color: darken($bg, 4%);\n background-image: linear-gradient((lighten($bg, 2%), darken($bg, 4%)));\n }\n\n &:active,\n &.selected,\n &.zeroclipboard-is-active {\n background-color: darken($bg, 5%);\n background-image: none;\n box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15);\n }\n\n &.selected:hover {\n background-color: darken($bg, 10%);\n }\n}\n","// Search input and autocomplete\n\n.search {\n position: relative;\n z-index: 2;\n flex-grow: 1;\n height: $sp-10;\n padding: $sp-2;\n transition: padding linear #{$transition-duration * 0.5};\n\n @include mq(md) {\n position: relative !important;\n width: auto !important;\n height: 100% !important;\n padding: 0;\n transition: none;\n }\n}\n\n.search-input-wrap {\n position: relative;\n z-index: 1;\n height: $sp-8;\n overflow: hidden;\n border-radius: $border-radius;\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n transition: height linear #{$transition-duration * 0.5};\n\n @include mq(md) {\n position: absolute;\n width: 100%;\n max-width: $search-results-width;\n height: 100% !important;\n border-radius: 0;\n box-shadow: none;\n transition: width ease $transition-duration;\n }\n}\n\n.search-input {\n position: absolute;\n width: 100%;\n height: 100%;\n padding: $sp-2 $gutter-spacing-sm $sp-2 #{$gutter-spacing-sm + $sp-5};\n font-size: 1rem;\n color: $body-text-color;\n background-color: $search-background-color;\n border-top: 0;\n border-right: 0;\n border-bottom: 0;\n border-left: 0;\n border-radius: 0;\n\n @include mq(md) {\n padding: $sp-2 $gutter-spacing-sm $sp-2 #{$gutter-spacing + $sp-5};\n font-size: 0.875rem;\n background-color: $body-background-color;\n transition: padding-left linear #{$transition-duration * 0.5};\n }\n\n &:focus {\n outline: 0;\n\n + .search-label .search-icon {\n color: $link-color;\n }\n }\n}\n\n.search-label {\n position: absolute;\n display: flex;\n height: 100%;\n padding-left: $gutter-spacing-sm;\n\n @include mq(md) {\n padding-left: $gutter-spacing;\n transition: padding-left linear #{$transition-duration * 0.5};\n }\n\n .search-icon {\n width: #{$sp-4 * 1.2};\n height: #{$sp-4 * 1.2};\n align-self: center;\n color: $grey-dk-000;\n }\n}\n\n.search-results {\n position: absolute;\n left: 0;\n display: none;\n width: 100%;\n max-height: calc(100% - #{$sp-10});\n overflow-y: auto;\n background-color: $search-background-color;\n border-bottom-right-radius: $border-radius;\n border-bottom-left-radius: $border-radius;\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n\n @include mq(md) {\n top: 100%;\n width: $search-results-width;\n max-height: calc(100vh - 200%) !important;\n }\n}\n\n.search-results-list {\n padding-left: 0;\n margin-bottom: $sp-1;\n list-style: none;\n @include fs-4;\n\n @include mq(md) {\n @include fs-3;\n }\n}\n\n.search-results-list-item {\n padding: 0;\n margin: 0;\n}\n\n.search-result {\n display: block;\n padding: $sp-1 $sp-3;\n\n &:hover,\n &.active {\n background-color: $feedback-color;\n }\n}\n\n.search-result-title {\n display: block;\n padding-top: $sp-2;\n padding-bottom: $sp-2;\n\n @include mq(sm) {\n display: inline-block;\n width: 40%;\n padding-right: $sp-2;\n vertical-align: top;\n }\n}\n\n.search-result-doc {\n display: flex;\n align-items: center;\n word-wrap: break-word;\n\n &.search-result-doc-parent {\n opacity: 0.5;\n @include fs-3;\n\n @include mq(md) {\n @include fs-2;\n }\n }\n\n .search-result-icon {\n width: $sp-4;\n height: $sp-4;\n margin-right: $sp-2;\n color: $link-color;\n flex-shrink: 0;\n }\n\n .search-result-doc-title {\n overflow: auto;\n }\n}\n\n.search-result-section {\n margin-left: #{$sp-4 + $sp-2};\n word-wrap: break-word;\n}\n\n.search-result-rel-url {\n display: block;\n margin-left: #{$sp-4 + $sp-2};\n overflow: hidden;\n color: $search-result-preview-color;\n text-overflow: ellipsis;\n white-space: nowrap;\n @include fs-1;\n}\n\n.search-result-previews {\n display: block;\n padding-top: $sp-2;\n padding-bottom: $sp-2;\n padding-left: $sp-4;\n margin-left: $sp-2;\n color: $search-result-preview-color;\n word-wrap: break-word;\n border-left: $border;\n border-left-color: $border-color;\n @include fs-2;\n\n @include mq(sm) {\n display: inline-block;\n width: 60%;\n padding-left: $sp-2;\n margin-left: 0;\n vertical-align: top;\n }\n}\n\n.search-result-preview + .search-result-preview {\n margin-top: $sp-1;\n}\n\n.search-result-highlight {\n font-weight: bold;\n}\n\n.search-no-result {\n padding: $sp-2 $sp-3;\n @include fs-3;\n}\n\n.search-button {\n position: fixed;\n right: $sp-4;\n bottom: $sp-4;\n display: flex;\n width: $sp-9;\n height: $sp-9;\n background-color: $search-background-color;\n border: 1px solid rgba($link-color, 0.3);\n border-radius: #{$sp-9 * 0.5};\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n align-items: center;\n justify-content: center;\n}\n\n.search-overlay {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1;\n width: 0;\n height: 0;\n background-color: rgba(0, 0, 0, 0.3);\n opacity: 0;\n transition:\n opacity ease $transition-duration,\n width 0s $transition-duration,\n height 0s $transition-duration;\n}\n\n.search-active {\n .search {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n padding: 0;\n }\n\n .search-input-wrap {\n height: $sp-10;\n border-radius: 0;\n\n @include mq(md) {\n width: $search-results-width;\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n }\n }\n\n .search-input {\n background-color: $search-background-color;\n\n @include mq(md) {\n padding-left: 2.3rem;\n }\n }\n\n .search-label {\n @include mq(md) {\n padding-left: 0.6rem;\n }\n }\n\n .search-results {\n display: block;\n }\n\n .search-overlay {\n width: 100%;\n height: 100%;\n opacity: 1;\n transition:\n opacity ease $transition-duration,\n width 0s,\n height 0s;\n }\n\n @include mq(md) {\n .main {\n position: fixed;\n right: 0;\n left: 0;\n }\n }\n\n .main-header {\n padding-top: $sp-10;\n\n @include mq(md) {\n padding-top: 0;\n }\n }\n}\n","// Tables\n// stylelint-disable max-nesting-depth, selector-no-type, selector-max-type\n\n.table-wrapper {\n display: block;\n width: 100%;\n max-width: 100%;\n margin-bottom: $sp-5;\n overflow-x: auto;\n border-radius: $border-radius;\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n}\n\ntable {\n display: table;\n min-width: 100%;\n border-collapse: separate;\n}\n\nth,\ntd {\n @include fs-3;\n\n min-width: 7.5rem;\n padding: $sp-2 $sp-3;\n background-color: $table-background-color;\n border-bottom: $border rgba($border-color, 0.5);\n border-left: $border $border-color;\n\n &:first-of-type {\n border-left: 0;\n }\n}\n\ntbody {\n tr {\n &:last-of-type {\n th,\n td {\n border-bottom: 0;\n }\n\n td {\n padding-bottom: $sp-3;\n }\n }\n }\n}\n\nthead {\n th {\n border-bottom: $border $border-color;\n }\n}\n","// Code and syntax highlighting\n// stylelint-disable selector-no-qualifying-type, declaration-block-semicolon-newline-after,declaration-block-single-line-max-declarations, selector-no-type, selector-max-type, scss/comment-no-empty\n\n// {% raw %}\n\n// This instruction applies to all queues not within 'pre' or 'figure', avoiding 'code' generated by the highlight.\n:not(pre, figure) {\n & > code {\n padding: 0.2em 0.15em;\n font-weight: 400;\n background-color: $code-background-color;\n border: $border $border-color;\n border-radius: $border-radius;\n }\n}\n\n// Avoid appearance of dark border around visited code links in Safari\na:visited code {\n border-color: $border-color;\n}\n\n// Content structure for highlighted code blocks using fences or Liquid\n//\n// ```[LANG]...```, no kramdown line_numbers:\n// div.[language-LANG.]highlighter-rouge > div.highlight > pre.highlight > code\n//\n// ```[LANG]...```, kramdown line_numbers = true:\n// div.[language-LANG.]highlighter-rouge > div.highlight > pre.highlight > code\n// > div.table-wrapper > table.rouge-table > tbody > tr\n// > td.rouge-gutter.gl > pre.lineno\n// | td.rouge-code > pre\n//\n// {% highlight LANG %}...{% endhighlight %}:\n// figure.highlight > pre > code.language-LANG\n//\n// {% highlight LANG linenos %}...{% endhighlight %}:\n// figure.highlight > pre > code.language-LANG\n// > div.table-wrapper > table.rouge-table > tbody > tr\n// > td.gutter.gl > pre.lineno\n// | td.code > pre\n//\n// ----...---- (AsciiDoc)\n// div.listingblock > div.content > pre.rouge.highlight\n//\n// fix_linenos removes the outermost pre when it encloses table.rouge-table\n//\n// See docs/index-test.md for some tests.\n//\n// No kramdown line_numbers: fences and Liquid highlighting look the same.\n// Kramdown line_numbers = true: fences have a wider gutter than with Liquid?\n\n// ```[LANG]...```\n// or in AsciiDoc:\n//\n// ----\n// ...\n// ----\n\n// the code may appear with 3 different types:\n// container \\ case: default case, code with line number, code with html rendering\n// top level: div.highlighter-rouge, figure.highlight, figure.highlight\n// second level: div.highlight, div.table-wrapper, pre.highlight\n// third level: pre.highlight, td.code, absent\n// last level: code, pre, code (optionality)\n// highlighter level: span, span, span\n// the spacing are only in the second level for case 1, 3 and in the third level for case 2\n// in AsciiDoc, there is a parent container that contains optionally a title and the content.\n\n// select top level container\ndiv.highlighter-rouge,\ndiv.listingblock > div.content,\nfigure.highlight {\n margin-top: 0;\n margin-bottom: $sp-3;\n background-color: $code-background-color;\n border-radius: $border-radius;\n box-shadow: none;\n -webkit-overflow-scrolling: touch;\n position: relative;\n padding: 0;\n\n // copy button (or other button)\n // the button appear only when there is a hover on the code or focus on button\n > button {\n width: $sp-3;\n opacity: 0;\n position: absolute;\n top: 0;\n right: 0;\n border: $sp-3 solid $code-background-color;\n background-color: $code-background-color;\n color: $body-text-color;\n box-sizing: content-box;\n\n svg {\n fill: $body-text-color;\n }\n\n &:active {\n text-decoration: none;\n outline: none;\n opacity: 1;\n }\n\n &:focus {\n opacity: 1;\n }\n }\n\n // the button can be seen by doing a simple hover in the code, there is no need to go over the location of the button\n &:hover {\n > button {\n cursor: copy;\n opacity: 1;\n }\n }\n}\n\n// setting the spacing and scrollbar on the second level for the first case\n// remove all space on the second and third level\n// this is a mixin to accommodate for the slightly different structures generated via Markdown vs AsciiDoc\n@mixin scroll-and-spacing($code-div, $pre-select) {\n #{$code-div} {\n overflow-x: auto;\n padding: $sp-3;\n margin: 0;\n border: 0;\n }\n\n #{$pre-select},\n code {\n padding: 0;\n margin: 0;\n border: 0;\n }\n}\n\n// for Markdown\ndiv.highlighter-rouge {\n @include scroll-and-spacing(\"div.highlight\", \"pre.highlight\");\n}\n\n// for AsciiDoc. we also need to fix the margins for its parent container.\ndiv.listingblock {\n @include scroll-and-spacing(\"div.content\", \"div.content > pre\");\n\n margin-top: 0;\n margin-bottom: $sp-3;\n}\n\n// {% highlight LANG %}...{% endhighlight %},\n// {% highlight LANG linenos %}...{% endhighlight %}:\n\n// setting the spacing and scrollbar on the second level for the thirt case\n// the css rule are apply only to the last code enviroment\n// setting the scroolbar\nfigure.highlight {\n pre,\n :not(pre) > code {\n overflow-x: auto;\n padding: $sp-3;\n margin: 0;\n border: 0;\n }\n}\n\n// ```[LANG]...```, kramdown line_numbers = true,\n// {% highlight LANG linenos %}...{% endhighlight %}:\n\n// setting the spacing and scrollbar on the thirt level for the second case\n.highlight .table-wrapper {\n padding: $sp-3 0;\n margin: 0;\n border: 0;\n box-shadow: none;\n\n td,\n pre {\n @include fs-2;\n\n min-width: 0;\n padding: 0;\n background-color: $code-background-color;\n border: 0;\n }\n\n td.gl {\n width: 1em;\n padding-right: $sp-3;\n padding-left: $sp-3;\n }\n\n pre {\n margin: 0;\n line-height: 2;\n }\n}\n\n// Code examples: html render of a code\n.code-example,\n.listingblock > .title {\n padding: $sp-3;\n margin-bottom: $sp-3;\n overflow: auto;\n border: 1px solid $border-color;\n border-radius: $border-radius;\n\n + .highlighter-rouge,\n + .sectionbody .listingblock,\n + .content,\n + figure.highlight {\n position: relative;\n margin-top: -$sp-4;\n border-right: 1px solid $border-color;\n border-bottom: 1px solid $border-color;\n border-left: 1px solid $border-color;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n }\n}\n\n// Mermaid diagram code blocks should be left unstyled.\ncode.language-mermaid {\n padding: 0;\n background-color: inherit;\n border: 0;\n}\n\n// Override OneDarkJekyll Colors for Code Blocks\n.highlight,\npre.highlight {\n background: $code-background-color; // Code Background\n // For Backwards Compatibility Before $code-linenumber-color was added\n @if variable-exists(code-linenumber-color) {\n color: $code-linenumber-color; // Code Line Numbers\n } @else {\n color: $body-text-color; // Code Line Numbers\n }\n}\n\n// Override OneDarkJekyll Colors for Code Blocks\n.highlight pre {\n background: $code-background-color; // Code Background\n}\n\n// {% endraw %}\n","// Utility classes for colors\n\n// Text colors\n\n.text-grey-dk-000 {\n color: $grey-dk-000 !important;\n}\n\n.text-grey-dk-100 {\n color: $grey-dk-100 !important;\n}\n\n.text-grey-dk-200 {\n color: $grey-dk-200 !important;\n}\n\n.text-grey-dk-250 {\n color: $grey-dk-250 !important;\n}\n\n.text-grey-dk-300 {\n color: $grey-dk-300 !important;\n}\n\n.text-grey-lt-000 {\n color: $grey-lt-000 !important;\n}\n\n.text-grey-lt-100 {\n color: $grey-lt-100 !important;\n}\n\n.text-grey-lt-200 {\n color: $grey-lt-200 !important;\n}\n\n.text-grey-lt-300 {\n color: $grey-lt-300 !important;\n}\n\n.text-blue-000 {\n color: $blue-000 !important;\n}\n\n.text-blue-100 {\n color: $blue-100 !important;\n}\n\n.text-blue-200 {\n color: $blue-200 !important;\n}\n\n.text-blue-300 {\n color: $blue-300 !important;\n}\n\n.text-green-000 {\n color: $green-000 !important;\n}\n\n.text-green-100 {\n color: $green-100 !important;\n}\n\n.text-green-200 {\n color: $green-200 !important;\n}\n\n.text-green-300 {\n color: $green-300 !important;\n}\n\n.text-purple-000 {\n color: $purple-000 !important;\n}\n\n.text-purple-100 {\n color: $purple-100 !important;\n}\n\n.text-purple-200 {\n color: $purple-200 !important;\n}\n\n.text-purple-300 {\n color: $purple-300 !important;\n}\n\n.text-yellow-000 {\n color: $yellow-000 !important;\n}\n\n.text-yellow-100 {\n color: $yellow-100 !important;\n}\n\n.text-yellow-200 {\n color: $yellow-200 !important;\n}\n\n.text-yellow-300 {\n color: $yellow-300 !important;\n}\n\n.text-red-000 {\n color: $red-000 !important;\n}\n\n.text-red-100 {\n color: $red-100 !important;\n}\n\n.text-red-200 {\n color: $red-200 !important;\n}\n\n.text-red-300 {\n color: $red-300 !important;\n}\n\n// Background colors\n\n.bg-grey-dk-000 {\n background-color: $grey-dk-000 !important;\n}\n\n.bg-grey-dk-100 {\n background-color: $grey-dk-100 !important;\n}\n\n.bg-grey-dk-200 {\n background-color: $grey-dk-200 !important;\n}\n\n.bg-grey-dk-250 {\n background-color: $grey-dk-250 !important;\n}\n\n.bg-grey-dk-300 {\n background-color: $grey-dk-300 !important;\n}\n\n.bg-grey-lt-000 {\n background-color: $grey-lt-000 !important;\n}\n\n.bg-grey-lt-100 {\n background-color: $grey-lt-100 !important;\n}\n\n.bg-grey-lt-200 {\n background-color: $grey-lt-200 !important;\n}\n\n.bg-grey-lt-300 {\n background-color: $grey-lt-300 !important;\n}\n\n.bg-blue-000 {\n background-color: $blue-000 !important;\n}\n\n.bg-blue-100 {\n background-color: $blue-100 !important;\n}\n\n.bg-blue-200 {\n background-color: $blue-200 !important;\n}\n\n.bg-blue-300 {\n background-color: $blue-300 !important;\n}\n\n.bg-green-000 {\n background-color: $green-000 !important;\n}\n\n.bg-green-100 {\n background-color: $green-100 !important;\n}\n\n.bg-green-200 {\n background-color: $green-200 !important;\n}\n\n.bg-green-300 {\n background-color: $green-300 !important;\n}\n\n.bg-purple-000 {\n background-color: $purple-000 !important;\n}\n\n.bg-purple-100 {\n background-color: $purple-100 !important;\n}\n\n.bg-purple-200 {\n background-color: $purple-200 !important;\n}\n\n.bg-purple-300 {\n background-color: $purple-300 !important;\n}\n\n.bg-yellow-000 {\n background-color: $yellow-000 !important;\n}\n\n.bg-yellow-100 {\n background-color: $yellow-100 !important;\n}\n\n.bg-yellow-200 {\n background-color: $yellow-200 !important;\n}\n\n.bg-yellow-300 {\n background-color: $yellow-300 !important;\n}\n\n.bg-red-000 {\n background-color: $red-000 !important;\n}\n\n.bg-red-100 {\n background-color: $red-100 !important;\n}\n\n.bg-red-200 {\n background-color: $red-200 !important;\n}\n\n.bg-red-300 {\n background-color: $red-300 !important;\n}\n","// Utility classes for layout\n\n// Display\n\n.d-block {\n display: block !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-none {\n display: none !important;\n}\n\n@each $media-query in map-keys($media-queries) {\n @for $i from 1 through length($spacers) {\n @include mq($media-query) {\n $size: #{map-get($spacers, sp-#{$i - 1})};\n $scale: #{$i - 1};\n\n // .d-sm-block, .d-md-none, .d-lg-inline\n .d-#{$media-query}-block {\n display: block !important;\n }\n .d-#{$media-query}-flex {\n display: flex !important;\n }\n .d-#{$media-query}-inline {\n display: inline !important;\n }\n .d-#{$media-query}-inline-block {\n display: inline-block !important;\n }\n .d-#{$media-query}-none {\n display: none !important;\n }\n }\n }\n}\n\n// Horizontal alignment\n\n.float-left {\n float: left !important;\n}\n\n.float-right {\n float: right !important;\n}\n\n.flex-justify-start {\n justify-content: flex-start !important;\n}\n\n.flex-justify-end {\n justify-content: flex-end !important;\n}\n\n.flex-justify-between {\n justify-content: space-between !important;\n}\n\n.flex-justify-around {\n justify-content: space-around !important;\n}\n\n// Vertical alignment\n\n.v-align-baseline {\n vertical-align: baseline !important;\n}\n\n.v-align-bottom {\n vertical-align: bottom !important;\n}\n\n.v-align-middle {\n vertical-align: middle !important;\n}\n\n.v-align-text-bottom {\n vertical-align: text-bottom !important;\n}\n\n.v-align-text-top {\n vertical-align: text-top !important;\n}\n\n.v-align-top {\n vertical-align: top !important;\n}\n","// Utility classes for typography\n\n.fs-1 {\n @include fs-1;\n}\n\n.fs-2 {\n @include fs-2;\n}\n\n.fs-3 {\n @include fs-3;\n}\n\n.fs-4 {\n @include fs-4;\n}\n\n.fs-5 {\n @include fs-5;\n}\n\n.fs-6 {\n @include fs-6;\n}\n\n.fs-7 {\n @include fs-7;\n}\n\n.fs-8 {\n @include fs-8;\n}\n\n.fs-9 {\n @include fs-9;\n}\n\n.fs-10 {\n @include fs-10;\n}\n\n.fw-300 {\n font-weight: 300 !important;\n}\n\n.fw-400 {\n font-weight: 400 !important;\n}\n\n.fw-500 {\n font-weight: 500 !important;\n}\n\n.fw-700 {\n font-weight: 700 !important;\n}\n\n.lh-0 {\n line-height: 0 !important;\n}\n\n.lh-default {\n line-height: $body-line-height;\n}\n\n.lh-tight {\n line-height: $body-heading-line-height;\n}\n\n.ls-5 {\n letter-spacing: 0.05em !important;\n}\n\n.ls-10 {\n letter-spacing: 0.1em !important;\n}\n\n.ls-0 {\n letter-spacing: 0 !important;\n}\n\n.text-uppercase {\n text-transform: uppercase !important;\n}\n","// Utility classes for lists\n\n// stylelint-disable selector-max-type\n\n.list-style-none {\n padding: 0 !important;\n margin: 0 !important;\n list-style: none !important;\n\n li {\n &::before {\n display: none !important;\n }\n }\n}\n","// Utility classes for margins and padding\n\n// stylelint-disable block-opening-brace-space-after, block-opening-brace-space-before\n\n// Margin spacer utilities\n\n.mx-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n}\n\n@for $i from 1 through length($spacers) {\n $size: #{map-get($spacers, sp-#{$i - 1})};\n $scale: #{$i - 1};\n\n // .m-0, .m-1, .m-2...\n .m-#{$scale} {\n margin: #{$size} !important;\n }\n .mt-#{$scale} {\n margin-top: #{$size} !important;\n }\n .mr-#{$scale} {\n margin-right: #{$size} !important;\n }\n .mb-#{$scale} {\n margin-bottom: #{$size} !important;\n }\n .ml-#{$scale} {\n margin-left: #{$size} !important;\n }\n\n .mx-#{$scale} {\n margin-right: #{$size} !important;\n margin-left: #{$size} !important;\n }\n\n .my-#{$scale} {\n margin-top: #{$size} !important;\n margin-bottom: #{$size} !important;\n }\n\n .mxn-#{$scale} {\n margin-right: -#{$size} !important;\n margin-left: -#{$size} !important;\n }\n .mx-#{$scale}-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n}\n\n@each $media-query in map-keys($media-queries) {\n @for $i from 1 through length($spacers) {\n @include mq($media-query) {\n $size: #{map-get($spacers, sp-#{$i - 1})};\n $scale: #{$i - 1};\n\n // .m-sm-0, .m-md-1, .m-lg-2...\n .m-#{$media-query}-#{$scale} {\n margin: #{$size} !important;\n }\n .mt-#{$media-query}-#{$scale} {\n margin-top: #{$size} !important;\n }\n .mr-#{$media-query}-#{$scale} {\n margin-right: #{$size} !important;\n }\n .mb-#{$media-query}-#{$scale} {\n margin-bottom: #{$size} !important;\n }\n .ml-#{$media-query}-#{$scale} {\n margin-left: #{$size} !important;\n }\n\n .mx-#{$media-query}-#{$scale} {\n margin-right: #{$size} !important;\n margin-left: #{$size} !important;\n }\n\n .my-#{$media-query}-#{$scale} {\n margin-top: #{$size} !important;\n margin-bottom: #{$size} !important;\n }\n\n .mxn-#{$media-query}-#{$scale} {\n margin-right: -#{$size} !important;\n margin-left: -#{$size} !important;\n }\n }\n }\n}\n\n// Padding spacer utilities\n\n@for $i from 1 through length($spacers) {\n $size: #{map-get($spacers, sp-#{$i - 1})};\n $scale: #{$i - 1};\n\n // .p-0, .p-1, .p-2...\n .p-#{$scale} {\n padding: #{$size} !important;\n }\n .pt-#{$scale} {\n padding-top: #{$size} !important;\n }\n .pr-#{$scale} {\n padding-right: #{$size} !important;\n }\n .pb-#{$scale} {\n padding-bottom: #{$size} !important;\n }\n .pl-#{$scale} {\n padding-left: #{$size} !important;\n }\n\n .px-#{$scale} {\n padding-right: #{$size} !important;\n padding-left: #{$size} !important;\n }\n\n .py-#{$scale} {\n padding-top: #{$size} !important;\n padding-bottom: #{$size} !important;\n }\n}\n\n@each $media-query in map-keys($media-queries) {\n @include mq($media-query) {\n @for $i from 1 through length($spacers) {\n $size: #{map-get($spacers, sp-#{$i - 1})};\n $scale: #{$i - 1};\n\n // .p-sm-0, .p-md-1, .p-lg-2...\n .p-#{$media-query}-#{$scale} {\n padding: #{$size} !important;\n }\n .pt-#{$media-query}-#{$scale} {\n padding-top: #{$size} !important;\n }\n .pr-#{$media-query}-#{$scale} {\n padding-right: #{$size} !important;\n }\n .pb-#{$media-query}-#{$scale} {\n padding-bottom: #{$size} !important;\n }\n .pl-#{$media-query}-#{$scale} {\n padding-left: #{$size} !important;\n }\n\n .px-#{$media-query}-#{$scale} {\n padding-right: #{$size} !important;\n padding-left: #{$size} !important;\n }\n\n .py-#{$media-query}-#{$scale} {\n padding-top: #{$size} !important;\n padding-bottom: #{$size} !important;\n }\n }\n }\n}\n","// stylelint-disable selector-max-specificity, selector-max-id, selector-max-type, selector-no-qualifying-type\n\n@media print {\n .site-footer,\n .site-button,\n #edit-this-page,\n #back-to-top,\n .site-nav,\n .main-header {\n display: none !important;\n }\n\n .side-bar {\n width: 100%;\n height: auto;\n border-right: 0 !important;\n }\n\n .site-header {\n border-bottom: 1px solid $border-color;\n }\n\n .site-title {\n font-size: 1rem !important;\n font-weight: 700 !important;\n }\n\n .text-small {\n font-size: 8pt !important;\n }\n\n pre.highlight {\n border: 1px solid $border-color;\n }\n\n .main {\n max-width: none;\n margin-left: 0;\n }\n}\n","// Skipnav\n// Skip to main content\n\na.skip-to-main {\n left: -999px;\n position: absolute;\n top: auto;\n width: 1px;\n height: 1px;\n overflow: hidden;\n z-index: -999;\n}\n\na.skip-to-main:focus,\na.skip-to-main:active {\n color: $link-color;\n background-color: $body-background-color;\n left: auto;\n top: auto;\n width: 30%;\n height: auto;\n overflow: auto;\n margin: 10px 35%;\n padding: 5px;\n border-radius: 15px;\n border: 4px solid $btn-primary-color;\n text-align: center;\n font-size: 1.2em;\n z-index: 999;\n}\n","\n\n@import \"./support/support\";\n@import \"./custom/setup\";\n@import \"./color_schemes/light\";\n\n@import \"./modules\";\ndiv.opaque {\n background-color: $body-background-color;\n}\n@import \"./custom/custom\";\n\n\n"],"file":"just-the-docs-default.css"} \ No newline at end of file diff --git a/assets/css/just-the-docs-head-nav.css b/assets/css/just-the-docs-head-nav.css new file mode 100644 index 00000000..552a3af7 --- /dev/null +++ b/assets/css/just-the-docs-head-nav.css @@ -0,0 +1,3 @@ +.site-nav ul li a { + background-image: linear-gradient(-90deg, #ebedf5 0%, rgba(235, 237, 245, 0.8) 80%, rgba(235, 237, 245, 0) 100%); +} diff --git a/assets/css/just-the-docs-light.css b/assets/css/just-the-docs-light.css new file mode 100644 index 00000000..7eceac7a --- /dev/null +++ b/assets/css/just-the-docs-light.css @@ -0,0 +1,7331 @@ +@charset "UTF-8"; +@import url("https://fonts.googleapis.com/css2?family=Mukta+Mahee&display=swap"); +.highlight, +pre.highlight { + background: #f9f9f9; + color: #383942; +} + +.highlight pre { + background: #f9f9f9; +} + +.highlight .hll { + background: #f9f9f9; +} + +.highlight .c { + color: #9fa0a6; + font-style: italic; +} + +.highlight .err { + color: #fff; + background-color: #e05151; +} + +.highlight .k { + color: #a625a4; +} + +.highlight .l { + color: #50a04f; +} + +.highlight .n { + color: #383942; +} + +.highlight .o { + color: #383942; +} + +.highlight .p { + color: #383942; +} + +.highlight .cm { + color: #9fa0a6; + font-style: italic; +} + +.highlight .cp { + color: #9fa0a6; + font-style: italic; +} + +.highlight .c1 { + color: #9fa0a6; + font-style: italic; +} + +.highlight .cs { + color: #9fa0a6; + font-style: italic; +} + +.highlight .ge { + font-style: italic; +} + +.highlight .gs { + font-weight: 700; +} + +.highlight .kc { + color: #a625a4; +} + +.highlight .kd { + color: #a625a4; +} + +.highlight .kn { + color: #a625a4; +} + +.highlight .kp { + color: #a625a4; +} + +.highlight .kr { + color: #a625a4; +} + +.highlight .kt { + color: #a625a4; +} + +.highlight .ld { + color: #50a04f; +} + +.highlight .m { + color: #b66a00; +} + +.highlight .s { + color: #50a04f; +} + +.highlight .na { + color: #b66a00; +} + +.highlight .nb { + color: #ca7601; +} + +.highlight .nc { + color: #ca7601; +} + +.highlight .no { + color: #ca7601; +} + +.highlight .nd { + color: #ca7601; +} + +.highlight .ni { + color: #ca7601; +} + +.highlight .ne { + color: #ca7601; +} + +.highlight .nf { + color: #383942; +} + +.highlight .nl { + color: #ca7601; +} + +.highlight .nn { + color: #383942; +} + +.highlight .nx { + color: #383942; +} + +.highlight .py { + color: #ca7601; +} + +.highlight .nt { + color: #e35549; +} + +.highlight .nv { + color: #ca7601; +} + +.highlight .ow { + font-weight: 700; +} + +.highlight .w { + color: #f8f8f2; +} + +.highlight .mf { + color: #b66a00; +} + +.highlight .mh { + color: #b66a00; +} + +.highlight .mi { + color: #b66a00; +} + +.highlight .mo { + color: #b66a00; +} + +.highlight .sb { + color: #50a04f; +} + +.highlight .sc { + color: #50a04f; +} + +.highlight .sd { + color: #50a04f; +} + +.highlight .s2 { + color: #50a04f; +} + +.highlight .se { + color: #50a04f; +} + +.highlight .sh { + color: #50a04f; +} + +.highlight .si { + color: #50a04f; +} + +.highlight .sx { + color: #50a04f; +} + +.highlight .sr { + color: #0083bb; +} + +.highlight .s1 { + color: #50a04f; +} + +.highlight .ss { + color: #0083bb; +} + +.highlight .bp { + color: #ca7601; +} + +.highlight .vc { + color: #ca7601; +} + +.highlight .vg { + color: #ca7601; +} + +.highlight .vi { + color: #e35549; +} + +.highlight .il { + color: #b66a00; +} + +.highlight .gu { + color: #75715e; +} + +.highlight .gd { + color: #e05151; +} + +.highlight .gi { + color: #43d089; +} + +.highlight .language-json .w + .s2 { + color: #e35549; +} + +.highlight .language-json .kc { + color: #0083bb; +} + +/*! normalize.css v8.0.1 | 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; +} + +/** + * Render the `main` element consistently in IE. + */ +main { + display: block; +} + +/** + * 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 { + 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. + */ +abbr[title] { + border-bottom: none; /* 1 */ + text-decoration: underline; /* 2 */ + text-decoration: underline dotted; /* 2 */ +} + +/** + * 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, +kbd, +samp { + 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. + */ +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +/* 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, +optgroup, +select, +textarea { + 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, +select { + /* 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 { + 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. + */ +progress { + vertical-align: baseline; +} + +/** + * Remove the default vertical scrollbar in IE 10+. + */ +textarea { + overflow: auto; +} + +/** + * 1. Add the correct box sizing in IE 10. + * 2. Remove the padding in IE 10. + */ +[type=checkbox], +[type=radio] { + 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. + */ +summary { + display: list-item; +} + +/* Misc + ========================================================================== */ +/** + * Add the correct display in IE 10+. + */ +template { + display: none; +} + +/** + * Add the correct display in IE 10. + */ +[hidden] { + display: none; +} + +:root { + color-scheme: light; +} + +* { + box-sizing: border-box; +} + +html { + font-size: 0.875rem !important; + scroll-behavior: smooth; +} +@media (min-width: 31.25rem) { + html { + font-size: 1rem !important; + } +} + +body { + font-family: system-ui, -apple-system, blinkmacsystemfont, "Segoe UI", roboto, "Helvetica Neue", arial, sans-serif, "Segoe UI Emoji"; + font-size: inherit; + line-height: 1.4; + color: #5c5962; + background-color: #fff; + overflow-wrap: break-word; +} + +ol, +ul, +dl, +pre, +address, +blockquote, +table, +div, +hr, +form, +fieldset, +noscript .table-wrapper { + margin-top: 0; +} + +h1, +h2, +h3, +h4, +h5, +h6, +#toctitle { + margin-top: 0; + margin-bottom: 1em; + font-weight: 500; + line-height: 1.25; + color: #27262b; +} + +p { + margin-top: 1em; + margin-bottom: 1em; +} + +a { + color: #7253ed; + text-decoration: none; +} + +a:not([class]) { + text-decoration: underline; + text-decoration-color: #eeebee; + text-underline-offset: 2px; +} +a:not([class]):hover { + text-decoration-color: rgba(114, 83, 237, 0.45); +} + +code { + font-family: "SFMono-Regular", menlo, consolas, monospace; + font-size: 0.75em; + line-height: 1.4; +} + +figure, +pre { + margin: 0; +} + +li { + margin: 0.25em 0; +} + +img { + max-width: 100%; + height: auto; +} + +hr { + height: 1px; + padding: 0; + margin: 2rem 0; + background-color: #eeebee; + border: 0; +} + +blockquote { + margin: 10px 0; + margin-block-start: 0; + margin-inline-start: 0; + padding-left: 1rem; + border-left: 3px solid #eeebee; +} + +.side-bar { + z-index: 0; + display: flex; + flex-wrap: wrap; + background-color: #f5f6fa; +} +@media (min-width: 50rem) { + .side-bar { + flex-flow: column nowrap; + position: fixed; + width: 15.5rem; + height: 100%; + border-right: 1px solid #eeebee; + align-items: flex-end; + } +} +@media (min-width: 66.5rem) { + .side-bar { + width: calc((100% - 66.5rem) / 2 + 16.5rem); + min-width: 16.5rem; + } +} +@media (min-width: 50rem) { + .side-bar + .main { + margin-left: 15.5rem; + } +} +@media (min-width: 66.5rem) { + .side-bar + .main { + margin-left: max(16.5rem, (100% - 66.5rem) / 2 + 16.5rem); + } +} +.side-bar + .main .main-header { + display: none; + background-color: #f5f6fa; +} +@media (min-width: 50rem) { + .side-bar + .main .main-header { + display: flex; + background-color: #fff; + } +} +.side-bar + .main .main-header.nav-open { + display: block; +} +@media (min-width: 50rem) { + .side-bar + .main .main-header.nav-open { + display: flex; + } +} + +.main { + margin: auto; +} +@media (min-width: 50rem) { + .main { + position: relative; + max-width: 50rem; + } +} + +.main-content-wrap { + padding-right: 1rem; + padding-left: 1rem; + padding-top: 1rem; + padding-bottom: 1rem; +} +@media (min-width: 50rem) { + .main-content-wrap { + padding-right: 2rem; + padding-left: 2rem; + } +} +@media (min-width: 50rem) { + .main-content-wrap { + padding-top: 2rem; + padding-bottom: 2rem; + } +} + +.main-header { + z-index: 0; + border-bottom: 1px solid #eeebee; +} +@media (min-width: 50rem) { + .main-header { + display: flex; + justify-content: space-between; + height: 3.75rem; + } +} + +.site-nav, +.site-header, +.site-footer { + width: 100%; +} +@media (min-width: 66.5rem) { + .site-nav, + .site-header, + .site-footer { + width: 16.5rem; + } +} + +.site-nav { + display: none; +} +.site-nav.nav-open { + display: block; +} +@media (min-width: 50rem) { + .site-nav { + display: block; + padding-top: 3rem; + padding-bottom: 1rem; + overflow-y: auto; + flex: 1 1 auto; + } +} + +.site-header { + display: flex; + min-height: 3.75rem; + align-items: center; +} +@media (min-width: 50rem) { + .site-header { + height: 3.75rem; + max-height: 3.75rem; + border-bottom: 1px solid #eeebee; + } +} + +.site-title { + padding-right: 1rem; + padding-left: 1rem; + flex-grow: 1; + display: flex; + height: 100%; + align-items: center; + padding-top: 0.75rem; + padding-bottom: 0.75rem; + color: #27262b; + font-size: 1.125rem !important; +} +@media (min-width: 50rem) { + .site-title { + padding-right: 2rem; + padding-left: 2rem; + } +} +@media (min-width: 31.25rem) { + .site-title { + font-size: 1.5rem !important; + line-height: 1.25; + } +} +@media (min-width: 50rem) { + .site-title { + padding-top: 0.5rem; + padding-bottom: 0.5rem; + } +} + +.site-button { + display: flex; + height: 100%; + padding: 1rem; + align-items: center; +} + +@media (min-width: 50rem) { + .site-header .site-button { + display: none; + } +} +.site-title:hover { + background-image: linear-gradient(-90deg, #ebedf5 0%, rgba(235, 237, 245, 0.8) 80%, rgba(235, 237, 245, 0) 100%); +} + +.site-button:hover { + background-image: linear-gradient(-90deg, #ebedf5 0%, rgba(235, 237, 245, 0.8) 100%); +} + +body { + position: relative; + padding-bottom: 4rem; + overflow-y: scroll; +} +@media (min-width: 50rem) { + body { + position: static; + padding-bottom: 0; + } +} + +.site-footer { + padding-right: 1rem; + padding-left: 1rem; + position: absolute; + bottom: 0; + left: 0; + padding-top: 1rem; + padding-bottom: 1rem; + color: #959396; + font-size: 0.6875rem !important; +} +@media (min-width: 50rem) { + .site-footer { + padding-right: 2rem; + padding-left: 2rem; + } +} +@media (min-width: 31.25rem) { + .site-footer { + font-size: 0.75rem !important; + } +} +@media (min-width: 50rem) { + .site-footer { + position: static; + justify-self: end; + } +} + +.icon { + width: 1.5rem; + height: 1.5rem; + color: #7253ed; +} + +.main-content { + line-height: 1.6; +} +.main-content ol, +.main-content ul, +.main-content dl, +.main-content pre, +.main-content address, +.main-content blockquote, +.main-content .table-wrapper { + margin-top: 0.5em; +} +.main-content a { + overflow: hidden; + text-overflow: ellipsis; +} +.main-content ul, +.main-content ol { + padding-left: 1.5em; +} +.main-content li .highlight { + margin-top: 0.25rem; +} +.main-content ol { + list-style-type: none; + counter-reset: step-counter; +} +.main-content ol > li { + position: relative; +} +.main-content ol > li::before { + position: absolute; + top: 0.2em; + left: -1.6em; + color: #959396; + content: counter(step-counter); + counter-increment: step-counter; + font-size: 0.75rem !important; +} +@media (min-width: 31.25rem) { + .main-content ol > li::before { + font-size: 0.875rem !important; + } +} +@media (min-width: 31.25rem) { + .main-content ol > li::before { + top: 0.11em; + } +} +.main-content ol > li ol { + counter-reset: sub-counter; +} +.main-content ol > li ol > li::before { + content: counter(sub-counter, lower-alpha); + counter-increment: sub-counter; +} +.main-content ul { + list-style: none; +} +.main-content ul > li::before { + position: absolute; + margin-left: -1.4em; + color: #959396; + content: "•"; +} +.main-content .task-list-item::before { + content: ""; +} +.main-content .task-list-item-checkbox { + margin-right: 0.6em; + margin-left: -1.4em; +} +.main-content hr + * { + margin-top: 0; +} +.main-content h1:first-of-type { + margin-top: 0.5em; +} +.main-content dl { + display: grid; + grid-template: auto/10em 1fr; +} +.main-content dt, +.main-content dd { + margin: 0.25em 0; +} +.main-content dt { + grid-column: 1; + font-weight: 500; + text-align: right; +} +.main-content dt::after { + content: ":"; +} +.main-content dd { + grid-column: 2; + margin-bottom: 0; + margin-left: 1em; +} +.main-content dd blockquote:first-child, +.main-content dd div:first-child, +.main-content dd dl:first-child, +.main-content dd dt:first-child, +.main-content dd h1:first-child, +.main-content dd h2:first-child, +.main-content dd h3:first-child, +.main-content dd h4:first-child, +.main-content dd h5:first-child, +.main-content dd h6:first-child, +.main-content dd li:first-child, +.main-content dd ol:first-child, +.main-content dd p:first-child, +.main-content dd pre:first-child, +.main-content dd table:first-child, +.main-content dd ul:first-child, +.main-content dd .table-wrapper:first-child { + margin-top: 0; +} +.main-content dd dl:first-child dt:first-child, +.main-content dd dl:first-child dd:nth-child(2), +.main-content ol dl:first-child dt:first-child, +.main-content ol dl:first-child dd:nth-child(2), +.main-content ul dl:first-child dt:first-child, +.main-content ul dl:first-child dd:nth-child(2) { + margin-top: 0; +} +.main-content .anchor-heading { + position: absolute; + right: -1rem; + width: 1.5rem; + height: 100%; + padding-right: 0.25rem; + padding-left: 0.25rem; + overflow: visible; +} +@media (min-width: 50rem) { + .main-content .anchor-heading { + right: auto; + left: -1.5rem; + } +} +.main-content .anchor-heading svg { + display: inline-block; + width: 100%; + height: 100%; + color: #7253ed; + visibility: hidden; +} +.main-content .anchor-heading:hover svg, +.main-content .anchor-heading:focus svg, +.main-content h1:hover > .anchor-heading svg, +.main-content h2:hover > .anchor-heading svg, +.main-content h3:hover > .anchor-heading svg, +.main-content h4:hover > .anchor-heading svg, +.main-content h5:hover > .anchor-heading svg, +.main-content h6:hover > .anchor-heading svg { + visibility: visible; +} +.main-content summary { + cursor: pointer; +} +.main-content h1, +.main-content h2, +.main-content h3, +.main-content h4, +.main-content h5, +.main-content h6, +.main-content #toctitle { + position: relative; + margin-top: 1.5em; + margin-bottom: 0.25em; +} +.main-content h1 + table, +.main-content h1 + .table-wrapper, +.main-content h1 + .code-example, +.main-content h1 + .highlighter-rouge, +.main-content h1 + .sectionbody .listingblock, +.main-content h2 + table, +.main-content h2 + .table-wrapper, +.main-content h2 + .code-example, +.main-content h2 + .highlighter-rouge, +.main-content h2 + .sectionbody .listingblock, +.main-content h3 + table, +.main-content h3 + .table-wrapper, +.main-content h3 + .code-example, +.main-content h3 + .highlighter-rouge, +.main-content h3 + .sectionbody .listingblock, +.main-content h4 + table, +.main-content h4 + .table-wrapper, +.main-content h4 + .code-example, +.main-content h4 + .highlighter-rouge, +.main-content h4 + .sectionbody .listingblock, +.main-content h5 + table, +.main-content h5 + .table-wrapper, +.main-content h5 + .code-example, +.main-content h5 + .highlighter-rouge, +.main-content h5 + .sectionbody .listingblock, +.main-content h6 + table, +.main-content h6 + .table-wrapper, +.main-content h6 + .code-example, +.main-content h6 + .highlighter-rouge, +.main-content h6 + .sectionbody .listingblock, +.main-content #toctitle + table, +.main-content #toctitle + .table-wrapper, +.main-content #toctitle + .code-example, +.main-content #toctitle + .highlighter-rouge, +.main-content #toctitle + .sectionbody .listingblock { + margin-top: 1em; +} +.main-content h1 + p:not(.label), +.main-content h2 + p:not(.label), +.main-content h3 + p:not(.label), +.main-content h4 + p:not(.label), +.main-content h5 + p:not(.label), +.main-content h6 + p:not(.label), +.main-content #toctitle + p:not(.label) { + margin-top: 0; +} +.main-content > h1:first-child, +.main-content > h2:first-child, +.main-content > h3:first-child, +.main-content > h4:first-child, +.main-content > h5:first-child, +.main-content > h6:first-child, +.main-content > .sect1:first-child > h2, +.main-content > .sect2:first-child > h3, +.main-content > .sect3:first-child > h4, +.main-content > .sect4:first-child > h5, +.main-content > .sect5:first-child > h6 { + margin-top: 0.5rem; +} + +.nav-list { + padding: 0; + margin-top: 0; + margin-bottom: 0; + list-style: none; +} +.nav-list .nav-list-item { + font-size: 0.875rem !important; + position: relative; + margin: 0; +} +@media (min-width: 31.25rem) { + .nav-list .nav-list-item { + font-size: 1rem !important; + } +} +@media (min-width: 50rem) { + .nav-list .nav-list-item { + font-size: 0.75rem !important; + } +} +@media (min-width: 50rem) and (min-width: 31.25rem) { + .nav-list .nav-list-item { + font-size: 0.875rem !important; + } +} +.nav-list .nav-list-item .nav-list-link { + display: block; + min-height: 3rem; + padding-top: 0.25rem; + padding-bottom: 0.25rem; + line-height: 2.5rem; + padding-right: 3rem; + padding-left: 1rem; +} +@media (min-width: 50rem) { + .nav-list .nav-list-item .nav-list-link { + min-height: 2rem; + line-height: 1.5rem; + padding-right: 2rem; + padding-left: 2rem; + } +} +.nav-list .nav-list-item .nav-list-link.external > svg { + width: 1rem; + height: 1rem; + vertical-align: text-bottom; +} +.nav-list .nav-list-item .nav-list-link.active { + font-weight: 600; + text-decoration: none; +} +.nav-list .nav-list-item .nav-list-link:hover, .nav-list .nav-list-item .nav-list-link.active { + background-image: linear-gradient(-90deg, #ebedf5 0%, rgba(235, 237, 245, 0.8) 80%, rgba(235, 237, 245, 0) 100%); +} +.nav-list .nav-list-item .nav-list-expander { + position: absolute; + right: 0; + width: 3rem; + height: 3rem; + padding: 0.75rem; + color: #7253ed; +} +@media (min-width: 50rem) { + .nav-list .nav-list-item .nav-list-expander { + width: 2rem; + height: 2rem; + padding: 0.5rem; + } +} +.nav-list .nav-list-item .nav-list-expander:hover { + background-image: linear-gradient(-90deg, #ebedf5 0%, rgba(235, 237, 245, 0.8) 100%); +} +.nav-list .nav-list-item .nav-list-expander svg { + transform: rotate(90deg); +} +.nav-list .nav-list-item > .nav-list { + display: none; + padding-left: 0.75rem; + list-style: none; +} +.nav-list .nav-list-item > .nav-list .nav-list-item { + position: relative; +} +.nav-list .nav-list-item > .nav-list .nav-list-item .nav-list-link { + color: #5c5962; +} +.nav-list .nav-list-item > .nav-list .nav-list-item .nav-list-expander { + color: #5c5962; +} +.nav-list .nav-list-item.active > .nav-list-expander svg { + transform: rotate(-90deg); +} +.nav-list .nav-list-item.active > .nav-list { + display: block; +} + +.nav-category { + padding: 0.5rem 1rem; + font-weight: 600; + text-align: start; + text-transform: uppercase; + border-bottom: 1px solid #eeebee; + font-size: 0.6875rem !important; +} +@media (min-width: 31.25rem) { + .nav-category { + font-size: 0.75rem !important; + } +} +@media (min-width: 50rem) { + .nav-category { + padding: 0.5rem 2rem; + margin-top: 1rem; + text-align: start; + } + .nav-category:first-child { + margin-top: 0; + } +} + +.nav-list.nav-category-list > .nav-list-item { + margin: 0; +} +.nav-list.nav-category-list > .nav-list-item > .nav-list { + padding: 0; +} +.nav-list.nav-category-list > .nav-list-item > .nav-list > .nav-list-item > .nav-list-link { + color: #7253ed; +} +.nav-list.nav-category-list > .nav-list-item > .nav-list > .nav-list-item > .nav-list-expander { + color: #7253ed; +} + +.aux-nav { + height: 100%; + overflow-x: auto; + font-size: 0.6875rem !important; +} +@media (min-width: 31.25rem) { + .aux-nav { + font-size: 0.75rem !important; + } +} +.aux-nav .aux-nav-list { + display: flex; + height: 100%; + padding: 0; + margin: 0; + list-style: none; +} +.aux-nav .aux-nav-list-item { + display: inline-block; + height: 100%; + padding: 0; + margin: 0; +} +@media (min-width: 50rem) { + .aux-nav { + padding-right: 1rem; + } +} + +@media (min-width: 50rem) { + .breadcrumb-nav { + margin-top: -1rem; + } +} + +.breadcrumb-nav-list { + padding-left: 0; + margin-bottom: 0.75rem; + list-style: none; +} + +.breadcrumb-nav-list-item { + display: table-cell; + font-size: 0.6875rem !important; +} +@media (min-width: 31.25rem) { + .breadcrumb-nav-list-item { + font-size: 0.75rem !important; + } +} +.breadcrumb-nav-list-item::before { + display: none; +} +.breadcrumb-nav-list-item::after { + display: inline-block; + margin-right: 0.5rem; + margin-left: 0.5rem; + color: #959396; + content: "/"; +} +.breadcrumb-nav-list-item:last-child::after { + content: ""; +} + +h1, +.text-alpha { + font-size: 2rem !important; + line-height: 1.25; + font-weight: 300; +} +@media (min-width: 31.25rem) { + h1, + .text-alpha { + font-size: 2.25rem !important; + } +} + +h2, +.text-beta, +#toctitle { + font-size: 1.125rem !important; +} +@media (min-width: 31.25rem) { + h2, + .text-beta, + #toctitle { + font-size: 1.5rem !important; + line-height: 1.25; + } +} + +h3, +.text-gamma { + font-size: 1rem !important; +} +@media (min-width: 31.25rem) { + h3, + .text-gamma { + font-size: 1.125rem !important; + } +} + +h4, +.text-delta { + font-size: 0.6875rem !important; + font-weight: 400; + text-transform: uppercase; + letter-spacing: 0.1em; +} +@media (min-width: 31.25rem) { + h4, + .text-delta { + font-size: 0.75rem !important; + } +} + +h4 code { + text-transform: none; +} + +h5, +.text-epsilon { + font-size: 0.75rem !important; +} +@media (min-width: 31.25rem) { + h5, + .text-epsilon { + font-size: 0.875rem !important; + } +} + +h6, +.text-zeta { + font-size: 0.6875rem !important; +} +@media (min-width: 31.25rem) { + h6, + .text-zeta { + font-size: 0.75rem !important; + } +} + +.text-small { + font-size: 0.6875rem !important; +} +@media (min-width: 31.25rem) { + .text-small { + font-size: 0.75rem !important; + } +} + +.text-mono { + font-family: "SFMono-Regular", menlo, consolas, monospace !important; +} + +.text-left { + text-align: left !important; +} + +.text-center { + text-align: center !important; +} + +.text-right { + text-align: right !important; +} + +.label:not(g), +.label-blue:not(g) { + display: inline-block; + padding: 0.16em 0.56em; + margin-right: 0.5rem; + margin-left: 0.5rem; + color: #fff; + text-transform: uppercase; + vertical-align: middle; + background-color: #2869e6; + font-size: 0.6875rem !important; + border-radius: 12px; +} +@media (min-width: 31.25rem) { + .label:not(g), + .label-blue:not(g) { + font-size: 0.75rem !important; + } +} + +.label-green:not(g) { + background-color: #009c7b; +} + +.label-purple:not(g) { + background-color: #5e41d0; +} + +.label-red:not(g) { + background-color: #e94c4c; +} + +.label-yellow:not(g) { + color: #44434d; + background-color: #f7d12e; +} + +.btn { + display: inline-block; + box-sizing: border-box; + padding: 0.3em 1em; + margin: 0; + font-family: inherit; + font-size: inherit; + font-weight: 500; + line-height: 1.5; + color: #7253ed; + text-decoration: none; + vertical-align: baseline; + cursor: pointer; + background-color: #f7f7f7; + border-width: 0; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + appearance: none; +} +.btn:focus { + text-decoration: none; + outline: none; + box-shadow: 0 0 0 3px rgba(0, 0, 255, 0.25); +} +.btn:focus:hover, .btn.selected:focus { + box-shadow: 0 0 0 3px rgba(0, 0, 255, 0.25); +} +.btn:hover, .btn.zeroclipboard-is-hover { + color: #6a4aec; +} +.btn:hover, .btn:active, .btn.zeroclipboard-is-hover, .btn.zeroclipboard-is-active { + text-decoration: none; + background-color: #f4f4f4; +} +.btn:active, .btn.selected, .btn.zeroclipboard-is-active { + background-color: #efefef; + background-image: none; + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); +} +.btn.selected:hover { + background-color: #cfcfcf; +} +.btn:disabled, .btn:disabled:hover, .btn.disabled, .btn.disabled:hover { + color: rgba(102, 102, 102, 0.5); + cursor: default; + background-color: rgba(229, 229, 229, 0.5); + background-image: none; + box-shadow: none; +} + +.btn-outline { + color: #7253ed; + background: transparent; + box-shadow: inset 0 0 0 2px #e6e1e8; +} +.btn-outline:hover, .btn-outline:active, .btn-outline.zeroclipboard-is-hover, .btn-outline.zeroclipboard-is-active { + color: #6341eb; + text-decoration: none; + background-color: transparent; + box-shadow: inset 0 0 0 3px #e6e1e8; +} +.btn-outline:focus { + text-decoration: none; + outline: none; + box-shadow: inset 0 0 0 2px #5c5962, 0 0 0 3px rgba(0, 0, 255, 0.25); +} +.btn-outline:focus:hover, .btn-outline.selected:focus { + box-shadow: inset 0 0 0 2px #5c5962; +} + +.btn-primary { + color: #fff; + background-color: #5739ce; + background-image: linear-gradient(#6f55d5, #5739ce); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), 0 4px 10px rgba(0, 0, 0, 0.12); +} +.btn-primary:hover, .btn-primary.zeroclipboard-is-hover { + color: #fff; + background-color: #5132cb; + background-image: linear-gradient(#6549d2, #5132cb); +} +.btn-primary:active, .btn-primary.selected, .btn-primary.zeroclipboard-is-active { + background-color: #4f31c6; + background-image: none; + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); +} +.btn-primary.selected:hover { + background-color: #472cb2; +} + +.btn-purple { + color: #fff; + background-color: #5739ce; + background-image: linear-gradient(#6f55d5, #5739ce); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), 0 4px 10px rgba(0, 0, 0, 0.12); +} +.btn-purple:hover, .btn-purple.zeroclipboard-is-hover { + color: #fff; + background-color: #5132cb; + background-image: linear-gradient(#6549d2, #5132cb); +} +.btn-purple:active, .btn-purple.selected, .btn-purple.zeroclipboard-is-active { + background-color: #4f31c6; + background-image: none; + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); +} +.btn-purple.selected:hover { + background-color: #472cb2; +} + +.btn-blue { + color: #fff; + background-color: #227efa; + background-image: linear-gradient(#4593fb, #227efa); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), 0 4px 10px rgba(0, 0, 0, 0.12); +} +.btn-blue:hover, .btn-blue.zeroclipboard-is-hover { + color: #fff; + background-color: #1878fa; + background-image: linear-gradient(#368afa, #1878fa); +} +.btn-blue:active, .btn-blue.selected, .btn-blue.zeroclipboard-is-active { + background-color: #1375f9; + background-image: none; + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); +} +.btn-blue.selected:hover { + background-color: #0669ed; +} + +.btn-green { + color: #fff; + background-color: #10ac7d; + background-image: linear-gradient(#13cc95, #10ac7d); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), 0 4px 10px rgba(0, 0, 0, 0.12); +} +.btn-green:hover, .btn-green.zeroclipboard-is-hover { + color: #fff; + background-color: #0fa276; + background-image: linear-gradient(#12be8b, #0fa276); +} +.btn-green:active, .btn-green.selected, .btn-green.zeroclipboard-is-active { + background-color: #0f9e73; + background-image: none; + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); +} +.btn-green.selected:hover { + background-color: #0d8662; +} + +.btn-reset { + background: none; + border: none; + margin: 0; + text-align: inherit; + font: inherit; + border-radius: 0; + appearance: none; +} + +.search { + position: relative; + z-index: 2; + flex-grow: 1; + height: 4rem; + padding: 0.5rem; + transition: padding linear 200ms; +} +@media (min-width: 50rem) { + .search { + position: relative !important; + width: auto !important; + height: 100% !important; + padding: 0; + transition: none; + } +} + +.search-input-wrap { + position: relative; + z-index: 1; + height: 3rem; + overflow: hidden; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + transition: height linear 200ms; +} +@media (min-width: 50rem) { + .search-input-wrap { + position: absolute; + width: 100%; + max-width: 33.5rem; + height: 100% !important; + border-radius: 0; + box-shadow: none; + transition: width ease 400ms; + } +} + +.search-input { + position: absolute; + width: 100%; + height: 100%; + padding: 0.5rem 1rem 0.5rem 2.5rem; + font-size: 1rem; + color: #5c5962; + background-color: #fff; + border-top: 0; + border-right: 0; + border-bottom: 0; + border-left: 0; + border-radius: 0; +} +@media (min-width: 50rem) { + .search-input { + padding: 0.5rem 1rem 0.5rem 3.5rem; + font-size: 0.875rem; + background-color: #fff; + transition: padding-left linear 200ms; + } +} +.search-input:focus { + outline: 0; +} +.search-input:focus + .search-label .search-icon { + color: #7253ed; +} + +.search-label { + position: absolute; + display: flex; + height: 100%; + padding-left: 1rem; +} +@media (min-width: 50rem) { + .search-label { + padding-left: 2rem; + transition: padding-left linear 200ms; + } +} +.search-label .search-icon { + width: 1.2rem; + height: 1.2rem; + align-self: center; + color: #959396; +} + +.search-results { + position: absolute; + left: 0; + display: none; + width: 100%; + max-height: calc(100% - 4rem); + overflow-y: auto; + background-color: #fff; + border-bottom-right-radius: 4px; + border-bottom-left-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); +} +@media (min-width: 50rem) { + .search-results { + top: 100%; + width: 33.5rem; + max-height: calc(100vh - 200%) !important; + } +} + +.search-results-list { + padding-left: 0; + margin-bottom: 0.25rem; + list-style: none; + font-size: 0.875rem !important; +} +@media (min-width: 31.25rem) { + .search-results-list { + font-size: 1rem !important; + } +} +@media (min-width: 50rem) { + .search-results-list { + font-size: 0.75rem !important; + } +} +@media (min-width: 50rem) and (min-width: 31.25rem) { + .search-results-list { + font-size: 0.875rem !important; + } +} + +.search-results-list-item { + padding: 0; + margin: 0; +} + +.search-result { + display: block; + padding: 0.25rem 0.75rem; +} +.search-result:hover, .search-result.active { + background-color: #ebedf5; +} + +.search-result-title { + display: block; + padding-top: 0.5rem; + padding-bottom: 0.5rem; +} +@media (min-width: 31.25rem) { + .search-result-title { + display: inline-block; + width: 40%; + padding-right: 0.5rem; + vertical-align: top; + } +} + +.search-result-doc { + display: flex; + align-items: center; + word-wrap: break-word; +} +.search-result-doc.search-result-doc-parent { + opacity: 0.5; + font-size: 0.75rem !important; +} +@media (min-width: 31.25rem) { + .search-result-doc.search-result-doc-parent { + font-size: 0.875rem !important; + } +} +@media (min-width: 50rem) { + .search-result-doc.search-result-doc-parent { + font-size: 0.6875rem !important; + } +} +@media (min-width: 50rem) and (min-width: 31.25rem) { + .search-result-doc.search-result-doc-parent { + font-size: 0.75rem !important; + } +} +.search-result-doc .search-result-icon { + width: 1rem; + height: 1rem; + margin-right: 0.5rem; + color: #7253ed; + flex-shrink: 0; +} +.search-result-doc .search-result-doc-title { + overflow: auto; +} + +.search-result-section { + margin-left: 1.5rem; + word-wrap: break-word; +} + +.search-result-rel-url { + display: block; + margin-left: 1.5rem; + overflow: hidden; + color: #959396; + text-overflow: ellipsis; + white-space: nowrap; + font-size: 0.5625rem !important; +} +@media (min-width: 31.25rem) { + .search-result-rel-url { + font-size: 0.625rem !important; + } +} + +.search-result-previews { + display: block; + padding-top: 0.5rem; + padding-bottom: 0.5rem; + padding-left: 1rem; + margin-left: 0.5rem; + color: #959396; + word-wrap: break-word; + border-left: 1px solid; + border-left-color: #eeebee; + font-size: 0.6875rem !important; +} +@media (min-width: 31.25rem) { + .search-result-previews { + font-size: 0.75rem !important; + } +} +@media (min-width: 31.25rem) { + .search-result-previews { + display: inline-block; + width: 60%; + padding-left: 0.5rem; + margin-left: 0; + vertical-align: top; + } +} + +.search-result-preview + .search-result-preview { + margin-top: 0.25rem; +} + +.search-result-highlight { + font-weight: bold; +} + +.search-no-result { + padding: 0.5rem 0.75rem; + font-size: 0.75rem !important; +} +@media (min-width: 31.25rem) { + .search-no-result { + font-size: 0.875rem !important; + } +} + +.search-button { + position: fixed; + right: 1rem; + bottom: 1rem; + display: flex; + width: 3.5rem; + height: 3.5rem; + background-color: #fff; + border: 1px solid rgba(114, 83, 237, 0.3); + border-radius: 1.75rem; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + align-items: center; + justify-content: center; +} + +.search-overlay { + position: fixed; + top: 0; + left: 0; + z-index: 1; + width: 0; + height: 0; + background-color: rgba(0, 0, 0, 0.3); + opacity: 0; + transition: opacity ease 400ms, width 0s 400ms, height 0s 400ms; +} + +.search-active .search { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + padding: 0; +} +.search-active .search-input-wrap { + height: 4rem; + border-radius: 0; +} +@media (min-width: 50rem) { + .search-active .search-input-wrap { + width: 33.5rem; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + } +} +.search-active .search-input { + background-color: #fff; +} +@media (min-width: 50rem) { + .search-active .search-input { + padding-left: 2.3rem; + } +} +@media (min-width: 50rem) { + .search-active .search-label { + padding-left: 0.6rem; + } +} +.search-active .search-results { + display: block; +} +.search-active .search-overlay { + width: 100%; + height: 100%; + opacity: 1; + transition: opacity ease 400ms, width 0s, height 0s; +} +@media (min-width: 50rem) { + .search-active .main { + position: fixed; + right: 0; + left: 0; + } +} +.search-active .main-header { + padding-top: 4rem; +} +@media (min-width: 50rem) { + .search-active .main-header { + padding-top: 0; + } +} + +.table-wrapper { + display: block; + width: 100%; + max-width: 100%; + margin-bottom: 1.5rem; + overflow-x: auto; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); +} + +table { + display: table; + min-width: 100%; + border-collapse: separate; +} + +th, +td { + font-size: 0.75rem !important; + min-width: 7.5rem; + padding: 0.5rem 0.75rem; + background-color: #fff; + border-bottom: 1px solid rgba(238, 235, 238, 0.5); + border-left: 1px solid #eeebee; +} +@media (min-width: 31.25rem) { + th, + td { + font-size: 0.875rem !important; + } +} +th:first-of-type, +td:first-of-type { + border-left: 0; +} + +tbody tr:last-of-type th, +tbody tr:last-of-type td { + border-bottom: 0; +} +tbody tr:last-of-type td { + padding-bottom: 0.75rem; +} + +thead th { + border-bottom: 1px solid #eeebee; +} + +:not(pre, figure) > code { + padding: 0.2em 0.15em; + font-weight: 400; + background-color: #f5f6fa; + border: 1px solid #eeebee; + border-radius: 4px; +} + +a:visited code { + border-color: #eeebee; +} + +div.highlighter-rouge, +div.listingblock > div.content, +figure.highlight { + margin-top: 0; + margin-bottom: 0.75rem; + background-color: #f5f6fa; + border-radius: 4px; + box-shadow: none; + -webkit-overflow-scrolling: touch; + position: relative; + padding: 0; +} +div.highlighter-rouge > button, +div.listingblock > div.content > button, +figure.highlight > button { + width: 0.75rem; + opacity: 0; + position: absolute; + top: 0; + right: 0; + border: 0.75rem solid #f5f6fa; + background-color: #f5f6fa; + color: #5c5962; + box-sizing: content-box; +} +div.highlighter-rouge > button svg, +div.listingblock > div.content > button svg, +figure.highlight > button svg { + fill: #5c5962; +} +div.highlighter-rouge > button:active, +div.listingblock > div.content > button:active, +figure.highlight > button:active { + text-decoration: none; + outline: none; + opacity: 1; +} +div.highlighter-rouge > button:focus, +div.listingblock > div.content > button:focus, +figure.highlight > button:focus { + opacity: 1; +} +div.highlighter-rouge:hover > button, +div.listingblock > div.content:hover > button, +figure.highlight:hover > button { + cursor: copy; + opacity: 1; +} + +div.highlighter-rouge div.highlight { + overflow-x: auto; + padding: 0.75rem; + margin: 0; + border: 0; +} +div.highlighter-rouge pre.highlight, +div.highlighter-rouge code { + padding: 0; + margin: 0; + border: 0; +} + +div.listingblock { + margin-top: 0; + margin-bottom: 0.75rem; +} +div.listingblock div.content { + overflow-x: auto; + padding: 0.75rem; + margin: 0; + border: 0; +} +div.listingblock div.content > pre, +div.listingblock code { + padding: 0; + margin: 0; + border: 0; +} + +figure.highlight pre, +figure.highlight :not(pre) > code { + overflow-x: auto; + padding: 0.75rem; + margin: 0; + border: 0; +} + +.highlight .table-wrapper { + padding: 0.75rem 0; + margin: 0; + border: 0; + box-shadow: none; +} +.highlight .table-wrapper td, +.highlight .table-wrapper pre { + font-size: 0.6875rem !important; + min-width: 0; + padding: 0; + background-color: #f5f6fa; + border: 0; +} +@media (min-width: 31.25rem) { + .highlight .table-wrapper td, + .highlight .table-wrapper pre { + font-size: 0.75rem !important; + } +} +.highlight .table-wrapper td.gl { + width: 1em; + padding-right: 0.75rem; + padding-left: 0.75rem; +} +.highlight .table-wrapper pre { + margin: 0; + line-height: 2; +} + +.code-example, +.listingblock > .title { + padding: 0.75rem; + margin-bottom: 0.75rem; + overflow: auto; + border: 1px solid #eeebee; + border-radius: 4px; +} +.code-example + .highlighter-rouge, +.code-example + .sectionbody .listingblock, +.code-example + .content, +.code-example + figure.highlight, +.listingblock > .title + .highlighter-rouge, +.listingblock > .title + .sectionbody .listingblock, +.listingblock > .title + .content, +.listingblock > .title + figure.highlight { + position: relative; + margin-top: -1rem; + border-right: 1px solid #eeebee; + border-bottom: 1px solid #eeebee; + border-left: 1px solid #eeebee; + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +code.language-mermaid { + padding: 0; + background-color: inherit; + border: 0; +} + +.highlight, +pre.highlight { + background: #f5f6fa; + color: #5c5962; +} + +.highlight pre { + background: #f5f6fa; +} + +.text-grey-dk-000 { + color: #959396 !important; +} + +.text-grey-dk-100 { + color: #5c5962 !important; +} + +.text-grey-dk-200 { + color: #44434d !important; +} + +.text-grey-dk-250 { + color: #302d36 !important; +} + +.text-grey-dk-300 { + color: #27262b !important; +} + +.text-grey-lt-000 { + color: #f5f6fa !important; +} + +.text-grey-lt-100 { + color: #eeebee !important; +} + +.text-grey-lt-200 { + color: #ecebed !important; +} + +.text-grey-lt-300 { + color: #e6e1e8 !important; +} + +.text-blue-000 { + color: #2c84fa !important; +} + +.text-blue-100 { + color: #2869e6 !important; +} + +.text-blue-200 { + color: #264caf !important; +} + +.text-blue-300 { + color: #183385 !important; +} + +.text-green-000 { + color: #41d693 !important; +} + +.text-green-100 { + color: #11b584 !important; +} + +.text-green-200 { + color: #009c7b !important; +} + +.text-green-300 { + color: #026e57 !important; +} + +.text-purple-000 { + color: #7253ed !important; +} + +.text-purple-100 { + color: #5e41d0 !important; +} + +.text-purple-200 { + color: #4e26af !important; +} + +.text-purple-300 { + color: #381885 !important; +} + +.text-yellow-000 { + color: #ffeb82 !important; +} + +.text-yellow-100 { + color: #fadf50 !important; +} + +.text-yellow-200 { + color: #f7d12e !important; +} + +.text-yellow-300 { + color: #e7af06 !important; +} + +.text-red-000 { + color: #f77e7e !important; +} + +.text-red-100 { + color: #f96e65 !important; +} + +.text-red-200 { + color: #e94c4c !important; +} + +.text-red-300 { + color: #dd2e2e !important; +} + +.bg-grey-dk-000 { + background-color: #959396 !important; +} + +.bg-grey-dk-100 { + background-color: #5c5962 !important; +} + +.bg-grey-dk-200 { + background-color: #44434d !important; +} + +.bg-grey-dk-250 { + background-color: #302d36 !important; +} + +.bg-grey-dk-300 { + background-color: #27262b !important; +} + +.bg-grey-lt-000 { + background-color: #f5f6fa !important; +} + +.bg-grey-lt-100 { + background-color: #eeebee !important; +} + +.bg-grey-lt-200 { + background-color: #ecebed !important; +} + +.bg-grey-lt-300 { + background-color: #e6e1e8 !important; +} + +.bg-blue-000 { + background-color: #2c84fa !important; +} + +.bg-blue-100 { + background-color: #2869e6 !important; +} + +.bg-blue-200 { + background-color: #264caf !important; +} + +.bg-blue-300 { + background-color: #183385 !important; +} + +.bg-green-000 { + background-color: #41d693 !important; +} + +.bg-green-100 { + background-color: #11b584 !important; +} + +.bg-green-200 { + background-color: #009c7b !important; +} + +.bg-green-300 { + background-color: #026e57 !important; +} + +.bg-purple-000 { + background-color: #7253ed !important; +} + +.bg-purple-100 { + background-color: #5e41d0 !important; +} + +.bg-purple-200 { + background-color: #4e26af !important; +} + +.bg-purple-300 { + background-color: #381885 !important; +} + +.bg-yellow-000 { + background-color: #ffeb82 !important; +} + +.bg-yellow-100 { + background-color: #fadf50 !important; +} + +.bg-yellow-200 { + background-color: #f7d12e !important; +} + +.bg-yellow-300 { + background-color: #e7af06 !important; +} + +.bg-red-000 { + background-color: #f77e7e !important; +} + +.bg-red-100 { + background-color: #f96e65 !important; +} + +.bg-red-200 { + background-color: #e94c4c !important; +} + +.bg-red-300 { + background-color: #dd2e2e !important; +} + +.d-block { + display: block !important; +} + +.d-flex { + display: flex !important; +} + +.d-inline { + display: inline !important; +} + +.d-inline-block { + display: inline-block !important; +} + +.d-none { + display: none !important; +} + +@media (min-width: 20rem) { + .d-xs-block { + display: block !important; + } + .d-xs-flex { + display: flex !important; + } + .d-xs-inline { + display: inline !important; + } + .d-xs-inline-block { + display: inline-block !important; + } + .d-xs-none { + display: none !important; + } +} +@media (min-width: 20rem) { + .d-xs-block { + display: block !important; + } + .d-xs-flex { + display: flex !important; + } + .d-xs-inline { + display: inline !important; + } + .d-xs-inline-block { + display: inline-block !important; + } + .d-xs-none { + display: none !important; + } +} +@media (min-width: 20rem) { + .d-xs-block { + display: block !important; + } + .d-xs-flex { + display: flex !important; + } + .d-xs-inline { + display: inline !important; + } + .d-xs-inline-block { + display: inline-block !important; + } + .d-xs-none { + display: none !important; + } +} +@media (min-width: 20rem) { + .d-xs-block { + display: block !important; + } + .d-xs-flex { + display: flex !important; + } + .d-xs-inline { + display: inline !important; + } + .d-xs-inline-block { + display: inline-block !important; + } + .d-xs-none { + display: none !important; + } +} +@media (min-width: 20rem) { + .d-xs-block { + display: block !important; + } + .d-xs-flex { + display: flex !important; + } + .d-xs-inline { + display: inline !important; + } + .d-xs-inline-block { + display: inline-block !important; + } + .d-xs-none { + display: none !important; + } +} +@media (min-width: 20rem) { + .d-xs-block { + display: block !important; + } + .d-xs-flex { + display: flex !important; + } + .d-xs-inline { + display: inline !important; + } + .d-xs-inline-block { + display: inline-block !important; + } + .d-xs-none { + display: none !important; + } +} +@media (min-width: 20rem) { + .d-xs-block { + display: block !important; + } + .d-xs-flex { + display: flex !important; + } + .d-xs-inline { + display: inline !important; + } + .d-xs-inline-block { + display: inline-block !important; + } + .d-xs-none { + display: none !important; + } +} +@media (min-width: 20rem) { + .d-xs-block { + display: block !important; + } + .d-xs-flex { + display: flex !important; + } + .d-xs-inline { + display: inline !important; + } + .d-xs-inline-block { + display: inline-block !important; + } + .d-xs-none { + display: none !important; + } +} +@media (min-width: 20rem) { + .d-xs-block { + display: block !important; + } + .d-xs-flex { + display: flex !important; + } + .d-xs-inline { + display: inline !important; + } + .d-xs-inline-block { + display: inline-block !important; + } + .d-xs-none { + display: none !important; + } +} +@media (min-width: 20rem) { + .d-xs-block { + display: block !important; + } + .d-xs-flex { + display: flex !important; + } + .d-xs-inline { + display: inline !important; + } + .d-xs-inline-block { + display: inline-block !important; + } + .d-xs-none { + display: none !important; + } +} +@media (min-width: 20rem) { + .d-xs-block { + display: block !important; + } + .d-xs-flex { + display: flex !important; + } + .d-xs-inline { + display: inline !important; + } + .d-xs-inline-block { + display: inline-block !important; + } + .d-xs-none { + display: none !important; + } +} +@media (min-width: 31.25rem) { + .d-sm-block { + display: block !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-none { + display: none !important; + } +} +@media (min-width: 31.25rem) { + .d-sm-block { + display: block !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-none { + display: none !important; + } +} +@media (min-width: 31.25rem) { + .d-sm-block { + display: block !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-none { + display: none !important; + } +} +@media (min-width: 31.25rem) { + .d-sm-block { + display: block !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-none { + display: none !important; + } +} +@media (min-width: 31.25rem) { + .d-sm-block { + display: block !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-none { + display: none !important; + } +} +@media (min-width: 31.25rem) { + .d-sm-block { + display: block !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-none { + display: none !important; + } +} +@media (min-width: 31.25rem) { + .d-sm-block { + display: block !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-none { + display: none !important; + } +} +@media (min-width: 31.25rem) { + .d-sm-block { + display: block !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-none { + display: none !important; + } +} +@media (min-width: 31.25rem) { + .d-sm-block { + display: block !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-none { + display: none !important; + } +} +@media (min-width: 31.25rem) { + .d-sm-block { + display: block !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-none { + display: none !important; + } +} +@media (min-width: 31.25rem) { + .d-sm-block { + display: block !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-none { + display: none !important; + } +} +@media (min-width: 50rem) { + .d-md-block { + display: block !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-none { + display: none !important; + } +} +@media (min-width: 50rem) { + .d-md-block { + display: block !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-none { + display: none !important; + } +} +@media (min-width: 50rem) { + .d-md-block { + display: block !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-none { + display: none !important; + } +} +@media (min-width: 50rem) { + .d-md-block { + display: block !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-none { + display: none !important; + } +} +@media (min-width: 50rem) { + .d-md-block { + display: block !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-none { + display: none !important; + } +} +@media (min-width: 50rem) { + .d-md-block { + display: block !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-none { + display: none !important; + } +} +@media (min-width: 50rem) { + .d-md-block { + display: block !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-none { + display: none !important; + } +} +@media (min-width: 50rem) { + .d-md-block { + display: block !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-none { + display: none !important; + } +} +@media (min-width: 50rem) { + .d-md-block { + display: block !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-none { + display: none !important; + } +} +@media (min-width: 50rem) { + .d-md-block { + display: block !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-none { + display: none !important; + } +} +@media (min-width: 50rem) { + .d-md-block { + display: block !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-none { + display: none !important; + } +} +@media (min-width: 66.5rem) { + .d-lg-block { + display: block !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-none { + display: none !important; + } +} +@media (min-width: 66.5rem) { + .d-lg-block { + display: block !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-none { + display: none !important; + } +} +@media (min-width: 66.5rem) { + .d-lg-block { + display: block !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-none { + display: none !important; + } +} +@media (min-width: 66.5rem) { + .d-lg-block { + display: block !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-none { + display: none !important; + } +} +@media (min-width: 66.5rem) { + .d-lg-block { + display: block !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-none { + display: none !important; + } +} +@media (min-width: 66.5rem) { + .d-lg-block { + display: block !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-none { + display: none !important; + } +} +@media (min-width: 66.5rem) { + .d-lg-block { + display: block !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-none { + display: none !important; + } +} +@media (min-width: 66.5rem) { + .d-lg-block { + display: block !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-none { + display: none !important; + } +} +@media (min-width: 66.5rem) { + .d-lg-block { + display: block !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-none { + display: none !important; + } +} +@media (min-width: 66.5rem) { + .d-lg-block { + display: block !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-none { + display: none !important; + } +} +@media (min-width: 66.5rem) { + .d-lg-block { + display: block !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-none { + display: none !important; + } +} +@media (min-width: 87.5rem) { + .d-xl-block { + display: block !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-none { + display: none !important; + } +} +@media (min-width: 87.5rem) { + .d-xl-block { + display: block !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-none { + display: none !important; + } +} +@media (min-width: 87.5rem) { + .d-xl-block { + display: block !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-none { + display: none !important; + } +} +@media (min-width: 87.5rem) { + .d-xl-block { + display: block !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-none { + display: none !important; + } +} +@media (min-width: 87.5rem) { + .d-xl-block { + display: block !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-none { + display: none !important; + } +} +@media (min-width: 87.5rem) { + .d-xl-block { + display: block !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-none { + display: none !important; + } +} +@media (min-width: 87.5rem) { + .d-xl-block { + display: block !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-none { + display: none !important; + } +} +@media (min-width: 87.5rem) { + .d-xl-block { + display: block !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-none { + display: none !important; + } +} +@media (min-width: 87.5rem) { + .d-xl-block { + display: block !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-none { + display: none !important; + } +} +@media (min-width: 87.5rem) { + .d-xl-block { + display: block !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-none { + display: none !important; + } +} +@media (min-width: 87.5rem) { + .d-xl-block { + display: block !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-none { + display: none !important; + } +} +.float-left { + float: left !important; +} + +.float-right { + float: right !important; +} + +.flex-justify-start { + justify-content: flex-start !important; +} + +.flex-justify-end { + justify-content: flex-end !important; +} + +.flex-justify-between { + justify-content: space-between !important; +} + +.flex-justify-around { + justify-content: space-around !important; +} + +.v-align-baseline { + vertical-align: baseline !important; +} + +.v-align-bottom { + vertical-align: bottom !important; +} + +.v-align-middle { + vertical-align: middle !important; +} + +.v-align-text-bottom { + vertical-align: text-bottom !important; +} + +.v-align-text-top { + vertical-align: text-top !important; +} + +.v-align-top { + vertical-align: top !important; +} + +.fs-1 { + font-size: 0.5625rem !important; +} +@media (min-width: 31.25rem) { + .fs-1 { + font-size: 0.625rem !important; + } +} + +.fs-2 { + font-size: 0.6875rem !important; +} +@media (min-width: 31.25rem) { + .fs-2 { + font-size: 0.75rem !important; + } +} + +.fs-3 { + font-size: 0.75rem !important; +} +@media (min-width: 31.25rem) { + .fs-3 { + font-size: 0.875rem !important; + } +} + +.fs-4 { + font-size: 0.875rem !important; +} +@media (min-width: 31.25rem) { + .fs-4 { + font-size: 1rem !important; + } +} + +.fs-5 { + font-size: 1rem !important; +} +@media (min-width: 31.25rem) { + .fs-5 { + font-size: 1.125rem !important; + } +} + +.fs-6 { + font-size: 1.125rem !important; +} +@media (min-width: 31.25rem) { + .fs-6 { + font-size: 1.5rem !important; + line-height: 1.25; + } +} + +.fs-7 { + font-size: 1.5rem !important; + line-height: 1.25; +} +@media (min-width: 31.25rem) { + .fs-7 { + font-size: 2rem !important; + } +} + +.fs-8 { + font-size: 2rem !important; + line-height: 1.25; +} +@media (min-width: 31.25rem) { + .fs-8 { + font-size: 2.25rem !important; + } +} + +.fs-9 { + font-size: 2.25rem !important; + line-height: 1.25; +} +@media (min-width: 31.25rem) { + .fs-9 { + font-size: 2.625rem !important; + } +} + +.fs-10 { + font-size: 2.625rem !important; + line-height: 1.25; +} +@media (min-width: 31.25rem) { + .fs-10 { + font-size: 3rem !important; + } +} + +.fw-300 { + font-weight: 300 !important; +} + +.fw-400 { + font-weight: 400 !important; +} + +.fw-500 { + font-weight: 500 !important; +} + +.fw-700 { + font-weight: 700 !important; +} + +.lh-0 { + line-height: 0 !important; +} + +.lh-default { + line-height: 1.4; +} + +.lh-tight { + line-height: 1.25; +} + +.ls-5 { + letter-spacing: 0.05em !important; +} + +.ls-10 { + letter-spacing: 0.1em !important; +} + +.ls-0 { + letter-spacing: 0 !important; +} + +.text-uppercase { + text-transform: uppercase !important; +} + +.list-style-none { + padding: 0 !important; + margin: 0 !important; + list-style: none !important; +} +.list-style-none li::before { + display: none !important; +} + +.mx-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.m-0 { + margin: 0 !important; +} + +.mt-0 { + margin-top: 0 !important; +} + +.mr-0 { + margin-right: 0 !important; +} + +.mb-0 { + margin-bottom: 0 !important; +} + +.ml-0 { + margin-left: 0 !important; +} + +.mx-0 { + margin-right: 0 !important; + margin-left: 0 !important; +} + +.my-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; +} + +.mxn-0 { + margin-right: -0 !important; + margin-left: -0 !important; +} + +.mx-0-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.m-1 { + margin: 0.25rem !important; +} + +.mt-1 { + margin-top: 0.25rem !important; +} + +.mr-1 { + margin-right: 0.25rem !important; +} + +.mb-1 { + margin-bottom: 0.25rem !important; +} + +.ml-1 { + margin-left: 0.25rem !important; +} + +.mx-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; +} + +.my-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; +} + +.mxn-1 { + margin-right: -0.25rem !important; + margin-left: -0.25rem !important; +} + +.mx-1-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.m-2 { + margin: 0.5rem !important; +} + +.mt-2 { + margin-top: 0.5rem !important; +} + +.mr-2 { + margin-right: 0.5rem !important; +} + +.mb-2 { + margin-bottom: 0.5rem !important; +} + +.ml-2 { + margin-left: 0.5rem !important; +} + +.mx-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; +} + +.my-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; +} + +.mxn-2 { + margin-right: -0.5rem !important; + margin-left: -0.5rem !important; +} + +.mx-2-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.m-3 { + margin: 0.75rem !important; +} + +.mt-3 { + margin-top: 0.75rem !important; +} + +.mr-3 { + margin-right: 0.75rem !important; +} + +.mb-3 { + margin-bottom: 0.75rem !important; +} + +.ml-3 { + margin-left: 0.75rem !important; +} + +.mx-3 { + margin-right: 0.75rem !important; + margin-left: 0.75rem !important; +} + +.my-3 { + margin-top: 0.75rem !important; + margin-bottom: 0.75rem !important; +} + +.mxn-3 { + margin-right: -0.75rem !important; + margin-left: -0.75rem !important; +} + +.mx-3-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.m-4 { + margin: 1rem !important; +} + +.mt-4 { + margin-top: 1rem !important; +} + +.mr-4 { + margin-right: 1rem !important; +} + +.mb-4 { + margin-bottom: 1rem !important; +} + +.ml-4 { + margin-left: 1rem !important; +} + +.mx-4 { + margin-right: 1rem !important; + margin-left: 1rem !important; +} + +.my-4 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; +} + +.mxn-4 { + margin-right: -1rem !important; + margin-left: -1rem !important; +} + +.mx-4-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.m-5 { + margin: 1.5rem !important; +} + +.mt-5 { + margin-top: 1.5rem !important; +} + +.mr-5 { + margin-right: 1.5rem !important; +} + +.mb-5 { + margin-bottom: 1.5rem !important; +} + +.ml-5 { + margin-left: 1.5rem !important; +} + +.mx-5 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; +} + +.my-5 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; +} + +.mxn-5 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important; +} + +.mx-5-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.m-6 { + margin: 2rem !important; +} + +.mt-6 { + margin-top: 2rem !important; +} + +.mr-6 { + margin-right: 2rem !important; +} + +.mb-6 { + margin-bottom: 2rem !important; +} + +.ml-6 { + margin-left: 2rem !important; +} + +.mx-6 { + margin-right: 2rem !important; + margin-left: 2rem !important; +} + +.my-6 { + margin-top: 2rem !important; + margin-bottom: 2rem !important; +} + +.mxn-6 { + margin-right: -2rem !important; + margin-left: -2rem !important; +} + +.mx-6-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.m-7 { + margin: 2.5rem !important; +} + +.mt-7 { + margin-top: 2.5rem !important; +} + +.mr-7 { + margin-right: 2.5rem !important; +} + +.mb-7 { + margin-bottom: 2.5rem !important; +} + +.ml-7 { + margin-left: 2.5rem !important; +} + +.mx-7 { + margin-right: 2.5rem !important; + margin-left: 2.5rem !important; +} + +.my-7 { + margin-top: 2.5rem !important; + margin-bottom: 2.5rem !important; +} + +.mxn-7 { + margin-right: -2.5rem !important; + margin-left: -2.5rem !important; +} + +.mx-7-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.m-8 { + margin: 3rem !important; +} + +.mt-8 { + margin-top: 3rem !important; +} + +.mr-8 { + margin-right: 3rem !important; +} + +.mb-8 { + margin-bottom: 3rem !important; +} + +.ml-8 { + margin-left: 3rem !important; +} + +.mx-8 { + margin-right: 3rem !important; + margin-left: 3rem !important; +} + +.my-8 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; +} + +.mxn-8 { + margin-right: -3rem !important; + margin-left: -3rem !important; +} + +.mx-8-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.m-9 { + margin: 3.5rem !important; +} + +.mt-9 { + margin-top: 3.5rem !important; +} + +.mr-9 { + margin-right: 3.5rem !important; +} + +.mb-9 { + margin-bottom: 3.5rem !important; +} + +.ml-9 { + margin-left: 3.5rem !important; +} + +.mx-9 { + margin-right: 3.5rem !important; + margin-left: 3.5rem !important; +} + +.my-9 { + margin-top: 3.5rem !important; + margin-bottom: 3.5rem !important; +} + +.mxn-9 { + margin-right: -3.5rem !important; + margin-left: -3.5rem !important; +} + +.mx-9-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.m-10 { + margin: 4rem !important; +} + +.mt-10 { + margin-top: 4rem !important; +} + +.mr-10 { + margin-right: 4rem !important; +} + +.mb-10 { + margin-bottom: 4rem !important; +} + +.ml-10 { + margin-left: 4rem !important; +} + +.mx-10 { + margin-right: 4rem !important; + margin-left: 4rem !important; +} + +.my-10 { + margin-top: 4rem !important; + margin-bottom: 4rem !important; +} + +.mxn-10 { + margin-right: -4rem !important; + margin-left: -4rem !important; +} + +.mx-10-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +@media (min-width: 20rem) { + .m-xs-0 { + margin: 0 !important; + } + .mt-xs-0 { + margin-top: 0 !important; + } + .mr-xs-0 { + margin-right: 0 !important; + } + .mb-xs-0 { + margin-bottom: 0 !important; + } + .ml-xs-0 { + margin-left: 0 !important; + } + .mx-xs-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .my-xs-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .mxn-xs-0 { + margin-right: -0 !important; + margin-left: -0 !important; + } +} +@media (min-width: 20rem) { + .m-xs-1 { + margin: 0.25rem !important; + } + .mt-xs-1 { + margin-top: 0.25rem !important; + } + .mr-xs-1 { + margin-right: 0.25rem !important; + } + .mb-xs-1 { + margin-bottom: 0.25rem !important; + } + .ml-xs-1 { + margin-left: 0.25rem !important; + } + .mx-xs-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .my-xs-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .mxn-xs-1 { + margin-right: -0.25rem !important; + margin-left: -0.25rem !important; + } +} +@media (min-width: 20rem) { + .m-xs-2 { + margin: 0.5rem !important; + } + .mt-xs-2 { + margin-top: 0.5rem !important; + } + .mr-xs-2 { + margin-right: 0.5rem !important; + } + .mb-xs-2 { + margin-bottom: 0.5rem !important; + } + .ml-xs-2 { + margin-left: 0.5rem !important; + } + .mx-xs-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .my-xs-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .mxn-xs-2 { + margin-right: -0.5rem !important; + margin-left: -0.5rem !important; + } +} +@media (min-width: 20rem) { + .m-xs-3 { + margin: 0.75rem !important; + } + .mt-xs-3 { + margin-top: 0.75rem !important; + } + .mr-xs-3 { + margin-right: 0.75rem !important; + } + .mb-xs-3 { + margin-bottom: 0.75rem !important; + } + .ml-xs-3 { + margin-left: 0.75rem !important; + } + .mx-xs-3 { + margin-right: 0.75rem !important; + margin-left: 0.75rem !important; + } + .my-xs-3 { + margin-top: 0.75rem !important; + margin-bottom: 0.75rem !important; + } + .mxn-xs-3 { + margin-right: -0.75rem !important; + margin-left: -0.75rem !important; + } +} +@media (min-width: 20rem) { + .m-xs-4 { + margin: 1rem !important; + } + .mt-xs-4 { + margin-top: 1rem !important; + } + .mr-xs-4 { + margin-right: 1rem !important; + } + .mb-xs-4 { + margin-bottom: 1rem !important; + } + .ml-xs-4 { + margin-left: 1rem !important; + } + .mx-xs-4 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .my-xs-4 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .mxn-xs-4 { + margin-right: -1rem !important; + margin-left: -1rem !important; + } +} +@media (min-width: 20rem) { + .m-xs-5 { + margin: 1.5rem !important; + } + .mt-xs-5 { + margin-top: 1.5rem !important; + } + .mr-xs-5 { + margin-right: 1.5rem !important; + } + .mb-xs-5 { + margin-bottom: 1.5rem !important; + } + .ml-xs-5 { + margin-left: 1.5rem !important; + } + .mx-xs-5 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .my-xs-5 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .mxn-xs-5 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important; + } +} +@media (min-width: 20rem) { + .m-xs-6 { + margin: 2rem !important; + } + .mt-xs-6 { + margin-top: 2rem !important; + } + .mr-xs-6 { + margin-right: 2rem !important; + } + .mb-xs-6 { + margin-bottom: 2rem !important; + } + .ml-xs-6 { + margin-left: 2rem !important; + } + .mx-xs-6 { + margin-right: 2rem !important; + margin-left: 2rem !important; + } + .my-xs-6 { + margin-top: 2rem !important; + margin-bottom: 2rem !important; + } + .mxn-xs-6 { + margin-right: -2rem !important; + margin-left: -2rem !important; + } +} +@media (min-width: 20rem) { + .m-xs-7 { + margin: 2.5rem !important; + } + .mt-xs-7 { + margin-top: 2.5rem !important; + } + .mr-xs-7 { + margin-right: 2.5rem !important; + } + .mb-xs-7 { + margin-bottom: 2.5rem !important; + } + .ml-xs-7 { + margin-left: 2.5rem !important; + } + .mx-xs-7 { + margin-right: 2.5rem !important; + margin-left: 2.5rem !important; + } + .my-xs-7 { + margin-top: 2.5rem !important; + margin-bottom: 2.5rem !important; + } + .mxn-xs-7 { + margin-right: -2.5rem !important; + margin-left: -2.5rem !important; + } +} +@media (min-width: 20rem) { + .m-xs-8 { + margin: 3rem !important; + } + .mt-xs-8 { + margin-top: 3rem !important; + } + .mr-xs-8 { + margin-right: 3rem !important; + } + .mb-xs-8 { + margin-bottom: 3rem !important; + } + .ml-xs-8 { + margin-left: 3rem !important; + } + .mx-xs-8 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .my-xs-8 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .mxn-xs-8 { + margin-right: -3rem !important; + margin-left: -3rem !important; + } +} +@media (min-width: 20rem) { + .m-xs-9 { + margin: 3.5rem !important; + } + .mt-xs-9 { + margin-top: 3.5rem !important; + } + .mr-xs-9 { + margin-right: 3.5rem !important; + } + .mb-xs-9 { + margin-bottom: 3.5rem !important; + } + .ml-xs-9 { + margin-left: 3.5rem !important; + } + .mx-xs-9 { + margin-right: 3.5rem !important; + margin-left: 3.5rem !important; + } + .my-xs-9 { + margin-top: 3.5rem !important; + margin-bottom: 3.5rem !important; + } + .mxn-xs-9 { + margin-right: -3.5rem !important; + margin-left: -3.5rem !important; + } +} +@media (min-width: 20rem) { + .m-xs-10 { + margin: 4rem !important; + } + .mt-xs-10 { + margin-top: 4rem !important; + } + .mr-xs-10 { + margin-right: 4rem !important; + } + .mb-xs-10 { + margin-bottom: 4rem !important; + } + .ml-xs-10 { + margin-left: 4rem !important; + } + .mx-xs-10 { + margin-right: 4rem !important; + margin-left: 4rem !important; + } + .my-xs-10 { + margin-top: 4rem !important; + margin-bottom: 4rem !important; + } + .mxn-xs-10 { + margin-right: -4rem !important; + margin-left: -4rem !important; + } +} +@media (min-width: 31.25rem) { + .m-sm-0 { + margin: 0 !important; + } + .mt-sm-0 { + margin-top: 0 !important; + } + .mr-sm-0 { + margin-right: 0 !important; + } + .mb-sm-0 { + margin-bottom: 0 !important; + } + .ml-sm-0 { + margin-left: 0 !important; + } + .mx-sm-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .my-sm-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .mxn-sm-0 { + margin-right: -0 !important; + margin-left: -0 !important; + } +} +@media (min-width: 31.25rem) { + .m-sm-1 { + margin: 0.25rem !important; + } + .mt-sm-1 { + margin-top: 0.25rem !important; + } + .mr-sm-1 { + margin-right: 0.25rem !important; + } + .mb-sm-1 { + margin-bottom: 0.25rem !important; + } + .ml-sm-1 { + margin-left: 0.25rem !important; + } + .mx-sm-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .my-sm-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .mxn-sm-1 { + margin-right: -0.25rem !important; + margin-left: -0.25rem !important; + } +} +@media (min-width: 31.25rem) { + .m-sm-2 { + margin: 0.5rem !important; + } + .mt-sm-2 { + margin-top: 0.5rem !important; + } + .mr-sm-2 { + margin-right: 0.5rem !important; + } + .mb-sm-2 { + margin-bottom: 0.5rem !important; + } + .ml-sm-2 { + margin-left: 0.5rem !important; + } + .mx-sm-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .my-sm-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .mxn-sm-2 { + margin-right: -0.5rem !important; + margin-left: -0.5rem !important; + } +} +@media (min-width: 31.25rem) { + .m-sm-3 { + margin: 0.75rem !important; + } + .mt-sm-3 { + margin-top: 0.75rem !important; + } + .mr-sm-3 { + margin-right: 0.75rem !important; + } + .mb-sm-3 { + margin-bottom: 0.75rem !important; + } + .ml-sm-3 { + margin-left: 0.75rem !important; + } + .mx-sm-3 { + margin-right: 0.75rem !important; + margin-left: 0.75rem !important; + } + .my-sm-3 { + margin-top: 0.75rem !important; + margin-bottom: 0.75rem !important; + } + .mxn-sm-3 { + margin-right: -0.75rem !important; + margin-left: -0.75rem !important; + } +} +@media (min-width: 31.25rem) { + .m-sm-4 { + margin: 1rem !important; + } + .mt-sm-4 { + margin-top: 1rem !important; + } + .mr-sm-4 { + margin-right: 1rem !important; + } + .mb-sm-4 { + margin-bottom: 1rem !important; + } + .ml-sm-4 { + margin-left: 1rem !important; + } + .mx-sm-4 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .my-sm-4 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .mxn-sm-4 { + margin-right: -1rem !important; + margin-left: -1rem !important; + } +} +@media (min-width: 31.25rem) { + .m-sm-5 { + margin: 1.5rem !important; + } + .mt-sm-5 { + margin-top: 1.5rem !important; + } + .mr-sm-5 { + margin-right: 1.5rem !important; + } + .mb-sm-5 { + margin-bottom: 1.5rem !important; + } + .ml-sm-5 { + margin-left: 1.5rem !important; + } + .mx-sm-5 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .my-sm-5 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .mxn-sm-5 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important; + } +} +@media (min-width: 31.25rem) { + .m-sm-6 { + margin: 2rem !important; + } + .mt-sm-6 { + margin-top: 2rem !important; + } + .mr-sm-6 { + margin-right: 2rem !important; + } + .mb-sm-6 { + margin-bottom: 2rem !important; + } + .ml-sm-6 { + margin-left: 2rem !important; + } + .mx-sm-6 { + margin-right: 2rem !important; + margin-left: 2rem !important; + } + .my-sm-6 { + margin-top: 2rem !important; + margin-bottom: 2rem !important; + } + .mxn-sm-6 { + margin-right: -2rem !important; + margin-left: -2rem !important; + } +} +@media (min-width: 31.25rem) { + .m-sm-7 { + margin: 2.5rem !important; + } + .mt-sm-7 { + margin-top: 2.5rem !important; + } + .mr-sm-7 { + margin-right: 2.5rem !important; + } + .mb-sm-7 { + margin-bottom: 2.5rem !important; + } + .ml-sm-7 { + margin-left: 2.5rem !important; + } + .mx-sm-7 { + margin-right: 2.5rem !important; + margin-left: 2.5rem !important; + } + .my-sm-7 { + margin-top: 2.5rem !important; + margin-bottom: 2.5rem !important; + } + .mxn-sm-7 { + margin-right: -2.5rem !important; + margin-left: -2.5rem !important; + } +} +@media (min-width: 31.25rem) { + .m-sm-8 { + margin: 3rem !important; + } + .mt-sm-8 { + margin-top: 3rem !important; + } + .mr-sm-8 { + margin-right: 3rem !important; + } + .mb-sm-8 { + margin-bottom: 3rem !important; + } + .ml-sm-8 { + margin-left: 3rem !important; + } + .mx-sm-8 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .my-sm-8 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .mxn-sm-8 { + margin-right: -3rem !important; + margin-left: -3rem !important; + } +} +@media (min-width: 31.25rem) { + .m-sm-9 { + margin: 3.5rem !important; + } + .mt-sm-9 { + margin-top: 3.5rem !important; + } + .mr-sm-9 { + margin-right: 3.5rem !important; + } + .mb-sm-9 { + margin-bottom: 3.5rem !important; + } + .ml-sm-9 { + margin-left: 3.5rem !important; + } + .mx-sm-9 { + margin-right: 3.5rem !important; + margin-left: 3.5rem !important; + } + .my-sm-9 { + margin-top: 3.5rem !important; + margin-bottom: 3.5rem !important; + } + .mxn-sm-9 { + margin-right: -3.5rem !important; + margin-left: -3.5rem !important; + } +} +@media (min-width: 31.25rem) { + .m-sm-10 { + margin: 4rem !important; + } + .mt-sm-10 { + margin-top: 4rem !important; + } + .mr-sm-10 { + margin-right: 4rem !important; + } + .mb-sm-10 { + margin-bottom: 4rem !important; + } + .ml-sm-10 { + margin-left: 4rem !important; + } + .mx-sm-10 { + margin-right: 4rem !important; + margin-left: 4rem !important; + } + .my-sm-10 { + margin-top: 4rem !important; + margin-bottom: 4rem !important; + } + .mxn-sm-10 { + margin-right: -4rem !important; + margin-left: -4rem !important; + } +} +@media (min-width: 50rem) { + .m-md-0 { + margin: 0 !important; + } + .mt-md-0 { + margin-top: 0 !important; + } + .mr-md-0 { + margin-right: 0 !important; + } + .mb-md-0 { + margin-bottom: 0 !important; + } + .ml-md-0 { + margin-left: 0 !important; + } + .mx-md-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .my-md-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .mxn-md-0 { + margin-right: -0 !important; + margin-left: -0 !important; + } +} +@media (min-width: 50rem) { + .m-md-1 { + margin: 0.25rem !important; + } + .mt-md-1 { + margin-top: 0.25rem !important; + } + .mr-md-1 { + margin-right: 0.25rem !important; + } + .mb-md-1 { + margin-bottom: 0.25rem !important; + } + .ml-md-1 { + margin-left: 0.25rem !important; + } + .mx-md-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .my-md-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .mxn-md-1 { + margin-right: -0.25rem !important; + margin-left: -0.25rem !important; + } +} +@media (min-width: 50rem) { + .m-md-2 { + margin: 0.5rem !important; + } + .mt-md-2 { + margin-top: 0.5rem !important; + } + .mr-md-2 { + margin-right: 0.5rem !important; + } + .mb-md-2 { + margin-bottom: 0.5rem !important; + } + .ml-md-2 { + margin-left: 0.5rem !important; + } + .mx-md-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .my-md-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .mxn-md-2 { + margin-right: -0.5rem !important; + margin-left: -0.5rem !important; + } +} +@media (min-width: 50rem) { + .m-md-3 { + margin: 0.75rem !important; + } + .mt-md-3 { + margin-top: 0.75rem !important; + } + .mr-md-3 { + margin-right: 0.75rem !important; + } + .mb-md-3 { + margin-bottom: 0.75rem !important; + } + .ml-md-3 { + margin-left: 0.75rem !important; + } + .mx-md-3 { + margin-right: 0.75rem !important; + margin-left: 0.75rem !important; + } + .my-md-3 { + margin-top: 0.75rem !important; + margin-bottom: 0.75rem !important; + } + .mxn-md-3 { + margin-right: -0.75rem !important; + margin-left: -0.75rem !important; + } +} +@media (min-width: 50rem) { + .m-md-4 { + margin: 1rem !important; + } + .mt-md-4 { + margin-top: 1rem !important; + } + .mr-md-4 { + margin-right: 1rem !important; + } + .mb-md-4 { + margin-bottom: 1rem !important; + } + .ml-md-4 { + margin-left: 1rem !important; + } + .mx-md-4 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .my-md-4 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .mxn-md-4 { + margin-right: -1rem !important; + margin-left: -1rem !important; + } +} +@media (min-width: 50rem) { + .m-md-5 { + margin: 1.5rem !important; + } + .mt-md-5 { + margin-top: 1.5rem !important; + } + .mr-md-5 { + margin-right: 1.5rem !important; + } + .mb-md-5 { + margin-bottom: 1.5rem !important; + } + .ml-md-5 { + margin-left: 1.5rem !important; + } + .mx-md-5 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .my-md-5 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .mxn-md-5 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important; + } +} +@media (min-width: 50rem) { + .m-md-6 { + margin: 2rem !important; + } + .mt-md-6 { + margin-top: 2rem !important; + } + .mr-md-6 { + margin-right: 2rem !important; + } + .mb-md-6 { + margin-bottom: 2rem !important; + } + .ml-md-6 { + margin-left: 2rem !important; + } + .mx-md-6 { + margin-right: 2rem !important; + margin-left: 2rem !important; + } + .my-md-6 { + margin-top: 2rem !important; + margin-bottom: 2rem !important; + } + .mxn-md-6 { + margin-right: -2rem !important; + margin-left: -2rem !important; + } +} +@media (min-width: 50rem) { + .m-md-7 { + margin: 2.5rem !important; + } + .mt-md-7 { + margin-top: 2.5rem !important; + } + .mr-md-7 { + margin-right: 2.5rem !important; + } + .mb-md-7 { + margin-bottom: 2.5rem !important; + } + .ml-md-7 { + margin-left: 2.5rem !important; + } + .mx-md-7 { + margin-right: 2.5rem !important; + margin-left: 2.5rem !important; + } + .my-md-7 { + margin-top: 2.5rem !important; + margin-bottom: 2.5rem !important; + } + .mxn-md-7 { + margin-right: -2.5rem !important; + margin-left: -2.5rem !important; + } +} +@media (min-width: 50rem) { + .m-md-8 { + margin: 3rem !important; + } + .mt-md-8 { + margin-top: 3rem !important; + } + .mr-md-8 { + margin-right: 3rem !important; + } + .mb-md-8 { + margin-bottom: 3rem !important; + } + .ml-md-8 { + margin-left: 3rem !important; + } + .mx-md-8 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .my-md-8 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .mxn-md-8 { + margin-right: -3rem !important; + margin-left: -3rem !important; + } +} +@media (min-width: 50rem) { + .m-md-9 { + margin: 3.5rem !important; + } + .mt-md-9 { + margin-top: 3.5rem !important; + } + .mr-md-9 { + margin-right: 3.5rem !important; + } + .mb-md-9 { + margin-bottom: 3.5rem !important; + } + .ml-md-9 { + margin-left: 3.5rem !important; + } + .mx-md-9 { + margin-right: 3.5rem !important; + margin-left: 3.5rem !important; + } + .my-md-9 { + margin-top: 3.5rem !important; + margin-bottom: 3.5rem !important; + } + .mxn-md-9 { + margin-right: -3.5rem !important; + margin-left: -3.5rem !important; + } +} +@media (min-width: 50rem) { + .m-md-10 { + margin: 4rem !important; + } + .mt-md-10 { + margin-top: 4rem !important; + } + .mr-md-10 { + margin-right: 4rem !important; + } + .mb-md-10 { + margin-bottom: 4rem !important; + } + .ml-md-10 { + margin-left: 4rem !important; + } + .mx-md-10 { + margin-right: 4rem !important; + margin-left: 4rem !important; + } + .my-md-10 { + margin-top: 4rem !important; + margin-bottom: 4rem !important; + } + .mxn-md-10 { + margin-right: -4rem !important; + margin-left: -4rem !important; + } +} +@media (min-width: 66.5rem) { + .m-lg-0 { + margin: 0 !important; + } + .mt-lg-0 { + margin-top: 0 !important; + } + .mr-lg-0 { + margin-right: 0 !important; + } + .mb-lg-0 { + margin-bottom: 0 !important; + } + .ml-lg-0 { + margin-left: 0 !important; + } + .mx-lg-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .my-lg-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .mxn-lg-0 { + margin-right: -0 !important; + margin-left: -0 !important; + } +} +@media (min-width: 66.5rem) { + .m-lg-1 { + margin: 0.25rem !important; + } + .mt-lg-1 { + margin-top: 0.25rem !important; + } + .mr-lg-1 { + margin-right: 0.25rem !important; + } + .mb-lg-1 { + margin-bottom: 0.25rem !important; + } + .ml-lg-1 { + margin-left: 0.25rem !important; + } + .mx-lg-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .my-lg-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .mxn-lg-1 { + margin-right: -0.25rem !important; + margin-left: -0.25rem !important; + } +} +@media (min-width: 66.5rem) { + .m-lg-2 { + margin: 0.5rem !important; + } + .mt-lg-2 { + margin-top: 0.5rem !important; + } + .mr-lg-2 { + margin-right: 0.5rem !important; + } + .mb-lg-2 { + margin-bottom: 0.5rem !important; + } + .ml-lg-2 { + margin-left: 0.5rem !important; + } + .mx-lg-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .my-lg-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .mxn-lg-2 { + margin-right: -0.5rem !important; + margin-left: -0.5rem !important; + } +} +@media (min-width: 66.5rem) { + .m-lg-3 { + margin: 0.75rem !important; + } + .mt-lg-3 { + margin-top: 0.75rem !important; + } + .mr-lg-3 { + margin-right: 0.75rem !important; + } + .mb-lg-3 { + margin-bottom: 0.75rem !important; + } + .ml-lg-3 { + margin-left: 0.75rem !important; + } + .mx-lg-3 { + margin-right: 0.75rem !important; + margin-left: 0.75rem !important; + } + .my-lg-3 { + margin-top: 0.75rem !important; + margin-bottom: 0.75rem !important; + } + .mxn-lg-3 { + margin-right: -0.75rem !important; + margin-left: -0.75rem !important; + } +} +@media (min-width: 66.5rem) { + .m-lg-4 { + margin: 1rem !important; + } + .mt-lg-4 { + margin-top: 1rem !important; + } + .mr-lg-4 { + margin-right: 1rem !important; + } + .mb-lg-4 { + margin-bottom: 1rem !important; + } + .ml-lg-4 { + margin-left: 1rem !important; + } + .mx-lg-4 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .my-lg-4 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .mxn-lg-4 { + margin-right: -1rem !important; + margin-left: -1rem !important; + } +} +@media (min-width: 66.5rem) { + .m-lg-5 { + margin: 1.5rem !important; + } + .mt-lg-5 { + margin-top: 1.5rem !important; + } + .mr-lg-5 { + margin-right: 1.5rem !important; + } + .mb-lg-5 { + margin-bottom: 1.5rem !important; + } + .ml-lg-5 { + margin-left: 1.5rem !important; + } + .mx-lg-5 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .my-lg-5 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .mxn-lg-5 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important; + } +} +@media (min-width: 66.5rem) { + .m-lg-6 { + margin: 2rem !important; + } + .mt-lg-6 { + margin-top: 2rem !important; + } + .mr-lg-6 { + margin-right: 2rem !important; + } + .mb-lg-6 { + margin-bottom: 2rem !important; + } + .ml-lg-6 { + margin-left: 2rem !important; + } + .mx-lg-6 { + margin-right: 2rem !important; + margin-left: 2rem !important; + } + .my-lg-6 { + margin-top: 2rem !important; + margin-bottom: 2rem !important; + } + .mxn-lg-6 { + margin-right: -2rem !important; + margin-left: -2rem !important; + } +} +@media (min-width: 66.5rem) { + .m-lg-7 { + margin: 2.5rem !important; + } + .mt-lg-7 { + margin-top: 2.5rem !important; + } + .mr-lg-7 { + margin-right: 2.5rem !important; + } + .mb-lg-7 { + margin-bottom: 2.5rem !important; + } + .ml-lg-7 { + margin-left: 2.5rem !important; + } + .mx-lg-7 { + margin-right: 2.5rem !important; + margin-left: 2.5rem !important; + } + .my-lg-7 { + margin-top: 2.5rem !important; + margin-bottom: 2.5rem !important; + } + .mxn-lg-7 { + margin-right: -2.5rem !important; + margin-left: -2.5rem !important; + } +} +@media (min-width: 66.5rem) { + .m-lg-8 { + margin: 3rem !important; + } + .mt-lg-8 { + margin-top: 3rem !important; + } + .mr-lg-8 { + margin-right: 3rem !important; + } + .mb-lg-8 { + margin-bottom: 3rem !important; + } + .ml-lg-8 { + margin-left: 3rem !important; + } + .mx-lg-8 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .my-lg-8 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .mxn-lg-8 { + margin-right: -3rem !important; + margin-left: -3rem !important; + } +} +@media (min-width: 66.5rem) { + .m-lg-9 { + margin: 3.5rem !important; + } + .mt-lg-9 { + margin-top: 3.5rem !important; + } + .mr-lg-9 { + margin-right: 3.5rem !important; + } + .mb-lg-9 { + margin-bottom: 3.5rem !important; + } + .ml-lg-9 { + margin-left: 3.5rem !important; + } + .mx-lg-9 { + margin-right: 3.5rem !important; + margin-left: 3.5rem !important; + } + .my-lg-9 { + margin-top: 3.5rem !important; + margin-bottom: 3.5rem !important; + } + .mxn-lg-9 { + margin-right: -3.5rem !important; + margin-left: -3.5rem !important; + } +} +@media (min-width: 66.5rem) { + .m-lg-10 { + margin: 4rem !important; + } + .mt-lg-10 { + margin-top: 4rem !important; + } + .mr-lg-10 { + margin-right: 4rem !important; + } + .mb-lg-10 { + margin-bottom: 4rem !important; + } + .ml-lg-10 { + margin-left: 4rem !important; + } + .mx-lg-10 { + margin-right: 4rem !important; + margin-left: 4rem !important; + } + .my-lg-10 { + margin-top: 4rem !important; + margin-bottom: 4rem !important; + } + .mxn-lg-10 { + margin-right: -4rem !important; + margin-left: -4rem !important; + } +} +@media (min-width: 87.5rem) { + .m-xl-0 { + margin: 0 !important; + } + .mt-xl-0 { + margin-top: 0 !important; + } + .mr-xl-0 { + margin-right: 0 !important; + } + .mb-xl-0 { + margin-bottom: 0 !important; + } + .ml-xl-0 { + margin-left: 0 !important; + } + .mx-xl-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .my-xl-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .mxn-xl-0 { + margin-right: -0 !important; + margin-left: -0 !important; + } +} +@media (min-width: 87.5rem) { + .m-xl-1 { + margin: 0.25rem !important; + } + .mt-xl-1 { + margin-top: 0.25rem !important; + } + .mr-xl-1 { + margin-right: 0.25rem !important; + } + .mb-xl-1 { + margin-bottom: 0.25rem !important; + } + .ml-xl-1 { + margin-left: 0.25rem !important; + } + .mx-xl-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .my-xl-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .mxn-xl-1 { + margin-right: -0.25rem !important; + margin-left: -0.25rem !important; + } +} +@media (min-width: 87.5rem) { + .m-xl-2 { + margin: 0.5rem !important; + } + .mt-xl-2 { + margin-top: 0.5rem !important; + } + .mr-xl-2 { + margin-right: 0.5rem !important; + } + .mb-xl-2 { + margin-bottom: 0.5rem !important; + } + .ml-xl-2 { + margin-left: 0.5rem !important; + } + .mx-xl-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .my-xl-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .mxn-xl-2 { + margin-right: -0.5rem !important; + margin-left: -0.5rem !important; + } +} +@media (min-width: 87.5rem) { + .m-xl-3 { + margin: 0.75rem !important; + } + .mt-xl-3 { + margin-top: 0.75rem !important; + } + .mr-xl-3 { + margin-right: 0.75rem !important; + } + .mb-xl-3 { + margin-bottom: 0.75rem !important; + } + .ml-xl-3 { + margin-left: 0.75rem !important; + } + .mx-xl-3 { + margin-right: 0.75rem !important; + margin-left: 0.75rem !important; + } + .my-xl-3 { + margin-top: 0.75rem !important; + margin-bottom: 0.75rem !important; + } + .mxn-xl-3 { + margin-right: -0.75rem !important; + margin-left: -0.75rem !important; + } +} +@media (min-width: 87.5rem) { + .m-xl-4 { + margin: 1rem !important; + } + .mt-xl-4 { + margin-top: 1rem !important; + } + .mr-xl-4 { + margin-right: 1rem !important; + } + .mb-xl-4 { + margin-bottom: 1rem !important; + } + .ml-xl-4 { + margin-left: 1rem !important; + } + .mx-xl-4 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .my-xl-4 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .mxn-xl-4 { + margin-right: -1rem !important; + margin-left: -1rem !important; + } +} +@media (min-width: 87.5rem) { + .m-xl-5 { + margin: 1.5rem !important; + } + .mt-xl-5 { + margin-top: 1.5rem !important; + } + .mr-xl-5 { + margin-right: 1.5rem !important; + } + .mb-xl-5 { + margin-bottom: 1.5rem !important; + } + .ml-xl-5 { + margin-left: 1.5rem !important; + } + .mx-xl-5 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .my-xl-5 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .mxn-xl-5 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important; + } +} +@media (min-width: 87.5rem) { + .m-xl-6 { + margin: 2rem !important; + } + .mt-xl-6 { + margin-top: 2rem !important; + } + .mr-xl-6 { + margin-right: 2rem !important; + } + .mb-xl-6 { + margin-bottom: 2rem !important; + } + .ml-xl-6 { + margin-left: 2rem !important; + } + .mx-xl-6 { + margin-right: 2rem !important; + margin-left: 2rem !important; + } + .my-xl-6 { + margin-top: 2rem !important; + margin-bottom: 2rem !important; + } + .mxn-xl-6 { + margin-right: -2rem !important; + margin-left: -2rem !important; + } +} +@media (min-width: 87.5rem) { + .m-xl-7 { + margin: 2.5rem !important; + } + .mt-xl-7 { + margin-top: 2.5rem !important; + } + .mr-xl-7 { + margin-right: 2.5rem !important; + } + .mb-xl-7 { + margin-bottom: 2.5rem !important; + } + .ml-xl-7 { + margin-left: 2.5rem !important; + } + .mx-xl-7 { + margin-right: 2.5rem !important; + margin-left: 2.5rem !important; + } + .my-xl-7 { + margin-top: 2.5rem !important; + margin-bottom: 2.5rem !important; + } + .mxn-xl-7 { + margin-right: -2.5rem !important; + margin-left: -2.5rem !important; + } +} +@media (min-width: 87.5rem) { + .m-xl-8 { + margin: 3rem !important; + } + .mt-xl-8 { + margin-top: 3rem !important; + } + .mr-xl-8 { + margin-right: 3rem !important; + } + .mb-xl-8 { + margin-bottom: 3rem !important; + } + .ml-xl-8 { + margin-left: 3rem !important; + } + .mx-xl-8 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .my-xl-8 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .mxn-xl-8 { + margin-right: -3rem !important; + margin-left: -3rem !important; + } +} +@media (min-width: 87.5rem) { + .m-xl-9 { + margin: 3.5rem !important; + } + .mt-xl-9 { + margin-top: 3.5rem !important; + } + .mr-xl-9 { + margin-right: 3.5rem !important; + } + .mb-xl-9 { + margin-bottom: 3.5rem !important; + } + .ml-xl-9 { + margin-left: 3.5rem !important; + } + .mx-xl-9 { + margin-right: 3.5rem !important; + margin-left: 3.5rem !important; + } + .my-xl-9 { + margin-top: 3.5rem !important; + margin-bottom: 3.5rem !important; + } + .mxn-xl-9 { + margin-right: -3.5rem !important; + margin-left: -3.5rem !important; + } +} +@media (min-width: 87.5rem) { + .m-xl-10 { + margin: 4rem !important; + } + .mt-xl-10 { + margin-top: 4rem !important; + } + .mr-xl-10 { + margin-right: 4rem !important; + } + .mb-xl-10 { + margin-bottom: 4rem !important; + } + .ml-xl-10 { + margin-left: 4rem !important; + } + .mx-xl-10 { + margin-right: 4rem !important; + margin-left: 4rem !important; + } + .my-xl-10 { + margin-top: 4rem !important; + margin-bottom: 4rem !important; + } + .mxn-xl-10 { + margin-right: -4rem !important; + margin-left: -4rem !important; + } +} +.p-0 { + padding: 0 !important; +} + +.pt-0 { + padding-top: 0 !important; +} + +.pr-0 { + padding-right: 0 !important; +} + +.pb-0 { + padding-bottom: 0 !important; +} + +.pl-0 { + padding-left: 0 !important; +} + +.px-0 { + padding-right: 0 !important; + padding-left: 0 !important; +} + +.py-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; +} + +.p-1 { + padding: 0.25rem !important; +} + +.pt-1 { + padding-top: 0.25rem !important; +} + +.pr-1 { + padding-right: 0.25rem !important; +} + +.pb-1 { + padding-bottom: 0.25rem !important; +} + +.pl-1 { + padding-left: 0.25rem !important; +} + +.px-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; +} + +.py-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; +} + +.p-2 { + padding: 0.5rem !important; +} + +.pt-2 { + padding-top: 0.5rem !important; +} + +.pr-2 { + padding-right: 0.5rem !important; +} + +.pb-2 { + padding-bottom: 0.5rem !important; +} + +.pl-2 { + padding-left: 0.5rem !important; +} + +.px-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; +} + +.py-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; +} + +.p-3 { + padding: 0.75rem !important; +} + +.pt-3 { + padding-top: 0.75rem !important; +} + +.pr-3 { + padding-right: 0.75rem !important; +} + +.pb-3 { + padding-bottom: 0.75rem !important; +} + +.pl-3 { + padding-left: 0.75rem !important; +} + +.px-3 { + padding-right: 0.75rem !important; + padding-left: 0.75rem !important; +} + +.py-3 { + padding-top: 0.75rem !important; + padding-bottom: 0.75rem !important; +} + +.p-4 { + padding: 1rem !important; +} + +.pt-4 { + padding-top: 1rem !important; +} + +.pr-4 { + padding-right: 1rem !important; +} + +.pb-4 { + padding-bottom: 1rem !important; +} + +.pl-4 { + padding-left: 1rem !important; +} + +.px-4 { + padding-right: 1rem !important; + padding-left: 1rem !important; +} + +.py-4 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; +} + +.p-5 { + padding: 1.5rem !important; +} + +.pt-5 { + padding-top: 1.5rem !important; +} + +.pr-5 { + padding-right: 1.5rem !important; +} + +.pb-5 { + padding-bottom: 1.5rem !important; +} + +.pl-5 { + padding-left: 1.5rem !important; +} + +.px-5 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; +} + +.py-5 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; +} + +.p-6 { + padding: 2rem !important; +} + +.pt-6 { + padding-top: 2rem !important; +} + +.pr-6 { + padding-right: 2rem !important; +} + +.pb-6 { + padding-bottom: 2rem !important; +} + +.pl-6 { + padding-left: 2rem !important; +} + +.px-6 { + padding-right: 2rem !important; + padding-left: 2rem !important; +} + +.py-6 { + padding-top: 2rem !important; + padding-bottom: 2rem !important; +} + +.p-7 { + padding: 2.5rem !important; +} + +.pt-7 { + padding-top: 2.5rem !important; +} + +.pr-7 { + padding-right: 2.5rem !important; +} + +.pb-7 { + padding-bottom: 2.5rem !important; +} + +.pl-7 { + padding-left: 2.5rem !important; +} + +.px-7 { + padding-right: 2.5rem !important; + padding-left: 2.5rem !important; +} + +.py-7 { + padding-top: 2.5rem !important; + padding-bottom: 2.5rem !important; +} + +.p-8 { + padding: 3rem !important; +} + +.pt-8 { + padding-top: 3rem !important; +} + +.pr-8 { + padding-right: 3rem !important; +} + +.pb-8 { + padding-bottom: 3rem !important; +} + +.pl-8 { + padding-left: 3rem !important; +} + +.px-8 { + padding-right: 3rem !important; + padding-left: 3rem !important; +} + +.py-8 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; +} + +.p-9 { + padding: 3.5rem !important; +} + +.pt-9 { + padding-top: 3.5rem !important; +} + +.pr-9 { + padding-right: 3.5rem !important; +} + +.pb-9 { + padding-bottom: 3.5rem !important; +} + +.pl-9 { + padding-left: 3.5rem !important; +} + +.px-9 { + padding-right: 3.5rem !important; + padding-left: 3.5rem !important; +} + +.py-9 { + padding-top: 3.5rem !important; + padding-bottom: 3.5rem !important; +} + +.p-10 { + padding: 4rem !important; +} + +.pt-10 { + padding-top: 4rem !important; +} + +.pr-10 { + padding-right: 4rem !important; +} + +.pb-10 { + padding-bottom: 4rem !important; +} + +.pl-10 { + padding-left: 4rem !important; +} + +.px-10 { + padding-right: 4rem !important; + padding-left: 4rem !important; +} + +.py-10 { + padding-top: 4rem !important; + padding-bottom: 4rem !important; +} + +@media (min-width: 20rem) { + .p-xs-0 { + padding: 0 !important; + } + .pt-xs-0 { + padding-top: 0 !important; + } + .pr-xs-0 { + padding-right: 0 !important; + } + .pb-xs-0 { + padding-bottom: 0 !important; + } + .pl-xs-0 { + padding-left: 0 !important; + } + .px-xs-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .py-xs-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .p-xs-1 { + padding: 0.25rem !important; + } + .pt-xs-1 { + padding-top: 0.25rem !important; + } + .pr-xs-1 { + padding-right: 0.25rem !important; + } + .pb-xs-1 { + padding-bottom: 0.25rem !important; + } + .pl-xs-1 { + padding-left: 0.25rem !important; + } + .px-xs-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .py-xs-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .p-xs-2 { + padding: 0.5rem !important; + } + .pt-xs-2 { + padding-top: 0.5rem !important; + } + .pr-xs-2 { + padding-right: 0.5rem !important; + } + .pb-xs-2 { + padding-bottom: 0.5rem !important; + } + .pl-xs-2 { + padding-left: 0.5rem !important; + } + .px-xs-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .py-xs-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .p-xs-3 { + padding: 0.75rem !important; + } + .pt-xs-3 { + padding-top: 0.75rem !important; + } + .pr-xs-3 { + padding-right: 0.75rem !important; + } + .pb-xs-3 { + padding-bottom: 0.75rem !important; + } + .pl-xs-3 { + padding-left: 0.75rem !important; + } + .px-xs-3 { + padding-right: 0.75rem !important; + padding-left: 0.75rem !important; + } + .py-xs-3 { + padding-top: 0.75rem !important; + padding-bottom: 0.75rem !important; + } + .p-xs-4 { + padding: 1rem !important; + } + .pt-xs-4 { + padding-top: 1rem !important; + } + .pr-xs-4 { + padding-right: 1rem !important; + } + .pb-xs-4 { + padding-bottom: 1rem !important; + } + .pl-xs-4 { + padding-left: 1rem !important; + } + .px-xs-4 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .py-xs-4 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .p-xs-5 { + padding: 1.5rem !important; + } + .pt-xs-5 { + padding-top: 1.5rem !important; + } + .pr-xs-5 { + padding-right: 1.5rem !important; + } + .pb-xs-5 { + padding-bottom: 1.5rem !important; + } + .pl-xs-5 { + padding-left: 1.5rem !important; + } + .px-xs-5 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .py-xs-5 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .p-xs-6 { + padding: 2rem !important; + } + .pt-xs-6 { + padding-top: 2rem !important; + } + .pr-xs-6 { + padding-right: 2rem !important; + } + .pb-xs-6 { + padding-bottom: 2rem !important; + } + .pl-xs-6 { + padding-left: 2rem !important; + } + .px-xs-6 { + padding-right: 2rem !important; + padding-left: 2rem !important; + } + .py-xs-6 { + padding-top: 2rem !important; + padding-bottom: 2rem !important; + } + .p-xs-7 { + padding: 2.5rem !important; + } + .pt-xs-7 { + padding-top: 2.5rem !important; + } + .pr-xs-7 { + padding-right: 2.5rem !important; + } + .pb-xs-7 { + padding-bottom: 2.5rem !important; + } + .pl-xs-7 { + padding-left: 2.5rem !important; + } + .px-xs-7 { + padding-right: 2.5rem !important; + padding-left: 2.5rem !important; + } + .py-xs-7 { + padding-top: 2.5rem !important; + padding-bottom: 2.5rem !important; + } + .p-xs-8 { + padding: 3rem !important; + } + .pt-xs-8 { + padding-top: 3rem !important; + } + .pr-xs-8 { + padding-right: 3rem !important; + } + .pb-xs-8 { + padding-bottom: 3rem !important; + } + .pl-xs-8 { + padding-left: 3rem !important; + } + .px-xs-8 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-xs-8 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .p-xs-9 { + padding: 3.5rem !important; + } + .pt-xs-9 { + padding-top: 3.5rem !important; + } + .pr-xs-9 { + padding-right: 3.5rem !important; + } + .pb-xs-9 { + padding-bottom: 3.5rem !important; + } + .pl-xs-9 { + padding-left: 3.5rem !important; + } + .px-xs-9 { + padding-right: 3.5rem !important; + padding-left: 3.5rem !important; + } + .py-xs-9 { + padding-top: 3.5rem !important; + padding-bottom: 3.5rem !important; + } + .p-xs-10 { + padding: 4rem !important; + } + .pt-xs-10 { + padding-top: 4rem !important; + } + .pr-xs-10 { + padding-right: 4rem !important; + } + .pb-xs-10 { + padding-bottom: 4rem !important; + } + .pl-xs-10 { + padding-left: 4rem !important; + } + .px-xs-10 { + padding-right: 4rem !important; + padding-left: 4rem !important; + } + .py-xs-10 { + padding-top: 4rem !important; + padding-bottom: 4rem !important; + } +} +@media (min-width: 31.25rem) { + .p-sm-0 { + padding: 0 !important; + } + .pt-sm-0 { + padding-top: 0 !important; + } + .pr-sm-0 { + padding-right: 0 !important; + } + .pb-sm-0 { + padding-bottom: 0 !important; + } + .pl-sm-0 { + padding-left: 0 !important; + } + .px-sm-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .py-sm-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .p-sm-1 { + padding: 0.25rem !important; + } + .pt-sm-1 { + padding-top: 0.25rem !important; + } + .pr-sm-1 { + padding-right: 0.25rem !important; + } + .pb-sm-1 { + padding-bottom: 0.25rem !important; + } + .pl-sm-1 { + padding-left: 0.25rem !important; + } + .px-sm-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .py-sm-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .p-sm-2 { + padding: 0.5rem !important; + } + .pt-sm-2 { + padding-top: 0.5rem !important; + } + .pr-sm-2 { + padding-right: 0.5rem !important; + } + .pb-sm-2 { + padding-bottom: 0.5rem !important; + } + .pl-sm-2 { + padding-left: 0.5rem !important; + } + .px-sm-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .py-sm-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .p-sm-3 { + padding: 0.75rem !important; + } + .pt-sm-3 { + padding-top: 0.75rem !important; + } + .pr-sm-3 { + padding-right: 0.75rem !important; + } + .pb-sm-3 { + padding-bottom: 0.75rem !important; + } + .pl-sm-3 { + padding-left: 0.75rem !important; + } + .px-sm-3 { + padding-right: 0.75rem !important; + padding-left: 0.75rem !important; + } + .py-sm-3 { + padding-top: 0.75rem !important; + padding-bottom: 0.75rem !important; + } + .p-sm-4 { + padding: 1rem !important; + } + .pt-sm-4 { + padding-top: 1rem !important; + } + .pr-sm-4 { + padding-right: 1rem !important; + } + .pb-sm-4 { + padding-bottom: 1rem !important; + } + .pl-sm-4 { + padding-left: 1rem !important; + } + .px-sm-4 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .py-sm-4 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .p-sm-5 { + padding: 1.5rem !important; + } + .pt-sm-5 { + padding-top: 1.5rem !important; + } + .pr-sm-5 { + padding-right: 1.5rem !important; + } + .pb-sm-5 { + padding-bottom: 1.5rem !important; + } + .pl-sm-5 { + padding-left: 1.5rem !important; + } + .px-sm-5 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .py-sm-5 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .p-sm-6 { + padding: 2rem !important; + } + .pt-sm-6 { + padding-top: 2rem !important; + } + .pr-sm-6 { + padding-right: 2rem !important; + } + .pb-sm-6 { + padding-bottom: 2rem !important; + } + .pl-sm-6 { + padding-left: 2rem !important; + } + .px-sm-6 { + padding-right: 2rem !important; + padding-left: 2rem !important; + } + .py-sm-6 { + padding-top: 2rem !important; + padding-bottom: 2rem !important; + } + .p-sm-7 { + padding: 2.5rem !important; + } + .pt-sm-7 { + padding-top: 2.5rem !important; + } + .pr-sm-7 { + padding-right: 2.5rem !important; + } + .pb-sm-7 { + padding-bottom: 2.5rem !important; + } + .pl-sm-7 { + padding-left: 2.5rem !important; + } + .px-sm-7 { + padding-right: 2.5rem !important; + padding-left: 2.5rem !important; + } + .py-sm-7 { + padding-top: 2.5rem !important; + padding-bottom: 2.5rem !important; + } + .p-sm-8 { + padding: 3rem !important; + } + .pt-sm-8 { + padding-top: 3rem !important; + } + .pr-sm-8 { + padding-right: 3rem !important; + } + .pb-sm-8 { + padding-bottom: 3rem !important; + } + .pl-sm-8 { + padding-left: 3rem !important; + } + .px-sm-8 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-sm-8 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .p-sm-9 { + padding: 3.5rem !important; + } + .pt-sm-9 { + padding-top: 3.5rem !important; + } + .pr-sm-9 { + padding-right: 3.5rem !important; + } + .pb-sm-9 { + padding-bottom: 3.5rem !important; + } + .pl-sm-9 { + padding-left: 3.5rem !important; + } + .px-sm-9 { + padding-right: 3.5rem !important; + padding-left: 3.5rem !important; + } + .py-sm-9 { + padding-top: 3.5rem !important; + padding-bottom: 3.5rem !important; + } + .p-sm-10 { + padding: 4rem !important; + } + .pt-sm-10 { + padding-top: 4rem !important; + } + .pr-sm-10 { + padding-right: 4rem !important; + } + .pb-sm-10 { + padding-bottom: 4rem !important; + } + .pl-sm-10 { + padding-left: 4rem !important; + } + .px-sm-10 { + padding-right: 4rem !important; + padding-left: 4rem !important; + } + .py-sm-10 { + padding-top: 4rem !important; + padding-bottom: 4rem !important; + } +} +@media (min-width: 50rem) { + .p-md-0 { + padding: 0 !important; + } + .pt-md-0 { + padding-top: 0 !important; + } + .pr-md-0 { + padding-right: 0 !important; + } + .pb-md-0 { + padding-bottom: 0 !important; + } + .pl-md-0 { + padding-left: 0 !important; + } + .px-md-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .py-md-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .p-md-1 { + padding: 0.25rem !important; + } + .pt-md-1 { + padding-top: 0.25rem !important; + } + .pr-md-1 { + padding-right: 0.25rem !important; + } + .pb-md-1 { + padding-bottom: 0.25rem !important; + } + .pl-md-1 { + padding-left: 0.25rem !important; + } + .px-md-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .py-md-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .p-md-2 { + padding: 0.5rem !important; + } + .pt-md-2 { + padding-top: 0.5rem !important; + } + .pr-md-2 { + padding-right: 0.5rem !important; + } + .pb-md-2 { + padding-bottom: 0.5rem !important; + } + .pl-md-2 { + padding-left: 0.5rem !important; + } + .px-md-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .py-md-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .p-md-3 { + padding: 0.75rem !important; + } + .pt-md-3 { + padding-top: 0.75rem !important; + } + .pr-md-3 { + padding-right: 0.75rem !important; + } + .pb-md-3 { + padding-bottom: 0.75rem !important; + } + .pl-md-3 { + padding-left: 0.75rem !important; + } + .px-md-3 { + padding-right: 0.75rem !important; + padding-left: 0.75rem !important; + } + .py-md-3 { + padding-top: 0.75rem !important; + padding-bottom: 0.75rem !important; + } + .p-md-4 { + padding: 1rem !important; + } + .pt-md-4 { + padding-top: 1rem !important; + } + .pr-md-4 { + padding-right: 1rem !important; + } + .pb-md-4 { + padding-bottom: 1rem !important; + } + .pl-md-4 { + padding-left: 1rem !important; + } + .px-md-4 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .py-md-4 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .p-md-5 { + padding: 1.5rem !important; + } + .pt-md-5 { + padding-top: 1.5rem !important; + } + .pr-md-5 { + padding-right: 1.5rem !important; + } + .pb-md-5 { + padding-bottom: 1.5rem !important; + } + .pl-md-5 { + padding-left: 1.5rem !important; + } + .px-md-5 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .py-md-5 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .p-md-6 { + padding: 2rem !important; + } + .pt-md-6 { + padding-top: 2rem !important; + } + .pr-md-6 { + padding-right: 2rem !important; + } + .pb-md-6 { + padding-bottom: 2rem !important; + } + .pl-md-6 { + padding-left: 2rem !important; + } + .px-md-6 { + padding-right: 2rem !important; + padding-left: 2rem !important; + } + .py-md-6 { + padding-top: 2rem !important; + padding-bottom: 2rem !important; + } + .p-md-7 { + padding: 2.5rem !important; + } + .pt-md-7 { + padding-top: 2.5rem !important; + } + .pr-md-7 { + padding-right: 2.5rem !important; + } + .pb-md-7 { + padding-bottom: 2.5rem !important; + } + .pl-md-7 { + padding-left: 2.5rem !important; + } + .px-md-7 { + padding-right: 2.5rem !important; + padding-left: 2.5rem !important; + } + .py-md-7 { + padding-top: 2.5rem !important; + padding-bottom: 2.5rem !important; + } + .p-md-8 { + padding: 3rem !important; + } + .pt-md-8 { + padding-top: 3rem !important; + } + .pr-md-8 { + padding-right: 3rem !important; + } + .pb-md-8 { + padding-bottom: 3rem !important; + } + .pl-md-8 { + padding-left: 3rem !important; + } + .px-md-8 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-md-8 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .p-md-9 { + padding: 3.5rem !important; + } + .pt-md-9 { + padding-top: 3.5rem !important; + } + .pr-md-9 { + padding-right: 3.5rem !important; + } + .pb-md-9 { + padding-bottom: 3.5rem !important; + } + .pl-md-9 { + padding-left: 3.5rem !important; + } + .px-md-9 { + padding-right: 3.5rem !important; + padding-left: 3.5rem !important; + } + .py-md-9 { + padding-top: 3.5rem !important; + padding-bottom: 3.5rem !important; + } + .p-md-10 { + padding: 4rem !important; + } + .pt-md-10 { + padding-top: 4rem !important; + } + .pr-md-10 { + padding-right: 4rem !important; + } + .pb-md-10 { + padding-bottom: 4rem !important; + } + .pl-md-10 { + padding-left: 4rem !important; + } + .px-md-10 { + padding-right: 4rem !important; + padding-left: 4rem !important; + } + .py-md-10 { + padding-top: 4rem !important; + padding-bottom: 4rem !important; + } +} +@media (min-width: 66.5rem) { + .p-lg-0 { + padding: 0 !important; + } + .pt-lg-0 { + padding-top: 0 !important; + } + .pr-lg-0 { + padding-right: 0 !important; + } + .pb-lg-0 { + padding-bottom: 0 !important; + } + .pl-lg-0 { + padding-left: 0 !important; + } + .px-lg-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .py-lg-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .p-lg-1 { + padding: 0.25rem !important; + } + .pt-lg-1 { + padding-top: 0.25rem !important; + } + .pr-lg-1 { + padding-right: 0.25rem !important; + } + .pb-lg-1 { + padding-bottom: 0.25rem !important; + } + .pl-lg-1 { + padding-left: 0.25rem !important; + } + .px-lg-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .py-lg-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .p-lg-2 { + padding: 0.5rem !important; + } + .pt-lg-2 { + padding-top: 0.5rem !important; + } + .pr-lg-2 { + padding-right: 0.5rem !important; + } + .pb-lg-2 { + padding-bottom: 0.5rem !important; + } + .pl-lg-2 { + padding-left: 0.5rem !important; + } + .px-lg-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .py-lg-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .p-lg-3 { + padding: 0.75rem !important; + } + .pt-lg-3 { + padding-top: 0.75rem !important; + } + .pr-lg-3 { + padding-right: 0.75rem !important; + } + .pb-lg-3 { + padding-bottom: 0.75rem !important; + } + .pl-lg-3 { + padding-left: 0.75rem !important; + } + .px-lg-3 { + padding-right: 0.75rem !important; + padding-left: 0.75rem !important; + } + .py-lg-3 { + padding-top: 0.75rem !important; + padding-bottom: 0.75rem !important; + } + .p-lg-4 { + padding: 1rem !important; + } + .pt-lg-4 { + padding-top: 1rem !important; + } + .pr-lg-4 { + padding-right: 1rem !important; + } + .pb-lg-4 { + padding-bottom: 1rem !important; + } + .pl-lg-4 { + padding-left: 1rem !important; + } + .px-lg-4 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .py-lg-4 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .p-lg-5 { + padding: 1.5rem !important; + } + .pt-lg-5 { + padding-top: 1.5rem !important; + } + .pr-lg-5 { + padding-right: 1.5rem !important; + } + .pb-lg-5 { + padding-bottom: 1.5rem !important; + } + .pl-lg-5 { + padding-left: 1.5rem !important; + } + .px-lg-5 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .py-lg-5 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .p-lg-6 { + padding: 2rem !important; + } + .pt-lg-6 { + padding-top: 2rem !important; + } + .pr-lg-6 { + padding-right: 2rem !important; + } + .pb-lg-6 { + padding-bottom: 2rem !important; + } + .pl-lg-6 { + padding-left: 2rem !important; + } + .px-lg-6 { + padding-right: 2rem !important; + padding-left: 2rem !important; + } + .py-lg-6 { + padding-top: 2rem !important; + padding-bottom: 2rem !important; + } + .p-lg-7 { + padding: 2.5rem !important; + } + .pt-lg-7 { + padding-top: 2.5rem !important; + } + .pr-lg-7 { + padding-right: 2.5rem !important; + } + .pb-lg-7 { + padding-bottom: 2.5rem !important; + } + .pl-lg-7 { + padding-left: 2.5rem !important; + } + .px-lg-7 { + padding-right: 2.5rem !important; + padding-left: 2.5rem !important; + } + .py-lg-7 { + padding-top: 2.5rem !important; + padding-bottom: 2.5rem !important; + } + .p-lg-8 { + padding: 3rem !important; + } + .pt-lg-8 { + padding-top: 3rem !important; + } + .pr-lg-8 { + padding-right: 3rem !important; + } + .pb-lg-8 { + padding-bottom: 3rem !important; + } + .pl-lg-8 { + padding-left: 3rem !important; + } + .px-lg-8 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-lg-8 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .p-lg-9 { + padding: 3.5rem !important; + } + .pt-lg-9 { + padding-top: 3.5rem !important; + } + .pr-lg-9 { + padding-right: 3.5rem !important; + } + .pb-lg-9 { + padding-bottom: 3.5rem !important; + } + .pl-lg-9 { + padding-left: 3.5rem !important; + } + .px-lg-9 { + padding-right: 3.5rem !important; + padding-left: 3.5rem !important; + } + .py-lg-9 { + padding-top: 3.5rem !important; + padding-bottom: 3.5rem !important; + } + .p-lg-10 { + padding: 4rem !important; + } + .pt-lg-10 { + padding-top: 4rem !important; + } + .pr-lg-10 { + padding-right: 4rem !important; + } + .pb-lg-10 { + padding-bottom: 4rem !important; + } + .pl-lg-10 { + padding-left: 4rem !important; + } + .px-lg-10 { + padding-right: 4rem !important; + padding-left: 4rem !important; + } + .py-lg-10 { + padding-top: 4rem !important; + padding-bottom: 4rem !important; + } +} +@media (min-width: 87.5rem) { + .p-xl-0 { + padding: 0 !important; + } + .pt-xl-0 { + padding-top: 0 !important; + } + .pr-xl-0 { + padding-right: 0 !important; + } + .pb-xl-0 { + padding-bottom: 0 !important; + } + .pl-xl-0 { + padding-left: 0 !important; + } + .px-xl-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .py-xl-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .p-xl-1 { + padding: 0.25rem !important; + } + .pt-xl-1 { + padding-top: 0.25rem !important; + } + .pr-xl-1 { + padding-right: 0.25rem !important; + } + .pb-xl-1 { + padding-bottom: 0.25rem !important; + } + .pl-xl-1 { + padding-left: 0.25rem !important; + } + .px-xl-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .py-xl-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .p-xl-2 { + padding: 0.5rem !important; + } + .pt-xl-2 { + padding-top: 0.5rem !important; + } + .pr-xl-2 { + padding-right: 0.5rem !important; + } + .pb-xl-2 { + padding-bottom: 0.5rem !important; + } + .pl-xl-2 { + padding-left: 0.5rem !important; + } + .px-xl-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .py-xl-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .p-xl-3 { + padding: 0.75rem !important; + } + .pt-xl-3 { + padding-top: 0.75rem !important; + } + .pr-xl-3 { + padding-right: 0.75rem !important; + } + .pb-xl-3 { + padding-bottom: 0.75rem !important; + } + .pl-xl-3 { + padding-left: 0.75rem !important; + } + .px-xl-3 { + padding-right: 0.75rem !important; + padding-left: 0.75rem !important; + } + .py-xl-3 { + padding-top: 0.75rem !important; + padding-bottom: 0.75rem !important; + } + .p-xl-4 { + padding: 1rem !important; + } + .pt-xl-4 { + padding-top: 1rem !important; + } + .pr-xl-4 { + padding-right: 1rem !important; + } + .pb-xl-4 { + padding-bottom: 1rem !important; + } + .pl-xl-4 { + padding-left: 1rem !important; + } + .px-xl-4 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .py-xl-4 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .p-xl-5 { + padding: 1.5rem !important; + } + .pt-xl-5 { + padding-top: 1.5rem !important; + } + .pr-xl-5 { + padding-right: 1.5rem !important; + } + .pb-xl-5 { + padding-bottom: 1.5rem !important; + } + .pl-xl-5 { + padding-left: 1.5rem !important; + } + .px-xl-5 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .py-xl-5 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .p-xl-6 { + padding: 2rem !important; + } + .pt-xl-6 { + padding-top: 2rem !important; + } + .pr-xl-6 { + padding-right: 2rem !important; + } + .pb-xl-6 { + padding-bottom: 2rem !important; + } + .pl-xl-6 { + padding-left: 2rem !important; + } + .px-xl-6 { + padding-right: 2rem !important; + padding-left: 2rem !important; + } + .py-xl-6 { + padding-top: 2rem !important; + padding-bottom: 2rem !important; + } + .p-xl-7 { + padding: 2.5rem !important; + } + .pt-xl-7 { + padding-top: 2.5rem !important; + } + .pr-xl-7 { + padding-right: 2.5rem !important; + } + .pb-xl-7 { + padding-bottom: 2.5rem !important; + } + .pl-xl-7 { + padding-left: 2.5rem !important; + } + .px-xl-7 { + padding-right: 2.5rem !important; + padding-left: 2.5rem !important; + } + .py-xl-7 { + padding-top: 2.5rem !important; + padding-bottom: 2.5rem !important; + } + .p-xl-8 { + padding: 3rem !important; + } + .pt-xl-8 { + padding-top: 3rem !important; + } + .pr-xl-8 { + padding-right: 3rem !important; + } + .pb-xl-8 { + padding-bottom: 3rem !important; + } + .pl-xl-8 { + padding-left: 3rem !important; + } + .px-xl-8 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-xl-8 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .p-xl-9 { + padding: 3.5rem !important; + } + .pt-xl-9 { + padding-top: 3.5rem !important; + } + .pr-xl-9 { + padding-right: 3.5rem !important; + } + .pb-xl-9 { + padding-bottom: 3.5rem !important; + } + .pl-xl-9 { + padding-left: 3.5rem !important; + } + .px-xl-9 { + padding-right: 3.5rem !important; + padding-left: 3.5rem !important; + } + .py-xl-9 { + padding-top: 3.5rem !important; + padding-bottom: 3.5rem !important; + } + .p-xl-10 { + padding: 4rem !important; + } + .pt-xl-10 { + padding-top: 4rem !important; + } + .pr-xl-10 { + padding-right: 4rem !important; + } + .pb-xl-10 { + padding-bottom: 4rem !important; + } + .pl-xl-10 { + padding-left: 4rem !important; + } + .px-xl-10 { + padding-right: 4rem !important; + padding-left: 4rem !important; + } + .py-xl-10 { + padding-top: 4rem !important; + padding-bottom: 4rem !important; + } +} +@media print { + .site-footer, + .site-button, + #edit-this-page, + #back-to-top, + .site-nav, + .main-header { + display: none !important; + } + .side-bar { + width: 100%; + height: auto; + border-right: 0 !important; + } + .site-header { + border-bottom: 1px solid #eeebee; + } + .site-title { + font-size: 1rem !important; + font-weight: 700 !important; + } + .text-small { + font-size: 8pt !important; + } + pre.highlight { + border: 1px solid #eeebee; + } + .main { + max-width: none; + margin-left: 0; + } +} +a.skip-to-main { + left: -999px; + position: absolute; + top: auto; + width: 1px; + height: 1px; + overflow: hidden; + z-index: -999; +} + +a.skip-to-main:focus, +a.skip-to-main:active { + color: #7253ed; + background-color: #fff; + left: auto; + top: auto; + width: 30%; + height: auto; + overflow: auto; + margin: 10px 35%; + padding: 5px; + border-radius: 15px; + border: 4px solid #5e41d0; + text-align: center; + font-size: 1.2em; + z-index: 999; +} + +div.opaque { + background-color: #fff; +} + +#mbtlogo { + width: auto; + margin-left: 1em; + margin-right: 1em; +} + +#mbtlogo > path { + fill: #7253ed; +} + +#minititle { + margin-left: auto; + font-family: "Mukta Mahee", sans-serif; + vertical-align: middle; + font-size: xx-large; + color: #44434d; +} + +code.language-tla { + display: block; + overflow: auto; +} + +/*# sourceMappingURL=just-the-docs-light.css.map */ \ No newline at end of file diff --git a/assets/css/just-the-docs-light.css.map b/assets/css/just-the-docs-light.css.map new file mode 100644 index 00000000..e9e662b9 --- /dev/null +++ b/assets/css/just-the-docs-light.css.map @@ -0,0 +1 @@ +{"version":3,"sourceRoot":"","sources":["../../_sass/custom/custom.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/vendor/OneLightJekyll/syntax.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/vendor/normalize.scss/normalize.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/base.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/color_schemes/light.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/support/mixins/_typography.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/support/mixins/_layout.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/support/_variables.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/layout.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/content.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/navigation.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/typography.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/labels.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/buttons.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/support/mixins/_buttons.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/search.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/tables.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/code.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/utilities/_colors.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/utilities/_layout.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/utilities/_typography.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/utilities/_lists.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/utilities/_spacing.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/print.scss","../../../../../tmp/jekyll-remote-theme-20240527-15829-um223g/_sass/skiptomain.scss","just-the-docs-light.scss"],"names":[],"mappings":";AAWQ;ACTR;AAAA;EAEE;EACA;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AC9MF;AAEA;AAAA;AAGA;AAAA;AAAA;AAAA;AAKA;EACE;EACA;;;AAGF;AAAA;AAGA;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAAA;AAKA;EACE;EACA;;;AAGF;AAAA;AAGA;AAAA;AAAA;AAAA;AAKA;EACE;EACA;EACA;;;AAGF;AAAA;AAAA;AAAA;AAKA;EACE;EACA;;;AAGF;AAAA;AAGA;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAAA;AAKA;EACE;EACA;EACA;;;AAGF;AAAA;AAAA;AAIA;AAAA;EAEE;;;AAGF;AAAA;AAAA;AAAA;AAKA;AAAA;AAAA;EAGE;EACA;;;AAGF;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAAA;AAKA;AAAA;EAEE;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;AAAA;AAGA;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAGA;AAAA;AAAA;AAAA;AAKA;AAAA;AAAA;AAAA;AAAA;EAKE;EACA;EACA;EACA;;;AAGF;AAAA;AAAA;AAAA;AAKA;AAAA;AAEE;EACA;;;AAGF;AAAA;AAAA;AAAA;AAKA;AAAA;AAEE;EACA;;;AAGF;AAAA;AAAA;AAIA;AAAA;AAAA;AAAA;EAIE;;;AAGF;AAAA;AAAA;AAIA;AAAA;AAAA;AAAA;EAIE;EACA;;;AAGF;AAAA;AAAA;AAIA;AAAA;AAAA;AAAA;EAIE;;;AAGF;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAAA;AAKA;AAAA;EAEE;EACA;;;AAGF;AAAA;AAAA;AAIA;AAAA;EAEE;;;AAGF;AAAA;AAAA;AAAA;AAKA;EACE;EACA;;;AAGF;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAAA;AAKA;EACE;EACA;;;AAGF;AAAA;AAGA;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAGA;AAAA;AAAA;AAIA;EACE;;;AAGF;AAAA;AAAA;AAIA;EACE;;;AC1VF;EACE,cCJa;;;ADOf;EACE;;;AAGF;EEcE;EFXA;;AGAE;EHHJ;IEiBI;;;;AFXJ;EACE,aIfiB;EJgBjB;EACA,aIbiB;EJcjB,OIUY;EJTZ,kBIOM;EJNN;;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAYE;;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAOE;EACA;EACA;EACA,aI1CyB;EJ2CzB,OIlBY;;;AJqBd;EACE;EACA;;;AAGF;EACE,OItBW;EJuBX;;;AAGF;EACE;EACA,uBI/BY;EJgCZ;;AAEA;EACE;;;AAIJ;EACE,aIvEiB;EJwEjB;EACA,aIvEiB;;;AJ0EnB;AAAA;EAEE;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA,kBI/DY;EJgEZ;;;AAIF;EACE;EAGA;EACA;EACA;EACA;;;AK7GF;EACE;EACA;EACA;EACA,kBD6BY;;ADrBV;EEZJ;IAOI;IACA;IACA,ODwFW;ICvFX;IACA;IACA;;;AFAA;EEZJ;IAgBI;IACA,WD+EQ;;;ADpFR;EEQF;IAEI,aD2ES;;;ADrFX;EEQF;IAQI;;;AAOF;EACE;EACA,kBDJQ;;ADrBV;EEuBA;IAKI;IACA,kBDdA;;;ACiBF;EACE;;AFjCJ;EEgCE;IAII;;;;AAOV;EACE;;AF5CE;EE2CJ;IAII;IACA,WDyCY;;;;ACrChB;EFzCE,eCuDK;EDtDL,cCsDK;ECXL,aDWK;ECVL,gBDUK;;ADlEH;EEoDJ;IFrCI,eCqDG;IDpDH,cCoDG;;;ADpEH;EEoDJ;IAOI,aDSG;ICRH,gBDQG;;;;ACJP;EACE;EACA;;AFlEE;EEgEJ;IAKI;IACA;IACA,QDmBY;;;;ACfhB;AAAA;AAAA;EAGE;;AF9EE;EE2EJ;AAAA;AAAA;IAMI,ODGQ;;;;ACCZ;EACE;;AAEA;EACE;;AFzFA;EEqFJ;IAQI;IACA,aDxBG;ICyBH,gBD7BG;IC8BH;IACA;;;;AAIJ;EACE;EACA,YDbc;ECcd;;AFxGE;EEqGJ;IAMI,QDjBY;ICkBZ,YDlBY;ICmBZ;;;;AAIJ;EFtGE,eCuDK;EDtDL,cCsDK;ECkDL;EACA;EACA;EACA;EACA,aDvDK;ECwDL,gBDxDK;ECyDL,ODtGY;EFOZ;;AC3BE;EEiHJ;IFlGI,eCqDG;IDpDH,cCoDG;;;ADpEH;EEiHJ;IHnFI;IACA,aEpCuB;;;ADKvB;EEiHJ;IAaI,aD9DG;IC+DH,gBD/DG;;;;AC8EP;EACE;EACA;EACA,SD/EK;ECgFL;;;AFlJE;EEsJF;IACE;;;AAIJ;EACE;;;AAQF;EACE;;;AASF;EACE;EACA,gBDxGM;ECyGN;;AFjLE;EE8KJ;IAMI;IACA;;;;AAMJ;EFhLE,eCuDK;EDtDL,cCsDK;EC4HL;EACA;EACA;EACA,aD/HK;ECgIL,gBDhIK;ECiIL,ODnLY;EFrBZ;;ACKE;EE2LJ;IF5KI,eCqDG;IDpDH,cCoDG;;;ADpEH;EE2LJ;IH7LI;;;ACEA;EE2LJ;IAYI;IACA;;;;AAIJ;EACE,OD1IK;EC2IL,QD3IK;EC4IL,ODtLW;;;AElCb;EACE,aFEoB;;AEApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAOE;;AAGF;EACE;EACA;;AAGF;AAAA;EAEE;;AAIA;EACE,YF+CC;;AE3CL;EACE;EACA;;AAEA;EACE;;AAEA;EACE;EACA;EACA;EACA,OFfM;EEgBN;EACA;EJ9BN;;ACHE;EG2BE;IJrBF;;;ACNA;EG2BE;IAUI;;;AAIJ;EACE;;AAGE;EACE;EACA;;AAOV;EACE;;AAGE;EACE;EACA;EACA,OF7CM;EE8CN;;AAMJ;EACE;;AAIJ;EACE;EACA;;AAKF;EACE;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;AAAA;EAEE;;AAGF;EACE;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;;AAmBE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;;AASF;AAAA;AAAA;AAAA;AAAA;AAAA;EAEE;;AAKN;EACE;EACA;EACA,OFnFG;EEoFH;EACA,eFzFG;EE0FH,cF1FG;EE2FH;;AH1JA;EGmJF;IAUI;IACA;;;AAGF;EACE;EACA;EACA;EACA,OF5IO;EE6IP;;AAYF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;;AAIJ;EACE;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAOE;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAKE;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;;AAIJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAWE,YF9JG;;;AG3EP;EACE;EACA;EACA;EACA;;AAEA;ELgBA;EKbE;EACA;;AJCA;EILF;ILmBE;;;ACdA;EILF;ILQA;;;ACHE;EILF;ILWE;;;AKDA;EACE;EACA,YH+DC;EG9DD,aHuDC;EGtDD,gBHsDC;EGrDD;EAEE,eH0DD;EGzDC,cHqDD;;ADlEH;EIKA;IAeI,YHgDD;IG/CC;IAEE,eH6CH;IG5CG,cH4CH;;;AGrCD;EACE,OHkCD;EGjCC,QHiCD;EGhCC;;AAGF;EACE;EACA;;AAGF;EAEE;;AASJ;EACE;EAEE;EAGF,OHWC;EGVD,QHUC;EGTD;EACA,OHrCO;;ADzBT;EIqDA;IAYI,OHGD;IGFC,QHED;IGDC;;;AAGF;EACE;;AAQA;EACE;;AAKN;EACE;EACA,cHtBC;EGuBD;;AAEA;EACE;;AAEA;EACE,OH7EI;;AGgFN;EACE,OHjFI;;AGuFR;EAEI;;AAMJ;EACE;;;AAMR;EACE;EACA;EACA;EACA;EACA;ELjIA;;ACKE;EIuHJ;ILzHI;;;ACEA;EIuHJ;IASI;IACA,YH/DG;IGgEH;;EAEA;IACE;;;;AAMJ;EACE;;AAEA;EACE;;AAGE;EACE,OH1HG;;AG6HL;EACE,OH9HG;;;AGuIb;EACE;EACA;ELvKA;;ACKE;EIgKJ;ILlKI;;;AKuKF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AJjLA;EIgKJ;IAqBI,eHnHG;;;;ADlEH;EI2LJ;IAEI;;;;AAIJ;EACE;EACA,eHlIK;EGmIL;;;AAGF;EACE;EL7MA;;ACKE;EIuMJ;ILzMI;;;AK6MF;EACE;;AAGF;EACE;EACA,cHjJG;EGkJH,aHlJG;EGmJH,OHnMU;EGoMV;;AAIA;EACE;;;ACpON;AAAA;ENwDE;EACA,aEnDyB;EIFzB;;ALOE;EKXJ;AAAA;IN4DI;;;;AMrDJ;AAAA;AAAA;EN+BE;;AC3BE;EKJJ;AAAA;AAAA;INkCI;IACA,aEpCuB;;;;AIO3B;AAAA;ENiBE;;ACnBE;EKEJ;AAAA;INoBI;;;;AMfJ;AAAA;ENZE;EMgBA;EACA;EACA;;ALbE;EKOJ;AAAA;INTI;;;;AMkBJ;EACE;;;AAGF;AAAA;ENjBE;;ACHE;EKoBJ;AAAA;INdI;;;;AMmBJ;AAAA;EN9BE;;ACKE;EKyBJ;AAAA;IN3BI;;;;AMgCJ;ENnCE;;ACKE;EK8BJ;INhCI;;;;AMoCJ;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;ACvDF;AAAA;EAEE;EACA;EACA,cLoEK;EKnEL,aLmEK;EKlEL,OLiBM;EKhBN;EACA;EACA,kBL6BS;EFnCT;EOSA;;ANJE;EMRJ;AAAA;IPMI;;;;AOSJ;EACE,kBL2BU;;;AKxBZ;EACE,kBLcW;;;AKXb;EACE,kBL2BQ;;;AKxBV;EACE,OLFY;EKGZ,kBLkBW;;;AMlDb;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,ON2BW;EM1BX;EACA;EACA;EACA,kBTTkB;ESUlB;EACA,eNyEc;EMxEd,YACE;EAEF;;AAEA;EACE;EACA;EACA;;AAGF;EAEE;;AAGF;EAEE;;AAGF;EAIE;EACA;;AAGF;EAGE;EACA;EACA;;AAGF;EACE;;AAKA;EAEE;EACA;EACA;EACA;EACA;;;AAKN;EACE,ONnCW;EMoCX;EACA;;AAEA;EAIE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA,YACE;;AAIJ;EAEE;;;AAIJ;ECnGE,OP0BM;EOzBN;EACA;EACA,YACE;;AAGF;EAEE,OPiBI;EOhBJ;EACA;;AAGF;EAGE;EACA;EACA;;AAGF;EACE;;;ADgFJ;ECvGE,OP0BM;EOzBN;EACA;EACA,YACE;;AAGF;EAEE,OPiBI;EOhBJ;EACA;;AAGF;EAGE;EACA;EACA;;AAGF;EACE;;;ADoFJ;EC3GE,OP0BM;EOzBN;EACA;EACA,YACE;;AAGF;EAEE,OPiBI;EOhBJ;EACA;;AAGF;EAGE;EACA;EACA;;AAGF;EACE;;;ADwFJ;EC/GE,OP0BM;EOzBN;EACA;EACA,YACE;;AAGF;EAEE,OPiBI;EOhBJ;EACA;;AAGF;EAGE;EACA;EACA;;AAGF;EACE;;;AD4FJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AE3HF;EACE;EACA;EACA;EACA,QRgFM;EQ/EN,SRuEK;EQtEL;;ATME;ESZJ;IASI;IACA;IACA;IACA;IACA;;;;AAIJ;EACE;EACA;EACA,QR8DK;EQ7DL;EACA,eRmEc;EQlEd,YACE;EAEF;;ATdE;ESKJ;IAYI;IACA;IACA,WRwEmB;IQvEnB;IACA;IACA;IACA;;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA,ORhBY;EQiBZ,kBRnBM;EQoBN;EACA;EACA;EACA;EACA;;ATvCE;ES2BJ;IAeI;IACA;IACA,kBR7BI;IQ8BJ;;;AAGF;EACE;;AAEA;EACE,OR3BO;;;AQgCb;EACE;EACA;EACA;EACA,cRKK;;ADlEH;ESyDJ;IAOI,cRIG;IQHH;;;AAGF;EACE;EACA;EACA;EACA,ORxDU;;;AQ4Dd;EACE;EACA;EACA;EACA;EACA;EACA;EACA,kBRpEM;EQqEN,4BRPc;EQQd,2BRRc;EQSd,YACE;;ATvFA;ES4EJ;IAeI;IACA,ORDmB;IQEnB;;;;AAIJ;EACE;EACA,eRpCK;EQqCL;EVzFA;;ACXE;ESiGJ;IVnFI;;;ACdA;ESiGJ;IV9FE;;;ACHE;ESiGJ;IV3FI;;;;AUsGJ;EACE;EACA;;;AAGF;EACE;EACA;;AAEA;EAEE,kBX3Ha;;;AW+HjB;EACE;EACA,aR7DK;EQ8DL,gBR9DK;;ADhEH;ES2HJ;IAMI;IACA;IACA,eRnEG;IQoEH;;;;AAIJ;EACE;EACA;EACA;;AAEA;EACE;EV3IF;;ACHE;ES6IF;IVvIE;;;ACNA;ES6IF;IVlJA;;;ACKE;ES6IF;IV/IE;;;AUwJF;EACE,ORrFG;EQsFH,QRtFG;EQuFH,cRzFG;EQ0FH,ORjIS;EQkIT;;AAGF;EACE;;;AAIJ;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA,OR5JY;EQ6JZ;EACA;EV3LA;;ACaE;ESwKJ;IVlLI;;;;AU4LJ;EACE;EACA,aRpHK;EQqHL,gBRrHK;EQsHL,cRpHK;EQqHL,aRvHK;EQwHL,ORxKY;EQyKZ;EACA,aR9GO;EQ+GP,mBRrKY;EF3BZ;;ACKE;ESkLJ;IVpLI;;;ACEA;ESkLJ;IAaI;IACA;IACA,cRjIG;IQkIH;IACA;;;;AAIJ;EACE,YRzIK;;;AQ4IP;EACE;;;AAGF;EACE;EV7MA;;ACHE;ES+MJ;IVzMI;;;;AU8MJ;EACE;EACA,ORpJK;EQqJL,QRrJK;EQsJL;EACA,ORlJK;EQmJL,QRnJK;EQoJL,kBR5MM;EQ6MN;EACA;EACA,YACE;EAEF;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YACE;;;AAMF;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE,QRvLI;EQwLJ;;AThQA;ES8PF;IAKI,ORxKiB;IQyKjB,YACE;;;AAKN;EACE,kBR5PI;;ADfJ;ES0QF;IAII;;;AT9QF;ESkRF;IAEI;;;AAIJ;EACE;;AAGF;EACE;EACA;EACA;EACA,YACE;;ATjSF;ESuSA;IACE;IACA;IACA;;;AAIJ;EACE,aRvOI;;ADxEJ;ES8SF;IAII;;;;AC7TN;EACE;EACA;EACA;EACA,eT0EK;ESzEL;EACA,eTkFc;ESjFd,YACE;;;AAIJ;EACE;EACA;EACA;;;AAGF;AAAA;EXJE;EWQA;EACA;EACA,kBTEM;ESDN;EACA;;AVfE;EUOJ;AAAA;IXDI;;;AWWF;AAAA;EACE;;;AAOE;AAAA;EAEE;;AAGF;EACE,gBTkCD;;;AS3BL;EACE;;;AC9CF;EACE;EACA;EACA,kBVyBU;EUxBV;EACA,eV+EY;;;AU1EhB;EACE,cVkBY;;;AUiCd;AAAA;AAAA;EAGE;EACA,eVMK;EULL,kBVvCY;EUwCZ,eVgBc;EUfd;EACA;EACA;EACA;;AAIA;AAAA;AAAA;EACE,OVLG;EUMH;EACA;EACA;EACA;EACA;EACA,kBVvDU;EUwDV,OV5DU;EU6DV;;AAEA;AAAA;AAAA;EACE,MVhEQ;;AUmEV;AAAA;AAAA;EACE;EACA;EACA;;AAGF;AAAA;AAAA;EACE;;AAMF;AAAA;AAAA;EACE;EACA;;;AASJ;EACE;EACA,SV7CG;EU8CH;EACA;;AAGF;AAAA;EAEE;EACA;EACA;;;AAUJ;EAGE;EACA,eVpEK;;AU2CL;EACE;EACA,SV7CG;EU8CH;EACA;;AAGF;AAAA;EAEE;EACA;EACA;;;AAwBF;AAAA;EAEE;EACA,SVjFG;EUkFH;EACA;;;AAQJ;EACE;EACA;EACA;EACA;;AAEA;AAAA;EZvKA;EY2KE;EACA;EACA,kBVnJU;EUoJV;;AXzKA;EWkKF;AAAA;IZpKE;;;AY8KF;EACE;EACA,eV7GG;EU8GH,cV9GG;;AUiHL;EACE;EACA;;;AAKJ;AAAA;EAEE,SV1HK;EU2HL,eV3HK;EU4HL;EACA;EACA,eVlHc;;AUoHd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAIE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAKJ;EACE;EACA;EACA;;;AAIF;AAAA;EAEE,YVpMY;EUyMV,OV7MU;;;AUkNd;EACE,YV/MY;;;AW/Bd;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAKF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;ACvOF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AbPE;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ab9BJ;EaiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;AAQR;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAKF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;ACjGF;EfDE;;ACaE;EcZJ;IfEI;;;;AeEJ;EfGE;;ACKE;EcRJ;IfMI;;;;AeFJ;EfOE;;ACHE;EcJJ;IfUI;;;;AeNJ;EfWE;;ACXE;EcAJ;IfcI;;;;AeVJ;EfeE;;ACnBE;EcIJ;IfkBI;;;;AedJ;EfmBE;;AC3BE;EcQJ;IfsBI;IACA,aEpCuB;;;;AaiB3B;EfwBE;EACA,aE1CyB;;ADKvB;EcYJ;If4BI;;;;AexBJ;Ef6BE;EACA,aEnDyB;;ADKvB;EcgBJ;IfiCI;;;;Ae7BJ;EfkCE;EACA,aE5DyB;;ADKvB;EcoBJ;IfsCI;;;;AelCJ;EfuCE;EACA,aErEyB;;ADKvB;EcwBJ;If2CI;;;;AevCJ;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE,abxDiB;;;Aa2DnB;EACE,ab1DyB;;;Aa6D3B;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AC/EF;EACE;EACA;EACA;;AAGE;EACE;;;ACLN;EACE;EACA;;;AAQA;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;AAhCF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;AAhCF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;AAhCF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;AAhCF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;AAhCF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;AAhCF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;AAhCF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;AAhCF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;AAhCF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;AAhCF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;;;AhBlCA;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhBzEJ;EgB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AAaN;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAvBF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAvBF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAvBF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAvBF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAvBF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAvBF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAvBF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAvBF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAvBF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAvBF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AhB7GA;EgBwHE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhB/IJ;EgBwHE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhB/IJ;EgBwHE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhB/IJ;EgBwHE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AhB/IJ;EgBwHE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAvBF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AC3JR;EACE;AAAA;AAAA;AAAA;AAAA;AAAA;IAME;;EAGF;IACE;IACA;IACA;;EAGF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;IACA;;;AClCJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;AAAA;EAEE,OjBwBW;EiBvBX,kBjBaM;EiBZN;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;ACtBF;EACE,kBlBsBM;;;AP5BR;EACI;EACA;EACA;;;AAGJ;EACI,MO+BS;;;AP3Bb;EACI;EACA;EACA;EACA;EACA,OOeU;;;APZd;EACE;EACA","sourcesContent":["\n#mbtlogo {\n width: auto;\n margin-left: 1em;\n margin-right: 1em;\n}\n\n#mbtlogo > path {\n fill: $purple-000;\n}\n\n@import url('https://fonts.googleapis.com/css2?family=Mukta+Mahee&display=swap');\n#minititle {\n margin-left: auto;\n font-family: 'Mukta Mahee', sans-serif;\n vertical-align: middle;\n font-size: xx-large;\n color: $grey-dk-200;\n}\n\ncode.language-tla {\n display: block;\n overflow: auto;\n}\n","// Generated with OneLightJekyll applied to Atom's One Light theme\n\n.highlight,\npre.highlight {\n background: #f9f9f9;\n color: #383942;\n}\n.highlight pre {\n background: #f9f9f9;\n}\n.highlight .hll {\n background: #f9f9f9;\n}\n.highlight .c {\n color: #9fa0a6;\n font-style: italic;\n}\n.highlight .err {\n color: #fff;\n background-color: #e05151;\n}\n.highlight .k {\n color: #a625a4;\n}\n.highlight .l {\n color: #50a04f;\n}\n.highlight .n {\n color: #383942;\n}\n.highlight .o {\n color: #383942;\n}\n.highlight .p {\n color: #383942;\n}\n.highlight .cm {\n color: #9fa0a6;\n font-style: italic;\n}\n.highlight .cp {\n color: #9fa0a6;\n font-style: italic;\n}\n.highlight .c1 {\n color: #9fa0a6;\n font-style: italic;\n}\n.highlight .cs {\n color: #9fa0a6;\n font-style: italic;\n}\n.highlight .ge {\n font-style: italic;\n}\n.highlight .gs {\n font-weight: 700;\n}\n.highlight .kc {\n color: #a625a4;\n}\n.highlight .kd {\n color: #a625a4;\n}\n.highlight .kn {\n color: #a625a4;\n}\n.highlight .kp {\n color: #a625a4;\n}\n.highlight .kr {\n color: #a625a4;\n}\n.highlight .kt {\n color: #a625a4;\n}\n.highlight .ld {\n color: #50a04f;\n}\n.highlight .m {\n color: #b66a00;\n}\n.highlight .s {\n color: #50a04f;\n}\n.highlight .na {\n color: #b66a00;\n}\n.highlight .nb {\n color: #ca7601;\n}\n.highlight .nc {\n color: #ca7601;\n}\n.highlight .no {\n color: #ca7601;\n}\n.highlight .nd {\n color: #ca7601;\n}\n.highlight .ni {\n color: #ca7601;\n}\n.highlight .ne {\n color: #ca7601;\n}\n.highlight .nf {\n color: #383942;\n}\n.highlight .nl {\n color: #ca7601;\n}\n.highlight .nn {\n color: #383942;\n}\n.highlight .nx {\n color: #383942;\n}\n.highlight .py {\n color: #ca7601;\n}\n.highlight .nt {\n color: #e35549;\n}\n.highlight .nv {\n color: #ca7601;\n}\n.highlight .ow {\n font-weight: 700;\n}\n.highlight .w {\n color: #f8f8f2;\n}\n.highlight .mf {\n color: #b66a00;\n}\n.highlight .mh {\n color: #b66a00;\n}\n.highlight .mi {\n color: #b66a00;\n}\n.highlight .mo {\n color: #b66a00;\n}\n.highlight .sb {\n color: #50a04f;\n}\n.highlight .sc {\n color: #50a04f;\n}\n.highlight .sd {\n color: #50a04f;\n}\n.highlight .s2 {\n color: #50a04f;\n}\n.highlight .se {\n color: #50a04f;\n}\n.highlight .sh {\n color: #50a04f;\n}\n.highlight .si {\n color: #50a04f;\n}\n.highlight .sx {\n color: #50a04f;\n}\n.highlight .sr {\n color: #0083bb;\n}\n.highlight .s1 {\n color: #50a04f;\n}\n.highlight .ss {\n color: #0083bb;\n}\n.highlight .bp {\n color: #ca7601;\n}\n.highlight .vc {\n color: #ca7601;\n}\n.highlight .vg {\n color: #ca7601;\n}\n.highlight .vi {\n color: #e35549;\n}\n.highlight .il {\n color: #b66a00;\n}\n.highlight .gu {\n color: #75715e;\n}\n.highlight .gd {\n color: #e05151;\n}\n.highlight .gi {\n color: #43d089;\n}\n.highlight .language-json .w + .s2 {\n color: #e35549;\n}\n.highlight .language-json .kc {\n color: #0083bb;\n}\n","/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput {\n /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect {\n /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n","// Base element style overrides\n// stylelint-disable selector-no-type, selector-max-type, selector-max-specificity, selector-max-id\n\n:root {\n color-scheme: $color-scheme;\n}\n\n* {\n box-sizing: border-box;\n}\n\nhtml {\n @include fs-4;\n\n scroll-behavior: smooth;\n}\n\nbody {\n font-family: $body-font-family;\n font-size: inherit;\n line-height: $body-line-height;\n color: $body-text-color;\n background-color: $body-background-color;\n overflow-wrap: break-word;\n}\n\nol,\nul,\ndl,\npre,\naddress,\nblockquote,\ntable,\ndiv,\nhr,\nform,\nfieldset,\nnoscript .table-wrapper {\n margin-top: 0;\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\n#toctitle {\n margin-top: 0;\n margin-bottom: 1em;\n font-weight: 500;\n line-height: $body-heading-line-height;\n color: $body-heading-color;\n}\n\np {\n margin-top: 1em;\n margin-bottom: 1em;\n}\n\na {\n color: $link-color;\n text-decoration: none;\n}\n\na:not([class]) {\n text-decoration: underline;\n text-decoration-color: $border-color;\n text-underline-offset: 2px;\n\n &:hover {\n text-decoration-color: rgba($link-color, 0.45);\n }\n}\n\ncode {\n font-family: $mono-font-family;\n font-size: 0.75em;\n line-height: $body-line-height;\n}\n\nfigure,\npre {\n margin: 0;\n}\n\nli {\n margin: 0.25em 0;\n}\n\nimg {\n max-width: 100%;\n height: auto;\n}\n\nhr {\n height: 1px;\n padding: 0;\n margin: $sp-6 0;\n background-color: $border-color;\n border: 0;\n}\n\n// adds a GitHub-style sidebar to blockquotes\nblockquote {\n margin: 10px 0;\n\n // resets user-agent stylesheets for blockquotes\n margin-block-start: 0;\n margin-inline-start: 0;\n padding-left: 1rem;\n border-left: 3px solid $border-color;\n}\n","$color-scheme: light !default;\n$body-background-color: $white !default;\n$body-heading-color: $grey-dk-300 !default;\n$body-text-color: $grey-dk-100 !default;\n$link-color: $purple-000 !default;\n$nav-child-link-color: $grey-dk-100 !default;\n$sidebar-color: $grey-lt-000 !default;\n$base-button-color: #f7f7f7 !default;\n$btn-primary-color: $purple-100 !default;\n$code-background-color: $grey-lt-000 !default;\n$feedback-color: darken($sidebar-color, 3%) !default;\n$table-background-color: $white !default;\n$search-background-color: $white !default;\n$search-result-preview-color: $grey-dk-000 !default;\n\n@import \"./vendor/OneLightJekyll/syntax\";\n","@mixin fs-1 {\n font-size: $font-size-1 !important;\n\n @include mq(sm) {\n font-size: $font-size-1-sm !important;\n }\n}\n\n@mixin fs-2 {\n font-size: $font-size-2 !important;\n\n @include mq(sm) {\n font-size: $font-size-3 !important;\n }\n}\n\n@mixin fs-3 {\n font-size: $font-size-3 !important;\n\n @include mq(sm) {\n font-size: $font-size-4 !important;\n }\n}\n\n@mixin fs-4 {\n font-size: $font-size-4 !important;\n\n @include mq(sm) {\n font-size: $font-size-5 !important;\n }\n}\n\n@mixin fs-5 {\n font-size: $font-size-5 !important;\n\n @include mq(sm) {\n font-size: $font-size-6 !important;\n }\n}\n\n@mixin fs-6 {\n font-size: $font-size-6 !important;\n\n @include mq(sm) {\n font-size: $font-size-7 !important;\n line-height: $body-heading-line-height;\n }\n}\n\n@mixin fs-7 {\n font-size: $font-size-7 !important;\n line-height: $body-heading-line-height;\n\n @include mq(sm) {\n font-size: $font-size-8 !important;\n }\n}\n\n@mixin fs-8 {\n font-size: $font-size-8 !important;\n line-height: $body-heading-line-height;\n\n @include mq(sm) {\n font-size: $font-size-9 !important;\n }\n}\n\n@mixin fs-9 {\n font-size: $font-size-9 !important;\n line-height: $body-heading-line-height;\n\n @include mq(sm) {\n font-size: $font-size-10 !important;\n }\n}\n\n@mixin fs-10 {\n font-size: $font-size-10 !important;\n line-height: $body-heading-line-height;\n\n @include mq(sm) {\n font-size: $font-size-10-sm !important;\n }\n}\n","// Media query\n\n// Media query mixin\n// Usage:\n// @include mq(md) {\n// ..medium and up styles\n// }\n@mixin mq($name) {\n // Retrieves the value from the key\n $value: map-get($media-queries, $name);\n\n // If the key exists in the map\n @if $value {\n // Prints a media query based on the value\n @media (min-width: $value) {\n @content;\n }\n } @else {\n @warn \"No value could be retrieved from `#{$media-query}`. Please make sure it is defined in `$media-queries` map.\";\n }\n}\n\n// Responsive container\n\n@mixin container {\n padding-right: $gutter-spacing-sm;\n padding-left: $gutter-spacing-sm;\n\n @include mq(md) {\n padding-right: $gutter-spacing;\n padding-left: $gutter-spacing;\n }\n}\n","// Typography\n\n// prettier-ignore\n$body-font-family: system-ui, -apple-system, blinkmacsystemfont, \"Segoe UI\",\n roboto, \"Helvetica Neue\", arial, sans-serif, \"Segoe UI Emoji\" !default;\n$mono-font-family: \"SFMono-Regular\", menlo, consolas, monospace !default;\n$root-font-size: 16px !default; // DEPRECATED: previously base font-size for rems\n$body-line-height: 1.4 !default;\n$content-line-height: 1.6 !default;\n$body-heading-line-height: 1.25 !default;\n\n// Font size\n// `-sm` suffix is the size at the small (and above) media query\n\n$font-size-1: 0.5625rem !default;\n$font-size-1-sm: 0.625rem !default;\n$font-size-2: 0.6875rem !default; // h4 - uppercased!, h6 not uppercased, text-small\n$font-size-3: 0.75rem !default; // h5\n$font-size-4: 0.875rem !default;\n$font-size-5: 1rem !default; // h3\n$font-size-6: 1.125rem !default; // h2\n$font-size-7: 1.5rem !default;\n$font-size-8: 2rem !default; // h1\n$font-size-9: 2.25rem !default;\n$font-size-10: 2.625rem !default;\n$font-size-10-sm: 3rem !default;\n\n// Colors\n\n$white: #fff !default;\n$grey-dk-000: #959396 !default;\n$grey-dk-100: #5c5962 !default;\n$grey-dk-200: #44434d !default;\n$grey-dk-250: #302d36 !default;\n$grey-dk-300: #27262b !default;\n$grey-lt-000: #f5f6fa !default;\n$grey-lt-100: #eeebee !default;\n$grey-lt-200: #ecebed !default;\n$grey-lt-300: #e6e1e8 !default;\n$purple-000: #7253ed !default;\n$purple-100: #5e41d0 !default;\n$purple-200: #4e26af !default;\n$purple-300: #381885 !default;\n$blue-000: #2c84fa !default;\n$blue-100: #2869e6 !default;\n$blue-200: #264caf !default;\n$blue-300: #183385 !default;\n$green-000: #41d693 !default;\n$green-100: #11b584 !default;\n$green-200: #009c7b !default;\n$green-300: #026e57 !default;\n$yellow-000: #ffeb82 !default;\n$yellow-100: #fadf50 !default;\n$yellow-200: #f7d12e !default;\n$yellow-300: #e7af06 !default;\n$red-000: #f77e7e !default;\n$red-100: #f96e65 !default;\n$red-200: #e94c4c !default;\n$red-300: #dd2e2e !default;\n\n// Spacing\n\n$spacing-unit: 1rem; // 1rem == 16px\n\n$spacers: (\n sp-0: 0,\n sp-1: $spacing-unit * 0.25,\n sp-2: $spacing-unit * 0.5,\n sp-3: $spacing-unit * 0.75,\n sp-4: $spacing-unit,\n sp-5: $spacing-unit * 1.5,\n sp-6: $spacing-unit * 2,\n sp-7: $spacing-unit * 2.5,\n sp-8: $spacing-unit * 3,\n sp-9: $spacing-unit * 3.5,\n sp-10: $spacing-unit * 4,\n) !default;\n$sp-1: map-get($spacers, sp-1) !default; // 0.25 rem == 4px\n$sp-2: map-get($spacers, sp-2) !default; // 0.5 rem == 8px\n$sp-3: map-get($spacers, sp-3) !default; // 0.75 rem == 12px\n$sp-4: map-get($spacers, sp-4) !default; // 1 rem == 16px\n$sp-5: map-get($spacers, sp-5) !default; // 1.5 rem == 24px\n$sp-6: map-get($spacers, sp-6) !default; // 2 rem == 32px\n$sp-7: map-get($spacers, sp-7) !default; // 2.5 rem == 40px\n$sp-8: map-get($spacers, sp-8) !default; // 3 rem == 48px\n$sp-9: map-get($spacers, sp-9) !default; // 3.5 rem == 56px\n$sp-10: map-get($spacers, sp-10) !default; // 4 rem == 64px\n\n// Borders\n\n$border: 1px solid !default;\n$border-radius: 4px !default;\n$border-color: $grey-lt-100 !default;\n\n// Grid system\n\n$gutter-spacing: $sp-6 !default;\n$gutter-spacing-sm: $sp-4 !default;\n$nav-width: 16.5rem !default;\n$nav-width-md: 15.5rem !default;\n$nav-list-item-height: $sp-6 !default;\n$nav-list-item-height-sm: $sp-8 !default;\n$nav-list-expander-right: true;\n$content-width: 50rem !default;\n$header-height: 3.75rem !default;\n$search-results-width: $content-width - $nav-width !default;\n$transition-duration: 400ms;\n\n// Media queries in pixels\n\n$media-queries: (\n xs: 20rem,\n sm: 31.25rem,\n md: $content-width,\n lg: $content-width + $nav-width,\n xl: 87.5rem,\n) !default;\n","// The basic two column layout\n\n.side-bar {\n z-index: 0;\n display: flex;\n flex-wrap: wrap;\n background-color: $sidebar-color;\n\n @include mq(md) {\n flex-flow: column nowrap;\n position: fixed;\n width: $nav-width-md;\n height: 100%;\n border-right: $border $border-color;\n align-items: flex-end;\n }\n\n @include mq(lg) {\n width: calc((100% - #{$nav-width + $content-width}) / 2 + #{$nav-width});\n min-width: $nav-width;\n }\n\n & + .main {\n @include mq(md) {\n margin-left: $nav-width-md;\n }\n\n @include mq(lg) {\n // stylelint-disable function-name-case\n // disable for Max(), we want to use the CSS max() function\n margin-left: Max(\n #{$nav-width},\n calc((100% - #{$nav-width + $content-width}) / 2 + #{$nav-width})\n );\n // stylelint-enable function-name-case\n }\n\n .main-header {\n display: none;\n background-color: $sidebar-color;\n\n @include mq(md) {\n display: flex;\n background-color: $body-background-color;\n }\n\n &.nav-open {\n display: block;\n\n @include mq(md) {\n display: flex;\n }\n }\n }\n }\n}\n\n.main {\n margin: auto;\n\n @include mq(md) {\n position: relative;\n max-width: $content-width;\n }\n}\n\n.main-content-wrap {\n @include container;\n\n padding-top: $gutter-spacing-sm;\n padding-bottom: $gutter-spacing-sm;\n\n @include mq(md) {\n padding-top: $gutter-spacing;\n padding-bottom: $gutter-spacing;\n }\n}\n\n.main-header {\n z-index: 0;\n border-bottom: $border $border-color;\n\n @include mq(md) {\n display: flex;\n justify-content: space-between;\n height: $header-height;\n }\n}\n\n.site-nav,\n.site-header,\n.site-footer {\n width: 100%;\n\n @include mq(lg) {\n width: $nav-width;\n }\n}\n\n.site-nav {\n display: none;\n\n &.nav-open {\n display: block;\n }\n\n @include mq(md) {\n display: block;\n padding-top: $sp-8;\n padding-bottom: $gutter-spacing-sm;\n overflow-y: auto;\n flex: 1 1 auto;\n }\n}\n\n.site-header {\n display: flex;\n min-height: $header-height;\n align-items: center;\n\n @include mq(md) {\n height: $header-height;\n max-height: $header-height;\n border-bottom: $border $border-color;\n }\n}\n\n.site-title {\n @include container;\n\n flex-grow: 1;\n display: flex;\n height: 100%;\n align-items: center;\n padding-top: $sp-3;\n padding-bottom: $sp-3;\n color: $body-heading-color;\n @include fs-6;\n\n @include mq(md) {\n padding-top: $sp-2;\n padding-bottom: $sp-2;\n }\n}\n\n@if variable-exists(logo) {\n .site-logo {\n width: 100%;\n height: 100%;\n background-image: url($logo);\n background-repeat: no-repeat;\n background-position: left center;\n background-size: contain;\n }\n}\n\n.site-button {\n display: flex;\n height: 100%;\n padding: $gutter-spacing-sm;\n align-items: center;\n}\n\n@include mq(md) {\n .site-header .site-button {\n display: none;\n }\n}\n\n.site-title:hover {\n background-image: linear-gradient(\n -90deg,\n rgba($feedback-color, 1) 0%,\n rgba($feedback-color, 0.8) 80%,\n rgba($feedback-color, 0) 100%\n );\n}\n\n.site-button:hover {\n background-image: linear-gradient(\n -90deg,\n rgba($feedback-color, 1) 0%,\n rgba($feedback-color, 0.8) 100%\n );\n}\n\n// stylelint-disable selector-max-type\n\nbody {\n position: relative;\n padding-bottom: $sp-10;\n overflow-y: scroll;\n\n @include mq(md) {\n position: static;\n padding-bottom: 0;\n }\n}\n\n// stylelint-enable selector-max-type\n\n.site-footer {\n @include container;\n\n position: absolute;\n bottom: 0;\n left: 0;\n padding-top: $sp-4;\n padding-bottom: $sp-4;\n color: $grey-dk-000;\n @include fs-2;\n\n @include mq(md) {\n position: static;\n justify-self: end;\n }\n}\n\n.icon {\n width: $sp-5;\n height: $sp-5;\n color: $link-color;\n}\n","@charset \"UTF-8\";\n\n// Styles for rendered markdown in the .main-content container\n// stylelint-disable selector-no-type, max-nesting-depth, selector-max-compound-selectors, selector-max-type, selector-max-specificity, selector-max-id\n\n.main-content {\n line-height: $content-line-height;\n\n ol,\n ul,\n dl,\n pre,\n address,\n blockquote,\n .table-wrapper {\n margin-top: 0.5em;\n }\n\n a {\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n ul,\n ol {\n padding-left: 1.5em;\n }\n\n li {\n .highlight {\n margin-top: $sp-1;\n }\n }\n\n ol {\n list-style-type: none;\n counter-reset: step-counter;\n\n > li {\n position: relative;\n\n &::before {\n position: absolute;\n top: 0.2em;\n left: -1.6em;\n color: $grey-dk-000;\n content: counter(step-counter);\n counter-increment: step-counter;\n @include fs-3;\n\n @include mq(sm) {\n top: 0.11em;\n }\n }\n\n ol {\n counter-reset: sub-counter;\n\n > li {\n &::before {\n content: counter(sub-counter, lower-alpha);\n counter-increment: sub-counter;\n }\n }\n }\n }\n }\n\n ul {\n list-style: none;\n\n > li {\n &::before {\n position: absolute;\n margin-left: -1.4em;\n color: $grey-dk-000;\n content: \"•\";\n }\n }\n }\n\n .task-list-item {\n &::before {\n content: \"\";\n }\n }\n\n .task-list-item-checkbox {\n margin-right: 0.6em;\n margin-left: -1.4em;\n\n // The same margin-left is used above for ul > li::before\n }\n\n hr + * {\n margin-top: 0;\n }\n\n h1:first-of-type {\n margin-top: 0.5em;\n }\n\n dl {\n display: grid;\n grid-template: auto / 10em 1fr;\n }\n\n dt,\n dd {\n margin: 0.25em 0;\n }\n\n dt {\n grid-column: 1;\n font-weight: 500;\n text-align: right;\n\n &::after {\n content: \":\";\n }\n }\n\n dd {\n grid-column: 2;\n margin-bottom: 0;\n margin-left: 1em;\n\n blockquote,\n div,\n dl,\n dt,\n h1,\n h2,\n h3,\n h4,\n h5,\n h6,\n li,\n ol,\n p,\n pre,\n table,\n ul,\n .table-wrapper {\n &:first-child {\n margin-top: 0;\n }\n }\n }\n\n dd,\n ol,\n ul {\n dl:first-child {\n dt:first-child,\n dd:nth-child(2) {\n margin-top: 0;\n }\n }\n }\n\n .anchor-heading {\n position: absolute;\n right: -$sp-4;\n width: $sp-5;\n height: 100%;\n padding-right: $sp-1;\n padding-left: $sp-1;\n overflow: visible;\n\n @include mq(md) {\n right: auto;\n left: -$sp-5;\n }\n\n svg {\n display: inline-block;\n width: 100%;\n height: 100%;\n color: $link-color;\n visibility: hidden;\n }\n }\n\n .anchor-heading:hover,\n .anchor-heading:focus,\n h1:hover > .anchor-heading,\n h2:hover > .anchor-heading,\n h3:hover > .anchor-heading,\n h4:hover > .anchor-heading,\n h5:hover > .anchor-heading,\n h6:hover > .anchor-heading {\n svg {\n visibility: visible;\n }\n }\n\n summary {\n cursor: pointer;\n }\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6,\n #toctitle {\n position: relative;\n margin-top: 1.5em;\n margin-bottom: 0.25em;\n\n + table,\n + .table-wrapper,\n + .code-example,\n + .highlighter-rouge,\n + .sectionbody .listingblock {\n margin-top: 1em;\n }\n\n + p:not(.label) {\n margin-top: 0;\n }\n }\n\n > h1:first-child,\n > h2:first-child,\n > h3:first-child,\n > h4:first-child,\n > h5:first-child,\n > h6:first-child,\n > .sect1:first-child > h2,\n > .sect2:first-child > h3,\n > .sect3:first-child > h4,\n > .sect4:first-child > h5,\n > .sect5:first-child > h6 {\n margin-top: $sp-2;\n }\n}\n","// Main nav, breadcrumb, etc...\n// stylelint-disable selector-no-type, max-nesting-depth, selector-max-compound-selectors, selector-max-type, selector-max-specificity\n\n.nav-list {\n padding: 0;\n margin-top: 0;\n margin-bottom: 0;\n list-style: none;\n\n .nav-list-item {\n @include fs-4;\n\n position: relative;\n margin: 0;\n\n @include mq(md) {\n @include fs-3;\n }\n\n .nav-list-link {\n display: block;\n min-height: $nav-list-item-height-sm;\n padding-top: $sp-1;\n padding-bottom: $sp-1;\n line-height: #{$nav-list-item-height-sm - 2 * $sp-1};\n @if $nav-list-expander-right {\n padding-right: $nav-list-item-height-sm;\n padding-left: $gutter-spacing-sm;\n } @else {\n padding-right: $gutter-spacing-sm;\n padding-left: $nav-list-item-height-sm;\n }\n\n @include mq(md) {\n min-height: $nav-list-item-height;\n line-height: #{$nav-list-item-height - 2 * $sp-1};\n @if $nav-list-expander-right {\n padding-right: $nav-list-item-height;\n padding-left: $gutter-spacing;\n } @else {\n padding-right: $gutter-spacing;\n padding-left: $nav-list-item-height;\n }\n }\n\n &.external > svg {\n width: $sp-4;\n height: $sp-4;\n vertical-align: text-bottom;\n }\n\n &.active {\n font-weight: 600;\n text-decoration: none;\n }\n\n &:hover,\n &.active {\n background-image: linear-gradient(\n -90deg,\n rgba($feedback-color, 1) 0%,\n rgba($feedback-color, 0.8) 80%,\n rgba($feedback-color, 0) 100%\n );\n }\n }\n\n .nav-list-expander {\n position: absolute;\n @if $nav-list-expander-right {\n right: 0;\n }\n\n width: $nav-list-item-height-sm;\n height: $nav-list-item-height-sm;\n padding: #{$nav-list-item-height-sm * 0.25};\n color: $link-color;\n\n @include mq(md) {\n width: $nav-list-item-height;\n height: $nav-list-item-height;\n padding: #{$nav-list-item-height * 0.25};\n }\n\n &:hover {\n background-image: linear-gradient(\n -90deg,\n rgba($feedback-color, 1) 0%,\n rgba($feedback-color, 0.8) 100%\n );\n }\n\n @if $nav-list-expander-right {\n svg {\n transform: rotate(90deg);\n }\n }\n }\n\n > .nav-list {\n display: none;\n padding-left: $sp-3;\n list-style: none;\n\n .nav-list-item {\n position: relative;\n\n .nav-list-link {\n color: $nav-child-link-color;\n }\n\n .nav-list-expander {\n color: $nav-child-link-color;\n }\n }\n }\n\n &.active {\n > .nav-list-expander svg {\n @if $nav-list-expander-right {\n transform: rotate(-90deg);\n } @else {\n transform: rotate(90deg);\n }\n }\n\n > .nav-list {\n display: block;\n }\n }\n }\n}\n\n.nav-category {\n padding: $sp-2 $gutter-spacing-sm;\n font-weight: 600;\n text-align: start;\n text-transform: uppercase;\n border-bottom: $border $border-color;\n @include fs-2;\n\n @include mq(md) {\n padding: $sp-2 $gutter-spacing;\n margin-top: $gutter-spacing-sm;\n text-align: start;\n\n &:first-child {\n margin-top: 0;\n }\n }\n}\n\n.nav-list.nav-category-list {\n > .nav-list-item {\n margin: 0;\n\n > .nav-list {\n padding: 0;\n\n > .nav-list-item {\n > .nav-list-link {\n color: $link-color;\n }\n\n > .nav-list-expander {\n color: $link-color;\n }\n }\n }\n }\n}\n\n// Aux nav\n\n.aux-nav {\n height: 100%;\n overflow-x: auto;\n @include fs-2;\n\n .aux-nav-list {\n display: flex;\n height: 100%;\n padding: 0;\n margin: 0;\n list-style: none;\n }\n\n .aux-nav-list-item {\n display: inline-block;\n height: 100%;\n padding: 0;\n margin: 0;\n }\n\n @include mq(md) {\n padding-right: $gutter-spacing-sm;\n }\n}\n\n// Breadcrumb nav\n\n.breadcrumb-nav {\n @include mq(md) {\n margin-top: -$sp-4;\n }\n}\n\n.breadcrumb-nav-list {\n padding-left: 0;\n margin-bottom: $sp-3;\n list-style: none;\n}\n\n.breadcrumb-nav-list-item {\n display: table-cell;\n @include fs-2;\n\n &::before {\n display: none;\n }\n\n &::after {\n display: inline-block;\n margin-right: $sp-2;\n margin-left: $sp-2;\n color: $grey-dk-000;\n content: \"/\";\n }\n\n &:last-child {\n &::after {\n content: \"\";\n }\n }\n}\n","// Typography\n// stylelint-disable selector-no-type, selector-max-type, selector-max-specificity, selector-max-id\n\nh1,\n.text-alpha {\n @include fs-8;\n\n font-weight: 300;\n}\n\nh2,\n.text-beta,\n#toctitle {\n @include fs-6;\n}\n\nh3,\n.text-gamma {\n @include fs-5;\n}\n\nh4,\n.text-delta {\n @include fs-2;\n\n font-weight: 400;\n text-transform: uppercase;\n letter-spacing: 0.1em;\n}\n\nh4 code {\n text-transform: none;\n}\n\nh5,\n.text-epsilon {\n @include fs-3;\n}\n\nh6,\n.text-zeta {\n @include fs-2;\n}\n\n.text-small {\n @include fs-2;\n}\n\n.text-mono {\n font-family: $mono-font-family !important;\n}\n\n.text-left {\n text-align: left !important;\n}\n\n.text-center {\n text-align: center !important;\n}\n\n.text-right {\n text-align: right !important;\n}\n","// Labels (not the form kind)\n\n// this :not() prevents a style clash with Mermaid.js's\n// diagram labels, which also use .label\n// for more, see https://github.com/just-the-docs/just-the-docs/issues/1272\n// and the accompanying PR\n.label:not(g),\n.label-blue:not(g) {\n display: inline-block;\n padding: 0.16em 0.56em;\n margin-right: $sp-2;\n margin-left: $sp-2;\n color: $white;\n text-transform: uppercase;\n vertical-align: middle;\n background-color: $blue-100;\n @include fs-2;\n\n border-radius: 12px;\n}\n\n.label-green:not(g) {\n background-color: $green-200;\n}\n\n.label-purple:not(g) {\n background-color: $purple-100;\n}\n\n.label-red:not(g) {\n background-color: $red-200;\n}\n\n.label-yellow:not(g) {\n color: $grey-dk-200;\n background-color: $yellow-200;\n}\n","// Buttons and things that look like buttons\n// stylelint-disable color-named\n\n.btn {\n display: inline-block;\n box-sizing: border-box;\n padding: 0.3em 1em;\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n font-weight: 500;\n line-height: 1.5;\n color: $link-color;\n text-decoration: none;\n vertical-align: baseline;\n cursor: pointer;\n background-color: $base-button-color;\n border-width: 0;\n border-radius: $border-radius;\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n appearance: none;\n\n &:focus {\n text-decoration: none;\n outline: none;\n box-shadow: 0 0 0 3px rgba(blue, 0.25);\n }\n\n &:focus:hover,\n &.selected:focus {\n box-shadow: 0 0 0 3px rgba(blue, 0.25);\n }\n\n &:hover,\n &.zeroclipboard-is-hover {\n color: darken($link-color, 2%);\n }\n\n &:hover,\n &:active,\n &.zeroclipboard-is-hover,\n &.zeroclipboard-is-active {\n text-decoration: none;\n background-color: darken($base-button-color, 1%);\n }\n\n &:active,\n &.selected,\n &.zeroclipboard-is-active {\n background-color: darken($base-button-color, 3%);\n background-image: none;\n box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15);\n }\n\n &.selected:hover {\n background-color: darken(#dcdcdc, 5%);\n }\n\n &:disabled,\n &.disabled {\n &,\n &:hover {\n color: rgba(102, 102, 102, 0.5);\n cursor: default;\n background-color: rgba(229, 229, 229, 0.5);\n background-image: none;\n box-shadow: none;\n }\n }\n}\n\n.btn-outline {\n color: $link-color;\n background: transparent;\n box-shadow: inset 0 0 0 2px $grey-lt-300;\n\n &:hover,\n &:active,\n &.zeroclipboard-is-hover,\n &.zeroclipboard-is-active {\n color: darken($link-color, 4%);\n text-decoration: none;\n background-color: transparent;\n box-shadow: inset 0 0 0 3px $grey-lt-300;\n }\n\n &:focus {\n text-decoration: none;\n outline: none;\n box-shadow:\n inset 0 0 0 2px $grey-dk-100,\n 0 0 0 3px rgba(blue, 0.25);\n }\n\n &:focus:hover,\n &.selected:focus {\n box-shadow: inset 0 0 0 2px $grey-dk-100;\n }\n}\n\n.btn-primary {\n @include btn-color($white, $btn-primary-color);\n}\n\n.btn-purple {\n @include btn-color($white, $purple-100);\n}\n\n.btn-blue {\n @include btn-color($white, $blue-000);\n}\n\n.btn-green {\n @include btn-color($white, $green-100);\n}\n\n.btn-reset {\n background: none;\n border: none;\n margin: 0;\n text-align: inherit;\n font: inherit;\n border-radius: 0;\n appearance: none;\n}\n","// Colored button\n\n@mixin btn-color($fg, $bg) {\n color: $fg;\n background-color: darken($bg, 2%);\n background-image: linear-gradient(lighten($bg, 5%), darken($bg, 2%));\n box-shadow:\n 0 1px 3px rgba(0, 0, 0, 0.25),\n 0 4px 10px rgba(0, 0, 0, 0.12);\n\n &:hover,\n &.zeroclipboard-is-hover {\n color: $fg;\n background-color: darken($bg, 4%);\n background-image: linear-gradient((lighten($bg, 2%), darken($bg, 4%)));\n }\n\n &:active,\n &.selected,\n &.zeroclipboard-is-active {\n background-color: darken($bg, 5%);\n background-image: none;\n box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15);\n }\n\n &.selected:hover {\n background-color: darken($bg, 10%);\n }\n}\n","// Search input and autocomplete\n\n.search {\n position: relative;\n z-index: 2;\n flex-grow: 1;\n height: $sp-10;\n padding: $sp-2;\n transition: padding linear #{$transition-duration * 0.5};\n\n @include mq(md) {\n position: relative !important;\n width: auto !important;\n height: 100% !important;\n padding: 0;\n transition: none;\n }\n}\n\n.search-input-wrap {\n position: relative;\n z-index: 1;\n height: $sp-8;\n overflow: hidden;\n border-radius: $border-radius;\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n transition: height linear #{$transition-duration * 0.5};\n\n @include mq(md) {\n position: absolute;\n width: 100%;\n max-width: $search-results-width;\n height: 100% !important;\n border-radius: 0;\n box-shadow: none;\n transition: width ease $transition-duration;\n }\n}\n\n.search-input {\n position: absolute;\n width: 100%;\n height: 100%;\n padding: $sp-2 $gutter-spacing-sm $sp-2 #{$gutter-spacing-sm + $sp-5};\n font-size: 1rem;\n color: $body-text-color;\n background-color: $search-background-color;\n border-top: 0;\n border-right: 0;\n border-bottom: 0;\n border-left: 0;\n border-radius: 0;\n\n @include mq(md) {\n padding: $sp-2 $gutter-spacing-sm $sp-2 #{$gutter-spacing + $sp-5};\n font-size: 0.875rem;\n background-color: $body-background-color;\n transition: padding-left linear #{$transition-duration * 0.5};\n }\n\n &:focus {\n outline: 0;\n\n + .search-label .search-icon {\n color: $link-color;\n }\n }\n}\n\n.search-label {\n position: absolute;\n display: flex;\n height: 100%;\n padding-left: $gutter-spacing-sm;\n\n @include mq(md) {\n padding-left: $gutter-spacing;\n transition: padding-left linear #{$transition-duration * 0.5};\n }\n\n .search-icon {\n width: #{$sp-4 * 1.2};\n height: #{$sp-4 * 1.2};\n align-self: center;\n color: $grey-dk-000;\n }\n}\n\n.search-results {\n position: absolute;\n left: 0;\n display: none;\n width: 100%;\n max-height: calc(100% - #{$sp-10});\n overflow-y: auto;\n background-color: $search-background-color;\n border-bottom-right-radius: $border-radius;\n border-bottom-left-radius: $border-radius;\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n\n @include mq(md) {\n top: 100%;\n width: $search-results-width;\n max-height: calc(100vh - 200%) !important;\n }\n}\n\n.search-results-list {\n padding-left: 0;\n margin-bottom: $sp-1;\n list-style: none;\n @include fs-4;\n\n @include mq(md) {\n @include fs-3;\n }\n}\n\n.search-results-list-item {\n padding: 0;\n margin: 0;\n}\n\n.search-result {\n display: block;\n padding: $sp-1 $sp-3;\n\n &:hover,\n &.active {\n background-color: $feedback-color;\n }\n}\n\n.search-result-title {\n display: block;\n padding-top: $sp-2;\n padding-bottom: $sp-2;\n\n @include mq(sm) {\n display: inline-block;\n width: 40%;\n padding-right: $sp-2;\n vertical-align: top;\n }\n}\n\n.search-result-doc {\n display: flex;\n align-items: center;\n word-wrap: break-word;\n\n &.search-result-doc-parent {\n opacity: 0.5;\n @include fs-3;\n\n @include mq(md) {\n @include fs-2;\n }\n }\n\n .search-result-icon {\n width: $sp-4;\n height: $sp-4;\n margin-right: $sp-2;\n color: $link-color;\n flex-shrink: 0;\n }\n\n .search-result-doc-title {\n overflow: auto;\n }\n}\n\n.search-result-section {\n margin-left: #{$sp-4 + $sp-2};\n word-wrap: break-word;\n}\n\n.search-result-rel-url {\n display: block;\n margin-left: #{$sp-4 + $sp-2};\n overflow: hidden;\n color: $search-result-preview-color;\n text-overflow: ellipsis;\n white-space: nowrap;\n @include fs-1;\n}\n\n.search-result-previews {\n display: block;\n padding-top: $sp-2;\n padding-bottom: $sp-2;\n padding-left: $sp-4;\n margin-left: $sp-2;\n color: $search-result-preview-color;\n word-wrap: break-word;\n border-left: $border;\n border-left-color: $border-color;\n @include fs-2;\n\n @include mq(sm) {\n display: inline-block;\n width: 60%;\n padding-left: $sp-2;\n margin-left: 0;\n vertical-align: top;\n }\n}\n\n.search-result-preview + .search-result-preview {\n margin-top: $sp-1;\n}\n\n.search-result-highlight {\n font-weight: bold;\n}\n\n.search-no-result {\n padding: $sp-2 $sp-3;\n @include fs-3;\n}\n\n.search-button {\n position: fixed;\n right: $sp-4;\n bottom: $sp-4;\n display: flex;\n width: $sp-9;\n height: $sp-9;\n background-color: $search-background-color;\n border: 1px solid rgba($link-color, 0.3);\n border-radius: #{$sp-9 * 0.5};\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n align-items: center;\n justify-content: center;\n}\n\n.search-overlay {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1;\n width: 0;\n height: 0;\n background-color: rgba(0, 0, 0, 0.3);\n opacity: 0;\n transition:\n opacity ease $transition-duration,\n width 0s $transition-duration,\n height 0s $transition-duration;\n}\n\n.search-active {\n .search {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n padding: 0;\n }\n\n .search-input-wrap {\n height: $sp-10;\n border-radius: 0;\n\n @include mq(md) {\n width: $search-results-width;\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n }\n }\n\n .search-input {\n background-color: $search-background-color;\n\n @include mq(md) {\n padding-left: 2.3rem;\n }\n }\n\n .search-label {\n @include mq(md) {\n padding-left: 0.6rem;\n }\n }\n\n .search-results {\n display: block;\n }\n\n .search-overlay {\n width: 100%;\n height: 100%;\n opacity: 1;\n transition:\n opacity ease $transition-duration,\n width 0s,\n height 0s;\n }\n\n @include mq(md) {\n .main {\n position: fixed;\n right: 0;\n left: 0;\n }\n }\n\n .main-header {\n padding-top: $sp-10;\n\n @include mq(md) {\n padding-top: 0;\n }\n }\n}\n","// Tables\n// stylelint-disable max-nesting-depth, selector-no-type, selector-max-type\n\n.table-wrapper {\n display: block;\n width: 100%;\n max-width: 100%;\n margin-bottom: $sp-5;\n overflow-x: auto;\n border-radius: $border-radius;\n box-shadow:\n 0 1px 2px rgba(0, 0, 0, 0.12),\n 0 3px 10px rgba(0, 0, 0, 0.08);\n}\n\ntable {\n display: table;\n min-width: 100%;\n border-collapse: separate;\n}\n\nth,\ntd {\n @include fs-3;\n\n min-width: 7.5rem;\n padding: $sp-2 $sp-3;\n background-color: $table-background-color;\n border-bottom: $border rgba($border-color, 0.5);\n border-left: $border $border-color;\n\n &:first-of-type {\n border-left: 0;\n }\n}\n\ntbody {\n tr {\n &:last-of-type {\n th,\n td {\n border-bottom: 0;\n }\n\n td {\n padding-bottom: $sp-3;\n }\n }\n }\n}\n\nthead {\n th {\n border-bottom: $border $border-color;\n }\n}\n","// Code and syntax highlighting\n// stylelint-disable selector-no-qualifying-type, declaration-block-semicolon-newline-after,declaration-block-single-line-max-declarations, selector-no-type, selector-max-type, scss/comment-no-empty\n\n// {% raw %}\n\n// This instruction applies to all queues not within 'pre' or 'figure', avoiding 'code' generated by the highlight.\n:not(pre, figure) {\n & > code {\n padding: 0.2em 0.15em;\n font-weight: 400;\n background-color: $code-background-color;\n border: $border $border-color;\n border-radius: $border-radius;\n }\n}\n\n// Avoid appearance of dark border around visited code links in Safari\na:visited code {\n border-color: $border-color;\n}\n\n// Content structure for highlighted code blocks using fences or Liquid\n//\n// ```[LANG]...```, no kramdown line_numbers:\n// div.[language-LANG.]highlighter-rouge > div.highlight > pre.highlight > code\n//\n// ```[LANG]...```, kramdown line_numbers = true:\n// div.[language-LANG.]highlighter-rouge > div.highlight > pre.highlight > code\n// > div.table-wrapper > table.rouge-table > tbody > tr\n// > td.rouge-gutter.gl > pre.lineno\n// | td.rouge-code > pre\n//\n// {% highlight LANG %}...{% endhighlight %}:\n// figure.highlight > pre > code.language-LANG\n//\n// {% highlight LANG linenos %}...{% endhighlight %}:\n// figure.highlight > pre > code.language-LANG\n// > div.table-wrapper > table.rouge-table > tbody > tr\n// > td.gutter.gl > pre.lineno\n// | td.code > pre\n//\n// ----...---- (AsciiDoc)\n// div.listingblock > div.content > pre.rouge.highlight\n//\n// fix_linenos removes the outermost pre when it encloses table.rouge-table\n//\n// See docs/index-test.md for some tests.\n//\n// No kramdown line_numbers: fences and Liquid highlighting look the same.\n// Kramdown line_numbers = true: fences have a wider gutter than with Liquid?\n\n// ```[LANG]...```\n// or in AsciiDoc:\n//\n// ----\n// ...\n// ----\n\n// the code may appear with 3 different types:\n// container \\ case: default case, code with line number, code with html rendering\n// top level: div.highlighter-rouge, figure.highlight, figure.highlight\n// second level: div.highlight, div.table-wrapper, pre.highlight\n// third level: pre.highlight, td.code, absent\n// last level: code, pre, code (optionality)\n// highlighter level: span, span, span\n// the spacing are only in the second level for case 1, 3 and in the third level for case 2\n// in AsciiDoc, there is a parent container that contains optionally a title and the content.\n\n// select top level container\ndiv.highlighter-rouge,\ndiv.listingblock > div.content,\nfigure.highlight {\n margin-top: 0;\n margin-bottom: $sp-3;\n background-color: $code-background-color;\n border-radius: $border-radius;\n box-shadow: none;\n -webkit-overflow-scrolling: touch;\n position: relative;\n padding: 0;\n\n // copy button (or other button)\n // the button appear only when there is a hover on the code or focus on button\n > button {\n width: $sp-3;\n opacity: 0;\n position: absolute;\n top: 0;\n right: 0;\n border: $sp-3 solid $code-background-color;\n background-color: $code-background-color;\n color: $body-text-color;\n box-sizing: content-box;\n\n svg {\n fill: $body-text-color;\n }\n\n &:active {\n text-decoration: none;\n outline: none;\n opacity: 1;\n }\n\n &:focus {\n opacity: 1;\n }\n }\n\n // the button can be seen by doing a simple hover in the code, there is no need to go over the location of the button\n &:hover {\n > button {\n cursor: copy;\n opacity: 1;\n }\n }\n}\n\n// setting the spacing and scrollbar on the second level for the first case\n// remove all space on the second and third level\n// this is a mixin to accommodate for the slightly different structures generated via Markdown vs AsciiDoc\n@mixin scroll-and-spacing($code-div, $pre-select) {\n #{$code-div} {\n overflow-x: auto;\n padding: $sp-3;\n margin: 0;\n border: 0;\n }\n\n #{$pre-select},\n code {\n padding: 0;\n margin: 0;\n border: 0;\n }\n}\n\n// for Markdown\ndiv.highlighter-rouge {\n @include scroll-and-spacing(\"div.highlight\", \"pre.highlight\");\n}\n\n// for AsciiDoc. we also need to fix the margins for its parent container.\ndiv.listingblock {\n @include scroll-and-spacing(\"div.content\", \"div.content > pre\");\n\n margin-top: 0;\n margin-bottom: $sp-3;\n}\n\n// {% highlight LANG %}...{% endhighlight %},\n// {% highlight LANG linenos %}...{% endhighlight %}:\n\n// setting the spacing and scrollbar on the second level for the thirt case\n// the css rule are apply only to the last code enviroment\n// setting the scroolbar\nfigure.highlight {\n pre,\n :not(pre) > code {\n overflow-x: auto;\n padding: $sp-3;\n margin: 0;\n border: 0;\n }\n}\n\n// ```[LANG]...```, kramdown line_numbers = true,\n// {% highlight LANG linenos %}...{% endhighlight %}:\n\n// setting the spacing and scrollbar on the thirt level for the second case\n.highlight .table-wrapper {\n padding: $sp-3 0;\n margin: 0;\n border: 0;\n box-shadow: none;\n\n td,\n pre {\n @include fs-2;\n\n min-width: 0;\n padding: 0;\n background-color: $code-background-color;\n border: 0;\n }\n\n td.gl {\n width: 1em;\n padding-right: $sp-3;\n padding-left: $sp-3;\n }\n\n pre {\n margin: 0;\n line-height: 2;\n }\n}\n\n// Code examples: html render of a code\n.code-example,\n.listingblock > .title {\n padding: $sp-3;\n margin-bottom: $sp-3;\n overflow: auto;\n border: 1px solid $border-color;\n border-radius: $border-radius;\n\n + .highlighter-rouge,\n + .sectionbody .listingblock,\n + .content,\n + figure.highlight {\n position: relative;\n margin-top: -$sp-4;\n border-right: 1px solid $border-color;\n border-bottom: 1px solid $border-color;\n border-left: 1px solid $border-color;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n }\n}\n\n// Mermaid diagram code blocks should be left unstyled.\ncode.language-mermaid {\n padding: 0;\n background-color: inherit;\n border: 0;\n}\n\n// Override OneDarkJekyll Colors for Code Blocks\n.highlight,\npre.highlight {\n background: $code-background-color; // Code Background\n // For Backwards Compatibility Before $code-linenumber-color was added\n @if variable-exists(code-linenumber-color) {\n color: $code-linenumber-color; // Code Line Numbers\n } @else {\n color: $body-text-color; // Code Line Numbers\n }\n}\n\n// Override OneDarkJekyll Colors for Code Blocks\n.highlight pre {\n background: $code-background-color; // Code Background\n}\n\n// {% endraw %}\n","// Utility classes for colors\n\n// Text colors\n\n.text-grey-dk-000 {\n color: $grey-dk-000 !important;\n}\n\n.text-grey-dk-100 {\n color: $grey-dk-100 !important;\n}\n\n.text-grey-dk-200 {\n color: $grey-dk-200 !important;\n}\n\n.text-grey-dk-250 {\n color: $grey-dk-250 !important;\n}\n\n.text-grey-dk-300 {\n color: $grey-dk-300 !important;\n}\n\n.text-grey-lt-000 {\n color: $grey-lt-000 !important;\n}\n\n.text-grey-lt-100 {\n color: $grey-lt-100 !important;\n}\n\n.text-grey-lt-200 {\n color: $grey-lt-200 !important;\n}\n\n.text-grey-lt-300 {\n color: $grey-lt-300 !important;\n}\n\n.text-blue-000 {\n color: $blue-000 !important;\n}\n\n.text-blue-100 {\n color: $blue-100 !important;\n}\n\n.text-blue-200 {\n color: $blue-200 !important;\n}\n\n.text-blue-300 {\n color: $blue-300 !important;\n}\n\n.text-green-000 {\n color: $green-000 !important;\n}\n\n.text-green-100 {\n color: $green-100 !important;\n}\n\n.text-green-200 {\n color: $green-200 !important;\n}\n\n.text-green-300 {\n color: $green-300 !important;\n}\n\n.text-purple-000 {\n color: $purple-000 !important;\n}\n\n.text-purple-100 {\n color: $purple-100 !important;\n}\n\n.text-purple-200 {\n color: $purple-200 !important;\n}\n\n.text-purple-300 {\n color: $purple-300 !important;\n}\n\n.text-yellow-000 {\n color: $yellow-000 !important;\n}\n\n.text-yellow-100 {\n color: $yellow-100 !important;\n}\n\n.text-yellow-200 {\n color: $yellow-200 !important;\n}\n\n.text-yellow-300 {\n color: $yellow-300 !important;\n}\n\n.text-red-000 {\n color: $red-000 !important;\n}\n\n.text-red-100 {\n color: $red-100 !important;\n}\n\n.text-red-200 {\n color: $red-200 !important;\n}\n\n.text-red-300 {\n color: $red-300 !important;\n}\n\n// Background colors\n\n.bg-grey-dk-000 {\n background-color: $grey-dk-000 !important;\n}\n\n.bg-grey-dk-100 {\n background-color: $grey-dk-100 !important;\n}\n\n.bg-grey-dk-200 {\n background-color: $grey-dk-200 !important;\n}\n\n.bg-grey-dk-250 {\n background-color: $grey-dk-250 !important;\n}\n\n.bg-grey-dk-300 {\n background-color: $grey-dk-300 !important;\n}\n\n.bg-grey-lt-000 {\n background-color: $grey-lt-000 !important;\n}\n\n.bg-grey-lt-100 {\n background-color: $grey-lt-100 !important;\n}\n\n.bg-grey-lt-200 {\n background-color: $grey-lt-200 !important;\n}\n\n.bg-grey-lt-300 {\n background-color: $grey-lt-300 !important;\n}\n\n.bg-blue-000 {\n background-color: $blue-000 !important;\n}\n\n.bg-blue-100 {\n background-color: $blue-100 !important;\n}\n\n.bg-blue-200 {\n background-color: $blue-200 !important;\n}\n\n.bg-blue-300 {\n background-color: $blue-300 !important;\n}\n\n.bg-green-000 {\n background-color: $green-000 !important;\n}\n\n.bg-green-100 {\n background-color: $green-100 !important;\n}\n\n.bg-green-200 {\n background-color: $green-200 !important;\n}\n\n.bg-green-300 {\n background-color: $green-300 !important;\n}\n\n.bg-purple-000 {\n background-color: $purple-000 !important;\n}\n\n.bg-purple-100 {\n background-color: $purple-100 !important;\n}\n\n.bg-purple-200 {\n background-color: $purple-200 !important;\n}\n\n.bg-purple-300 {\n background-color: $purple-300 !important;\n}\n\n.bg-yellow-000 {\n background-color: $yellow-000 !important;\n}\n\n.bg-yellow-100 {\n background-color: $yellow-100 !important;\n}\n\n.bg-yellow-200 {\n background-color: $yellow-200 !important;\n}\n\n.bg-yellow-300 {\n background-color: $yellow-300 !important;\n}\n\n.bg-red-000 {\n background-color: $red-000 !important;\n}\n\n.bg-red-100 {\n background-color: $red-100 !important;\n}\n\n.bg-red-200 {\n background-color: $red-200 !important;\n}\n\n.bg-red-300 {\n background-color: $red-300 !important;\n}\n","// Utility classes for layout\n\n// Display\n\n.d-block {\n display: block !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-none {\n display: none !important;\n}\n\n@each $media-query in map-keys($media-queries) {\n @for $i from 1 through length($spacers) {\n @include mq($media-query) {\n $size: #{map-get($spacers, sp-#{$i - 1})};\n $scale: #{$i - 1};\n\n // .d-sm-block, .d-md-none, .d-lg-inline\n .d-#{$media-query}-block {\n display: block !important;\n }\n .d-#{$media-query}-flex {\n display: flex !important;\n }\n .d-#{$media-query}-inline {\n display: inline !important;\n }\n .d-#{$media-query}-inline-block {\n display: inline-block !important;\n }\n .d-#{$media-query}-none {\n display: none !important;\n }\n }\n }\n}\n\n// Horizontal alignment\n\n.float-left {\n float: left !important;\n}\n\n.float-right {\n float: right !important;\n}\n\n.flex-justify-start {\n justify-content: flex-start !important;\n}\n\n.flex-justify-end {\n justify-content: flex-end !important;\n}\n\n.flex-justify-between {\n justify-content: space-between !important;\n}\n\n.flex-justify-around {\n justify-content: space-around !important;\n}\n\n// Vertical alignment\n\n.v-align-baseline {\n vertical-align: baseline !important;\n}\n\n.v-align-bottom {\n vertical-align: bottom !important;\n}\n\n.v-align-middle {\n vertical-align: middle !important;\n}\n\n.v-align-text-bottom {\n vertical-align: text-bottom !important;\n}\n\n.v-align-text-top {\n vertical-align: text-top !important;\n}\n\n.v-align-top {\n vertical-align: top !important;\n}\n","// Utility classes for typography\n\n.fs-1 {\n @include fs-1;\n}\n\n.fs-2 {\n @include fs-2;\n}\n\n.fs-3 {\n @include fs-3;\n}\n\n.fs-4 {\n @include fs-4;\n}\n\n.fs-5 {\n @include fs-5;\n}\n\n.fs-6 {\n @include fs-6;\n}\n\n.fs-7 {\n @include fs-7;\n}\n\n.fs-8 {\n @include fs-8;\n}\n\n.fs-9 {\n @include fs-9;\n}\n\n.fs-10 {\n @include fs-10;\n}\n\n.fw-300 {\n font-weight: 300 !important;\n}\n\n.fw-400 {\n font-weight: 400 !important;\n}\n\n.fw-500 {\n font-weight: 500 !important;\n}\n\n.fw-700 {\n font-weight: 700 !important;\n}\n\n.lh-0 {\n line-height: 0 !important;\n}\n\n.lh-default {\n line-height: $body-line-height;\n}\n\n.lh-tight {\n line-height: $body-heading-line-height;\n}\n\n.ls-5 {\n letter-spacing: 0.05em !important;\n}\n\n.ls-10 {\n letter-spacing: 0.1em !important;\n}\n\n.ls-0 {\n letter-spacing: 0 !important;\n}\n\n.text-uppercase {\n text-transform: uppercase !important;\n}\n","// Utility classes for lists\n\n// stylelint-disable selector-max-type\n\n.list-style-none {\n padding: 0 !important;\n margin: 0 !important;\n list-style: none !important;\n\n li {\n &::before {\n display: none !important;\n }\n }\n}\n","// Utility classes for margins and padding\n\n// stylelint-disable block-opening-brace-space-after, block-opening-brace-space-before\n\n// Margin spacer utilities\n\n.mx-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n}\n\n@for $i from 1 through length($spacers) {\n $size: #{map-get($spacers, sp-#{$i - 1})};\n $scale: #{$i - 1};\n\n // .m-0, .m-1, .m-2...\n .m-#{$scale} {\n margin: #{$size} !important;\n }\n .mt-#{$scale} {\n margin-top: #{$size} !important;\n }\n .mr-#{$scale} {\n margin-right: #{$size} !important;\n }\n .mb-#{$scale} {\n margin-bottom: #{$size} !important;\n }\n .ml-#{$scale} {\n margin-left: #{$size} !important;\n }\n\n .mx-#{$scale} {\n margin-right: #{$size} !important;\n margin-left: #{$size} !important;\n }\n\n .my-#{$scale} {\n margin-top: #{$size} !important;\n margin-bottom: #{$size} !important;\n }\n\n .mxn-#{$scale} {\n margin-right: -#{$size} !important;\n margin-left: -#{$size} !important;\n }\n .mx-#{$scale}-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n}\n\n@each $media-query in map-keys($media-queries) {\n @for $i from 1 through length($spacers) {\n @include mq($media-query) {\n $size: #{map-get($spacers, sp-#{$i - 1})};\n $scale: #{$i - 1};\n\n // .m-sm-0, .m-md-1, .m-lg-2...\n .m-#{$media-query}-#{$scale} {\n margin: #{$size} !important;\n }\n .mt-#{$media-query}-#{$scale} {\n margin-top: #{$size} !important;\n }\n .mr-#{$media-query}-#{$scale} {\n margin-right: #{$size} !important;\n }\n .mb-#{$media-query}-#{$scale} {\n margin-bottom: #{$size} !important;\n }\n .ml-#{$media-query}-#{$scale} {\n margin-left: #{$size} !important;\n }\n\n .mx-#{$media-query}-#{$scale} {\n margin-right: #{$size} !important;\n margin-left: #{$size} !important;\n }\n\n .my-#{$media-query}-#{$scale} {\n margin-top: #{$size} !important;\n margin-bottom: #{$size} !important;\n }\n\n .mxn-#{$media-query}-#{$scale} {\n margin-right: -#{$size} !important;\n margin-left: -#{$size} !important;\n }\n }\n }\n}\n\n// Padding spacer utilities\n\n@for $i from 1 through length($spacers) {\n $size: #{map-get($spacers, sp-#{$i - 1})};\n $scale: #{$i - 1};\n\n // .p-0, .p-1, .p-2...\n .p-#{$scale} {\n padding: #{$size} !important;\n }\n .pt-#{$scale} {\n padding-top: #{$size} !important;\n }\n .pr-#{$scale} {\n padding-right: #{$size} !important;\n }\n .pb-#{$scale} {\n padding-bottom: #{$size} !important;\n }\n .pl-#{$scale} {\n padding-left: #{$size} !important;\n }\n\n .px-#{$scale} {\n padding-right: #{$size} !important;\n padding-left: #{$size} !important;\n }\n\n .py-#{$scale} {\n padding-top: #{$size} !important;\n padding-bottom: #{$size} !important;\n }\n}\n\n@each $media-query in map-keys($media-queries) {\n @include mq($media-query) {\n @for $i from 1 through length($spacers) {\n $size: #{map-get($spacers, sp-#{$i - 1})};\n $scale: #{$i - 1};\n\n // .p-sm-0, .p-md-1, .p-lg-2...\n .p-#{$media-query}-#{$scale} {\n padding: #{$size} !important;\n }\n .pt-#{$media-query}-#{$scale} {\n padding-top: #{$size} !important;\n }\n .pr-#{$media-query}-#{$scale} {\n padding-right: #{$size} !important;\n }\n .pb-#{$media-query}-#{$scale} {\n padding-bottom: #{$size} !important;\n }\n .pl-#{$media-query}-#{$scale} {\n padding-left: #{$size} !important;\n }\n\n .px-#{$media-query}-#{$scale} {\n padding-right: #{$size} !important;\n padding-left: #{$size} !important;\n }\n\n .py-#{$media-query}-#{$scale} {\n padding-top: #{$size} !important;\n padding-bottom: #{$size} !important;\n }\n }\n }\n}\n","// stylelint-disable selector-max-specificity, selector-max-id, selector-max-type, selector-no-qualifying-type\n\n@media print {\n .site-footer,\n .site-button,\n #edit-this-page,\n #back-to-top,\n .site-nav,\n .main-header {\n display: none !important;\n }\n\n .side-bar {\n width: 100%;\n height: auto;\n border-right: 0 !important;\n }\n\n .site-header {\n border-bottom: 1px solid $border-color;\n }\n\n .site-title {\n font-size: 1rem !important;\n font-weight: 700 !important;\n }\n\n .text-small {\n font-size: 8pt !important;\n }\n\n pre.highlight {\n border: 1px solid $border-color;\n }\n\n .main {\n max-width: none;\n margin-left: 0;\n }\n}\n","// Skipnav\n// Skip to main content\n\na.skip-to-main {\n left: -999px;\n position: absolute;\n top: auto;\n width: 1px;\n height: 1px;\n overflow: hidden;\n z-index: -999;\n}\n\na.skip-to-main:focus,\na.skip-to-main:active {\n color: $link-color;\n background-color: $body-background-color;\n left: auto;\n top: auto;\n width: 30%;\n height: auto;\n overflow: auto;\n margin: 10px 35%;\n padding: 5px;\n border-radius: 15px;\n border: 4px solid $btn-primary-color;\n text-align: center;\n font-size: 1.2em;\n z-index: 999;\n}\n","\n@import \"./support/support\";\n@import \"./custom/setup\";\n@import \"./color_schemes/light\";\n\n@import \"./modules\";\ndiv.opaque {\n background-color: $body-background-color;\n}\n@import \"./custom/custom\";\n\n\n"],"file":"just-the-docs-light.css"} \ No newline at end of file diff --git a/assets/images/large-image.jpg b/assets/images/large-image.jpg new file mode 100644 index 00000000..c007781c Binary files /dev/null and b/assets/images/large-image.jpg differ diff --git a/assets/images/small-image.jpg b/assets/images/small-image.jpg new file mode 100644 index 00000000..5bf58a94 Binary files /dev/null and b/assets/images/small-image.jpg differ diff --git a/assets/js/just-the-docs.js b/assets/js/just-the-docs.js new file mode 100644 index 00000000..fa70ae50 --- /dev/null +++ b/assets/js/just-the-docs.js @@ -0,0 +1,574 @@ +(function (jtd, undefined) { + +// Event handling + +jtd.addEvent = function(el, type, handler) { + if (el.attachEvent) el.attachEvent('on'+type, handler); else el.addEventListener(type, handler); +} +jtd.removeEvent = function(el, type, handler) { + if (el.detachEvent) el.detachEvent('on'+type, handler); else el.removeEventListener(type, handler); +} +jtd.onReady = function(ready) { + // in case the document is already rendered + if (document.readyState!='loading') ready(); + // modern browsers + else if (document.addEventListener) document.addEventListener('DOMContentLoaded', ready); + // IE <= 8 + else document.attachEvent('onreadystatechange', function(){ + if (document.readyState=='complete') ready(); + }); +} + +// Show/hide mobile menu + +function initNav() { + jtd.addEvent(document, 'click', function(e){ + var target = e.target; + while (target && !(target.classList && target.classList.contains('nav-list-expander'))) { + target = target.parentNode; + } + if (target) { + e.preventDefault(); + target.ariaPressed = target.parentNode.classList.toggle('active'); + } + }); + + const siteNav = document.getElementById('site-nav'); + const mainHeader = document.getElementById('main-header'); + const menuButton = document.getElementById('menu-button'); + + disableHeadStyleSheets(); + + jtd.addEvent(menuButton, 'click', function(e){ + e.preventDefault(); + + if (menuButton.classList.toggle('nav-open')) { + siteNav.classList.add('nav-open'); + mainHeader.classList.add('nav-open'); + menuButton.ariaPressed = true; + } else { + siteNav.classList.remove('nav-open'); + mainHeader.classList.remove('nav-open'); + menuButton.ariaPressed = false; + } + }); +} + +// The element is assumed to include the following stylesheets: +// - a to /assets/css/just-the-docs-head-nav.css, +// with id 'jtd-head-nav-stylesheet' +// - a Modelator | Model Based Techniques + Skip to main content Link Menu Expand (external link) Document Search Copy Copied

Modelator is a tool that facilitates generation and execution of tests. Besides other features, it provides:

  • easy selection of a model checker to execute (Apalache or TLC)
  • automatic enumeration of tests in TLA+ files
  • generation of multiple test executions from the same test assertion
  • interfaces for execution of generated tests in target languages (currently Rust and Go)

MBT Architecture


diff --git a/docs/tla_basics_tutorials/apalache_vs_tlc.html b/docs/tla_basics_tutorials/apalache_vs_tlc.html new file mode 100644 index 00000000..02593d86 --- /dev/null +++ b/docs/tla_basics_tutorials/apalache_vs_tlc.html @@ -0,0 +1,23 @@ + + + Apalache vs TLC | Model Based Techniques + Skip to main content Link Menu Expand (external link) Document Search Copy Copied

Apalache vs TLC

In ‘Hello World’ we used TLC to model check a simple model. Both model checkers have advantages and disadvantages.

Apalache

Apalache is a bounded symbolic model checker. Apalache will transform your Init and Next boolean functions into a logical formula which can be solved using an SMT solver. The formula is a conjunction of smaller formulas, one for each step of the system. This means Apalache requires a parameter k specifying how many steps it should explore, starting from Init.

The advantage of Apalache’s approach is that it can deal with some infinite state spaces. For example it can solve the constraint problem (x is integer) /\ (0 <= x) /\ (x < 2^32) very easily - providing concrete values of x that satisfy the constraints. Can you see how this may be useful for modelling financial transaction software?

The disadvantage of Apalache’s approach is that it can not easily check executions which take many steps from Init. This is because the formula grows for each step in the execution, becoming progressively more difficult to solve with an SMT solver. In practice 6-12 steps may be achievable in a reasonable time, depending on the model.

TLC

TLC is an explicit state enumeration model checker. TLC will perform a breadth first search of the state space starting from the Init state. Each explored state is fingerprinted and the fingerprint is stored. When a state is processed from the queue (BFS style) TLC will only explore its successor states if its fingerprint has not been seen before.

The advantage of TLC’s approach is that it can check unbounded length executions. In particular, if there are finitely many possible system states, TLC can enumerate all of them. In practice it is possible to check billions of states, the only limit is storage (to store the BFS queue and the fingerprints) and time. In practice TLC is fast when it can use only RAM but will become extremely slow if it runs out of memory and has to store data on disk.

The disadvantage of TLC’s approach is that it must enumerate states explicitly and cannot solve symbolic constraints. For example if x can feasibly take values in [1, 2^32] then TLC will have to check a state for each value. How many states will TLC have to check if (x, y) can both take values in [1, 2^32]?

Feature asymmetry

There are features that TLC has and Apalache does’t and vice versa.

[Coming soon! TODO: link to an Apalache vs TLC page with a detailed discussion]

In this tutorial we focus on Apalache, and particularly three features:

  1. +The type checker
    Apalache comes with a type checker for TLA+ which helps you to develop models without creating bugs in the model itself
  2. +Trace invariants
    Apalache lets you define boolean functions over the entire sequence of states in an execution. This lets you detect system behavior that single state boolean functions would not be able to detect
  3. +Enumerating counterexamples
    Apalache can generate multiple traces for a given behavior. This enables generating thorough tests for a real system.

diff --git a/docs/tla_basics_tutorials/drawings/HelloWorld.excalidraw b/docs/tla_basics_tutorials/drawings/HelloWorld.excalidraw new file mode 100644 index 00000000..aa7afca7 --- /dev/null +++ b/docs/tla_basics_tutorials/drawings/HelloWorld.excalidraw @@ -0,0 +1,4010 @@ +{ + "type": "excalidraw", + "version": 2, + "source": "https://excalidraw.com", + "elements": [ + { + "type": "rectangle", + "version": 1446, + "versionNonce": 999739177, + "isDeleted": false, + "id": "TmcH0Jx97RKiX3HTn3G9t", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1094.1150948660775, + "y": 255.06301153273967, + "strokeColor": "#e67700", + "backgroundColor": "#fab005", + "width": 169.87695312500006, + "height": 56.31835937500002, + "seed": 645538697, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "updated": 1637932874335 + }, + { + "type": "rectangle", + "version": 1451, + "versionNonce": 157275111, + "isDeleted": false, + "id": "z-rMSErC_PzerIxzBgDWm", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 686.9568917410775, + "y": 250.95168340773967, + "strokeColor": "#e67700", + "backgroundColor": "#fab005", + "width": 169.87695312500006, + "height": 56.31835937500002, + "seed": 686117255, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "updated": 1637932874335 + }, + { + "type": "ellipse", + "version": 1898, + "versionNonce": 318305321, + "isDeleted": false, + "id": "WvPlFCyeWlGUFNTny5vMs", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 396.52573164683156, + "y": 2020.1052517361322, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 92.5078125, + "height": 91.92578125, + "seed": 759971840, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "A5ligwNlPz_F1k91DWpzc", + "FyqxJqmB5dMqKJwAkQwUO", + "mxaOD5cJNUAS-yzZrplHa", + "hNr12RjXcIhl9H-P1vjV4", + "4WzVYq0DFGwRDjZ7TzapG", + "Y_tSXab1UZyykolPFeNXt", + "A3Th5kOpCAx3h68Xmf67r", + "zhUWlL0aDiovO1ZhU1MAJ", + "CFwZfaNGTEIN5egrERct6" + ], + "updated": 1637932224362 + }, + { + "type": "ellipse", + "version": 390, + "versionNonce": 472187401, + "isDeleted": false, + "id": "Fj3AnSZMo9Yl7WSbmNMgL", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 325.55664062499994, + "y": 56.900390625, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 92.5078125, + "height": 91.92578125, + "seed": 2106572800, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "xCh-izMBngkhuUJtLXE_u" + ], + "updated": 1637932874335 + }, + { + "type": "ellipse", + "version": 443, + "versionNonce": 1299445513, + "isDeleted": false, + "id": "u21zuwLUBC7QsVftWuZW4", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 720.013671875, + "y": 55.15625, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 92.5078125, + "height": 91.92578125, + "seed": 899137536, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "A5ligwNlPz_F1k91DWpzc", + "FyqxJqmB5dMqKJwAkQwUO", + "mxaOD5cJNUAS-yzZrplHa", + "hNr12RjXcIhl9H-P1vjV4", + "4WzVYq0DFGwRDjZ7TzapG", + "Y_tSXab1UZyykolPFeNXt" + ], + "updated": 1637932874346 + }, + { + "type": "ellipse", + "version": 511, + "versionNonce": 1286375337, + "isDeleted": false, + "id": "mc2holj_94vCi_dtmhK0H", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1119.1946614583335, + "y": 53.5, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 92.5078125, + "height": 91.92578125, + "seed": 1827651584, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "4WzVYq0DFGwRDjZ7TzapG", + "6beViNl5chn6388rpk9Mq", + "V3EbyqTux_XD6daWn56SA" + ], + "updated": 1637932874346 + }, + { + "type": "text", + "version": 376, + "versionNonce": 1392937161, + "isDeleted": false, + "id": "FNLTX5XBAgfxjYMCt7vmz", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 726.224609375, + "y": 87.130859375, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 82, + "height": 24, + "seed": 44548096, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "xCh-izMBngkhuUJtLXE_u", + "Y_tSXab1UZyykolPFeNXt", + "V3EbyqTux_XD6daWn56SA" + ], + "updated": 1637932874346, + "fontSize": 20, + "fontFamily": 3, + "text": "Network", + "baseline": 19, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "arrow", + "version": 453, + "versionNonce": 1547673543, + "isDeleted": false, + "id": "xCh-izMBngkhuUJtLXE_u", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 419.4863641638089, + "y": 101.52798642481082, + "strokeColor": "#364fc7", + "backgroundColor": "transparent", + "width": 302.55465146119104, + "height": 0.8244826210524252, + "seed": 1471135744, + "groupIds": [], + "strokeSharpness": "round", + "boundElementIds": [], + "updated": 1637932874345, + "startBinding": { + "elementId": "Kq3dh5b7DB8EDCgGZtuKv", + "focus": -1.6600333479636116, + "gap": 8.503914616855809 + }, + "endBinding": { + "elementId": "FNLTX5XBAgfxjYMCt7vmz", + "focus": -0.11967871022884917, + "gap": 4.18359375 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 302.55465146119104, + -0.8244826210524252 + ] + ] + }, + { + "type": "text", + "version": 747, + "versionNonce": 1724873383, + "isDeleted": false, + "id": "4JYWadKJ631SBtJOu2Vkr", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 463.82110851045906, + "y": 61.61368681694, + "strokeColor": "#364fc7", + "backgroundColor": "transparent", + "width": 171.8713942307692, + "height": 29.593749999999996, + "seed": 1270333440, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "updated": 1637932874335, + "fontSize": 24.46886997193781, + "fontFamily": 3, + "text": "AliceSend(m)", + "baseline": 23.593749999999996, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 893, + "versionNonce": 1274554185, + "isDeleted": false, + "id": "3KxaWCVduw80h3hRd6NrR", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 288.1936197916669, + "y": 214.5097656249999, + "strokeColor": "#000000", + "backgroundColor": "#fab005", + "width": 184, + "height": 29, + "seed": 2126495744, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "updated": 1637932874335, + "fontSize": 24.156249999999975, + "fontFamily": 3, + "text": "alices_outbox", + "baseline": 23, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 1104, + "versionNonce": 746032583, + "isDeleted": false, + "id": "8g4Gvu07d993_Qotib4o8", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1106.5416666666672, + "y": 220.66685267857133, + "strokeColor": "#000000", + "backgroundColor": "#fab005", + "width": 146, + "height": 30, + "seed": 521650176, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "updated": 1637932874335, + "fontSize": 24.86235119047619, + "fontFamily": 3, + "text": "bobs_inbox", + "baseline": 24, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 974, + "versionNonce": 585520681, + "isDeleted": false, + "id": "nqvyXMjYUMwdrD6j1zPH-", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 725.65625, + "y": 215.4381064497718, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 102, + "height": 30, + "seed": 1713356800, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "xCh-izMBngkhuUJtLXE_u" + ], + "updated": 1637932874335, + "fontSize": 24.786494006849324, + "fontFamily": 3, + "text": "network", + "baseline": 24, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 669, + "versionNonce": 636501223, + "isDeleted": false, + "id": "M_g43PfHP9ufC11klcw4J", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1494.4863281250002, + "y": 19.050781249999943, + "strokeColor": "#000000", + "backgroundColor": "#fab005", + "width": 145, + "height": 33, + "seed": 203931648, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "6beViNl5chn6388rpk9Mq" + ], + "updated": 1637932874335, + "fontSize": 27.47656250000001, + "fontFamily": 3, + "text": "bobs_mood", + "baseline": 27, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "diamond", + "version": 1152, + "versionNonce": 1659873929, + "isDeleted": false, + "id": "cbusUS5YiTQ6yqh3e1Uax", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1516.4420572916667, + "y": 58.93945312499994, + "strokeColor": "#e67700", + "backgroundColor": "#fab005", + "width": 95.20703125, + "height": 86.78515625000001, + "seed": 825212928, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "6beViNl5chn6388rpk9Mq", + "X27noJ9fFsLGrS6-OsDSu" + ], + "updated": 1637932874347 + }, + { + "type": "text", + "version": 612, + "versionNonce": 1988337641, + "isDeleted": false, + "id": "VWZ06qbSrtlbto2V4R1Hm", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1555.3040364583337, + "y": 83.46289062499994, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 18.950624999999995, + "height": 52.64062500000001, + "seed": 1966587904, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "updated": 1637932874335, + "fontSize": 42.112500000000004, + "fontFamily": 1, + "text": "?", + "baseline": 36.64062500000001, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 977, + "versionNonce": 865858889, + "isDeleted": false, + "id": "Kq3dh5b7DB8EDCgGZtuKv", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 419.8567708333333, + "y": 110.03190104166663, + "strokeColor": "#c92a2a", + "backgroundColor": "transparent", + "width": 283, + "height": 25, + "seed": 1088405504, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "xCh-izMBngkhuUJtLXE_u" + ], + "updated": 1637932874345, + "fontSize": 20, + "fontFamily": 1, + "text": " IF (m) not in alices_outbox", + "baseline": 18, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 1073, + "versionNonce": 716815049, + "isDeleted": false, + "id": "uyqqE1FoXCpmB4_H4YpGp", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 441.7317708333333, + "y": 134.25585937500006, + "strokeColor": "#e67700", + "backgroundColor": "transparent", + "width": 245, + "height": 25, + "seed": 1207418880, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "updated": 1637932874335, + "fontSize": 20, + "fontFamily": 1, + "text": "Add (m) in alices_outbox", + "baseline": 18, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 1150, + "versionNonce": 1122693703, + "isDeleted": false, + "id": "_xhvpwbBykycgAoYOzmdx", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 442.4934895833333, + "y": 155.87825520833343, + "strokeColor": "#e67700", + "backgroundColor": "transparent", + "width": 191, + "height": 25, + "seed": 1929363456, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "updated": 1637932874335, + "fontSize": 20, + "fontFamily": 1, + "text": "Add (m) in network", + "baseline": 18, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 599, + "versionNonce": 1797880233, + "isDeleted": false, + "id": "6w-OXSIfOmax2w5J1fPEK", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 103.64192708333326, + "y": 255.82747395833337, + "strokeColor": "#e67700", + "backgroundColor": "#40c057", + "width": 180, + "height": 34, + "seed": 1356273083, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "updated": 1637932874335, + "fontSize": 28, + "fontFamily": 3, + "text": "VARIABLES ", + "baseline": 27, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 867, + "versionNonce": 1367544167, + "isDeleted": false, + "id": "TXQYBBK0Ys-PDOJY0njfK", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 117.78190104166654, + "y": 86.65559895833343, + "strokeColor": "#000000", + "backgroundColor": "#40c057", + "width": 115, + "height": 102, + "seed": 1387758229, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "updated": 1637932874335, + "fontSize": 28, + "fontFamily": 3, + "text": "STATES\n \n", + "baseline": 95, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 1164, + "versionNonce": 1224629385, + "isDeleted": false, + "id": "U0d4I7MYVb1DsuaIUI-JT", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 698.2649739583333, + "y": -22.802734375, + "strokeColor": "#e67700", + "backgroundColor": "transparent", + "width": 156, + "height": 25, + "seed": 2097659904, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "updated": 1637932874335, + "fontSize": 20, + "fontFamily": 1, + "text": "rm(m) in network", + "baseline": 18, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 1246, + "versionNonce": 302664839, + "isDeleted": false, + "id": "r2gQWBkXmrUchNA-r0N6U", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 855.6536458333333, + "y": 129.85546875, + "strokeColor": "#e67700", + "backgroundColor": "transparent", + "width": 212, + "height": 25, + "seed": 995082240, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "updated": 1637932874335, + "fontSize": 20, + "fontFamily": 1, + "text": "Add( m) in bobs_inbox", + "baseline": 18, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 1406, + "versionNonce": 603186025, + "isDeleted": false, + "id": "qpTB6_CJxtmdtjIRkAC5z", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 858.34375, + "y": 151.38411458333337, + "strokeColor": "#e67700", + "backgroundColor": "transparent", + "width": 181, + "height": 25, + "seed": 995606528, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "updated": 1637932874335, + "fontSize": 20, + "fontFamily": 1, + "text": "Add (m) in network", + "baseline": 18, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 560, + "versionNonce": 809313191, + "isDeleted": false, + "id": "wVUwmyBLo8R6h-z4pmFkN", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 117.32942708333329, + "y": -63.850260416666714, + "strokeColor": "#364fc7", + "backgroundColor": "#40c057", + "width": 148, + "height": 34, + "seed": 101695488, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "updated": 1637932874335, + "fontSize": 28, + "fontFamily": 3, + "text": "Actions ", + "baseline": 27, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 1698, + "versionNonce": 1482001993, + "isDeleted": false, + "id": "L4QA-avL9hEGwFdMdDSXa", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1265.766276041667, + "y": 119.16341145833337, + "strokeColor": "#e67700", + "backgroundColor": "transparent", + "width": 160, + "height": 25, + "seed": 409452544, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "updated": 1637932874335, + "fontSize": 20, + "fontFamily": 1, + "text": "Check bobs-inbox", + "baseline": 18, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "arrow", + "version": 1443, + "versionNonce": 1831967239, + "isDeleted": false, + "id": "Y_tSXab1UZyykolPFeNXt", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 1.720361495067964, + "x": 805.2871499046973, + "y": 70.72730184770859, + "strokeColor": "#364fc7", + "backgroundColor": "transparent", + "width": 61.37037847765998, + "height": 65.50246680884186, + "seed": 540000256, + "groupIds": [], + "strokeSharpness": "round", + "boundElementIds": [], + "updated": 1637932874346, + "startBinding": { + "elementId": "u21zuwLUBC7QsVftWuZW4", + "focus": -0.8172087449705919, + "gap": 1 + }, + "endBinding": { + "elementId": "FNLTX5XBAgfxjYMCt7vmz", + "focus": 0.880676529442949, + "gap": 15.746091617521373 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + -53.533619879527805, + -4.3106725473418805 + ], + [ + -61.37037847765998, + -49.238564793664864 + ], + [ + -4.148891944685261, + -65.50246680884186 + ] + ] + }, + { + "type": "ellipse", + "version": 528, + "versionNonce": 143888233, + "isDeleted": false, + "id": "_4yjcNWhsY2JCE_Vhm0_r", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 968.0863715277776, + "y": 793.6515687003969, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 92.5078125, + "height": 91.92578125, + "seed": 153894912, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "A5ligwNlPz_F1k91DWpzc", + "FyqxJqmB5dMqKJwAkQwUO", + "mxaOD5cJNUAS-yzZrplHa", + "hNr12RjXcIhl9H-P1vjV4", + "4WzVYq0DFGwRDjZ7TzapG", + "Y_tSXab1UZyykolPFeNXt", + "y17_Rqi9c1kNO4rlXr-Nu", + "LN5QE1WFVh1G3b7PPnHis", + "09kyfwkwju8dHkkfosg3Z", + "IjN1VunwXEJGXG3vmwIh4", + "PssUX5tJXzKVxRuhTSoC1" + ], + "updated": 1637932224363 + }, + { + "type": "text", + "version": 93, + "versionNonce": 666777511, + "isDeleted": false, + "id": "Ew-jUK9Kx39alf7HqgS9L", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 999.2041170634918, + "y": 826.5285218253969, + "strokeColor": "#000000", + "backgroundColor": "#40c057", + "width": 36, + "height": 25, + "seed": 430194688, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "updated": 1637932224363, + "fontSize": 20, + "fontFamily": 1, + "text": "Init", + "baseline": 18, + "textAlign": "center", + "verticalAlign": "middle" + }, + { + "type": "ellipse", + "version": 807, + "versionNonce": 1679800905, + "isDeleted": false, + "id": "VlwvFVtWP0bC2pgW0Nm3Q", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 591.7424355158728, + "y": 994.5527963789684, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 92.5078125, + "height": 91.92578125, + "seed": 1528578048, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "A5ligwNlPz_F1k91DWpzc", + "FyqxJqmB5dMqKJwAkQwUO", + "mxaOD5cJNUAS-yzZrplHa", + "hNr12RjXcIhl9H-P1vjV4", + "4WzVYq0DFGwRDjZ7TzapG", + "Y_tSXab1UZyykolPFeNXt", + "zhUWlL0aDiovO1ZhU1MAJ", + "v7_zvK6k4FhieHFwiM0NO", + "4DVlD4r9XK4CbXGuRcd0W", + "A3Th5kOpCAx3h68Xmf67r", + "SEkiyPIyY6OBVh8my8m19", + "0ng5YSxtq6a_neN0u1V1U", + "y17_Rqi9c1kNO4rlXr-Nu" + ], + "updated": 1637932224363 + }, + { + "type": "ellipse", + "version": 835, + "versionNonce": 981904071, + "isDeleted": false, + "id": "w-yTE4SGSeA7LNbpEakwY", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0.0028922551312184908, + "x": 960.1129712301587, + "y": 1000.8688306051588, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 92.5078125, + "height": 91.92578125, + "seed": 764690432, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "A5ligwNlPz_F1k91DWpzc", + "FyqxJqmB5dMqKJwAkQwUO", + "mxaOD5cJNUAS-yzZrplHa", + "hNr12RjXcIhl9H-P1vjV4", + "4WzVYq0DFGwRDjZ7TzapG", + "Y_tSXab1UZyykolPFeNXt", + "09kyfwkwju8dHkkfosg3Z", + "Sfp_6DI0qlQ4Z-V4tApZa", + "Ip00Vnlr1xb91HFUeGvgK" + ], + "updated": 1637932224363 + }, + { + "type": "ellipse", + "version": 767, + "versionNonce": 379816233, + "isDeleted": false, + "id": "Ud9FS33IzltIqSMnDDl8Q", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1325.2301587301586, + "y": 992.3894779265875, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 92.5078125, + "height": 91.92578125, + "seed": 1896628224, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "A5ligwNlPz_F1k91DWpzc", + "FyqxJqmB5dMqKJwAkQwUO", + "mxaOD5cJNUAS-yzZrplHa", + "hNr12RjXcIhl9H-P1vjV4", + "4WzVYq0DFGwRDjZ7TzapG", + "Y_tSXab1UZyykolPFeNXt", + "IjN1VunwXEJGXG3vmwIh4", + "rs7sGjZeMXlPLsMGSrrPC", + "PssUX5tJXzKVxRuhTSoC1" + ], + "updated": 1637932224363 + }, + { + "type": "ellipse", + "version": 1315, + "versionNonce": 1041480167, + "isDeleted": false, + "id": "RmBmPwVrh-oSiGyt8JCOK", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 40, + "angle": 0, + "x": 252.4102182539679, + "y": 1305.6251550099207, + "strokeColor": "#364fc7", + "backgroundColor": "#228be6", + "width": 96.72656249999999, + "height": 97.74609374999999, + "seed": 1602207744, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "A5ligwNlPz_F1k91DWpzc", + "FyqxJqmB5dMqKJwAkQwUO", + "mxaOD5cJNUAS-yzZrplHa", + "hNr12RjXcIhl9H-P1vjV4", + "4WzVYq0DFGwRDjZ7TzapG", + "Y_tSXab1UZyykolPFeNXt", + "A3Th5kOpCAx3h68Xmf67r", + "Zbvqb041P_fM1c-KnMVln" + ], + "updated": 1637932224363 + }, + { + "type": "arrow", + "version": 789, + "versionNonce": 696941577, + "isDeleted": false, + "id": "y17_Rqi9c1kNO4rlXr-Nu", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 965.1697460722007, + "y": 843.0777558214022, + "strokeColor": "#000000", + "backgroundColor": "#40c057", + "width": 316.12025428869356, + "height": 151.30465136307407, + "seed": 92553216, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "updated": 1637932224363, + "startBinding": { + "elementId": "_4yjcNWhsY2JCE_Vhm0_r", + "focus": 0.39342427044528006, + "gap": 3.039891227915213 + }, + "endBinding": { + "elementId": "VlwvFVtWP0bC2pgW0Nm3Q", + "focus": -0.8005796514567758, + "gap": 1.4603711179202534 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + -316.12025428869356, + 151.30465136307407 + ] + ] + }, + { + "type": "arrow", + "version": 587, + "versionNonce": 1735517447, + "isDeleted": false, + "id": "09kyfwkwju8dHkkfosg3Z", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1011.4247955369528, + "y": 887.4923955164953, + "strokeColor": "#000000", + "backgroundColor": "#40c057", + "width": 0.133414754091973, + "height": 111.26710540950569, + "seed": 1258045440, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "updated": 1637932224363, + "startBinding": { + "elementId": "_4yjcNWhsY2JCE_Vhm0_r", + "focus": 0.06427651836783131, + "gap": 2.002665759386673 + }, + "endBinding": { + "elementId": "w-yTE4SGSeA7LNbpEakwY", + "focus": 0.11348167063761183, + "gap": 2.3856747310506563 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 0.133414754091973, + 111.26710540950569 + ] + ] + }, + { + "type": "text", + "version": 973, + "versionNonce": 371043367, + "isDeleted": false, + "id": "WBKDyZdYD2iT-CAPRKR1_", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 500.4636819914365, + "y": 940.7840801692975, + "strokeColor": "#364fc7", + "backgroundColor": "transparent", + "width": 196.18407346491225, + "height": 22.056197608481252, + "seed": 1760313344, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "updated": 1637932224363, + "fontSize": 18.573640091352626, + "fontFamily": 3, + "text": "AliceSend(\"Hello\")", + "baseline": 18.056197608481252, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "arrow", + "version": 2559, + "versionNonce": 2033527977, + "isDeleted": false, + "id": "A3Th5kOpCAx3h68Xmf67r", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 593.2881829977067, + "y": 1052.4652350071742, + "strokeColor": "#000000", + "backgroundColor": "#40c057", + "width": 289.677625367772, + "height": 252.2423572369887, + "seed": 1030733824, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "updated": 1637932224364, + "startBinding": { + "elementId": "ycpaXfnVwjdPWdMmnGtEA", + "focus": 0.16346393092417366, + "gap": 8.310651327690152 + }, + "endBinding": { + "elementId": "RmBmPwVrh-oSiGyt8JCOK", + "focus": -0.7334831466610665, + "gap": 1 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + -289.677625367772, + 252.2423572369887 + ] + ] + }, + { + "type": "ellipse", + "version": 1562, + "versionNonce": 555462537, + "isDeleted": false, + "id": "sQOV73Jts-AXxrYF2i_KO", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 454.7372271825395, + "y": 1298.824559771827, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 92.5078125, + "height": 91.92578125, + "seed": 2037891072, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "A5ligwNlPz_F1k91DWpzc", + "FyqxJqmB5dMqKJwAkQwUO", + "mxaOD5cJNUAS-yzZrplHa", + "hNr12RjXcIhl9H-P1vjV4", + "4WzVYq0DFGwRDjZ7TzapG", + "Y_tSXab1UZyykolPFeNXt", + "A3Th5kOpCAx3h68Xmf67r", + "zhUWlL0aDiovO1ZhU1MAJ", + "hwtOgNamEqPj-gj5ufs4m" + ], + "updated": 1637932224364 + }, + { + "type": "arrow", + "version": 3076, + "versionNonce": 1398778247, + "isDeleted": false, + "id": "zhUWlL0aDiovO1ZhU1MAJ", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 609.8672364084458, + "y": 1079.4112191071413, + "strokeColor": "#000000", + "backgroundColor": "#40c057", + "width": 106.36755725058424, + "height": 218.47956227560144, + "seed": 1954529280, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "updated": 1637932224364, + "startBinding": { + "elementId": "ycpaXfnVwjdPWdMmnGtEA", + "focus": 0.018311905145953215, + "gap": 16.41134311507767 + }, + "endBinding": { + "elementId": "sQOV73Jts-AXxrYF2i_KO", + "focus": -0.3955288212349696, + "gap": 1 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + -106.36755725058424, + 218.47956227560144 + ] + ] + }, + { + "type": "ellipse", + "version": 1712, + "versionNonce": 1391384169, + "isDeleted": false, + "id": "Dv61XhNXMTYrm3zIOwY1r", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 655.7854042658726, + "y": 1301.023220486112, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 92.5078125, + "height": 91.92578125, + "seed": 1317519360, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "A5ligwNlPz_F1k91DWpzc", + "FyqxJqmB5dMqKJwAkQwUO", + "mxaOD5cJNUAS-yzZrplHa", + "hNr12RjXcIhl9H-P1vjV4", + "4WzVYq0DFGwRDjZ7TzapG", + "Y_tSXab1UZyykolPFeNXt", + "A3Th5kOpCAx3h68Xmf67r", + "zhUWlL0aDiovO1ZhU1MAJ", + "k9oJyuet5ScMqPZm_b-ZF", + "v7_zvK6k4FhieHFwiM0NO", + "0ng5YSxtq6a_neN0u1V1U" + ], + "updated": 1637932224364 + }, + { + "type": "text", + "version": 2366, + "versionNonce": 954130599, + "isDeleted": false, + "id": "lchb-k9wTsDjCQoAxpPtR", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 260.729972718254, + "y": 1224.91728670635, + "strokeColor": "#364fc7", + "backgroundColor": "transparent", + "width": 84, + "height": 38, + "seed": 663732224, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "v7_zvK6k4FhieHFwiM0NO" + ], + "updated": 1637932224364, + "fontSize": 16, + "fontFamily": 3, + "text": "AliceSend\n(\"World\")", + "baseline": 34, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 2345, + "versionNonce": 1903829321, + "isDeleted": false, + "id": "C6GOOBcPBymRCXp26aSNq", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 401.18291170634836, + "y": 1227.9064980158735, + "strokeColor": "#364fc7", + "backgroundColor": "transparent", + "width": 103, + "height": 38, + "seed": 530038784, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "4DVlD4r9XK4CbXGuRcd0W" + ], + "updated": 1637932224364, + "fontSize": 16, + "fontFamily": 3, + "text": "NetworkLoss\n (\"Hello\")", + "baseline": 34, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "ellipse", + "version": 1335, + "versionNonce": 329921479, + "isDeleted": false, + "id": "XpWyyto2K8Y_oknNgEXqd", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 878.1412450396824, + "y": 1307.8145151289684, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 92.5078125, + "height": 91.92578125, + "seed": 1453309952, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "A5ligwNlPz_F1k91DWpzc", + "FyqxJqmB5dMqKJwAkQwUO", + "mxaOD5cJNUAS-yzZrplHa", + "hNr12RjXcIhl9H-P1vjV4", + "4WzVYq0DFGwRDjZ7TzapG", + "Y_tSXab1UZyykolPFeNXt", + "A3Th5kOpCAx3h68Xmf67r", + "zhUWlL0aDiovO1ZhU1MAJ", + "v7_zvK6k4FhieHFwiM0NO", + "4DVlD4r9XK4CbXGuRcd0W", + "UJyt7821b-hSrpgjI4Tyj" + ], + "updated": 1637932224364 + }, + { + "type": "text", + "version": 566, + "versionNonce": 2048462889, + "isDeleted": false, + "id": "ycpaXfnVwjdPWdMmnGtEA", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 601.5988343253969, + "y": 987.9998759920636, + "strokeColor": "#000000", + "backgroundColor": "#40c057", + "width": 71, + "height": 75, + "seed": 222576640, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "4DVlD4r9XK4CbXGuRcd0W", + "zhUWlL0aDiovO1ZhU1MAJ", + "y17_Rqi9c1kNO4rlXr-Nu", + "AShLdPxqZwteTM6r9sF2h", + "A3Th5kOpCAx3h68Xmf67r" + ], + "updated": 1637932224364, + "fontSize": 20, + "fontFamily": 1, + "text": "\nA. sent\n\"Hello\"", + "baseline": 68, + "textAlign": "center", + "verticalAlign": "middle" + }, + { + "type": "text", + "version": 943, + "versionNonce": 467542759, + "isDeleted": false, + "id": "_7GbS3kM2d5NKslGxdfac", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 252.29619295634893, + "y": 1329.691654265873, + "strokeColor": "#000000", + "backgroundColor": "#40c057", + "width": 102, + "height": 40, + "seed": 12042240, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "A3Th5kOpCAx3h68Xmf67r", + "Zbvqb041P_fM1c-KnMVln" + ], + "updated": 1637932224364, + "fontSize": 16, + "fontFamily": 1, + "text": "A. sent \n\"Hello World\" ", + "baseline": 34, + "textAlign": "center", + "verticalAlign": "middle" + }, + { + "type": "text", + "version": 1016, + "versionNonce": 850862857, + "isDeleted": false, + "id": "oK9jzkZgZodQJRH8kBfcV", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 464.92640128968213, + "y": 1325.2449353768002, + "strokeColor": "#000000", + "backgroundColor": "#40c057", + "width": 78, + "height": 40, + "seed": 1822932992, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "k9oJyuet5ScMqPZm_b-ZF", + "EW5RbrLfuIeC3SnbdU171", + "SEkiyPIyY6OBVh8my8m19", + "M8Jx2TsAdwk1xTrzuGjvY", + "zhUWlL0aDiovO1ZhU1MAJ", + "UUofUfdzbsJ1M607_HnaI", + "hwtOgNamEqPj-gj5ufs4m" + ], + "updated": 1637932224364, + "fontSize": 16.27385124610591, + "fontFamily": 1, + "text": "B. receive\n\"Hello\"", + "baseline": 34, + "textAlign": "center", + "verticalAlign": "middle" + }, + { + "type": "text", + "version": 900, + "versionNonce": 1376202247, + "isDeleted": false, + "id": "m91_AnjXutpp4PWSsdruQ", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 671.9061259920632, + "y": 1322.6901661706358, + "strokeColor": "#000000", + "backgroundColor": "#40c057", + "width": 57, + "height": 50, + "seed": 28295168, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "updated": 1637932224364, + "fontSize": 20, + "fontFamily": 1, + "text": "lost\n\"Hello\"", + "baseline": 43, + "textAlign": "center", + "verticalAlign": "top" + }, + { + "type": "arrow", + "version": 3294, + "versionNonce": 399497705, + "isDeleted": false, + "id": "4DVlD4r9XK4CbXGuRcd0W", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0.04222697259628028, + "x": 675.293685468811, + "y": 1065.5631078872823, + "strokeColor": "#000000", + "backgroundColor": "#40c057", + "width": 249.62050600787825, + "height": 237.08187509069353, + "seed": 901234688, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "updated": 1637932224364, + "startBinding": { + "elementId": "ycpaXfnVwjdPWdMmnGtEA", + "focus": -0.1329147623630394, + "gap": 7.810247716176377 + }, + "endBinding": { + "elementId": "XpWyyto2K8Y_oknNgEXqd", + "focus": 0.6215598159026234, + "gap": 1 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 249.62050600787825, + 237.08187509069353 + ] + ] + }, + { + "type": "text", + "version": 2344, + "versionNonce": 1898042663, + "isDeleted": false, + "id": "4K7XLaPZhwRE1slOC9JGl", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 545.1542658730159, + "y": 1228.0032242063498, + "strokeColor": "#364fc7", + "backgroundColor": "transparent", + "width": 131, + "height": 38, + "seed": 683655168, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "4DVlD4r9XK4CbXGuRcd0W" + ], + "updated": 1637932224364, + "fontSize": 16, + "fontFamily": 3, + "text": "NetworkDeliver\n (\"Hello\")", + "baseline": 34, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 161, + "versionNonce": 175027401, + "isDeleted": false, + "id": "0KkbKeTbIOxoIZWCLv80z", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 971.4918774801588, + "y": 1016.766617063492, + "strokeColor": "#000000", + "backgroundColor": "#40c057", + "width": 71, + "height": 50, + "seed": 690241536, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "Ip00Vnlr1xb91HFUeGvgK" + ], + "updated": 1637932224364, + "fontSize": 20, + "fontFamily": 1, + "text": "A. sent\n\"World\"", + "baseline": 43, + "textAlign": "center", + "verticalAlign": "middle" + }, + { + "type": "text", + "version": 159, + "versionNonce": 547002439, + "isDeleted": false, + "id": "tV-rKbwu4hxcqZHIo3StF", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1337.7588045634918, + "y": 1006.8028893849212, + "strokeColor": "#000000", + "backgroundColor": "#40c057", + "width": 74, + "height": 50, + "seed": 2057060352, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "rs7sGjZeMXlPLsMGSrrPC", + "LN5QE1WFVh1G3b7PPnHis" + ], + "updated": 1637932224364, + "fontSize": 20, + "fontFamily": 1, + "text": "B.\nNeutral", + "baseline": 43, + "textAlign": "center", + "verticalAlign": "middle" + }, + { + "type": "text", + "version": 652, + "versionNonce": 1043280809, + "isDeleted": false, + "id": "PoAbJZNeP0zOytfwu9siZ", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 889.7575024801586, + "y": 1327.4734623015872, + "strokeColor": "#000000", + "backgroundColor": "#40c057", + "width": 74, + "height": 50, + "seed": 2059911168, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "4DVlD4r9XK4CbXGuRcd0W", + "lVltLokPzy-IM3WoBZ93X" + ], + "updated": 1637932224364, + "fontSize": 20, + "fontFamily": 1, + "text": "Bob\nNeutral", + "baseline": 43, + "textAlign": "center", + "verticalAlign": "middle" + }, + { + "type": "arrow", + "version": 1038, + "versionNonce": 1485337223, + "isDeleted": false, + "id": "Ip00Vnlr1xb91HFUeGvgK", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1008.4620767527986, + "y": 1093.0611199928328, + "strokeColor": "#000000", + "backgroundColor": "#40c057", + "width": 1.4400978097366988, + "height": 61.895774249445594, + "seed": 1271906304, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "updated": 1637932224364, + "startBinding": { + "elementId": "w-yTE4SGSeA7LNbpEakwY", + "focus": -0.02203774185057466, + "gap": 1 + }, + "endBinding": { + "elementId": "30-ZrUSYAGqRczQDpUCKJ", + "focus": -0.06790819976749124, + "gap": 2.390079964088841 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 1.4400978097366988, + 61.895774249445594 + ] + ] + }, + { + "type": "arrow", + "version": 1008, + "versionNonce": 676535657, + "isDeleted": false, + "id": "rs7sGjZeMXlPLsMGSrrPC", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1372.9513635239823, + "y": 1086.3173831781446, + "strokeColor": "#000000", + "backgroundColor": "#40c057", + "width": 1.2404479109413842, + "height": 67.90309819835875, + "seed": 1426341888, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "updated": 1637932224364, + "startBinding": { + "elementId": "Ud9FS33IzltIqSMnDDl8Q", + "focus": -0.012776876546946037, + "gap": 2.0242921668879035 + }, + "endBinding": { + "elementId": "fWvOrItIdskfpszhpsAv3", + "focus": -0.0570390555301931, + "gap": 8.777534496530393 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 1.2404479109413842, + 67.90309819835875 + ] + ] + }, + { + "type": "text", + "version": 336, + "versionNonce": 1594456775, + "isDeleted": false, + "id": "hthQaJ9qPHkBtzxFKoaeZ", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 529.1031125992101, + "y": 754.3016803075496, + "strokeColor": "#000000", + "backgroundColor": "#fa5252", + "width": 318, + "height": 45, + "seed": 712785920, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "updated": 1637932472128, + "fontSize": 36, + "fontFamily": 1, + "text": "Graph Exploration", + "baseline": 32, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "arrow", + "version": 1218, + "versionNonce": 1086163017, + "isDeleted": false, + "id": "UJyt7821b-hSrpgjI4Tyj", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 923.1221618506954, + "y": 1400.9872271825511, + "strokeColor": "#000000", + "backgroundColor": "#fa5252", + "width": 2.0170879101626724, + "height": 43.92187500000637, + "seed": 1003995136, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "updated": 1637932224364, + "startBinding": { + "elementId": "XpWyyto2K8Y_oknNgEXqd", + "focus": 0.07431797989050726, + "gap": 1.2638809300543556 + }, + "endBinding": { + "elementId": "Wzf8z-4CtN3Q4MBQaKP8g", + "focus": -0.044405405300702944, + "gap": 1.3971354166666288 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 2.0170879101626724, + 43.92187500000637 + ] + ] + }, + { + "type": "arrow", + "version": 1390, + "versionNonce": 1509211335, + "isDeleted": false, + "id": "-F__nh9fqpMT7-0D2UHV8", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 701.6945497688038, + "y": 1392.1711929563605, + "strokeColor": "#000000", + "backgroundColor": "#fa5252", + "width": 0.8291313165691463, + "height": 53.994605654761926, + "seed": 1793048576, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "updated": 1637932224364, + "startBinding": null, + "endBinding": { + "elementId": "VHpBw3x1Ble_U3oCNUjA4", + "focus": -0.03373329269035542, + "gap": 2.4665178571498245 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + -0.8291313165691463, + 53.994605654761926 + ] + ] + }, + { + "type": "arrow", + "version": 1391, + "versionNonce": 2052560681, + "isDeleted": false, + "id": "0ng5YSxtq6a_neN0u1V1U", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 653.8967279186683, + "y": 1086.6780106110514, + "strokeColor": "#000000", + "backgroundColor": "#fa5252", + "width": 38.83729480826594, + "height": 211.81669801814223, + "seed": 2028453888, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "updated": 1637932224364, + "startBinding": { + "elementId": "VlwvFVtWP0bC2pgW0Nm3Q", + "focus": -0.1607603716728784, + "gap": 2.830483721304738 + }, + "endBinding": { + "elementId": "Dv61XhNXMTYrm3zIOwY1r", + "focus": -0.00881048232412835, + "gap": 3.403014235506916 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 38.83729480826594, + 211.81669801814223 + ] + ] + }, + { + "type": "rectangle", + "version": 1107, + "versionNonce": 703564775, + "isDeleted": false, + "id": "DpI4rWFZM-U04cLys42hE", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 241.77517361111518, + "y": 1447.2028149801702, + "strokeColor": "#000000", + "backgroundColor": "#868e96", + "width": 106.73549107142861, + "height": 34.319196428571246, + "seed": 134201344, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "lVltLokPzy-IM3WoBZ93X", + "rt5HJ517pZOfID_nqnATO", + "Zbvqb041P_fM1c-KnMVln", + "UUofUfdzbsJ1M607_HnaI" + ], + "updated": 1637932224364 + }, + { + "type": "arrow", + "version": 1031, + "versionNonce": 1468844553, + "isDeleted": false, + "id": "Zbvqb041P_fM1c-KnMVln", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 298.44445028843097, + "y": 1406.071029728814, + "strokeColor": "#000000", + "backgroundColor": "#fa5252", + "width": 0.20458423747083998, + "height": 39.21023677425637, + "seed": 99598336, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "updated": 1637932224364, + "startBinding": { + "elementId": "RmBmPwVrh-oSiGyt8JCOK", + "gap": 2.7533976429523404, + "focus": 0.055744242766957365 + }, + "endBinding": { + "elementId": "DpI4rWFZM-U04cLys42hE", + "gap": 1.9215484770996831, + "focus": 0.06744962998247583 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 0.20458423747083998, + 39.21023677425637 + ] + ] + }, + { + "type": "text", + "version": 637, + "versionNonce": 1773963751, + "isDeleted": false, + "id": "VvNGpiFFP5wZ4PNKahSTu", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 624.8833395337341, + "y": 806.7768477182717, + "strokeColor": "#000000", + "backgroundColor": "#fa5252", + "width": 101, + "height": 25, + "seed": 1784430592, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "updated": 1637932475671, + "fontSize": 20, + "fontFamily": 1, + "text": "18 States", + "baseline": 18, + "textAlign": "center", + "verticalAlign": "top" + }, + { + "type": "rectangle", + "version": 1295, + "versionNonce": 22585577, + "isDeleted": false, + "id": "VHpBw3x1Ble_U3oCNUjA4", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 649.0054563492104, + "y": 1448.6323164682724, + "strokeColor": "#000000", + "backgroundColor": "#868e96", + "width": 106.73549107142861, + "height": 34.319196428571246, + "seed": 838320128, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "lVltLokPzy-IM3WoBZ93X", + "rt5HJ517pZOfID_nqnATO", + "-F__nh9fqpMT7-0D2UHV8" + ], + "updated": 1637932224364 + }, + { + "type": "rectangle", + "version": 1228, + "versionNonce": 1454177831, + "isDeleted": false, + "id": "Wzf8z-4CtN3Q4MBQaKP8g", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 875.028521825401, + "y": 1446.3062375992242, + "strokeColor": "#000000", + "backgroundColor": "#868e96", + "width": 106.73549107142861, + "height": 34.319196428571246, + "seed": 486522880, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "lVltLokPzy-IM3WoBZ93X", + "rt5HJ517pZOfID_nqnATO", + "UJyt7821b-hSrpgjI4Tyj" + ], + "updated": 1637932224364 + }, + { + "type": "rectangle", + "version": 893, + "versionNonce": 1967561673, + "isDeleted": false, + "id": "30-ZrUSYAGqRczQDpUCKJ", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 960.6405009920675, + "y": 1157.3469742063671, + "strokeColor": "#000000", + "backgroundColor": "#868e96", + "width": 106.73549107142861, + "height": 34.319196428571246, + "seed": 1728561152, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "lVltLokPzy-IM3WoBZ93X", + "rt5HJ517pZOfID_nqnATO", + "Ip00Vnlr1xb91HFUeGvgK" + ], + "updated": 1637932224364 + }, + { + "type": "rectangle", + "version": 923, + "versionNonce": 1557700935, + "isDeleted": false, + "id": "fWvOrItIdskfpszhpsAv3", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1324.3598090277824, + "y": 1162.9980158730339, + "strokeColor": "#000000", + "backgroundColor": "#868e96", + "width": 106.73549107142861, + "height": 34.319196428571246, + "seed": 977027072, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "lVltLokPzy-IM3WoBZ93X", + "rt5HJ517pZOfID_nqnATO", + "rs7sGjZeMXlPLsMGSrrPC" + ], + "updated": 1637932224364 + }, + { + "type": "ellipse", + "version": 1672, + "versionNonce": 417984329, + "isDeleted": false, + "id": "Vj1NPTBDGTvEhkuYrfGbs", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 40, + "angle": 0, + "x": 577.0056423611154, + "y": 1728.45439608137, + "strokeColor": "#1864ab", + "backgroundColor": "#228be6", + "width": 92.5078125, + "height": 91.92578125, + "seed": 1169440768, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "A5ligwNlPz_F1k91DWpzc", + "FyqxJqmB5dMqKJwAkQwUO", + "mxaOD5cJNUAS-yzZrplHa", + "hNr12RjXcIhl9H-P1vjV4", + "4WzVYq0DFGwRDjZ7TzapG", + "Y_tSXab1UZyykolPFeNXt", + "A3Th5kOpCAx3h68Xmf67r", + "zhUWlL0aDiovO1ZhU1MAJ", + "bXyW1a9bOHnT7MLNLY_d4", + "UUofUfdzbsJ1M607_HnaI" + ], + "updated": 1637932224365 + }, + { + "type": "ellipse", + "version": 1769, + "versionNonce": 2120162857, + "isDeleted": false, + "id": "g7vs8C6uqO4bTo61O59Aw", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 396.71546378968696, + "y": 1893.2088603670807, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 92.5078125, + "height": 91.92578125, + "seed": 363085824, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "A5ligwNlPz_F1k91DWpzc", + "FyqxJqmB5dMqKJwAkQwUO", + "mxaOD5cJNUAS-yzZrplHa", + "hNr12RjXcIhl9H-P1vjV4", + "4WzVYq0DFGwRDjZ7TzapG", + "Y_tSXab1UZyykolPFeNXt", + "A3Th5kOpCAx3h68Xmf67r", + "zhUWlL0aDiovO1ZhU1MAJ", + "ltQqjniw13AuUilgSxElZ", + "CFwZfaNGTEIN5egrERct6" + ], + "updated": 1637932224365 + }, + { + "type": "ellipse", + "version": 2125, + "versionNonce": 520843529, + "isDeleted": false, + "id": "9J6JtmeIAxyvqxZWDzdZ6", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 391.96843998016334, + "y": 2157.7987041170895, + "strokeColor": "#087f5b", + "backgroundColor": "#40c057", + "width": 92.5078125, + "height": 91.92578125, + "seed": 545538048, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "A5ligwNlPz_F1k91DWpzc", + "FyqxJqmB5dMqKJwAkQwUO", + "mxaOD5cJNUAS-yzZrplHa", + "hNr12RjXcIhl9H-P1vjV4", + "4WzVYq0DFGwRDjZ7TzapG", + "Y_tSXab1UZyykolPFeNXt", + "A3Th5kOpCAx3h68Xmf67r", + "zhUWlL0aDiovO1ZhU1MAJ", + "k9oJyuet5ScMqPZm_b-ZF", + "v7_zvK6k4FhieHFwiM0NO", + "71upoTD6GFgrOXKlu5yG9" + ], + "updated": 1637932224365 + }, + { + "type": "arrow", + "version": 3152, + "versionNonce": 1046921223, + "isDeleted": false, + "id": "CFwZfaNGTEIN5egrERct6", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 442.2956769849054, + "y": 1989.9550739462277, + "strokeColor": "#2b8a3e", + "backgroundColor": "#40c057", + "width": 1.032870407808332, + "height": 29.82836233614421, + "seed": 697581568, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "updated": 1637932224365, + "startBinding": { + "elementId": "g7vs8C6uqO4bTo61O59Aw", + "focus": 0.052551992208420065, + "gap": 4.824849964035046 + }, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 1.032870407808332, + 29.82836233614421 + ] + ] + }, + { + "type": "arrow", + "version": 3461, + "versionNonce": 747078345, + "isDeleted": false, + "id": "71upoTD6GFgrOXKlu5yG9", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 439.77464787755434, + "y": 2111.7131329632525, + "strokeColor": "#2b8a3e", + "backgroundColor": "#40c057", + "width": 0.8900026040594184, + "height": 42.33167354011812, + "seed": 1676427264, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "updated": 1637932224365, + "startBinding": null, + "endBinding": { + "elementId": "9J6JtmeIAxyvqxZWDzdZ6", + "focus": 0.07538421404810115, + "gap": 3.813155082639817 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 0.8900026040594184, + 42.33167354011812 + ] + ] + }, + { + "type": "arrow", + "version": 3509, + "versionNonce": 2012882057, + "isDeleted": false, + "id": "ltQqjniw13AuUilgSxElZ", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 576.2789413248415, + "y": 1800.6506260525794, + "strokeColor": "#2b8a3e", + "backgroundColor": "#40c057", + "width": 115.41683958477779, + "height": 98.53937305086629, + "seed": 1693204480, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "updated": 1637932224365, + "startBinding": { + "elementId": "O40dBsx-Mma-qKHJ--JAE", + "focus": 0.21826802079855015, + "gap": 9.999584385915341 + }, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + -115.41683958477779, + 98.53937305086629 + ] + ] + }, + { + "type": "arrow", + "version": 4041, + "versionNonce": 932119687, + "isDeleted": false, + "id": "TDn77mRbDmzAYJi-YzOpz", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 662.3467583011891, + "y": 1801.9895874699903, + "strokeColor": "#c92a2a", + "backgroundColor": "#40c057", + "width": 104.07699859640354, + "height": 94.61407399115797, + "seed": 2103721984, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "updated": 1637932224365, + "startBinding": { + "elementId": "O40dBsx-Mma-qKHJ--JAE", + "focus": -0.002909535814719921, + "gap": 11.33854580332627 + }, + "endBinding": { + "elementId": "gGV1Uri-HsxuER2e25kPQ", + "focus": 0.6350348312748345, + "gap": 3.9290682527398957 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 104.07699859640354, + 94.61407399115797 + ] + ] + }, + { + "type": "text", + "version": 877, + "versionNonce": 271783945, + "isDeleted": false, + "id": "Ykrh-vhsf3v5nDXDJIUcB", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 486.5233134920686, + "y": 1604.1698908730418, + "strokeColor": "#000000", + "backgroundColor": "#fa5252", + "width": 311, + "height": 90, + "seed": 1188839424, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "updated": 1637932224365, + "fontSize": 36, + "fontFamily": 1, + "text": " 2 possible \nExecution Traces", + "baseline": 77, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "arrow", + "version": 72, + "versionNonce": 305203463, + "isDeleted": false, + "id": "dl7MnmTkIjb35UCv9iBYA", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1013.7152777777833, + "y": 755.1892361111311, + "strokeColor": "#343a40", + "backgroundColor": "transparent", + "width": 1.0993303571428896, + "height": 40.8984375, + "seed": 72630272, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "updated": 1637932224365, + "startBinding": null, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 1.0993303571428896, + 40.8984375 + ] + ] + }, + { + "type": "arrow", + "version": 4946, + "versionNonce": 738537193, + "isDeleted": false, + "id": "UUofUfdzbsJ1M607_HnaI", + "fillStyle": "solid", + "strokeWidth": 4, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 40, + "angle": 5.030228137977539, + "x": 449.19833413553806, + "y": 1427.5161780635779, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 75.81703673407685, + "height": 263.70936663039856, + "seed": 1550303232, + "groupIds": [], + "strokeSharpness": "round", + "boundElementIds": [], + "updated": 1637932224365, + "startBinding": { + "elementId": "DpI4rWFZM-U04cLys42hE", + "focus": -0.001893754519486269, + "gap": 1 + }, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + -75.81703673407685, + 38.037517073363006 + ], + [ + -28.725502468322077, + 147.27522553264703 + ], + [ + -58.39485249799958, + 263.70936663039856 + ] + ] + }, + { + "type": "rectangle", + "version": 1397, + "versionNonce": 1700286503, + "isDeleted": false, + "id": "ToGiqLakZY0mlrN_I86Wl", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 452.79327876984746, + "y": 1449.1016865079584, + "strokeColor": "#000000", + "backgroundColor": "#868e96", + "width": 106.73549107142861, + "height": 34.319196428571246, + "seed": 1363132416, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "lVltLokPzy-IM3WoBZ93X", + "rt5HJ517pZOfID_nqnATO", + "-F__nh9fqpMT7-0D2UHV8", + "UUofUfdzbsJ1M607_HnaI" + ], + "updated": 1637932224365 + }, + { + "type": "arrow", + "version": 1235, + "versionNonce": 1999727049, + "isDeleted": false, + "id": "hwtOgNamEqPj-gj5ufs4m", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "dotted", + "roughness": 0, + "opacity": 100, + "angle": 0.007495138237240795, + "x": 499.53425040871883, + "y": 1391.8461110274573, + "strokeColor": "#000000", + "backgroundColor": "#fa5252", + "width": 2.5443423958352582, + "height": 57.604396809663285, + "seed": 323469312, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "updated": 1637932224365, + "startBinding": { + "elementId": "sQOV73Jts-AXxrYF2i_KO", + "focus": -0.025727344947757618, + "gap": 1.122271842469111 + }, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + -2.5443423958352582, + 57.604396809663285 + ] + ] + }, + { + "type": "text", + "version": 2492, + "versionNonce": 1668074887, + "isDeleted": false, + "id": "BTR1i01uhnM6ibpLwtOtr", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 278.88727678571894, + "y": 2122.1809895833476, + "strokeColor": "#364fc7", + "backgroundColor": "transparent", + "width": 122, + "height": 38, + "seed": 364658688, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "4DVlD4r9XK4CbXGuRcd0W" + ], + "updated": 1637932224365, + "fontSize": 16, + "fontFamily": 3, + "text": "BobCheckInbox\n", + "baseline": 34, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 1044, + "versionNonce": 1890972265, + "isDeleted": false, + "id": "N5keC0aTISEwkUK94S0Qq", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 413.04613095238415, + "y": 2173.8936631944575, + "strokeColor": "#000000", + "backgroundColor": "#40c057", + "width": 53, + "height": 50, + "seed": 338968576, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "4DVlD4r9XK4CbXGuRcd0W", + "lVltLokPzy-IM3WoBZ93X", + "UJyt7821b-hSrpgjI4Tyj", + "jbbY_aXreUMcsguj00KSf", + "qpyR8BzjTRbOriv5hrYIC", + "71upoTD6GFgrOXKlu5yG9" + ], + "updated": 1637932224365, + "fontSize": 20, + "fontFamily": 1, + "text": "Bob\nHappy", + "baseline": 43, + "textAlign": "center", + "verticalAlign": "middle" + }, + { + "type": "ellipse", + "version": 2104, + "versionNonce": 2147335497, + "isDeleted": false, + "id": "ifax_PyxyCt7fUuMvF9eU", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 732.0379929315507, + "y": 2017.9479941716388, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 92.5078125, + "height": 91.92578125, + "seed": 892616704, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "A5ligwNlPz_F1k91DWpzc", + "FyqxJqmB5dMqKJwAkQwUO", + "mxaOD5cJNUAS-yzZrplHa", + "hNr12RjXcIhl9H-P1vjV4", + "4WzVYq0DFGwRDjZ7TzapG", + "Y_tSXab1UZyykolPFeNXt", + "A3Th5kOpCAx3h68Xmf67r", + "zhUWlL0aDiovO1ZhU1MAJ", + "cRJxh_ZsL8-4ZIvn-ENAU", + "eraO5DoOhun5KCumukHlP", + "nf790SeGDaNIjvl3acmmh" + ], + "updated": 1637932224365 + }, + { + "type": "text", + "version": 1386, + "versionNonce": 1438537671, + "isDeleted": false, + "id": "k71HD5J9hn_gFb1YUeW_l", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 744.8467726934532, + "y": 1895.9319041418732, + "strokeColor": "#000000", + "backgroundColor": "#40c057", + "width": 67, + "height": 100, + "seed": 78397440, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "k9oJyuet5ScMqPZm_b-ZF", + "ltQqjniw13AuUilgSxElZ", + "TDn77mRbDmzAYJi-YzOpz", + "cRJxh_ZsL8-4ZIvn-ENAU" + ], + "updated": 1637932224365, + "fontSize": 20, + "fontFamily": 1, + "text": "\nLost \n\"Hello\" \n", + "baseline": 93, + "textAlign": "center", + "verticalAlign": "top" + }, + { + "type": "ellipse", + "version": 2348, + "versionNonce": 768158761, + "isDeleted": false, + "id": "LTQuapBNDevCBRphZbTAq", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 734.2840866815491, + "y": 2156.0320715525963, + "strokeColor": "#c92a2a", + "backgroundColor": "#fa5252", + "width": 92.5078125, + "height": 91.92578125, + "seed": 1143226368, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "A5ligwNlPz_F1k91DWpzc", + "FyqxJqmB5dMqKJwAkQwUO", + "mxaOD5cJNUAS-yzZrplHa", + "hNr12RjXcIhl9H-P1vjV4", + "4WzVYq0DFGwRDjZ7TzapG", + "Y_tSXab1UZyykolPFeNXt", + "A3Th5kOpCAx3h68Xmf67r", + "zhUWlL0aDiovO1ZhU1MAJ", + "k9oJyuet5ScMqPZm_b-ZF", + "v7_zvK6k4FhieHFwiM0NO", + "nf790SeGDaNIjvl3acmmh" + ], + "updated": 1637932224365 + }, + { + "type": "arrow", + "version": 4139, + "versionNonce": 992540137, + "isDeleted": false, + "id": "nf790SeGDaNIjvl3acmmh", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 779.9288362456073, + "y": 2110.0571774820933, + "strokeColor": "#c92a2a", + "backgroundColor": "#40c057", + "width": 0.17770572927406647, + "height": 42.48792354011812, + "seed": 730611712, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "updated": 1637932224366, + "startBinding": { + "elementId": "ifax_PyxyCt7fUuMvF9eU", + "focus": -0.03956267188647443, + "gap": 1 + }, + "endBinding": { + "elementId": "LTQuapBNDevCBRphZbTAq", + "focus": -0.021483112347503976, + "gap": 3.4931575023790344 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + -0.17770572927406647, + 42.48792354011812 + ] + ] + }, + { + "type": "text", + "version": 2670, + "versionNonce": 592157543, + "isDeleted": false, + "id": "ePLBWu1FPP8pIZuE03-N1", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 822.5414651537716, + "y": 2120.146127852188, + "strokeColor": "#364fc7", + "backgroundColor": "transparent", + "width": 122, + "height": 38, + "seed": 1668038656, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "4DVlD4r9XK4CbXGuRcd0W" + ], + "updated": 1637932224366, + "fontSize": 16, + "fontFamily": 3, + "text": "BobCheckInbox\n", + "baseline": 34, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 1298, + "versionNonce": 1029403273, + "isDeleted": false, + "id": "QJadBDUVSQ-waEBg6Q-O0", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 748.1247984871031, + "y": 2176.847768020314, + "strokeColor": "#000000", + "backgroundColor": "#40c057", + "width": 68, + "height": 46, + "seed": 736378880, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "4DVlD4r9XK4CbXGuRcd0W", + "lVltLokPzy-IM3WoBZ93X", + "UJyt7821b-hSrpgjI4Tyj", + "eraO5DoOhun5KCumukHlP", + "RcVNMFpMaiH4cl0uUJ7op", + "nf790SeGDaNIjvl3acmmh" + ], + "updated": 1637932224366, + "fontSize": 18.432017543859683, + "fontFamily": 1, + "text": "Bob\nNeutral", + "baseline": 39, + "textAlign": "center", + "verticalAlign": "middle" + }, + { + "type": "ellipse", + "version": 2123, + "versionNonce": 1848743559, + "isDeleted": false, + "id": "gGV1Uri-HsxuER2e25kPQ", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 730.3864087301608, + "y": 1899.4878472222347, + "strokeColor": "#c92a2a", + "backgroundColor": "#fa5252", + "width": 92.5078125, + "height": 91.92578125, + "seed": 645677056, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "A5ligwNlPz_F1k91DWpzc", + "FyqxJqmB5dMqKJwAkQwUO", + "mxaOD5cJNUAS-yzZrplHa", + "hNr12RjXcIhl9H-P1vjV4", + "4WzVYq0DFGwRDjZ7TzapG", + "Y_tSXab1UZyykolPFeNXt", + "A3Th5kOpCAx3h68Xmf67r", + "zhUWlL0aDiovO1ZhU1MAJ", + "TDn77mRbDmzAYJi-YzOpz", + "zws25DroX9Et_L-fidrWp" + ], + "updated": 1637932224366 + }, + { + "type": "text", + "version": 1070, + "versionNonce": 754900265, + "isDeleted": false, + "id": "jWWOhfdI3ceRXO4SkLMh_", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 860.3723958333333, + "y": 105.58984375, + "strokeColor": "#c92a2a", + "backgroundColor": "transparent", + "width": 177, + "height": 25, + "seed": 1319092224, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "updated": 1637932874335, + "fontSize": 20, + "fontFamily": 1, + "text": " IF (m) in network", + "baseline": 18, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "id": "03gRNhO-p_p2UKHeOD4Nt", + "type": "text", + "x": 872.6119791666646, + "y": 2172.565104166664, + "width": 286, + "height": 70, + "angle": 0, + "strokeColor": "#c92a2a", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "sharp", + "seed": 1321331209, + "version": 665, + "versionNonce": 33200903, + "isDeleted": false, + "boundElementIds": null, + "updated": 1637932224366, + "text": "INVARIANT violation\n of ", + "fontSize": 28, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "baseline": 60 + }, + { + "id": "Dx_KzrkOXjGXdQPaiJG6m", + "type": "text", + "x": 949.1289062499986, + "y": 2211.7057291666656, + "width": 152, + "height": 24, + "angle": 0, + "strokeColor": "#c92a2a", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "sharp", + "seed": 1683922343, + "version": 510, + "versionNonce": 617987305, + "isDeleted": false, + "boundElementIds": null, + "updated": 1637932224366, + "text": "NotBobIsHappy", + "fontSize": 20, + "fontFamily": 3, + "textAlign": "left", + "verticalAlign": "top", + "baseline": 19 + }, + { + "type": "text", + "version": 1161, + "versionNonce": 1288152551, + "isDeleted": false, + "id": "Qsu8dCeUw43AG6jJPyPda", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 686.9277343749998, + "y": -43.4472656250023, + "strokeColor": "#c92a2a", + "backgroundColor": "transparent", + "width": 176, + "height": 25, + "seed": 657531657, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "updated": 1637932874335, + "fontSize": 20, + "fontFamily": 1, + "text": "Any (m) in network", + "baseline": 18, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "rectangle", + "version": 1407, + "versionNonce": 22761481, + "isDeleted": false, + "id": "BClxWU50lNZRFBHpP2Rug", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 290.6634114583338, + "y": 249.8014322916647, + "strokeColor": "#e67700", + "backgroundColor": "#fab005", + "width": 169.87695312500006, + "height": 56.31835937500002, + "seed": 1507753609, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "updated": 1637932874335 + }, + { + "type": "arrow", + "version": 507, + "versionNonce": 756679751, + "isDeleted": false, + "id": "V3EbyqTux_XD6daWn56SA", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 814.2220232277382, + "y": 99.87513193552411, + "strokeColor": "#364fc7", + "backgroundColor": "transparent", + "width": 302.55465146119104, + "height": 0.8244826210524252, + "seed": 861668425, + "groupIds": [], + "strokeSharpness": "round", + "boundElementIds": [], + "updated": 1637932874346, + "startBinding": { + "elementId": "FNLTX5XBAgfxjYMCt7vmz", + "focus": 0.07202471975337153, + "gap": 5.997413852738191 + }, + "endBinding": { + "elementId": "mc2holj_94vCi_dtmhK0H", + "focus": 0.011854641267117055, + "gap": 2.419753599905569 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 302.55465146119104, + -0.8244826210524252 + ] + ] + }, + { + "type": "text", + "version": 874, + "versionNonce": 996566761, + "isDeleted": false, + "id": "dEqS9FGiaJXLtPsdSpoET", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 694.2656724443327, + "y": -79.90309175532164, + "strokeColor": "#364fc7", + "backgroundColor": "transparent", + "width": 164.15805288461533, + "height": 30.270279255319135, + "seed": 175808585, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "updated": 1637932874335, + "fontSize": 25.48948489756058, + "fontFamily": 3, + "text": "NetworkLoss", + "baseline": 24.270279255319135, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 872, + "versionNonce": 1640405031, + "isDeleted": false, + "id": "oc2l7gTAoTdNMZ2DP_jjt", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 836.9271808577939, + "y": 59.46137423865753, + "strokeColor": "#364fc7", + "backgroundColor": "transparent", + "width": 250.77539062499994, + "height": 30.815620034427955, + "seed": 764851305, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "updated": 1637932874335, + "fontSize": 25.13811218773855, + "fontFamily": 3, + "text": "NetworkDeliver(m)", + "baseline": 24.815620034427955, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 998, + "versionNonce": 1974182345, + "isDeleted": false, + "id": "1a2FW5qnqMN96xIgkbvwI", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1257.8378906250005, + "y": 63.21346582061318, + "strokeColor": "#364fc7", + "backgroundColor": "transparent", + "width": 182.08203124999991, + "height": 28.81044798259494, + "seed": 343416999, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "updated": 1637932874335, + "fontSize": 23.96488263129824, + "fontFamily": 3, + "text": "BobCheckInbox", + "baseline": 22.81044798259494, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "arrow", + "version": 594, + "versionNonce": 134210407, + "isDeleted": false, + "id": "X27noJ9fFsLGrS6-OsDSu", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1208.9648617694047, + "y": 103.8796441279311, + "strokeColor": "#364fc7", + "backgroundColor": "transparent", + "width": 305.3580347409995, + "height": 0.8270361858554907, + "seed": 981145257, + "groupIds": [], + "strokeSharpness": "round", + "boundElementIds": [], + "updated": 1637932874347, + "startBinding": null, + "endBinding": { + "elementId": "cbusUS5YiTQ6yqh3e1Uax", + "focus": -0.01350247185981252, + "gap": 1.9601353647430244 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 305.3580347409995, + -0.8270361858554907 + ] + ] + }, + { + "type": "text", + "version": 890, + "versionNonce": 1833337001, + "isDeleted": false, + "id": "XxUViHOSraKw6gjiHlASZ", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 358.0781249999999, + "y": 262.1647701539855, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 29.19791666666675, + "height": 30.467391304347913, + "seed": 250068992, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "updated": 1637932874335, + "fontSize": 25.389492753623262, + "fontFamily": 3, + "text": "{}", + "baseline": 24.467391304347913, + "textAlign": "center", + "verticalAlign": "middle" + }, + { + "type": "text", + "version": 964, + "versionNonce": 1356724839, + "isDeleted": false, + "id": "2OISq7J07n1AfxX54Sq-h", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 753.9407552083335, + "y": 263.792997056157, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 29.19791666666675, + "height": 30.467391304347913, + "seed": 715865577, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "updated": 1637932874335, + "fontSize": 25.389492753623262, + "fontFamily": 3, + "text": "{}", + "baseline": 24.467391304347913, + "textAlign": "center", + "verticalAlign": "middle" + }, + { + "id": "n66WlswK13WgzKTv7KJJ3", + "type": "text", + "x": 1147.087890625001, + "y": 273.50585937499727, + "width": 47, + "height": 24, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "#fab005", + "fillStyle": "hachure", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "sharp", + "seed": 689233287, + "version": 107, + "versionNonce": 803373961, + "isDeleted": false, + "boundElementIds": null, + "updated": 1637932874335, + "text": "<<>>", + "fontSize": 20, + "fontFamily": 3, + "textAlign": "left", + "verticalAlign": "top", + "baseline": 19 + }, + { + "type": "text", + "version": 1049, + "versionNonce": 597691657, + "isDeleted": false, + "id": "HB8dfkrCa2zExNf2hGYZB", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 811.6814007675467, + "y": 944.7010678624231, + "strokeColor": "#364fc7", + "backgroundColor": "transparent", + "width": 196, + "height": 22, + "seed": 335190825, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "updated": 1637932224366, + "fontSize": 18.573640091352626, + "fontFamily": 3, + "text": "AliceSend(\"World\")", + "baseline": 18, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 1303, + "versionNonce": 1878647815, + "isDeleted": false, + "id": "XcB8eYizV0UZgYPbsdEVM", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1139.2473958333362, + "y": 946.076822916664, + "strokeColor": "#364fc7", + "backgroundColor": "transparent", + "width": 141, + "height": 22, + "seed": 77767369, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "updated": 1637932224366, + "fontSize": 18.573640091352626, + "fontFamily": 3, + "text": "BobCheckInbox", + "baseline": 18, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "arrow", + "version": 1097, + "versionNonce": 269190121, + "isDeleted": false, + "id": "PssUX5tJXzKVxRuhTSoC1", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 4.02457107256572, + "x": 1379.1551792276841, + "y": 841.3789243184609, + "strokeColor": "#000000", + "backgroundColor": "#40c057", + "width": 316.12025428869356, + "height": 151.30465136307407, + "seed": 343955977, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "updated": 1637932224366, + "startBinding": { + "elementId": "_4yjcNWhsY2JCE_Vhm0_r", + "focus": -0.37526324902800917, + "gap": 1.820813988944792 + }, + "endBinding": { + "elementId": "Ud9FS33IzltIqSMnDDl8Q", + "focus": 1.0073243082914345, + "gap": 1.9974684817223007 + }, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + -316.12025428869356, + 151.30465136307407 + ] + ] + }, + { + "type": "text", + "version": 2483, + "versionNonce": 296033993, + "isDeleted": false, + "id": "PRwWrgAJTAJOot9ZIX7vz", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 721.4648437500039, + "y": 1229.307291666666, + "strokeColor": "#364fc7", + "backgroundColor": "transparent", + "width": 122, + "height": 19, + "seed": 1354311527, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "v7_zvK6k4FhieHFwiM0NO" + ], + "updated": 1637932224366, + "fontSize": 16, + "fontFamily": 3, + "text": "BobCheckInbox", + "baseline": 15, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 952, + "versionNonce": 654859689, + "isDeleted": false, + "id": "O40dBsx-Mma-qKHJ--JAE", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 576.6614583333381, + "y": 1750.651041666664, + "strokeColor": "#000000", + "backgroundColor": "#40c057", + "width": 102, + "height": 40, + "seed": 2041793351, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "A3Th5kOpCAx3h68Xmf67r", + "Zbvqb041P_fM1c-KnMVln", + "ltQqjniw13AuUilgSxElZ", + "TDn77mRbDmzAYJi-YzOpz" + ], + "updated": 1637932224366, + "fontSize": 16, + "fontFamily": 1, + "text": "A. sent \n\"Hello World\" ", + "baseline": 34, + "textAlign": "center", + "verticalAlign": "middle" + }, + { + "type": "text", + "version": 2465, + "versionNonce": 1920232807, + "isDeleted": false, + "id": "clA60JtqpZtqRxppdFGoX", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 402.300781250005, + "y": 1797.132812499998, + "strokeColor": "#364fc7", + "backgroundColor": "transparent", + "width": 131, + "height": 38, + "seed": 1540248647, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "4DVlD4r9XK4CbXGuRcd0W" + ], + "updated": 1637932224366, + "fontSize": 16, + "fontFamily": 3, + "text": "NetworkDeliver\n (\"Hello\")", + "baseline": 34, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 2392, + "versionNonce": 1868611721, + "isDeleted": false, + "id": "gWhKXLnF43MNXqjANPWw7", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 273.86328125000495, + "y": 1986.5859374999977, + "strokeColor": "#364fc7", + "backgroundColor": "transparent", + "width": 131, + "height": 38, + "seed": 1725382185, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "4DVlD4r9XK4CbXGuRcd0W" + ], + "updated": 1637932224366, + "fontSize": 16, + "fontFamily": 3, + "text": "NetworkDeliver\n (\"World\")", + "baseline": 34, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 2481, + "versionNonce": 1148201095, + "isDeleted": false, + "id": "wpqDm7q72xxQj4dVC5Til", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 715.5651041666716, + "y": 1794.9713541666645, + "strokeColor": "#364fc7", + "backgroundColor": "transparent", + "width": 103, + "height": 38, + "seed": 1517527753, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "4DVlD4r9XK4CbXGuRcd0W" + ], + "updated": 1637932224367, + "fontSize": 16, + "fontFamily": 3, + "text": "NetworkLoss\n (\"Hello\")", + "baseline": 34, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "arrow", + "version": 3817, + "versionNonce": 1814757863, + "isDeleted": false, + "id": "zws25DroX9Et_L-fidrWp", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 779.0181342333249, + "y": 1994.9015813625651, + "strokeColor": "#c92a2a", + "backgroundColor": "#40c057", + "width": 0.42987736669329024, + "height": 25.672097691531235, + "seed": 2141073767, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "updated": 1637932224367, + "startBinding": { + "elementId": "gGV1Uri-HsxuER2e25kPQ", + "focus": -0.03350104196207652, + "gap": 3.544422413249656 + }, + "endBinding": null, + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 0.42987736669329024, + 25.672097691531235 + ] + ] + }, + { + "type": "text", + "version": 1051, + "versionNonce": 600460009, + "isDeleted": false, + "id": "XzqNl3qiJiV2Gv2nKSfUq", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 404.68619791667163, + "y": 1918.6197916666633, + "strokeColor": "#000000", + "backgroundColor": "#40c057", + "width": 78, + "height": 40, + "seed": 1450353223, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "k9oJyuet5ScMqPZm_b-ZF", + "EW5RbrLfuIeC3SnbdU171", + "SEkiyPIyY6OBVh8my8m19", + "M8Jx2TsAdwk1xTrzuGjvY", + "zhUWlL0aDiovO1ZhU1MAJ", + "UUofUfdzbsJ1M607_HnaI", + "hwtOgNamEqPj-gj5ufs4m" + ], + "updated": 1637932224367, + "fontSize": 16.27385124610591, + "fontFamily": 1, + "text": "B. receive\n\"Hello\"", + "baseline": 34, + "textAlign": "center", + "verticalAlign": "middle" + }, + { + "type": "text", + "version": 2502, + "versionNonce": 218297383, + "isDeleted": false, + "id": "eozEPBXwn5cUwkWa1CbHQ", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 822.3789062500049, + "y": 1994.2552083333342, + "strokeColor": "#364fc7", + "backgroundColor": "transparent", + "width": 131, + "height": 38, + "seed": 1565030505, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "4DVlD4r9XK4CbXGuRcd0W" + ], + "updated": 1637932224367, + "fontSize": 16, + "fontFamily": 3, + "text": "NetworkDeliver\n (\"World\")", + "baseline": 34, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 1116, + "versionNonce": 1878197705, + "isDeleted": false, + "id": "5hQmc49QSF7G6XqXODR0-", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 397.85416666667163, + "y": 2045.527343750001, + "strokeColor": "#000000", + "backgroundColor": "#40c057", + "width": 92.10937500000001, + "height": 38.37890625, + "seed": 1281830375, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "k9oJyuet5ScMqPZm_b-ZF", + "EW5RbrLfuIeC3SnbdU171", + "SEkiyPIyY6OBVh8my8m19", + "M8Jx2TsAdwk1xTrzuGjvY", + "zhUWlL0aDiovO1ZhU1MAJ", + "UUofUfdzbsJ1M607_HnaI", + "hwtOgNamEqPj-gj5ufs4m" + ], + "updated": 1637932224367, + "fontSize": 15.614315282518612, + "fontFamily": 1, + "text": "B. receive\n\"Hello World\"", + "baseline": 32.37890625, + "textAlign": "center", + "verticalAlign": "middle" + }, + { + "type": "text", + "version": 1166, + "versionNonce": 16766791, + "isDeleted": false, + "id": "mr9L074plhgPGnXjAtG9h", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 743.4361979166716, + "y": 2045.1269531250005, + "strokeColor": "#000000", + "backgroundColor": "#40c057", + "width": 75, + "height": 40, + "seed": 861084873, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "k9oJyuet5ScMqPZm_b-ZF", + "EW5RbrLfuIeC3SnbdU171", + "SEkiyPIyY6OBVh8my8m19", + "M8Jx2TsAdwk1xTrzuGjvY", + "zhUWlL0aDiovO1ZhU1MAJ", + "UUofUfdzbsJ1M607_HnaI", + "hwtOgNamEqPj-gj5ufs4m" + ], + "updated": 1637932224367, + "fontSize": 15.614315282518612, + "fontFamily": 1, + "text": "B. receive\n\"World\"", + "baseline": 34, + "textAlign": "center", + "verticalAlign": "middle" + }, + { + "type": "text", + "version": 393, + "versionNonce": 404755847, + "isDeleted": false, + "id": "IiVIMaIj-Mx7yP2xhlx8o", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 342.8680245535774, + "y": 91.16359747023967, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 59, + "height": 24, + "seed": 1916877959, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "xCh-izMBngkhuUJtLXE_u", + "Y_tSXab1UZyykolPFeNXt", + "V3EbyqTux_XD6daWn56SA" + ], + "updated": 1637932874335, + "fontSize": 20, + "fontFamily": 3, + "text": "ALICE", + "baseline": 19, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 417, + "versionNonce": 163261033, + "isDeleted": false, + "id": "5BdyuJq_wTdJFn9h0kQn-", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 1148.2879464285775, + "y": 88.78078497023967, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 35, + "height": 24, + "seed": 1619036679, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "xCh-izMBngkhuUJtLXE_u", + "Y_tSXab1UZyykolPFeNXt", + "V3EbyqTux_XD6daWn56SA" + ], + "updated": 1637932874335, + "fontSize": 20, + "fontFamily": 3, + "text": "BOB", + "baseline": 19, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 1083, + "versionNonce": 770801801, + "isDeleted": false, + "id": "N1MMyn_ApmGQM0d8V-EyP", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 599.3885323660775, + "y": -233.42989108783132, + "strokeColor": "#a61e4d", + "backgroundColor": "transparent", + "width": 464, + "height": 41, + "seed": 1194161575, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "updated": 1637932900929, + "fontSize": 34.42360458635746, + "fontFamily": 3, + "text": "'Hello world' using TLC", + "baseline": 33, + "textAlign": "center", + "verticalAlign": "top" + }, + { + "type": "rectangle", + "version": 695, + "versionNonce": 72050823, + "isDeleted": false, + "id": "TiqC3dBWDUWbQoHq_r9TH", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 2, + "opacity": 100, + "angle": 0, + "x": 549.7664620535775, + "y": -247.4321056547604, + "strokeColor": "#a61e4d", + "backgroundColor": "transparent", + "width": 554.53125, + "height": 69.62890625000001, + "seed": 617307209, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "updated": 1637932900929 + } + ], + "appState": { + "gridSize": null, + "viewBackgroundColor": "#ffffff" + }, + "files": {} +} \ No newline at end of file diff --git a/docs/tla_basics_tutorials/drawings/HelloWorld.png b/docs/tla_basics_tutorials/drawings/HelloWorld.png new file mode 100644 index 00000000..762cd34f Binary files /dev/null and b/docs/tla_basics_tutorials/drawings/HelloWorld.png differ diff --git a/docs/tla_basics_tutorials/drawings/HelloWorldGraph.png b/docs/tla_basics_tutorials/drawings/HelloWorldGraph.png new file mode 100644 index 00000000..cee0f198 Binary files /dev/null and b/docs/tla_basics_tutorials/drawings/HelloWorldGraph.png differ diff --git a/docs/tla_basics_tutorials/ecosystem.html b/docs/tla_basics_tutorials/ecosystem.html new file mode 100644 index 00000000..c9dc2274 --- /dev/null +++ b/docs/tla_basics_tutorials/ecosystem.html @@ -0,0 +1,32 @@ + + + (Bonus) Ecosystem | Model Based Techniques + Skip to main content Link Menu Expand (external link) Document Search Copy Copied

The TLA+ ecosystem

There are a number of resources in the ecosystem. The most important are

  1. The language itself
  2. +Apalache - a symbolic bounded model checker
  3. +TLC - an explicit state model checker

The Apalache and TLC model checkers each have pros and cons that make them suited for evaluating different models.

There are common names you will see repeatedly as you learn TLA+. We use the following

  1. +VSCode Plugin - highlights and shows syntax errors, runs TLC
    We recommend using this.
  2. +TLA+ standard modules - the standard library
    These modules are automatically found by Apalache and TLC when you include them.
  3. +Google Group - the official discussion forum for TLA+
    It’s worth searching here if you’re stuck.
  4. +tlaplus repository issues - the issues for the TLA+ components maintained by Microsoft
    It’s worth searching here if you’re stuck.

Additional keywords you might see, but that we don’t use in the basic tutorials:

  1. +Modelator - a tool for model-based testing using TLA+ models
    modelator can generate hundreds of tests from a model and run them against your real system.
  2. +SANY - the canonical TLA+ parser used by TLC and Apalache
    You don’t need to worry about using SANY on its own.
  3. +Toolbox - a bespoke IDE for writing TLA+ and running TLC.
    The toolbox has unique features useful in niche circumstances. We recommend trying the toolbox only after getting used to TLA+, if you need to.
  4. +TLA+ community modules - additional modules contributed by the community
    Using them may require downloading and providing the path for the package.
  5. +Pluscal - another language which translates to TLA+
    Pluscal is less expressive than TLA+ and uses a different syntax. There are Pascal and C-like flavours. You have to translate it to TLA+ using a transpiler before checking a model written in it. We recommend trying it only after getting used to using regular TLA+.
  6. +Specifying Systems - a book on TLA+ written by Leslie Lamport, original creator of TLA+
    It contains useful information on niche features of TLC and TLA+.

Footnote

Please note there are many more tools and works in the ecosystem. This page contains a basic subset.


diff --git a/docs/tla_basics_tutorials/ethereum.html b/docs/tla_basics_tutorials/ethereum.html new file mode 100644 index 00000000..041f20c1 --- /dev/null +++ b/docs/tla_basics_tutorials/ethereum.html @@ -0,0 +1,616 @@ + + + Ethereum Exploit | Model Based Techniques + Skip to main content Link Menu Expand (external link) Document Search Copy Copied

Finding an Ethereum exploit using Apalache

The .tla and other referenced files are included here.

In ‘Hello World’ we used TLC to check a simple model. Now we will walk through a real model. The model models part of the ERC20 Ethereum blockchain technical standard; in particular the model can be used to generate a trace which exploits the API to transfer funds to an attackers address. The model was written by Igor Konnov.

Intro

This model builds on the skills gained in ‘Hello World’ and ‘Typechecking’.

The model variables use a richer set of data structures including integers, tuples, and key value maps (called functions in TLA+). The operator definitions are also more complicated, making more use of the LET statement to define helper operators inline.

Finally, we will search for a more interesting behavior pattern than we did in ‘Hello World’: an execution that withdraws funds from a target wallet into an attackers wallet. We will see how TLA+ can be used to find vulnerabilities in a real system.

You will probably find the cheatsheet useful while reading.

The system we model

The system being modeled maintains addresses for blockchain wallets. It’s possible to transfer funds between addresses by executing transactions on the blockchain. There is a pool which holds transactions that have been submitted for execution, but have not yet been executed; these are pending transactions. Additionally, it is possible for wallet owners to delegate the ability to transfer their funds to a third party. This functionality is used in smart contracts.

The Ethereum ERC20 standard defines an API for the system. The API has three calls

  • +SubmitTransfer(sender, toAddr, value)
    Submit a transfer order, sending value from the address of sender to toAddr. The order will only be processed if the balance of the sender address is at least value.
  • +SubmitTransferFrom(sender, fromAddr, toAddr, value)
    Submit a transfer order, sending value from fromAddr to toAddr. The order will only be processed if the balance of the fromAddr is at least value and the owner of fromAddr has previously given permission for sender to send transactions on their behalf, via the SubmitApprove(…) call.
  • +SubmitApprove(sender, spender, value)
    Submit an order allowing spender to transfer funds from sender’s address on their behalf, up to a total sum of value.

The orders are submitted to the pendingTransactions pool. While the pool is not empty the blockchain will select and execute orders from the pool in a non-deterministic order.

You may notice that the descriptions of the Submit* API calls are not totally clear with respect to ordering and timing. We will see that this is exactly the problem with the API.

Defining State

We isolate parts of the blockchain system relevant to the behavior we are trying to understand. For the purpose of verifying the API we should track

  • A set of blockchain addresses
  • The balance of each address
  • For each pair of addresses (A, B), the value address A has allowed address B to transfer to third parties on their behalf
  • The pool of pending transactions

Data Declarations

Apalache lets you define type aliases in a typedefs.tla file. You import them all at once using the EXTEND keyword in other .tla files. We define aliases for an ADDR (address) and TX (transaction) type.

+
\* (In typedefs.tla)
+
+(*
+
+An account address, in our case, simply an uninterpreted string:
+@typeAlias: ADDR = Str;
+
+A transaction (a la discriminated union but all fields are packed together):
+@typeAlias: TX = [
+    tag: Str,
+    id: Int,
+    fail: Bool,
+    sender: ADDR,
+    spender: ADDR,
+    fromAddr: ADDR,
+    toAddr: ADDR,
+    value: Int
+];
+
+*)
+
+

We define ADDR as an alias for the builtin Str string type. We define TX as a composition of built in types and other aliases. In this case TX is a record (struct) with types associated to keys.

For the state we define variables

+
VARIABLES
+    \*
+    \* Token balance for every account. This is exactly as `balanceOf` in ERC20.
+    \* @type: ADDR -> Int;
+    balanceOf,
+    \*
+    \* Allowance to transfer tokens
+    \* from owner (1st element) by spender (2nd element).
+    \* This is exactly as `allowance` of ERC20.
+    \* @type: <<ADDR, ADDR>> -> Int;
+    allowance,
+    \*
+    \* Pending transactions to be executed against the contract.
+    \* Note that we have a set of transactions instead of a sequence,
+    \* as the order of transactions on Ethereum is not predefined.
+    \* To make it possible to submit two 'equal' transactions,
+    \* we introduce a unique transaction id.
+    \* @type: Set(TX);
+    pendingTransactions,
+    \*
+    \* The last executed transaction.
+    \* @type: TX;
+    lastTx,
+    \*
+    \* A serial number to assign unique ids to transactions
+    \* @type: Int;
+    nextTxId
+
+

Breaking them down we have

  • balanceOf with type ADDR -> Int
    This is Apalache’s notation for specifying function (key value map) types. balanceOf is a function mapping addresses (ADDR) to integers (Int).
  • allowance with type <<ADDR, ADDR>> -> Int
    Each allowance is an association between an allowing address, the allowed address, and the value that the allowing address allows the allowed address to transfer. We can store this as a function mapping pairs («T,T») to integers.
  • pendingTransactions with type Set(TX)
    The pendingTransactions pool is a set, as it has no concept of order. In this case it is a set of the TX type that we defined an alias for earlier.
  • lastTx with type TX
    The model checker will always give you traces as a sequence of states. It can be useful to have additional information to understand why one state follows another in the sequence. Storing additional state variables can be useful if they record the reason that the state changed the way it did. Saving the last processed transaction in the lastTx variable will make it easier for us to infer the flow of transactions in a trace.
  • nextTxId with type Int
    We would like to have multiple identical transactions in the pendingTransactions pool. We modeled the pool as a set, which can only store one of a given value. Adding a unique id to transactions lets us store multiple logically identical transactions in the pool.

The absolute values of the addresses in the system are unimportant and we can model a fixed number of addresses without it affecting API interactions. This means we can define an immutable set of ADDR types: an operator taking no input and giving us a fixed set of addresses.

+
\* @type: () => Set(ADDR);
+ADDRESSES == { "addr1", "addr2", "addr3" }
+
+

Data Definitions

We have declared the data in the system but not defined concrete values. In particular we should define initial values for the variables.

+
Init ==
+    \* every address has a non-negative number of tokens
+    /\ balanceOf \in [ADDRESSES -> Nat]
+    \* no account is allowed to withdraw from another account
+    /\ allowance = [ pair \in ADDRESSES \X ADDRESSES |-> 0 ]
+    \* no pending transactions
+    /\ pendingTransactions = {}
+    /\ nextTxId = 0
+    /\ lastTx = [ id |-> 0, tag |-> "None", fail |-> FALSE ]
+
+

TLA+ syntax can be opaque. Step by step

  • +balanceOf \in [ADDRESSES -> Nat]
    balanceOf is in the set of all functions mapping addresses to natural numbers
  • +allowance = [ pair \in ADDRESSES \X ADDRESSES |-> 0 ]
    allowance is the function whose keys are all the possible pairs of addresses, and whose values are all 0.
  • +pendingTransactions = {}
    pendingTransactions is the empty set
  • +nextTxId = 0
    nextTxId is 0
  • +lastTx = [ id |-> 0, tag |-> "None", fail |-> FALSE ]
    lastTx is the record mapping id to 0, tag to “None” and fail to FALSE

Remember: Init is a boolean function that will evaluate true for a subset of all possible states. In this case Init will match (hold true for) states where

  1. balanceOf is a function mapping addresses to natural numbers
  2. AND allowance is the function mapping all pairs of addresses to 0
  3. AND pendingTransactions is the empty set
  4. AND nextTxId is 0
  5. AND lastTx is exactly the record [ id -> 0, tag -> “None”, fail -> FALSE ]

The model checker will check all systems whose initial state matches the above criteria!

Defining Transitions

We have defined the variables in the system, now we must define transitions. The Next operator defines which transitions are allowed in the system.

+
Next ==
+    \/ \E sender, toAddr \in ADDRESSES, value \in Int:
+        SubmitTransfer(sender, toAddr, value)
+    \/ \E sender, fromAddr, toAddr \in ADDRESSES, value \in Int:
+        SubmitTransferFrom(sender, fromAddr, toAddr, value)
+    \/ \E sender, spender \in ADDRESSES, value \in Int:
+        SubmitApprove(sender, spender, value)
+    \/ \E tx \in pendingTransactions:
+        \/ /\ tx.tag = "transfer"
+           /\ ProcessTransfer(tx)
+        \/ /\ tx.tag = "transferFrom"
+           /\ ProcessTransferFrom(tx)
+        \/ /\ tx.tag = "approve"
+           /\ ProcessApprove(tx)
+
+

There are 6 actions, or types of transition in the system. They are

  • SubmitTransfer(sender, toAddr, value)
  • SubmitTransferFrom(sender, fromAddr, toAddr, value)
  • SubmitApprove(sender, spender, value)
  • ProcessTransfer(tx)
  • ProcessTransferFrom(tx)
  • ProcessApprove(tx)

The three Submit* actions match the API calls and the Process* actions define the processing of a pending transaction from the pendingTransactions pool.

The actions are written using parameterized operators, this makes the code more readable.

+
SubmitTx(tx) == 
+    /\ pendingTransactions' = pendingTransactions \union { tx }
+    /\ lastTx' = [ id |-> 0, tag |-> "None", fail |-> FALSE ]
+    /\ nextTxId' = nextTxId + 1
+    /\ UNCHANGED <<balanceOf, allowance>>
+
+SubmitTransfer(_sender, _toAddr, _value) == 
+    SubmitTx([  
+                id |-> nextTxId,
+                tag |-> "transfer",
+                fail |-> FALSE,
+                sender |-> _sender,
+                toAddr |-> _toAddr,
+                value |-> _value
+            ])
+
+SubmitTransferFrom(_sender, _fromAddr, _toAddr, _value) == 
+    SubmitTx([
+                id |-> nextTxId,
+                tag |-> "transferFrom",
+                fail |-> FALSE,
+                sender |-> _sender,
+                fromAddr |-> _fromAddr,
+                toAddr |-> _toAddr,
+                value |-> _value
+            ])
+
+SubmitApprove(_sender, _spender, _value) == 
+    SubmitTx([
+                id |-> nextTxId,
+                tag |-> "approve",
+                fail |-> FALSE,
+                sender |-> _sender,
+                spender |-> _spender,
+                value |-> _value
+            ])
+
+

We see that each of the Submit* operators delegates to the SubmitTx(tx) operator. Each operator adds a new transaction of TX type to the pendingTransactions set (and increments the unique nextTxId). Each transaction is tagged with a string “transfer”, “transferFrom” or “approve”. This allows us to disambiguate transactions in the Process* actions.

ProcessTransfer

The Process* actions make use of the LET keyword to define inline operators. Inline operators are analogous to local variables or lambda functions in typical programming languages.

+
ProcessTransfer(tx) == 
+    /\ pendingTransactions' = pendingTransactions \ { tx }
+    /\ UNCHANGED <<allowance, nextTxId>>
+    /\  LET fail ==
+          \/ tx.value < 0
+          \/ tx.value > balanceOf[tx.sender]
+          \/ tx.sender = tx.toAddr
+        IN
+        /\ lastTx' = [ tx EXCEPT !.fail = fail ]
+        /\ IF fail
+           THEN UNCHANGED balanceOf
+           ELSE 
+           \* transaction succeeds
+           \* update the balances of the 'sender' and 'toAddr' addresses
+           balanceOf' = [ 
+               balanceOf EXCEPT
+               ![tx.sender] = @ - tx.value,
+               ![tx.toAddr] = @ + tx.value
+           ]
+
+

ProcessTransfer takes a TX type tx, tagged with “transfer”, as input. For a pair of states (CurrentState, NextState). In all cases where the ProcessTransfer action is taken, the tx is removed from pendingTransactions, and allowance and nextTxId do not change. Additionally, there may be a change to the balanceOf variable.

fail is defined as a boolean: the transaction will fail if the value field is negative, or if the value is greater than the senders balance, or if the sender tries to send funds to themself (tx.sender = tx.toAddr).

fail is used: the lastTx variable in NextState (lastTx’) must be equal to tx, except for in the .fail key - where it should match the value of the inline operator fail. The syntax [ f EXCEPT !.foo = bar ] is the record f except for that the key foo is equal to bar.

fail is also used to update the balanceOf variable (or not). If fail is true then the transaction is void and the balances are not updated. However, if the transaction did not fail then the balanceOf variable is updated for the keys tx.sender and tx.toAddr. The syntax [f EXCEPT ![foo] = g(@)] is the function f except for that the key equal to the value of foo is equal to the value of the operator g(@), where @ is the value of of foo in f (@ can be used as a variable).

If the transaction does not fail, funds are transferred: the sender balance decreases by tx.value and the toAddr balance increases by tx.value.

ProcessTransferFrom

transfer transactions are made by addresses transferring their own funds. transferFrom transactions transfer funds between any two addresses, so long as the caller of transferFrom has been given approval.

+
ProcessTransferFrom(tx) == 
+    /\ pendingTransactions' = pendingTransactions \ { tx }
+    /\ UNCHANGED nextTxId
+    /\  LET fail ==
+          \/ tx.value < 0
+          \/ tx.value > balanceOf[tx.fromAddr]
+          \/ tx.value > allowance[tx.fromAddr, tx.sender]
+          \/ tx.fromAddr = tx.toAddr
+        IN
+        /\ lastTx' = [ tx EXCEPT !.fail = fail ]
+        /\  IF fail
+            THEN UNCHANGED <<balanceOf, allowance>>
+            ELSE
+            \* transaction succeeds
+            \* update the balances of the 'fromAddr' and 'toAddr' addresses
+            /\ balanceOf' = [
+                    balanceOf EXCEPT
+                    ![tx.fromAddr] = @ - tx.value,
+                    ![tx.toAddr] = @ + tx.value
+               ]
+            \* decrease the allowance for the sender
+            /\ allowance' = [
+                    allowance EXCEPT
+                    ![tx.fromAddr, tx.sender] = @ - tx.value
+               ]
+
+

Similarly to the ProcessTransfer action, ProcessTransferFrom defines an inline fail operator and uses it control the logic elsewhere in the action. In this case the transaction will fail if

  • the value is negative
  • the fromAddr has insufficient balance to make the transfer
  • the value is greater than the amount tx.fromAddr has allowed tx.sender to spend on their behalf
  • the fromAddr and toAddr are the same

If the transaction does not fail, then the balances are updated and the spending allowance is decreased.

ProcessApprove

ProcessApprove does not transfer funds: it updates the allowance (quantity of funds) that tx.spender can spend on behalf of tx.sender.

The transaction will fail if the tx.value field is negative or if tx.sender = tx.spender.

+
ProcessApprove(tx) ==
+    /\ pendingTransactions' = pendingTransactions \ { tx }
+    /\ UNCHANGED <<balanceOf, nextTxId>>
+    /\  LET fail == tx.value < 0 \/ tx.sender = tx.spender IN
+        /\ lastTx' = [ tx EXCEPT !.fail = fail ]
+        /\  IF fail
+            THEN UNCHANGED allowance
+            ELSE
+            \* transaction succeeds
+            \* set the allowance for the pair <<sender, spender>> to value
+            allowance' = [ 
+                allowance EXCEPT
+                ![tx.sender, tx.spender] = tx.value 
+            ]
+
+

Type checking

We should run the type checker to make sure we have not made a silly mistake writing the model. The model has medium complexity and size so annotating types for the variables and the ADDRESSES operator should be enough for Apalache to be able to understand the entire model.

java -jar apalache-pkg-0.17.5-full.jar typecheck ERC20.tla
+
+# Apalache output:
+# ...
+# Type checker [OK]
+

You should see Type checker [OK].

Finding an exploit

Trace Invariants using Seq(STATE)

We have defined the state and the allowed transitions. It is time to explore behavior using Apalache.

Apalache lets you define trace invariants: boolean functions over the entire sequence of states in an execution. They let you detect system behavior that single state boolean functions would not be able to detect.

A trace invariant should be an operator of the following form

+
\* @type: Seq(STATE) => Bool;
+Foo(trace) == ...
+
+

In order to use trace invariants we must define a STATE type alias in typdefs.tla. The STATE type should be a record using variable names as keys, mapping to the variable type.

+
(*
+
+  @typeAlias: STATE = [
+    balanceOf: ADDR -> Int,
+    allowance: <<ADDR, ADDR>> -> Int, 
+    pendingTransactions: Set(TX),
+    lastTx: TX,
+    nextTxId: Int
+  ];
+
+*)
+
+

It is straightforward to copy the declerations following the VARIABLES keyword that we already wrote.

Given the alias, Foo allows us to access any state in the execution trace using sequence indexing (1-based). For example we can access the initial state with trace[1], the second state with trace[2] etc.

Trace Invariant: All Fund Transfers Have Sufficient Approval

The Ethereum API has the expected behavior that if you approve a third party to make transfers from your address, then the sum of those transfers should not exceed the value that you specified.

We write a trace invariant that says

“Whenever a third party makes transfers from a given address on behalf of the owner, an Approve transaction with a value not less than the sum of the transfers should have been submitted by the owner of the address, before all transfers included in the sum were made.”

We can specify this criteria in TLA+

+
\* @type: Seq(STATE) => Bool;
+AllFundTransfersHaveSufficientApproval(trace) ==
+    \A spender, fromAddr \in ADDRESSES:
+        LET TransferIndices == {
+            i \in DOMAIN trace:
+                LET tx == trace[i].lastTx IN
+                /\ tx.tag = "transferFrom"
+                /\ ~tx.fail
+                /\ tx.fromAddr = fromAddr
+                /\ tx.sender = spender
+                /\ 0 < tx.value
+        }
+        IN
+        \* the sum of all transfers from 'fromAddr' to 'toAddr'
+        LET SumOfTransfers ==
+            LET Add(sum, i) == sum + trace[i].lastTx.value IN
+            FoldSet(Add, 0, TransferIndices)
+        IN
+        \* there exists an approval for the whole transfer sum
+        LET ExistsApprovalForSumInPast ==
+          \E i \in DOMAIN trace:
+            LET approval_tx == trace[i].lastTx IN
+            /\ approval_tx.tag = "approve"
+            /\ spender = approval_tx.spender
+            /\ fromAddr = approval_tx.sender
+            \* all transfers are made after the approval
+            /\ \A j \in TransferIndices: i < j
+            /\ ~approval_tx.fail
+            \* the sender of this transaction is allowing the spender
+            \* to spend at most the sum of the made transfers.
+            /\ SumOfTransfers <= approval_tx.value
+        IN
+        SumOfTransfers <= 0 \/ ExistsApprovalForSumInPast
+
+

There are a few things going on here.

First of all we must check the condition for all pairs of addresses

+
\A spender, fromAddr \in ADDRESSES:
+    ...
+
+

For each pair we define an inline operator TransferIndices, the set of indexes into the sequence of states in which a transfer was made by spender from fromAddr to another address.

+
LET TransferIndices == {
+        i \in DOMAIN trace:
+            LET tx == trace[i].lastTx IN
+            /\ tx.tag = "transferFrom"
+            /\ ~tx.fail
+            /\ tx.fromAddr = fromAddr
+            /\ tx.sender = spender
+            /\ 0 < tx.value
+    }
+
+

We can collect the sum of these transfers by using the FoldSet operator included in the Apalache library module (EXTENDS Apalache).

+
LET SumOfTransfers ==
+    LET Add(sum, i) == sum + trace[i].lastTx.value IN
+    FoldSet(Add, 0, TransferIndices)
+
+

The FoldSet operator is one of the most useful reusable operators available. The form is

+
FoldSet(Combiner, initialValue, inputSet)
+
+

where Combiner is an operator

+
Combiner(accumulatedValue, nextValue)
+
+

The value of a FoldSet call is the result of repeatedly applying Combiner to successive elements in inputSet (in unpredictable order) as well as the value accumulated so far in the process.

Our usage SumOfTransfers sums the .value field of the lastTx variable for each state indexed by TransferIndices.

+
LET SumOfTransfers ==
+    LET Add(sum, i) == sum + trace[i].lastTx.value IN
+    FoldSet(Add, 0, TransferIndices)
+
+

A last component of our trace operator is ExistsApprovalForSumInPast

+
    LET ExistsApprovalForSumInPast ==
+        \E i \in DOMAIN trace:
+        LET approval_tx == trace[i].lastTx IN
+        /\ approval_tx.tag = "approve"
+        /\ spender = approval_tx.spender
+        /\ fromAddr = approval_tx.sender
+        \* all transfers are made after the approval
+        /\ \A j \in TransferIndices: i < j
+        /\ ~approval_tx.fail
+        \* the sender of this transaction is allowing the spender
+        \* to spend at most the sum of the made transfers.
+        /\ SumOfTransfers <= approval_tx.value
+
+

The operator will evaluate true if there exists an approval in the transaction history that precedes each transfer, and the approval value was not less than the sum of total transfers.

Finally, we can put the pieces together.

+
AllFundTransfersHaveSufficientApproval(trace) ==
+    \A spender, fromAddr \in ADDRESSES:
+        \* ...
+        IN
+        SumOfTransfers <= 0 \/ ExistsApprovalForSumInPast
+
+

The final value of AllFundTransfersHaveSufficientApproval will be false if and only if there is a pair of addresses with a positive SumOfTransfers and no approval for those transfers was made.

Check the invariant

java -jar apalache-pkg-0.17.5-full.jar check --inv=AllFundTransfersHaveSufficientApproval ERC20.tla
+
+# Apalache output:
+# ...
+# State 8: Checking 1 trace invariant(s)                            
+# State 8: trace invariant 0 violated. Check the counterexample in: ...
+# Found 1 error(s)
+

An error!

Interpreting an Apalache counterexample

We should check the counterexample1.tla file (located in the _apalache-out) directory. It should contain a sequence of states similar to the following (but may not be identical)

+
(* Initial state *)
+State0 ==
+  allowance
+      = (((((((<<"addr1", "addr1">> :> 0 @@ <<"addr2", "addr1">> :> 0)
+                    @@ <<"addr3", "addr1">> :> 0)
+                  @@ <<"addr1", "addr2">> :> 0)
+                @@ <<"addr2", "addr2">> :> 0)
+              @@ <<"addr3", "addr2">> :> 0)
+            @@ <<"addr1", "addr3">> :> 0)
+          @@ <<"addr2", "addr3">> :> 0)
+        @@ <<"addr3", "addr3">> :> 0
+    /\ balanceOf = ("addr1" :> 28 @@ "addr2" :> 14) @@ "addr3" :> 20
+    /\ lastTx = [fail |-> FALSE, id |-> 0, tag |-> "None"]
+    /\ nextTxId = 0
+    /\ pendingTransactions = {}
+
+(* Transition 2 to State1 *)
+State1 ==
+  allowance
+      = (((((((<<"addr1", "addr1">> :> 0 @@ <<"addr2", "addr1">> :> 0)
+                    @@ <<"addr3", "addr1">> :> 0)
+                  @@ <<"addr1", "addr2">> :> 0)
+                @@ <<"addr2", "addr2">> :> 0)
+              @@ <<"addr3", "addr2">> :> 0)
+            @@ <<"addr1", "addr3">> :> 0)
+          @@ <<"addr2", "addr3">> :> 0)
+        @@ <<"addr3", "addr3">> :> 0
+    /\ balanceOf = ("addr1" :> 28 @@ "addr2" :> 14) @@ "addr3" :> 20
+    /\ lastTx = [fail |-> FALSE, id |-> 0, tag |-> "None"]
+    /\ nextTxId = 1
+    /\ pendingTransactions
+      = {[fail |-> FALSE,
+        id |-> 0,
+        sender |-> "addr1",
+        spender |-> "addr3",
+        tag |-> "approve",
+        value |-> 16]}
+
+(* Transition 1 to State2 *)
+State2 ==
+  allowance
+      = (((((((<<"addr1", "addr2">> :> 0 @@ <<"addr3", "addr1">> :> 0)
+                    @@ <<"addr2", "addr3">> :> 0)
+                  @@ <<"addr3", "addr3">> :> 0)
+                @@ <<"addr1", "addr3">> :> 0)
+              @@ <<"addr2", "addr1">> :> 0)
+            @@ <<"addr3", "addr2">> :> 0)
+          @@ <<"addr1", "addr1">> :> 0)
+        @@ <<"addr2", "addr2">> :> 0
+    /\ balanceOf = ("addr1" :> 28 @@ "addr2" :> 14) @@ "addr3" :> 20
+    /\ lastTx = [fail |-> FALSE, id |-> 0, tag |-> "None"]
+    /\ nextTxId = 2
+    /\ pendingTransactions
+      = { [fail |-> FALSE,
+          fromAddr |-> "addr1",
+          id |-> 1,
+          sender |-> "addr3",
+          tag |-> "transferFrom",
+          toAddr |-> "addr2",
+          value |-> 6],
+        [fail |-> FALSE,
+          id |-> 0,
+          sender |-> "addr1",
+          spender |-> "addr3",
+          tag |-> "approve",
+          value |-> 16] }
+
+(* Transition 3 to State3 *)
+State3 ==
+  allowance
+      = (((((((<<"addr3", "addr2">> :> 0 @@ <<"addr2", "addr1">> :> 0)
+                    @@ <<"addr3", "addr1">> :> 0)
+                  @@ <<"addr3", "addr3">> :> 0)
+                @@ <<"addr1", "addr1">> :> 0)
+              @@ <<"addr1", "addr3">> :> 16)
+            @@ <<"addr2", "addr2">> :> 0)
+          @@ <<"addr2", "addr3">> :> 0)
+        @@ <<"addr1", "addr2">> :> 0
+    /\ balanceOf = ("addr1" :> 28 @@ "addr2" :> 14) @@ "addr3" :> 20
+    /\ lastTx
+      = [fail |-> FALSE,
+        id |-> 0,
+        sender |-> "addr1",
+        spender |-> "addr3",
+        tag |-> "approve",
+        value |-> 16]
+    /\ nextTxId = 2
+    /\ pendingTransactions
+      = {[fail |-> FALSE,
+        fromAddr |-> "addr1",
+        id |-> 1,
+        sender |-> "addr3",
+        tag |-> "transferFrom",
+        toAddr |-> "addr2",
+        value |-> 6]}
+
+(* Transition 6 to State4 *)
+State4 ==
+  allowance
+      = (((((((<<"addr1", "addr2">> :> 0 @@ <<"addr3", "addr1">> :> 0)
+                    @@ <<"addr3", "addr2">> :> 0)
+                  @@ <<"addr2", "addr1">> :> 0)
+                @@ <<"addr1", "addr3">> :> 10)
+              @@ <<"addr1", "addr1">> :> 0)
+            @@ <<"addr2", "addr2">> :> 0)
+          @@ <<"addr2", "addr3">> :> 0)
+        @@ <<"addr3", "addr3">> :> 0
+    /\ balanceOf = ("addr1" :> 22 @@ "addr2" :> 20) @@ "addr3" :> 20
+    /\ lastTx
+      = [fail |-> FALSE,
+        fromAddr |-> "addr1",
+        id |-> 1,
+        sender |-> "addr3",
+        tag |-> "transferFrom",
+        toAddr |-> "addr2",
+        value |-> 6]
+    /\ nextTxId = 2
+    /\ pendingTransactions = {}
+
+(* Transition 2 to State5 *)
+State5 ==
+  allowance
+      = (((((((<<"addr3", "addr2">> :> 0 @@ <<"addr2", "addr3">> :> 0)
+                    @@ <<"addr2", "addr1">> :> 0)
+                  @@ <<"addr2", "addr2">> :> 0)
+                @@ <<"addr1", "addr3">> :> 10)
+              @@ <<"addr1", "addr2">> :> 0)
+            @@ <<"addr3", "addr3">> :> 0)
+          @@ <<"addr1", "addr1">> :> 0)
+        @@ <<"addr3", "addr1">> :> 0
+    /\ balanceOf = ("addr1" :> 22 @@ "addr2" :> 20) @@ "addr3" :> 20
+    /\ lastTx = [fail |-> FALSE, id |-> 0, tag |-> "None"]
+    /\ nextTxId = 3
+    /\ pendingTransactions
+      = {[fail |-> FALSE,
+        id |-> 2,
+        sender |-> "addr1",
+        spender |-> "addr3",
+        tag |-> "approve",
+        value |-> 24]}
+
+(* Transition 1 to State6 *)
+State6 ==
+  allowance
+      = (((((((<<"addr1", "addr2">> :> 0 @@ <<"addr3", "addr1">> :> 0)
+                    @@ <<"addr3", "addr3">> :> 0)
+                  @@ <<"addr1", "addr3">> :> 10)
+                @@ <<"addr2", "addr3">> :> 0)
+              @@ <<"addr3", "addr2">> :> 0)
+            @@ <<"addr2", "addr1">> :> 0)
+          @@ <<"addr1", "addr1">> :> 0)
+        @@ <<"addr2", "addr2">> :> 0
+    /\ balanceOf = ("addr1" :> 22 @@ "addr2" :> 20) @@ "addr3" :> 20
+    /\ lastTx = [fail |-> FALSE, id |-> 0, tag |-> "None"]
+    /\ nextTxId = 4
+    /\ pendingTransactions
+      = { [fail |-> FALSE,
+          fromAddr |-> "addr1",
+          id |-> 3,
+          sender |-> "addr3",
+          tag |-> "transferFrom",
+          toAddr |-> "addr2",
+          value |-> 20],
+        [fail |-> FALSE,
+          id |-> 2,
+          sender |-> "addr1",
+          spender |-> "addr3",
+          tag |-> "approve",
+          value |-> 24] }
+
+(* Transition 3 to State7 *)
+State7 ==
+  allowance
+      = (((((((<<"addr3", "addr1">> :> 0 @@ <<"addr1", "addr1">> :> 0)
+                    @@ <<"addr2", "addr2">> :> 0)
+                  @@ <<"addr2", "addr1">> :> 0)
+                @@ <<"addr2", "addr3">> :> 0)
+              @@ <<"addr3", "addr3">> :> 0)
+            @@ <<"addr1", "addr3">> :> 24)
+          @@ <<"addr1", "addr2">> :> 0)
+        @@ <<"addr3", "addr2">> :> 0
+    /\ balanceOf = ("addr1" :> 22 @@ "addr2" :> 20) @@ "addr3" :> 20
+    /\ lastTx
+      = [fail |-> FALSE,
+        id |-> 2,
+        sender |-> "addr1",
+        spender |-> "addr3",
+        tag |-> "approve",
+        value |-> 24]
+    /\ nextTxId = 4
+    /\ pendingTransactions
+      = {[fail |-> FALSE,
+        fromAddr |-> "addr1",
+        id |-> 3,
+        sender |-> "addr3",
+        tag |-> "transferFrom",
+        toAddr |-> "addr2",
+        value |-> 20]}
+
+(* Transition 6 to State8 *)
+State8 ==
+  allowance
+      = (((((((<<"addr2", "addr1">> :> 0 @@ <<"addr3", "addr3">> :> 0)
+                    @@ <<"addr3", "addr2">> :> 0)
+                  @@ <<"addr2", "addr3">> :> 0)
+                @@ <<"addr1", "addr3">> :> 4)
+              @@ <<"addr1", "addr2">> :> 0)
+            @@ <<"addr2", "addr2">> :> 0)
+          @@ <<"addr3", "addr1">> :> 0)
+        @@ <<"addr1", "addr1">> :> 0
+    /\ balanceOf = ("addr1" :> 2 @@ "addr2" :> 40) @@ "addr3" :> 20
+    /\ lastTx
+      = [fail |-> FALSE,
+        fromAddr |-> "addr1",
+        id |-> 3,
+        sender |-> "addr3",
+        tag |-> "transferFrom",
+        toAddr |-> "addr2",
+        value |-> 20]
+    /\ nextTxId = 4
+    /\ pendingTransactions = {}
+
+

For brevity here is a cleaned up summary:

# State 0 (Init)
+    balances = [28, 14, 20]
+
+# State 1 - an approval is submitted.
+    balances = [28, 14, 20]
+    pending = {
+        addr1 approve addr3 for value 16
+    }
+
+# State 2 - a transferFrom is submitted.
+    balances = [28, 14, 20]
+    pending = {
+        addr1 approve addr3 with value 16
+        addr3 transfer 6 from addr1 to addr2
+    }
+
+# State 3 - the approval is processed.
+    allowances = {
+        addr1 approve addr3 with value 16
+    }
+    balances = [28, 14, 20]
+    pending = {
+        addr3 transfer 6 from addr1 to addr2
+    }
+
+# State 4 - the transferFrom is processed.
+    allowances = {
+        addr1 approve addr3 with value 10
+    }
+    balances = [22, 20, 20]
+
+# State 5 - an approval is submitted.
+    allowances = {
+        addr1 approve addr3 with value 10
+    }
+    balances = [22, 20, 20]
+    pending = {
+        addr1 approve addr3 with value 24
+    }
+
+# State 6 - a transferFrom is submitted.
+    allowances = {
+        addr1 approve addr3 with value 10
+    }
+    balances = [22, 20, 20]
+    pending = {
+        addr1 approve addr3 with value 24
+        addr3 transfer 20 from addr1 to addr2
+    }
+
+# State 7 - the approval is processed.
+    allowances = {
+        addr1 approve addr3 with value 24
+    }
+    balances = [22, 20, 20]
+    pending = {
+        addr3 transfer 20 from addr1 to addr2
+    }
+
+# State 8 - the transferFrom is processed.
+    allowances = {
+        addr1 approve addr3 with value 4
+    }
+    balances = [2, 40, 20]
+

The problem is that addr1 made two approvals for addr3 to transfer its funds

  1. approved transferring up to 16
  2. approved transferring up to 24

But addr3 made two transferFroms from addr1 to addr2

  1. transfer 6
  2. transfer 20

Both transfers succeeded with a sum of 26, however, the intention of addr1 was to approve a lifetime maximum transfer of 16, and then increase it to 24. The problem is that the first transfer happened in between the first and second approvals. The second approval overwrote the original value, not taking into account the transfer made in the meantime. This enabled a second transfer to withdraw too much.

Wrapping up

This tutorial

  1. Described the problem being modeled
  2. How to declare appropriate state variables using advanced data types
  3. How to define appropriate initial states in Init
  4. How to define appropriate transitions using actions in Next
  5. Type checked the model
  6. Writing a trace invariant - including using FoldSet
  7. Analysed a counterexample.tla file that Apalache generated, showing a flaw in the API

Try the next one :)

Further resources


diff --git a/docs/tla_basics_tutorials/generating_traces.html b/docs/tla_basics_tutorials/generating_traces.html new file mode 100644 index 00000000..c9b5f6ef --- /dev/null +++ b/docs/tla_basics_tutorials/generating_traces.html @@ -0,0 +1,189 @@ + + + Generating Traces | Model Based Techniques + Skip to main content Link Menu Expand (external link) Document Search Copy Copied

Generating traces for automated testing using Apalache

The .tla and other referenced files are included here.

Apalache allows you to generate more than one trace that satisfies a given behavior specified by a state invariant or trace invariant.

Generating multiple traces can be useful because different traces may give you insight into your system. There may be several different methods of exploiting the same vulnerability, for example. Generating multiple traces is also useful for model-based testing, where the goal is to use a model to generate tests for a software implementation of the system.

This tutorial shows you

  • How to use Apalache to generate multiple traces
  • How to control the way that traces differ using Apalache’s VIEW feature

The tutorial builds on the skills gained in ‘Hello World’ and ‘Ethereum’ where we model checked state and trace invariants but only generated a single trace.

Demonstrating multiple traces

For instruction purposes we will use a small and simple model.

+
---- MODULE multiple_traces ----
+
+EXTENDS Integers, Sequences, Apalache, typedefs
+
+VARIABLES
+    \* @type: Str;
+    auxiliary_str,
+    \* @type: Int;
+    important_int
+
+Init ==
+    /\ auxiliary_str = "foo"
+    /\ important_int = 0
+
+ChangeAuxiliaryStr == 
+    /\ auxiliary_str' \in {"foo", "bar", "wiz"}
+    /\ UNCHANGED important_int
+        
+AddToImportantInt == 
+    /\ UNCHANGED auxiliary_str
+    /\ \E x \in 1..4 : important_int' = important_int + x
+
+Next ==
+    \/ ChangeAuxiliaryStr
+    \/ AddToImportantInt
+
+\* @type: () => Bool;
+ImportantIntIs6 == 
+    LET Behavior == important_int = 6
+    IN ~Behavior
+
+\* @type: Seq(STATE) => Bool;
+ImportantIntIsOddUntil6(trace) ==
+    LET Behavior ==
+        /\ trace[Len(trace)].important_int = 6
+        /\ \A i \in DOMAIN trace : 
+            \/ (i = 1 \/ i = Len(trace))
+            \/ trace[i].important_int % 2 = 1
+    IN ~Behavior
+
+View == important_int
+
+====
+
+

Remember that to use trace invariants we must define a STATE type alias in typdefs.tla

+
---- MODULE typedefs ----
+
+(*
+  @typeAlias: STATE = [
+    auxiliary_str : Str,
+    important_int : Int
+  ];
+*) 
+
+include_typedefs == TRUE
+====
+
+

Defining a View operator

The model contains two state variables. Suppose that auxiliary_str represents some data in your system that’s needed for bookkeeping, but won’t have an effect on the interesting behaviors. Suppose also that important_int contains some highly critical data.

The goal is to generate traces which differ only by the value of important_int in each state. Apalache’s VIEW feature lets you define an operator named View taking all state variables and outputting some value. Apalache ensures that all pairs of generated traces t1 and t2 differ on the value of that function for at least one state.

By writing

+
View == important_int
+
+

we ensure that all the traces generated will have a different sequence of values for important_int.

Our Invariants

The model contains operators defining the inverses of two behaviors we would like to generate traces for.

The state invariant ImportantIntIs6 will evaluate to false in any state where important_int is 6.

+
\* @type: () => Bool;
+ImportantIntIs6 == 
+    LET Behavior == important_int = 6
+    IN ~Behavior
+
+

If we use Apalache to check ImportantIntIs6 it will find a single trace where the operator evaluates to false: meaning that the integer is 6.

apalache check --inv=ImportantIntIs6 multiple_traces.tla
+
+# Apalache output:
+# ... 
+# State 2: Checking 1 trace invariant(s)                            
+# State 2: trace invariant 0 violated. Check the counterexample in: counterexample1.json
+# Found 1 error(s)                                                 
+# The outcome is: Error
+
+
\* counterexample1.json
+
+(* Initial state *)
+State0 == auxiliary_str = "foo" /\ important_int = 0
+
+(* Transition 1 to State1 *)
+State1 == auxiliary_str = "foo" /\ important_int = 3
+
+(* Transition 1 to State2 *)
+State2 == auxiliary_str = "foo" /\ important_int = 6
+
+

This is useful but we can generate more traces by running

apalache check --inv=ImportantIntIs6 --max-error=3 --view=View multiple_traces.tla
+
+# Apalache output:
+# ... 
+# State 2: Checking 1 state invariants 
+# State 2: state invariant 0 violated. Check the counterexample in: counterexample1.json
+# State 2: state invariant 0 violated. Check the counterexample in: counterexample2.json
+# State 2: state invariant 0 violated. Check the counterexample in: counterexample3.json
+# Found 3 error(s)                     
+# The outcome is: Error
+

You should see three traces similar to the below

+
\* counterexample1.json
+
+(* Initial state *)
+State0 == auxiliary_str = "foo" /\ important_int = 0
+
+(* Transition 1 to State1 *)
+State1 == auxiliary_str = "foo" /\ important_int = 2
+
+(* Transition 1 to State2 *)
+State2 == auxiliary_str = "foo" /\ important_int = 6
+
+\* counterexample2.json
+
+(* Initial state *)
+State0 == auxiliary_str = "foo" /\ important_int = 0
+
+(* Transition 1 to State1 *)
+State1 == auxiliary_str = "foo" /\ important_int = 3
+
+(* Transition 1 to State2 *)
+State2 == auxiliary_str = "foo" /\ important_int = 6
+
+\* counterexample3.json
+
+(* Initial state *)
+State0 == auxiliary_str = "foo" /\ important_int = 0
+
+(* Transition 1 to State1 *)
+State1 == auxiliary_str = "foo" /\ important_int = 4
+
+(* Transition 1 to State2 *)
+State2 == auxiliary_str = "foo" /\ important_int = 6
+
+

Notice how they differ in the sequence of the important_int variable.

We can also generate multiple traces for the trace operator ImportantIntIsOddUntil6

+
\* @type: Seq(STATE) => Bool;
+ImportantIntIsOddUntil6(trace) ==
+    LET Behavior ==
+        /\ trace[Len(trace)].important_int = 6
+        /\ \A i \in DOMAIN trace : 
+            \/ (i = 1 \/ i = Len(trace))
+            \/ trace[i].important_int % 2 = 1
+    IN ~Behavior
+
+

If we check the operator as an invariant Apalache will generate traces whose behavior matches the inline Behavior operator. The behavior operator matches traces where important_int has a value 6 in the last state, and odd values for all states except the Init state and the last state.

apalache check --inv=ImportantIntIsOddUntil6 --max-error=10 --view=View multiple_traces.tla
+
+# Apalache output:
+# ... 
+State 2: Checking 1 trace invariant(s)                            
+State 2: trace invariant 0 violated. Check the counterexample in: ...
+Step 3: picking a transition out of 2 transition(s)               
+State 3: Checking 1 trace invariant(s)                            
+State 3: trace invariant 0 violated. Check the counterexample in: ...
+...
+State 3: trace invariant 0 violated. Check the counterexample in: ...
+Step 4: picking a transition out of 2 transition(s)               
+State 4: Checking 1 trace invariant(s)                            
+State 4: trace invariant 0 violated. Check the counterexample in: ...
+...
+State 4: trace invariant 0 violated. Check the counterexample in: ...
+Found 10 error(s)                                                 
+The outcome is: Error                                             
+

Try inspecting the counterexample.tla files in the _apalache-out directory. Also try playing around with different invariants and particularly different View operators. For example, what do you think will happen if you specify

+
View == <<auxiliary_str, important_int>>
+
+

or

+
View == 3 < important_int
+
+

Wrapping up

This tutorial

  1. Why it’s useful to generate multiple traces
  2. Differentiating traces with a View operator
  3. Generating multiple traces for a state invariant
  4. Generating multiple traces for a trace invariant

That’s it. Congratulations for completing the basic tutorial set :)

Further resources


diff --git a/docs/tla_basics_tutorials/hello_world.html b/docs/tla_basics_tutorials/hello_world.html new file mode 100644 index 00000000..cf2ea65d --- /dev/null +++ b/docs/tla_basics_tutorials/hello_world.html @@ -0,0 +1,182 @@ + + + Hello World | Model Based Techniques + Skip to main content Link Menu Expand (external link) Document Search Copy Copied

‘Hello world’ using TLC

The .tla and other referenced files are included here.

Let’s model a system with two processes Alice and Bob. They are connected by a network that can lose and reorder messages. Alice will send two messages “hello” and “world” to Bob in an undetermined order. If Bob receives “hello” and then “world” he will become happy.

hello_world.tla contains the model and hello_world.cfg contains the configuration file needed to model check it using TLC.

Let’s unpack the body of the .tla file.

Boilerplate

You should write TLA in between two lines as below. This is an artifact of the module system.

+
---- MODULE hello_world ----
+\* content here...
+====
+
+

We extend (import) a modules from the standard library

+
EXTENDS Sequences \* Import Sequences module from the standard library
+
+

it provides the Sequence data structure. It is a list.

The state machine

In TLA+ you define a state machine. There is an initial state, which is a choice of values for each variable declared. You also define the transitions allowed in the system.

We model 4 pieces of state: Alice’s outbox, the messages in the network, Bob’s mood and Bob’s inbox.

+
VARIABLES
+    alices_outbox,
+    network,
+    bobs_mood,
+    bobs_inbox
+
+

The Init operator defines the initial values of the state variables of the model. In TLA+ the term operator is used to mean something like a programming language function. Please take the Init operator on faith right now.

+
Init ==
+    /\ alices_outbox = {} \* Alice has sent nothing (empty set)
+    /\ network = {} \* AND so is the network
+    /\ bobs_mood = "neutral" \* AND Bob's mood is neutral
+    /\ bobs_inbox = <<>> \* AND Bob's inbox is an empty Sequence (list)
+
+

State machine transitions are pairs: (CurrentState, NextState). In TLA+ you describe the transitions allowed in the system by writing a boolean function over pairs (CurrentState, NextState). If a pair makes your boolean function evaluate true then the model checker will check that transition. In fact, the model checker will check all transitions that match your boolean function. This is what allows the model checker to exhaustively explore system behavior.

Practically this means that you define transitions by writing actions: operators that take into account the CurrentState and the NextState. Because the variable names are the same in both states, you denote the NextState variables by appending the character to identifiers. In TLA+ you write actions OR’ed together in the Next operator.

+
Next ==
+    \/ AliceSend("hello")
+    \/ AliceSend("world")
+    \/ NetworkLoss
+    \/ NetworkDeliver
+    \/ BobCheckInbox
+
+
AliceSend(m) == 
+    /\ m \notin alices_outbox
+    /\ alices_outbox' = alices_outbox \union {m}
+    /\ network' = network \union {m}
+    /\ UNCHANGED <<bobs_mood, bobs_inbox>>
+
+NetworkLoss == 
+    /\ \E e \in network: network' = network \ {e}
+    /\ UNCHANGED <<bobs_mood, bobs_inbox, alices_outbox>>
+
+NetworkDeliver == 
+    /\ \E e \in network:
+        /\ bobs_inbox' = bobs_inbox \o <<e>> 
+        /\ network' = network \ {e}
+    /\ UNCHANGED <<bobs_mood, alices_outbox>>
+
+BobCheckInbox == 
+    /\ bobs_mood' = IF bobs_inbox = <<"hello", "world">> THEN "happy" ELSE "neutral"
+    /\ UNCHANGED <<network, bobs_inbox, alices_outbox>>
+
+

Pretend we are the model checker and we are currently ‘looking’ at the CurrentState C. We compute all possible NextState’s N, but we only consider a candidate N to be valid if Next is true when evaluated over the pair (C, N). Since Next is the OR’ing of actions, the pair will make Next true if it makes at least one of the actions true.

Inspect the AliceSend(m) action for example.

+
AliceSend(m) == 
+    /\ m \notin alices_outbox
+    /\ alices_outbox' = alices_outbox \union {m}
+    /\ network' = network \union {m}
+    /\ UNCHANGED <<bobs_mood, bobs_inbox>>
+
+

In English the action says this

“I am true when:
my argument m is not in the set alices_outbox in the CurrentState
AND alices_outbox in the NextState is the same as it is in the CurrentState, but with m included
AND network in the NextState is the same as it is in the CurrentState, but with m included
AND bobs_mood doesn’t change between the CurrentState and NextState
AND bobs_inbox doesn’t change between the CurrentState and NextState “

We must include the UNCHANGED keyword - there is no ambiguity in TLA+!

Consider NetworkLoss

+
NetworkLoss == 
+    /\ \E e \in network: network' = network \ {e}
+    /\ UNCHANGED <<bobs_mood, bobs_inbox, alices_outbox>>
+
+

This action is more advanced: it contains the ‘\E’ (there exists) syntax. It says

“I am true when:
There is an element e in the network of the CurrentState, and that element is not in the network of NextState
AND bobs_mood doesn’t change between the CurrentState and NextState
AND … “

Let’s consider how a model checker could select a transition, given a current state where

alices_outbox = {"hello"}
+network = {"hello"}
+\* ignore bobs variables for now
+

knowing that Next is

+
Next ==
+    \/ AliceSend("hello")
+    \/ AliceSend("world")
+    \/ NetworkLoss
+    \* (ignore other operators for now)
+
+

In a pair (CurrentState, NextState) where AliceSend(“world”) was true NextState must look like

alices_outbox = {"hello", "world"}
+network = {"hello", "world"}
+\* ignore bobs variables for now
+

and in one where NetworkLoss was true NextState would look like

alices_outbox = {"hello"}
+network = {}
+\* ignore bobs variables for now
+

Next evaluates to true for both of these pairs, and the model checker will check both possibilities for us.

Understanding Next as a boolean function over pairs of states is key. The Init operator is a special case, it’s a boolean function over one state only. (It’s not a special case if you consider it to be a boolean function over a pair (IgnoredState, InitialState) for a hidden IgnoredState).

We have looked at AliceSend and NetworkLoss. Let’s look at NetworkDeliver and BobCheckInbox.

+
NetworkDeliver == 
+    /\ \E e \in network:
+        /\ bobs_inbox' = bobs_inbox \o <<e>> 
+        /\ network' = network \ {e}
+    /\ UNCHANGED <<bobs_mood, alices_outbox>>
+
+

NetworkDeliver matches transitions where an element e is removed from the network set and added (with the \o operator) to bobs_inbox list.

+
BobCheckInbox == 
+    /\ bobs_mood' = IF bobs_inbox = <<"hello", "world">> THEN "happy" ELSE "neutral"
+    /\ UNCHANGED <<network, bobs_inbox, alices_outbox>>
+
+

As a challenge try to write BobCheckInbox (above) using only the logical operators /\ and \/.

Answer:

+
BobCheckInbox == 
+    /\ \/ /\ bobs_mood' = "happy"
+          /\ bobs_inbox = <<"hello", "world">>
+       \/ /\ bobs_mood' = "neutral"
+          /\ bobs_inbox /= <<"hello", "world">>
+    /\ UNCHANGED <<network, bobs_inbox, alices_outbox>> 
+
+

Checking Invariants

We modeled the state machine so now we can check what properties it has.

We can use a model checker to get sample execution traces beginning from the initial state and leading up to some state satisfying some boolean function. Precisely: we can find an sequence of states (T) starting in the initial state and ending in a state S that makes a boolean function P evaluate to true.

In common terminology the sequence of states T is called a counterexample, and the boolean function is the negation of an Invariant. This means if we want to find an execution T whose final state satisfies P we write an invariant: Inv == ~P and we check that. (We check that Inv always holds: if it doesn’t then there exists a state where ~Inv = ~~P = P holds).

If we want to make sure that no execution exists whose final state satisfies P we write an invariant: Inv == P and we hope that the model checker exhausts its search without finding a trace.

Suppose we want to ensure that every (\A means ‘for all’ in TLA+) message in the network was at some point sent by Alice.

+
NothingUnexpectedInNetwork == \A e \in network: e \in alices_outbox
+
+

NothingUnexpectedInNetwork is a boolean function over a single state. Using the model checker we can check it as an invariant.

We use the following configuration for TLC (hello_world.cfg)

+
INIT Init
+NEXT Next
+
+INVARIANTS
+NothingUnexpectedInNetwork
+
+

We can check this using the VSCode plugin for TLA (through the context menu), or with

java -cp tla2tools.jar tlc2.TLC -config hello_world.cfg -workers auto -cleanup hello_world.tla
+
+# TLC output:
+# ...
+# Model checking completed. No error has been found.
+

TLC should report no error found: this means that NothingUnexpectedInNetwork was also true in every execution.

We may be interested to find an execution where Bob becomes happy. We write the invariant

+
NotBobIsHappy == 
+    LET BobIsHappy == bobs_mood = "happy"
+    IN ~BobIsHappy
+
+

which makes use of the LET keyword, used to define values or operators inline.

We use the .cfg file

+
INIT Init
+NEXT Next
+
+INVARIANTS
+NotBobIsHappy
+
+

We ask TLC to check if ‘always NotBobIsHappy’. If Bob ever becomes happy then it will be false, so TLC will give us a counterexample, or trace, where Bob becomes happy.

TLC should spit out a trace

Error: Invariant NotBobIsHappy is violated.
+Error: The behavior up to this point is:
+State 1: <..>
+/\ network = {}
+/\ alices_outbox = {}
+/\ bobs_inbox = <<>>
+/\ bobs_mood = "neutral"
+
+State 2: <..>
+/\ network = {"hello"}
+/\ alices_outbox = {"hello"}
+/\ bobs_inbox = <<>>
+/\ bobs_mood = "neutral"
+
+State 3: <..>
+/\ network = {"hello", "world"}
+/\ alices_outbox = {"hello", "world"}
+/\ bobs_inbox = <<>>
+/\ bobs_mood = "neutral"
+
+State 4: <..>
+/\ network = {"world"}
+/\ alices_outbox = {"hello", "world"}
+/\ bobs_inbox = <<"hello">>
+/\ bobs_mood = "neutral"
+
+State 5: <..>
+/\ network = {}
+/\ alices_outbox = {"hello", "world"}
+/\ bobs_inbox = <<"hello", "world">>
+/\ bobs_mood = "neutral"
+
+State 6: <..>
+/\ network = {}
+/\ alices_outbox = {"hello", "world"}
+/\ bobs_inbox = <<"hello", "world">>
+/\ bobs_mood = "happy"
+

Notice that bob is happy in state 6.

Wrapping up

This tutorial

  1. How to read and write simple TLA+
  2. How to structure models with the (boilerplate, variables, Init, Next, .cfg) pattern
  3. How to think about transitions in terms of (CurrentState, NextState) pairs
  4. How to use actions to specify transitions in the Next operator
  5. How to generate traces matching behaviors using TLC

That’s it, congratulations :) Try the next tutorial.


diff --git a/docs/tla_basics_tutorials/index.html b/docs/tla_basics_tutorials/index.html new file mode 100644 index 00000000..d44419ed --- /dev/null +++ b/docs/tla_basics_tutorials/index.html @@ -0,0 +1,20 @@ + + + TLA+ Basics Tutorials | Model Based Techniques + Skip to main content Link Menu Expand (external link) Document Search Copy Copied

TLA+

These is our basic set of tutorials for TLA+. Please use the cheatsheet too!


Table of contents


diff --git a/docs/tla_basics_tutorials/models/erc20/ERC20.tla b/docs/tla_basics_tutorials/models/erc20/ERC20.tla new file mode 100644 index 00000000..51e4e395 --- /dev/null +++ b/docs/tla_basics_tutorials/models/erc20/ERC20.tla @@ -0,0 +1,256 @@ +----------------------------- MODULE ERC20 ------------------------------------ +(* + * Modeling ERC20 tokens of Ethereum and the Approve-TransferFrom Attack: + * + * EIP-20: https://eips.ethereum.org/EIPS/eip-20 + * + * Attack scenario: + * https://docs.google.com/document/d/1YLPtQxZu1UAvO9cZ1O2RPXBbT0mooh4DYKjA_jp-RLM/edit# + * + * This TLA+ specification is designed for model checking with Apalache. + * We do not model 256-bit integers here, as we are not interested in overflows. + * + * Igor Konnov, 2021 + *) +EXTENDS Integers, Apalache, typedefs + +VARIABLES + \* + \* Token balance for every account. This is exactly as `balanceOf` in ERC20. + \* @type: ADDR -> Int; + balanceOf, + \* + \* Allowance to transfer tokens + \* from owner (1st element) by spender (2nd element). + \* This is exactly as `allowance` of ERC20. + \* @type: <> -> Int; + allowance, + \* + \* Pending transactions to be executed against the contract. + \* Note that we have a set of transactions instead of a sequence, + \* as the order of transactions on Ethereum is not predefined. + \* To make it possible to submit two 'equal' transactions, + \* we introduce a unique transaction id. + \* @type: Set(TX); + pendingTransactions, + \* + \* The last executed transaction. + \* @type: TX; + lastTx, + \* + \* A serial number to assign unique ids to transactions + \* @type: Int; + nextTxId + +\* @type: () => Set(ADDR); +ADDRESSES == { "addr1", "addr2", "addr3" } + +Init == + \* every address has a non-negative number of tokens + /\ balanceOf \in [ADDRESSES -> Nat] + \* no account is allowed to withdraw from another account + /\ allowance = [ pair \in ADDRESSES \X ADDRESSES |-> 0 ] + \* no pending transactions + /\ pendingTransactions = {} + /\ nextTxId = 0 + /\ lastTx = [ id |-> 0, tag |-> "None", fail |-> FALSE ] + +(* +Submit a transaction to the pendingTransactions pool. +*) +SubmitTx(tx) == + /\ pendingTransactions' = pendingTransactions \union { tx } + /\ lastTx' = [ id |-> 0, tag |-> "None", fail |-> FALSE ] + /\ nextTxId' = nextTxId + 1 + /\ UNCHANGED <> + +(* EIP-20: +The following action submits a transaction to the blockchain. + +Transfers _value amount of tokens to address _toAddr, and MUST fire the Transfer +event. The function SHOULD throw if the message caller’s account balance does +not have enough tokens to spend. + +Note Transfers of 0 values MUST be treated as normal transfers and fire the +Transfer event. +*) +SubmitTransfer(_sender, _toAddr, _value) == + SubmitTx([ + id |-> nextTxId, + tag |-> "transfer", + fail |-> FALSE, + sender |-> _sender, + toAddr |-> _toAddr, + value |-> _value + ]) + +(* EIP-20: +Transfers _value amount of tokens from address _fromAddr to address _toAddr, and +MUST fire the Transfer event. + +The transferFrom method is used for a withdraw workflow, allowing contracts to +transfer tokens on your behalf. This can be used for example to allow a +contract to transfer tokens on your behalf and/or to charge fees in +sub-currencies. The function SHOULD throw unless the _fromAddr account has +deliberately authorized the sender of the message via some mechanism. + +Note Transfers of 0 values MUST be treated as normal transfers and fire the +Transfer event. +*) +SubmitTransferFrom(_sender, _fromAddr, _toAddr, _value) == + SubmitTx([ + id |-> nextTxId, + tag |-> "transferFrom", + fail |-> FALSE, + sender |-> _sender, + fromAddr |-> _fromAddr, + toAddr |-> _toAddr, + value |-> _value + ]) + +(* EIP-20: +Allows _spender to withdraw from your account multiple times, up to the _value +amount. If this function is called again it overwrites the current allowance +with _value. +*) +SubmitApprove(_sender, _spender, _value) == + SubmitTx([ + id |-> nextTxId, + tag |-> "approve", + fail |-> FALSE, + sender |-> _sender, + spender |-> _spender, + value |-> _value + ]) + +(* + Process a Transfer transaction that was submitted with SubmitTransfer. + *) +ProcessTransfer(tx) == + /\ pendingTransactions' = pendingTransactions \ { tx } + /\ UNCHANGED <> + /\ LET fail == + \/ tx.value < 0 + \/ tx.value > balanceOf[tx.sender] + \/ tx.sender = tx.toAddr + IN + /\ lastTx' = [ tx EXCEPT !.fail = fail ] + /\ IF fail + THEN UNCHANGED balanceOf + ELSE + \* transaction succeeds + \* update the balances of the 'sender' and 'toAddr' addresses + balanceOf' = [ + balanceOf EXCEPT + ![tx.sender] = @ - tx.value, + ![tx.toAddr] = @ + tx.value + ] + +(* + Process a TranferFrom transaction that was submitted with SubmitTransferFrom. + *) +ProcessTransferFrom(tx) == + /\ pendingTransactions' = pendingTransactions \ { tx } + /\ UNCHANGED nextTxId + /\ LET fail == + \/ tx.value < 0 + \/ tx.value > balanceOf[tx.fromAddr] + \/ tx.value > allowance[tx.fromAddr, tx.sender] + \/ tx.fromAddr = tx.toAddr + IN + /\ lastTx' = [ tx EXCEPT !.fail = fail ] + /\ IF fail + THEN UNCHANGED <> + ELSE + \* transaction succeeds + \* update the balances of the 'fromAddr' and 'toAddr' addresses + /\ balanceOf' = [ + balanceOf EXCEPT + ![tx.fromAddr] = @ - tx.value, + ![tx.toAddr] = @ + tx.value + ] + \* decrease the allowance for the sender + /\ allowance' = [ + allowance EXCEPT + ![tx.fromAddr, tx.sender] = @ - tx.value + ] + +\* Process an Approve transaction that was submitted with SubmitApprove. +ProcessApprove(tx) == + /\ pendingTransactions' = pendingTransactions \ { tx } + /\ UNCHANGED <> + /\ LET fail == tx.value < 0 \/ tx.sender = tx.spender IN + /\ lastTx' = [ tx EXCEPT !.fail = fail ] + /\ IF fail + THEN UNCHANGED allowance + ELSE + \* transaction succeeds + \* set the allowance for the pair <> to value + allowance' = [ + allowance EXCEPT + ![tx.sender, tx.spender] = tx.value + ] + +Next == + \/ \E sender, toAddr \in ADDRESSES, value \in Int: + SubmitTransfer(sender, toAddr, value) + \/ \E sender, fromAddr, toAddr \in ADDRESSES, value \in Int: + SubmitTransferFrom(sender, fromAddr, toAddr, value) + \/ \E sender, spender \in ADDRESSES, value \in Int: + SubmitApprove(sender, spender, value) + \/ \E tx \in pendingTransactions: + \/ /\ tx.tag = "transfer" + /\ ProcessTransfer(tx) + \/ /\ tx.tag = "transferFrom" + /\ ProcessTransferFrom(tx) + \/ /\ tx.tag = "approve" + /\ ProcessApprove(tx) + +(* Expected properties *) + +\* A trace invariant: For every pair <>, the sum of transfers +\* via TransferFrom is no greater than the maximum allowance. +\* It is quite hard to formulate this property, as there are scenarios, +\* where this behavior is actually expected. +\* In pure TLA+, we would have to write a temporal property. +\* In Apalache, we are just writing a trace invariant. +\* +\* This property is known to be violated: +\* https://docs.google.com/document/d/1YLPtQxZu1UAvO9cZ1O2RPXBbT0mooh4DYKjA_jp-RLM/edit# +\* +\* @type: Seq(STATE) => Bool; +AllFundTransfersHaveSufficientApproval(trace) == + \A spender, fromAddr \in ADDRESSES: + LET TransferIndices == { + i \in DOMAIN trace: + LET tx == trace[i].lastTx IN + /\ tx.tag = "transferFrom" + /\ ~tx.fail + /\ tx.fromAddr = fromAddr + /\ tx.sender = spender + /\ 0 < tx.value + } + IN + \* the sum of all transfers from 'fromAddr' to 'toAddr' + LET SumOfTransfers == + LET Add(sum, i) == sum + trace[i].lastTx.value IN + FoldSet(Add, 0, TransferIndices) + IN + \* there exists an approval for the whole transfer sum + LET ExistsApprovalForSumInPast == + \E i \in DOMAIN trace: + LET approval_tx == trace[i].lastTx IN + /\ approval_tx.tag = "approve" + /\ spender = approval_tx.spender + /\ fromAddr = approval_tx.sender + + \* all transfers are made after the approval + /\ \A j \in TransferIndices: i < j + /\ ~approval_tx.fail + \* the sender of this transaction is allowing the spender + \* to spend at most the sum of the made transfers. + /\ SumOfTransfers <= approval_tx.value + IN + SumOfTransfers <= 0 \/ ExistsApprovalForSumInPast + +=============================================================================== diff --git a/docs/tla_basics_tutorials/models/erc20/erc20-steps.md b/docs/tla_basics_tutorials/models/erc20/erc20-steps.md new file mode 100644 index 00000000..469f8ea9 --- /dev/null +++ b/docs/tla_basics_tutorials/models/erc20/erc20-steps.md @@ -0,0 +1,19 @@ +# Typing the specification and checking it + +## Inspecting a complete spec + +1. Read [EIP-20](https://eips.ethereum.org/EIPS/eip-20) + and try to figure how it is working. +1. Read the description of the + [attack scenario on EIP-20](https://docs.google.com/document/d/1YLPtQxZu1UAvO9cZ1O2RPXBbT0mooh4DYKjA_jp-RLM/) +1. Open [ERC20.tla](../examples/erc20-approve-attack/ERC20.tla) + and [MC_ERC20.tla](../examples/erc20-approve-attack/MC_ERC20.tla). +1. Check the trace invariant `NoTransferAboveApproved`: + + ```sh + $ apalache-mc check --inv=NoTransferAboveApproved MC_ERC20.tla + ``` +1. The tool reports an invariant violation. +1. Open the counterexample and see, + whether it matches the above attack scenario. + diff --git a/docs/tla_basics_tutorials/models/erc20/typedefs.tla b/docs/tla_basics_tutorials/models/erc20/typedefs.tla new file mode 100644 index 00000000..92010509 --- /dev/null +++ b/docs/tla_basics_tutorials/models/erc20/typedefs.tla @@ -0,0 +1,32 @@ +------------------------ MODULE typedefs -------------------------------- +(* + Type definitions for the module ERC20. + + An account address, in our case, simply an uninterpreted string: + @typeAlias: ADDR = Str; + + A transaction (a la discriminated union but all fields are packed together): + @typeAlias: TX = [ + tag: Str, + id: Int, + fail: Bool, + sender: ADDR, + spender: ADDR, + fromAddr: ADDR, + toAddr: ADDR, + value: Int + ]; + + A state of the state machine: + @typeAlias: STATE = [ + balanceOf: ADDR -> Int, + allowance: <> -> Int, + pendingTransactions: Set(TX), + lastTx: TX, + nextTxId: Int + ]; + + Below is a dummy definition to introduce the above type aliases. + *) +ERC20_typedefs == TRUE +=============================================================================== diff --git a/docs/tla_basics_tutorials/models/hello_world/hello_world.cfg b/docs/tla_basics_tutorials/models/hello_world/hello_world.cfg new file mode 100644 index 00000000..6a20720a --- /dev/null +++ b/docs/tla_basics_tutorials/models/hello_world/hello_world.cfg @@ -0,0 +1,5 @@ +INIT Init +NEXT Next + +INVARIANTS +NotBobIsHappy diff --git a/docs/tla_basics_tutorials/models/hello_world/hello_world.tla b/docs/tla_basics_tutorials/models/hello_world/hello_world.tla new file mode 100644 index 00000000..2bd7a744 --- /dev/null +++ b/docs/tla_basics_tutorials/models/hello_world/hello_world.tla @@ -0,0 +1,50 @@ +---- MODULE hello_world ---- + +EXTENDS Sequences \* Import Sequences module from the standard library + +VARIABLES + alices_outbox, + network, + bobs_mood, + bobs_inbox + +Init == + /\ alices_outbox = {} \* Alice's memory of what she sent is the empty set + /\ network = {} \* AND so is the network + /\ bobs_mood = "neutral" \* AND Bob's mood is neutral + /\ bobs_inbox = <<>> \* AND Bob'b inbox is an empty Sequence (list) + +AliceSend(m) == + /\ m \notin alices_outbox + /\ alices_outbox' = alices_outbox \union {m} + /\ network' = network \union {m} + /\ UNCHANGED <> + +NetworkLoss == + /\ \E e \in network: network' = network \ {e} + /\ UNCHANGED <> + +NetworkDeliver == + /\ \E e \in network: + /\ bobs_inbox' = bobs_inbox \o <> + /\ network' = network \ {e} + /\ UNCHANGED <> + +BobCheckInbox == + /\ bobs_mood' = IF bobs_inbox = <<"hello", "world">> THEN "happy" ELSE "neutral" + /\ UNCHANGED <> + +Next == + \/ AliceSend("hello") + \/ AliceSend("world") + \/ NetworkLoss + \/ NetworkDeliver + \/ BobCheckInbox + +NothingUnexpectedInNetwork == \A e \in network: e \in alices_outbox + +NotBobIsHappy == + LET BobIsHappy == bobs_mood = "happy" + IN ~BobIsHappy + +==== \ No newline at end of file diff --git a/docs/tla_basics_tutorials/models/hello_world_typed/hello_world_typed.cfg b/docs/tla_basics_tutorials/models/hello_world_typed/hello_world_typed.cfg new file mode 100644 index 00000000..ed962b24 --- /dev/null +++ b/docs/tla_basics_tutorials/models/hello_world_typed/hello_world_typed.cfg @@ -0,0 +1,5 @@ +INIT Init +NEXT Next + +INVARIANTS +NotBobIsHappy \ No newline at end of file diff --git a/docs/tla_basics_tutorials/models/hello_world_typed/hello_world_typed.tla b/docs/tla_basics_tutorials/models/hello_world_typed/hello_world_typed.tla new file mode 100644 index 00000000..458edef3 --- /dev/null +++ b/docs/tla_basics_tutorials/models/hello_world_typed/hello_world_typed.tla @@ -0,0 +1,62 @@ +---- MODULE hello_world_typed ---- + +EXTENDS Sequences \* Import Sequences module from the standard library + +VARIABLES + \* @type: Set(Str); + alices_outbox, + \* @type: Set(Str); + network, + \* @type: Str; + bobs_mood, + \* @type: Seq(Str); + bobs_inbox + +\* @type: () => Bool; +Init == + /\ alices_outbox = {} \* Alice's memory of what she sent is the empty set + /\ network = {} \* AND so is the network + /\ bobs_mood = "neutral" \* AND Bob's mood is neutral + /\ bobs_inbox = <<>> \* AND Bob'b inbox is an empty Sequence (list) + +\* @type: (Str) => Bool; +AliceSend(m) == + /\ m \notin alices_outbox + /\ alices_outbox' = alices_outbox \union {m} + /\ network' = network \union {m} + /\ UNCHANGED <> + +\* @type: () => Bool; +NetworkLoss == + /\ \E e \in network: network' = network \ {e} + /\ UNCHANGED <> + +\* @type: () => Bool; +NetworkDeliver == + /\ \E e \in network: + /\ bobs_inbox' = bobs_inbox \o <> + /\ network' = network \ {e} + /\ UNCHANGED <> + +\* @type: () => Bool; +BobCheckInbox == + /\ bobs_mood' = IF bobs_inbox = <<"hello", "world">> THEN "happy" ELSE "neutral" + /\ UNCHANGED <> + +\* @type: () => Bool; +Next == + \/ AliceSend("hello") + \/ AliceSend("world") + \/ NetworkLoss + \/ NetworkDeliver + \/ BobCheckInbox + +\* @type: () => Bool; +NothingUnexpectedInNetwork == \A e \in network: e \in alices_outbox + +\* @type: () => Bool; +NotBobIsHappy == + LET BobIsHappy == bobs_mood = "happy" + IN ~BobIsHappy + +==== \ No newline at end of file diff --git a/docs/tla_basics_tutorials/models/multiple_traces/multiple_traces.tla b/docs/tla_basics_tutorials/models/multiple_traces/multiple_traces.tla new file mode 100644 index 00000000..a0e738d7 --- /dev/null +++ b/docs/tla_basics_tutorials/models/multiple_traces/multiple_traces.tla @@ -0,0 +1,43 @@ +---- MODULE multiple_traces ---- + +EXTENDS Integers, Sequences, Apalache, typedefs + +VARIABLES + \* @type: Str; + auxiliary_str, + \* @type: Int; + important_int + +Init == + /\ auxiliary_str = "foo" + /\ important_int = 0 + +ChangeAuxiliaryStr == + /\ auxiliary_str' \in {"foo", "bar", "wiz"} + /\ UNCHANGED important_int + +AddToImportantInt == + /\ UNCHANGED auxiliary_str + /\ \E x \in 1..4 : important_int' = important_int + x + +Next == + \/ ChangeAuxiliaryStr + \/ AddToImportantInt + +\* @type: () => Bool; +ImportantIntIs6 == + LET Behavior == important_int = 6 + IN ~Behavior + +\* @type: Seq(STATE) => Bool; +ImportantIntIsOddUntil6(trace) == + LET Behavior == + /\ trace[Len(trace)].important_int = 6 + /\ \A i \in DOMAIN trace : + \/ (i = 1 \/ i = Len(trace)) + \/ trace[i].important_int % 2 = 1 + IN ~Behavior + +View == important_int + +==== \ No newline at end of file diff --git a/docs/tla_basics_tutorials/models/multiple_traces/typedefs.tla b/docs/tla_basics_tutorials/models/multiple_traces/typedefs.tla new file mode 100644 index 00000000..1f081afe --- /dev/null +++ b/docs/tla_basics_tutorials/models/multiple_traces/typedefs.tla @@ -0,0 +1,11 @@ +------------------------ MODULE typedefs -------------------------------- + +(* + @typeAlias: STATE = [ + auxiliary_str : Str, + important_int : Int + ]; +*) + +include_typedefs == TRUE +=============================================================================== diff --git a/docs/tla_basics_tutorials/tla+cheatsheet.html b/docs/tla_basics_tutorials/tla+cheatsheet.html new file mode 100644 index 00000000..7769be02 --- /dev/null +++ b/docs/tla_basics_tutorials/tla+cheatsheet.html @@ -0,0 +1,196 @@ + + + TLA+ cheat sheet | Model Based Techniques + Skip to main content Link Menu Expand (external link) Document Search Copy Copied

TLA+ Cheatsheet

TLA+ Quick Start - contains enough to model almost anything

+
(* Comments *)
+
+(* This is 
+   multiline comment *)
+\* This is single line comment
+
+(* Module structure *)
+
+---- MODULE <module> ----   \* Starts TLA+ module (should be in file <module>.tla)
+====                        \* Ends TLA+ module (everything after that is ignored)
+
+EXTENDS <module>            \* EXTEND (import) another TLA+ module
+VARIABLES x, y, ...         \* declares variables x, y, ...
+CONSTANTS x, y, ...         \* declares constants x, y, ... (should be defined in configuration)
+
+Name == e                   \* defines operator Name without parameters, and with expression e as a body
+Name(x, y, ...) == e        \* defines operator Name with parameters x, y, ..., and body e (may refer to x, y, ...)
+
+(* Boolean logic *)
+
+BOOLEAN                     \* the set of all booleans (same as {TRUE, FALSE})
+TRUE                        \* Boolean true
+FALSE                       \* Boolean false
+~x                          \* not x; negation
+x /\ y                      \* x and y; conjunction (can be also put at line start, in multi-line conjunctions)
+x \/ y                      \* x or y; disjunction (can be also put at line start, in multi-line disjunctions)
+x = y                       \* x equals y
+x /= y                      \* x not equals y
+x => y                      \* implication: y is true whenever x is true
+x <=> y                     \* equivalence: x is true if and only if y is true
+
+(* Integers *)              \* EXTENDS Integers (should extend standard module Integers)
+
+Int                         \* the set of all integers (an infinite set)
+1, -2, 1234567890           \* integer literals; integers are unbounded
+a..b                        \* integer range: all integers between a and b inclusive
+x + y, x - y, x * y         \* integer addition, subtraction, multiplication
+x < y, x <= y               \* less than, less than or equal
+x > y, x >= y               \* greater than, greater than or equal
+
+(* Strings *)               
+
+STRING                      \* the set of all finite strings (an infinite set)
+"", "a", "hello, world"     \* string literals (can be compared for equality; otherwise uninterpreted)
+
+(* Finite sets *)           \* EXTENDS FiniteSets (should extend standard module FiniteSets)
+
+{a, b, c}                   \* set constructor: the set containing a, b, c
+Cardinality(S)              \* number of elements in set S
+x \in S                     \* x belongs to set S
+x \notin S                  \* x does not belong to set S
+S \subseteq T               \* is set S a subset of set T? true of all elements of S belong to T
+S \union T                  \* union of sets S and T: all x belonging to S or T
+S \intersect T              \* intersection of sets S and T: all x belonging to S and T
+S \ T                       \* set difference, S less T: all x belonging to S but not T
+{x \in S: P(x)}             \* set filter: selects all elements x in S such that P(x) is true
+{e: x \in S}                \* set map: maps all elements x in set S to expression e (which may contain x)
+
+(* Functions *) 
+
+[x \in S |-> e]             \* function constructor: maps all keys x from set S to expression e (may refer to x) 
+f[x]                        \* function application: the value of function f at key x
+DOMAIN f                    \* function domain: the set of keys of function f
+[f EXCEPT ![x] = e]         \* function f with key x remapped to expression e (may reference @, the original f[x])
+[f EXCEPT ![x] = e1,        \* function f with multiple keys remapped: 
+          ![y] = e2, ...]   \*   x to e1 (@ in e1 will be equal to f[x]), y to e2 (@ in e2 will be equal to f[y])
+[S -> T]                    \* function set constructor: set of all functions with keys from S and values from T
+
+(* Records *)
+
+[x |-> e1, y |-> e2, ...]   \* record constructor: a record which field x equals to e1, field y equals to e2, ... 
+r.x                         \* record field access: the value of field x of record r
+[r EXCEPT !.x = e]          \* record r with field x remapped to expression e (may reference @, the original r.x)
+[r EXCEPT !.x = e1,         \* record r with multiple fields remapped: 
+          !.y = e2, ...]    \*   x to e1 (@ in e1 is equal to r.x), y to e2 (@ in e2 is equal to r.y)
+[x: S, y: T, ...]           \* record set constructor: set of all records with field x from S, field y from T, ...
+
+(* Sequences *)             \* EXTENDS Sequences (should extend standard module Sequences)
+
+<<a, b, c>>                 \* sequence constructor: a sequence containing elements a, b, c
+s[i]                        \* the ith element of the sequence s (1-indexed!)
+s \o t                      \* the sequences s and t concatenated
+Len(s)                      \* the length of sequence s
+Append(s, x)                \* the sequence s with x added to the end
+Head(s)                     \* the first element of sequence s
+
+(* Tuples *)
+
+<<a, b, c>>                 \* tuple constructor: a tuple of a,b,c (yes! the <<>> constructor is overloaded)
+                            \* - sequence elements should be same type; tuple elements may have different types
+t[i]                        \* the ith element of the tuple t (1-indexed!)
+S \X T                      \* Cartesian product: set of all tuples <<x, y>>, where x is from S, y is from T
+
+(* Quantifiers *)
+
+\A x \in S: e               \* for all elements x in set S it holds that expression e is true
+\E x \in S: e               \* there exists an element x in set S such that expression e is true
+
+(* State changes *)
+
+x', y'                      \* a primed variable (suffixed with ') denotes variable value in the next state 
+UNCHANGED <<x,y>>           \* variables x, y are unchanged in the next state (same as x'=x /\ y'=y)
+
+(* Control structures *)
+
+LET x == e1 IN e2           \* introduces a local definition: every occurrence of x in e2 is replaced with e1
+IF P THEN e1 ELSE e2        \* if P is true, then e1 should be true; otherwise e2 should be true
+
+
+

Apalache

# Running apalache
+
+# A handy alias for calling Apalache
+alias apalache="java -jar apalache-pkg-0.17.5-full.jar --nworkers=8"
+
+# Typecheck
+apalache typecheck <.tla file>
+
+# Model check assuming a .cfg file with the same name as the .tla file is present
+apalache check <.tla file>
+
+# Model check assuming with a specific .cfg file
+apalache check --config=<.cfg file> <.tla file>
+
+# Model check an invariant Foo 
+apalache check --inv=Foo <.tla file>
+
+# Generate multiple (up to n) traces for invariant Foo
+apalache check --view=<View Operator Name> --max-error=n --inv=Foo <.tla file>
+
+
(* Writing models with Apalache *)
+
+EXTENDS Apalache       \* Import https://github.com/informalsystems/apalache/blob/unstable/src/tla/Apalache.tla
+
+\* Makes Apalache understand that a function with keys in 1.maxSeqLen can be treated as a Sequence
+FunAsSeq(fn, maxSeqLen) == SubSeq(fn, 1, maxSeqLen)
+
+(*
+Equivalent to the pseudocode:
+
+x = initialValue
+for element in arbitrary_ordering(S):
+   x = CombinerFun(x, element)
+return x
+
+*)
+FoldSet(CombinerFun, initialValue, S) \* For a set S
+
+(*
+Equivalent to the pseudocode:
+
+x = initialValue
+for element in sequential_ordering(S):
+   x = CombinerFun(x, element)
+return x
+
+*)
+FoldSeq(CombinerFun, initialValue, S) \* For a sequence S
+
+
+

TLC

# Running TLC
+
+# A handy alias providing the JVM with 12GB of RAM (adjust accordingly) and using multiple threads
+alias tlc="java -XX:+UseParallelGC -Xmx12g -cp tla2tools.jar tlc2.TLC -workers auto" 
+
+# Model check with TLC
+tlc -config <.config file> <.tla file> 
+
+# Run TLC in simulation mode
+tlc -config <.config file> -simulate <.tla file>
+

F.A.Q.

1. Does whitespace matter in TLA+?

Yes whitespace matters when AND’ing (/\), OR’ing (\/)

+
Foo == /\ x
+       /\ \/ y
+          \/ z
+
+

means

Foo == x and ( y or z)
+

Indentation defines precedence and must be tab or space aligned. The parser should complain if it not aligned.

2. …. coming soon.


diff --git a/docs/tla_basics_tutorials/tutorial.html b/docs/tla_basics_tutorials/tutorial.html new file mode 100644 index 00000000..0e691dee --- /dev/null +++ b/docs/tla_basics_tutorials/tutorial.html @@ -0,0 +1,28 @@ + + + Overview | Model Based Techniques + Skip to main content Link Menu Expand (external link) Document Search Copy Copied

TLA+ Basics Tutorial

This is a straightforward introduction to TLA+. By the end you should be able to write your own models of distributed systems and concurrent algorithms. You should also be able to check properties of the models, and generate execution traces which can be used in automatic testing pipelines. The target audience is software engineers who are fluent in a mainstream programming language and understand computer science.

This document contains prose. The cheatsheet is useful as a reference.

TLA+ capabilities

TLA+ is a language for writing models of distributed systems and concurrent algorithms. It doesn’t execute on your machine like a typical programming language: you run it through a model checker. A model checker is a program that explores all possible executions of a system. You can specify properties and behaviors, and the model checker will tell you if they hold or not. The model checker can also give you examples of behaviors.

TLA+ has been used to model a wide variety of things including locks and allocators in the linux kernel, the Docker SwarmKit container orchestrator, Paxos consensus, the Raft replicated state machine and more.

All TLA+ models are structured as a state machine. You specify an initial state and a collection of transitions. Additionally you can specify boolean functions (invariants) over the state. The model checker will check for boolean function violations.

To give examples: you could model a concurrent garbage collector algorithm and check that no memory leak is possible. You could also model the API for a financial transfers system, and check that it is not possible to steal funds.

Getting set up

For these tutorials we require the TLC and Apalache model checkers.

TLC can be downloaded with

tlaurl=https://github.com/tlaplus/tlaplus/releases/download/v1.7.1/tla2tools.jar;
+curl -LO $tlaurl;
+

Apalache can be downloaded with

apalacheurl=https://github.com/informalsystems/apalache/releases/download/v0.17.5/apalache-v0.17.5.zip;
+curl -LO $apalacheurl;
+

You will need to unzip Apalache and move the jar from mod-distribution/target/apalache-pkg-0.17.5-full.jar to your working directory.

We recommend using the Visual Studio Code TLA+ extension to work on your models. It provides syntax highlighting, parsing and model checking through TLC. Model checking, parsing and other features are accessed through the VSCode context menu (cmd + shift + p on OSX).

There are more resources that we won’t in this set of tutorials but that might be useful to know about. Please see The TLA+ ecosystem.

The .tla and other files referenced in these tutorials are included here.

Let’s get started

We have 5 mini tutorials giving you increasing power.

  1. ‘Hello world’ using TLC
  2. Typechecking your models
  3. Apalache vs TLC
  4. Finding an Ethereum exploit using Apalache
  5. Generating traces for automated testing using Apalache

That’s it for the basic tutorials; congratulations!

These tutorials make up the basics of using TLA+, please see advanced tutorials!

Footnote: what the tutorials do not include

TLA+ and its tools includes many features. We ignored the following in these basic tutorials

  1. Formal proof using TLAPS +
  2. +Inductive invariants using Apalache
  3. Verifying temporal (liveness) properties [1, 2]
  4. TLC’s symmetry sets and model values +
  5. Apalache’s uninterpreted types +

These features are useful in some circumstances. We may add sections in the future.


diff --git a/docs/tla_basics_tutorials/typechecking.html b/docs/tla_basics_tutorials/typechecking.html new file mode 100644 index 00000000..1b33262b --- /dev/null +++ b/docs/tla_basics_tutorials/typechecking.html @@ -0,0 +1,49 @@ + + + Typechecking | Model Based Techniques + Skip to main content Link Menu Expand (external link) Document Search Copy Copied

Typechecking

The .tla and other referenced files are included here.

As a model grows it becomes difficult to ensure that the TLA+ code in the models is doing what you think it is. There are techniques to help ensure there are no bugs in your model. The best way to make sure your model is high quality is to use types and the Apalache type checker.

Apalache comes with a type checker. The docs contain all the details. In this tutorial we will type the model of Alice and Bob’s interactions in hello_world.tla. We will use a subset of the built in types. The full list of builtin types can be found here.

Typechecking

Our model of Alice and Bob’s interaction is simple: the state variables are simple data structures.

We should type the variables with a particular data structure.

+
VARIABLES
+    \* @type: Set(Str);
+    alices_outbox,
+    \* @type: Set(Str);
+    network,
+    \* @type: Str;
+    bobs_mood,
+    \* @type: Seq(Str);
+    bobs_inbox
+
+

The Apalache type system works by annotating lines of code with special TLA+ comments

\* @type: ...
+

We have specified that

  1. +alices_outbox is a set of strings
  2. +network is a set of strings
  3. +bobs_mood is a string
  4. +bobs_inbox is a sequence of strings

We can also specify the type of operators. For example we can annotate AliceSend(m)

+
\* @type: (Str) => Bool;
+AliceSend(m) == 
+    /\ m \notin alices_outbox
+    /\ alices_outbox' = alices_outbox \union {m}
+    /\ network' = network \union {m}
+    /\ UNCHANGED <<bobs_mood, bobs_inbox>
+
+

The annotation says that AliceSend is an operator taking strings and returning booleans. (Note that very often the typechecker can infer annotations for operators automatically. It is able to do so for the operator AliceSend, too. You can try typechecking with the manual annotation left out.)

Finally we can typecheck the model

java -jar apalache-pkg-0.17.5-full.jar typecheck hello_world_typed.tla
+
+# Apalache output:
+# ...
+# Type checker [OK]
+

diff --git a/favicon.ico b/favicon.ico new file mode 100644 index 00000000..6d4497fe Binary files /dev/null and b/favicon.ico differ diff --git a/index.html b/index.html new file mode 100644 index 00000000..620ad9fc --- /dev/null +++ b/index.html @@ -0,0 +1,24 @@ + + + Model Based Techniques | Part of Informal Systems + Skip to main content Link Menu Expand (external link) Document Search Copy Copied

Model Based Techniques for Software Correctness

Building a model of our software gives us a couple of elegant and efficient ways to increase confidence in its correctness. Modeling languages (such as TLA+ and Quint) are supported by model checkers, which enable us to reason about the model’s properties. We can specify desired properties and verify that the model satisfies them. We can also generate a large number of tests directly from the model and run them against the implementation.

A model can be written even before the development starts. This enables finding problems early on, in the development phase.

Besides being a tool for finding difficult-to-spot problems, models serve as high-level yet precise and executable specifications.

Model Based Techniques @ Informal Systems

At Informal Systems, we use model-based techniques both in our development practice and as a part of our security audit services. We develop and maintain the following tools that make model-based techniques easy to incorporate into the development and auditing practice:

  • +Quint, a modern modeling language
  • +Apalache, a symbolic model checker
  • +Modelator, a tool that enables automatic generation of tests from models
  • +cosmwasm-to-quint, a tool for generating Quint model stubs and accompanying tests directly from CosmWasm contracts

Table of contents