diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/README.md b/README.md deleted file mode 100644 index 1dc6372..0000000 --- a/README.md +++ /dev/null @@ -1 +0,0 @@ -# docs \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000..151e4c0 --- /dev/null +++ b/index.html @@ -0,0 +1,8 @@ + + + + + +Redirect Notice +

Redirect Notice

+

The page you requested has been relocated to v3/index.html.

diff --git a/v1/LICENSE b/v1/LICENSE new file mode 100644 index 0000000..7d510d0 --- /dev/null +++ b/v1/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 just-the-docs + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/v1/README.md b/v1/README.md new file mode 100644 index 0000000..8057e97 --- /dev/null +++ b/v1/README.md @@ -0,0 +1,30 @@ +# [Ontimize Boot v1.X.X - Documentation](https://ontimize.github.io/docs/v1) + +## ✍ Use + +### v1.X.X documentation: + +- [Check this link](https://ontimize.github.io/docs/v1/index.html) + +### v1.X.X-develop documentation: + +- Download this branch: https://github.com/ontimize/docs/tree/1.x.x-develop + + > **IMPORTANT** + > If this is the first time you are working with this documentation, run this command before continue. + > + > ``` + > bundle install + > ``` + > + > This will install the necessary Ruby gems. Please, if the installation modifies your **_Gemfile.lock_** file, **DO NOT UPLOAD IT**. + +- Run the following command to launch a local Jekyll server and check the documentation + + ``` + bundle exec jekyll serve --config _config.yml,_config.deploy.yml + ``` + +### Deploy v1.X.X documentation: + +- Upload all the changes you want to deploy in version 1.x.x to the 1.x.x-develop branch. Make a pull request from version 1.x.x-develop to version 1.x.x and merge it. diff --git a/v1/assets/css/just-the-docs-dark.css b/v1/assets/css/just-the-docs-dark.css new file mode 100644 index 0000000..d5378c9 --- /dev/null +++ b/v1/assets/css/just-the-docs-dark.css @@ -0,0 +1,10486 @@ +@charset "UTF-8"; +.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) { + .main { + position: relative; + max-width: 50rem; + margin-left: 15.5rem; + } +} +@media (min-width: 66.5rem) { + .main { + margin-left: max( + 16.5rem, + calc((100% - 66.5rem) / 2 + 16.5rem) + ); + } +} + +.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; + display: none; + background-color: #27262b; +} +@media (min-width: 50rem) { + .main-header { + display: flex; + justify-content: space-between; + height: 3.75rem; + background-color: #27262b; + border-bottom: 1px solid #44434d; + } +} +.main-header.nav-open { + display: block; +} +@media (min-width: 50rem) { + .main-header.nav-open { + display: flex; + } +} + +.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-logo { + width: 100%; + height: 100%; + background-image: url("/docs/v1/assets/icons/logo-ontimize-blanco.png"); + background-repeat: no-repeat; + background-position: left center; + background-size: contain; +} + +.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; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-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; + } +} +@media (min-width: 800px) { + .m-home-header-0 { + margin: 0 !important; + } + .mt-home-header-0 { + margin-top: 0 !important; + } + .mr-home-header-0 { + margin-right: 0 !important; + } + .mb-home-header-0 { + margin-bottom: 0 !important; + } + .ml-home-header-0 { + margin-left: 0 !important; + } + .mx-home-header-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .my-home-header-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .mxn-home-header-0 { + margin-right: -0 !important; + margin-left: -0 !important; + } +} +@media (min-width: 800px) { + .m-home-header-1 { + margin: 0.25rem !important; + } + .mt-home-header-1 { + margin-top: 0.25rem !important; + } + .mr-home-header-1 { + margin-right: 0.25rem !important; + } + .mb-home-header-1 { + margin-bottom: 0.25rem !important; + } + .ml-home-header-1 { + margin-left: 0.25rem !important; + } + .mx-home-header-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .my-home-header-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .mxn-home-header-1 { + margin-right: -0.25rem !important; + margin-left: -0.25rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-2 { + margin: 0.5rem !important; + } + .mt-home-header-2 { + margin-top: 0.5rem !important; + } + .mr-home-header-2 { + margin-right: 0.5rem !important; + } + .mb-home-header-2 { + margin-bottom: 0.5rem !important; + } + .ml-home-header-2 { + margin-left: 0.5rem !important; + } + .mx-home-header-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .my-home-header-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .mxn-home-header-2 { + margin-right: -0.5rem !important; + margin-left: -0.5rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-3 { + margin: 0.75rem !important; + } + .mt-home-header-3 { + margin-top: 0.75rem !important; + } + .mr-home-header-3 { + margin-right: 0.75rem !important; + } + .mb-home-header-3 { + margin-bottom: 0.75rem !important; + } + .ml-home-header-3 { + margin-left: 0.75rem !important; + } + .mx-home-header-3 { + margin-right: 0.75rem !important; + margin-left: 0.75rem !important; + } + .my-home-header-3 { + margin-top: 0.75rem !important; + margin-bottom: 0.75rem !important; + } + .mxn-home-header-3 { + margin-right: -0.75rem !important; + margin-left: -0.75rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-4 { + margin: 1rem !important; + } + .mt-home-header-4 { + margin-top: 1rem !important; + } + .mr-home-header-4 { + margin-right: 1rem !important; + } + .mb-home-header-4 { + margin-bottom: 1rem !important; + } + .ml-home-header-4 { + margin-left: 1rem !important; + } + .mx-home-header-4 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .my-home-header-4 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .mxn-home-header-4 { + margin-right: -1rem !important; + margin-left: -1rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-5 { + margin: 1.5rem !important; + } + .mt-home-header-5 { + margin-top: 1.5rem !important; + } + .mr-home-header-5 { + margin-right: 1.5rem !important; + } + .mb-home-header-5 { + margin-bottom: 1.5rem !important; + } + .ml-home-header-5 { + margin-left: 1.5rem !important; + } + .mx-home-header-5 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .my-home-header-5 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .mxn-home-header-5 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-6 { + margin: 2rem !important; + } + .mt-home-header-6 { + margin-top: 2rem !important; + } + .mr-home-header-6 { + margin-right: 2rem !important; + } + .mb-home-header-6 { + margin-bottom: 2rem !important; + } + .ml-home-header-6 { + margin-left: 2rem !important; + } + .mx-home-header-6 { + margin-right: 2rem !important; + margin-left: 2rem !important; + } + .my-home-header-6 { + margin-top: 2rem !important; + margin-bottom: 2rem !important; + } + .mxn-home-header-6 { + margin-right: -2rem !important; + margin-left: -2rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-7 { + margin: 2.5rem !important; + } + .mt-home-header-7 { + margin-top: 2.5rem !important; + } + .mr-home-header-7 { + margin-right: 2.5rem !important; + } + .mb-home-header-7 { + margin-bottom: 2.5rem !important; + } + .ml-home-header-7 { + margin-left: 2.5rem !important; + } + .mx-home-header-7 { + margin-right: 2.5rem !important; + margin-left: 2.5rem !important; + } + .my-home-header-7 { + margin-top: 2.5rem !important; + margin-bottom: 2.5rem !important; + } + .mxn-home-header-7 { + margin-right: -2.5rem !important; + margin-left: -2.5rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-8 { + margin: 3rem !important; + } + .mt-home-header-8 { + margin-top: 3rem !important; + } + .mr-home-header-8 { + margin-right: 3rem !important; + } + .mb-home-header-8 { + margin-bottom: 3rem !important; + } + .ml-home-header-8 { + margin-left: 3rem !important; + } + .mx-home-header-8 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .my-home-header-8 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .mxn-home-header-8 { + margin-right: -3rem !important; + margin-left: -3rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-9 { + margin: 3.5rem !important; + } + .mt-home-header-9 { + margin-top: 3.5rem !important; + } + .mr-home-header-9 { + margin-right: 3.5rem !important; + } + .mb-home-header-9 { + margin-bottom: 3.5rem !important; + } + .ml-home-header-9 { + margin-left: 3.5rem !important; + } + .mx-home-header-9 { + margin-right: 3.5rem !important; + margin-left: 3.5rem !important; + } + .my-home-header-9 { + margin-top: 3.5rem !important; + margin-bottom: 3.5rem !important; + } + .mxn-home-header-9 { + margin-right: -3.5rem !important; + margin-left: -3.5rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-10 { + margin: 4rem !important; + } + .mt-home-header-10 { + margin-top: 4rem !important; + } + .mr-home-header-10 { + margin-right: 4rem !important; + } + .mb-home-header-10 { + margin-bottom: 4rem !important; + } + .ml-home-header-10 { + margin-left: 4rem !important; + } + .mx-home-header-10 { + margin-right: 4rem !important; + margin-left: 4rem !important; + } + .my-home-header-10 { + margin-top: 4rem !important; + margin-bottom: 4rem !important; + } + .mxn-home-header-10 { + margin-right: -4rem !important; + margin-left: -4rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-0 { + margin: 0 !important; + } + .mt-home-imgs-max-0 { + margin-top: 0 !important; + } + .mr-home-imgs-max-0 { + margin-right: 0 !important; + } + .mb-home-imgs-max-0 { + margin-bottom: 0 !important; + } + .ml-home-imgs-max-0 { + margin-left: 0 !important; + } + .mx-home-imgs-max-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .my-home-imgs-max-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .mxn-home-imgs-max-0 { + margin-right: -0 !important; + margin-left: -0 !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-1 { + margin: 0.25rem !important; + } + .mt-home-imgs-max-1 { + margin-top: 0.25rem !important; + } + .mr-home-imgs-max-1 { + margin-right: 0.25rem !important; + } + .mb-home-imgs-max-1 { + margin-bottom: 0.25rem !important; + } + .ml-home-imgs-max-1 { + margin-left: 0.25rem !important; + } + .mx-home-imgs-max-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .my-home-imgs-max-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .mxn-home-imgs-max-1 { + margin-right: -0.25rem !important; + margin-left: -0.25rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-2 { + margin: 0.5rem !important; + } + .mt-home-imgs-max-2 { + margin-top: 0.5rem !important; + } + .mr-home-imgs-max-2 { + margin-right: 0.5rem !important; + } + .mb-home-imgs-max-2 { + margin-bottom: 0.5rem !important; + } + .ml-home-imgs-max-2 { + margin-left: 0.5rem !important; + } + .mx-home-imgs-max-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .my-home-imgs-max-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .mxn-home-imgs-max-2 { + margin-right: -0.5rem !important; + margin-left: -0.5rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-3 { + margin: 0.75rem !important; + } + .mt-home-imgs-max-3 { + margin-top: 0.75rem !important; + } + .mr-home-imgs-max-3 { + margin-right: 0.75rem !important; + } + .mb-home-imgs-max-3 { + margin-bottom: 0.75rem !important; + } + .ml-home-imgs-max-3 { + margin-left: 0.75rem !important; + } + .mx-home-imgs-max-3 { + margin-right: 0.75rem !important; + margin-left: 0.75rem !important; + } + .my-home-imgs-max-3 { + margin-top: 0.75rem !important; + margin-bottom: 0.75rem !important; + } + .mxn-home-imgs-max-3 { + margin-right: -0.75rem !important; + margin-left: -0.75rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-4 { + margin: 1rem !important; + } + .mt-home-imgs-max-4 { + margin-top: 1rem !important; + } + .mr-home-imgs-max-4 { + margin-right: 1rem !important; + } + .mb-home-imgs-max-4 { + margin-bottom: 1rem !important; + } + .ml-home-imgs-max-4 { + margin-left: 1rem !important; + } + .mx-home-imgs-max-4 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .my-home-imgs-max-4 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .mxn-home-imgs-max-4 { + margin-right: -1rem !important; + margin-left: -1rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-5 { + margin: 1.5rem !important; + } + .mt-home-imgs-max-5 { + margin-top: 1.5rem !important; + } + .mr-home-imgs-max-5 { + margin-right: 1.5rem !important; + } + .mb-home-imgs-max-5 { + margin-bottom: 1.5rem !important; + } + .ml-home-imgs-max-5 { + margin-left: 1.5rem !important; + } + .mx-home-imgs-max-5 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .my-home-imgs-max-5 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .mxn-home-imgs-max-5 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-6 { + margin: 2rem !important; + } + .mt-home-imgs-max-6 { + margin-top: 2rem !important; + } + .mr-home-imgs-max-6 { + margin-right: 2rem !important; + } + .mb-home-imgs-max-6 { + margin-bottom: 2rem !important; + } + .ml-home-imgs-max-6 { + margin-left: 2rem !important; + } + .mx-home-imgs-max-6 { + margin-right: 2rem !important; + margin-left: 2rem !important; + } + .my-home-imgs-max-6 { + margin-top: 2rem !important; + margin-bottom: 2rem !important; + } + .mxn-home-imgs-max-6 { + margin-right: -2rem !important; + margin-left: -2rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-7 { + margin: 2.5rem !important; + } + .mt-home-imgs-max-7 { + margin-top: 2.5rem !important; + } + .mr-home-imgs-max-7 { + margin-right: 2.5rem !important; + } + .mb-home-imgs-max-7 { + margin-bottom: 2.5rem !important; + } + .ml-home-imgs-max-7 { + margin-left: 2.5rem !important; + } + .mx-home-imgs-max-7 { + margin-right: 2.5rem !important; + margin-left: 2.5rem !important; + } + .my-home-imgs-max-7 { + margin-top: 2.5rem !important; + margin-bottom: 2.5rem !important; + } + .mxn-home-imgs-max-7 { + margin-right: -2.5rem !important; + margin-left: -2.5rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-8 { + margin: 3rem !important; + } + .mt-home-imgs-max-8 { + margin-top: 3rem !important; + } + .mr-home-imgs-max-8 { + margin-right: 3rem !important; + } + .mb-home-imgs-max-8 { + margin-bottom: 3rem !important; + } + .ml-home-imgs-max-8 { + margin-left: 3rem !important; + } + .mx-home-imgs-max-8 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .my-home-imgs-max-8 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .mxn-home-imgs-max-8 { + margin-right: -3rem !important; + margin-left: -3rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-9 { + margin: 3.5rem !important; + } + .mt-home-imgs-max-9 { + margin-top: 3.5rem !important; + } + .mr-home-imgs-max-9 { + margin-right: 3.5rem !important; + } + .mb-home-imgs-max-9 { + margin-bottom: 3.5rem !important; + } + .ml-home-imgs-max-9 { + margin-left: 3.5rem !important; + } + .mx-home-imgs-max-9 { + margin-right: 3.5rem !important; + margin-left: 3.5rem !important; + } + .my-home-imgs-max-9 { + margin-top: 3.5rem !important; + margin-bottom: 3.5rem !important; + } + .mxn-home-imgs-max-9 { + margin-right: -3.5rem !important; + margin-left: -3.5rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-10 { + margin: 4rem !important; + } + .mt-home-imgs-max-10 { + margin-top: 4rem !important; + } + .mr-home-imgs-max-10 { + margin-right: 4rem !important; + } + .mb-home-imgs-max-10 { + margin-bottom: 4rem !important; + } + .ml-home-imgs-max-10 { + margin-left: 4rem !important; + } + .mx-home-imgs-max-10 { + margin-right: 4rem !important; + margin-left: 4rem !important; + } + .my-home-imgs-max-10 { + margin-top: 4rem !important; + margin-bottom: 4rem !important; + } + .mxn-home-imgs-max-10 { + margin-right: -4rem !important; + margin-left: -4rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-0 { + margin: 0 !important; + } + .mt-mobile-m-0 { + margin-top: 0 !important; + } + .mr-mobile-m-0 { + margin-right: 0 !important; + } + .mb-mobile-m-0 { + margin-bottom: 0 !important; + } + .ml-mobile-m-0 { + margin-left: 0 !important; + } + .mx-mobile-m-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .my-mobile-m-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .mxn-mobile-m-0 { + margin-right: -0 !important; + margin-left: -0 !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-1 { + margin: 0.25rem !important; + } + .mt-mobile-m-1 { + margin-top: 0.25rem !important; + } + .mr-mobile-m-1 { + margin-right: 0.25rem !important; + } + .mb-mobile-m-1 { + margin-bottom: 0.25rem !important; + } + .ml-mobile-m-1 { + margin-left: 0.25rem !important; + } + .mx-mobile-m-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .my-mobile-m-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .mxn-mobile-m-1 { + margin-right: -0.25rem !important; + margin-left: -0.25rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-2 { + margin: 0.5rem !important; + } + .mt-mobile-m-2 { + margin-top: 0.5rem !important; + } + .mr-mobile-m-2 { + margin-right: 0.5rem !important; + } + .mb-mobile-m-2 { + margin-bottom: 0.5rem !important; + } + .ml-mobile-m-2 { + margin-left: 0.5rem !important; + } + .mx-mobile-m-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .my-mobile-m-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .mxn-mobile-m-2 { + margin-right: -0.5rem !important; + margin-left: -0.5rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-3 { + margin: 0.75rem !important; + } + .mt-mobile-m-3 { + margin-top: 0.75rem !important; + } + .mr-mobile-m-3 { + margin-right: 0.75rem !important; + } + .mb-mobile-m-3 { + margin-bottom: 0.75rem !important; + } + .ml-mobile-m-3 { + margin-left: 0.75rem !important; + } + .mx-mobile-m-3 { + margin-right: 0.75rem !important; + margin-left: 0.75rem !important; + } + .my-mobile-m-3 { + margin-top: 0.75rem !important; + margin-bottom: 0.75rem !important; + } + .mxn-mobile-m-3 { + margin-right: -0.75rem !important; + margin-left: -0.75rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-4 { + margin: 1rem !important; + } + .mt-mobile-m-4 { + margin-top: 1rem !important; + } + .mr-mobile-m-4 { + margin-right: 1rem !important; + } + .mb-mobile-m-4 { + margin-bottom: 1rem !important; + } + .ml-mobile-m-4 { + margin-left: 1rem !important; + } + .mx-mobile-m-4 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .my-mobile-m-4 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .mxn-mobile-m-4 { + margin-right: -1rem !important; + margin-left: -1rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-5 { + margin: 1.5rem !important; + } + .mt-mobile-m-5 { + margin-top: 1.5rem !important; + } + .mr-mobile-m-5 { + margin-right: 1.5rem !important; + } + .mb-mobile-m-5 { + margin-bottom: 1.5rem !important; + } + .ml-mobile-m-5 { + margin-left: 1.5rem !important; + } + .mx-mobile-m-5 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .my-mobile-m-5 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .mxn-mobile-m-5 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-6 { + margin: 2rem !important; + } + .mt-mobile-m-6 { + margin-top: 2rem !important; + } + .mr-mobile-m-6 { + margin-right: 2rem !important; + } + .mb-mobile-m-6 { + margin-bottom: 2rem !important; + } + .ml-mobile-m-6 { + margin-left: 2rem !important; + } + .mx-mobile-m-6 { + margin-right: 2rem !important; + margin-left: 2rem !important; + } + .my-mobile-m-6 { + margin-top: 2rem !important; + margin-bottom: 2rem !important; + } + .mxn-mobile-m-6 { + margin-right: -2rem !important; + margin-left: -2rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-7 { + margin: 2.5rem !important; + } + .mt-mobile-m-7 { + margin-top: 2.5rem !important; + } + .mr-mobile-m-7 { + margin-right: 2.5rem !important; + } + .mb-mobile-m-7 { + margin-bottom: 2.5rem !important; + } + .ml-mobile-m-7 { + margin-left: 2.5rem !important; + } + .mx-mobile-m-7 { + margin-right: 2.5rem !important; + margin-left: 2.5rem !important; + } + .my-mobile-m-7 { + margin-top: 2.5rem !important; + margin-bottom: 2.5rem !important; + } + .mxn-mobile-m-7 { + margin-right: -2.5rem !important; + margin-left: -2.5rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-8 { + margin: 3rem !important; + } + .mt-mobile-m-8 { + margin-top: 3rem !important; + } + .mr-mobile-m-8 { + margin-right: 3rem !important; + } + .mb-mobile-m-8 { + margin-bottom: 3rem !important; + } + .ml-mobile-m-8 { + margin-left: 3rem !important; + } + .mx-mobile-m-8 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .my-mobile-m-8 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .mxn-mobile-m-8 { + margin-right: -3rem !important; + margin-left: -3rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-9 { + margin: 3.5rem !important; + } + .mt-mobile-m-9 { + margin-top: 3.5rem !important; + } + .mr-mobile-m-9 { + margin-right: 3.5rem !important; + } + .mb-mobile-m-9 { + margin-bottom: 3.5rem !important; + } + .ml-mobile-m-9 { + margin-left: 3.5rem !important; + } + .mx-mobile-m-9 { + margin-right: 3.5rem !important; + margin-left: 3.5rem !important; + } + .my-mobile-m-9 { + margin-top: 3.5rem !important; + margin-bottom: 3.5rem !important; + } + .mxn-mobile-m-9 { + margin-right: -3.5rem !important; + margin-left: -3.5rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-10 { + margin: 4rem !important; + } + .mt-mobile-m-10 { + margin-top: 4rem !important; + } + .mr-mobile-m-10 { + margin-right: 4rem !important; + } + .mb-mobile-m-10 { + margin-bottom: 4rem !important; + } + .ml-mobile-m-10 { + margin-left: 4rem !important; + } + .mx-mobile-m-10 { + margin-right: 4rem !important; + margin-left: 4rem !important; + } + .my-mobile-m-10 { + margin-top: 4rem !important; + margin-bottom: 4rem !important; + } + .mxn-mobile-m-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 (min-width: 800px) { + .p-home-header-0 { + padding: 0 !important; + } + .pt-home-header-0 { + padding-top: 0 !important; + } + .pr-home-header-0 { + padding-right: 0 !important; + } + .pb-home-header-0 { + padding-bottom: 0 !important; + } + .pl-home-header-0 { + padding-left: 0 !important; + } + .px-home-header-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .py-home-header-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .p-home-header-1 { + padding: 0.25rem !important; + } + .pt-home-header-1 { + padding-top: 0.25rem !important; + } + .pr-home-header-1 { + padding-right: 0.25rem !important; + } + .pb-home-header-1 { + padding-bottom: 0.25rem !important; + } + .pl-home-header-1 { + padding-left: 0.25rem !important; + } + .px-home-header-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .py-home-header-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .p-home-header-2 { + padding: 0.5rem !important; + } + .pt-home-header-2 { + padding-top: 0.5rem !important; + } + .pr-home-header-2 { + padding-right: 0.5rem !important; + } + .pb-home-header-2 { + padding-bottom: 0.5rem !important; + } + .pl-home-header-2 { + padding-left: 0.5rem !important; + } + .px-home-header-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .py-home-header-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .p-home-header-3 { + padding: 0.75rem !important; + } + .pt-home-header-3 { + padding-top: 0.75rem !important; + } + .pr-home-header-3 { + padding-right: 0.75rem !important; + } + .pb-home-header-3 { + padding-bottom: 0.75rem !important; + } + .pl-home-header-3 { + padding-left: 0.75rem !important; + } + .px-home-header-3 { + padding-right: 0.75rem !important; + padding-left: 0.75rem !important; + } + .py-home-header-3 { + padding-top: 0.75rem !important; + padding-bottom: 0.75rem !important; + } + .p-home-header-4 { + padding: 1rem !important; + } + .pt-home-header-4 { + padding-top: 1rem !important; + } + .pr-home-header-4 { + padding-right: 1rem !important; + } + .pb-home-header-4 { + padding-bottom: 1rem !important; + } + .pl-home-header-4 { + padding-left: 1rem !important; + } + .px-home-header-4 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .py-home-header-4 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .p-home-header-5 { + padding: 1.5rem !important; + } + .pt-home-header-5 { + padding-top: 1.5rem !important; + } + .pr-home-header-5 { + padding-right: 1.5rem !important; + } + .pb-home-header-5 { + padding-bottom: 1.5rem !important; + } + .pl-home-header-5 { + padding-left: 1.5rem !important; + } + .px-home-header-5 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .py-home-header-5 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .p-home-header-6 { + padding: 2rem !important; + } + .pt-home-header-6 { + padding-top: 2rem !important; + } + .pr-home-header-6 { + padding-right: 2rem !important; + } + .pb-home-header-6 { + padding-bottom: 2rem !important; + } + .pl-home-header-6 { + padding-left: 2rem !important; + } + .px-home-header-6 { + padding-right: 2rem !important; + padding-left: 2rem !important; + } + .py-home-header-6 { + padding-top: 2rem !important; + padding-bottom: 2rem !important; + } + .p-home-header-7 { + padding: 2.5rem !important; + } + .pt-home-header-7 { + padding-top: 2.5rem !important; + } + .pr-home-header-7 { + padding-right: 2.5rem !important; + } + .pb-home-header-7 { + padding-bottom: 2.5rem !important; + } + .pl-home-header-7 { + padding-left: 2.5rem !important; + } + .px-home-header-7 { + padding-right: 2.5rem !important; + padding-left: 2.5rem !important; + } + .py-home-header-7 { + padding-top: 2.5rem !important; + padding-bottom: 2.5rem !important; + } + .p-home-header-8 { + padding: 3rem !important; + } + .pt-home-header-8 { + padding-top: 3rem !important; + } + .pr-home-header-8 { + padding-right: 3rem !important; + } + .pb-home-header-8 { + padding-bottom: 3rem !important; + } + .pl-home-header-8 { + padding-left: 3rem !important; + } + .px-home-header-8 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-home-header-8 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .p-home-header-9 { + padding: 3.5rem !important; + } + .pt-home-header-9 { + padding-top: 3.5rem !important; + } + .pr-home-header-9 { + padding-right: 3.5rem !important; + } + .pb-home-header-9 { + padding-bottom: 3.5rem !important; + } + .pl-home-header-9 { + padding-left: 3.5rem !important; + } + .px-home-header-9 { + padding-right: 3.5rem !important; + padding-left: 3.5rem !important; + } + .py-home-header-9 { + padding-top: 3.5rem !important; + padding-bottom: 3.5rem !important; + } + .p-home-header-10 { + padding: 4rem !important; + } + .pt-home-header-10 { + padding-top: 4rem !important; + } + .pr-home-header-10 { + padding-right: 4rem !important; + } + .pb-home-header-10 { + padding-bottom: 4rem !important; + } + .pl-home-header-10 { + padding-left: 4rem !important; + } + .px-home-header-10 { + padding-right: 4rem !important; + padding-left: 4rem !important; + } + .py-home-header-10 { + padding-top: 4rem !important; + padding-bottom: 4rem !important; + } +} +@media (min-width: 2880px) { + .p-home-imgs-max-0 { + padding: 0 !important; + } + .pt-home-imgs-max-0 { + padding-top: 0 !important; + } + .pr-home-imgs-max-0 { + padding-right: 0 !important; + } + .pb-home-imgs-max-0 { + padding-bottom: 0 !important; + } + .pl-home-imgs-max-0 { + padding-left: 0 !important; + } + .px-home-imgs-max-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .py-home-imgs-max-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .p-home-imgs-max-1 { + padding: 0.25rem !important; + } + .pt-home-imgs-max-1 { + padding-top: 0.25rem !important; + } + .pr-home-imgs-max-1 { + padding-right: 0.25rem !important; + } + .pb-home-imgs-max-1 { + padding-bottom: 0.25rem !important; + } + .pl-home-imgs-max-1 { + padding-left: 0.25rem !important; + } + .px-home-imgs-max-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .py-home-imgs-max-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .p-home-imgs-max-2 { + padding: 0.5rem !important; + } + .pt-home-imgs-max-2 { + padding-top: 0.5rem !important; + } + .pr-home-imgs-max-2 { + padding-right: 0.5rem !important; + } + .pb-home-imgs-max-2 { + padding-bottom: 0.5rem !important; + } + .pl-home-imgs-max-2 { + padding-left: 0.5rem !important; + } + .px-home-imgs-max-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .py-home-imgs-max-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .p-home-imgs-max-3 { + padding: 0.75rem !important; + } + .pt-home-imgs-max-3 { + padding-top: 0.75rem !important; + } + .pr-home-imgs-max-3 { + padding-right: 0.75rem !important; + } + .pb-home-imgs-max-3 { + padding-bottom: 0.75rem !important; + } + .pl-home-imgs-max-3 { + padding-left: 0.75rem !important; + } + .px-home-imgs-max-3 { + padding-right: 0.75rem !important; + padding-left: 0.75rem !important; + } + .py-home-imgs-max-3 { + padding-top: 0.75rem !important; + padding-bottom: 0.75rem !important; + } + .p-home-imgs-max-4 { + padding: 1rem !important; + } + .pt-home-imgs-max-4 { + padding-top: 1rem !important; + } + .pr-home-imgs-max-4 { + padding-right: 1rem !important; + } + .pb-home-imgs-max-4 { + padding-bottom: 1rem !important; + } + .pl-home-imgs-max-4 { + padding-left: 1rem !important; + } + .px-home-imgs-max-4 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .py-home-imgs-max-4 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .p-home-imgs-max-5 { + padding: 1.5rem !important; + } + .pt-home-imgs-max-5 { + padding-top: 1.5rem !important; + } + .pr-home-imgs-max-5 { + padding-right: 1.5rem !important; + } + .pb-home-imgs-max-5 { + padding-bottom: 1.5rem !important; + } + .pl-home-imgs-max-5 { + padding-left: 1.5rem !important; + } + .px-home-imgs-max-5 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .py-home-imgs-max-5 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .p-home-imgs-max-6 { + padding: 2rem !important; + } + .pt-home-imgs-max-6 { + padding-top: 2rem !important; + } + .pr-home-imgs-max-6 { + padding-right: 2rem !important; + } + .pb-home-imgs-max-6 { + padding-bottom: 2rem !important; + } + .pl-home-imgs-max-6 { + padding-left: 2rem !important; + } + .px-home-imgs-max-6 { + padding-right: 2rem !important; + padding-left: 2rem !important; + } + .py-home-imgs-max-6 { + padding-top: 2rem !important; + padding-bottom: 2rem !important; + } + .p-home-imgs-max-7 { + padding: 2.5rem !important; + } + .pt-home-imgs-max-7 { + padding-top: 2.5rem !important; + } + .pr-home-imgs-max-7 { + padding-right: 2.5rem !important; + } + .pb-home-imgs-max-7 { + padding-bottom: 2.5rem !important; + } + .pl-home-imgs-max-7 { + padding-left: 2.5rem !important; + } + .px-home-imgs-max-7 { + padding-right: 2.5rem !important; + padding-left: 2.5rem !important; + } + .py-home-imgs-max-7 { + padding-top: 2.5rem !important; + padding-bottom: 2.5rem !important; + } + .p-home-imgs-max-8 { + padding: 3rem !important; + } + .pt-home-imgs-max-8 { + padding-top: 3rem !important; + } + .pr-home-imgs-max-8 { + padding-right: 3rem !important; + } + .pb-home-imgs-max-8 { + padding-bottom: 3rem !important; + } + .pl-home-imgs-max-8 { + padding-left: 3rem !important; + } + .px-home-imgs-max-8 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-home-imgs-max-8 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .p-home-imgs-max-9 { + padding: 3.5rem !important; + } + .pt-home-imgs-max-9 { + padding-top: 3.5rem !important; + } + .pr-home-imgs-max-9 { + padding-right: 3.5rem !important; + } + .pb-home-imgs-max-9 { + padding-bottom: 3.5rem !important; + } + .pl-home-imgs-max-9 { + padding-left: 3.5rem !important; + } + .px-home-imgs-max-9 { + padding-right: 3.5rem !important; + padding-left: 3.5rem !important; + } + .py-home-imgs-max-9 { + padding-top: 3.5rem !important; + padding-bottom: 3.5rem !important; + } + .p-home-imgs-max-10 { + padding: 4rem !important; + } + .pt-home-imgs-max-10 { + padding-top: 4rem !important; + } + .pr-home-imgs-max-10 { + padding-right: 4rem !important; + } + .pb-home-imgs-max-10 { + padding-bottom: 4rem !important; + } + .pl-home-imgs-max-10 { + padding-left: 4rem !important; + } + .px-home-imgs-max-10 { + padding-right: 4rem !important; + padding-left: 4rem !important; + } + .py-home-imgs-max-10 { + padding-top: 4rem !important; + padding-bottom: 4rem !important; + } +} +@media (min-width: 375px) { + .p-mobile-m-0 { + padding: 0 !important; + } + .pt-mobile-m-0 { + padding-top: 0 !important; + } + .pr-mobile-m-0 { + padding-right: 0 !important; + } + .pb-mobile-m-0 { + padding-bottom: 0 !important; + } + .pl-mobile-m-0 { + padding-left: 0 !important; + } + .px-mobile-m-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .py-mobile-m-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .p-mobile-m-1 { + padding: 0.25rem !important; + } + .pt-mobile-m-1 { + padding-top: 0.25rem !important; + } + .pr-mobile-m-1 { + padding-right: 0.25rem !important; + } + .pb-mobile-m-1 { + padding-bottom: 0.25rem !important; + } + .pl-mobile-m-1 { + padding-left: 0.25rem !important; + } + .px-mobile-m-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .py-mobile-m-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .p-mobile-m-2 { + padding: 0.5rem !important; + } + .pt-mobile-m-2 { + padding-top: 0.5rem !important; + } + .pr-mobile-m-2 { + padding-right: 0.5rem !important; + } + .pb-mobile-m-2 { + padding-bottom: 0.5rem !important; + } + .pl-mobile-m-2 { + padding-left: 0.5rem !important; + } + .px-mobile-m-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .py-mobile-m-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .p-mobile-m-3 { + padding: 0.75rem !important; + } + .pt-mobile-m-3 { + padding-top: 0.75rem !important; + } + .pr-mobile-m-3 { + padding-right: 0.75rem !important; + } + .pb-mobile-m-3 { + padding-bottom: 0.75rem !important; + } + .pl-mobile-m-3 { + padding-left: 0.75rem !important; + } + .px-mobile-m-3 { + padding-right: 0.75rem !important; + padding-left: 0.75rem !important; + } + .py-mobile-m-3 { + padding-top: 0.75rem !important; + padding-bottom: 0.75rem !important; + } + .p-mobile-m-4 { + padding: 1rem !important; + } + .pt-mobile-m-4 { + padding-top: 1rem !important; + } + .pr-mobile-m-4 { + padding-right: 1rem !important; + } + .pb-mobile-m-4 { + padding-bottom: 1rem !important; + } + .pl-mobile-m-4 { + padding-left: 1rem !important; + } + .px-mobile-m-4 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .py-mobile-m-4 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .p-mobile-m-5 { + padding: 1.5rem !important; + } + .pt-mobile-m-5 { + padding-top: 1.5rem !important; + } + .pr-mobile-m-5 { + padding-right: 1.5rem !important; + } + .pb-mobile-m-5 { + padding-bottom: 1.5rem !important; + } + .pl-mobile-m-5 { + padding-left: 1.5rem !important; + } + .px-mobile-m-5 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .py-mobile-m-5 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .p-mobile-m-6 { + padding: 2rem !important; + } + .pt-mobile-m-6 { + padding-top: 2rem !important; + } + .pr-mobile-m-6 { + padding-right: 2rem !important; + } + .pb-mobile-m-6 { + padding-bottom: 2rem !important; + } + .pl-mobile-m-6 { + padding-left: 2rem !important; + } + .px-mobile-m-6 { + padding-right: 2rem !important; + padding-left: 2rem !important; + } + .py-mobile-m-6 { + padding-top: 2rem !important; + padding-bottom: 2rem !important; + } + .p-mobile-m-7 { + padding: 2.5rem !important; + } + .pt-mobile-m-7 { + padding-top: 2.5rem !important; + } + .pr-mobile-m-7 { + padding-right: 2.5rem !important; + } + .pb-mobile-m-7 { + padding-bottom: 2.5rem !important; + } + .pl-mobile-m-7 { + padding-left: 2.5rem !important; + } + .px-mobile-m-7 { + padding-right: 2.5rem !important; + padding-left: 2.5rem !important; + } + .py-mobile-m-7 { + padding-top: 2.5rem !important; + padding-bottom: 2.5rem !important; + } + .p-mobile-m-8 { + padding: 3rem !important; + } + .pt-mobile-m-8 { + padding-top: 3rem !important; + } + .pr-mobile-m-8 { + padding-right: 3rem !important; + } + .pb-mobile-m-8 { + padding-bottom: 3rem !important; + } + .pl-mobile-m-8 { + padding-left: 3rem !important; + } + .px-mobile-m-8 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-mobile-m-8 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .p-mobile-m-9 { + padding: 3.5rem !important; + } + .pt-mobile-m-9 { + padding-top: 3.5rem !important; + } + .pr-mobile-m-9 { + padding-right: 3.5rem !important; + } + .pb-mobile-m-9 { + padding-bottom: 3.5rem !important; + } + .pl-mobile-m-9 { + padding-left: 3.5rem !important; + } + .px-mobile-m-9 { + padding-right: 3.5rem !important; + padding-left: 3.5rem !important; + } + .py-mobile-m-9 { + padding-top: 3.5rem !important; + padding-bottom: 3.5rem !important; + } + .p-mobile-m-10 { + padding: 4rem !important; + } + .pt-mobile-m-10 { + padding-top: 4rem !important; + } + .pr-mobile-m-10 { + padding-right: 4rem !important; + } + .pb-mobile-m-10 { + padding-bottom: 4rem !important; + } + .pl-mobile-m-10 { + padding-left: 4rem !important; + } + .px-mobile-m-10 { + padding-right: 4rem !important; + padding-left: 4rem !important; + } + .py-mobile-m-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; +} + +p.highlight, blockquote.highlight { + background: rgba(149, 147, 150, 0.2); + border-left: 4px solid #27262b; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + padding: 0.8rem; +} +p.highlight > .highlight-title, blockquote.highlight > .highlight-title { + color: #27262b; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} + +p.highlight-title, blockquote.highlight-title { + background: rgba(149, 147, 150, 0.2); + border-left: 4px solid #27262b; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + padding: 0.8rem; +} +p.highlight-title > p:first-child, blockquote.highlight-title > p:first-child { + margin-top: 0; + margin-bottom: 0; + color: #27262b; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} + +blockquote.highlight { + margin-left: 0; + margin-right: 0; +} +blockquote.highlight > p:first-child { + margin-top: 0; +} +blockquote.highlight > p:last-child { + margin-bottom: 0; +} + +blockquote.highlight-title { + margin-left: 0; + margin-right: 0; +} +blockquote.highlight-title > p:nth-child(2) { + margin-top: 0; +} +blockquote.highlight-title > p:last-child { + margin-bottom: 0; +} + +p.important, blockquote.important { + background: rgba(149, 147, 150, 0.2); + border-left: 4px solid #27262b; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + padding: 0.8rem; +} +p.important::before, blockquote.important::before { + color: #27262b; + content: "Important"; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} +p.important > .important-title, blockquote.important > .important-title { + color: #27262b; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} + +p.important-title, blockquote.important-title { + background: rgba(149, 147, 150, 0.2); + border-left: 4px solid #27262b; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + padding: 0.8rem; +} +p.important-title > p:first-child, blockquote.important-title > p:first-child { + margin-top: 0; + margin-bottom: 0; + color: #27262b; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} + +blockquote.important { + margin-left: 0; + margin-right: 0; +} +blockquote.important > p:first-child { + margin-top: 0; +} +blockquote.important > p:last-child { + margin-bottom: 0; +} + +blockquote.important-title { + margin-left: 0; + margin-right: 0; +} +blockquote.important-title > p:nth-child(2) { + margin-top: 0; +} +blockquote.important-title > p:last-child { + margin-bottom: 0; +} + +p.note, blockquote.note { + background: #2c84fa; + border-left: 4px solid #183385; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + padding: 0.8rem; +} +p.note::before, blockquote.note::before { + color: #183385; + content: "Note"; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} +p.note > .note-title, blockquote.note > .note-title { + color: #183385; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} + +p.note-title, blockquote.note-title { + background: #2c84fa; + border-left: 4px solid #183385; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + padding: 0.8rem; +} +p.note-title > p:first-child, blockquote.note-title > p:first-child { + margin-top: 0; + margin-bottom: 0; + color: #183385; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} + +blockquote.note { + margin-left: 0; + margin-right: 0; +} +blockquote.note > p:first-child { + margin-top: 0; +} +blockquote.note > p:last-child { + margin-bottom: 0; +} + +blockquote.note-title { + margin-left: 0; + margin-right: 0; +} +blockquote.note-title > p:nth-child(2) { + margin-top: 0; +} +blockquote.note-title > p:last-child { + margin-bottom: 0; +} + +p.warning, blockquote.warning { + background: rgba(247, 126, 126, 0.2); + border-left: 4px solid #dd2e2e; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + padding: 0.8rem; +} +p.warning::before, blockquote.warning::before { + color: #dd2e2e; + content: "Warning"; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} +p.warning > .warning-title, blockquote.warning > .warning-title { + color: #dd2e2e; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} + +p.warning-title, blockquote.warning-title { + background: rgba(247, 126, 126, 0.2); + border-left: 4px solid #dd2e2e; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + padding: 0.8rem; +} +p.warning-title > p:first-child, blockquote.warning-title > p:first-child { + margin-top: 0; + margin-bottom: 0; + color: #dd2e2e; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} + +blockquote.warning { + margin-left: 0; + margin-right: 0; +} +blockquote.warning > p:first-child { + margin-top: 0; +} +blockquote.warning > p:last-child { + margin-bottom: 0; +} + +blockquote.warning-title { + margin-left: 0; + margin-right: 0; +} +blockquote.warning-title > p:nth-child(2) { + margin-top: 0; +} +blockquote.warning-title > p:last-child { + margin-bottom: 0; +} + +@media (min-width: 50rem) { + #main-header { + position: sticky; + top: 0; + z-index: 999; + } +} +@media (min-width: 66.5rem) { + .sidebar__right { + position: fixed; + top: 64px; + right: 0px; + max-height: calc(100% - 112px); + min-height: fit-content; + width: 360px; + padding-bottom: 20px; + border: 1px solid #44434d; + border-radius: 4px; + overflow: auto; + background-color: #27262b; + z-index: 999; + } +} + +.toc { + letter-spacing: 1px; +} +.toc .nav__title { + margin: 0; + cursor: pointer; + font-size: 1rem !important; + color: #1464A5; + background-color: #E3ECF4; + padding: 20px 14px 8px 14px; +} +@media (min-width: 31.25rem) { + .toc .nav__title { + font-size: 1.125rem !important; + } +} +@media (min-width: 50rem) { + .toc .nav__title { + font-size: 0.875rem !important; + } +} +@media (min-width: 50rem) and (min-width: 31.25rem) { + .toc .nav__title { + font-size: 1rem !important; + } +} + +.toc__menu { + font-size: 1rem !important; + margin: 0; + padding: 0; + width: 100%; + list-style: none; +} +@media (min-width: 31.25rem) { + .toc__menu { + font-size: 1.125rem !important; + } +} +@media (min-width: 50rem) { + .toc__menu { + font-size: 0.875rem !important; + } +} +@media (min-width: 50rem) and (min-width: 31.25rem) { + .toc__menu { + font-size: 1rem !important; + } +} +.toc__menu li::before { + content: "" !important; +} +.toc__menu a { + text-decoration: none; + color: rgba(0, 0, 0, 0.7411764706); +} +.toc__menu a.active { + color: rgba(0, 0, 0, 0.6); + font-weight: 500; +} +.toc__menu li ul > li a { + padding-top: 0.2rem; + border: none; + text-transform: none; +} + +@media (min-width: 66.5rem) { + .toc__menu.collapsed { + display: none; + } + .toc.collapsed { + position: relative; + bottom: 14px; + } + .nav__title.collapsed { + font-size: 15px !important; + height: 30px; + cursor: pointer; + } + .sidebar__right.collapsed { + padding-bottom: 0px; + width: auto; + transform: rotate(270deg); + transform-origin: bottom right; + top: 34px; + height: 30px; + overflow: hidden; + background-color: #E3ECF4; + } +} +.multicolumn { + display: flex; +} + +.toggle-tree-btn { + all: unset; + margin-bottom: 10px; + align-self: flex-end; + position: absolute; + top: 8px; + right: 8px; + cursor: pointer; +} + +.multicolumnleft { + flex: 1; + max-width: 100%; + overflow-x: auto; + padding: 0 40px 0 0; + box-sizing: border-box; + position: relative; +} + +.multicolumnnopadding { + flex: 1; + max-width: 100%; + overflow-x: auto; + padding: 0 0 0 0; + box-sizing: border-box; +} + +.multicolumnright { + box-sizing: border-box; + border-left: 1px solid #ccc; + transition: width 0.3s ease; + overflow-x: auto; +} +.multicolumnright.collapsed { + width: 0; + overflow: hidden; + padding: 0; + border-left: none; + display: none; +} + +.verticalDivider { + border-left: 1px solid #F2F3F3; + padding-right: 10px; + margin-left: 10px; +} + +.jstreeloader ul > li::before { + content: ""; +} + +@media (min-width: 50rem) and ((max-width: 66.5rem)) { + #top.main { + max-width: none; + margin-left: 16.5rem; + } +} +@media (min-width: 66.5rem) { + body > div.side-bar { + min-width: auto; + width: auto; + } + #top.main { + max-width: none; + margin-left: calc(16.5rem + 1px); + } +} +@media (min-width: 50rem) { + div.side-bar { + width: 16.5rem; + } +} +table { + table-layout: auto; + width: 120px; +} + +.text-primary-900 { + color: #063679; +} + +@media (min-width: 50rem) { + .breadcrumbs { + margin-top: -1rem; + } +} +.breadcrumbs ol { + padding-left: 0; + margin-bottom: 0.75rem; + list-style: none; +} +.breadcrumbs li { + display: table-cell; + font-size: 0.6875rem !important; +} +@media (min-width: 31.25rem) { + .breadcrumbs li { + font-size: 0.75rem !important; + } +} +.breadcrumbs li::before { + display: none; +} +.breadcrumbs li::after { + display: inline-block; + margin-right: 0.5rem; + margin-left: 0.5rem; + color: #959396; + content: "/"; +} +.breadcrumbs li:last-child::after { + content: ""; +} + +.btn:focus { + display: none; +} + +a:not([class]) { + text-decoration: underline; + text-decoration-color: #44434d; + text-underline-offset: 2px; +} +a:not([class]):hover { + text-decoration-color: rgba(20, 100, 165, 0.2392156863); +} + +.select { + border-style: none; +} + +.nav-list .nav-list-item .nav-list-expander { + color: rgba(0, 0, 0, 0.7411764706); +} +.nav-list .nav-list-item .nav-list-link { + color: rgba(0, 0, 0, 0.7411764706); + font-weight: 400; + font-size: 1rem; +} +.nav-list .nav-list-item .nav-list-link.active { + color: rgba(0, 0, 0, 0.6); + font-weight: 500; + font-size: 1rem; +} + +.header-custom-main { + display: flex; + place-content: end; + column-gap: 10px; + margin-right: 33px; +} +.header-custom-main .select { + border-style: none; + background: transparent; +} +.header-custom-main .github-div { + display: flex; + align-items: center; +} +.header-custom-main .github-div > a { + display: flex; + align-items: center; +} + +.o-tab { + overflow: hidden; + padding-bottom: 6px; + /* Style the buttons that are used to open the tab content */ + /* Change background color of buttons on hover */ + /* Create an active/current tablink class */ +} +.o-tab button { + background-color: inherit; + float: left; + border: none; + outline: none; + cursor: pointer; + padding: 12px 16px; + transition: 0.3s; + font-size: 0.8em; + color: #333333; +} +.o-tab button:hover { + background-color: #93c7f2; + border-bottom: 2px solid rgba(20, 100, 165, 0.2392156863); +} +.o-tab button.active { + border-bottom: 2px solid #1464A5; +} + +/* Style the tab content */ +.o-tabcontent { + display: none; + padding: 6px 12px; + -webkit-animation: fadeEffect 1s; + animation: fadeEffect 1s; +} + +.o-component-container .list__item { + padding-right: 0; +} +.o-component-container .list__item .archive__item-excerpt { + margin-top: 0; + font-size: 0.75em; +} + +.mdl-data-table td[required] p.first:after { + content: " *"; +} + +.attributes-list { + overflow: hidden; +} +.attributes-list li { + display: inline-block; + width: 50%; + margin-bottom: 0.25em; + font-size: 18px; +} + +.faq-posts .panel-default .panel-heading { + color: #333; + background-color: #f5f5f5; + border-color: #ddd; + border-bottom: 0; + padding: 10px 30px; + border-bottom: 1px solid transparent; + border-top-left-radius: 3px; + border-top-right-radius: 3px; + cursor: pointer; +} +.faq-posts .panel-default .panel-title { + margin-top: 0; + margin-bottom: 0; + font-size: 16px; + color: inherit; +} +.faq-posts .panel-body { + padding: 15px; + font-size: 14px; +} +.faq-posts .panel { + margin-bottom: 0; + border-radius: 4px; + background-color: #fff; + border: 1px solid transparent; +} +.faq-posts .collapse { + display: none; +} +.faq-posts .collapse.in { + display: block; +} +.faq-posts .collapsing { + position: relative; + height: 0; + overflow: hidden; + -webkit-transition-property: height, visibility; + transition-property: height, visibility; + -webkit-transition-duration: 0.35s; + transition-duration: 0.35s; + -webkit-transition-timing-function: ease; + transition-timing-function: ease; +} + +/*# sourceMappingURL=just-the-docs-dark.css.map */ \ No newline at end of file diff --git a/v1/assets/css/just-the-docs-dark.css.map b/v1/assets/css/just-the-docs-dark.css.map new file mode 100644 index 0000000..98af0ee --- /dev/null +++ b/v1/assets/css/just-the-docs-dark.css.map @@ -0,0 +1 @@ +{"version":3,"sourceRoot":"","sources":["../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/vendor/OneLightJekyll/syntax.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/vendor/OneDarkJekyll/syntax.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/vendor/normalize.scss/normalize.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/base.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/color_schemes/dark.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/support/mixins/_typography.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/support/mixins/_layout.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/support/_variables.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/layout.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/content.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/navigation.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/typography.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/labels.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/buttons.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/support/mixins/_buttons.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/search.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/tables.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/code.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/utilities/_colors.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/utilities/_layout.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/utilities/_typography.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/utilities/_lists.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/utilities/_spacing.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/print.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/skiptomain.scss","just-the-docs-dark.scss","../../_sass/custom/custom.scss","../../_sass/custom/setup.scss"],"names":[],"mappings":";AAEA;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;EESJ;IAEI;IACA,WD6EY;IC5EZ,aDwEW;;;ADrFX;EESJ;IAUI;AAAA;AAAA;AAAA;;;;AAQJ;EFhBE,eCuDK;EDtDL,cCsDK;ECpCL,aDoCK;ECnCL,gBDmCK;;ADlEH;EE2BJ;IFZI,eCqDG;IDpDH,cCoDG;;;ADpEH;EE2BJ;IAOI,aDkCG;ICjCH,gBDiCG;;;;AC7BP;EACE;EACA;EACA,kBDtBY;;ADpBV;EEuCJ;IAMI;IACA;IACA,QD2CY;IC1CZ,kBD5BU;IC6BV;;;AAGF;EACE;;AFrDA;EEoDF;IAII;;;;AAKN;AAAA;AAAA;EAGE;;AFhEE;EE6DJ;AAAA;AAAA;IAMI,ODiBQ;;;;ACbZ;EACE;;AAEA;EACE;;AF3EA;EEuEJ;IAQI;IACA,aDVG;ICWH,gBDfG;ICgBH;IACA;;;;AAIJ;EACE;EACA,YDCc;ECAd;;AF1FE;EEuFJ;IAMI,QDHY;ICIZ,YDJY;ICKZ;;;;AAIJ;EFxFE,eCuDK;EDtDL,cCsDK;ECoCL;EACA;EACA;EACA;EACA,aDzCK;EC0CL,gBD1CK;EC2CL,ODvFY;EFMZ;;AC3BE;EEmGJ;IFpFI,eCqDG;IDpDH,cCoDG;;;ADpEH;EEmGJ;IHrEI;IACA,aEpCuB;;;ADKvB;EEmGJ;IAaI,aDhDG;ICiDH,gBDjDG;;;;ACsDL;EACE;EACA;EACA;EACA;EACA;EACA;;;AAIJ;EACE;EACA;EACA,SDjEK;ECkEL;;;AFpIE;EEwIF;IACE;;;AAIJ;EACE;;;AAQF;EACE;;;AASF;EACE;EACA,gBD1FM;EC2FN;;AFnKE;EEgKJ;IAMI;IACA;;;;AAMJ;EFlKE,eCuDK;EDtDL,cCsDK;EC8GL;EACA;EACA;EACA,aDjHK;ECkHL,gBDlHK;ECmHL,ODrKY;EFrBZ;;ACKE;EE6KJ;IF9JI,eCqDG;IDpDH,cCoDG;;;ADpEH;EE6KJ;IH/KI;;;ACEA;EE6KJ;IAYI;IACA;;;;AAIJ;EACE,OD5HK;EC6HL,QD7HK;EC8HL,ODpKS;;;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;;;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;;;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;;;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;;;AClBF;EACE,kBlBuBY;;;AkBtBb;EACG;EACA;EACA,elB4EY;EkB3EZ;EACA;;AAEA;EACE,OlBcQ;EkBbR;EACA;EACA;EACA;EACA;;;AAIN;EACI;EACA;EACA,elB2DY;EkB1DZ;EACA;;AACA;EACE;EACA;EACA,OlBJQ;EkBKR;EACA;EACA;EACA;EACA;;;AAIN;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;AAIJ;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;AAIJ;EACI;EACA;EACA,elBeY;EkBdZ;EACA;;AAEA;EACI,OlB/CM;EkBgDN;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACE,OlBzDQ;EkB0DR;EACA;EACA;EACA;EACA;;;AAIN;EACI;EACA;EACA,elBZY;EkBaZ;EACA;;AACA;EACE;EACA;EACA,OlB3EQ;EkB4ER;EACA;EACA;EACA;EACA;;;AAIN;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;AAIJ;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;AAIJ;EACI;EACA;EACA,elBxDY;EkByDZ;EACA;;AAEA;EACI,OlB1GG;EkB2GH;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACE,OlBpHK;EkBqHL;EACA;EACA;EACA;EACA;;;AAIN;EACI;EACA;EACA,elBnFY;EkBoFZ;EACA;;AACA;EACE;EACA;EACA,OlBtIK;EkBuIL;EACA;EACA;EACA;EACA;;;AAIN;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;AAIJ;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;AAIJ;EACI;EACA;EACA,elB/HY;EkBgIZ;EACA;;AAEA;EACI,OlBrKE;EkBsKF;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACE,OlB/KI;EkBgLJ;EACA;EACA;EACA;EACA;;;AAIN;EACI;EACA;EACA,elB1JY;EkB2JZ;EACA;;AACA;EACE;EACA;EACA,OlBjMI;EkBkMJ;EACA;EACA;EACA;EACA;;;AAIN;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;AAIJ;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;ACzRJ;EACE;IACE;IACA;IACA;;;ApBSA;EoBJJ;IAII;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,kBnBUU;ImBTV;;;;AAIJ;EACE;;AACA;EACE;EACA;ErBAF;EqBOE,OCvCU;EDwCV,kBCpCS;EDqCT;;ApB5BA;EoBiBF;IrBKE;;;ACtBA;EoBiBF;IrBNA;;;ACXE;EoBiBF;IrBHE;;;;AqBkBJ;ErBbE;EqBqBA;EACA;EACA;EACA;;ApB3CE;EoBgCJ;IrBVI;;;ACtBA;EoBgCJ;IrBrBE;;;ACXE;EoBgCJ;IrBlBI;;;AqB+BF;EACE;;AAGF;EACE;EACA,OC3DM;;AD6DN;EACE,OC7DI;ED8DJ;;AAIJ;EACE;EACA;EACA;;;AAMJ;EACE;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;IACA;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;IACA;IACA,kBCrGS;;;AD0Gb;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;;;AAIJ;EACE;EACA;EACA;;;AAKF;EACE;;;AAGF;EACE;IACE;IACA;;;AAIJ;EACE;IACE;IACA;;EAGF;IACE;IACA;;;AAIJ;EACE;IACE;;;AAMJ;EACE;EACA;;;AAMF;EACE,OC1MY;;;ArBWV;EoBmMJ;IAEI;;;AAGF;EACE;EACA,enBzIG;EmB0IH;;AAGF;EACE;ErBpNF;;ACKE;EoB8MF;IrBhNE;;;AqBoNA;EACE;;AAGF;EACE;EACA,cnBxJC;EmByJD,anBzJC;EmB0JD,OnB1MQ;EmB2MR;;AAIA;EACE;;;AAQR;EACE;;;AAIF;EACE;EACA,uBnB7NY;EmB8NZ;;AAEA;EACE,uBC7Pa;;;ADkQjB;EACE;;;AAOE;EACE,OCzQI;;AD4QN;EACE,OC7QI;ED8QJ;EAEA,WnBnQQ;;AmBqQR;EACE,OClRE;EDmRF;EACA,WnBxQM;;;AmB+Qd;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;EACA;;AAEA;EACE;EACA;;;AAMN;EACE;EACA;AAEA;AAaA;AAMA;;AAlBA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAIF;EACE;EACA;;AAIF;EACE;;;AAKJ;AACA;EACE;EACA;EACA;EACA;;;AAIA;EACE;;AAEA;EACE;EACA;;;AAUE;EACE;;;AAQV;EACE;;AAEA;EACE;EACA;EACA;EACA;;;AAWA;EACE;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAIJ;EACE;EACA;;AAGF;EACE;EACA;EAEA;EACA;;AAMF;EACE;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA","sourcesContent":["// 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\n.main {\n @include mq(md) {\n position: relative;\n max-width: $content-width;\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\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 display: none;\n background-color: $sidebar-color;\n\n @include mq(md) {\n display: flex;\n justify-content: space-between;\n height: $header-height;\n background-color: $body-background-color;\n border-bottom: $border $border-color;\n }\n\n &.nav-open {\n display: block;\n\n @include mq(md) {\n display: flex;\n }\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$logo: \"/docs/v1/assets/icons/logo-ontimize-blanco.png\";\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}p.highlight, blockquote.highlight {\n background: rgba($grey-dk-000, 0.2);\n border-left: $border-radius solid $grey-dk-300;\n border-radius: $border-radius;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);\n padding: .8rem;\n \n > .highlight-title {\n color: $grey-dk-300;\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n}\n\np.highlight-title, blockquote.highlight-title {\n background: rgba($grey-dk-000, 0.2);\n border-left: $border-radius solid $grey-dk-300;\n border-radius: $border-radius;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);\n padding: .8rem;\n > p:first-child {\n margin-top: 0;\n margin-bottom: 0;\n color: $grey-dk-300;\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n}\n\nblockquote.highlight {\n margin-left: 0;\n margin-right: 0;\n \n > p:first-child {\n margin-top: 0;\n }\n \n > p:last-child {\n margin-bottom: 0;\n }\n}\n\nblockquote.highlight-title {\n margin-left: 0;\n margin-right: 0;\n \n > p:nth-child(2) {\n margin-top: 0;\n }\n \n > p:last-child {\n margin-bottom: 0;\n }\n}\n\np.important, blockquote.important {\n background: rgba($grey-dk-000, 0.2);\n border-left: $border-radius solid $grey-dk-300;\n border-radius: $border-radius;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);\n padding: .8rem;\n \n &::before {\n color: $grey-dk-300;\n content: \"Important\";\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n \n > .important-title {\n color: $grey-dk-300;\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n}\n\np.important-title, blockquote.important-title {\n background: rgba($grey-dk-000, 0.2);\n border-left: $border-radius solid $grey-dk-300;\n border-radius: $border-radius;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);\n padding: .8rem;\n > p:first-child {\n margin-top: 0;\n margin-bottom: 0;\n color: $grey-dk-300;\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n}\n\nblockquote.important {\n margin-left: 0;\n margin-right: 0;\n \n > p:first-child {\n margin-top: 0;\n }\n \n > p:last-child {\n margin-bottom: 0;\n }\n}\n\nblockquote.important-title {\n margin-left: 0;\n margin-right: 0;\n \n > p:nth-child(2) {\n margin-top: 0;\n }\n \n > p:last-child {\n margin-bottom: 0;\n }\n}\n\np.note, blockquote.note {\n background: rgba($blue-000, 1);\n border-left: $border-radius solid $blue-300;\n border-radius: $border-radius;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);\n padding: .8rem;\n \n &::before {\n color: $blue-300;\n content: \"Note\";\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n \n > .note-title {\n color: $blue-300;\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n}\n\np.note-title, blockquote.note-title {\n background: rgba($blue-000, 1);\n border-left: $border-radius solid $blue-300;\n border-radius: $border-radius;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);\n padding: .8rem;\n > p:first-child {\n margin-top: 0;\n margin-bottom: 0;\n color: $blue-300;\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n}\n\nblockquote.note {\n margin-left: 0;\n margin-right: 0;\n \n > p:first-child {\n margin-top: 0;\n }\n \n > p:last-child {\n margin-bottom: 0;\n }\n}\n\nblockquote.note-title {\n margin-left: 0;\n margin-right: 0;\n \n > p:nth-child(2) {\n margin-top: 0;\n }\n \n > p:last-child {\n margin-bottom: 0;\n }\n}\n\np.warning, blockquote.warning {\n background: rgba($red-000, 0.2);\n border-left: $border-radius solid $red-300;\n border-radius: $border-radius;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);\n padding: .8rem;\n \n &::before {\n color: $red-300;\n content: \"Warning\";\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n \n > .warning-title {\n color: $red-300;\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n}\n\np.warning-title, blockquote.warning-title {\n background: rgba($red-000, 0.2);\n border-left: $border-radius solid $red-300;\n border-radius: $border-radius;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);\n padding: .8rem;\n > p:first-child {\n margin-top: 0;\n margin-bottom: 0;\n color: $red-300;\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n}\n\nblockquote.warning {\n margin-left: 0;\n margin-right: 0;\n \n > p:first-child {\n margin-top: 0;\n }\n \n > p:last-child {\n margin-bottom: 0;\n }\n}\n\nblockquote.warning-title {\n margin-left: 0;\n margin-right: 0;\n \n > p:nth-child(2) {\n margin-top: 0;\n }\n \n > p:last-child {\n margin-bottom: 0;\n }\n}\n\n\n@import \"./custom/custom\";\n\n\n","// Sticky header\n@media (min-width: 50rem){\n #main-header{\n position: sticky;\n top:0;\n z-index:999\n }\n}\n\n// Ontimize TOC\n.sidebar__right {\n @include mq(md) {}\n\n @include mq(lg) {\n position: fixed;\n top: 64px;\n right: 0px;\n max-height: calc(100% - 112px);\n min-height: fit-content;\n width: 360px;\n padding-bottom: 20px;\n border: 1px solid $border-color;\n border-radius: 4px;\n overflow: auto;\n background-color: $body-background-color;\n z-index: 999;\n }\n}\n\n.toc {\n letter-spacing: 1px;\n .nav__title {\n margin: 0;\n cursor: pointer;\n @include fs-5;\n\n @include mq(md) {\n @include fs-4;\n }\n\n color: $primary-500;\n background-color: $primary-50;\n padding: 20px 14px 8px 14px;\n }\n}\n\n.toc__menu {\n\n @include fs-5;\n\n @include mq(md) {\n @include fs-4;\n }\n\n margin: 0;\n padding: 0;\n width: 100%;\n list-style: none;\n\n li::before {\n content: \"\" !important;\n }\n\n a {\n text-decoration: none;\n color: $dark-74;\n\n &.active {\n color: $dark-60;\n font-weight: 500;\n }\n }\n\n li ul>li a {\n padding-top: 0.2rem;\n border: none;\n text-transform: none;\n\n }\n}\n\n//Ontimize TOC screen size bigger than 66.5 rem\n@media (min-width: 66.5rem){\n .toc__menu.collapsed {\n display: none;\n }\n\n .toc.collapsed{\n position: relative;\n bottom: 14px;\n }\n\n .nav__title.collapsed{\n font-size: 15px !important;\n height: 30px;\n cursor: pointer;\n }\n\n .sidebar__right.collapsed{\n padding-bottom: 0px;\n width: auto;\n transform: rotate(270deg);\n transform-origin: bottom right;\n top: calc(64px - 30px);\n height: 30px;\n overflow: hidden;\n background-color: $primary-50;\n }\n}\n\n//Multicolumn\n.multicolumn {\n display: flex;\n}\n\n.toggle-tree-btn {\n all: unset;\n margin-bottom: 10px;\n align-self: flex-end;\n position: absolute;\n top: 8px;\n right: 8px;\n cursor: pointer;\n}\n\n.multicolumnleft {\n flex: 1;\n max-width: 100%;\n overflow-x: auto;\n padding: 0 40px 0 0;\n box-sizing: border-box;\n position: relative;\n}\n\n.multicolumnnopadding {\n flex: 1;\n max-width: 100%;\n overflow-x: auto;\n padding: 0 0 0 0;\n box-sizing: border-box;\n}\n\n.multicolumnright {\n box-sizing: border-box;\n border-left: 1px solid #ccc;\n transition: width 0.3s ease;\n overflow-x: auto;\n\n &.collapsed {\n width: 0;\n overflow: hidden;\n padding: 0;\n border-left: none;\n display: none;\n }\n}\n\n.verticalDivider {\n border-left: 1px solid #F2F3F3;\n padding-right: 10px;\n margin-left: 10px;\n}\n\n\n// //jstree\n.jstreeloader ul>li::before {\n content: \"\";\n}\n\n@media (min-width: 50rem) and ((max-width: 66.5rem)){\n #top.main{\n max-width: none;\n margin-left: 16.5rem;\n }\n}\n\n@media (min-width: 66.5rem){\n body>div.side-bar{\n min-width: auto;\n width:auto,\n }\n\n #top.main{\n max-width: none;\n margin-left: calc(16.5rem + 1px);\n }\n}\n\n@media (min-width: 50rem){\n div.side-bar {\n width: 16.5rem;\n }\n\n\n}\n\ntable {\n table-layout: auto;\n width: 120px;\n}\n\n\n\n// Custom text colors\n.text-primary-900 {\n color: $primary-900\n}\n\n// breadcrumbs.html include style\n.breadcrumbs {\n @include mq(md) {\n margin-top: -$sp-4;\n }\n\n ol {\n padding-left: 0;\n margin-bottom: $sp-3;\n list-style: none;\n }\n\n li {\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\n}\n\n// Button outline style\n.btn:focus {\n display: none;\n}\n\n// Links\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: $primary-500-24;\n }\n}\n\n// Header version changer\n.select {\n border-style: none;\n}\n\n// Default side bar\n.nav-list {\n .nav-list-item {\n\n .nav-list-expander {\n color: $dark-74;\n }\n\n .nav-list-link {\n color: $dark-74;\n font-weight: 400;\n // 16px\n font-size: $font-size-5;\n\n &.active {\n color: $dark-60;\n font-weight: 500;\n font-size: $font-size-5;\n }\n }\n }\n}\n\n// Style of the header version changer\n.header-custom-main {\n display: flex;\n place-content: end;\n column-gap: 10px;\n margin-right: 33px;\n\n .select {\n border-style: none;\n background: transparent;\n }\n\n .github-div {\n display: flex;\n align-items: center;\n\n >a {\n display: flex;\n align-items: center;\n }\n }\n}\n\n// Style of the component-api tabs\n.o-tab {\n overflow: hidden;\n padding-bottom: 6px;\n\n /* Style the buttons that are used to open the tab content */\n button {\n background-color: inherit;\n float: left;\n border: none;\n outline: none;\n cursor: pointer;\n padding: 12px 16px;\n transition: .3s;\n font-size: 0.8em;\n color: #333333;\n }\n\n /* Change background color of buttons on hover */\n button:hover {\n background-color: lighten($primary-500, 40%);\n border-bottom: 2px solid $primary-500-24;\n }\n\n /* Create an active/current tablink class */\n button.active {\n border-bottom: 2px solid $primary-500;\n }\n\n}\n\n/* Style the tab content */\n.o-tabcontent {\n display: none;\n padding: 6px 12px;\n -webkit-animation: fadeEffect 1s;\n animation: fadeEffect 1s;\n}\n\n.o-component-container {\n .list__item {\n padding-right: 0;\n\n .archive__item-excerpt {\n margin-top: 0;\n font-size: .75em;\n }\n }\n}\n\n// Api tables\n.mdl-data-table {\n td {\n &[required] {\n p.first {\n &:after {\n content: ' *';\n }\n }\n }\n }\n}\n\n// Api attribute inhereds\n.attributes-list {\n overflow: hidden;\n\n li {\n display: inline-block;\n width: 50%;\n margin-bottom: .25em;\n font-size: 18px;\n }\n}\n\n\n\n// FAQ page\n\n.faq-posts {\n .panel-default {\n\n .panel-heading {\n color: #333;\n background-color: #f5f5f5;\n border-color: #ddd;\n border-bottom: 0;\n\n padding: 10px 30px;\n border-bottom: 1px solid transparent;\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n cursor: pointer;\n }\n\n .panel-title {\n margin-top: 0;\n margin-bottom: 0;\n font-size: 16px;\n color: inherit;\n }\n }\n\n .panel-body {\n padding: 15px;\n font-size: 14px;\n }\n\n .panel {\n margin-bottom: 0;\n border-radius: 4px;\n\n background-color: #fff;\n border: 1px solid transparent;\n\n //-webkit-box-shadow: 0 1px 1px rgba(0,0,0,.05);\n //box-shadow: 0 1px 1px rgba(0,0,0,.05);\n }\n\n .collapse {\n display: none;\n\n &.in {\n display: block;\n }\n }\n\n .collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n -webkit-transition-property: height, visibility;\n transition-property: height, visibility;\n -webkit-transition-duration: .35s;\n transition-duration: .35s;\n -webkit-transition-timing-function: ease;\n transition-timing-function: ease;\n }\n}","// custom setup code goes here\n$primary-500: #1464A5;\n$primary-400: #377BB3;\n$primary-900: #063679;\n$primary-500-24: #1464A53D;\n$primary-50: #E3ECF4;\n$dark-74: #000000BD;\n$dark-60: #00000099;\n$grey: #F6F6F6;\n$roboto: 'Roboto', sans-serif;\n\n// media queries\n$custom-media-queries: (home-header: 800px,\n home-imgs-max: 2880px,\n mobile-m: 375px);\n$media-queries: map-merge($media-queries, $custom-media-queries);"],"file":"just-the-docs-dark.css"} \ No newline at end of file diff --git a/v1/assets/css/just-the-docs-default.css b/v1/assets/css/just-the-docs-default.css new file mode 100644 index 0000000..540154d --- /dev/null +++ b/v1/assets/css/just-the-docs-default.css @@ -0,0 +1,10222 @@ +@charset "UTF-8"; +.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: "Roboto", sans-serif; + 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: #1464A5; + 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(20, 100, 165, 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: #F6F6F6; +} +@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) { + .main { + position: relative; + max-width: 50rem; + margin-left: 15.5rem; + } +} +@media (min-width: 66.5rem) { + .main { + margin-left: max( + 16.5rem, + calc((100% - 66.5rem) / 2 + 16.5rem) + ); + } +} + +.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; + display: none; + background-color: #F6F6F6; +} +@media (min-width: 50rem) { + .main-header { + display: flex; + justify-content: space-between; + height: 3.75rem; + background-color: #fff; + border-bottom: 1px solid #eeebee; + } +} +.main-header.nav-open { + display: block; +} +@media (min-width: 50rem) { + .main-header.nav-open { + display: flex; + } +} + +.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-logo { + width: 100%; + height: 100%; + background-image: url("/docs/v1/assets/icons/logo-ontimize-blanco.png"); + background-repeat: no-repeat; + background-position: left center; + background-size: contain; +} + +.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, #eaeaea 0%, rgba(234, 234, 234, 0.8) 80%, rgba(234, 234, 234, 0) 100%); +} + +.site-button:hover { + background-image: linear-gradient(-90deg, #eaeaea 0%, rgba(234, 234, 234, 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: #1464A5; +} + +.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: #1464A5; + 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, #eaeaea 0%, rgba(234, 234, 234, 0.8) 80%, rgba(234, 234, 234, 0) 100%); +} +.nav-list .nav-list-item .nav-list-expander { + position: absolute; + right: 0; + width: 3rem; + height: 3rem; + padding: 0.75rem; + color: #1464A5; +} +@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, #eaeaea 0%, rgba(234, 234, 234, 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: rgba(0, 0, 0, 0.6); +} +.nav-list .nav-list-item > .nav-list .nav-list-item .nav-list-expander { + color: rgba(0, 0, 0, 0.6); +} +.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: #1464A5; +} +.nav-list.nav-category-list > .nav-list-item > .nav-list > .nav-list-item > .nav-list-expander { + color: #1464A5; +} + +.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: #1464A5; + text-decoration: none; + vertical-align: baseline; + cursor: pointer; + background-color: #F6F6F6; + 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: #135e9c; +} +.btn:hover, .btn:active, .btn.zeroclipboard-is-hover, .btn.zeroclipboard-is-active { + text-decoration: none; + background-color: #f3f3f3; +} +.btn:active, .btn.selected, .btn.zeroclipboard-is-active { + background-color: #eeeeee; + 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: #1464A5; + 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: #125993; + 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: #135e9c; + background-image: linear-gradient(#1772bc, #135e9c); + 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: #125993; + background-image: linear-gradient(#156aae, #125993); +} +.btn-primary:active, .btn-primary.selected, .btn-primary.zeroclipboard-is-active { + background-color: #11568e; + background-image: none; + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); +} +.btn-primary.selected:hover { + background-color: #0e4878; +} + +.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: #dce7f1; + background-image: linear-gradient(#f5f8fb, #dce7f1); + 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: #d4e2ee; + background-image: linear-gradient(#eaf1f7, #d4e2ee); +} +.btn-blue:active, .btn-blue.selected, .btn-blue.zeroclipboard-is-active { + background-color: #d1e0ed; + background-image: none; + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); +} +.btn-blue.selected:hover { + background-color: #bed3e6; +} + +.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: #1464A5; +} + +.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: #EAEAEA; +} + +.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: #1464A5; + 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(20, 100, 165, 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: #F6F6F6; + 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: #F6F6F6; + 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 #F6F6F6; + background-color: #F6F6F6; + 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: #F6F6F6; + 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: #F6F6F6; + color: #5c5962; +} + +.highlight pre { + background: #F6F6F6; +} + +.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: #E3ECF4 !important; +} + +.text-blue-100 { + color: #2869e6 !important; +} + +.text-blue-200 { + color: #377BB3 !important; +} + +.text-blue-300 { + color: #1464A5 !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: #E3ECF4 !important; +} + +.bg-blue-100 { + background-color: #2869e6 !important; +} + +.bg-blue-200 { + background-color: #377BB3 !important; +} + +.bg-blue-300 { + background-color: #1464A5 !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; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-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; + } +} +@media (min-width: 800px) { + .m-home-header-0 { + margin: 0 !important; + } + .mt-home-header-0 { + margin-top: 0 !important; + } + .mr-home-header-0 { + margin-right: 0 !important; + } + .mb-home-header-0 { + margin-bottom: 0 !important; + } + .ml-home-header-0 { + margin-left: 0 !important; + } + .mx-home-header-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .my-home-header-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .mxn-home-header-0 { + margin-right: -0 !important; + margin-left: -0 !important; + } +} +@media (min-width: 800px) { + .m-home-header-1 { + margin: 0.25rem !important; + } + .mt-home-header-1 { + margin-top: 0.25rem !important; + } + .mr-home-header-1 { + margin-right: 0.25rem !important; + } + .mb-home-header-1 { + margin-bottom: 0.25rem !important; + } + .ml-home-header-1 { + margin-left: 0.25rem !important; + } + .mx-home-header-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .my-home-header-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .mxn-home-header-1 { + margin-right: -0.25rem !important; + margin-left: -0.25rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-2 { + margin: 0.5rem !important; + } + .mt-home-header-2 { + margin-top: 0.5rem !important; + } + .mr-home-header-2 { + margin-right: 0.5rem !important; + } + .mb-home-header-2 { + margin-bottom: 0.5rem !important; + } + .ml-home-header-2 { + margin-left: 0.5rem !important; + } + .mx-home-header-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .my-home-header-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .mxn-home-header-2 { + margin-right: -0.5rem !important; + margin-left: -0.5rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-3 { + margin: 0.75rem !important; + } + .mt-home-header-3 { + margin-top: 0.75rem !important; + } + .mr-home-header-3 { + margin-right: 0.75rem !important; + } + .mb-home-header-3 { + margin-bottom: 0.75rem !important; + } + .ml-home-header-3 { + margin-left: 0.75rem !important; + } + .mx-home-header-3 { + margin-right: 0.75rem !important; + margin-left: 0.75rem !important; + } + .my-home-header-3 { + margin-top: 0.75rem !important; + margin-bottom: 0.75rem !important; + } + .mxn-home-header-3 { + margin-right: -0.75rem !important; + margin-left: -0.75rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-4 { + margin: 1rem !important; + } + .mt-home-header-4 { + margin-top: 1rem !important; + } + .mr-home-header-4 { + margin-right: 1rem !important; + } + .mb-home-header-4 { + margin-bottom: 1rem !important; + } + .ml-home-header-4 { + margin-left: 1rem !important; + } + .mx-home-header-4 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .my-home-header-4 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .mxn-home-header-4 { + margin-right: -1rem !important; + margin-left: -1rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-5 { + margin: 1.5rem !important; + } + .mt-home-header-5 { + margin-top: 1.5rem !important; + } + .mr-home-header-5 { + margin-right: 1.5rem !important; + } + .mb-home-header-5 { + margin-bottom: 1.5rem !important; + } + .ml-home-header-5 { + margin-left: 1.5rem !important; + } + .mx-home-header-5 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .my-home-header-5 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .mxn-home-header-5 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-6 { + margin: 2rem !important; + } + .mt-home-header-6 { + margin-top: 2rem !important; + } + .mr-home-header-6 { + margin-right: 2rem !important; + } + .mb-home-header-6 { + margin-bottom: 2rem !important; + } + .ml-home-header-6 { + margin-left: 2rem !important; + } + .mx-home-header-6 { + margin-right: 2rem !important; + margin-left: 2rem !important; + } + .my-home-header-6 { + margin-top: 2rem !important; + margin-bottom: 2rem !important; + } + .mxn-home-header-6 { + margin-right: -2rem !important; + margin-left: -2rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-7 { + margin: 2.5rem !important; + } + .mt-home-header-7 { + margin-top: 2.5rem !important; + } + .mr-home-header-7 { + margin-right: 2.5rem !important; + } + .mb-home-header-7 { + margin-bottom: 2.5rem !important; + } + .ml-home-header-7 { + margin-left: 2.5rem !important; + } + .mx-home-header-7 { + margin-right: 2.5rem !important; + margin-left: 2.5rem !important; + } + .my-home-header-7 { + margin-top: 2.5rem !important; + margin-bottom: 2.5rem !important; + } + .mxn-home-header-7 { + margin-right: -2.5rem !important; + margin-left: -2.5rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-8 { + margin: 3rem !important; + } + .mt-home-header-8 { + margin-top: 3rem !important; + } + .mr-home-header-8 { + margin-right: 3rem !important; + } + .mb-home-header-8 { + margin-bottom: 3rem !important; + } + .ml-home-header-8 { + margin-left: 3rem !important; + } + .mx-home-header-8 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .my-home-header-8 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .mxn-home-header-8 { + margin-right: -3rem !important; + margin-left: -3rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-9 { + margin: 3.5rem !important; + } + .mt-home-header-9 { + margin-top: 3.5rem !important; + } + .mr-home-header-9 { + margin-right: 3.5rem !important; + } + .mb-home-header-9 { + margin-bottom: 3.5rem !important; + } + .ml-home-header-9 { + margin-left: 3.5rem !important; + } + .mx-home-header-9 { + margin-right: 3.5rem !important; + margin-left: 3.5rem !important; + } + .my-home-header-9 { + margin-top: 3.5rem !important; + margin-bottom: 3.5rem !important; + } + .mxn-home-header-9 { + margin-right: -3.5rem !important; + margin-left: -3.5rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-10 { + margin: 4rem !important; + } + .mt-home-header-10 { + margin-top: 4rem !important; + } + .mr-home-header-10 { + margin-right: 4rem !important; + } + .mb-home-header-10 { + margin-bottom: 4rem !important; + } + .ml-home-header-10 { + margin-left: 4rem !important; + } + .mx-home-header-10 { + margin-right: 4rem !important; + margin-left: 4rem !important; + } + .my-home-header-10 { + margin-top: 4rem !important; + margin-bottom: 4rem !important; + } + .mxn-home-header-10 { + margin-right: -4rem !important; + margin-left: -4rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-0 { + margin: 0 !important; + } + .mt-home-imgs-max-0 { + margin-top: 0 !important; + } + .mr-home-imgs-max-0 { + margin-right: 0 !important; + } + .mb-home-imgs-max-0 { + margin-bottom: 0 !important; + } + .ml-home-imgs-max-0 { + margin-left: 0 !important; + } + .mx-home-imgs-max-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .my-home-imgs-max-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .mxn-home-imgs-max-0 { + margin-right: -0 !important; + margin-left: -0 !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-1 { + margin: 0.25rem !important; + } + .mt-home-imgs-max-1 { + margin-top: 0.25rem !important; + } + .mr-home-imgs-max-1 { + margin-right: 0.25rem !important; + } + .mb-home-imgs-max-1 { + margin-bottom: 0.25rem !important; + } + .ml-home-imgs-max-1 { + margin-left: 0.25rem !important; + } + .mx-home-imgs-max-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .my-home-imgs-max-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .mxn-home-imgs-max-1 { + margin-right: -0.25rem !important; + margin-left: -0.25rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-2 { + margin: 0.5rem !important; + } + .mt-home-imgs-max-2 { + margin-top: 0.5rem !important; + } + .mr-home-imgs-max-2 { + margin-right: 0.5rem !important; + } + .mb-home-imgs-max-2 { + margin-bottom: 0.5rem !important; + } + .ml-home-imgs-max-2 { + margin-left: 0.5rem !important; + } + .mx-home-imgs-max-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .my-home-imgs-max-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .mxn-home-imgs-max-2 { + margin-right: -0.5rem !important; + margin-left: -0.5rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-3 { + margin: 0.75rem !important; + } + .mt-home-imgs-max-3 { + margin-top: 0.75rem !important; + } + .mr-home-imgs-max-3 { + margin-right: 0.75rem !important; + } + .mb-home-imgs-max-3 { + margin-bottom: 0.75rem !important; + } + .ml-home-imgs-max-3 { + margin-left: 0.75rem !important; + } + .mx-home-imgs-max-3 { + margin-right: 0.75rem !important; + margin-left: 0.75rem !important; + } + .my-home-imgs-max-3 { + margin-top: 0.75rem !important; + margin-bottom: 0.75rem !important; + } + .mxn-home-imgs-max-3 { + margin-right: -0.75rem !important; + margin-left: -0.75rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-4 { + margin: 1rem !important; + } + .mt-home-imgs-max-4 { + margin-top: 1rem !important; + } + .mr-home-imgs-max-4 { + margin-right: 1rem !important; + } + .mb-home-imgs-max-4 { + margin-bottom: 1rem !important; + } + .ml-home-imgs-max-4 { + margin-left: 1rem !important; + } + .mx-home-imgs-max-4 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .my-home-imgs-max-4 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .mxn-home-imgs-max-4 { + margin-right: -1rem !important; + margin-left: -1rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-5 { + margin: 1.5rem !important; + } + .mt-home-imgs-max-5 { + margin-top: 1.5rem !important; + } + .mr-home-imgs-max-5 { + margin-right: 1.5rem !important; + } + .mb-home-imgs-max-5 { + margin-bottom: 1.5rem !important; + } + .ml-home-imgs-max-5 { + margin-left: 1.5rem !important; + } + .mx-home-imgs-max-5 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .my-home-imgs-max-5 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .mxn-home-imgs-max-5 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-6 { + margin: 2rem !important; + } + .mt-home-imgs-max-6 { + margin-top: 2rem !important; + } + .mr-home-imgs-max-6 { + margin-right: 2rem !important; + } + .mb-home-imgs-max-6 { + margin-bottom: 2rem !important; + } + .ml-home-imgs-max-6 { + margin-left: 2rem !important; + } + .mx-home-imgs-max-6 { + margin-right: 2rem !important; + margin-left: 2rem !important; + } + .my-home-imgs-max-6 { + margin-top: 2rem !important; + margin-bottom: 2rem !important; + } + .mxn-home-imgs-max-6 { + margin-right: -2rem !important; + margin-left: -2rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-7 { + margin: 2.5rem !important; + } + .mt-home-imgs-max-7 { + margin-top: 2.5rem !important; + } + .mr-home-imgs-max-7 { + margin-right: 2.5rem !important; + } + .mb-home-imgs-max-7 { + margin-bottom: 2.5rem !important; + } + .ml-home-imgs-max-7 { + margin-left: 2.5rem !important; + } + .mx-home-imgs-max-7 { + margin-right: 2.5rem !important; + margin-left: 2.5rem !important; + } + .my-home-imgs-max-7 { + margin-top: 2.5rem !important; + margin-bottom: 2.5rem !important; + } + .mxn-home-imgs-max-7 { + margin-right: -2.5rem !important; + margin-left: -2.5rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-8 { + margin: 3rem !important; + } + .mt-home-imgs-max-8 { + margin-top: 3rem !important; + } + .mr-home-imgs-max-8 { + margin-right: 3rem !important; + } + .mb-home-imgs-max-8 { + margin-bottom: 3rem !important; + } + .ml-home-imgs-max-8 { + margin-left: 3rem !important; + } + .mx-home-imgs-max-8 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .my-home-imgs-max-8 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .mxn-home-imgs-max-8 { + margin-right: -3rem !important; + margin-left: -3rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-9 { + margin: 3.5rem !important; + } + .mt-home-imgs-max-9 { + margin-top: 3.5rem !important; + } + .mr-home-imgs-max-9 { + margin-right: 3.5rem !important; + } + .mb-home-imgs-max-9 { + margin-bottom: 3.5rem !important; + } + .ml-home-imgs-max-9 { + margin-left: 3.5rem !important; + } + .mx-home-imgs-max-9 { + margin-right: 3.5rem !important; + margin-left: 3.5rem !important; + } + .my-home-imgs-max-9 { + margin-top: 3.5rem !important; + margin-bottom: 3.5rem !important; + } + .mxn-home-imgs-max-9 { + margin-right: -3.5rem !important; + margin-left: -3.5rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-10 { + margin: 4rem !important; + } + .mt-home-imgs-max-10 { + margin-top: 4rem !important; + } + .mr-home-imgs-max-10 { + margin-right: 4rem !important; + } + .mb-home-imgs-max-10 { + margin-bottom: 4rem !important; + } + .ml-home-imgs-max-10 { + margin-left: 4rem !important; + } + .mx-home-imgs-max-10 { + margin-right: 4rem !important; + margin-left: 4rem !important; + } + .my-home-imgs-max-10 { + margin-top: 4rem !important; + margin-bottom: 4rem !important; + } + .mxn-home-imgs-max-10 { + margin-right: -4rem !important; + margin-left: -4rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-0 { + margin: 0 !important; + } + .mt-mobile-m-0 { + margin-top: 0 !important; + } + .mr-mobile-m-0 { + margin-right: 0 !important; + } + .mb-mobile-m-0 { + margin-bottom: 0 !important; + } + .ml-mobile-m-0 { + margin-left: 0 !important; + } + .mx-mobile-m-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .my-mobile-m-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .mxn-mobile-m-0 { + margin-right: -0 !important; + margin-left: -0 !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-1 { + margin: 0.25rem !important; + } + .mt-mobile-m-1 { + margin-top: 0.25rem !important; + } + .mr-mobile-m-1 { + margin-right: 0.25rem !important; + } + .mb-mobile-m-1 { + margin-bottom: 0.25rem !important; + } + .ml-mobile-m-1 { + margin-left: 0.25rem !important; + } + .mx-mobile-m-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .my-mobile-m-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .mxn-mobile-m-1 { + margin-right: -0.25rem !important; + margin-left: -0.25rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-2 { + margin: 0.5rem !important; + } + .mt-mobile-m-2 { + margin-top: 0.5rem !important; + } + .mr-mobile-m-2 { + margin-right: 0.5rem !important; + } + .mb-mobile-m-2 { + margin-bottom: 0.5rem !important; + } + .ml-mobile-m-2 { + margin-left: 0.5rem !important; + } + .mx-mobile-m-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .my-mobile-m-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .mxn-mobile-m-2 { + margin-right: -0.5rem !important; + margin-left: -0.5rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-3 { + margin: 0.75rem !important; + } + .mt-mobile-m-3 { + margin-top: 0.75rem !important; + } + .mr-mobile-m-3 { + margin-right: 0.75rem !important; + } + .mb-mobile-m-3 { + margin-bottom: 0.75rem !important; + } + .ml-mobile-m-3 { + margin-left: 0.75rem !important; + } + .mx-mobile-m-3 { + margin-right: 0.75rem !important; + margin-left: 0.75rem !important; + } + .my-mobile-m-3 { + margin-top: 0.75rem !important; + margin-bottom: 0.75rem !important; + } + .mxn-mobile-m-3 { + margin-right: -0.75rem !important; + margin-left: -0.75rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-4 { + margin: 1rem !important; + } + .mt-mobile-m-4 { + margin-top: 1rem !important; + } + .mr-mobile-m-4 { + margin-right: 1rem !important; + } + .mb-mobile-m-4 { + margin-bottom: 1rem !important; + } + .ml-mobile-m-4 { + margin-left: 1rem !important; + } + .mx-mobile-m-4 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .my-mobile-m-4 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .mxn-mobile-m-4 { + margin-right: -1rem !important; + margin-left: -1rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-5 { + margin: 1.5rem !important; + } + .mt-mobile-m-5 { + margin-top: 1.5rem !important; + } + .mr-mobile-m-5 { + margin-right: 1.5rem !important; + } + .mb-mobile-m-5 { + margin-bottom: 1.5rem !important; + } + .ml-mobile-m-5 { + margin-left: 1.5rem !important; + } + .mx-mobile-m-5 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .my-mobile-m-5 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .mxn-mobile-m-5 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-6 { + margin: 2rem !important; + } + .mt-mobile-m-6 { + margin-top: 2rem !important; + } + .mr-mobile-m-6 { + margin-right: 2rem !important; + } + .mb-mobile-m-6 { + margin-bottom: 2rem !important; + } + .ml-mobile-m-6 { + margin-left: 2rem !important; + } + .mx-mobile-m-6 { + margin-right: 2rem !important; + margin-left: 2rem !important; + } + .my-mobile-m-6 { + margin-top: 2rem !important; + margin-bottom: 2rem !important; + } + .mxn-mobile-m-6 { + margin-right: -2rem !important; + margin-left: -2rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-7 { + margin: 2.5rem !important; + } + .mt-mobile-m-7 { + margin-top: 2.5rem !important; + } + .mr-mobile-m-7 { + margin-right: 2.5rem !important; + } + .mb-mobile-m-7 { + margin-bottom: 2.5rem !important; + } + .ml-mobile-m-7 { + margin-left: 2.5rem !important; + } + .mx-mobile-m-7 { + margin-right: 2.5rem !important; + margin-left: 2.5rem !important; + } + .my-mobile-m-7 { + margin-top: 2.5rem !important; + margin-bottom: 2.5rem !important; + } + .mxn-mobile-m-7 { + margin-right: -2.5rem !important; + margin-left: -2.5rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-8 { + margin: 3rem !important; + } + .mt-mobile-m-8 { + margin-top: 3rem !important; + } + .mr-mobile-m-8 { + margin-right: 3rem !important; + } + .mb-mobile-m-8 { + margin-bottom: 3rem !important; + } + .ml-mobile-m-8 { + margin-left: 3rem !important; + } + .mx-mobile-m-8 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .my-mobile-m-8 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .mxn-mobile-m-8 { + margin-right: -3rem !important; + margin-left: -3rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-9 { + margin: 3.5rem !important; + } + .mt-mobile-m-9 { + margin-top: 3.5rem !important; + } + .mr-mobile-m-9 { + margin-right: 3.5rem !important; + } + .mb-mobile-m-9 { + margin-bottom: 3.5rem !important; + } + .ml-mobile-m-9 { + margin-left: 3.5rem !important; + } + .mx-mobile-m-9 { + margin-right: 3.5rem !important; + margin-left: 3.5rem !important; + } + .my-mobile-m-9 { + margin-top: 3.5rem !important; + margin-bottom: 3.5rem !important; + } + .mxn-mobile-m-9 { + margin-right: -3.5rem !important; + margin-left: -3.5rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-10 { + margin: 4rem !important; + } + .mt-mobile-m-10 { + margin-top: 4rem !important; + } + .mr-mobile-m-10 { + margin-right: 4rem !important; + } + .mb-mobile-m-10 { + margin-bottom: 4rem !important; + } + .ml-mobile-m-10 { + margin-left: 4rem !important; + } + .mx-mobile-m-10 { + margin-right: 4rem !important; + margin-left: 4rem !important; + } + .my-mobile-m-10 { + margin-top: 4rem !important; + margin-bottom: 4rem !important; + } + .mxn-mobile-m-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 (min-width: 800px) { + .p-home-header-0 { + padding: 0 !important; + } + .pt-home-header-0 { + padding-top: 0 !important; + } + .pr-home-header-0 { + padding-right: 0 !important; + } + .pb-home-header-0 { + padding-bottom: 0 !important; + } + .pl-home-header-0 { + padding-left: 0 !important; + } + .px-home-header-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .py-home-header-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .p-home-header-1 { + padding: 0.25rem !important; + } + .pt-home-header-1 { + padding-top: 0.25rem !important; + } + .pr-home-header-1 { + padding-right: 0.25rem !important; + } + .pb-home-header-1 { + padding-bottom: 0.25rem !important; + } + .pl-home-header-1 { + padding-left: 0.25rem !important; + } + .px-home-header-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .py-home-header-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .p-home-header-2 { + padding: 0.5rem !important; + } + .pt-home-header-2 { + padding-top: 0.5rem !important; + } + .pr-home-header-2 { + padding-right: 0.5rem !important; + } + .pb-home-header-2 { + padding-bottom: 0.5rem !important; + } + .pl-home-header-2 { + padding-left: 0.5rem !important; + } + .px-home-header-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .py-home-header-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .p-home-header-3 { + padding: 0.75rem !important; + } + .pt-home-header-3 { + padding-top: 0.75rem !important; + } + .pr-home-header-3 { + padding-right: 0.75rem !important; + } + .pb-home-header-3 { + padding-bottom: 0.75rem !important; + } + .pl-home-header-3 { + padding-left: 0.75rem !important; + } + .px-home-header-3 { + padding-right: 0.75rem !important; + padding-left: 0.75rem !important; + } + .py-home-header-3 { + padding-top: 0.75rem !important; + padding-bottom: 0.75rem !important; + } + .p-home-header-4 { + padding: 1rem !important; + } + .pt-home-header-4 { + padding-top: 1rem !important; + } + .pr-home-header-4 { + padding-right: 1rem !important; + } + .pb-home-header-4 { + padding-bottom: 1rem !important; + } + .pl-home-header-4 { + padding-left: 1rem !important; + } + .px-home-header-4 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .py-home-header-4 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .p-home-header-5 { + padding: 1.5rem !important; + } + .pt-home-header-5 { + padding-top: 1.5rem !important; + } + .pr-home-header-5 { + padding-right: 1.5rem !important; + } + .pb-home-header-5 { + padding-bottom: 1.5rem !important; + } + .pl-home-header-5 { + padding-left: 1.5rem !important; + } + .px-home-header-5 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .py-home-header-5 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .p-home-header-6 { + padding: 2rem !important; + } + .pt-home-header-6 { + padding-top: 2rem !important; + } + .pr-home-header-6 { + padding-right: 2rem !important; + } + .pb-home-header-6 { + padding-bottom: 2rem !important; + } + .pl-home-header-6 { + padding-left: 2rem !important; + } + .px-home-header-6 { + padding-right: 2rem !important; + padding-left: 2rem !important; + } + .py-home-header-6 { + padding-top: 2rem !important; + padding-bottom: 2rem !important; + } + .p-home-header-7 { + padding: 2.5rem !important; + } + .pt-home-header-7 { + padding-top: 2.5rem !important; + } + .pr-home-header-7 { + padding-right: 2.5rem !important; + } + .pb-home-header-7 { + padding-bottom: 2.5rem !important; + } + .pl-home-header-7 { + padding-left: 2.5rem !important; + } + .px-home-header-7 { + padding-right: 2.5rem !important; + padding-left: 2.5rem !important; + } + .py-home-header-7 { + padding-top: 2.5rem !important; + padding-bottom: 2.5rem !important; + } + .p-home-header-8 { + padding: 3rem !important; + } + .pt-home-header-8 { + padding-top: 3rem !important; + } + .pr-home-header-8 { + padding-right: 3rem !important; + } + .pb-home-header-8 { + padding-bottom: 3rem !important; + } + .pl-home-header-8 { + padding-left: 3rem !important; + } + .px-home-header-8 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-home-header-8 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .p-home-header-9 { + padding: 3.5rem !important; + } + .pt-home-header-9 { + padding-top: 3.5rem !important; + } + .pr-home-header-9 { + padding-right: 3.5rem !important; + } + .pb-home-header-9 { + padding-bottom: 3.5rem !important; + } + .pl-home-header-9 { + padding-left: 3.5rem !important; + } + .px-home-header-9 { + padding-right: 3.5rem !important; + padding-left: 3.5rem !important; + } + .py-home-header-9 { + padding-top: 3.5rem !important; + padding-bottom: 3.5rem !important; + } + .p-home-header-10 { + padding: 4rem !important; + } + .pt-home-header-10 { + padding-top: 4rem !important; + } + .pr-home-header-10 { + padding-right: 4rem !important; + } + .pb-home-header-10 { + padding-bottom: 4rem !important; + } + .pl-home-header-10 { + padding-left: 4rem !important; + } + .px-home-header-10 { + padding-right: 4rem !important; + padding-left: 4rem !important; + } + .py-home-header-10 { + padding-top: 4rem !important; + padding-bottom: 4rem !important; + } +} +@media (min-width: 2880px) { + .p-home-imgs-max-0 { + padding: 0 !important; + } + .pt-home-imgs-max-0 { + padding-top: 0 !important; + } + .pr-home-imgs-max-0 { + padding-right: 0 !important; + } + .pb-home-imgs-max-0 { + padding-bottom: 0 !important; + } + .pl-home-imgs-max-0 { + padding-left: 0 !important; + } + .px-home-imgs-max-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .py-home-imgs-max-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .p-home-imgs-max-1 { + padding: 0.25rem !important; + } + .pt-home-imgs-max-1 { + padding-top: 0.25rem !important; + } + .pr-home-imgs-max-1 { + padding-right: 0.25rem !important; + } + .pb-home-imgs-max-1 { + padding-bottom: 0.25rem !important; + } + .pl-home-imgs-max-1 { + padding-left: 0.25rem !important; + } + .px-home-imgs-max-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .py-home-imgs-max-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .p-home-imgs-max-2 { + padding: 0.5rem !important; + } + .pt-home-imgs-max-2 { + padding-top: 0.5rem !important; + } + .pr-home-imgs-max-2 { + padding-right: 0.5rem !important; + } + .pb-home-imgs-max-2 { + padding-bottom: 0.5rem !important; + } + .pl-home-imgs-max-2 { + padding-left: 0.5rem !important; + } + .px-home-imgs-max-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .py-home-imgs-max-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .p-home-imgs-max-3 { + padding: 0.75rem !important; + } + .pt-home-imgs-max-3 { + padding-top: 0.75rem !important; + } + .pr-home-imgs-max-3 { + padding-right: 0.75rem !important; + } + .pb-home-imgs-max-3 { + padding-bottom: 0.75rem !important; + } + .pl-home-imgs-max-3 { + padding-left: 0.75rem !important; + } + .px-home-imgs-max-3 { + padding-right: 0.75rem !important; + padding-left: 0.75rem !important; + } + .py-home-imgs-max-3 { + padding-top: 0.75rem !important; + padding-bottom: 0.75rem !important; + } + .p-home-imgs-max-4 { + padding: 1rem !important; + } + .pt-home-imgs-max-4 { + padding-top: 1rem !important; + } + .pr-home-imgs-max-4 { + padding-right: 1rem !important; + } + .pb-home-imgs-max-4 { + padding-bottom: 1rem !important; + } + .pl-home-imgs-max-4 { + padding-left: 1rem !important; + } + .px-home-imgs-max-4 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .py-home-imgs-max-4 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .p-home-imgs-max-5 { + padding: 1.5rem !important; + } + .pt-home-imgs-max-5 { + padding-top: 1.5rem !important; + } + .pr-home-imgs-max-5 { + padding-right: 1.5rem !important; + } + .pb-home-imgs-max-5 { + padding-bottom: 1.5rem !important; + } + .pl-home-imgs-max-5 { + padding-left: 1.5rem !important; + } + .px-home-imgs-max-5 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .py-home-imgs-max-5 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .p-home-imgs-max-6 { + padding: 2rem !important; + } + .pt-home-imgs-max-6 { + padding-top: 2rem !important; + } + .pr-home-imgs-max-6 { + padding-right: 2rem !important; + } + .pb-home-imgs-max-6 { + padding-bottom: 2rem !important; + } + .pl-home-imgs-max-6 { + padding-left: 2rem !important; + } + .px-home-imgs-max-6 { + padding-right: 2rem !important; + padding-left: 2rem !important; + } + .py-home-imgs-max-6 { + padding-top: 2rem !important; + padding-bottom: 2rem !important; + } + .p-home-imgs-max-7 { + padding: 2.5rem !important; + } + .pt-home-imgs-max-7 { + padding-top: 2.5rem !important; + } + .pr-home-imgs-max-7 { + padding-right: 2.5rem !important; + } + .pb-home-imgs-max-7 { + padding-bottom: 2.5rem !important; + } + .pl-home-imgs-max-7 { + padding-left: 2.5rem !important; + } + .px-home-imgs-max-7 { + padding-right: 2.5rem !important; + padding-left: 2.5rem !important; + } + .py-home-imgs-max-7 { + padding-top: 2.5rem !important; + padding-bottom: 2.5rem !important; + } + .p-home-imgs-max-8 { + padding: 3rem !important; + } + .pt-home-imgs-max-8 { + padding-top: 3rem !important; + } + .pr-home-imgs-max-8 { + padding-right: 3rem !important; + } + .pb-home-imgs-max-8 { + padding-bottom: 3rem !important; + } + .pl-home-imgs-max-8 { + padding-left: 3rem !important; + } + .px-home-imgs-max-8 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-home-imgs-max-8 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .p-home-imgs-max-9 { + padding: 3.5rem !important; + } + .pt-home-imgs-max-9 { + padding-top: 3.5rem !important; + } + .pr-home-imgs-max-9 { + padding-right: 3.5rem !important; + } + .pb-home-imgs-max-9 { + padding-bottom: 3.5rem !important; + } + .pl-home-imgs-max-9 { + padding-left: 3.5rem !important; + } + .px-home-imgs-max-9 { + padding-right: 3.5rem !important; + padding-left: 3.5rem !important; + } + .py-home-imgs-max-9 { + padding-top: 3.5rem !important; + padding-bottom: 3.5rem !important; + } + .p-home-imgs-max-10 { + padding: 4rem !important; + } + .pt-home-imgs-max-10 { + padding-top: 4rem !important; + } + .pr-home-imgs-max-10 { + padding-right: 4rem !important; + } + .pb-home-imgs-max-10 { + padding-bottom: 4rem !important; + } + .pl-home-imgs-max-10 { + padding-left: 4rem !important; + } + .px-home-imgs-max-10 { + padding-right: 4rem !important; + padding-left: 4rem !important; + } + .py-home-imgs-max-10 { + padding-top: 4rem !important; + padding-bottom: 4rem !important; + } +} +@media (min-width: 375px) { + .p-mobile-m-0 { + padding: 0 !important; + } + .pt-mobile-m-0 { + padding-top: 0 !important; + } + .pr-mobile-m-0 { + padding-right: 0 !important; + } + .pb-mobile-m-0 { + padding-bottom: 0 !important; + } + .pl-mobile-m-0 { + padding-left: 0 !important; + } + .px-mobile-m-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .py-mobile-m-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .p-mobile-m-1 { + padding: 0.25rem !important; + } + .pt-mobile-m-1 { + padding-top: 0.25rem !important; + } + .pr-mobile-m-1 { + padding-right: 0.25rem !important; + } + .pb-mobile-m-1 { + padding-bottom: 0.25rem !important; + } + .pl-mobile-m-1 { + padding-left: 0.25rem !important; + } + .px-mobile-m-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .py-mobile-m-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .p-mobile-m-2 { + padding: 0.5rem !important; + } + .pt-mobile-m-2 { + padding-top: 0.5rem !important; + } + .pr-mobile-m-2 { + padding-right: 0.5rem !important; + } + .pb-mobile-m-2 { + padding-bottom: 0.5rem !important; + } + .pl-mobile-m-2 { + padding-left: 0.5rem !important; + } + .px-mobile-m-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .py-mobile-m-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .p-mobile-m-3 { + padding: 0.75rem !important; + } + .pt-mobile-m-3 { + padding-top: 0.75rem !important; + } + .pr-mobile-m-3 { + padding-right: 0.75rem !important; + } + .pb-mobile-m-3 { + padding-bottom: 0.75rem !important; + } + .pl-mobile-m-3 { + padding-left: 0.75rem !important; + } + .px-mobile-m-3 { + padding-right: 0.75rem !important; + padding-left: 0.75rem !important; + } + .py-mobile-m-3 { + padding-top: 0.75rem !important; + padding-bottom: 0.75rem !important; + } + .p-mobile-m-4 { + padding: 1rem !important; + } + .pt-mobile-m-4 { + padding-top: 1rem !important; + } + .pr-mobile-m-4 { + padding-right: 1rem !important; + } + .pb-mobile-m-4 { + padding-bottom: 1rem !important; + } + .pl-mobile-m-4 { + padding-left: 1rem !important; + } + .px-mobile-m-4 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .py-mobile-m-4 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .p-mobile-m-5 { + padding: 1.5rem !important; + } + .pt-mobile-m-5 { + padding-top: 1.5rem !important; + } + .pr-mobile-m-5 { + padding-right: 1.5rem !important; + } + .pb-mobile-m-5 { + padding-bottom: 1.5rem !important; + } + .pl-mobile-m-5 { + padding-left: 1.5rem !important; + } + .px-mobile-m-5 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .py-mobile-m-5 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .p-mobile-m-6 { + padding: 2rem !important; + } + .pt-mobile-m-6 { + padding-top: 2rem !important; + } + .pr-mobile-m-6 { + padding-right: 2rem !important; + } + .pb-mobile-m-6 { + padding-bottom: 2rem !important; + } + .pl-mobile-m-6 { + padding-left: 2rem !important; + } + .px-mobile-m-6 { + padding-right: 2rem !important; + padding-left: 2rem !important; + } + .py-mobile-m-6 { + padding-top: 2rem !important; + padding-bottom: 2rem !important; + } + .p-mobile-m-7 { + padding: 2.5rem !important; + } + .pt-mobile-m-7 { + padding-top: 2.5rem !important; + } + .pr-mobile-m-7 { + padding-right: 2.5rem !important; + } + .pb-mobile-m-7 { + padding-bottom: 2.5rem !important; + } + .pl-mobile-m-7 { + padding-left: 2.5rem !important; + } + .px-mobile-m-7 { + padding-right: 2.5rem !important; + padding-left: 2.5rem !important; + } + .py-mobile-m-7 { + padding-top: 2.5rem !important; + padding-bottom: 2.5rem !important; + } + .p-mobile-m-8 { + padding: 3rem !important; + } + .pt-mobile-m-8 { + padding-top: 3rem !important; + } + .pr-mobile-m-8 { + padding-right: 3rem !important; + } + .pb-mobile-m-8 { + padding-bottom: 3rem !important; + } + .pl-mobile-m-8 { + padding-left: 3rem !important; + } + .px-mobile-m-8 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-mobile-m-8 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .p-mobile-m-9 { + padding: 3.5rem !important; + } + .pt-mobile-m-9 { + padding-top: 3.5rem !important; + } + .pr-mobile-m-9 { + padding-right: 3.5rem !important; + } + .pb-mobile-m-9 { + padding-bottom: 3.5rem !important; + } + .pl-mobile-m-9 { + padding-left: 3.5rem !important; + } + .px-mobile-m-9 { + padding-right: 3.5rem !important; + padding-left: 3.5rem !important; + } + .py-mobile-m-9 { + padding-top: 3.5rem !important; + padding-bottom: 3.5rem !important; + } + .p-mobile-m-10 { + padding: 4rem !important; + } + .pt-mobile-m-10 { + padding-top: 4rem !important; + } + .pr-mobile-m-10 { + padding-right: 4rem !important; + } + .pb-mobile-m-10 { + padding-bottom: 4rem !important; + } + .pl-mobile-m-10 { + padding-left: 4rem !important; + } + .px-mobile-m-10 { + padding-right: 4rem !important; + padding-left: 4rem !important; + } + .py-mobile-m-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: #1464A5; + background-color: #fff; + left: auto; + top: auto; + width: 30%; + height: auto; + overflow: auto; + margin: 10px 35%; + padding: 5px; + border-radius: 15px; + border: 4px solid #1464A5; + text-align: center; + font-size: 1.2em; + z-index: 999; +} + +div.opaque { + background-color: #fff; +} + +p.highlight, blockquote.highlight { + background: rgba(149, 147, 150, 0.2); + border-left: 4px solid #27262b; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + padding: 0.8rem; +} +p.highlight > .highlight-title, blockquote.highlight > .highlight-title { + color: #27262b; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} + +p.highlight-title, blockquote.highlight-title { + background: rgba(149, 147, 150, 0.2); + border-left: 4px solid #27262b; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + padding: 0.8rem; +} +p.highlight-title > p:first-child, blockquote.highlight-title > p:first-child { + margin-top: 0; + margin-bottom: 0; + color: #27262b; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} + +blockquote.highlight { + margin-left: 0; + margin-right: 0; +} +blockquote.highlight > p:first-child { + margin-top: 0; +} +blockquote.highlight > p:last-child { + margin-bottom: 0; +} + +blockquote.highlight-title { + margin-left: 0; + margin-right: 0; +} +blockquote.highlight-title > p:nth-child(2) { + margin-top: 0; +} +blockquote.highlight-title > p:last-child { + margin-bottom: 0; +} + +p.important, blockquote.important { + background: rgba(149, 147, 150, 0.2); + border-left: 4px solid #27262b; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + padding: 0.8rem; +} +p.important::before, blockquote.important::before { + color: #27262b; + content: "Important"; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} +p.important > .important-title, blockquote.important > .important-title { + color: #27262b; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} + +p.important-title, blockquote.important-title { + background: rgba(149, 147, 150, 0.2); + border-left: 4px solid #27262b; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + padding: 0.8rem; +} +p.important-title > p:first-child, blockquote.important-title > p:first-child { + margin-top: 0; + margin-bottom: 0; + color: #27262b; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} + +blockquote.important { + margin-left: 0; + margin-right: 0; +} +blockquote.important > p:first-child { + margin-top: 0; +} +blockquote.important > p:last-child { + margin-bottom: 0; +} + +blockquote.important-title { + margin-left: 0; + margin-right: 0; +} +blockquote.important-title > p:nth-child(2) { + margin-top: 0; +} +blockquote.important-title > p:last-child { + margin-bottom: 0; +} + +p.note, blockquote.note { + background: #e3ecf4; + border-left: 4px solid #1464A5; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + padding: 0.8rem; +} +p.note::before, blockquote.note::before { + color: #1464A5; + content: "Note"; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} +p.note > .note-title, blockquote.note > .note-title { + color: #1464A5; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} + +p.note-title, blockquote.note-title { + background: #e3ecf4; + border-left: 4px solid #1464A5; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + padding: 0.8rem; +} +p.note-title > p:first-child, blockquote.note-title > p:first-child { + margin-top: 0; + margin-bottom: 0; + color: #1464A5; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} + +blockquote.note { + margin-left: 0; + margin-right: 0; +} +blockquote.note > p:first-child { + margin-top: 0; +} +blockquote.note > p:last-child { + margin-bottom: 0; +} + +blockquote.note-title { + margin-left: 0; + margin-right: 0; +} +blockquote.note-title > p:nth-child(2) { + margin-top: 0; +} +blockquote.note-title > p:last-child { + margin-bottom: 0; +} + +p.warning, blockquote.warning { + background: rgba(247, 126, 126, 0.2); + border-left: 4px solid #dd2e2e; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + padding: 0.8rem; +} +p.warning::before, blockquote.warning::before { + color: #dd2e2e; + content: "Warning"; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} +p.warning > .warning-title, blockquote.warning > .warning-title { + color: #dd2e2e; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} + +p.warning-title, blockquote.warning-title { + background: rgba(247, 126, 126, 0.2); + border-left: 4px solid #dd2e2e; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + padding: 0.8rem; +} +p.warning-title > p:first-child, blockquote.warning-title > p:first-child { + margin-top: 0; + margin-bottom: 0; + color: #dd2e2e; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} + +blockquote.warning { + margin-left: 0; + margin-right: 0; +} +blockquote.warning > p:first-child { + margin-top: 0; +} +blockquote.warning > p:last-child { + margin-bottom: 0; +} + +blockquote.warning-title { + margin-left: 0; + margin-right: 0; +} +blockquote.warning-title > p:nth-child(2) { + margin-top: 0; +} +blockquote.warning-title > p:last-child { + margin-bottom: 0; +} + +@media (min-width: 50rem) { + #main-header { + position: sticky; + top: 0; + z-index: 999; + } +} +@media (min-width: 66.5rem) { + .sidebar__right { + position: fixed; + top: 64px; + right: 0px; + max-height: calc(100% - 112px); + min-height: fit-content; + width: 360px; + padding-bottom: 20px; + border: 1px solid #eeebee; + border-radius: 4px; + overflow: auto; + background-color: #fff; + z-index: 999; + } +} + +.toc { + letter-spacing: 1px; +} +.toc .nav__title { + margin: 0; + cursor: pointer; + font-size: 1rem !important; + color: #1464A5; + background-color: #E3ECF4; + padding: 20px 14px 8px 14px; +} +@media (min-width: 31.25rem) { + .toc .nav__title { + font-size: 1.125rem !important; + } +} +@media (min-width: 50rem) { + .toc .nav__title { + font-size: 0.875rem !important; + } +} +@media (min-width: 50rem) and (min-width: 31.25rem) { + .toc .nav__title { + font-size: 1rem !important; + } +} + +.toc__menu { + font-size: 1rem !important; + margin: 0; + padding: 0; + width: 100%; + list-style: none; +} +@media (min-width: 31.25rem) { + .toc__menu { + font-size: 1.125rem !important; + } +} +@media (min-width: 50rem) { + .toc__menu { + font-size: 0.875rem !important; + } +} +@media (min-width: 50rem) and (min-width: 31.25rem) { + .toc__menu { + font-size: 1rem !important; + } +} +.toc__menu li::before { + content: "" !important; +} +.toc__menu a { + text-decoration: none; + color: rgba(0, 0, 0, 0.7411764706); +} +.toc__menu a.active { + color: rgba(0, 0, 0, 0.6); + font-weight: 500; +} +.toc__menu li ul > li a { + padding-top: 0.2rem; + border: none; + text-transform: none; +} + +@media (min-width: 66.5rem) { + .toc__menu.collapsed { + display: none; + } + .toc.collapsed { + position: relative; + bottom: 14px; + } + .nav__title.collapsed { + font-size: 15px !important; + height: 30px; + cursor: pointer; + } + .sidebar__right.collapsed { + padding-bottom: 0px; + width: auto; + transform: rotate(270deg); + transform-origin: bottom right; + top: 34px; + height: 30px; + overflow: hidden; + background-color: #E3ECF4; + } +} +.multicolumn { + display: flex; +} + +.toggle-tree-btn { + all: unset; + margin-bottom: 10px; + align-self: flex-end; + position: absolute; + top: 8px; + right: 8px; + cursor: pointer; +} + +.multicolumnleft { + flex: 1; + max-width: 100%; + overflow-x: auto; + padding: 0 40px 0 0; + box-sizing: border-box; + position: relative; +} + +.multicolumnnopadding { + flex: 1; + max-width: 100%; + overflow-x: auto; + padding: 0 0 0 0; + box-sizing: border-box; +} + +.multicolumnright { + box-sizing: border-box; + border-left: 1px solid #ccc; + transition: width 0.3s ease; + overflow-x: auto; +} +.multicolumnright.collapsed { + width: 0; + overflow: hidden; + padding: 0; + border-left: none; + display: none; +} + +.verticalDivider { + border-left: 1px solid #F2F3F3; + padding-right: 10px; + margin-left: 10px; +} + +.jstreeloader ul > li::before { + content: ""; +} + +@media (min-width: 50rem) and ((max-width: 66.5rem)) { + #top.main { + max-width: none; + margin-left: 16.5rem; + } +} +@media (min-width: 66.5rem) { + body > div.side-bar { + min-width: auto; + width: auto; + } + #top.main { + max-width: none; + margin-left: calc(16.5rem + 1px); + } +} +@media (min-width: 50rem) { + div.side-bar { + width: 16.5rem; + } +} +table { + table-layout: auto; + width: 120px; +} + +.text-primary-900 { + color: #063679; +} + +@media (min-width: 50rem) { + .breadcrumbs { + margin-top: -1rem; + } +} +.breadcrumbs ol { + padding-left: 0; + margin-bottom: 0.75rem; + list-style: none; +} +.breadcrumbs li { + display: table-cell; + font-size: 0.6875rem !important; +} +@media (min-width: 31.25rem) { + .breadcrumbs li { + font-size: 0.75rem !important; + } +} +.breadcrumbs li::before { + display: none; +} +.breadcrumbs li::after { + display: inline-block; + margin-right: 0.5rem; + margin-left: 0.5rem; + color: #959396; + content: "/"; +} +.breadcrumbs li:last-child::after { + content: ""; +} + +.btn:focus { + display: none; +} + +a:not([class]) { + text-decoration: underline; + text-decoration-color: #eeebee; + text-underline-offset: 2px; +} +a:not([class]):hover { + text-decoration-color: rgba(20, 100, 165, 0.2392156863); +} + +.select { + border-style: none; +} + +.nav-list .nav-list-item .nav-list-expander { + color: rgba(0, 0, 0, 0.7411764706); +} +.nav-list .nav-list-item .nav-list-link { + color: rgba(0, 0, 0, 0.7411764706); + font-weight: 400; + font-size: 1rem; +} +.nav-list .nav-list-item .nav-list-link.active { + color: rgba(0, 0, 0, 0.6); + font-weight: 500; + font-size: 1rem; +} + +.header-custom-main { + display: flex; + place-content: end; + column-gap: 10px; + margin-right: 33px; +} +.header-custom-main .select { + border-style: none; + background: transparent; +} +.header-custom-main .github-div { + display: flex; + align-items: center; +} +.header-custom-main .github-div > a { + display: flex; + align-items: center; +} + +.o-tab { + overflow: hidden; + padding-bottom: 6px; + /* Style the buttons that are used to open the tab content */ + /* Change background color of buttons on hover */ + /* Create an active/current tablink class */ +} +.o-tab button { + background-color: inherit; + float: left; + border: none; + outline: none; + cursor: pointer; + padding: 12px 16px; + transition: 0.3s; + font-size: 0.8em; + color: #333333; +} +.o-tab button:hover { + background-color: #93c7f2; + border-bottom: 2px solid rgba(20, 100, 165, 0.2392156863); +} +.o-tab button.active { + border-bottom: 2px solid #1464A5; +} + +/* Style the tab content */ +.o-tabcontent { + display: none; + padding: 6px 12px; + -webkit-animation: fadeEffect 1s; + animation: fadeEffect 1s; +} + +.o-component-container .list__item { + padding-right: 0; +} +.o-component-container .list__item .archive__item-excerpt { + margin-top: 0; + font-size: 0.75em; +} + +.mdl-data-table td[required] p.first:after { + content: " *"; +} + +.attributes-list { + overflow: hidden; +} +.attributes-list li { + display: inline-block; + width: 50%; + margin-bottom: 0.25em; + font-size: 18px; +} + +.faq-posts .panel-default .panel-heading { + color: #333; + background-color: #f5f5f5; + border-color: #ddd; + border-bottom: 0; + padding: 10px 30px; + border-bottom: 1px solid transparent; + border-top-left-radius: 3px; + border-top-right-radius: 3px; + cursor: pointer; +} +.faq-posts .panel-default .panel-title { + margin-top: 0; + margin-bottom: 0; + font-size: 16px; + color: inherit; +} +.faq-posts .panel-body { + padding: 15px; + font-size: 14px; +} +.faq-posts .panel { + margin-bottom: 0; + border-radius: 4px; + background-color: #fff; + border: 1px solid transparent; +} +.faq-posts .collapse { + display: none; +} +.faq-posts .collapse.in { + display: block; +} +.faq-posts .collapsing { + position: relative; + height: 0; + overflow: hidden; + -webkit-transition-property: height, visibility; + transition-property: height, visibility; + -webkit-transition-duration: 0.35s; + transition-duration: 0.35s; + -webkit-transition-timing-function: ease; + transition-timing-function: ease; +} + +/*# sourceMappingURL=just-the-docs-default.css.map */ \ No newline at end of file diff --git a/v1/assets/css/just-the-docs-default.css.map b/v1/assets/css/just-the-docs-default.css.map new file mode 100644 index 0000000..1e30249 --- /dev/null +++ b/v1/assets/css/just-the-docs-default.css.map @@ -0,0 +1 @@ +{"version":3,"sourceRoot":"","sources":["../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/vendor/OneLightJekyll/syntax.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/vendor/normalize.scss/normalize.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/base.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/color_schemes/light.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/support/mixins/_typography.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/support/mixins/_layout.scss","../../_sass/custom/setup.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/support/_variables.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/layout.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/content.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/navigation.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/typography.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/labels.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/buttons.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/support/mixins/_buttons.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/search.scss","../../_sass/color_schemes/ontimize-light.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/tables.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/code.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/utilities/_colors.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/utilities/_layout.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/utilities/_typography.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/utilities/_lists.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/utilities/_spacing.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/print.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/skiptomain.scss","just-the-docs-default.scss","../../_sass/custom/custom.scss"],"names":[],"mappings":";AAEA;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,aITO;EJUP;EACA,aKbiB;ELcjB,OKUY;ELTZ,kBKOM;ELNN;;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAYE;;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAOE;EACA;EACA;EACA,aK1CyB;EL2CzB,OKlBY;;;ALqBd;EACE;EACA;;;AAGF;EACE,OI5DY;EJ6DZ;;;AAGF;EACE;EACA,uBK/BY;ELgCZ;;AAEA;EACE;;;AAIJ;EACE,aKvEiB;ELwEjB;EACA,aKvEiB;;;AL0EnB;AAAA;EAEE;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA,kBK/DY;ELgEZ;;;AAIF;EACE;EAGA;EACA;EACA;EACA;;;AM7GF;EACE;EACA;EACA;EACA,kBFEK;;ADMH;EGZJ;IAOI;IACA;IACA,ODwFW;ICvFX;IACA;IACA;;;AHAA;EGZJ;IAgBI;IACA,WD+EQ;;;;AFpFR;EGSJ;IAEI;IACA,WD6EY;IC5EZ,aDwEW;;;AFrFX;EGSJ;IAUI;AAAA;AAAA;AAAA;;;;AAQJ;EHhBE,eEuDK;EFtDL,cEsDK;ECpCL,aDoCK;ECnCL,gBDmCK;;AFlEH;EG2BJ;IHZI,eEqDG;IFpDH,cEoDG;;;AFpEH;EG2BJ;IAOI,aDkCG;ICjCH,gBDiCG;;;;AC7BP;EACE;EACA;EACA,kBFhDK;;ADMH;EGuCJ;IAMI;IACA;IACA,QD2CY;IC1CZ,kBDjCI;ICkCJ;;;AAGF;EACE;;AHrDA;EGoDF;IAII;;;;AAKN;AAAA;AAAA;EAGE;;AHhEE;EG6DJ;AAAA;AAAA;IAMI,ODiBQ;;;;ACbZ;EACE;;AAEA;EACE;;AH3EA;EGuEJ;IAQI;IACA,aDVG;ICWH,gBDfG;ICgBH;IACA;;;;AAIJ;EACE;EACA,YDCc;ECAd;;AH1FE;EGuFJ;IAMI,QDHY;ICIZ,YDJY;ICKZ;;;;AAIJ;EHxFE,eEuDK;EFtDL,cEsDK;ECoCL;EACA;EACA;EACA;EACA,aDzCK;EC0CL,gBD1CK;EC2CL,ODxFY;EHOZ;;AC3BE;EGmGJ;IHpFI,eEqDG;IFpDH,cEoDG;;;AFpEH;EGmGJ;IJrEI;IACA,aGpCuB;;;AFKvB;EGmGJ;IAaI,aDhDG;ICiDH,gBDjDG;;;;ACsDL;EACE;EACA;EACA;EACA;EACA;EACA;;;AAIJ;EACE;EACA;EACA,SDjEK;ECkEL;;;AHpIE;EGwIF;IACE;;;AAIJ;EACE;;;AAQF;EACE;;;AASF;EACE;EACA,gBD1FM;EC2FN;;AHnKE;EGgKJ;IAMI;IACA;;;;AAMJ;EHlKE,eEuDK;EFtDL,cEsDK;EC8GL;EACA;EACA;EACA,aDjHK;ECkHL,gBDlHK;ECmHL,ODrKY;EHrBZ;;ACKE;EG6KJ;IH9JI,eEqDG;IFpDH,cEoDG;;;AFpEH;EG6KJ;IJ/KI;;;ACEA;EG6KJ;IAYI;IACA;;;;AAIJ;EACE,OD5HK;EC6HL,QD7HK;EC8HL,OF9MY;;;AGId;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;EL9BN;;ACHE;EI2BE;ILrBF;;;ACNA;EI2BE;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;;AJ1JA;EImJF;IAUI;IACA;;;AAGF;EACE;EACA;EACA;EACA,OHlLQ;EGmLR;;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;ENgBA;EMbE;EACA;;ALCA;EKLF;INmBE;;;ACdA;EKLF;INQA;;;ACHE;EKLF;INWE;;;AMDA;EACE;EACA,YH+DC;EG9DD,aHuDC;EGtDD,gBHsDC;EGrDD;EAEE,eH0DD;EGzDC,cHqDD;;AFlEH;EKKA;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,OJ3EQ;;ADaV;EKqDA;IAYI,OHGD;IGFC,QHED;IGDC;;;AAGF;EACE;;AAQA;EACE;;AAKN;EACE;EACA,cHtBC;EGuBD;;AAEA;EACE;;AAEA;EACE,OJrGA;;AIwGF;EACE,OJzGA;;AI+GJ;EAEI;;AAMJ;EACE;;;AAMR;EACE;EACA;EACA;EACA;EACA;ENjIA;;ACKE;EKuHJ;INzHI;;;ACEA;EKuHJ;IASI;IACA,YH/DG;IGgEH;;EAEA;IACE;;;;AAMJ;EACE;;AAEA;EACE;;AAGE;EACE,OJhKI;;AImKN;EACE,OJpKI;;;AI6Kd;EACE;EACA;ENvKA;;ACKE;EKgKJ;INlKI;;;AMuKF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;ALjLA;EKgKJ;IAqBI,eHnHG;;;;AFlEH;EK2LJ;IAEI;;;;AAIJ;EACE;EACA,eHlIK;EGmIL;;;AAGF;EACE;EN7MA;;ACKE;EKuMJ;INzMI;;;AM6MF;EACE;;AAGF;EACE;EACA,cHjJG;EGkJH,aHlJG;EGmJH,OHnMU;EGoMV;;AAIA;EACE;;;ACpON;AAAA;EPwDE;EACA,aGnDyB;EIFzB;;ANOE;EMXJ;AAAA;IP4DI;;;;AOrDJ;AAAA;AAAA;EP+BE;;AC3BE;EMJJ;AAAA;AAAA;IPkCI;IACA,aGpCuB;;;;AIO3B;AAAA;EPiBE;;ACnBE;EMEJ;AAAA;IPoBI;;;;AOfJ;AAAA;EPZE;EOgBA;EACA;EACA;;ANbE;EMOJ;AAAA;IPTI;;;;AOkBJ;EACE;;;AAGF;AAAA;EPjBE;;ACHE;EMoBJ;AAAA;IPdI;;;;AOmBJ;AAAA;EP9BE;;ACKE;EMyBJ;AAAA;IP3BI;;;;AOgCJ;EPnCE;;ACKE;EM8BJ;IPhCI;;;;AOoCJ;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;ACvDF;AAAA;EAEE;EACA;EACA,cLoEK;EKnEL,aLmEK;EKlEL,OLiBM;EKhBN;EACA;EACA,kBL6BS;EHnCT;EQSA;;APJE;EORJ;AAAA;IRMI;;;;AQSJ;EACE,kBL2BU;;;AKxBZ;EACE,kBLcW;;;AKXb;EACE,kBL2BQ;;;AKxBV;EACE,OLFY;EKGZ,kBLkBW;;;AMlDb;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,OPXY;EOYZ;EACA;EACA;EACA,kBPRK;EOSL;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,OPzEY;EO0EZ;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;;AVME;EUZJ;IASI;IACA;IACA;IACA;IACA;;;;AAIJ;EACE;EACA;EACA,QR8DK;EQ7DL;EACA,eRmEc;EQlEd,YACE;EAEF;;AVdE;EUKJ;IAYI;IACA;IACA,WRwEmB;IQvEnB;IACA;IACA;IACA;;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA,ORhBY;EQiBZ,kBRnBM;EQoBN;EACA;EACA;EACA;EACA;;AVvCE;EU2BJ;IAeI;IACA;IACA,kBR7BI;IQ8BJ;;;AAGF;EACE;;AAEA;EACE,OTjEQ;;;ASsEd;EACE;EACA;EACA;EACA,cRKK;;AFlEH;EUyDJ;IAOI,cRIG;IQHH;;;AAGF;EACE;EACA;EACA;EACA,ORxDU;;;AQ4Dd;EACE;EACA;EACA;EACA;EACA;EACA;EACA,kBRpEM;EQqEN,4BRPc;EQQd,2BRRc;EQSd,YACE;;AVvFA;EU4EJ;IAeI;IACA,ORDmB;IQEnB;;;;AAIJ;EACE;EACA,eRpCK;EQqCL;EXzFA;;ACXE;EUiGJ;IXnFI;;;ACdA;EUiGJ;IX9FE;;;ACHE;EUiGJ;IX3FI;;;;AWsGJ;EACE;EACA;;;AAGF;EACE;EACA;;AAEA;EAEE,kBCjIa;;;ADqIjB;EACE;EACA,aR7DK;EQ8DL,gBR9DK;;AFhEH;EU2HJ;IAMI;IACA;IACA,eRnEG;IQoEH;;;;AAIJ;EACE;EACA;EACA;;AAEA;EACE;EX3IF;;ACHE;EU6IF;IXvIE;;;ACNA;EU6IF;IXlJA;;;ACKE;EU6IF;IX/IE;;;AWwJF;EACE,ORrFG;EQsFH,QRtFG;EQuFH,cRzFG;EQ0FH,OTvKU;ESwKV;;AAGF;EACE;;;AAIJ;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA,OR5JY;EQ6JZ;EACA;EX3LA;;ACaE;EUwKJ;IXlLI;;;;AW4LJ;EACE;EACA,aRpHK;EQqHL,gBRrHK;EQsHL,cRpHK;EQqHL,aRvHK;EQwHL,ORxKY;EQyKZ;EACA,aR9GO;EQ+GP,mBRrKY;EH3BZ;;ACKE;EUkLJ;IXpLI;;;ACEA;EUkLJ;IAaI;IACA;IACA,cRjIG;IQkIH;IACA;;;;AAIJ;EACE,YRzIK;;;AQ4IP;EACE;;;AAGF;EACE;EX7MA;;ACHE;EU+MJ;IXzMI;;;;AW8MJ;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;;AVhQA;EU8PF;IAKI,ORxKiB;IQyKjB,YACE;;;AAKN;EACE,kBR5PI;;AFfJ;EU0QF;IAII;;;AV9QF;EUkRF;IAEI;;;AAIJ;EACE;;AAGF;EACE;EACA;EACA;EACA,YACE;;AVjSF;EUuSA;IACE;IACA;IACA;;;AAIJ;EACE,aRvOI;;AFxEJ;EU8SF;IAII;;;;AE7TN;EACE;EACA;EACA;EACA,eV0EK;EUzEL;EACA,eVkFc;EUjFd,YACE;;;AAIJ;EACE;EACA;EACA;;;AAGF;AAAA;EbJE;EaQA;EACA;EACA,kBVEM;EUDN;EACA;;AZfE;EYOJ;AAAA;IbDI;;;AaWF;AAAA;EACE;;;AAOE;AAAA;EAEE;;AAGF;EACE,gBVkCD;;;AU3BL;EACE;;;AC9CF;EACE;EACA;EACA,kBZFG;EYGH;EACA,eX+EY;;;AW1EhB;EACE,cXkBY;;;AWiCd;AAAA;AAAA;EAGE;EACA,eXMK;EWLL,kBZlEK;EYmEL,eXgBc;EWfd;EACA;EACA;EACA;;AAIA;AAAA;AAAA;EACE,OXLG;EWMH;EACA;EACA;EACA;EACA;EACA,kBZlFG;EYmFH,OX5DU;EW6DV;;AAEA;AAAA;AAAA;EACE,MXhEQ;;AWmEV;AAAA;AAAA;EACE;EACA;EACA;;AAGF;AAAA;AAAA;EACE;;AAMF;AAAA;AAAA;EACE;EACA;;;AASJ;EACE;EACA,SX7CG;EW8CH;EACA;;AAGF;AAAA;EAEE;EACA;EACA;;;AAUJ;EAGE;EACA,eXpEK;;AW2CL;EACE;EACA,SX7CG;EW8CH;EACA;;AAGF;AAAA;EAEE;EACA;EACA;;;AAwBF;AAAA;EAEE;EACA,SXjFG;EWkFH;EACA;;;AAQJ;EACE;EACA;EACA;EACA;;AAEA;AAAA;EdvKA;Ec2KE;EACA;EACA,kBZ9KG;EY+KH;;AbzKA;EakKF;AAAA;IdpKE;;;Ac8KF;EACE;EACA,eX7GG;EW8GH,cX9GG;;AWiHL;EACE;EACA;;;AAKJ;AAAA;EAEE,SX1HK;EW2HL,eX3HK;EW4HL;EACA;EACA,eXlHc;;AWoHd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAIE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAKJ;EACE;EACA;EACA;;;AAIF;AAAA;EAEE,YZ/NK;EYoOH,OX7MU;;;AWkNd;EACE,YZ1OK;;;AaJP;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;;;AfPE;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Af9BJ;EeiBE;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;EjBDE;;ACaE;EgBZJ;IjBEI;;;;AiBEJ;EjBGE;;ACKE;EgBRJ;IjBMI;;;;AiBFJ;EjBOE;;ACHE;EgBJJ;IjBUI;;;;AiBNJ;EjBWE;;ACXE;EgBAJ;IjBcI;;;;AiBVJ;EjBeE;;ACnBE;EgBIJ;IjBkBI;;;;AiBdJ;EjBmBE;;AC3BE;EgBQJ;IjBsBI;IACA,aGpCuB;;;;AciB3B;EjBwBE;EACA,aG1CyB;;AFKvB;EgBYJ;IjB4BI;;;;AiBxBJ;EjB6BE;EACA,aGnDyB;;AFKvB;EgBgBJ;IjBiCI;;;;AiB7BJ;EjBkCE;EACA,aG5DyB;;AFKvB;EgBoBJ;IjBsCI;;;;AiBlCJ;EjBuCE;EACA,aGrEyB;;AFKvB;EgBwBJ;IjB2CI;;;;AiBvCJ;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE,adxDiB;;;Ac2DnB;EACE,ad1DyB;;;Ac6D3B;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;;;AlBlCA;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AlBzEJ;EkB6CE;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;;;AlB7GA;EkBwHE;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;;;AlB/IJ;EkBwHE;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;;;AlB/IJ;EkBwHE;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;;;AlB/IJ;EkBwHE;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;;;AlB/IJ;EkBwHE;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;;;AlB/IJ;EkBwHE;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;;;AlB/IJ;EkBwHE;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;;;AlB/IJ;EkBwHE;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,OnBdY;EmBeZ,kBlBaM;EkBZN;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;ACjBF;EACE,kBnBiBM;;;AmBhBP;EACG;EACA;EACA,enB2EY;EmB1EZ;EACA;;AAEA;EACE,OnBaQ;EmBZR;EACA;EACA;EACA;EACA;;;AAIN;EACI;EACA;EACA,enB0DY;EmBzDZ;EACA;;AACA;EACE;EACA;EACA,OnBLQ;EmBMR;EACA;EACA;EACA;EACA;;;AAIN;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;AAIJ;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;AAIJ;EACI;EACA;EACA,enBcY;EmBbZ;EACA;;AAEA;EACI,OnBhDM;EmBiDN;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACE,OnB1DQ;EmB2DR;EACA;EACA;EACA;EACA;;;AAIN;EACI;EACA;EACA,enBbY;EmBcZ;EACA;;AACA;EACE;EACA;EACA,OnB5EQ;EmB6ER;EACA;EACA;EACA;EACA;;;AAIN;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;AAIJ;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;AAIJ;EACI;EACA;EACA,enBzDY;EmB0DZ;EACA;;AAEA;EACI,OpBxJM;EoByJN;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACE,OpBlKQ;EoBmKR;EACA;EACA;EACA;EACA;;;AAIN;EACI;EACA;EACA,enBpFY;EmBqFZ;EACA;;AACA;EACE;EACA;EACA,OpBpLQ;EoBqLR;EACA;EACA;EACA;EACA;;;AAIN;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;AAIJ;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;AAIJ;EACI;EACA;EACA,enBhIY;EmBiIZ;EACA;;AAEA;EACI,OnBtKE;EmBuKF;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACE,OnBhLI;EmBiLJ;EACA;EACA;EACA;EACA;;;AAIN;EACI;EACA;EACA,enB3JY;EmB4JZ;EACA;;AACA;EACE;EACA;EACA,OnBlMI;EmBmMJ;EACA;EACA;EACA;EACA;;;AAIN;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;AAIJ;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;AC1RJ;EACE;IACE;IACA;IACA;;;AtBSA;EsBJJ;IAII;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,kBpBKI;IoBJJ;;;;AAIJ;EACE;;AACA;EACE;EACA;EvBAF;EuBOE,OrBvCU;EqBwCV,kBrBpCS;EqBqCT;;AtB5BA;EsBiBF;IvBKE;;;ACtBA;EsBiBF;IvBNA;;;ACXE;EsBiBF;IvBHE;;;;AuBkBJ;EvBbE;EuBqBA;EACA;EACA;EACA;;AtB3CE;EsBgCJ;IvBVI;;;ACtBA;EsBgCJ;IvBrBE;;;ACXE;EsBgCJ;IvBlBI;;;AuB+BF;EACE;;AAGF;EACE;EACA,OrB3DM;;AqB6DN;EACE,OrB7DI;EqB8DJ;;AAIJ;EACE;EACA;EACA;;;AAMJ;EACE;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;IACA;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;IACA;IACA,kBrBrGS;;;AqB0Gb;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;;;AAIJ;EACE;EACA;EACA;;;AAKF;EACE;;;AAGF;EACE;IACE;IACA;;;AAIJ;EACE;IACE;IACA;;EAGF;IACE;IACA;;;AAIJ;EACE;IACE;;;AAMJ;EACE;EACA;;;AAMF;EACE,OrB1MY;;;ADWV;EsBmMJ;IAEI;;;AAGF;EACE;EACA,epBzIG;EoB0IH;;AAGF;EACE;EvBpNF;;ACKE;EsB8MF;IvBhNE;;;AuBoNA;EACE;;AAGF;EACE;EACA,cpBxJC;EoByJD,apBzJC;EoB0JD,OpB1MQ;EoB2MR;;AAIA;EACE;;;AAQR;EACE;;;AAIF;EACE;EACA,uBpBzNY;EoB0NZ;;AAEA;EACE,uBrB7Pa;;;AqBkQjB;EACE;;;AAOE;EACE,OrBzQI;;AqB4QN;EACE,OrB7QI;EqB8QJ;EAEA,WpBnQQ;;AoBqQR;EACE,OrBlRE;EqBmRF;EACA,WpBxQM;;;AoB+Qd;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;EACA;;AAEA;EACE;EACA;;;AAMN;EACE;EACA;AAEA;AAaA;AAMA;;AAlBA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAIF;EACE;EACA;;AAIF;EACE;;;AAKJ;AACA;EACE;EACA;EACA;EACA;;;AAIA;EACE;;AAEA;EACE;EACA;;;AAUE;EACE;;;AAQV;EACE;;AAEA;EACE;EACA;EACA;EACA;;;AAWA;EACE;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAIJ;EACE;EACA;;AAGF;EACE;EACA;EAEA;EACA;;AAMF;EACE;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA","sourcesContent":["// 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","// custom setup code goes here\n$primary-500: #1464A5;\n$primary-400: #377BB3;\n$primary-900: #063679;\n$primary-500-24: #1464A53D;\n$primary-50: #E3ECF4;\n$dark-74: #000000BD;\n$dark-60: #00000099;\n$grey: #F6F6F6;\n$roboto: 'Roboto', sans-serif;\n\n// media queries\n$custom-media-queries: (home-header: 800px,\n home-imgs-max: 2880px,\n mobile-m: 375px);\n$media-queries: map-merge($media-queries, $custom-media-queries);","// 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\n.main {\n @include mq(md) {\n position: relative;\n max-width: $content-width;\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\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 display: none;\n background-color: $sidebar-color;\n\n @include mq(md) {\n display: flex;\n justify-content: space-between;\n height: $header-height;\n background-color: $body-background-color;\n border-bottom: $border $border-color;\n }\n\n &.nav-open {\n display: block;\n\n @include mq(md) {\n display: flex;\n }\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","// Colors\n$link-color: $primary-500;\n$nav-child-link-color: $dark-60;\n$sidebar-color: $grey;\n$feedback-color: #EAEAEA;\n$btn-primary-color: $primary-500;\n$base-button-color: $grey;\n$code-background-color: $grey;\n$blue-300: $primary-500;\n$blue-200: $primary-400;\n$blue-000: $primary-50;\n\n// Font\n$body-font-family: $roboto;\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$logo: \"/docs/v1/assets/icons/logo-ontimize-blanco.png\";\n\n@import \"./support/support\";\n@import \"./custom/setup\";\n@import \"./color_schemes/light\";\n\n@import \"./color_schemes/ontimize-light\";\n\n@import \"./modules\";\ndiv.opaque {\n background-color: $body-background-color;\n}p.highlight, blockquote.highlight {\n background: rgba($grey-dk-000, 0.2);\n border-left: $border-radius solid $grey-dk-300;\n border-radius: $border-radius;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);\n padding: .8rem;\n \n > .highlight-title {\n color: $grey-dk-300;\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n}\n\np.highlight-title, blockquote.highlight-title {\n background: rgba($grey-dk-000, 0.2);\n border-left: $border-radius solid $grey-dk-300;\n border-radius: $border-radius;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);\n padding: .8rem;\n > p:first-child {\n margin-top: 0;\n margin-bottom: 0;\n color: $grey-dk-300;\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n}\n\nblockquote.highlight {\n margin-left: 0;\n margin-right: 0;\n \n > p:first-child {\n margin-top: 0;\n }\n \n > p:last-child {\n margin-bottom: 0;\n }\n}\n\nblockquote.highlight-title {\n margin-left: 0;\n margin-right: 0;\n \n > p:nth-child(2) {\n margin-top: 0;\n }\n \n > p:last-child {\n margin-bottom: 0;\n }\n}\n\np.important, blockquote.important {\n background: rgba($grey-dk-000, 0.2);\n border-left: $border-radius solid $grey-dk-300;\n border-radius: $border-radius;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);\n padding: .8rem;\n \n &::before {\n color: $grey-dk-300;\n content: \"Important\";\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n \n > .important-title {\n color: $grey-dk-300;\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n}\n\np.important-title, blockquote.important-title {\n background: rgba($grey-dk-000, 0.2);\n border-left: $border-radius solid $grey-dk-300;\n border-radius: $border-radius;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);\n padding: .8rem;\n > p:first-child {\n margin-top: 0;\n margin-bottom: 0;\n color: $grey-dk-300;\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n}\n\nblockquote.important {\n margin-left: 0;\n margin-right: 0;\n \n > p:first-child {\n margin-top: 0;\n }\n \n > p:last-child {\n margin-bottom: 0;\n }\n}\n\nblockquote.important-title {\n margin-left: 0;\n margin-right: 0;\n \n > p:nth-child(2) {\n margin-top: 0;\n }\n \n > p:last-child {\n margin-bottom: 0;\n }\n}\n\np.note, blockquote.note {\n background: rgba($blue-000, 1);\n border-left: $border-radius solid $blue-300;\n border-radius: $border-radius;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);\n padding: .8rem;\n \n &::before {\n color: $blue-300;\n content: \"Note\";\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n \n > .note-title {\n color: $blue-300;\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n}\n\np.note-title, blockquote.note-title {\n background: rgba($blue-000, 1);\n border-left: $border-radius solid $blue-300;\n border-radius: $border-radius;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);\n padding: .8rem;\n > p:first-child {\n margin-top: 0;\n margin-bottom: 0;\n color: $blue-300;\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n}\n\nblockquote.note {\n margin-left: 0;\n margin-right: 0;\n \n > p:first-child {\n margin-top: 0;\n }\n \n > p:last-child {\n margin-bottom: 0;\n }\n}\n\nblockquote.note-title {\n margin-left: 0;\n margin-right: 0;\n \n > p:nth-child(2) {\n margin-top: 0;\n }\n \n > p:last-child {\n margin-bottom: 0;\n }\n}\n\np.warning, blockquote.warning {\n background: rgba($red-000, 0.2);\n border-left: $border-radius solid $red-300;\n border-radius: $border-radius;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);\n padding: .8rem;\n \n &::before {\n color: $red-300;\n content: \"Warning\";\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n \n > .warning-title {\n color: $red-300;\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n}\n\np.warning-title, blockquote.warning-title {\n background: rgba($red-000, 0.2);\n border-left: $border-radius solid $red-300;\n border-radius: $border-radius;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);\n padding: .8rem;\n > p:first-child {\n margin-top: 0;\n margin-bottom: 0;\n color: $red-300;\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n}\n\nblockquote.warning {\n margin-left: 0;\n margin-right: 0;\n \n > p:first-child {\n margin-top: 0;\n }\n \n > p:last-child {\n margin-bottom: 0;\n }\n}\n\nblockquote.warning-title {\n margin-left: 0;\n margin-right: 0;\n \n > p:nth-child(2) {\n margin-top: 0;\n }\n \n > p:last-child {\n margin-bottom: 0;\n }\n}\n\n\n@import \"./custom/custom\";\n\n\n","// Sticky header\n@media (min-width: 50rem){\n #main-header{\n position: sticky;\n top:0;\n z-index:999\n }\n}\n\n// Ontimize TOC\n.sidebar__right {\n @include mq(md) {}\n\n @include mq(lg) {\n position: fixed;\n top: 64px;\n right: 0px;\n max-height: calc(100% - 112px);\n min-height: fit-content;\n width: 360px;\n padding-bottom: 20px;\n border: 1px solid $border-color;\n border-radius: 4px;\n overflow: auto;\n background-color: $body-background-color;\n z-index: 999;\n }\n}\n\n.toc {\n letter-spacing: 1px;\n .nav__title {\n margin: 0;\n cursor: pointer;\n @include fs-5;\n\n @include mq(md) {\n @include fs-4;\n }\n\n color: $primary-500;\n background-color: $primary-50;\n padding: 20px 14px 8px 14px;\n }\n}\n\n.toc__menu {\n\n @include fs-5;\n\n @include mq(md) {\n @include fs-4;\n }\n\n margin: 0;\n padding: 0;\n width: 100%;\n list-style: none;\n\n li::before {\n content: \"\" !important;\n }\n\n a {\n text-decoration: none;\n color: $dark-74;\n\n &.active {\n color: $dark-60;\n font-weight: 500;\n }\n }\n\n li ul>li a {\n padding-top: 0.2rem;\n border: none;\n text-transform: none;\n\n }\n}\n\n//Ontimize TOC screen size bigger than 66.5 rem\n@media (min-width: 66.5rem){\n .toc__menu.collapsed {\n display: none;\n }\n\n .toc.collapsed{\n position: relative;\n bottom: 14px;\n }\n\n .nav__title.collapsed{\n font-size: 15px !important;\n height: 30px;\n cursor: pointer;\n }\n\n .sidebar__right.collapsed{\n padding-bottom: 0px;\n width: auto;\n transform: rotate(270deg);\n transform-origin: bottom right;\n top: calc(64px - 30px);\n height: 30px;\n overflow: hidden;\n background-color: $primary-50;\n }\n}\n\n//Multicolumn\n.multicolumn {\n display: flex;\n}\n\n.toggle-tree-btn {\n all: unset;\n margin-bottom: 10px;\n align-self: flex-end;\n position: absolute;\n top: 8px;\n right: 8px;\n cursor: pointer;\n}\n\n.multicolumnleft {\n flex: 1;\n max-width: 100%;\n overflow-x: auto;\n padding: 0 40px 0 0;\n box-sizing: border-box;\n position: relative;\n}\n\n.multicolumnnopadding {\n flex: 1;\n max-width: 100%;\n overflow-x: auto;\n padding: 0 0 0 0;\n box-sizing: border-box;\n}\n\n.multicolumnright {\n box-sizing: border-box;\n border-left: 1px solid #ccc;\n transition: width 0.3s ease;\n overflow-x: auto;\n\n &.collapsed {\n width: 0;\n overflow: hidden;\n padding: 0;\n border-left: none;\n display: none;\n }\n}\n\n.verticalDivider {\n border-left: 1px solid #F2F3F3;\n padding-right: 10px;\n margin-left: 10px;\n}\n\n\n// //jstree\n.jstreeloader ul>li::before {\n content: \"\";\n}\n\n@media (min-width: 50rem) and ((max-width: 66.5rem)){\n #top.main{\n max-width: none;\n margin-left: 16.5rem;\n }\n}\n\n@media (min-width: 66.5rem){\n body>div.side-bar{\n min-width: auto;\n width:auto,\n }\n\n #top.main{\n max-width: none;\n margin-left: calc(16.5rem + 1px);\n }\n}\n\n@media (min-width: 50rem){\n div.side-bar {\n width: 16.5rem;\n }\n\n\n}\n\ntable {\n table-layout: auto;\n width: 120px;\n}\n\n\n\n// Custom text colors\n.text-primary-900 {\n color: $primary-900\n}\n\n// breadcrumbs.html include style\n.breadcrumbs {\n @include mq(md) {\n margin-top: -$sp-4;\n }\n\n ol {\n padding-left: 0;\n margin-bottom: $sp-3;\n list-style: none;\n }\n\n li {\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\n}\n\n// Button outline style\n.btn:focus {\n display: none;\n}\n\n// Links\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: $primary-500-24;\n }\n}\n\n// Header version changer\n.select {\n border-style: none;\n}\n\n// Default side bar\n.nav-list {\n .nav-list-item {\n\n .nav-list-expander {\n color: $dark-74;\n }\n\n .nav-list-link {\n color: $dark-74;\n font-weight: 400;\n // 16px\n font-size: $font-size-5;\n\n &.active {\n color: $dark-60;\n font-weight: 500;\n font-size: $font-size-5;\n }\n }\n }\n}\n\n// Style of the header version changer\n.header-custom-main {\n display: flex;\n place-content: end;\n column-gap: 10px;\n margin-right: 33px;\n\n .select {\n border-style: none;\n background: transparent;\n }\n\n .github-div {\n display: flex;\n align-items: center;\n\n >a {\n display: flex;\n align-items: center;\n }\n }\n}\n\n// Style of the component-api tabs\n.o-tab {\n overflow: hidden;\n padding-bottom: 6px;\n\n /* Style the buttons that are used to open the tab content */\n button {\n background-color: inherit;\n float: left;\n border: none;\n outline: none;\n cursor: pointer;\n padding: 12px 16px;\n transition: .3s;\n font-size: 0.8em;\n color: #333333;\n }\n\n /* Change background color of buttons on hover */\n button:hover {\n background-color: lighten($primary-500, 40%);\n border-bottom: 2px solid $primary-500-24;\n }\n\n /* Create an active/current tablink class */\n button.active {\n border-bottom: 2px solid $primary-500;\n }\n\n}\n\n/* Style the tab content */\n.o-tabcontent {\n display: none;\n padding: 6px 12px;\n -webkit-animation: fadeEffect 1s;\n animation: fadeEffect 1s;\n}\n\n.o-component-container {\n .list__item {\n padding-right: 0;\n\n .archive__item-excerpt {\n margin-top: 0;\n font-size: .75em;\n }\n }\n}\n\n// Api tables\n.mdl-data-table {\n td {\n &[required] {\n p.first {\n &:after {\n content: ' *';\n }\n }\n }\n }\n}\n\n// Api attribute inhereds\n.attributes-list {\n overflow: hidden;\n\n li {\n display: inline-block;\n width: 50%;\n margin-bottom: .25em;\n font-size: 18px;\n }\n}\n\n\n\n// FAQ page\n\n.faq-posts {\n .panel-default {\n\n .panel-heading {\n color: #333;\n background-color: #f5f5f5;\n border-color: #ddd;\n border-bottom: 0;\n\n padding: 10px 30px;\n border-bottom: 1px solid transparent;\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n cursor: pointer;\n }\n\n .panel-title {\n margin-top: 0;\n margin-bottom: 0;\n font-size: 16px;\n color: inherit;\n }\n }\n\n .panel-body {\n padding: 15px;\n font-size: 14px;\n }\n\n .panel {\n margin-bottom: 0;\n border-radius: 4px;\n\n background-color: #fff;\n border: 1px solid transparent;\n\n //-webkit-box-shadow: 0 1px 1px rgba(0,0,0,.05);\n //box-shadow: 0 1px 1px rgba(0,0,0,.05);\n }\n\n .collapse {\n display: none;\n\n &.in {\n display: block;\n }\n }\n\n .collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n -webkit-transition-property: height, visibility;\n transition-property: height, visibility;\n -webkit-transition-duration: .35s;\n transition-duration: .35s;\n -webkit-transition-timing-function: ease;\n transition-timing-function: ease;\n }\n}"],"file":"just-the-docs-default.css"} \ No newline at end of file diff --git a/v1/assets/css/just-the-docs-light.css b/v1/assets/css/just-the-docs-light.css new file mode 100644 index 0000000..df5641a --- /dev/null +++ b/v1/assets/css/just-the-docs-light.css @@ -0,0 +1,10222 @@ +@charset "UTF-8"; +.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) { + .main { + position: relative; + max-width: 50rem; + margin-left: 15.5rem; + } +} +@media (min-width: 66.5rem) { + .main { + margin-left: max( + 16.5rem, + calc((100% - 66.5rem) / 2 + 16.5rem) + ); + } +} + +.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; + display: none; + background-color: #f5f6fa; +} +@media (min-width: 50rem) { + .main-header { + display: flex; + justify-content: space-between; + height: 3.75rem; + background-color: #fff; + border-bottom: 1px solid #eeebee; + } +} +.main-header.nav-open { + display: block; +} +@media (min-width: 50rem) { + .main-header.nav-open { + display: flex; + } +} + +.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-logo { + width: 100%; + height: 100%; + background-image: url("/docs/v1/assets/icons/logo-ontimize-blanco.png"); + background-repeat: no-repeat; + background-position: left center; + background-size: contain; +} + +.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; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-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; + } +} +@media (min-width: 800px) { + .m-home-header-0 { + margin: 0 !important; + } + .mt-home-header-0 { + margin-top: 0 !important; + } + .mr-home-header-0 { + margin-right: 0 !important; + } + .mb-home-header-0 { + margin-bottom: 0 !important; + } + .ml-home-header-0 { + margin-left: 0 !important; + } + .mx-home-header-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .my-home-header-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .mxn-home-header-0 { + margin-right: -0 !important; + margin-left: -0 !important; + } +} +@media (min-width: 800px) { + .m-home-header-1 { + margin: 0.25rem !important; + } + .mt-home-header-1 { + margin-top: 0.25rem !important; + } + .mr-home-header-1 { + margin-right: 0.25rem !important; + } + .mb-home-header-1 { + margin-bottom: 0.25rem !important; + } + .ml-home-header-1 { + margin-left: 0.25rem !important; + } + .mx-home-header-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .my-home-header-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .mxn-home-header-1 { + margin-right: -0.25rem !important; + margin-left: -0.25rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-2 { + margin: 0.5rem !important; + } + .mt-home-header-2 { + margin-top: 0.5rem !important; + } + .mr-home-header-2 { + margin-right: 0.5rem !important; + } + .mb-home-header-2 { + margin-bottom: 0.5rem !important; + } + .ml-home-header-2 { + margin-left: 0.5rem !important; + } + .mx-home-header-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .my-home-header-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .mxn-home-header-2 { + margin-right: -0.5rem !important; + margin-left: -0.5rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-3 { + margin: 0.75rem !important; + } + .mt-home-header-3 { + margin-top: 0.75rem !important; + } + .mr-home-header-3 { + margin-right: 0.75rem !important; + } + .mb-home-header-3 { + margin-bottom: 0.75rem !important; + } + .ml-home-header-3 { + margin-left: 0.75rem !important; + } + .mx-home-header-3 { + margin-right: 0.75rem !important; + margin-left: 0.75rem !important; + } + .my-home-header-3 { + margin-top: 0.75rem !important; + margin-bottom: 0.75rem !important; + } + .mxn-home-header-3 { + margin-right: -0.75rem !important; + margin-left: -0.75rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-4 { + margin: 1rem !important; + } + .mt-home-header-4 { + margin-top: 1rem !important; + } + .mr-home-header-4 { + margin-right: 1rem !important; + } + .mb-home-header-4 { + margin-bottom: 1rem !important; + } + .ml-home-header-4 { + margin-left: 1rem !important; + } + .mx-home-header-4 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .my-home-header-4 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .mxn-home-header-4 { + margin-right: -1rem !important; + margin-left: -1rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-5 { + margin: 1.5rem !important; + } + .mt-home-header-5 { + margin-top: 1.5rem !important; + } + .mr-home-header-5 { + margin-right: 1.5rem !important; + } + .mb-home-header-5 { + margin-bottom: 1.5rem !important; + } + .ml-home-header-5 { + margin-left: 1.5rem !important; + } + .mx-home-header-5 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .my-home-header-5 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .mxn-home-header-5 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-6 { + margin: 2rem !important; + } + .mt-home-header-6 { + margin-top: 2rem !important; + } + .mr-home-header-6 { + margin-right: 2rem !important; + } + .mb-home-header-6 { + margin-bottom: 2rem !important; + } + .ml-home-header-6 { + margin-left: 2rem !important; + } + .mx-home-header-6 { + margin-right: 2rem !important; + margin-left: 2rem !important; + } + .my-home-header-6 { + margin-top: 2rem !important; + margin-bottom: 2rem !important; + } + .mxn-home-header-6 { + margin-right: -2rem !important; + margin-left: -2rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-7 { + margin: 2.5rem !important; + } + .mt-home-header-7 { + margin-top: 2.5rem !important; + } + .mr-home-header-7 { + margin-right: 2.5rem !important; + } + .mb-home-header-7 { + margin-bottom: 2.5rem !important; + } + .ml-home-header-7 { + margin-left: 2.5rem !important; + } + .mx-home-header-7 { + margin-right: 2.5rem !important; + margin-left: 2.5rem !important; + } + .my-home-header-7 { + margin-top: 2.5rem !important; + margin-bottom: 2.5rem !important; + } + .mxn-home-header-7 { + margin-right: -2.5rem !important; + margin-left: -2.5rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-8 { + margin: 3rem !important; + } + .mt-home-header-8 { + margin-top: 3rem !important; + } + .mr-home-header-8 { + margin-right: 3rem !important; + } + .mb-home-header-8 { + margin-bottom: 3rem !important; + } + .ml-home-header-8 { + margin-left: 3rem !important; + } + .mx-home-header-8 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .my-home-header-8 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .mxn-home-header-8 { + margin-right: -3rem !important; + margin-left: -3rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-9 { + margin: 3.5rem !important; + } + .mt-home-header-9 { + margin-top: 3.5rem !important; + } + .mr-home-header-9 { + margin-right: 3.5rem !important; + } + .mb-home-header-9 { + margin-bottom: 3.5rem !important; + } + .ml-home-header-9 { + margin-left: 3.5rem !important; + } + .mx-home-header-9 { + margin-right: 3.5rem !important; + margin-left: 3.5rem !important; + } + .my-home-header-9 { + margin-top: 3.5rem !important; + margin-bottom: 3.5rem !important; + } + .mxn-home-header-9 { + margin-right: -3.5rem !important; + margin-left: -3.5rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-10 { + margin: 4rem !important; + } + .mt-home-header-10 { + margin-top: 4rem !important; + } + .mr-home-header-10 { + margin-right: 4rem !important; + } + .mb-home-header-10 { + margin-bottom: 4rem !important; + } + .ml-home-header-10 { + margin-left: 4rem !important; + } + .mx-home-header-10 { + margin-right: 4rem !important; + margin-left: 4rem !important; + } + .my-home-header-10 { + margin-top: 4rem !important; + margin-bottom: 4rem !important; + } + .mxn-home-header-10 { + margin-right: -4rem !important; + margin-left: -4rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-0 { + margin: 0 !important; + } + .mt-home-imgs-max-0 { + margin-top: 0 !important; + } + .mr-home-imgs-max-0 { + margin-right: 0 !important; + } + .mb-home-imgs-max-0 { + margin-bottom: 0 !important; + } + .ml-home-imgs-max-0 { + margin-left: 0 !important; + } + .mx-home-imgs-max-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .my-home-imgs-max-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .mxn-home-imgs-max-0 { + margin-right: -0 !important; + margin-left: -0 !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-1 { + margin: 0.25rem !important; + } + .mt-home-imgs-max-1 { + margin-top: 0.25rem !important; + } + .mr-home-imgs-max-1 { + margin-right: 0.25rem !important; + } + .mb-home-imgs-max-1 { + margin-bottom: 0.25rem !important; + } + .ml-home-imgs-max-1 { + margin-left: 0.25rem !important; + } + .mx-home-imgs-max-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .my-home-imgs-max-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .mxn-home-imgs-max-1 { + margin-right: -0.25rem !important; + margin-left: -0.25rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-2 { + margin: 0.5rem !important; + } + .mt-home-imgs-max-2 { + margin-top: 0.5rem !important; + } + .mr-home-imgs-max-2 { + margin-right: 0.5rem !important; + } + .mb-home-imgs-max-2 { + margin-bottom: 0.5rem !important; + } + .ml-home-imgs-max-2 { + margin-left: 0.5rem !important; + } + .mx-home-imgs-max-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .my-home-imgs-max-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .mxn-home-imgs-max-2 { + margin-right: -0.5rem !important; + margin-left: -0.5rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-3 { + margin: 0.75rem !important; + } + .mt-home-imgs-max-3 { + margin-top: 0.75rem !important; + } + .mr-home-imgs-max-3 { + margin-right: 0.75rem !important; + } + .mb-home-imgs-max-3 { + margin-bottom: 0.75rem !important; + } + .ml-home-imgs-max-3 { + margin-left: 0.75rem !important; + } + .mx-home-imgs-max-3 { + margin-right: 0.75rem !important; + margin-left: 0.75rem !important; + } + .my-home-imgs-max-3 { + margin-top: 0.75rem !important; + margin-bottom: 0.75rem !important; + } + .mxn-home-imgs-max-3 { + margin-right: -0.75rem !important; + margin-left: -0.75rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-4 { + margin: 1rem !important; + } + .mt-home-imgs-max-4 { + margin-top: 1rem !important; + } + .mr-home-imgs-max-4 { + margin-right: 1rem !important; + } + .mb-home-imgs-max-4 { + margin-bottom: 1rem !important; + } + .ml-home-imgs-max-4 { + margin-left: 1rem !important; + } + .mx-home-imgs-max-4 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .my-home-imgs-max-4 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .mxn-home-imgs-max-4 { + margin-right: -1rem !important; + margin-left: -1rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-5 { + margin: 1.5rem !important; + } + .mt-home-imgs-max-5 { + margin-top: 1.5rem !important; + } + .mr-home-imgs-max-5 { + margin-right: 1.5rem !important; + } + .mb-home-imgs-max-5 { + margin-bottom: 1.5rem !important; + } + .ml-home-imgs-max-5 { + margin-left: 1.5rem !important; + } + .mx-home-imgs-max-5 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .my-home-imgs-max-5 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .mxn-home-imgs-max-5 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-6 { + margin: 2rem !important; + } + .mt-home-imgs-max-6 { + margin-top: 2rem !important; + } + .mr-home-imgs-max-6 { + margin-right: 2rem !important; + } + .mb-home-imgs-max-6 { + margin-bottom: 2rem !important; + } + .ml-home-imgs-max-6 { + margin-left: 2rem !important; + } + .mx-home-imgs-max-6 { + margin-right: 2rem !important; + margin-left: 2rem !important; + } + .my-home-imgs-max-6 { + margin-top: 2rem !important; + margin-bottom: 2rem !important; + } + .mxn-home-imgs-max-6 { + margin-right: -2rem !important; + margin-left: -2rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-7 { + margin: 2.5rem !important; + } + .mt-home-imgs-max-7 { + margin-top: 2.5rem !important; + } + .mr-home-imgs-max-7 { + margin-right: 2.5rem !important; + } + .mb-home-imgs-max-7 { + margin-bottom: 2.5rem !important; + } + .ml-home-imgs-max-7 { + margin-left: 2.5rem !important; + } + .mx-home-imgs-max-7 { + margin-right: 2.5rem !important; + margin-left: 2.5rem !important; + } + .my-home-imgs-max-7 { + margin-top: 2.5rem !important; + margin-bottom: 2.5rem !important; + } + .mxn-home-imgs-max-7 { + margin-right: -2.5rem !important; + margin-left: -2.5rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-8 { + margin: 3rem !important; + } + .mt-home-imgs-max-8 { + margin-top: 3rem !important; + } + .mr-home-imgs-max-8 { + margin-right: 3rem !important; + } + .mb-home-imgs-max-8 { + margin-bottom: 3rem !important; + } + .ml-home-imgs-max-8 { + margin-left: 3rem !important; + } + .mx-home-imgs-max-8 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .my-home-imgs-max-8 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .mxn-home-imgs-max-8 { + margin-right: -3rem !important; + margin-left: -3rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-9 { + margin: 3.5rem !important; + } + .mt-home-imgs-max-9 { + margin-top: 3.5rem !important; + } + .mr-home-imgs-max-9 { + margin-right: 3.5rem !important; + } + .mb-home-imgs-max-9 { + margin-bottom: 3.5rem !important; + } + .ml-home-imgs-max-9 { + margin-left: 3.5rem !important; + } + .mx-home-imgs-max-9 { + margin-right: 3.5rem !important; + margin-left: 3.5rem !important; + } + .my-home-imgs-max-9 { + margin-top: 3.5rem !important; + margin-bottom: 3.5rem !important; + } + .mxn-home-imgs-max-9 { + margin-right: -3.5rem !important; + margin-left: -3.5rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-10 { + margin: 4rem !important; + } + .mt-home-imgs-max-10 { + margin-top: 4rem !important; + } + .mr-home-imgs-max-10 { + margin-right: 4rem !important; + } + .mb-home-imgs-max-10 { + margin-bottom: 4rem !important; + } + .ml-home-imgs-max-10 { + margin-left: 4rem !important; + } + .mx-home-imgs-max-10 { + margin-right: 4rem !important; + margin-left: 4rem !important; + } + .my-home-imgs-max-10 { + margin-top: 4rem !important; + margin-bottom: 4rem !important; + } + .mxn-home-imgs-max-10 { + margin-right: -4rem !important; + margin-left: -4rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-0 { + margin: 0 !important; + } + .mt-mobile-m-0 { + margin-top: 0 !important; + } + .mr-mobile-m-0 { + margin-right: 0 !important; + } + .mb-mobile-m-0 { + margin-bottom: 0 !important; + } + .ml-mobile-m-0 { + margin-left: 0 !important; + } + .mx-mobile-m-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .my-mobile-m-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .mxn-mobile-m-0 { + margin-right: -0 !important; + margin-left: -0 !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-1 { + margin: 0.25rem !important; + } + .mt-mobile-m-1 { + margin-top: 0.25rem !important; + } + .mr-mobile-m-1 { + margin-right: 0.25rem !important; + } + .mb-mobile-m-1 { + margin-bottom: 0.25rem !important; + } + .ml-mobile-m-1 { + margin-left: 0.25rem !important; + } + .mx-mobile-m-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .my-mobile-m-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .mxn-mobile-m-1 { + margin-right: -0.25rem !important; + margin-left: -0.25rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-2 { + margin: 0.5rem !important; + } + .mt-mobile-m-2 { + margin-top: 0.5rem !important; + } + .mr-mobile-m-2 { + margin-right: 0.5rem !important; + } + .mb-mobile-m-2 { + margin-bottom: 0.5rem !important; + } + .ml-mobile-m-2 { + margin-left: 0.5rem !important; + } + .mx-mobile-m-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .my-mobile-m-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .mxn-mobile-m-2 { + margin-right: -0.5rem !important; + margin-left: -0.5rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-3 { + margin: 0.75rem !important; + } + .mt-mobile-m-3 { + margin-top: 0.75rem !important; + } + .mr-mobile-m-3 { + margin-right: 0.75rem !important; + } + .mb-mobile-m-3 { + margin-bottom: 0.75rem !important; + } + .ml-mobile-m-3 { + margin-left: 0.75rem !important; + } + .mx-mobile-m-3 { + margin-right: 0.75rem !important; + margin-left: 0.75rem !important; + } + .my-mobile-m-3 { + margin-top: 0.75rem !important; + margin-bottom: 0.75rem !important; + } + .mxn-mobile-m-3 { + margin-right: -0.75rem !important; + margin-left: -0.75rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-4 { + margin: 1rem !important; + } + .mt-mobile-m-4 { + margin-top: 1rem !important; + } + .mr-mobile-m-4 { + margin-right: 1rem !important; + } + .mb-mobile-m-4 { + margin-bottom: 1rem !important; + } + .ml-mobile-m-4 { + margin-left: 1rem !important; + } + .mx-mobile-m-4 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .my-mobile-m-4 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .mxn-mobile-m-4 { + margin-right: -1rem !important; + margin-left: -1rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-5 { + margin: 1.5rem !important; + } + .mt-mobile-m-5 { + margin-top: 1.5rem !important; + } + .mr-mobile-m-5 { + margin-right: 1.5rem !important; + } + .mb-mobile-m-5 { + margin-bottom: 1.5rem !important; + } + .ml-mobile-m-5 { + margin-left: 1.5rem !important; + } + .mx-mobile-m-5 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .my-mobile-m-5 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .mxn-mobile-m-5 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-6 { + margin: 2rem !important; + } + .mt-mobile-m-6 { + margin-top: 2rem !important; + } + .mr-mobile-m-6 { + margin-right: 2rem !important; + } + .mb-mobile-m-6 { + margin-bottom: 2rem !important; + } + .ml-mobile-m-6 { + margin-left: 2rem !important; + } + .mx-mobile-m-6 { + margin-right: 2rem !important; + margin-left: 2rem !important; + } + .my-mobile-m-6 { + margin-top: 2rem !important; + margin-bottom: 2rem !important; + } + .mxn-mobile-m-6 { + margin-right: -2rem !important; + margin-left: -2rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-7 { + margin: 2.5rem !important; + } + .mt-mobile-m-7 { + margin-top: 2.5rem !important; + } + .mr-mobile-m-7 { + margin-right: 2.5rem !important; + } + .mb-mobile-m-7 { + margin-bottom: 2.5rem !important; + } + .ml-mobile-m-7 { + margin-left: 2.5rem !important; + } + .mx-mobile-m-7 { + margin-right: 2.5rem !important; + margin-left: 2.5rem !important; + } + .my-mobile-m-7 { + margin-top: 2.5rem !important; + margin-bottom: 2.5rem !important; + } + .mxn-mobile-m-7 { + margin-right: -2.5rem !important; + margin-left: -2.5rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-8 { + margin: 3rem !important; + } + .mt-mobile-m-8 { + margin-top: 3rem !important; + } + .mr-mobile-m-8 { + margin-right: 3rem !important; + } + .mb-mobile-m-8 { + margin-bottom: 3rem !important; + } + .ml-mobile-m-8 { + margin-left: 3rem !important; + } + .mx-mobile-m-8 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .my-mobile-m-8 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .mxn-mobile-m-8 { + margin-right: -3rem !important; + margin-left: -3rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-9 { + margin: 3.5rem !important; + } + .mt-mobile-m-9 { + margin-top: 3.5rem !important; + } + .mr-mobile-m-9 { + margin-right: 3.5rem !important; + } + .mb-mobile-m-9 { + margin-bottom: 3.5rem !important; + } + .ml-mobile-m-9 { + margin-left: 3.5rem !important; + } + .mx-mobile-m-9 { + margin-right: 3.5rem !important; + margin-left: 3.5rem !important; + } + .my-mobile-m-9 { + margin-top: 3.5rem !important; + margin-bottom: 3.5rem !important; + } + .mxn-mobile-m-9 { + margin-right: -3.5rem !important; + margin-left: -3.5rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-10 { + margin: 4rem !important; + } + .mt-mobile-m-10 { + margin-top: 4rem !important; + } + .mr-mobile-m-10 { + margin-right: 4rem !important; + } + .mb-mobile-m-10 { + margin-bottom: 4rem !important; + } + .ml-mobile-m-10 { + margin-left: 4rem !important; + } + .mx-mobile-m-10 { + margin-right: 4rem !important; + margin-left: 4rem !important; + } + .my-mobile-m-10 { + margin-top: 4rem !important; + margin-bottom: 4rem !important; + } + .mxn-mobile-m-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 (min-width: 800px) { + .p-home-header-0 { + padding: 0 !important; + } + .pt-home-header-0 { + padding-top: 0 !important; + } + .pr-home-header-0 { + padding-right: 0 !important; + } + .pb-home-header-0 { + padding-bottom: 0 !important; + } + .pl-home-header-0 { + padding-left: 0 !important; + } + .px-home-header-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .py-home-header-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .p-home-header-1 { + padding: 0.25rem !important; + } + .pt-home-header-1 { + padding-top: 0.25rem !important; + } + .pr-home-header-1 { + padding-right: 0.25rem !important; + } + .pb-home-header-1 { + padding-bottom: 0.25rem !important; + } + .pl-home-header-1 { + padding-left: 0.25rem !important; + } + .px-home-header-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .py-home-header-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .p-home-header-2 { + padding: 0.5rem !important; + } + .pt-home-header-2 { + padding-top: 0.5rem !important; + } + .pr-home-header-2 { + padding-right: 0.5rem !important; + } + .pb-home-header-2 { + padding-bottom: 0.5rem !important; + } + .pl-home-header-2 { + padding-left: 0.5rem !important; + } + .px-home-header-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .py-home-header-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .p-home-header-3 { + padding: 0.75rem !important; + } + .pt-home-header-3 { + padding-top: 0.75rem !important; + } + .pr-home-header-3 { + padding-right: 0.75rem !important; + } + .pb-home-header-3 { + padding-bottom: 0.75rem !important; + } + .pl-home-header-3 { + padding-left: 0.75rem !important; + } + .px-home-header-3 { + padding-right: 0.75rem !important; + padding-left: 0.75rem !important; + } + .py-home-header-3 { + padding-top: 0.75rem !important; + padding-bottom: 0.75rem !important; + } + .p-home-header-4 { + padding: 1rem !important; + } + .pt-home-header-4 { + padding-top: 1rem !important; + } + .pr-home-header-4 { + padding-right: 1rem !important; + } + .pb-home-header-4 { + padding-bottom: 1rem !important; + } + .pl-home-header-4 { + padding-left: 1rem !important; + } + .px-home-header-4 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .py-home-header-4 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .p-home-header-5 { + padding: 1.5rem !important; + } + .pt-home-header-5 { + padding-top: 1.5rem !important; + } + .pr-home-header-5 { + padding-right: 1.5rem !important; + } + .pb-home-header-5 { + padding-bottom: 1.5rem !important; + } + .pl-home-header-5 { + padding-left: 1.5rem !important; + } + .px-home-header-5 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .py-home-header-5 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .p-home-header-6 { + padding: 2rem !important; + } + .pt-home-header-6 { + padding-top: 2rem !important; + } + .pr-home-header-6 { + padding-right: 2rem !important; + } + .pb-home-header-6 { + padding-bottom: 2rem !important; + } + .pl-home-header-6 { + padding-left: 2rem !important; + } + .px-home-header-6 { + padding-right: 2rem !important; + padding-left: 2rem !important; + } + .py-home-header-6 { + padding-top: 2rem !important; + padding-bottom: 2rem !important; + } + .p-home-header-7 { + padding: 2.5rem !important; + } + .pt-home-header-7 { + padding-top: 2.5rem !important; + } + .pr-home-header-7 { + padding-right: 2.5rem !important; + } + .pb-home-header-7 { + padding-bottom: 2.5rem !important; + } + .pl-home-header-7 { + padding-left: 2.5rem !important; + } + .px-home-header-7 { + padding-right: 2.5rem !important; + padding-left: 2.5rem !important; + } + .py-home-header-7 { + padding-top: 2.5rem !important; + padding-bottom: 2.5rem !important; + } + .p-home-header-8 { + padding: 3rem !important; + } + .pt-home-header-8 { + padding-top: 3rem !important; + } + .pr-home-header-8 { + padding-right: 3rem !important; + } + .pb-home-header-8 { + padding-bottom: 3rem !important; + } + .pl-home-header-8 { + padding-left: 3rem !important; + } + .px-home-header-8 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-home-header-8 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .p-home-header-9 { + padding: 3.5rem !important; + } + .pt-home-header-9 { + padding-top: 3.5rem !important; + } + .pr-home-header-9 { + padding-right: 3.5rem !important; + } + .pb-home-header-9 { + padding-bottom: 3.5rem !important; + } + .pl-home-header-9 { + padding-left: 3.5rem !important; + } + .px-home-header-9 { + padding-right: 3.5rem !important; + padding-left: 3.5rem !important; + } + .py-home-header-9 { + padding-top: 3.5rem !important; + padding-bottom: 3.5rem !important; + } + .p-home-header-10 { + padding: 4rem !important; + } + .pt-home-header-10 { + padding-top: 4rem !important; + } + .pr-home-header-10 { + padding-right: 4rem !important; + } + .pb-home-header-10 { + padding-bottom: 4rem !important; + } + .pl-home-header-10 { + padding-left: 4rem !important; + } + .px-home-header-10 { + padding-right: 4rem !important; + padding-left: 4rem !important; + } + .py-home-header-10 { + padding-top: 4rem !important; + padding-bottom: 4rem !important; + } +} +@media (min-width: 2880px) { + .p-home-imgs-max-0 { + padding: 0 !important; + } + .pt-home-imgs-max-0 { + padding-top: 0 !important; + } + .pr-home-imgs-max-0 { + padding-right: 0 !important; + } + .pb-home-imgs-max-0 { + padding-bottom: 0 !important; + } + .pl-home-imgs-max-0 { + padding-left: 0 !important; + } + .px-home-imgs-max-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .py-home-imgs-max-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .p-home-imgs-max-1 { + padding: 0.25rem !important; + } + .pt-home-imgs-max-1 { + padding-top: 0.25rem !important; + } + .pr-home-imgs-max-1 { + padding-right: 0.25rem !important; + } + .pb-home-imgs-max-1 { + padding-bottom: 0.25rem !important; + } + .pl-home-imgs-max-1 { + padding-left: 0.25rem !important; + } + .px-home-imgs-max-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .py-home-imgs-max-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .p-home-imgs-max-2 { + padding: 0.5rem !important; + } + .pt-home-imgs-max-2 { + padding-top: 0.5rem !important; + } + .pr-home-imgs-max-2 { + padding-right: 0.5rem !important; + } + .pb-home-imgs-max-2 { + padding-bottom: 0.5rem !important; + } + .pl-home-imgs-max-2 { + padding-left: 0.5rem !important; + } + .px-home-imgs-max-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .py-home-imgs-max-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .p-home-imgs-max-3 { + padding: 0.75rem !important; + } + .pt-home-imgs-max-3 { + padding-top: 0.75rem !important; + } + .pr-home-imgs-max-3 { + padding-right: 0.75rem !important; + } + .pb-home-imgs-max-3 { + padding-bottom: 0.75rem !important; + } + .pl-home-imgs-max-3 { + padding-left: 0.75rem !important; + } + .px-home-imgs-max-3 { + padding-right: 0.75rem !important; + padding-left: 0.75rem !important; + } + .py-home-imgs-max-3 { + padding-top: 0.75rem !important; + padding-bottom: 0.75rem !important; + } + .p-home-imgs-max-4 { + padding: 1rem !important; + } + .pt-home-imgs-max-4 { + padding-top: 1rem !important; + } + .pr-home-imgs-max-4 { + padding-right: 1rem !important; + } + .pb-home-imgs-max-4 { + padding-bottom: 1rem !important; + } + .pl-home-imgs-max-4 { + padding-left: 1rem !important; + } + .px-home-imgs-max-4 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .py-home-imgs-max-4 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .p-home-imgs-max-5 { + padding: 1.5rem !important; + } + .pt-home-imgs-max-5 { + padding-top: 1.5rem !important; + } + .pr-home-imgs-max-5 { + padding-right: 1.5rem !important; + } + .pb-home-imgs-max-5 { + padding-bottom: 1.5rem !important; + } + .pl-home-imgs-max-5 { + padding-left: 1.5rem !important; + } + .px-home-imgs-max-5 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .py-home-imgs-max-5 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .p-home-imgs-max-6 { + padding: 2rem !important; + } + .pt-home-imgs-max-6 { + padding-top: 2rem !important; + } + .pr-home-imgs-max-6 { + padding-right: 2rem !important; + } + .pb-home-imgs-max-6 { + padding-bottom: 2rem !important; + } + .pl-home-imgs-max-6 { + padding-left: 2rem !important; + } + .px-home-imgs-max-6 { + padding-right: 2rem !important; + padding-left: 2rem !important; + } + .py-home-imgs-max-6 { + padding-top: 2rem !important; + padding-bottom: 2rem !important; + } + .p-home-imgs-max-7 { + padding: 2.5rem !important; + } + .pt-home-imgs-max-7 { + padding-top: 2.5rem !important; + } + .pr-home-imgs-max-7 { + padding-right: 2.5rem !important; + } + .pb-home-imgs-max-7 { + padding-bottom: 2.5rem !important; + } + .pl-home-imgs-max-7 { + padding-left: 2.5rem !important; + } + .px-home-imgs-max-7 { + padding-right: 2.5rem !important; + padding-left: 2.5rem !important; + } + .py-home-imgs-max-7 { + padding-top: 2.5rem !important; + padding-bottom: 2.5rem !important; + } + .p-home-imgs-max-8 { + padding: 3rem !important; + } + .pt-home-imgs-max-8 { + padding-top: 3rem !important; + } + .pr-home-imgs-max-8 { + padding-right: 3rem !important; + } + .pb-home-imgs-max-8 { + padding-bottom: 3rem !important; + } + .pl-home-imgs-max-8 { + padding-left: 3rem !important; + } + .px-home-imgs-max-8 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-home-imgs-max-8 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .p-home-imgs-max-9 { + padding: 3.5rem !important; + } + .pt-home-imgs-max-9 { + padding-top: 3.5rem !important; + } + .pr-home-imgs-max-9 { + padding-right: 3.5rem !important; + } + .pb-home-imgs-max-9 { + padding-bottom: 3.5rem !important; + } + .pl-home-imgs-max-9 { + padding-left: 3.5rem !important; + } + .px-home-imgs-max-9 { + padding-right: 3.5rem !important; + padding-left: 3.5rem !important; + } + .py-home-imgs-max-9 { + padding-top: 3.5rem !important; + padding-bottom: 3.5rem !important; + } + .p-home-imgs-max-10 { + padding: 4rem !important; + } + .pt-home-imgs-max-10 { + padding-top: 4rem !important; + } + .pr-home-imgs-max-10 { + padding-right: 4rem !important; + } + .pb-home-imgs-max-10 { + padding-bottom: 4rem !important; + } + .pl-home-imgs-max-10 { + padding-left: 4rem !important; + } + .px-home-imgs-max-10 { + padding-right: 4rem !important; + padding-left: 4rem !important; + } + .py-home-imgs-max-10 { + padding-top: 4rem !important; + padding-bottom: 4rem !important; + } +} +@media (min-width: 375px) { + .p-mobile-m-0 { + padding: 0 !important; + } + .pt-mobile-m-0 { + padding-top: 0 !important; + } + .pr-mobile-m-0 { + padding-right: 0 !important; + } + .pb-mobile-m-0 { + padding-bottom: 0 !important; + } + .pl-mobile-m-0 { + padding-left: 0 !important; + } + .px-mobile-m-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .py-mobile-m-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .p-mobile-m-1 { + padding: 0.25rem !important; + } + .pt-mobile-m-1 { + padding-top: 0.25rem !important; + } + .pr-mobile-m-1 { + padding-right: 0.25rem !important; + } + .pb-mobile-m-1 { + padding-bottom: 0.25rem !important; + } + .pl-mobile-m-1 { + padding-left: 0.25rem !important; + } + .px-mobile-m-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .py-mobile-m-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .p-mobile-m-2 { + padding: 0.5rem !important; + } + .pt-mobile-m-2 { + padding-top: 0.5rem !important; + } + .pr-mobile-m-2 { + padding-right: 0.5rem !important; + } + .pb-mobile-m-2 { + padding-bottom: 0.5rem !important; + } + .pl-mobile-m-2 { + padding-left: 0.5rem !important; + } + .px-mobile-m-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .py-mobile-m-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .p-mobile-m-3 { + padding: 0.75rem !important; + } + .pt-mobile-m-3 { + padding-top: 0.75rem !important; + } + .pr-mobile-m-3 { + padding-right: 0.75rem !important; + } + .pb-mobile-m-3 { + padding-bottom: 0.75rem !important; + } + .pl-mobile-m-3 { + padding-left: 0.75rem !important; + } + .px-mobile-m-3 { + padding-right: 0.75rem !important; + padding-left: 0.75rem !important; + } + .py-mobile-m-3 { + padding-top: 0.75rem !important; + padding-bottom: 0.75rem !important; + } + .p-mobile-m-4 { + padding: 1rem !important; + } + .pt-mobile-m-4 { + padding-top: 1rem !important; + } + .pr-mobile-m-4 { + padding-right: 1rem !important; + } + .pb-mobile-m-4 { + padding-bottom: 1rem !important; + } + .pl-mobile-m-4 { + padding-left: 1rem !important; + } + .px-mobile-m-4 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .py-mobile-m-4 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .p-mobile-m-5 { + padding: 1.5rem !important; + } + .pt-mobile-m-5 { + padding-top: 1.5rem !important; + } + .pr-mobile-m-5 { + padding-right: 1.5rem !important; + } + .pb-mobile-m-5 { + padding-bottom: 1.5rem !important; + } + .pl-mobile-m-5 { + padding-left: 1.5rem !important; + } + .px-mobile-m-5 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .py-mobile-m-5 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .p-mobile-m-6 { + padding: 2rem !important; + } + .pt-mobile-m-6 { + padding-top: 2rem !important; + } + .pr-mobile-m-6 { + padding-right: 2rem !important; + } + .pb-mobile-m-6 { + padding-bottom: 2rem !important; + } + .pl-mobile-m-6 { + padding-left: 2rem !important; + } + .px-mobile-m-6 { + padding-right: 2rem !important; + padding-left: 2rem !important; + } + .py-mobile-m-6 { + padding-top: 2rem !important; + padding-bottom: 2rem !important; + } + .p-mobile-m-7 { + padding: 2.5rem !important; + } + .pt-mobile-m-7 { + padding-top: 2.5rem !important; + } + .pr-mobile-m-7 { + padding-right: 2.5rem !important; + } + .pb-mobile-m-7 { + padding-bottom: 2.5rem !important; + } + .pl-mobile-m-7 { + padding-left: 2.5rem !important; + } + .px-mobile-m-7 { + padding-right: 2.5rem !important; + padding-left: 2.5rem !important; + } + .py-mobile-m-7 { + padding-top: 2.5rem !important; + padding-bottom: 2.5rem !important; + } + .p-mobile-m-8 { + padding: 3rem !important; + } + .pt-mobile-m-8 { + padding-top: 3rem !important; + } + .pr-mobile-m-8 { + padding-right: 3rem !important; + } + .pb-mobile-m-8 { + padding-bottom: 3rem !important; + } + .pl-mobile-m-8 { + padding-left: 3rem !important; + } + .px-mobile-m-8 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-mobile-m-8 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .p-mobile-m-9 { + padding: 3.5rem !important; + } + .pt-mobile-m-9 { + padding-top: 3.5rem !important; + } + .pr-mobile-m-9 { + padding-right: 3.5rem !important; + } + .pb-mobile-m-9 { + padding-bottom: 3.5rem !important; + } + .pl-mobile-m-9 { + padding-left: 3.5rem !important; + } + .px-mobile-m-9 { + padding-right: 3.5rem !important; + padding-left: 3.5rem !important; + } + .py-mobile-m-9 { + padding-top: 3.5rem !important; + padding-bottom: 3.5rem !important; + } + .p-mobile-m-10 { + padding: 4rem !important; + } + .pt-mobile-m-10 { + padding-top: 4rem !important; + } + .pr-mobile-m-10 { + padding-right: 4rem !important; + } + .pb-mobile-m-10 { + padding-bottom: 4rem !important; + } + .pl-mobile-m-10 { + padding-left: 4rem !important; + } + .px-mobile-m-10 { + padding-right: 4rem !important; + padding-left: 4rem !important; + } + .py-mobile-m-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; +} + +p.highlight, blockquote.highlight { + background: rgba(149, 147, 150, 0.2); + border-left: 4px solid #27262b; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + padding: 0.8rem; +} +p.highlight > .highlight-title, blockquote.highlight > .highlight-title { + color: #27262b; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} + +p.highlight-title, blockquote.highlight-title { + background: rgba(149, 147, 150, 0.2); + border-left: 4px solid #27262b; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + padding: 0.8rem; +} +p.highlight-title > p:first-child, blockquote.highlight-title > p:first-child { + margin-top: 0; + margin-bottom: 0; + color: #27262b; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} + +blockquote.highlight { + margin-left: 0; + margin-right: 0; +} +blockquote.highlight > p:first-child { + margin-top: 0; +} +blockquote.highlight > p:last-child { + margin-bottom: 0; +} + +blockquote.highlight-title { + margin-left: 0; + margin-right: 0; +} +blockquote.highlight-title > p:nth-child(2) { + margin-top: 0; +} +blockquote.highlight-title > p:last-child { + margin-bottom: 0; +} + +p.important, blockquote.important { + background: rgba(149, 147, 150, 0.2); + border-left: 4px solid #27262b; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + padding: 0.8rem; +} +p.important::before, blockquote.important::before { + color: #27262b; + content: "Important"; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} +p.important > .important-title, blockquote.important > .important-title { + color: #27262b; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} + +p.important-title, blockquote.important-title { + background: rgba(149, 147, 150, 0.2); + border-left: 4px solid #27262b; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + padding: 0.8rem; +} +p.important-title > p:first-child, blockquote.important-title > p:first-child { + margin-top: 0; + margin-bottom: 0; + color: #27262b; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} + +blockquote.important { + margin-left: 0; + margin-right: 0; +} +blockquote.important > p:first-child { + margin-top: 0; +} +blockquote.important > p:last-child { + margin-bottom: 0; +} + +blockquote.important-title { + margin-left: 0; + margin-right: 0; +} +blockquote.important-title > p:nth-child(2) { + margin-top: 0; +} +blockquote.important-title > p:last-child { + margin-bottom: 0; +} + +p.note, blockquote.note { + background: #2c84fa; + border-left: 4px solid #183385; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + padding: 0.8rem; +} +p.note::before, blockquote.note::before { + color: #183385; + content: "Note"; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} +p.note > .note-title, blockquote.note > .note-title { + color: #183385; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} + +p.note-title, blockquote.note-title { + background: #2c84fa; + border-left: 4px solid #183385; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + padding: 0.8rem; +} +p.note-title > p:first-child, blockquote.note-title > p:first-child { + margin-top: 0; + margin-bottom: 0; + color: #183385; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} + +blockquote.note { + margin-left: 0; + margin-right: 0; +} +blockquote.note > p:first-child { + margin-top: 0; +} +blockquote.note > p:last-child { + margin-bottom: 0; +} + +blockquote.note-title { + margin-left: 0; + margin-right: 0; +} +blockquote.note-title > p:nth-child(2) { + margin-top: 0; +} +blockquote.note-title > p:last-child { + margin-bottom: 0; +} + +p.warning, blockquote.warning { + background: rgba(247, 126, 126, 0.2); + border-left: 4px solid #dd2e2e; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + padding: 0.8rem; +} +p.warning::before, blockquote.warning::before { + color: #dd2e2e; + content: "Warning"; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} +p.warning > .warning-title, blockquote.warning > .warning-title { + color: #dd2e2e; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} + +p.warning-title, blockquote.warning-title { + background: rgba(247, 126, 126, 0.2); + border-left: 4px solid #dd2e2e; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + padding: 0.8rem; +} +p.warning-title > p:first-child, blockquote.warning-title > p:first-child { + margin-top: 0; + margin-bottom: 0; + color: #dd2e2e; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} + +blockquote.warning { + margin-left: 0; + margin-right: 0; +} +blockquote.warning > p:first-child { + margin-top: 0; +} +blockquote.warning > p:last-child { + margin-bottom: 0; +} + +blockquote.warning-title { + margin-left: 0; + margin-right: 0; +} +blockquote.warning-title > p:nth-child(2) { + margin-top: 0; +} +blockquote.warning-title > p:last-child { + margin-bottom: 0; +} + +@media (min-width: 50rem) { + #main-header { + position: sticky; + top: 0; + z-index: 999; + } +} +@media (min-width: 66.5rem) { + .sidebar__right { + position: fixed; + top: 64px; + right: 0px; + max-height: calc(100% - 112px); + min-height: fit-content; + width: 360px; + padding-bottom: 20px; + border: 1px solid #eeebee; + border-radius: 4px; + overflow: auto; + background-color: #fff; + z-index: 999; + } +} + +.toc { + letter-spacing: 1px; +} +.toc .nav__title { + margin: 0; + cursor: pointer; + font-size: 1rem !important; + color: #1464A5; + background-color: #E3ECF4; + padding: 20px 14px 8px 14px; +} +@media (min-width: 31.25rem) { + .toc .nav__title { + font-size: 1.125rem !important; + } +} +@media (min-width: 50rem) { + .toc .nav__title { + font-size: 0.875rem !important; + } +} +@media (min-width: 50rem) and (min-width: 31.25rem) { + .toc .nav__title { + font-size: 1rem !important; + } +} + +.toc__menu { + font-size: 1rem !important; + margin: 0; + padding: 0; + width: 100%; + list-style: none; +} +@media (min-width: 31.25rem) { + .toc__menu { + font-size: 1.125rem !important; + } +} +@media (min-width: 50rem) { + .toc__menu { + font-size: 0.875rem !important; + } +} +@media (min-width: 50rem) and (min-width: 31.25rem) { + .toc__menu { + font-size: 1rem !important; + } +} +.toc__menu li::before { + content: "" !important; +} +.toc__menu a { + text-decoration: none; + color: rgba(0, 0, 0, 0.7411764706); +} +.toc__menu a.active { + color: rgba(0, 0, 0, 0.6); + font-weight: 500; +} +.toc__menu li ul > li a { + padding-top: 0.2rem; + border: none; + text-transform: none; +} + +@media (min-width: 66.5rem) { + .toc__menu.collapsed { + display: none; + } + .toc.collapsed { + position: relative; + bottom: 14px; + } + .nav__title.collapsed { + font-size: 15px !important; + height: 30px; + cursor: pointer; + } + .sidebar__right.collapsed { + padding-bottom: 0px; + width: auto; + transform: rotate(270deg); + transform-origin: bottom right; + top: 34px; + height: 30px; + overflow: hidden; + background-color: #E3ECF4; + } +} +.multicolumn { + display: flex; +} + +.toggle-tree-btn { + all: unset; + margin-bottom: 10px; + align-self: flex-end; + position: absolute; + top: 8px; + right: 8px; + cursor: pointer; +} + +.multicolumnleft { + flex: 1; + max-width: 100%; + overflow-x: auto; + padding: 0 40px 0 0; + box-sizing: border-box; + position: relative; +} + +.multicolumnnopadding { + flex: 1; + max-width: 100%; + overflow-x: auto; + padding: 0 0 0 0; + box-sizing: border-box; +} + +.multicolumnright { + box-sizing: border-box; + border-left: 1px solid #ccc; + transition: width 0.3s ease; + overflow-x: auto; +} +.multicolumnright.collapsed { + width: 0; + overflow: hidden; + padding: 0; + border-left: none; + display: none; +} + +.verticalDivider { + border-left: 1px solid #F2F3F3; + padding-right: 10px; + margin-left: 10px; +} + +.jstreeloader ul > li::before { + content: ""; +} + +@media (min-width: 50rem) and ((max-width: 66.5rem)) { + #top.main { + max-width: none; + margin-left: 16.5rem; + } +} +@media (min-width: 66.5rem) { + body > div.side-bar { + min-width: auto; + width: auto; + } + #top.main { + max-width: none; + margin-left: calc(16.5rem + 1px); + } +} +@media (min-width: 50rem) { + div.side-bar { + width: 16.5rem; + } +} +table { + table-layout: auto; + width: 120px; +} + +.text-primary-900 { + color: #063679; +} + +@media (min-width: 50rem) { + .breadcrumbs { + margin-top: -1rem; + } +} +.breadcrumbs ol { + padding-left: 0; + margin-bottom: 0.75rem; + list-style: none; +} +.breadcrumbs li { + display: table-cell; + font-size: 0.6875rem !important; +} +@media (min-width: 31.25rem) { + .breadcrumbs li { + font-size: 0.75rem !important; + } +} +.breadcrumbs li::before { + display: none; +} +.breadcrumbs li::after { + display: inline-block; + margin-right: 0.5rem; + margin-left: 0.5rem; + color: #959396; + content: "/"; +} +.breadcrumbs li:last-child::after { + content: ""; +} + +.btn:focus { + display: none; +} + +a:not([class]) { + text-decoration: underline; + text-decoration-color: #eeebee; + text-underline-offset: 2px; +} +a:not([class]):hover { + text-decoration-color: rgba(20, 100, 165, 0.2392156863); +} + +.select { + border-style: none; +} + +.nav-list .nav-list-item .nav-list-expander { + color: rgba(0, 0, 0, 0.7411764706); +} +.nav-list .nav-list-item .nav-list-link { + color: rgba(0, 0, 0, 0.7411764706); + font-weight: 400; + font-size: 1rem; +} +.nav-list .nav-list-item .nav-list-link.active { + color: rgba(0, 0, 0, 0.6); + font-weight: 500; + font-size: 1rem; +} + +.header-custom-main { + display: flex; + place-content: end; + column-gap: 10px; + margin-right: 33px; +} +.header-custom-main .select { + border-style: none; + background: transparent; +} +.header-custom-main .github-div { + display: flex; + align-items: center; +} +.header-custom-main .github-div > a { + display: flex; + align-items: center; +} + +.o-tab { + overflow: hidden; + padding-bottom: 6px; + /* Style the buttons that are used to open the tab content */ + /* Change background color of buttons on hover */ + /* Create an active/current tablink class */ +} +.o-tab button { + background-color: inherit; + float: left; + border: none; + outline: none; + cursor: pointer; + padding: 12px 16px; + transition: 0.3s; + font-size: 0.8em; + color: #333333; +} +.o-tab button:hover { + background-color: #93c7f2; + border-bottom: 2px solid rgba(20, 100, 165, 0.2392156863); +} +.o-tab button.active { + border-bottom: 2px solid #1464A5; +} + +/* Style the tab content */ +.o-tabcontent { + display: none; + padding: 6px 12px; + -webkit-animation: fadeEffect 1s; + animation: fadeEffect 1s; +} + +.o-component-container .list__item { + padding-right: 0; +} +.o-component-container .list__item .archive__item-excerpt { + margin-top: 0; + font-size: 0.75em; +} + +.mdl-data-table td[required] p.first:after { + content: " *"; +} + +.attributes-list { + overflow: hidden; +} +.attributes-list li { + display: inline-block; + width: 50%; + margin-bottom: 0.25em; + font-size: 18px; +} + +.faq-posts .panel-default .panel-heading { + color: #333; + background-color: #f5f5f5; + border-color: #ddd; + border-bottom: 0; + padding: 10px 30px; + border-bottom: 1px solid transparent; + border-top-left-radius: 3px; + border-top-right-radius: 3px; + cursor: pointer; +} +.faq-posts .panel-default .panel-title { + margin-top: 0; + margin-bottom: 0; + font-size: 16px; + color: inherit; +} +.faq-posts .panel-body { + padding: 15px; + font-size: 14px; +} +.faq-posts .panel { + margin-bottom: 0; + border-radius: 4px; + background-color: #fff; + border: 1px solid transparent; +} +.faq-posts .collapse { + display: none; +} +.faq-posts .collapse.in { + display: block; +} +.faq-posts .collapsing { + position: relative; + height: 0; + overflow: hidden; + -webkit-transition-property: height, visibility; + transition-property: height, visibility; + -webkit-transition-duration: 0.35s; + transition-duration: 0.35s; + -webkit-transition-timing-function: ease; + transition-timing-function: ease; +} + +/*# sourceMappingURL=just-the-docs-light.css.map */ \ No newline at end of file diff --git a/v1/assets/css/just-the-docs-light.css.map b/v1/assets/css/just-the-docs-light.css.map new file mode 100644 index 0000000..67ec2a0 --- /dev/null +++ b/v1/assets/css/just-the-docs-light.css.map @@ -0,0 +1 @@ +{"version":3,"sourceRoot":"","sources":["../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/vendor/OneLightJekyll/syntax.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/vendor/normalize.scss/normalize.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/base.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/color_schemes/light.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/support/mixins/_typography.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/support/mixins/_layout.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/support/_variables.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/layout.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/content.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/navigation.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/typography.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/labels.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/buttons.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/support/mixins/_buttons.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/search.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/tables.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/code.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/utilities/_colors.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/utilities/_layout.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/utilities/_typography.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/utilities/_lists.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/utilities/_spacing.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/print.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/skiptomain.scss","just-the-docs-light.scss","../../_sass/custom/custom.scss","../../_sass/custom/setup.scss"],"names":[],"mappings":";AAEA;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;EESJ;IAEI;IACA,WD6EY;IC5EZ,aDwEW;;;ADrFX;EESJ;IAUI;AAAA;AAAA;AAAA;;;;AAQJ;EFhBE,eCuDK;EDtDL,cCsDK;ECpCL,aDoCK;ECnCL,gBDmCK;;ADlEH;EE2BJ;IFZI,eCqDG;IDpDH,cCoDG;;;ADpEH;EE2BJ;IAOI,aDkCG;ICjCH,gBDiCG;;;;AC7BP;EACE;EACA;EACA,kBDrBY;;ADrBV;EEuCJ;IAMI;IACA;IACA,QD2CY;IC1CZ,kBDjCI;ICkCJ;;;AAGF;EACE;;AFrDA;EEoDF;IAII;;;;AAKN;AAAA;AAAA;EAGE;;AFhEE;EE6DJ;AAAA;AAAA;IAMI,ODiBQ;;;;ACbZ;EACE;;AAEA;EACE;;AF3EA;EEuEJ;IAQI;IACA,aDVG;ICWH,gBDfG;ICgBH;IACA;;;;AAIJ;EACE;EACA,YDCc;ECAd;;AF1FE;EEuFJ;IAMI,QDHY;ICIZ,YDJY;ICKZ;;;;AAIJ;EFxFE,eCuDK;EDtDL,cCsDK;ECoCL;EACA;EACA;EACA;EACA,aDzCK;EC0CL,gBD1CK;EC2CL,ODxFY;EFOZ;;AC3BE;EEmGJ;IFpFI,eCqDG;IDpDH,cCoDG;;;ADpEH;EEmGJ;IHrEI;IACA,aEpCuB;;;ADKvB;EEmGJ;IAaI,aDhDG;ICiDH,gBDjDG;;;;ACsDL;EACE;EACA;EACA;EACA;EACA;EACA;;;AAIJ;EACE;EACA;EACA,SDjEK;ECkEL;;;AFpIE;EEwIF;IACE;;;AAIJ;EACE;;;AAQF;EACE;;;AASF;EACE;EACA,gBD1FM;EC2FN;;AFnKE;EEgKJ;IAMI;IACA;;;;AAMJ;EFlKE,eCuDK;EDtDL,cCsDK;EC8GL;EACA;EACA;EACA,aDjHK;ECkHL,gBDlHK;ECmHL,ODrKY;EFrBZ;;ACKE;EE6KJ;IF9JI,eCqDG;IDpDH,cCoDG;;;ADpEH;EE6KJ;IH/KI;;;ACEA;EE6KJ;IAYI;IACA;;;;AAIJ;EACE,OD5HK;EC6HL,QD7HK;EC8HL,ODxKW;;;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;;;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;;;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;;;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;;;ACpBF;EACE,kBlBoBM;;;AkBnBP;EACG;EACA;EACA,elB8EY;EkB7EZ;EACA;;AAEA;EACE,OlBgBQ;EkBfR;EACA;EACA;EACA;EACA;;;AAIN;EACI;EACA;EACA,elB6DY;EkB5DZ;EACA;;AACA;EACE;EACA;EACA,OlBFQ;EkBGR;EACA;EACA;EACA;EACA;;;AAIN;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;AAIJ;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;AAIJ;EACI;EACA;EACA,elBiBY;EkBhBZ;EACA;;AAEA;EACI,OlB7CM;EkB8CN;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACE,OlBvDQ;EkBwDR;EACA;EACA;EACA;EACA;;;AAIN;EACI;EACA;EACA,elBVY;EkBWZ;EACA;;AACA;EACE;EACA;EACA,OlBzEQ;EkB0ER;EACA;EACA;EACA;EACA;;;AAIN;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;AAIJ;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;AAIJ;EACI;EACA;EACA,elBtDY;EkBuDZ;EACA;;AAEA;EACI,OlBxGG;EkByGH;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACE,OlBlHK;EkBmHL;EACA;EACA;EACA;EACA;;;AAIN;EACI;EACA;EACA,elBjFY;EkBkFZ;EACA;;AACA;EACE;EACA;EACA,OlBpIK;EkBqIL;EACA;EACA;EACA;EACA;;;AAIN;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;AAIJ;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;AAIJ;EACI;EACA;EACA,elB7HY;EkB8HZ;EACA;;AAEA;EACI,OlBnKE;EkBoKF;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACE,OlB7KI;EkB8KJ;EACA;EACA;EACA;EACA;;;AAIN;EACI;EACA;EACA,elBxJY;EkByJZ;EACA;;AACA;EACE;EACA;EACA,OlB/LI;EkBgMJ;EACA;EACA;EACA;EACA;;;AAIN;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;AAIJ;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;ACvRJ;EACE;IACE;IACA;IACA;;;ApBSA;EoBJJ;IAII;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,kBnBKI;ImBJJ;;;;AAIJ;EACE;;AACA;EACE;EACA;ErBAF;EqBOE,OCvCU;EDwCV,kBCpCS;EDqCT;;ApB5BA;EoBiBF;IrBKE;;;ACtBA;EoBiBF;IrBNA;;;ACXE;EoBiBF;IrBHE;;;;AqBkBJ;ErBbE;EqBqBA;EACA;EACA;EACA;;ApB3CE;EoBgCJ;IrBVI;;;ACtBA;EoBgCJ;IrBrBE;;;ACXE;EoBgCJ;IrBlBI;;;AqB+BF;EACE;;AAGF;EACE;EACA,OC3DM;;AD6DN;EACE,OC7DI;ED8DJ;;AAIJ;EACE;EACA;EACA;;;AAMJ;EACE;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;IACA;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;IACA;IACA,kBCrGS;;;AD0Gb;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;;;AAIJ;EACE;EACA;EACA;;;AAKF;EACE;;;AAGF;EACE;IACE;IACA;;;AAIJ;EACE;IACE;IACA;;EAGF;IACE;IACA;;;AAIJ;EACE;IACE;;;AAMJ;EACE;EACA;;;AAMF;EACE,OC1MY;;;ArBWV;EoBmMJ;IAEI;;;AAGF;EACE;EACA,enBzIG;EmB0IH;;AAGF;EACE;ErBpNF;;ACKE;EoB8MF;IrBhNE;;;AqBoNA;EACE;;AAGF;EACE;EACA,cnBxJC;EmByJD,anBzJC;EmB0JD,OnB1MQ;EmB2MR;;AAIA;EACE;;;AAQR;EACE;;;AAIF;EACE;EACA,uBnBzNY;EmB0NZ;;AAEA;EACE,uBC7Pa;;;ADkQjB;EACE;;;AAOE;EACE,OCzQI;;AD4QN;EACE,OC7QI;ED8QJ;EAEA,WnBnQQ;;AmBqQR;EACE,OClRE;EDmRF;EACA,WnBxQM;;;AmB+Qd;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;EACA;;AAEA;EACE;EACA;;;AAMN;EACE;EACA;AAEA;AAaA;AAMA;;AAlBA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAIF;EACE;EACA;;AAIF;EACE;;;AAKJ;AACA;EACE;EACA;EACA;EACA;;;AAIA;EACE;;AAEA;EACE;EACA;;;AAUE;EACE;;;AAQV;EACE;;AAEA;EACE;EACA;EACA;EACA;;;AAWA;EACE;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAIJ;EACE;EACA;;AAGF;EACE;EACA;EAEA;EACA;;AAMF;EACE;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA","sourcesContent":["// 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\n.main {\n @include mq(md) {\n position: relative;\n max-width: $content-width;\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\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 display: none;\n background-color: $sidebar-color;\n\n @include mq(md) {\n display: flex;\n justify-content: space-between;\n height: $header-height;\n background-color: $body-background-color;\n border-bottom: $border $border-color;\n }\n\n &.nav-open {\n display: block;\n\n @include mq(md) {\n display: flex;\n }\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$logo: \"/docs/v1/assets/icons/logo-ontimize-blanco.png\";\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}p.highlight, blockquote.highlight {\n background: rgba($grey-dk-000, 0.2);\n border-left: $border-radius solid $grey-dk-300;\n border-radius: $border-radius;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);\n padding: .8rem;\n \n > .highlight-title {\n color: $grey-dk-300;\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n}\n\np.highlight-title, blockquote.highlight-title {\n background: rgba($grey-dk-000, 0.2);\n border-left: $border-radius solid $grey-dk-300;\n border-radius: $border-radius;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);\n padding: .8rem;\n > p:first-child {\n margin-top: 0;\n margin-bottom: 0;\n color: $grey-dk-300;\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n}\n\nblockquote.highlight {\n margin-left: 0;\n margin-right: 0;\n \n > p:first-child {\n margin-top: 0;\n }\n \n > p:last-child {\n margin-bottom: 0;\n }\n}\n\nblockquote.highlight-title {\n margin-left: 0;\n margin-right: 0;\n \n > p:nth-child(2) {\n margin-top: 0;\n }\n \n > p:last-child {\n margin-bottom: 0;\n }\n}\n\np.important, blockquote.important {\n background: rgba($grey-dk-000, 0.2);\n border-left: $border-radius solid $grey-dk-300;\n border-radius: $border-radius;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);\n padding: .8rem;\n \n &::before {\n color: $grey-dk-300;\n content: \"Important\";\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n \n > .important-title {\n color: $grey-dk-300;\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n}\n\np.important-title, blockquote.important-title {\n background: rgba($grey-dk-000, 0.2);\n border-left: $border-radius solid $grey-dk-300;\n border-radius: $border-radius;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);\n padding: .8rem;\n > p:first-child {\n margin-top: 0;\n margin-bottom: 0;\n color: $grey-dk-300;\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n}\n\nblockquote.important {\n margin-left: 0;\n margin-right: 0;\n \n > p:first-child {\n margin-top: 0;\n }\n \n > p:last-child {\n margin-bottom: 0;\n }\n}\n\nblockquote.important-title {\n margin-left: 0;\n margin-right: 0;\n \n > p:nth-child(2) {\n margin-top: 0;\n }\n \n > p:last-child {\n margin-bottom: 0;\n }\n}\n\np.note, blockquote.note {\n background: rgba($blue-000, 1);\n border-left: $border-radius solid $blue-300;\n border-radius: $border-radius;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);\n padding: .8rem;\n \n &::before {\n color: $blue-300;\n content: \"Note\";\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n \n > .note-title {\n color: $blue-300;\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n}\n\np.note-title, blockquote.note-title {\n background: rgba($blue-000, 1);\n border-left: $border-radius solid $blue-300;\n border-radius: $border-radius;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);\n padding: .8rem;\n > p:first-child {\n margin-top: 0;\n margin-bottom: 0;\n color: $blue-300;\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n}\n\nblockquote.note {\n margin-left: 0;\n margin-right: 0;\n \n > p:first-child {\n margin-top: 0;\n }\n \n > p:last-child {\n margin-bottom: 0;\n }\n}\n\nblockquote.note-title {\n margin-left: 0;\n margin-right: 0;\n \n > p:nth-child(2) {\n margin-top: 0;\n }\n \n > p:last-child {\n margin-bottom: 0;\n }\n}\n\np.warning, blockquote.warning {\n background: rgba($red-000, 0.2);\n border-left: $border-radius solid $red-300;\n border-radius: $border-radius;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);\n padding: .8rem;\n \n &::before {\n color: $red-300;\n content: \"Warning\";\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n \n > .warning-title {\n color: $red-300;\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n}\n\np.warning-title, blockquote.warning-title {\n background: rgba($red-000, 0.2);\n border-left: $border-radius solid $red-300;\n border-radius: $border-radius;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);\n padding: .8rem;\n > p:first-child {\n margin-top: 0;\n margin-bottom: 0;\n color: $red-300;\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n}\n\nblockquote.warning {\n margin-left: 0;\n margin-right: 0;\n \n > p:first-child {\n margin-top: 0;\n }\n \n > p:last-child {\n margin-bottom: 0;\n }\n}\n\nblockquote.warning-title {\n margin-left: 0;\n margin-right: 0;\n \n > p:nth-child(2) {\n margin-top: 0;\n }\n \n > p:last-child {\n margin-bottom: 0;\n }\n}\n\n\n@import \"./custom/custom\";\n\n\n","// Sticky header\n@media (min-width: 50rem){\n #main-header{\n position: sticky;\n top:0;\n z-index:999\n }\n}\n\n// Ontimize TOC\n.sidebar__right {\n @include mq(md) {}\n\n @include mq(lg) {\n position: fixed;\n top: 64px;\n right: 0px;\n max-height: calc(100% - 112px);\n min-height: fit-content;\n width: 360px;\n padding-bottom: 20px;\n border: 1px solid $border-color;\n border-radius: 4px;\n overflow: auto;\n background-color: $body-background-color;\n z-index: 999;\n }\n}\n\n.toc {\n letter-spacing: 1px;\n .nav__title {\n margin: 0;\n cursor: pointer;\n @include fs-5;\n\n @include mq(md) {\n @include fs-4;\n }\n\n color: $primary-500;\n background-color: $primary-50;\n padding: 20px 14px 8px 14px;\n }\n}\n\n.toc__menu {\n\n @include fs-5;\n\n @include mq(md) {\n @include fs-4;\n }\n\n margin: 0;\n padding: 0;\n width: 100%;\n list-style: none;\n\n li::before {\n content: \"\" !important;\n }\n\n a {\n text-decoration: none;\n color: $dark-74;\n\n &.active {\n color: $dark-60;\n font-weight: 500;\n }\n }\n\n li ul>li a {\n padding-top: 0.2rem;\n border: none;\n text-transform: none;\n\n }\n}\n\n//Ontimize TOC screen size bigger than 66.5 rem\n@media (min-width: 66.5rem){\n .toc__menu.collapsed {\n display: none;\n }\n\n .toc.collapsed{\n position: relative;\n bottom: 14px;\n }\n\n .nav__title.collapsed{\n font-size: 15px !important;\n height: 30px;\n cursor: pointer;\n }\n\n .sidebar__right.collapsed{\n padding-bottom: 0px;\n width: auto;\n transform: rotate(270deg);\n transform-origin: bottom right;\n top: calc(64px - 30px);\n height: 30px;\n overflow: hidden;\n background-color: $primary-50;\n }\n}\n\n//Multicolumn\n.multicolumn {\n display: flex;\n}\n\n.toggle-tree-btn {\n all: unset;\n margin-bottom: 10px;\n align-self: flex-end;\n position: absolute;\n top: 8px;\n right: 8px;\n cursor: pointer;\n}\n\n.multicolumnleft {\n flex: 1;\n max-width: 100%;\n overflow-x: auto;\n padding: 0 40px 0 0;\n box-sizing: border-box;\n position: relative;\n}\n\n.multicolumnnopadding {\n flex: 1;\n max-width: 100%;\n overflow-x: auto;\n padding: 0 0 0 0;\n box-sizing: border-box;\n}\n\n.multicolumnright {\n box-sizing: border-box;\n border-left: 1px solid #ccc;\n transition: width 0.3s ease;\n overflow-x: auto;\n\n &.collapsed {\n width: 0;\n overflow: hidden;\n padding: 0;\n border-left: none;\n display: none;\n }\n}\n\n.verticalDivider {\n border-left: 1px solid #F2F3F3;\n padding-right: 10px;\n margin-left: 10px;\n}\n\n\n// //jstree\n.jstreeloader ul>li::before {\n content: \"\";\n}\n\n@media (min-width: 50rem) and ((max-width: 66.5rem)){\n #top.main{\n max-width: none;\n margin-left: 16.5rem;\n }\n}\n\n@media (min-width: 66.5rem){\n body>div.side-bar{\n min-width: auto;\n width:auto,\n }\n\n #top.main{\n max-width: none;\n margin-left: calc(16.5rem + 1px);\n }\n}\n\n@media (min-width: 50rem){\n div.side-bar {\n width: 16.5rem;\n }\n\n\n}\n\ntable {\n table-layout: auto;\n width: 120px;\n}\n\n\n\n// Custom text colors\n.text-primary-900 {\n color: $primary-900\n}\n\n// breadcrumbs.html include style\n.breadcrumbs {\n @include mq(md) {\n margin-top: -$sp-4;\n }\n\n ol {\n padding-left: 0;\n margin-bottom: $sp-3;\n list-style: none;\n }\n\n li {\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\n}\n\n// Button outline style\n.btn:focus {\n display: none;\n}\n\n// Links\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: $primary-500-24;\n }\n}\n\n// Header version changer\n.select {\n border-style: none;\n}\n\n// Default side bar\n.nav-list {\n .nav-list-item {\n\n .nav-list-expander {\n color: $dark-74;\n }\n\n .nav-list-link {\n color: $dark-74;\n font-weight: 400;\n // 16px\n font-size: $font-size-5;\n\n &.active {\n color: $dark-60;\n font-weight: 500;\n font-size: $font-size-5;\n }\n }\n }\n}\n\n// Style of the header version changer\n.header-custom-main {\n display: flex;\n place-content: end;\n column-gap: 10px;\n margin-right: 33px;\n\n .select {\n border-style: none;\n background: transparent;\n }\n\n .github-div {\n display: flex;\n align-items: center;\n\n >a {\n display: flex;\n align-items: center;\n }\n }\n}\n\n// Style of the component-api tabs\n.o-tab {\n overflow: hidden;\n padding-bottom: 6px;\n\n /* Style the buttons that are used to open the tab content */\n button {\n background-color: inherit;\n float: left;\n border: none;\n outline: none;\n cursor: pointer;\n padding: 12px 16px;\n transition: .3s;\n font-size: 0.8em;\n color: #333333;\n }\n\n /* Change background color of buttons on hover */\n button:hover {\n background-color: lighten($primary-500, 40%);\n border-bottom: 2px solid $primary-500-24;\n }\n\n /* Create an active/current tablink class */\n button.active {\n border-bottom: 2px solid $primary-500;\n }\n\n}\n\n/* Style the tab content */\n.o-tabcontent {\n display: none;\n padding: 6px 12px;\n -webkit-animation: fadeEffect 1s;\n animation: fadeEffect 1s;\n}\n\n.o-component-container {\n .list__item {\n padding-right: 0;\n\n .archive__item-excerpt {\n margin-top: 0;\n font-size: .75em;\n }\n }\n}\n\n// Api tables\n.mdl-data-table {\n td {\n &[required] {\n p.first {\n &:after {\n content: ' *';\n }\n }\n }\n }\n}\n\n// Api attribute inhereds\n.attributes-list {\n overflow: hidden;\n\n li {\n display: inline-block;\n width: 50%;\n margin-bottom: .25em;\n font-size: 18px;\n }\n}\n\n\n\n// FAQ page\n\n.faq-posts {\n .panel-default {\n\n .panel-heading {\n color: #333;\n background-color: #f5f5f5;\n border-color: #ddd;\n border-bottom: 0;\n\n padding: 10px 30px;\n border-bottom: 1px solid transparent;\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n cursor: pointer;\n }\n\n .panel-title {\n margin-top: 0;\n margin-bottom: 0;\n font-size: 16px;\n color: inherit;\n }\n }\n\n .panel-body {\n padding: 15px;\n font-size: 14px;\n }\n\n .panel {\n margin-bottom: 0;\n border-radius: 4px;\n\n background-color: #fff;\n border: 1px solid transparent;\n\n //-webkit-box-shadow: 0 1px 1px rgba(0,0,0,.05);\n //box-shadow: 0 1px 1px rgba(0,0,0,.05);\n }\n\n .collapse {\n display: none;\n\n &.in {\n display: block;\n }\n }\n\n .collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n -webkit-transition-property: height, visibility;\n transition-property: height, visibility;\n -webkit-transition-duration: .35s;\n transition-duration: .35s;\n -webkit-transition-timing-function: ease;\n transition-timing-function: ease;\n }\n}","// custom setup code goes here\n$primary-500: #1464A5;\n$primary-400: #377BB3;\n$primary-900: #063679;\n$primary-500-24: #1464A53D;\n$primary-50: #E3ECF4;\n$dark-74: #000000BD;\n$dark-60: #00000099;\n$grey: #F6F6F6;\n$roboto: 'Roboto', sans-serif;\n\n// media queries\n$custom-media-queries: (home-header: 800px,\n home-imgs-max: 2880px,\n mobile-m: 375px);\n$media-queries: map-merge($media-queries, $custom-media-queries);"],"file":"just-the-docs-light.css"} \ No newline at end of file diff --git a/v1/assets/icons/android-icon-144x144.png b/v1/assets/icons/android-icon-144x144.png new file mode 100644 index 0000000..7751e64 Binary files /dev/null and b/v1/assets/icons/android-icon-144x144.png differ diff --git a/v1/assets/icons/android-icon-192x192.png b/v1/assets/icons/android-icon-192x192.png new file mode 100644 index 0000000..26fb10e Binary files /dev/null and b/v1/assets/icons/android-icon-192x192.png differ diff --git a/v1/assets/icons/android-icon-36x36.png b/v1/assets/icons/android-icon-36x36.png new file mode 100644 index 0000000..2081f7e Binary files /dev/null and b/v1/assets/icons/android-icon-36x36.png differ diff --git a/v1/assets/icons/android-icon-48x48.png b/v1/assets/icons/android-icon-48x48.png new file mode 100644 index 0000000..72e98c5 Binary files /dev/null and b/v1/assets/icons/android-icon-48x48.png differ diff --git a/v1/assets/icons/android-icon-72x72.png b/v1/assets/icons/android-icon-72x72.png new file mode 100644 index 0000000..f1bbb7a Binary files /dev/null and b/v1/assets/icons/android-icon-72x72.png differ diff --git a/v1/assets/icons/android-icon-96x96.png b/v1/assets/icons/android-icon-96x96.png new file mode 100644 index 0000000..e97902f Binary files /dev/null and b/v1/assets/icons/android-icon-96x96.png differ diff --git a/v1/assets/icons/apple-icon-114x114.png b/v1/assets/icons/apple-icon-114x114.png new file mode 100644 index 0000000..e5d8104 Binary files /dev/null and b/v1/assets/icons/apple-icon-114x114.png differ diff --git a/v1/assets/icons/apple-icon-120x120.png b/v1/assets/icons/apple-icon-120x120.png new file mode 100644 index 0000000..16e4b56 Binary files /dev/null and b/v1/assets/icons/apple-icon-120x120.png differ diff --git a/v1/assets/icons/apple-icon-144x144.png b/v1/assets/icons/apple-icon-144x144.png new file mode 100644 index 0000000..7751e64 Binary files /dev/null and b/v1/assets/icons/apple-icon-144x144.png differ diff --git a/v1/assets/icons/apple-icon-152x152.png b/v1/assets/icons/apple-icon-152x152.png new file mode 100644 index 0000000..b285d0a Binary files /dev/null and b/v1/assets/icons/apple-icon-152x152.png differ diff --git a/v1/assets/icons/apple-icon-180x180.png b/v1/assets/icons/apple-icon-180x180.png new file mode 100644 index 0000000..08eb003 Binary files /dev/null and b/v1/assets/icons/apple-icon-180x180.png differ diff --git a/v1/assets/icons/apple-icon-57x57.png b/v1/assets/icons/apple-icon-57x57.png new file mode 100644 index 0000000..6d7595c Binary files /dev/null and b/v1/assets/icons/apple-icon-57x57.png differ diff --git a/v1/assets/icons/apple-icon-60x60.png b/v1/assets/icons/apple-icon-60x60.png new file mode 100644 index 0000000..63119d9 Binary files /dev/null and b/v1/assets/icons/apple-icon-60x60.png differ diff --git a/v1/assets/icons/apple-icon-72x72.png b/v1/assets/icons/apple-icon-72x72.png new file mode 100644 index 0000000..f1bbb7a Binary files /dev/null and b/v1/assets/icons/apple-icon-72x72.png differ diff --git a/v1/assets/icons/apple-icon-76x76.png b/v1/assets/icons/apple-icon-76x76.png new file mode 100644 index 0000000..d70f706 Binary files /dev/null and b/v1/assets/icons/apple-icon-76x76.png differ diff --git a/v1/assets/icons/browserconfig.xml b/v1/assets/icons/browserconfig.xml new file mode 100644 index 0000000..c554148 --- /dev/null +++ b/v1/assets/icons/browserconfig.xml @@ -0,0 +1,2 @@ + +#ffffff \ No newline at end of file diff --git a/v1/assets/icons/favicon-16x16.png b/v1/assets/icons/favicon-16x16.png new file mode 100644 index 0000000..8e1725f Binary files /dev/null and b/v1/assets/icons/favicon-16x16.png differ diff --git a/v1/assets/icons/favicon-32x32.png b/v1/assets/icons/favicon-32x32.png new file mode 100644 index 0000000..6616668 Binary files /dev/null and b/v1/assets/icons/favicon-32x32.png differ diff --git a/v1/assets/icons/favicon-96x96.png b/v1/assets/icons/favicon-96x96.png new file mode 100644 index 0000000..e97902f Binary files /dev/null and b/v1/assets/icons/favicon-96x96.png differ diff --git a/v1/assets/icons/favicon.ico b/v1/assets/icons/favicon.ico new file mode 100644 index 0000000..e8c2c78 Binary files /dev/null and b/v1/assets/icons/favicon.ico differ diff --git a/v1/assets/icons/github-front.svg b/v1/assets/icons/github-front.svg new file mode 100644 index 0000000..73c86e7 --- /dev/null +++ b/v1/assets/icons/github-front.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/v1/assets/icons/logo-ontimize-blanco.png b/v1/assets/icons/logo-ontimize-blanco.png new file mode 100644 index 0000000..dd31e0a Binary files /dev/null and b/v1/assets/icons/logo-ontimize-blanco.png differ diff --git a/v1/assets/icons/manifest.json b/v1/assets/icons/manifest.json new file mode 100644 index 0000000..12b867c --- /dev/null +++ b/v1/assets/icons/manifest.json @@ -0,0 +1,41 @@ +{ + "name": "App", + "icons": [ + { + "src": "\/android-icon-36x36.png", + "sizes": "36x36", + "type": "image\/png", + "density": "0.75" + }, + { + "src": "\/android-icon-48x48.png", + "sizes": "48x48", + "type": "image\/png", + "density": "1.0" + }, + { + "src": "\/android-icon-72x72.png", + "sizes": "72x72", + "type": "image\/png", + "density": "1.5" + }, + { + "src": "\/android-icon-96x96.png", + "sizes": "96x96", + "type": "image\/png", + "density": "2.0" + }, + { + "src": "\/android-icon-144x144.png", + "sizes": "144x144", + "type": "image\/png", + "density": "3.0" + }, + { + "src": "\/android-icon-192x192.png", + "sizes": "192x192", + "type": "image\/png", + "density": "4.0" + } + ] +} \ No newline at end of file diff --git a/v1/assets/icons/ms-icon-150x150.png b/v1/assets/icons/ms-icon-150x150.png new file mode 100644 index 0000000..ee69eb4 Binary files /dev/null and b/v1/assets/icons/ms-icon-150x150.png differ diff --git a/v1/assets/icons/ms-icon-310x310.png b/v1/assets/icons/ms-icon-310x310.png new file mode 100644 index 0000000..2268a82 Binary files /dev/null and b/v1/assets/icons/ms-icon-310x310.png differ diff --git a/v1/assets/icons/ms-icon-70x70.png b/v1/assets/icons/ms-icon-70x70.png new file mode 100644 index 0000000..88f594c Binary files /dev/null and b/v1/assets/icons/ms-icon-70x70.png differ diff --git a/v1/assets/icons/mstile-144x144.png b/v1/assets/icons/mstile-144x144.png new file mode 100644 index 0000000..7751e64 Binary files /dev/null and b/v1/assets/icons/mstile-144x144.png differ diff --git a/v1/assets/images/databasecmplx.png b/v1/assets/images/databasecmplx.png new file mode 100644 index 0000000..ea2a78e Binary files /dev/null and b/v1/assets/images/databasecmplx.png differ diff --git a/v1/assets/js/customScript.js b/v1/assets/js/customScript.js new file mode 100644 index 0000000..59f83f2 --- /dev/null +++ b/v1/assets/js/customScript.js @@ -0,0 +1,70 @@ +// Load jsTree +$(document).ready(function () { $('.jstreeloader').jstree(); }); + +// Show trees on initial load with width bigger than 1260px +window.onload = function() { + var windowWidth = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; + if (windowWidth > 1260) { + var toggleButtons = document.getElementsByClassName('jstreeloader'); + for (let div of toggleButtons){ + div.classList.remove('collapsed'); + div.parentElement.querySelector('.material-symbols-outlined').textContent = 'left_panel_open'; + } + } +}; + +// Toggle tree multicolumn +document.addEventListener('DOMContentLoaded', function() { + var toggleButtons = document.getElementsByClassName('toggle-tree-btn'); + for (let btn of toggleButtons) { + btn.addEventListener('click', function() { + var jstreeLoader = btn.closest('.multicolumn').querySelector('.jstreeloader'); + jstreeLoader.classList.toggle('collapsed'); + var isCollapsed = jstreeLoader.classList.contains('collapsed'); + var spanElement = btn.querySelector('.material-symbols-outlined'); + if (isCollapsed) { + spanElement.textContent = 'right_panel_open'; + } else { + spanElement.textContent = 'left_panel_open'; + } + }); + } +}); + +// Collapsible TOC +document.addEventListener("DOMContentLoaded", function() { + var tocTitle = document.getElementById("tocTitle"); + + if(tocTitle != null){ + tocTitle.addEventListener("click", function() { + var toc = document.getElementById("toc"); + toc.querySelector('.toc__menu').classList.toggle('collapsed'); + toc.closest('.sidebar__right').classList.toggle('collapsed'); + tocTitle.classList.toggle('collapsed'); + toc.classList.toggle('collapsed'); + }); + } +}); + +// Anchor scroll behaviour for sticky header +document.addEventListener('DOMContentLoaded', function() { + document.querySelectorAll('a[href^="#"]').forEach(function(anchor) { + anchor.addEventListener('click', function(e) { + e.preventDefault(); + const targetId = this.getAttribute('href').substring(1); + const targetElement = document.getElementById(targetId); + + if (targetElement) { + var windowWidth = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; + var offset = targetElement.offsetTop; + if (windowWidth > 800) { + var offset = offset - 72; + } + window.scrollTo({ + top: offset, + behavior: 'smooth' + }); + } + }); + }); +}); \ No newline at end of file diff --git a/v1/assets/js/just-the-docs.js b/v1/assets/js/just-the-docs.js new file mode 100644 index 0000000..fbb4b90 --- /dev/null +++ b/v1/assets/js/just-the-docs.js @@ -0,0 +1,545 @@ +(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'); + + disableHeadStyleSheet(); + + 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 page-specific Understanding application.yml | Ontimize Boot Skip to main content Link Menu Expand (external link) Document Search Copy Copied

Introduction

A YAML file, with extension *.yml or .yaml , is a human readable file in which we can write data pairs in a suitable way by combinations of lists, maps and simple data. Another of the most important features of these files is the indentation. It is important to write these indented elements correctly, since if they are badly indented, they cannot be parsed correctly.

Application.yml file description

Endpoints

They allow you to monitor and interact with your application. Integrated endpoints are available, but adding custom endpoints is also allowed.

  • endpoints: api:
Attribute Values Meaning
enabled true, false Active Spring Boot endpoints.

Example

endpoints:
+  api:
+    enabled: true
+

Logging

  • logging: level:
Attribute Values Meaning
root String Default server log level set to INFO level

Example

logging:
+  level:
+    root: info
+

CORS

Mechanism that allows restricted resources to be requested between domains.

  • ontimize:corsfilter:
Attribute Values Meaning
enabled true, false CORS filter enabled.
  • ontimize:globalcors:

CORS global configuration

Attribute Values Meaning
corsConfigurations String Configuration for this entrypoint
  • ontimize:globalcors:corsConfigurations:
Attribute Values Meaning
allowedOrigins String Allow different origins
allowedHeaders String Allow headers
exposedHeaders [“X-Auth-Token”,”Content-disposition”,”X-Requested-With”] Exposed headers
allowedMethods GET, POST, PUT, DELETE, OPTIONS Allow HTTP methods

Example

ontimize:
+  corsfilter:
+    enabled: true
+  globalcors:
+    corsConfigurations:
+      "[/**]":
+        allowedOrigins: "*"
+        allowedHeaders: "*"
+        exposedHeaders: ["X-Auth-Token", "Content-disposition", "X-Requested-With"]
+        allowedMethods:
+          - GET
+          - POST
+          - PUT
+          - OPTIONS
+          - DELETE
+

JDBC

  • ontimize:jdbc:
Attribute Values Meaning
nameConvention upper, lower, database Convention of data columns name
sqlhandler postgres, oracle, oracle12, sqlserver, hsqldb SQL handler
  • ontimize:jdbc:sqlConditionProcessor:

SQL handler

Attribute Values Meaning
upperString true, false Use of uppercase
upperLike true, false String comparision using LIKE in uppercase

Example

jdbc:
+  nameConvention: upper
+  sqlhandler: hslqdb
+  sqlConditionProcessor:
+    upperString: true
+    upperLike: true
+

Security

Attribute Values Meaning
mode default Default security mode
  • ontimize:security:roleInformationService:

Configure columns for user roles

Attribute Values Meaning
roleRepository String Repository which store the user role
roleNameColumn String Name of the column which store the role name
serverPermissionQueryId String Query ID to identify the query of server permissions
serverPermissionNameColumn String Name of the columns which contains the name of the server permission
clientPermissionQueryId String Query ID for client permissions
clientPermissionColumn String Name of the columns which contains the name of the client permission
  • ontimize:security:userInformationService:

Information about the user

Attribute Values Meaning
userRepository String Repository which stores the users of the application
userLoginColumn String Name of the column with the username
userPasswordColumn String Name of the column with the password
queryId String Query identififer for login
otherData List Other query columns
  • ontimize:security:userRoleInformationService:

Repository information about linking users and roles

Attribute Values Meaning
userRoleRepository String Repository name
queryId String Query identifier
roleLoginColumn String Column which stores the user
roleNameColumn String Column which stores the role name

Example

security:
+  mode: default
+  roleInformationService:
+    roleRepository: UserRoleDao
+    roleNameColumn: ROLENAME
+    serverPermissionQueryId: serverPermissions
+    serverPermissionNameColumn: PERMISSION_NAME
+    clientPermissionQueryId: clientPermissions
+    clientPermissionColumn: XMLCLIENTPERMISSION
+  userInformationService:
+    userRepository: UserDao
+    userLoginColumn: USER_
+    userPasswordColumn: PASSWORD
+    queryId: login
+    otherData:
+      - NAME
+      - SURNAME
+      - EMAIL
+      - NIF
+      - USERBLOCKED
+      - LASTPASSWORDUPDATE
+      - FIRSTLOGIN
+  userRoleInformationService:
+    userRoleRepository: UserRoleDao
+    queryId: userRole
+    roleLoginColumn: USER_
+    roleNameColumn: ROLENAME
+

Server

  • ontimize:server:
Attribute Values Meaning
port int Server port
  • ontimize:server:servlet:
Attribute Values Meaning
context-path String customized servlet path
  • ontimize:server:tomcat:
Attribute Values Meaning
uri-encoding String URI encoding
  • ontimize:server:compression:
Attribute Values Meaning
enabled true, false Enable data compression
mime-types String Mime types

Example

server:
+  servlet:
+    context-path: /custom/path
+  port: 33333
+  tomcat:
+    uri-encoding: UTF-8
+  compression:
+    enabled: true
+    mime-types: application/json, application/xml
+

Spring

  • ontimize:spring:datasource:

Data source (DB connection)

Attribute Values Meaning
driver-class-name String JDBC driver
jdbcUrl String Connection URl
username String DB username
password String DB username password
initialSize int Initial size
testOnBorrow true, false Validation
  • ontimize:spring:main:
Attribute Values Meaning
banner-mode on, off Remove the startup banner in the console
  • ontimize:spring:session:
Attribute Values Meaning
store-type String Save the session in spring
  • ontimize:spring:resources:
Attribute Values Meaning
static-locations String Path for satic resources
  • ontimize:spring:autoconfigure:
Attribute Values Meaning
exclude String Delete Spring Boot auto-configuration files

Example

spring:
+  datasource:
+    driver-class-name: org.hsqldb.jdbcDriver
+    jdbcUrl: jdbc:hsqldb:hsql://localhost:9013/templateDB
+    username: SA
+    password:
+    initialSize: 10
+    testOnBorrow: true
+  main:
+    banner-mode: "off"
+  session:
+    store-type: none
+  resources:
+    static-locations: classpath:/ngx/dist/
+  autoconfigure:
+    exclude: org.springframework.boot.autoconfigure.security.SecurityAutoConfiguration, org.springframework.boot.actuate.autoconfigure.ManagementWebSecurityAutoConfiguration
+

Complete Example

endpoints:
+  api:
+    enabled: true
+logging:
+  level:
+    root: info
+ontimize:
+  corsfilter:
+    enabled: true
+  globalcors:
+    corsConfigurations:
+      "[/**]":
+        allowedOrigins: "*"
+        allowedHeaders: "*"
+        exposedHeaders: ["X-Auth-Token", "Content-disposition", "X-Requested-With"]
+        allowedMethods:
+          - GET
+          - POST
+          - PUT
+          - OPTIONS
+          - DELETE
+  jdbc:
+    nameConvention: upper
+    sqlhandler: hsqldb
+    sqlConditionProcessor:
+      upperString: true
+      upperLike: true
+  security:
+    mode: default
+    roleInformationService:
+      roleRepository: UserRoleDao
+      roleNameColumn: ROLENAME
+      serverPermissionQueryId: serverPermissions
+      serverPermissionNameColumn: PERMISSION_NAME
+      clientPermissionQueryId: clientPermissions
+      clientPermissionColumn: XMLCLIENTPERMISSION
+    userInformationService:
+      userRepository: UserDao
+      userLoginColumn: USER_
+      userPasswordColumn: PASSWORD
+      queryId: login
+      otherData:
+        - NAME
+        - SURNAME
+        - EMAIL
+        - NIF
+        - USERBLOCKED
+        - LASTPASSWORDUPDATE
+        - FIRSTLOGIN
+    userRoleInformationService:
+      userRoleRepository: UserRoleDao
+      queryId: userRole
+      roleLoginColumn: USER_
+      roleNameColumn: ROLENAME
+server:
+  port: 33333
+  tomcat:
+    uri-encoding: UTF-8
+  compression:
+    enabled: true
+    mime-types: application/json, application/xml
+spring:
+  datasource:
+    driver-class-name: org.hsqldb.jdbcDriver
+    jdbcUrl: jdbc:hsqldb:hsql://localhost:9013/templateDB
+    username: SA
+    password:
+    initialSize: 10
+    testOnBorrow: true
+  main:
+    banner-mode: "off"
+  session:
+    store-type: none
+  resources:
+    static-locations: classpath:/ngx/dist/
+  autoconfigure:
+    exclude: |
+      org.springframework.boot.autoconfigure.security.SecurityAutoConfiguration, org.springframework.boot.actuate.autoconfigure.ManagementWebSecurityAutoConfiguration, org.springframework.boot.autoconfigure.security.FallbackWebSecurityAutoConfiguration
+
diff --git a/v1/basics/autoconfigurators/index.html b/v1/basics/autoconfigurators/index.html new file mode 100644 index 0000000..b5d5d2b --- /dev/null +++ b/v1/basics/autoconfigurators/index.html @@ -0,0 +1,91 @@ + Autoconfigurators | Ontimize Boot Skip to main content Link Menu Expand (external link) Document Search Copy Copied

Autoconfigurators are an easy way to indicate common elements that need minimal customization in applications, such as database connection. These configurations are used within the application.yml file located inside the boot folder.

DMS

  • ontimize:dms:
Attribute Values Meaning
engine odms Indicates the engine that will be used for the DMS system. Ontimize has an implementation of an engine, whose value is odms.
basePath String The path where the DMS files will be stored

The configuration of DMS system is done by setting up the necessary DAOs for that system. To see the configuration, check this link.

Example

ontimize:
+  dms:
+    engine: odms
+    basePath: file:/C:/applications/projectwiki/dms
+

I18n

ontimize:i18n:

Attribute Values Meaning
refBundleRepository String Name of the DAO containing information about the translation bundles
bundleKeyColumn String Column of the database table containing the translation bundle identifier
bundleClassNameColumn String Column of the database table containing the name of the translation bundle class
bundleDescriptionColumn String Column of the database table containing the description of the translation bundle
refBundleValueRepository String Name of the database table containing information about the translations of each translation bundle
bundleValueTextKeyColumn String Column of the database table containing the key of a translation
bundleValueKeyColumn String Column of the database table containing the key of a translation
engine default Property to enable the i18n system. Need to have any value, commonly, default.

The configuration of the I18N system is done by setting up the necessary DAOs for that system. To see the configuration, check this link.

Example

ontimize:
+  i18n:
+    refBundleRepository: OCDatabaseBundleDao
+    bundleKeyColumn: ID_I18N
+    bundleClassNameColumn: CLASS_NAME
+    bundleDescriptionColumn: I18N_DESCRIPTION
+    refBundleValueRepository: OCDatabaseBundleValueDao
+    bundleValueTextKeyColumn: KEY
+    bundleValueKeyColumn: ID_I18N_VALUE
+    engine: default
+

JDBC

  • ontimize:jdbc:
Attribute Values Meaning
nameConvention upper, lower, database Indicate the nomenclature of the columns in the DB, in lower case, upper case or as it appears in the database
sqlhandler postgres, oracle, oracle12, sqlserver, hsqldb Indicates which SQL statement handler will be used to communicate with the database
  • ontimize:jdbc:sqlConditionProcessor:
Attribute Values Meaning
uppperString true, false Use uppercase strings in WHERE conditions
upperLike true, false Use uppercase strings in LIKE conditions

Example

ontimize:
+  jdbc:
+    nameConvention: upper
+    sqlhandler: hsqldb
+    sqlConditionProcessor:
+      uppperString: true
+      upperLike: true
+

LDAP

  • ontimize:security:
Attribute Value Meaning
mode ldap Change the system security from default to ldap
  • ldap:
Attribute Values Meaning
active true, false Enable or disable ldap security
host IP Ip host for ldap security
port Number Port of the host for ldap security
loginType DN, simple The login type indicates whether a full LDAP string with DN value or will be used or if the username will simply be provided with simple value
bind.dn String File to populate the LDAP server using a .ldif file
base.dn String List of base DNs.
domain String The domain name

The LDAP security configuration is done through autoconfigurators. To see the settings, check this link.

Example

ontimize:
+  security:
+  mode: ldap
+ldap:
+  active: true
+  host: 10.0.0.1
+  port: 389
+  loginType: simple
+  bind.dn:
+  base.dn:
+  domain: yourdomain.com
+

Mail

  • ontimize:mail:
Attribute Values Meaning
refRepository String Name of the DAO containing the configuration information required for system configuration
filterColumnName String Name of the column in the database table containing the keys
valueColumnName String Name of the database table column containing the values
queryId String Name of the DAO query to be executed. By default, is default
filterColumnValueEncoding String Key name of the row in the key column containing the value for mail encoding
filterColumnValueHost String Name of the key in the row of the key column containing the value for the host in the mail service
filterColumnValuePort String Name of the key in the row of the key column containing the value for the port in the mail service
filterColumnValueProtocol String Name of the key in the row of the key column containing the value for the protocol used in the mail service
filterColumnValueUser String Name of the key in the row of the key column containing the value for the user in the mail service
filterColumnValuePassword String Name of the key in the row of the key column containing the value for the user password in the mail service
filterColumnValueJavaMailProperties String Name of the key in the row of the key column containing the value for the mail propoerties in the mail service
engine String Enable or disable mail engine. To enable, have any value int this arribute. By default, use default value

The configuration of the mail system is done by setting up the necessary DAOs for that system. To see the configuration, check this link.

Example

ontimize:
+  mail:
+    refRepository: OCSettingsDao
+    filterColumnName: SETTING_KEY
+    valueColumnName: SETTING_VALUE
+    queryId: default
+    filterColumnValueEncoding: mail_encoding
+    filterColumnValueHost: mail_host
+    filterColumnValuePort: mail_port
+    filterColumnValueProtocol: mail_protocol
+    filterColumnValueUser: mail_user
+    filterColumnValuePassword: mail_password
+    filterColumnValueJavaMailProperties: mail_properties
+    engine: default
+

REST

  • ontimize:corsfilter:
Attribute Values Meaning
enabled true, false Enable or disable CORS filter
  • ontimize:globalcors:corsConfigurations
    Indicates the entrypoint to be configured, with the properties for each one. In general, the entrypoint [/**] is configured entirely.
Attribute Values Meaning
allowedOrigins *** Set the origins to allow, the special value * allows all domains. By default this is not set
allowedHeaders *** Set the list of headers that a pre-flight request can list as allowed for use during an actual request. The special value * allows actual requests to send any header. A header name is not required to be listed if it is one of: Cache-Control, Content-Language, Expires, Last-Modified or Pragma). By default this is not set.
exposedHeaders   Set the list of response headers other than simple headers (i.e. Cache-Control, Content-Language, Content-Type, Expires, Last-Modified or Pragma that an actual response might have and can be exposed. Note that * is not a valid exposed header value. By default this is not set.
allowedMethods List Set the HTTP methods to allow, e.g. GET, POST, PUT, etc. The special value * allows all methods. If not set, only GET and HEAD are allowed. By default this is not set. Note: CORS checks use values from “Forwarded” RFC7239, X-Forwarded-Host, X-Forwarded-Port, and X-Forwarded-Proto headers, if present, in order to reflect the client-originated address. Consider using the ForwardedHeaderFilter in order to choose from a central place whether to extract and use, or to discard such headers. See the Spring Framework reference for more on this filter.
maxAge Number Configure how long, in seconds, the response from a pre-flight request can be cached by clients. By default this is not set.
allowCredentials - Whether user credentials are supported. By default this is not set (i.e. user credentials are not supported).

Example

ontimize:
+  corsfilter:
+    enabled: true
+  globalcors:
+    corsConfigurations:
+      "[/**]":
+        allowedOrigins: "*"
+        allowedHeaders: "*"
+        exposedHeaders: ["X-Auth-Token", "Content-disposition", "X-Requested-With"]
+        allowedMethods:
+          - GET
+          - POST
+          - PUT
+          - OPTIONS
+          - DELETE
+

Security

  • ontimize:security:
Attribute Values Meaning
mode default Use default to enable the security mode for Ontimize Boot
ignorePaths String Paths in server thant will not be securized
servicePath String Establish the service path. By default, */***
  • ontimize:security:jwt: Not required, enabled by default
Attribute Values Meaning
password String JWT password
expirationTime Long JWT expiration time
refreshToken true, false Set true to refresh JWT, false otherwise
  • ontimize:security:user-information-service:
Attribute Values Meaning
queryId String Name of the DAO query identifier.
userLoginColumn String Database column that stores the username
userPasswordColumn String Database column that stores the password
userNeedCheckPassColumn String Database column that stores whether the password requires updating at the next use
userRepository String Name of the DAO containing information about users
otherData List Extra data to store from the user logged
  • ontimize:security:role-information-service:
Attribute Values Meaning
roleRepository String Name of the DAO containing information about users
roleNameColumn String Database column that stores the role name
serverPermissionQueryId String Name of the DAO query identifier for server permissions
serverPermissionNameColumn String Database column that stores the server permissions
clientPermissionQueryId String Name of the DAO query identifier for client permissions
clientPermissionColumn List Database column that stores the client permissions
  • ontimize:security:user-role-information-service:
Attribute Values Meaning
userRoleRepository String Name of the DAO containing relation between users and its profiles
queryId String Name of the DAO query identifier
roleLoginColumn String Database column that stores the username
roleNameColumn String Database column that stores the role name

The configuration of the rest of the Security system is done by setting up the necessary DAOs for that system. To see the configuration, check this link.

Example

ontimize:
+  security:
+    mode: default
+    ignorePaths: /news/**, /products/**
+    userInformationService:
+      userRepository: OCLoginProfilesDao
+      queryId: login
+      userLoginColumn: USER_
+      userPasswordColumn: PASSWORD
+      otherData:
+        - NAME
+        - SURNAME
+        - EMAIL
+        - NIF
+        - USERBLOCKED
+        - LASTPASSWORDUPDATE
+        - FIRSTLOGIN
+    userRoleInformationService:
+      userRoleRepository: OCLoginProfilesDao
+      queryId: userRole
+      roleLoginColumn: USER_
+      roleNameColumn: ROLENAME
+    roleInformationService:
+      roleRepository: OCLoginProfilesDao
+      roleNameColumn: ROLENAME
+      serverPermissionQueryId: serverPermissions
+      serverPermissionNameColumn: PERMISSION_NAME
+      clientPermissionQueryId: clientPermissions
+      clientPermissionColumn: XMLCLIENTPERMISSION
+
diff --git a/v1/basics/complexqueries/index.html b/v1/basics/complexqueries/index.html new file mode 100644 index 0000000..241aaf6 --- /dev/null +++ b/v1/basics/complexqueries/index.html @@ -0,0 +1,159 @@ + Using complex queries | Ontimize Boot Skip to main content Link Menu Expand (external link) Document Search Copy Copied

Introduction

In this example the DAO *.xml files will be modified to make complex queries against other database tables.

Database structure

We will update the OfferCandidatesDao DAO to add new information in the *.xml. In this case, you will try to add a new query that reflects the other tables that are used from this DAO to relate the offers, candidates, and status. As this table only contains identifiers, our new query will allow us to know all the data and not only its identifiers.

database

Modify the DAO to add a complex query

In the *.xml, we will add a new <Queries> tag in which we will add the new queries using the <Query> tag. In this query, we can indicate the query to be executed through the <Sentence> tag. As we want to use the columns and conditions that you indicate through the request, we will use the following markers:

Query markers

Marker Meaning
#COLUMNS# Columns to be queried
#WHERE# Columns to filter the query
#WHERE_CONCAT# Adds more columns to filter the query with the AND sql operator
#ORDER# Column to order the queried values with the ORDER BY sql operator
#ORDER_CONCAT# Adds more columns to order the queried values with a comma (,)
#SCHEMA# Gets the database schema

Example

<Queries>
+    <Query>
+        <Sentence>
+            <![CDATA[
+                SELECT
+                #COLUMNS#
+                FROM
+                #SCHEMA#.OFFER_CANDIDATES
+                #WHERE#
+            ]]>
+        </Sentence>
+    </Query>
+</Queries>
+

This will be the query to execute:

SELECT ID, OFFER_ID, CANDIDATE_ID, OFFER_CANDIDATE_STATUS FROM PUBLIC.OFFER_CANDIDATES WHERE ID = 200
+

There are two ways to order the queries values, with the #ORDER# marker or with a <OrderColumn> tag

Example with #ORDER#

<Queries>
+    <Query>
+        <Sentence>
+            <![CDATA[
+                SELECT
+                #COLUMNS#
+                FROM
+                OFFER_CANDIDATES
+                #ORDER#
+            ]]>
+        </Sentence>
+    </Query>
+</Queries>
+

This will be the query to execute:

SELECT ID, OFFER_ID, CANDIDATE_ID, OFFER_CANDIDATE_STATUS FROM PUBLIC.OFFER_CANDIDATES ORDER BY ID
+

Example with <OrderColumn>

<Queries>
+    <Query>
+        <OrderColumns>
+            <OrderColumn name="CANDIDATE_ID" type="ASC"/>
+        </OrderColumns>
+        <Sentence>
+            <![CDATA[
+                SELECT
+                #COLUMNS#
+                FROM
+                OFFER_CANDIDATES
+            ]]>
+        </Sentence>
+    </Query>
+</Queries>
+

This will be the query to execute:

SELECT ID, OFFER_ID, CANDIDATE_ID, OFFER_CANDIDATE_STATUS FROM PUBLIC.OFFER_CANDIDATES ORDER BY CANDIDATE_ID
+

There are two types of OrderColumn, ASC (Ascendent) or DESC (Descendent).

Ambiguous columns

The use of the <AmbiguousColumn> tag will indicate which are the ambiguous columns (in this case, the DESCRIPTION column of OFFER_CANDIDATE_STATUS and OFFER, using the name of DESC_STATUS for OFFER_CANDIDATE_STATUS). Otherwise in case we want to modify the query that is performed by default, the identifier of the tag would be default <Query id = "default">. As we want to keep the query by default, we will put another identifier.

Example

 <Queries>
+  <Query id="details">
+   <AmbiguousColumns>
+    <AmbiguousColumn name="DESC_STATUS" prefix="OS"
+     databaseName="DESCRIPTION" />
+    <AmbiguousColumn name="OFF_STATUS" prefix="OCS"
+     databaseName="DESCRIPTION" />
+   </AmbiguousColumns>
+   <Sentence>
+   <![CDATA[
+     SELECT
+      #COLUMNS#
+     FROM
+      PUBLIC.OFFER_CANDIDATES OC
+     INNER JOIN PUBLIC.OFFER O ON
+      OC.OFFER_ID = O.ID
+     INNER JOIN PUBLIC.CANDIDATE C ON
+      OC.CANDIDATE_ID = C.ID
+     INNER JOIN PUBLIC.OFFER_STATUS OS ON
+      O.OFFER_STATUS = OS.ID
+     INNER JOIN PUBLIC.OFFER_CANDIDATE_STATUS OCS ON
+      O.OFFER_STATUS = OCS.ID
+     #WHERE#
+   ]]>
+   </Sentence>
+  </Query>
+ </Queries>
+

Complete example

OfferCandidatesDao.xml

<?xml version="1.0" encoding="UTF-8"?>
+
+<JdbcEntitySetup
+ xmlns="http://www.ontimize.com/schema/jdbc"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.ontimize.com/schema/jdbc http://www.ontimize.com/schema/jdbc/ontimize-jdbc-dao.xsd"
+ catalog="" schema="${mainschema}" table="OFFER_CANDIDATES"
+ datasource="mainDataSource" sqlhandler="dbSQLStatementHandler">
+<DeleteKeys>
+<Column>ID</Column>
+</DeleteKeys>
+<UpdateKeys>
+<Column>ID</Column>
+</UpdateKeys>
+<GeneratedKey>ID</GeneratedKey>
+
+ <Queries>
+  <Query id="details">
+   <AmbiguousColumns>
+    <AmbiguousColumn name="DESC_STATUS" prefix="OS"
+     databaseName="DESCRIPTION" />
+    <AmbiguousColumn name="OFF_STATUS" prefix="OCS"
+     databaseName="DESCRIPTION" />
+   </AmbiguousColumns>
+   <Sentence>
+   <![CDATA[
+     SELECT
+      #COLUMNS#
+     FROM
+      PUBLIC.OFFER_CANDIDATES OC
+     INNER JOIN PUBLIC.OFFER O ON
+      OC.OFFER_ID = O.ID
+     INNER JOIN PUBLIC.CANDIDATE C ON
+      OC.CANDIDATE_ID = C.ID
+     INNER JOIN PUBLIC.OFFER_STATUS OS ON
+      O.OFFER_STATUS = OS.ID
+     INNER JOIN PUBLIC.OFFER_CANDIDATE_STATUS OCS ON
+      O.OFFER_STATUS = OCS.ID
+     #WHERE#
+   ]]>
+   </Sentence>
+  </Query>
+ </Queries>
+</JdbcEntitySetup>

In the java file, we will add a new constant, which will have the same value as the name of the identifier that we have established for the query.

OfferCandidatesDao.java

package com.ontimize.model.core.dao;
+
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Repository;
+
+import com.ontimize.jee.server.dao.common.ConfigurationFile;
+import com.ontimize.jee.server.dao.jdbc.OntimizeJdbcDaoSupport;
+
+@Repository("OfferCandidatesDao")
+@Lazy
+@ConfigurationFile(configurationFile = "dao/OfferCandidatesDao.xml", configurationFilePlaceholder = "dao/placeholders.properties")
+public class OfferCandidatesDao extends OntimizeJdbcDaoSupport {
+
+public static final String ATTR_ID ="ID";
+public static final String ATTR_OFFER_ID ="OFFER_ID";
+public static final String ATTR_CANDIDATE_ID ="CANDIDATE_ID";
+public static final String ATTR_OFFER_CANDIDATE_STATUS ="OFFER_CANDIDATE_STATUS";
+public static final String QUERY_OFFER_DETAILS = "details";
+
+}

Modify the interface and the service to add the new method

We will update the IOfferService interface to add the new method that will perform the query. In case of being the default query, it would not be necessary to do any of the steps indicated below.

IOfferService.java

public interface IOfferService {
+
+        ...
+
+// OFFER CANDIDATES
+...
+public EntityResult offerCandidateDetailsQuery(Map<String, Object> keyMap, List<String> attrList) throws OntimizeJEERuntimeException;
+
+        ...
+
+// OFFER CANDIDATES STATUS
+...
+}

In the service, we implement the new interface method, using the daoHelper to create the query, but adding a new parameter after the list of columns to query, which will be the identifier of the query that we have created in the DAO (and that we have associated with a constant in the corresponding java file).

OfferService.java

@Service("OfferService")
+@Lazy
+public class OfferService implements IOfferService {
+
+...
+
+@Override
+public EntityResult offerCandidateDetailsQuery(Map<String, Object> keyMap, List<String> attrList)
+throws OntimizeJEERuntimeException {
+return this.daoHelper.query(this.offerCandidatesDao, keyMap, attrList, OfferCandidatesDao.QUERY_OFFER_DETAILS);
+}
+
+...
+}
diff --git a/v1/basics/dms/index.html b/v1/basics/dms/index.html new file mode 100644 index 0000000..1866b0c --- /dev/null +++ b/v1/basics/dms/index.html @@ -0,0 +1,553 @@ + DMS System | Ontimize Boot Skip to main content Link Menu Expand (external link) Document Search Copy Copied

Introduction

A Document Management System (DMS) is a system that allows you to store files and keep track of the versions of those files. Ontimize Boot provides a DMS system that allows to store the files that are associated to the different records of a database table.

Previous concepts

  • Document (or workspace): It is superentity into which several files can be grouped.
  • File: The file is the generic representation of a file. A file groups several versions of itself.
  • Version: Is the relationship to a physical file.
  • Category (or folder): Is a way of grouping files within the document.

Prerequisites

You can follow this tutorial using your own application, although for this example we will use an application created using the archetype that can be found on this page and with a REST service.

There are 2 options to follow this tutorial, clone the repository with the initial state and follow the tutorial step by step, or download the final example and see which files are new and which have been updated.

Initial project

/$ git clone https://github.com/ontimize/ontimize-examples
+/ontimize-examples$ cd ontimize-examples
+/ontimize-examples$ git checkout boot-dms-1.x.x-initial
+

Final example

/$ git clone https://github.com/ontimize/ontimize-examples
+/ontimize-examples$ cd ontimize-examples
+/ontimize-examples$ git checkout boot-dms-1.x.x
+

To simplify the code being written, three dots (…) may appear in some parts of the code. This indicates that there may be previous code before and after those dots.

Steps

Database

DMS Tables

With the database started, we create the new tables that will store the DMS information.

CREATE TABLE TDMS_DOC(ID_DMS_DOC INTEGER IDENTITY NOT NULL PRIMARY KEY,UPDATE_DATE TIMESTAMP,UPDATE_BY_ID INTEGER,DOC_NAME VARCHAR(255) NOT NULL,OWNER_ID INTEGER NOT NULL,DOC_DESCRIPTION CLOB(1G),DOC_KEYWORDS VARCHAR(255));
+CREATE TABLE TDMS_DOC_FILE(ID_DMS_DOC_FILE INTEGER IDENTITY NOT NULL PRIMARY KEY,FILE_NAME VARCHAR(255) NOT NULL,ID_DMS_DOC INTEGER NOT NULL,FILE_TYPE VARCHAR(255),ID_DMS_DOC_CATEGORY INTEGER);
+CREATE TABLE TDMS_DOC_FILE_VERSION(ID_DMS_DOC_FILE_VERSION INTEGER IDENTITY NOT NULL PRIMARY KEY,FILE_PATH VARCHAR(500),VERSION INTEGER NOT NULL,FILE_DESCRIPTION CLOB(1G),IS_ACTIVE CHARACTER(1) NOT NULL,FILE_ADDED_DATE TIMESTAMP NOT NULL,FILE_ADDED_USER_ID INTEGER NOT NULL,ID_DMS_DOC_FILE INTEGER NOT NULL,THUMBNAIL BLOB(1G),FILE_SIZE INTEGER);
+CREATE TABLE TDMS_DOC_PROPERTY(ID_DMS_DOC_PROPERTY INTEGER IDENTITY NOT NULL PRIMARY KEY,DOC_PROPERTY_KEY VARCHAR(255) NOT NULL,DOC_PROPERTY_VALUE VARCHAR(255),ID_DMS_DOC INTEGER NOT NULL);
+CREATE TABLE TDMS_RELATED_DOC(ID_DMS_RELATED_PROPERTY INTEGER IDENTITY NOT NULL PRIMARY KEY,ID_DMS_DOC_MASTER INTEGER NOT NULL,ID_DMS_DOC_CHILD INTEGER NOT NULL);
+CREATE TABLE TDMS_DOC_CATEGORY(ID_DMS_DOC_CATEGORY INTEGER IDENTITY NOT NULL PRIMARY KEY,ID_DMS_DOC INTEGER NOT NULL,ID_DMS_DOC_CATEGORY_PARENT INTEGER,CATEGORY_NAME VARCHAR(255) NOT NULL);
+

Once the tables have been created, we add the foreign keys

ALTER TABLE TDMS_DOC_FILE ADD CONSTRAINT TDMS_DOC_FILE_FK FOREIGN KEY(ID_DMS_DOC) REFERENCES TDMS_DOC(ID_DMS_DOC);
+ALTER TABLE TDMS_DOC_FILE_VERSION ADD CONSTRAINT TDMS_DOC_FILE_VERSION_FK FOREIGN KEY(ID_DMS_DOC_FILE) REFERENCES TDMS_DOC_FILE(ID_DMS_DOC_FILE);
+ALTER TABLE TDMS_DOC_PROPERTY ADD CONSTRAINT TDMS_DOC_PROPERTY_FK FOREIGN KEY(ID_DMS_DOC) REFERENCES TDMS_DOC(ID_DMS_DOC)
+ALTER TABLE TDMS_RELATED_DOC ADD CONSTRAINT TDMS_RELATED_DOC_FK FOREIGN KEY(ID_DMS_DOC_MASTER) REFERENCES TDMS_DOC(ID_DMS_DOC);
+ALTER TABLE TDMS_RELATED_DOC ADD CONSTRAINT TDMS_RELATED_DOC_FK_1 FOREIGN KEY(ID_DMS_DOC_CHILD) REFERENCES TDMS_DOC(ID_DMS_DOC);
+ALTER TABLE TDMS_DOC_CATEGORY ADD CONSTRAINT TDMS_DOC_CATEGORY_FK FOREIGN KEY(ID_DMS_DOC) REFERENCES TDMS_DOC(ID_DMS_DOC);
+ALTER TABLE TDMS_DOC_FILE ADD CONSTRAINT TDMS_DOC_FILE_FK_1 FOREIGN KEY(ID_DMS_DOC_CATEGORY) REFERENCES TDMS_DOC_CATEGORY(ID_DMS_DOC_CATEGORY);
+

In this example we want each new candidate added to the application to have its own space to store documents, so we will modify the CANDIDATES table to contain a column that stores the primary key of the document (or workspace) that will be associated with it.

ALTER TABLE CANDIDATE ADD ID_DMS_DOC INTEGER;
+
ALTER TABLE CANDIDATE ADD CONSTRAINT CANDIDATE_FK FOREIGN KEY(ID_DMS_DOC) REFERENCES TDMS_DOC(ID_DMS_DOC);
+

Server

Add DMS dependencies

model/pom.xml

...
+<dependencies>
+...
+<dependency>
+<groupId>com.ontimize.jee.dms</groupId>
+<artifactId>ontimize-jee-dms-server</artifactId>
+</dependency>
+
+  <dependency>
+    <groupId>com.ontimize.jee.dms</groupId>
+    <artifactId>ontimize-jee-dms-common</artifactId>
+  </dependency>
+  ...
+</dependencies>
+...

ws/pom.xml

...
+<dependencies>
+...
+<dependency>
+<groupId>com.ontimize.jee.dms</groupId>
+<artifactId>ontimize-jee-dms-rest</artifactId>
+</dependency>
+...
+</dependencies>
+...

Add DMS DAO and modify Candidate DAO

A specific DAO will be created for each table in the DMS system, and each of them will implement a different interface. In turn, the candidate DAO will be modified to reflect the new column it contains.

DMSCategoryDao.xml

<?xml version="1.0" encoding="UTF-8"?>
+
+<JdbcEntitySetup
+xmlns="http://www.ontimize.com/schema/jdbc"
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+xsi:schemaLocation="http://www.ontimize.com/schema/jdbc http://www.ontimize.com/schema/jdbc/ontimize-jdbc-dao.xsd"
+catalog="" schema="${mainschema}" table="TDMS_DOC_CATEGORY"
+datasource="mainDataSource" sqlhandler="dbSQLStatementHandler">
+<DeleteKeys>
+<Column>ID_DMS_DOC_CATEGORY</Column>
+</DeleteKeys>
+<UpdateKeys>
+<Column>ID_DMS_DOC_CATEGORY</Column>
+</UpdateKeys>
+<GeneratedKey>ID_DMS_DOC_CATEGORY</GeneratedKey>
+</JdbcEntitySetup>

DMSDocumentDao.xml

<?xml version="1.0" encoding="UTF-8"?>
+
+<JdbcEntitySetup
+xmlns="http://www.ontimize.com/schema/jdbc"
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+xsi:schemaLocation="http://www.ontimize.com/schema/jdbc http://www.ontimize.com/schema/jdbc/ontimize-jdbc-dao.xsd"
+catalog="" schema="${mainschema}" table="TDMS_DOC"
+datasource="mainDataSource" sqlhandler="dbSQLStatementHandler">
+<DeleteKeys>
+<Column>ID_DMS_DOC</Column>
+</DeleteKeys>
+<UpdateKeys>
+<Column>ID_DMS_DOC</Column>
+</UpdateKeys>
+<GeneratedKey>ID_DMS_DOC</GeneratedKey>
+</JdbcEntitySetup>

DMSDocumentFileDao.xml

<?xml version="1.0" encoding="UTF-8"?>
+
+<JdbcEntitySetup
+xmlns="http://www.ontimize.com/schema/jdbc"
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+xsi:schemaLocation="http://www.ontimize.com/schema/jdbc http://www.ontimize.com/schema/jdbc/ontimize-jdbc-dao.xsd"
+catalog="" schema="${mainschema}" table="TDMS_DOC_FILE"
+datasource="mainDataSource" sqlhandler="dbSQLStatementHandler">
+<DeleteKeys>
+<Column>ID_DMS_DOC_FILE</Column>
+</DeleteKeys>
+<UpdateKeys>
+<Column>ID_DMS_DOC_FILE</Column>
+</UpdateKeys>
+<GeneratedKey>ID_DMS_DOC_FILE</GeneratedKey>
+<Queries>
+<Query id="default">
+<AmbiguousColumns>
+<AmbiguousColumn name="ID_DMS_DOC_FILE"
+prefix="tddf" />
+<AmbiguousColumn name="ID_DMS_DOC" prefix="tddf" />
+</AmbiguousColumns>
+<ValidColumns>
+
+<!-- TDMS_DOC_FILE -->
+
+<Column>ID_DMS_DOC_FILE</Column>
+<Column>FILE_NAME</Column>
+<Column>ID_DMS_DOC</Column>
+<Column>FILE_TYPE</Column>
+<Column>ID_DMS_DOC_CATEGORY</Column>
+
+<!-- TDMS_DOC -->
+
+<Column>ID_DMS_DOC</Column>
+<Column>UPDATE_DATE</Column>
+<Column>UPDATE_BY_ID</Column>
+<Column>DOC_NAME</Column>
+<Column>OWNER_ID</Column>
+<Column>DOC_DESCRIPTION</Column>
+<Column>DOC_KEYWORDS</Column>
+
+<!-- TDMS_DOC_FILE_VERSION -->
+
+<Column>ID_DMS_DOC_FILE_VERSION</Column>
+<Column>FILE_PATH</Column>
+<Column>VERSION</Column>
+<Column>FILE_DESCRIPTION</Column>
+<Column>IS_ACTIVE</Column>
+<Column>FILE_ADDED_DATE</Column>
+<Column>FILE_ADDED_USER_ID</Column>
+<Column>ID_DMS_DOC_FILE</Column>
+<Column>THUMBNAIL</Column>
+<Column>FILE_SIZE</Column>
+</ValidColumns>
+<Sentence>
+
+<![CDATA[
+          SELECT
+            #COLUMNS#
+          FROM
+            ${mainschema}.TDMS_DOC_FILE AS tddf
+            JOIN ${mainschema}.TDMS_DOC AS tdd ON tddf.ID_DMS_DOC = tdd.ID_DMS_DOC
+            LEFT JOIN ${mainschema}.TDMS_DOC_FILE_VERSION AS tddfv ON tddf.id_dms_doc_file = tddfv.id_dms_doc_file
+          WHERE (tddfv.IS_ACTIVE = 'Y' OR tddfv.id_dms_doc_file_version IS NULL)
+          #WHERE_CONCAT#
+          #ORDER#
+         ]]>
+</Sentence>
+</Query>
+<Query id="allfiles">
+<AmbiguousColumns>
+<AmbiguousColumn name="ID_DMS_DOC_FILE"
+          prefix="tddf" />
+</AmbiguousColumns>
+<ValidColumns>
+<Column>ID_DMS_DOC_FILE</Column>
+<Column>FILE_NAME</Column>
+<Column>ID_DMS_DOC</Column>
+<Column>FILE_TYPE</Column>
+<Column>ID_DMS_DOC_CATEGORY</Column>
+</ValidColumns>
+<Sentence>
+<![CDATA[
+          SELECT
+            #COLUMNS#
+          FROM
+            ${mainschema}.TDMS_DOC_FILE AS tddf
+          #WHERE#
+          #ORDER#
+         ]]>
+</Sentence>
+</Query>
+</Queries>
+</JdbcEntitySetup>

DMSDocumentFileVersionDao.xml

<?xml version="1.0" encoding="UTF-8"?>
+
+<JdbcEntitySetup
+xmlns="http://www.ontimize.com/schema/jdbc"
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+xsi:schemaLocation="http://www.ontimize.com/schema/jdbc http://www.ontimize.com/schema/jdbc/ontimize-jdbc-dao.xsd"
+catalog="" schema="${mainschema}" table="TDMS_DOC_FILE_VERSION"
+datasource="mainDataSource" sqlhandler="dbSQLStatementHandler">
+<DeleteKeys>
+<Column>ID_DMS_DOC_FILE_VERSION</Column>
+</DeleteKeys>
+<UpdateKeys>
+<Column>ID_DMS_DOC_FILE_VERSION</Column>
+</UpdateKeys>
+<GeneratedKey>ID_DMS_DOC_FILE_VERSION</GeneratedKey>
+<Queries>
+<Query id="default">
+<AmbiguousColumns>
+<AmbiguousColumn name="ID_DMS_DOC_FILE"
+prefix="tddfv" />
+</AmbiguousColumns>
+<ValidColumns>
+
+<!-- TDMS_DOC_FILE_VERSION -->
+
+<Column>ID_DMS_DOC_FILE_VERSION</Column>
+<Column>FILE_PATH</Column>
+<Column>VERSION</Column>
+<Column>FILE_DESCRIPTION</Column>
+<Column>IS_ACTIVE</Column>
+<Column>FILE_ADDED_DATE</Column>
+<Column>FILE_ADDED_USER_ID</Column>
+<Column>ID_DMS_DOC_FILE</Column>
+<Column>THUMBNAIL</Column>
+<Column>FILE_SIZE</Column>
+
+<!-- TDMS_DOC_FILE -->
+
+<Column>ID_DMS_DOC_FILE</Column>
+<Column>FILE_NAME</Column>
+<Column>ID_DMS_DOC</Column>
+<Column>FILE_TYPE</Column>
+<Column>ID_DMS_DOC_CATEGORY</Column>
+</ValidColumns>
+<Sentence>
+
+<![CDATA[
+           SELECT
+             #COLUMNS#
+        FROM
+          ${mainschema}.TDMS_DOC_FILE_VERSION AS tddfv
+          LEFT JOIN ${mainschema}.TDMS_DOC_FILE AS tddf ON tddfv.ID_DMS_DOC_FILE = tddf.ID_DMS_DOC_FILE
+        #WHERE#
+        #ORDER#
+         ]]>
+</Sentence>
+</Query>
+</Queries>
+</JdbcEntitySetup>

DMSDocumentPropertyDao.xml

<?xml version="1.0" encoding="UTF-8"?>
+
+<JdbcEntitySetup
+xmlns="http://www.ontimize.com/schema/jdbc"
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+xsi:schemaLocation="http://www.ontimize.com/schema/jdbc http://www.ontimize.com/schema/jdbc/ontimize-jdbc-dao.xsd"
+catalog="" schema="${mainschema}" table="TDMS_DOC_PROPERTY"
+datasource="mainDataSource" sqlhandler="dbSQLStatementHandler">
+<DeleteKeys>
+<Column>ID_DMS_DOC_PROPERTY</Column>
+</DeleteKeys>
+<UpdateKeys>
+<Column>ID_DMS_DOC_PROPERTY</Column>
+</UpdateKeys>
+<GeneratedKey>ID_DMS_DOC_PROPERTY</GeneratedKey>
+</JdbcEntitySetup>

DMSRelatedDocumentDao.xml

<?xml version="1.0" encoding="UTF-8"?>
+
+<JdbcEntitySetup
+xmlns="http://www.ontimize.com/schema/jdbc"
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+xsi:schemaLocation="http://www.ontimize.com/schema/jdbc http://www.ontimize.com/schema/jdbc/ontimize-jdbc-dao.xsd"
+catalog="" schema="${mainschema}" table="TDMS_RELATED_DOC"
+datasource="mainDataSource" sqlhandler="dbSQLStatementHandler">
+<DeleteKeys>
+<Column>ID_DMS_RELATED_PROPERTY</Column>
+</DeleteKeys>
+<UpdateKeys>
+<Column>ID_DMS_RELATED_PROPERTY</Column>
+</UpdateKeys>
+<GeneratedKey>ID_DMS_RELATED_PROPERTY</GeneratedKey>
+</JdbcEntitySetup>

CandidateDao.java

...
+public class CandidateDao extends OntimizeJdbcDaoSupport {
+...
+public static final String ATTR_ID_DMS_DOC = "ID_DMS_DOC";
+}

DMSCategoryDao.java

package com.ontimize.projectwiki.model.core.dao;
+
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Repository;
+
+import com.ontimize.jee.server.dao.common.ConfigurationFile;
+import com.ontimize.jee.server.dao.jdbc.OntimizeJdbcDaoSupport;
+import com.ontimize.jee.server.services.dms.dao.IDMSCategoryDao;
+
+@Repository("DMSCategoryDao")
+@Lazy
+@ConfigurationFile(configurationFile = "dao/DMSCategoryDao.xml", configurationFilePlaceholder = "dao/placeholders.properties")
+public class DMSCategoryDao extends OntimizeJdbcDaoSupport implements IDMSCategoryDao {
+
+public static final String ATTR_ID_DMS_DOC_CATEGORY = "ID_DMS_DOC_CATEGORY";
+public static final String ATTR_ID_DMS_DOC = "ID_DMS_DOC";
+public static final String ATTR_ID_DMS_DOC_CATEGORY_PARENT = "ID_DMS_DOC_CATEGORY_PARENT";
+public static final String ATTR_CATEGORY_NAME = "CATEGORY_NAME";
+
+}

DMSDocumentDao.java

package com.ontimize.projectwiki.model.core.dao;
+
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Repository;
+
+import com.ontimize.jee.server.dao.common.ConfigurationFile;
+import com.ontimize.jee.server.dao.jdbc.OntimizeJdbcDaoSupport;
+import com.ontimize.jee.server.services.dms.dao.IDMSDocumentDao;
+
+@Repository("DMSDocumentDao")
+@Lazy
+@ConfigurationFile(configurationFile = "dao/DMSDocumentDao.xml", configurationFilePlaceholder = "dao/placeholders.properties")
+public class DMSDocumentDao extends OntimizeJdbcDaoSupport implements IDMSDocumentDao {
+
+public static final String ATTR_ID_DMS_DOC = "ID_DMS_DOC";
+public static final String ATTR_UPDATE_DATE = "UPDATE_DATE";
+public static final String ATTR_UPDATE_BY_ID = "UPDATE_BY_ID";
+public static final String ATTR_DOC_NAME = "DOC_NAME";
+public static final String ATTR_OWNER_ID = "OWNER_ID";
+public static final String ATTR_DOC_DESCRIPTION = "DOC_DESCRIPTION";
+public static final String ATTR_DOC_KEYWORDS = "DOC_KEYWORDS";
+
+}

DMSDocumentFileDao.java

package com.ontimize.projectwiki.model.core.dao;
+
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Repository;
+
+import com.ontimize.jee.server.dao.common.ConfigurationFile;
+import com.ontimize.jee.server.dao.jdbc.OntimizeJdbcDaoSupport;
+import com.ontimize.jee.server.services.dms.dao.IDMSDocumentFileDao;
+
+@Repository("DMSDocumentFileDao")
+@Lazy
+@ConfigurationFile(configurationFile = "dao/DMSDocumentFileDao.xml", configurationFilePlaceholder = "dao/placeholders.properties")
+public class DMSDocumentFileDao extends OntimizeJdbcDaoSupport implements IDMSDocumentFileDao{
+
+public static final String ATTR_ID_DMS_DOC_FILE = "ID_DMS_DOC_FILE";  
+public static final String ATTR_FILE_NAME = "FILE_NAME";  
+public static final String ATTR_ID_DMS_DOC = "ID_DMS_DOC";  
+public static final String ATTR_FILE_TYPE = "FILE_TYPE";  
+public static final String ATTR_ID_DMS_DOC_CATEGORY = "ID_DMS_DOC_CATEGORY";
+
+}

DMSDocumentFileVersionDao.java

package com.ontimize.projectwiki.model.core.dao;
+
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Repository;
+
+import com.ontimize.jee.server.dao.common.ConfigurationFile;
+import com.ontimize.jee.server.dao.jdbc.OntimizeJdbcDaoSupport;
+import com.ontimize.jee.server.services.dms.dao.IDMSDocumentFileVersionDao;
+
+@Repository("DMSDocumentFileVersionDao")
+@Lazy
+@ConfigurationFile(configurationFile = "dao/DMSDocumentFileVersionDao.xml", configurationFilePlaceholder = "dao/placeholders.properties")
+public class DMSDocumentFileVersionDao extends OntimizeJdbcDaoSupport implements IDMSDocumentFileVersionDao {
+
+public static final String ATT_ID_DMS_DOC_FILE_VERSION = "ID_DMS_DOC_FILE_VERSION";
+public static final String ATT_FILE_PATH = "FILE_PATH";
+public static final String ATT_VERSION = "VERSION";
+public static final String ATT_FILE_DESCRIPTION = "FILE_DESCRIPTION";
+public static final String ATT_IS_ACTIVE = "IS_ACTIVE";
+public static final String ATT_FILE_ADDED_DATE = "FILE_ADDED_DATE";
+public static final String ATT_FILE_ADDED_USER_ID = "FILE_ADDED_USER_ID";
+public static final String ATT_ID_DMS_DOC_FILE = "ID_DMS_DOC_FILE";
+public static final String ATT_THUMBNAIL = "THUMBNAIL";
+public static final String ATT_FILE_SIZE = "FILE_SIZE";
+
+}

DMSDocumentPropertyDao.java

package com.ontimize.projectwiki.model.core.dao;
+
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Repository;
+
+import com.ontimize.jee.server.dao.common.ConfigurationFile;
+import com.ontimize.jee.server.dao.jdbc.OntimizeJdbcDaoSupport;
+import com.ontimize.jee.server.services.dms.dao.IDMSDocumentPropertyDao;
+
+@Repository("DMSDocumentPropertyDao")
+@Lazy
+@ConfigurationFile(configurationFile = "dao/DMSDocumentPropertyDao.xml", configurationFilePlaceholder = "dao/placeholders.properties")
+public class DMSDocumentPropertyDao extends OntimizeJdbcDaoSupport implements IDMSDocumentPropertyDao {
+
+public static final String ATTR_ID_DMS_DOC_PROPERTY = "ID_DMS_DOC_PROPERTY";
+public static final String ATTR_DOC_PROPERTY_KEY = "DOC_PROPERTY_KEY";
+public static final String ATTR_DOC_PROPERTY_VALUE = "DOC_PROPERTY_VALUE";
+public static final String ATTR_ID_DMS_DOC = "ID_DMS_DOC";
+
+}

DMSRelatedDocumentDao.java

package com.ontimize.projectwiki.model.core.dao;
+
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Repository;
+
+import com.ontimize.jee.server.dao.common.ConfigurationFile;
+import com.ontimize.jee.server.dao.jdbc.OntimizeJdbcDaoSupport;
+import com.ontimize.jee.server.services.dms.dao.IDMSRelatedDocumentDao;
+
+@Repository("DMSRelatedDocumentDao")
+@Lazy
+@ConfigurationFile(configurationFile = "dao/DMSRelatedDocumentDao.xml", configurationFilePlaceholder = "dao/placeholders.properties")
+public class DMSRelatedDocumentDao extends OntimizeJdbcDaoSupport implements IDMSRelatedDocumentDao {
+
+public static final String ATTR_ID_DMS_RELATED_PROPERTY = "ID_DMS_RELATED_PROPERTY";
+public static final String ATTR_ID_DMS_DOC_MASTER = "ID_DMS_DOC_MASTER";
+public static final String ATTR_ID_DMS_DOC_CHILD = "ID_DMS_DOC_CHILD";
+
+}

Modify CandidateService insert method

The method of inserting new candidates will be modified so that, when inserting them, they will have a workspace to maintain the files to be uploaded associated with the inserted candidate.

CandidateService.java

...
+import com.ontimize.jee.common.exceptions.DmsException;
+import com.ontimize.jee.common.naming.DMSNaming;
+import com.ontimize.jee.common.services.dms.DocumentIdentifier;
+import com.ontimize.jee.server.services.dms.DMSCreationHelper;
+...
+
+@Service("CandidateService")
+@Lazy
+public class CandidateService implements ICandidateService {
+
+...
+
+@Autowired
+private DMSCreationHelper dmsHelper;
+
+...
+
+@Override
+public EntityResult candidateInsert(Map<String, Object> attrMap) throws OntimizeJEERuntimeException {
+
+    try {
+    DocumentIdentifier docId = this.dmsHelper.createDocument((String) attrMap.get(CandidateDao.ATTR_DNI));
+    attrMap.put(DMSNaming.DOCUMENT_ID_DMS_DOCUMENT, docId.getDocumentId());
+    } catch (DmsException e) {
+      throw new OntimizeJEERuntimeException("ERROR_CREATING_DMS_DOC", e);
+    }
+
+    return this.daoHelper.insert(this.candidateDao, attrMap);
+
+}
+
+...
+}

Add File Manager Rest Controller

DMSNameConverter.java

package com.ontimize.projectwiki.ws.core.rest;
+
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.stereotype.Service;
+
+import com.ontimize.jee.common.naming.DMSNaming;
+import com.ontimize.jee.server.dms.model.OFile;
+import com.ontimize.jee.server.dms.rest.IDMSNameConverter;
+
+@Service("DMSNameConverter")
+public class DMSNameConverter implements IDMSNameConverter {
+
+@Override
+public Object getFileIdColumn() {
+return DMSNaming.DOCUMENT_FILE_ID_DMS_DOCUMENT_FILE;
+}
+
+@Override
+public Object getFileNameColumn() {
+return DMSNaming.DOCUMENT_FILE_NAME;
+}
+
+@Override
+public Object getFileSizeColumn() {
+return DMSNaming.DOCUMENT_FILE_VERSION_FILE_SIZE;
+}
+
+@Override
+public Object getCategoryIdColumn() {
+return DMSNaming.CATEGORY_ID_CATEGORY;
+}
+
+@Override
+public Object getCategoryNameColumn() {
+return DMSNaming.CATEGORY_CATEGORY_NAME;
+}
+
+@Override
+public OFile createOFile(Map<?, ?> params) {
+OFile file = new OFile();
+file.setId((Integer) params.get(DMSNaming.DOCUMENT_FILE_ID_DMS_DOCUMENT_FILE));
+file.setName((String) params.get(DMSNaming.DOCUMENT_FILE_NAME));
+file.setType((String) params.get(DMSNaming.DOCUMENT_FILE_TYPE));
+file.setSize((Integer) params.get(DMSNaming.DOCUMENT_FILE_VERSION_FILE_SIZE));
+file.setCreationDate(((Date) params.get(DMSNaming.DOCUMENT_FILE_VERSION_FILE_ADDED_DATE)).getTime());
+file.setDirectory(false);
+return file;
+}
+
+@Override
+public List<?> getFileColumns(List<?> columns) {
+return Arrays.asList(DMSNaming.DOCUMENT_FILE_ID_DMS_DOCUMENT_FILE, DMSNaming.DOCUMENT_FILE_NAME,
+DMSNaming.DOCUMENT_FILE_TYPE, DMSNaming.DOCUMENT_FILE_VERSION_FILE_SIZE,
+DMSNaming.DOCUMENT_FILE_VERSION_FILE_ADDED_DATE);
+}
+
+@Override
+public List<?> getCategoryColumns(List<?> columns) {
+return Arrays.asList(DMSNaming.CATEGORY_ID_CATEGORY, DMSNaming.CATEGORY_CATEGORY_NAME,
+DMSNaming.CATEGORY_ID_CATEGORY_PARENT);
+}
+
+}

FileManagerRestController.java

package com.ontimize.projectwiki.ws.core.rest;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.ontimize.jee.common.services.dms.IDMSService;
+import com.ontimize.jee.server.dms.rest.DMSRestController;
+import com.ontimize.jee.server.dms.rest.IDMSNameConverter;
+
+@RestController
+@RequestMapping("/filemanager")
+@ComponentScan(basePackageClasses = { com.ontimize.jee.common.services.dms.IDMSService.class,
+com.ontimize.jee.server.dms.rest.IDMSNameConverter.class })
+public class FileManagerRestController extends DMSRestController<IDMSService, IDMSNameConverter> {
+
+@Autowired
+private IDMSService dmsService;
+
+@Override
+public IDMSService getService() {
+return this.dmsService;
+}
+
+}

Modify application.yml

The application.yml file will be modified to indicate the path where the dms files will be stored and the engine it will use. In this link you have information about the configuration of the DMS system in the application.yml file.

The path specified in the basePath variable must exist before the server is started.

application.yml

ontimize:
+dms:
+engine: odms
+basePath: file:/C:/applications/projectwiki/dms

Add permissions

It is necessary to add the permissions required for the role associated with the user to be able to execute REST requests, which are secured. For the example, we will add all the methods and give access to the demo user role.

INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.server.services.dms.DMSServiceImpl/fileGetContentOfVersion');
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.server.services.dms.DMSServiceImpl/documentGetProperty');
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.server.services.dms.DMSServiceImpl/fileRecoverPreviousVersion');
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.server.services.dms.DMSServiceImpl/documentDeleteProperties');
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.server.services.dms.DMSServiceImpl/documentGetProperties');
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.server.services.dms.DMSServiceImpl/documentGetAllFiles');
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.server.services.dms.DMSServiceImpl/setRelatedDocuments');
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.server.services.dms.DMSServiceImpl/documentAddProperties');
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.server.services.dms.DMSServiceImpl/getRelatedDocument');
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.server.services.dms.DMSServiceImpl/categoryGetForDocument');
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.server.services.dms.DMSServiceImpl/moveFilesToCategory');
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.server.services.dms.DMSServiceImpl/fileVersionQuery');
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.server.services.dms.DMSServiceImpl/documentQuery');
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.server.services.dms.DMSServiceImpl/documentInsert');
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.server.services.dms.DMSServiceImpl/documentUpdate');
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.server.services.dms.DMSServiceImpl/documentGetFiles');
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.server.services.dms.DMSServiceImpl/categoryInsert');
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.server.services.dms.DMSServiceImpl/fileInsert');
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.server.services.dms.DMSServiceImpl/categoryUpdate');
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.server.services.dms.DMSServiceImpl/categoryDelete');
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.server.services.dms.DMSServiceImpl/fileDelete');
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.server.services.dms.DMSServiceImpl/fileGetVersions');
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.server.services.dms.DMSServiceImpl/fileGetContent');
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.server.services.dms.DMSServiceImpl/fileUpdate');
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.server.services.dms.DMSServiceImpl/documentDelete');
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.server.services.dms.DMSServiceImpl/fileQuery');

Add all permissions to the user role demo.

INSERT
+	INTO
+	PUBLIC.PUBLIC.TROLE_SERVER_PERMISSION tsp (ID_SERVER_PERMISSION, ID_ROLENAME)
+SELECT
+	ID_SERVER_PERMISSION,
+	(
+	SELECT
+		ID_ROLENAME
+	FROM
+		TUSER_ROLE
+	WHERE
+		USER_ = 'demo') AS ID_ROLENAME
+FROM
+	TSERVER_PERMISSION tp
+LEFT JOIN TROLE_SERVER_PERMISSION tsp ON
+	tp.ID_SERVER_PERMISSION = tsp.ID_SERVER_PERMISSION
+WHERE
+	tsp.ID_SERVER_PERMISSION IS NULL
diff --git a/v1/basics/i18n/index.html b/v1/basics/i18n/index.html new file mode 100644 index 0000000..54812d4 --- /dev/null +++ b/v1/basics/i18n/index.html @@ -0,0 +1,281 @@ + I18N System | Ontimize Boot Skip to main content Link Menu Expand (external link) Document Search Copy Copied

Introduction

Ontimize Boot’s remote internationalization service (i18n) allows you to manage the translations of the different languages of the application without having to modify the programs translation files, by storing the translations in the database. The interfaces implemented by the service is com.ontimize.jee.common.services.i18n.II18nService.

Prerequisites

There are 2 options to follow this tutorial, clone the repository with the initial state and follow the tutorial step by step, or download the final example and see which files are new and which have been updated.

Initial project

/$ git clone https://github.com/ontimize/ontimize-examples
+/ontimize-examples$ cd ontimize-examples
+/ontimize-examples$ git checkout boot-i18n-1.x.x-initial
+

Final example

/$ git clone https://github.com/ontimize/ontimize-examples
+/ontimize-examples$ cd ontimize-examples
+/ontimize-examples$ git checkout boot-i18n-1.x.x
+

Configuring internationalization service in Ontimize Boot

In this complete tutorial, we are going to create a backend for an application from scratch, including the database with different tables, configuring the server, creating the necessary DAO files and implementing the service.

DB configuration

If the configuration table does not exist in the DB, the database tables necessary for the operation of the service are created, one in which the names of the translation bundles shall be stored, and another in which the translations and the bundle to which they belong shall be stored:

SQL (HSQL) Statement

CREATE TABLE TI18N(ID_I18N INTEGER GENERATED BY DEFAULT AS IDENTITY NOT NULL PRIMARY KEY,CLASS_NAME VARCHAR(150),I18N_DESCRIPTION VARCHAR(250));
+CREATE TABLE TI18N_VALUE(ID_I18N_VALUE INTEGER GENERATED BY DEFAULT AS IDENTITY NOT NULL PRIMARY KEY,ID_I18N INTEGER NOT NULL,"KEY" VARCHAR(250),ES_ES LONGVARCHAR,EN_US LONGVARCHAR,ES_ES_GL LONGVARCHAR);

In the first table (the one named TI18N) we will add a bundle to link all resources of the TI18N_VALUE table.

SQL (HSQL) Statement

INSERT INTO TI18N (ID_I18N, CLASS_NAME, I18N_DESCRIPTION) VALUES(0, 'i18n.bundle', 'Resource bundle in database');

In the case of the second table (the one named TI18N_VALUE) it will contain a column with the name of each Locale accepted by the application.

SQL (HSQL) Statement

INSERT INTO TI18N_VALUE (ID_I18N, KEY, ES_ES, EN_US, GL_ES) VALUES(0,'ID','Id. Candidato','Candidate id','Id. Candidato');
+INSERT INTO TI18N_VALUE (ID_I18N, KEY, ES_ES, EN_US, GL_ES) VALUES(0,'PHOTO','Foto','Photo','Foto');
+INSERT INTO TI18N_VALUE (ID_I18N, KEY, ES_ES, EN_US, GL_ES) VALUES(0,'NAME','Nombre','Name','Nome');
+INSERT INTO TI18N_VALUE (ID_I18N, KEY, ES_ES, EN_US, GL_ES) VALUES(0,'SURNAME','Apellido','Surname','Apelido');
+INSERT INTO TI18N_VALUE (ID_I18N, KEY, ES_ES, EN_US, GL_ES) VALUES(0,'BIRTHDAY','Fecha de Nacimiento','Birthday','Data de nacemento');
+INSERT INTO TI18N_VALUE (ID_I18N, KEY, ES_ES, EN_US, GL_ES) VALUES(0,'DNI','DNI Candidato','Candidate DNI','DNI Candidato');
+INSERT INTO TI18N_VALUE (ID_I18N, KEY, ES_ES, EN_US, GL_ES) VALUES(0,'PHONE','Telefono','Phone','Telefono');
+INSERT INTO TI18N_VALUE (ID_I18N, KEY, ES_ES, EN_US, GL_ES) VALUES(0,'EMAIL','Correo electronico','E-mail','Correo electronico');

Add Permissions

The com.ontimize.jee.server.services.i18n.I18nServiceImpl service has several methods that we will have to add to the permissions to be able to execute the methods.

SQL (HSQL) Statement

INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.server.services.i18n.I18nServiceImpl/getAllResourceBundles');
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.server.services.i18n.I18nServiceImpl/getBundles');
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.server.services.i18n.I18nServiceImpl/getBundle');
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.server.services.i18n.I18nServiceImpl/getAvailableBundles');
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.server.services.i18n.I18nServiceImpl/getAvailableLocales');
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.server.services.i18n.I18nServiceImpl/updateBundleValues');
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.server.services.i18n.I18nServiceImpl/deleteBundleValues');

Add all permissions to the user role demo.

SQL (HSQL) Statement

INSERT
+	INTO
+	TROLE_SERVER_PERMISSION tsp (ID_SERVER_PERMISSION, ID_ROLENAME)
+SELECT
+	ID_SERVER_PERMISSION,
+	(
+	SELECT
+		ID_ROLENAME
+	FROM
+		TUSER_ROLE
+	WHERE
+		USER_ = 'demo') AS ID_ROLENAME
+FROM
+	TSERVER_PERMISSION tp
+LEFT JOIN TROLE_SERVER_PERMISSION tsp ON
+	tp.ID_SERVER_PERMISSION = tsp.ID_SERVER_PERMISSION
+WHERE
+	tsp.ID_SERVER_PERMISSION IS NULL

Server configuration

To configure this service, a new configuration fragment shall be added to the application.yml file.

ontimize:
+  i18n:
+    refBundleRepository: OCDatabaseBundleDao
+    bundleKeyColumn: ID_I18N
+    bundleClassNameColumn: CLASS_NAME
+    bundleDescriptionColumn: I18N_DESCRIPTION
+    refBundleValueRepository: OCDatabaseBundleValueDao
+    bundleValueTextKeyColumn: KEY
+    bundleValueKeyColumn: ID_I18N_VALUE
+    engine: default

This configuration indicates the keys and values to be stored in the database. The database table is the one corresponding to the bean described in the refBundleRepository: OCDatabaseBundleDao attribute.

Creation of DAO files

It is necessary to create the DAOs that reflect the new DB tables we have created.

First we will create the *.xml files.

OCDatabaseBundleDao.xml

<?xml version="1.0" encoding="UTF-8"?>
+
+<JdbcEntitySetup
+	xmlns="http://www.ontimize.com/schema/jdbc"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://www.ontimize.com/schema/jdbc http://www.ontimize.com/schema/jdbc/ontimize-jdbc-dao.xsd"
+	table="TI18N" datasource="mainDataSource"
+	catalog="" schema="${mainschema}"
+	sqlhandler="dbSQLStatementHandler">
+<DeleteKeys>
+<Column>ID_I18N</Column>
+</DeleteKeys>
+<UpdateKeys>
+<Column>ID_I18N</Column>
+</UpdateKeys>
+<GeneratedKey>ID_I18N</GeneratedKey>
+</JdbcEntitySetup>

OCDatabaseBundleValueDao.xml

<?xml version="1.0" encoding="UTF-8"?>
+
+<JdbcEntitySetup
+	xmlns="http://www.ontimize.com/schema/jdbc"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://www.ontimize.com/schema/jdbc http://www.ontimize.com/schema/jdbc/ontimize-jdbc-dao.xsd"
+	table="TI18N_VALUE" datasource="mainDataSource"
+	catalog="" schema="${mainschema}"
+	sqlhandler="dbSQLStatementHandler">
+<DeleteKeys>
+<Column>ID_I18N</Column>
+<Column>KEY</Column>
+</DeleteKeys>
+<UpdateKeys>
+<Column>ID_I18N</Column>
+<Column>KEY</Column>
+</UpdateKeys>
+<GeneratedKey>ID_I18N_VALUE</GeneratedKey>
+</JdbcEntitySetup>

In the *.java files we indicate that it is a repository whose name will be OCDatabaseBundleDao and OCDatabaseBundleValueDao respectively, using the @Repository annotation. With the @Lazy annotation, we indicate that the loading is delayed until it is completely necessary, and the @ConfigurationFile annotation allows us to configure this DAO using the XML file and an additional file where some features common to several DAOs can be stored, such as the schema they belong to.

OCDatabaseBundleDao.java

package com.ontimize.projectwiki.model.core.dao;
+
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Repository;
+
+import com.ontimize.jee.server.dao.common.ConfigurationFile;
+import com.ontimize.jee.server.dao.jdbc.OntimizeJdbcDaoSupport;
+
+@Repository(value = "OCDatabaseBundleDao")
+@Lazy
+@ConfigurationFile(configurationFile = "dao/OCDatabaseBundleDao.xml", configurationFilePlaceholder = "dao/placeholders.properties")
+public class OCDatabaseBundleDao extends OntimizeJdbcDaoSupport {
+  public OCDatabaseBundleDao() {
+    super();
+  }
+}

OCDatabaseBundleValueDao.java

package com.ontimize.projectwiki.model.core.dao;
+
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Repository;
+
+import com.ontimize.jee.server.dao.common.ConfigurationFile;
+import com.ontimize.jee.server.dao.jdbc.OntimizeJdbcDaoSupport;
+
+@Repository(value = "OCDatabaseBundleValueDao")
+@Lazy
+@ConfigurationFile(configurationFile = "dao/OCDatabaseBundleValueDao.xml", configurationFilePlaceholder = "dao/placeholders.properties")
+public class OCDatabaseBundleValueDao extends OntimizeJdbcDaoSupport {
+
+  public OCDatabaseBundleValueDao() {
+    super();
+    }
+}

Add I18n Rest Controller

I18nRestController.java

As two implementations of the interface are needed, we use the @Qualifier annotation to specify which is the correct bean so that it can be launched correctly.

With the tag @RequestMapping we indicate the route through which the rest service will receive the requests. With the tag @RequestBody we receive the data that were sent in the rest request. In this class we create a method that retrieves the translations of a bundle that we have specified in the language that we have indicated.

package com.ontimize.projectwiki.ws.core.rest;
+
+import java.util.Enumeration;
+import java.util.Hashtable;
+import java.util.Locale;
+import java.util.Map;
+import java.util.ResourceBundle;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.ontimize.db.EntityResult;
+import com.ontimize.jee.common.services.i18n.II18nService;
+import com.ontimize.jee.server.rest.InsertParameter;
+
+@RestController
+@RequestMapping("/i18n")
+@ComponentScan(basePackageClasses = { com.ontimize.jee.common.services.i18n.II18nService.class })
+public class I18nRestController {
+
+    @Autowired
+    @Qualifier("I18nService")
+    private II18nService iI18nService;
+
+    @RequestMapping(value = "/bundle", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
+    public ResponseEntity<EntityResult> getBundle(@RequestBody InsertParameter parameter) {
+    	Map<Object, Object> data = parameter.getData();
+    	ResourceBundle resource = iI18nService.getBundle(String.valueOf(data.get("bundle")),
+    			new Locale(String.valueOf(data.get("lang")), String.valueOf(data.get("country"))));
+    	return new ResponseEntity<EntityResult>(bundleToEntityResult(resource), HttpStatus.OK);
+    }
+
+    private EntityResult bundleToEntityResult(ResourceBundle resource) {
+    	Hashtable<String, String> table = new Hashtable<>();
+    	Enumeration<String> keys = resource.getKeys();
+    	EntityResult eR = new EntityResult();
+    	while (keys.hasMoreElements()) {
+    		String key = keys.nextElement();
+    		table.put("key", key);
+    		table.put("value", resource.getString(key));
+    		eR.addRecord(table);
+    		table = new Hashtable<>();
+    	}
+    	return eR;
+    }
+
+}

Testing the i18n services

To test the i18n service we will use REST requests. For this, the following query will be executed: localhost:33333/i18n/bundle

Element Meaning
localhost:33333 Indicates the host
/i18n Indicates the service to be queried
/bundle Indicates the request mapping class

The request types can only be POST and the request body has to have the following structure:

Element Meaning
bundle Indicates the class name of the bundle specified in the database
lang Indicates the language of the bundle. It needs to be lowercase.
country Indicates the country of the language. It needs to be uppercase.
Request type Query URL Service method Body request
POST query localhost:33333/i18n/bundle getBundle Example below

Body request:

{
+  "data": {
+    "bundle": "i18n.bundle",
+    "lang": "en",
+    "country": "US"
+  }
+}

The authorization used for these requests is authorization of the type BASIC. In this case, the access must be done with a user and password example:

    User: demo
+Password: demouser
+

Uses of I18n Rest Controller

The i18n interface has a few methods for managing bundles or translations. Next in this example, we will test the bundle values CRUD(Create, Read, Update, Delete) methods.

To simplify the code being written, three dots (…) may appear in some parts of the code. This indicates that there may be previous code before and after those dots.

Query bundle values

To query the bundle values we create a method that receieves the bundle class, the language to query and the country of this language.

The code to query the values of a bundle is in the previous section.

Update bundle values

To update the bundle values we create a method that receieves the translations to modify of a bundle that we have specified.

Code

I18nRestController.java

package com.ontimize.projectwiki.ws.core.rest;
+
+import java.util.ArrayList;
+import java.util.Hashtable;
+. . .
+
+import com.ontimize.jee.common.gui.i18n.DatabaseBundleValues;
+import com.ontimize.jee.server.rest.UpdateParameter;
+
+. . .
+
+@RestController
+@RequestMapping("/i18n")
+@ComponentScan(basePackageClasses = { com.ontimize.jee.common.services.i18n.II18nService.class })
+public class I18nRestController {
+
+    @Autowired
+    @Qualifier("I18nService")
+    private II18nService iI18nService;
+
+. . .
+
+    @RequestMapping(value = "/bundle/update", method = RequestMethod.PUT, produces = MediaType.APPLICATION_JSON_VALUE)
+    public void updateBundleValues(@RequestBody UpdateParameter parameter) {
+
+    	DatabaseBundleValues values = new DatabaseBundleValues(iI18nService.getAvailableLocales());
+    	String bundleClass = String.valueOf(parameter.getData().get("bundleClass"));
+    	String key = String.valueOf(parameter.getFilter().get("key"));
+    	ArrayList e = (ArrayList) parameter.getData().get("bundleValues");
+    	Hashtable<String, Object> translationValues = new Hashtable<>();
+    	for (int i = 0; i < e.size(); i++) {
+    		Map<String,Object> map = (Map<String, Object>) e.get(i);
+    		translationValues.put(String.valueOf(map.get("language")), map.get("value"));
+    	}
+    	values.addBundleValue(key, bundleClass, translationValues);
+    	iI18nService.updateBundleValues(values);
+    }
+
+}

REST request

The request to execute is the following: localhost:33333/i18n/bundle/update

Element Meaning
localhost:33333 Indicates the host
/i18n Indicates the service to be queried
/bundle/update Indicates the request mapping class

The request types can only be PUT and the request body has to have the following structure:

Element Meaning
key Indicates the key of the value to be translated.
bundleClass Indicates the class name of the bundle specified in the database.
bundleValues Indicates the values of the translation to be modified.

Body request:

{
+  "filter":{
+    "key": "EMAIL"
+  },  
+  "data": {
+    "bundleClass": "i18n.bundle",
+    "bundleValues": [
+      {
+      "language":"es_ES",
+      "value":"ejemplo@ejemplo.com"
+      },
+      {
+      "language":"en_US",
+      "value":"example@example.com"
+      },
+      {
+      "language":"gl_ES",
+      "value":"exemplo@exemplo.com"
+      }
+    ]
+  }
+}

Insert bundle values

The method to update the bundle values explained in the previous point also allows creating a new value in the case of the specified value does not exist in the database.

DatabaseI18nEngine.java

. . .
+Object key = this.getBundleValueKey(filter);
+if (key != null) {
+// update
+filter.put(this.bundleValuesKeyColumn, key);
+this.daoBundleValues.update(hValues, filter);
+} else {
+// insert
+hValues.putAll(filter);
+this.daoBundleValues.insert(hValues);
+}
+. . .

Delete bundle values

To delete the bundle values we create a method that receives the bundle class and the key of the bundle values.

I18nRestController.java

package com.ontimize.projectwiki.ws.core.rest;
+
+import java.util.ArrayList;
+. . .
+
+import com.ontimize.jee.common.gui.i18n.DatabaseBundleValues;
+import com.ontimize.jee.server.rest.DeleteParameter;
+
+. . .
+
+@RestController
+@RequestMapping("/i18n")
+@ComponentScan(basePackageClasses = { com.ontimize.jee.common.services.i18n.II18nService.class })
+public class I18nRestController {
+
+    @Autowired
+    @Qualifier("I18nService")
+    private II18nService iI18nService;
+
+. . .
+
+    @RequestMapping(value = "/bundle/delete", method = RequestMethod.DELETE, produces = MediaType.APPLICATION_JSON_VALUE)
+    public void deleteBundleValues(@RequestBody DeleteParameter parameter) {
+    	DatabaseBundleValues values = new DatabaseBundleValues(iI18nService.getAvailableLocales());
+
+    	String bundleClass = String.valueOf(parameter.getFilter().get("bundleClass"));
+    	String key = String.valueOf(parameter.getFilter().get("key"));
+
+    	values.addBundleValue(key, bundleClass, null);
+    	iI18nService.deleteBundleValues(values);
+    }
+
+}

The request to execute is the following: localhost:33333/i18n/bundle/delete

Element Meaning
localhost:33333 Indicates the host
/i18n Indicates the service to be queried
/bundle/delete Indicates the request mapping class

The request types can only be DELETE and the request body has to have the following structure:

Element Meaning
bundleClass Indicates the class name of the bundle specified in the database.
key Indicates the key of the value to be translated.

Body Request

{
+  "filter":{
+    "bundleClass": "i18n.bundle",
+    "key": "EMAIL"
+  }
+}
diff --git a/v1/basics/index.html b/v1/basics/index.html new file mode 100644 index 0000000..61dd0ef --- /dev/null +++ b/v1/basics/index.html @@ -0,0 +1 @@ + Ontimize Basics | Ontimize Boot Skip to main content Link Menu Expand (external link) Document Search Copy Copied

This section pretends to show the basic elements for the development of an application using Ontimize Boot

diff --git a/v1/basics/ldap/index.html b/v1/basics/ldap/index.html new file mode 100644 index 0000000..f4bdbd4 --- /dev/null +++ b/v1/basics/ldap/index.html @@ -0,0 +1,269 @@ + LDAP Security | Ontimize Boot Skip to main content Link Menu Expand (external link) Document Search Copy Copied

Introduction

The Lightweight Directory Access Protocol (LDAP) is an open protocol for accessing a company’s information services. Typically, this protocol is used to provide all company users with an easy way to use all services that require access credentials with a single username and password.

Prerequisites

You can follow this tutorial using your own application, although for this example we will use an application created using the archetype that can be found on this page and with a REST service.

There are 2 options to follow this tutorial, clone the repository with the initial state and follow the tutorial step by step, or download the final example and see which files are new and which have been updated.

Initial project

/$ git clone https://github.com/ontimize/ontimize-examples
+/ontimize-examples$ cd ontimize-examples
+/ontimize-examples$ git checkout boot-ldap-login-1.x.x-initial
+

Final example

/$ git clone https://github.com/ontimize/ontimize-examples
+/ontimize-examples$ cd ontimize-examples
+/ontimize-examples$ git checkout boot-ldap-login-1.x.x
+

Steps

Database

Add a new user

With the database started, we create a new user with the same username that we have registered in the domain. When we try to login we need to use the password of the domain, not the password that inserts into the database. Then, we need to bind this new user with an existing role.

INSERT INTO TUSER (USER_, PASSWORD, NAME, SURNAME, EMAIL, NIF, USERBLOCKED, LASTPASSWORDUPDATE, FIRSTLOGIN) VALUES('domain.username', 'somepassword', 'Name', 'Surname', 'Email', 'Nif', NULL, NULL, NULL)
INSERT INTO TUSER_ROLE (ID_ROLENAME,USER_) VALUES (0,'domain.username');

Autoconfigurators

Add LDAP autoconfigurators

LdapError.java

package com.ontimize.projectwiki.security;
+
+public interface LdapError {
+
+    public static final String NO_LDAP_CONNECTION = "NO_CONNECT_TO_LDAP";
+    public static final String ERROR_SEARCHING_IN_LDAP = "ERROR_SEARCHING_IN_LDAP";
+    public static final String ERROR_LOGIN_LDAP = "LOGINEXCEPTION_WITH_LDAP";
+    public static final String ERROR_IO_LDAP = "IOEXCEPTION_WITH_LDAP";
+    public static final String EMPTY_LDAP_HOST = "HOST_CANNOT_BE_EMPTY";
+    public static final String EMPTY_LDAP_USER = "USER_CANNOT_BE_EMPTY";
+    public static final String EMPTY_LDAP_PASSWORD = "PASSWORD_CANNOT_BE_EMPTY";;
+    public static final String LDAP_AUTH_USER_PASS_NOT_VALID = "LDAP_CREDENTIALS_NOT_VALID";
+
+}

LdapAuthenticationMechanism.java

package com.ontimize.projectwiki.security;
+
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.util.Hashtable;
+import java.util.StringTokenizer;
+
+import javax.naming.Context;
+import javax.naming.NamingException;
+import javax.naming.directory.DirContext;
+import javax.naming.directory.InitialDirContext;
+import javax.security.auth.login.LoginException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import com.ontimize.jee.server.security.authentication.ldap.LdapError;
+import org.aspectj.weaver.Utils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.security.authentication.AuthenticationManager;
+import org.springframework.security.authentication.BadCredentialsException;
+import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
+import org.springframework.security.core.userdetails.UserDetailsService;
+import org.springframework.security.crypto.codec.Base64;
+import org.springframework.stereotype.Component;
+
+import com.ontimize.jee.server.security.authentication.AuthenticationResult;
+import com.ontimize.jee.server.security.authentication.IAuthenticationMechanism;
+import com.ontimize.jee.server.security.authentication.OntimizeAuthenticationProvider;
+
+@Component
+
+public class LdapAuthenticationMechanism implements IAuthenticationMechanism {
+
+    private static final Logger LOGGER = LoggerFactory.getLogger(LdapAuthenticationMechanism.class);
+    private String credentialsCharset = "UTF-8";
+    @Value("${ldap.host}")
+    private String ldapHost;
+    @Value("${ldap.port}")
+    private int ldapPort;
+    @Value("${ldap.loginType}")
+    private String loginType;
+    @Value("${ldap.bind.dn}")
+    private String ldapBindDn;
+    @Value("${ldap.domain}")
+    private String ldapDomain;
+    @Value("${ldap.base.dn}")
+    private String ldapBaseDn;
+
+    @Override
+    public AuthenticationResult authenticate(final HttpServletRequest request, final HttpServletResponse response, 
+                                             final AuthenticationManager authenticationManager, final UserDetailsService userDetailsService) {
+
+        try {
+            final String header = request.getHeader("Authorization");
+            if ((header == null) || !header.startsWith("Basic ")) {
+                return null;
+            }
+
+            final String[] tokens = this.extractAndDecodeHeader(header, request);
+            assert tokens.length == 2;
+            final String username = tokens[0];
+            final String password = tokens[1];
+
+            LdapAuthenticationMechanism.LOGGER.trace("Validating access for user : '{}'", username);
+
+            DirContext dirContext = null;
+
+            if (loginType.equals("DN")) {
+                String userDn = "uid=" + username + "," + ldapBindDn;
+                dirContext = connect(userDn, password, ldapHost, ldapPort, null, false);
+            } else if (loginType.equals("simple")) {
+                dirContext = connect(username, password, ldapHost, ldapPort, ldapDomain, false);
+            }
+
+            if (dirContext != null) {
+                return new AuthenticationResult(true, new UsernamePasswordAuthenticationToken(username,
+                        OntimizeAuthenticationProvider.NO_AUTHENTICATION_TOKEN));
+            } else {
+                LOGGER.error("System authentication failed: no connect to LDAP");
+                throw new BadCredentialsException(LdapError.NO_LDAP_CONNECTION.toString());
+            }
+        } catch (NamingException e) {
+            LOGGER.error("System authentication failed: NamingException searching into server LDAP", e);
+            throw new BadCredentialsException(LdapError.ERROR_SEARCHING_IN_LDAP.toString());
+        } catch (LoginException e) {
+            LOGGER.error("System authentication failed: LoginException with server LDAP", e);
+            throw new BadCredentialsException(LdapError.ERROR_LOGIN_LDAP.toString());
+        } catch (IOException e) {
+            LOGGER.error("System authentication failed: IOException with server LDAP", e);
+            throw new BadCredentialsException(LdapError.ERROR_IO_LDAP.toString());
+        }
+
+    }
+
+    public static synchronized DirContext connect(final String user, final String password, final String hosts,
+                                                  final int port, final String adddomain, boolean ssl)
+            throws NamingException, java.io.IOException, LoginException {
+
+        if ((hosts == null) || (hosts.length() == 0)) {
+            LOGGER.error("LDAP host cannot be neither null nor empty");
+            throw new IllegalArgumentException(LdapError.EMPTY_LDAP_HOST.toString());
+        }
+
+        StringTokenizer st = new StringTokenizer(hosts, ";");
+
+        while (st.hasMoreTokens()) {
+            String host = st.nextToken();
+            return _connect(user, password, host, port, adddomain, ssl);
+        }
+
+        return null;
+
+    }
+
+    private static synchronized DirContext _connect(final String user, final String password, final String host,
+                                                    final int port, final String adddomain, boolean ssl)
+            throws NamingException, java.io.IOException, LoginException {
+
+        Hashtable<String, String> props = new Hashtable<>();
+        if ((user == null) || (user.length() == 0)) {
+            LOGGER.error("user cannot be neither null nor empty");
+            throw new IllegalArgumentException(LdapError.EMPTY_LDAP_USER.toString());
+
+        }
+
+        if ((password == null) || (password.length() == 0)) {
+            LOGGER.error("password cannot be neither null nor empty");
+            throw new IllegalArgumentException(LdapError.EMPTY_LDAP_PASSWORD.toString());
+
+        }
+
+        props.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
+        props.put(Context.PROVIDER_URL, "ldap://" + host + ":" + port);
+        props.put(Context.SECURITY_AUTHENTICATION, "simple");
+
+        if (adddomain != null) {
+            props.put(Context.SECURITY_PRINCIPAL, user + "@" + adddomain);
+        } else {
+            props.put(Context.SECURITY_PRINCIPAL, user);
+        }
+
+        props.put(Context.SECURITY_CREDENTIALS, password);
+
+        if (ssl) {
+            props.put(Context.SECURITY_PROTOCOL, "ssl");
+        }
+
+        props.put(Context.REFERRAL, "follow");
+        DirContext ctx = null;
+
+        try {
+            ctx = new InitialDirContext(props);
+            LOGGER.info("Authentication sucessfully in LDAP");
+
+        } catch (Exception e) {
+            LOGGER.error("System authentication failed: wrong user and/or pass in LDAP");
+            throw new BadCredentialsException(LdapError.LDAP_AUTH_USER_PASS_NOT_VALID.toString());
+
+        }
+
+        return ctx;
+
+    }
+
+    private String[] extractAndDecodeHeader(final String header, final HttpServletRequest request) {
+
+        try {
+            final byte[] base64Token = header.substring(6).getBytes("UTF-8");
+            byte[] decoded;
+            decoded = Base64.decode(base64Token);
+
+            final String token = new String(decoded, this.getCredentialsCharset(request));
+            final int delim = token.indexOf(':');
+
+            if (delim == -1) {
+                throw new BadCredentialsException("Invalid basic authentication token");
+            }
+            return new String[] { token.substring(0, delim), token.substring(delim + 1) };
+        } catch (IllegalArgumentException | UnsupportedEncodingException error) {
+            throw new BadCredentialsException("Failed to decode basic authentication token", error);
+        }
+    }
+
+    protected String getCredentialsCharset(final HttpServletRequest httpRequest) {
+        return this.credentialsCharset;
+    }
+}

CustomSecurityAutoConfiguration.java

package com.ontimize.projectwiki.security;
+
+import java.util.ArrayList;
+
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
+
+import com.ontimize.boot.autoconfigure.security.DefaultSecurityAutoConfiguration;
+import com.ontimize.jee.server.security.authentication.IAuthenticationMechanism;
+import com.ontimize.jee.server.security.authentication.OntimizeAuthenticationFilter;
+import com.ontimize.jee.server.security.authentication.OntimizeAuthenticationSuccessHandler;
+
+@Configuration
+@EnableWebSecurity
+@EnableAutoConfiguration
+@ConditionalOnProperty(name = "ontimize.security.mode", havingValue = "ldap", matchIfMissing = false)
+public class CustomSecurityAutoConfiguration extends DefaultSecurityAutoConfiguration {
+
+    @Value("${ontimize.security.servicePath:/**}")
+    private String servicePath;
+
+    @Value("${ontimize.security.ignorePaths:}")
+    private String[] ignorePaths;
+
+    @Override
+    public OntimizeAuthenticationFilter preAuthFilterOntimize() throws Exception {
+        OntimizeAuthenticationFilter filter = new OntimizeAuthenticationFilter(this.servicePath);
+        filter.setUserDetailsService(this.userDetailsService());
+        filter.setUserCache(this.userCache());
+        filter.setTokenGenerator(this.tokenGenerator());
+        filter.setGenerateJwtHeader(true);
+        filter.setAuthenticationManager(this.authenticationManager());
+        filter.setAuthenticationEntryPoint(this.authenticationEntryPoint());
+        filter.setAuthenticationMechanismList(new ArrayList<>());
+    	filter.getAuthenticationMechanismList().add(this.jwtAuthenticator());
+    	filter.getAuthenticationMechanismList().add(this.ldapAuthenticator());
+        filter.setAuthenticationSuccessHandler(new OntimizeAuthenticationSuccessHandler());
+        filter.afterPropertiesSet();
+        return filter;
+
+    }
+
+    @Bean
+    public IAuthenticationMechanism ldapAuthenticator() {
+        return new LdapAuthenticationMechanism();
+    }
+
+}

Modify application.yml

Add LDAP properties

In the application.yml we need to change the ontimize security mode to ldap and add the following properties (More information in this link):

application.yml

ontimize:
+security:
+mode: ldap
+ldap:
+active: true
+host: 10.0.0.1
+port: 389
+login-type: simple
+bind.dn:
+base.dn:
+domain: yourdomain.com
diff --git a/v1/basics/mail/index.html b/v1/basics/mail/index.html new file mode 100644 index 0000000..c023301 --- /dev/null +++ b/v1/basics/mail/index.html @@ -0,0 +1,136 @@ + Mail System | Ontimize Boot Skip to main content Link Menu Expand (external link) Document Search Copy Copied

Introduction

Ontimize Boot is a framework that allows you to simplify the configuration of a project made with Ontimize EE, in a fast and efficient way. The email system allows you to send mail from the server with a simple configuration.

Prerequisites

There are 2 options to follow this tutorial, clone the repository with the initial state and follow the tutorial step by step, or download the final example and see which files are new and which have been updated.

Initial project

/$ git clone https://github.com/ontimize/ontimize-examples
+/ontimize-examples$ cd ontimize-examples
+/ontimize-examples$ git checkout boot-mail-1.x.x-initial
+

Final example

/$ git clone https://github.com/ontimize/ontimize-examples
+/ontimize-examples$ cd ontimize-examples
+/ontimize-examples$ git checkout boot-mail-1.x.x
+

Configuring email service with Ontimize Boot

In this complete tutorial, we are going to create a backend for an application from scratch, including the database with different tables, configuring the server, creating the necessary DAO files and implementing the service. At the end of the tutorial, we will even be testing that our mailing system is fully operational and functional.

DB configuration

If the configuration table does not exist in the DB, it can be created with the following command:

Sentencia SQL (HSQL)

CREATE TABLE TSETTING(ID_SETTING INTEGER GENERATED BY DEFAULT AS IDENTITY NOT NULL PRIMARY KEY,SETTING_KEY LONGVARCHAR,SETTING_VALUE LONGVARCHAR,SETTING_COMMENTLONGVARCHAR);

We fill in this table with the data that applies to each specific mail server, in this example, we will use the following:

SETTING_KEY SETTING_VALUE SETTING_COMMENT
mail_host localhost Server host
mail_port 2525 Email server port
mail_protocol smtp Mailing protocol
mail_user my.mail@example.com User for sending
mail_password my_password Mail server password
mail-encoding UTF-8 Encoding of mails
mail_properties mail.smtp.auth:true; mail.smtp.starttls.enable:true; Mail properties

Sentencia SQL (HSQL)

INSERT INTO TSETTING (SETTING_KEY, SETTING_VALUE, SETTING_COMMENT) VALUES('mail_host', 'localhost', 'Server host');
+INSERT INTO TSETTING (SETTING_KEY, SETTING_VALUE, SETTING_COMMENT) VALUES('mail_port', '2525', 'Email server port');
+INSERT INTO TSETTING (SETTING_KEY, SETTING_VALUE, SETTING_COMMENT) VALUES('mail_protocol', 'smtp', 'Mailing protocol');
+INSERT INTO TSETTING (SETTING_KEY, SETTING_VALUE, SETTING_COMMENT) VALUES('mail_user', 'my.mail@example.com', 'User for sending');
+INSERT INTO TSETTING (SETTING_KEY, SETTING_VALUE, SETTING_COMMENT) VALUES('mail_password', 'my_password', 'Mail server password');
+INSERT INTO TSETTING (SETTING_KEY, SETTING_VALUE, SETTING_COMMENT) VALUES('mail_encoding', 'UTF-8', 'Encoding of mails');
+INSERT INTO TSETTING (SETTING_KEY, SETTING_VALUE, SETTING_COMMENT) VALUES('mail_properties', 'mail.smtp.auth:true;mail.smtp.starttls.enable:true;', 'Mail properties');

The implementation interface contains multiple methods, to which we must give permissions, if our application has permissions:

Sentencia SQL (HSQL)

INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.common.services.mail.MailService/sendMail');
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.common.services.mail.MailService/sendMailWithoutAttach');
+INSERT INTO TROLE_SERVER_PERMISSION (ID_ROLENAME, ID_SERVER_PERMISSION) VALUES((SELECT ID_ROLENAME FROM TROLE WHERE ROLENAME='admin'), (SELECT ID_SERVER_PERMISSION FROM TSERVER_PERMISSION WHERE PERMISSION_NAME='com.ontimize.jee.common.services.mail.IMailService/sendMail'));
+INSERT INTO TROLE_SERVER_PERMISSION (ID_ROLENAME, ID_SERVER_PERMISSION) VALUES((SELECT ID_ROLENAME FROM TROLE WHERE ROLENAME='admin'), (SELECT ID_SERVER_PERMISSION FROM TSERVER_PERMISSION WHERE PERMISSION_NAME='com.ontimize.jee.common.services.mail.IMailService/sendMailWithoutAttach'));

Adding dependencies

Now we need to add the correct dependency in the correct pom.xml:

...
+<dependencies>
+...
+<dependency>
+<groupId>org.springframework.boot</groupId>
+<artifactId>spring-boot-starter-mail</artifactId>
+</dependency>
+...
+</dependencies>
+...

Server Configuration

To configure this service, a new configuration fragment shall be added to the application.yml file.

ontimize:
+   mail:
+      ref-repository: OCSettingsDao
+      filter-column-name: SETTING_KEY
+      value-column-name: SETTING_VALUE
+      query-id: default
+      filter-column-value-encoding: mail_encoding
+      filter-column-value-host: mail_host
+      filter-column-value-port: mail_port
+      filter-column-value-protocol: mail_protocol
+      filter-column-value-user: mail_user
+      filter-column-value-password: mail_password
+      filter-column-value-java-mail-properties: mail_properties
+      engine: default

This configuration indicates the keys and values to be stored in the database. The database table is the one corresponding to the bean described in the refRepository: OCSettingsDao attribute (in this case, OCSettingsDao), which can be seen in the table TSETTING attribute (for this example, TSETTING) of the *.xml configuration file of the bean (OCSettingsDao.xml). The keys would be stored in the SETTING_KEY column, the values in the SETTING_VALUE column and the rest of the attributes map the keys that exist in the database.

In addition, the packet that will be scanned to look for the implementation of the email service is indicated.

Creation of DAO files

Let’s create a DAO (Data Access Object) in the projectwiki-model module to use as a model of this database table. The DAO is composed by 2 files, a file with extension *.xml and a *.java file.

In our *.xml file we will indicate the database table for which DAO belongs, the data source from which we collect the information (e.g. the database connection that contains this table) and the schema to which the table belongs.

OCSettingsDao.xml

<?xml version="1.0" encoding="UTF-8"?>
+<JdbcEntitySetup
+xmlns="http://www.ontimize.com/schema/jdbc"
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+xsi:schemaLocation="http://www.ontimize.com/schema/jdbc http://www.ontimize.com/schema/jdbc/ontimize-jdbc-dao.xsd"
+catalog="" schema="${mainschema}" table="TSETTING"
+datasource="mainDataSource" sqlhandler="dbSQLStatementHandler">
+<DeleteKeys>
+<Column>ID_SETTING</Column>
+</DeleteKeys>
+<UpdateKeys>
+<Column>ID_SETTING</Column>
+</UpdateKeys>
+<GeneratedKey>ID_SETTING</GeneratedKey>
+</JdbcEntitySetup>

In the *.java file we indicate that it is a repository whose name will be OCSettingsDao, through the annotation @Repository. With the annotation @Lazy, we will indicate that the load is delayed until it is completely necessary (improving in that way the performance), and the annotation @ConfigurationFile allows us to configure this DAO using the XML file and an additional file where some common characteristics to several DAOs can be stored. like the scheme to which they belong.

OCSettingsDao.java

package com.ontimize.projectwiki.model.core.dao;
+
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Repository;
+
+import com.ontimize.jee.server.dao.common.ConfigurationFile;
+import com.ontimize.jee.server.dao.jdbc.OntimizeJdbcDaoSupport;
+
+@Repository("OCSettingsDao")
+@Lazy
+@ConfigurationFile(configurationFile = "dao/OCSettingsDao.xml", configurationFilePlaceholder = "dao/placeholders.properties")
+public class OCSettingsDao extends OntimizeJdbcDaoSupport {
+
+public OCSettingsDao() {
+super();
+}
+
+}

Implementation in an existing service

To use this service in another service (e.g. to send a mail when a new record is created), just add a variable of type com.ontimize.jee.common.services.mail.IMailService and annotate it with @Autowired.

...
+import com.ontimize.jee.common.services.mail.IMailService;
+...
+@Service("CandidateService")
+@Lazy
+public class CandidateService implements ICandidateService {
+...
+@Autowired
+private IMailService mailService;
+...
+@Override
+public EntityResult candidateInsert(Map<String, Object> attrMap) throws OntimizeJEERuntimeException {
+EntityResult toRet = this.daoHelper.insert(this.candidateDao, attrMap);
+
+    if ((toRet.getCode() != EntityResult.OPERATION_WRONG)) {
+
+    	Runnable runnable = () -> {
+
+    	List<String> receiverList = new ArrayList<String>();
+    	receiverList.add("receiver@example.com");
+    	StringBuilder builder = new StringBuilder();
+    	builder.append("Created new user.");
+    	try {
+    		this.mailService.sendMailWithoutAttach("my.mail@example.com", receiverList, "New candidate",
+    			builder.toString());
+    	} catch (OntimizeJEEException e) {
+    }
+    };
+
+DelegatingSecurityContextRunnable wrappedRunnable = new DelegatingSecurityContextRunnable(runnable);
+new Thread(wrappedRunnable).start();
+}
+
+return toRet;
+}
+...

For space reasons, the entire files are not included, only the code snippets related to the tutorial. The … in the code snippets indicate that there may be unrelated code before or after them.

Checking the sending of mails

In order to check that the created service is indeed sending mails, we will use an external service called FakeSMTP, is a free Fake SMTP Server with GUI for testing emails in applications easily.

To do this, we enter this link and clone the repository it indicates into the workspace where we have our project.

We launch the DB and the server. Next, open a console and move to the path where FakeSMTP was downloaded:

...\FakeSMTP> mvn package-Dmaven.test.skip
+...\FakeSMTP> cd target
+...\FakeSMTP\target> java -jar fakeSMTP-2.1-SNAPSHOT.jar -s -p 2525
Command Meaning 34
fakeSMTP-VERSION.jar Downloaded version.  
-s Launch the server.  
- p 2525 Launch the application on the port indicated.  

Now we can use an application like Postman to execute different REST requests to our project.

Use REST request

The requests contains the following structure: localhost:33333/candidates/candidate

Element Meaning
localhost:33333 Indicates the host
/candidates Indicates the service to be queried
/candidate Indicates the DAO that will access that service

The request types can only be GET, POST, PUT, DELETE.

Below are examples of request for candidates (CANDIDATES).

The authorization used for these requests is authorization of the type BASIC.

In both cases, the access must be done with a user and password example:

    User: demo
+Password: demouser
+
Request type Query URL Service method Body request
POST insert localhost:33333/candidates/candidate candidateInsert Example below

Body request:

{
+  "data": {
+      "PHONE": "555-444-8888",
+      "BIRTHDAY": 788224700000,
+      "SURNAME": "Wilson",
+      "EMAIL": "wwiilsoon@example.org",
+      "SPECIALTIES": "C#",
+      "NAME": "William",
+      "DNI": "88643946Z"
+  },
+  "sqltypes": {
+      "SPECIALTIES": 12,
+      "LINKEDIN": 12,
+      "PHONE": 12,
+      "EXPERIENCE_LEVEL": 4,
+      "STATUS": 4,
+      "EMAIL": 12,
+      "WAGE_LEVEL": 2,
+      "DNI": 12,
+      "ID": 4,
+      "ORIGIN": 4,
+      "EDUCATION": 4,
+      "COMMENT": 12,
+      "PROFILE": 4,
+      "SURNAME": 12,
+      "NAME": 12,
+      "BIRTHDAY": 91
+  }
+}
diff --git a/v1/basics/security/index.html b/v1/basics/security/index.html new file mode 100644 index 0000000..b92c012 --- /dev/null +++ b/v1/basics/security/index.html @@ -0,0 +1,74 @@ + Security System | Ontimize Boot Skip to main content Link Menu Expand (external link) Document Search Copy Copied

Introduction

Ontimize security allows you to set permissions to each role that you assign to a specific user, so that different users can access (or not) the project services and methods.

Prerequisites

You can follow this tutorial using your own application, although for this example we will use an application created using the archetype that can be found on this page and with a REST service.

There are 2 options to follow this tutorial, clone the repository with the initial state and follow the tutorial step by step, or download the final example and see which files are new and which have been updated.

Initial project

/$ git clone https://github.com/ontimize/ontimize-examples
+/ontimize-examples$ cd ontimize-examples
+/ontimize-examples$ git checkout boot-security-1.x.x-initial
+

Final example

/$ git clone https://github.com/ontimize/ontimize-examples
+/ontimize-examples$ cd ontimize-examples
+/ontimize-examples$ git checkout boot-security-1.x.x
+

To simplify the code being written, three dots (…) may appear in some parts of the code. This indicates that there may be previous code before and after those dots.

Steps

Add new profile and user

We will add the following elements to the database:

  • New user
  INSERT INTO TUSER VALUES('candidate','candidate','candidate','candidate',NULL,'99999999R',NULL,'2020-07-03 11:50:40.665000',NULL)
+  
  • New user role
  INSERT INTO TROLE VALUES(1,'candidate','<?xml version="1.0" encoding="UTF-8"?><security></security>')
+  
  • Relationship between the new user and the new role
  INSERT INTO TUSER_ROLE VALUES(1,1,'candidate')
+  

Modify the service to add security

In the projectwiki-boot module we will add the annotation @EnableAspectJAutoProxy(proxyTargetClass = false) to the ServerApplication.java class and to each service method the @Secured({ PermissionsProviderSecured.SECURED }) annotation.

ServerApplication.java

package com.ontimize.projectwiki;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.context.annotation.EnableAspectJAutoProxy;
+
+@SpringBootApplication
+@EnableAspectJAutoProxy(proxyTargetClass = false)
+public class ServerApplication {
+
+    public static void main(String[] args) {
+    	SpringApplication.run(ServerApplication.class, args);
+    }
+
+}

CustomerService.java

package com.ontimize.projectwiki.model.core.service;
+
+. . .
+import org.springframework.security.access.annotation.Secured;
+
+. . .
+import com.ontimize.jee.common.security.PermissionsProviderSecured;
+
+. . .
+
+public class CandidateService implements ICandidateService {
+
+. . .
+
+    @Override
+    @Secured({ PermissionsProviderSecured.SECURED })
+    public EntityResult candidateQuery(Map<String, Object> keyMap, List<String> attrList)
+    		throws OntimizeJEERuntimeException {
+    	return this.daoHelper.query(this.candidateDao, keyMap, attrList);
+    }
+
+    @Override
+    @Secured({ PermissionsProviderSecured.SECURED })
+    @Transactional(rollbackFor = Exception.class)
+    public EntityResult candidateInsert(Map<String, Object> attrMap) throws OntimizeJEERuntimeException {
+    	return this.daoHelper.insert(this.candidateDao, attrMap);
+    }
+
+    @Override
+    @Secured({ PermissionsProviderSecured.SECURED })
+    @Transactional(rollbackFor = Exception.class)
+    public EntityResult candidateUpdate(Map<String, Object> attrMap, Map<String, Object> keyMap)
+    		throws OntimizeJEERuntimeException {
+    	return this.daoHelper.update(this.candidateDao, attrMap, keyMap);
+    }
+
+    @Override
+    @Secured({ PermissionsProviderSecured.SECURED })
+    public EntityResult candidateDelete(Map<String, Object> keyMap) throws OntimizeJEERuntimeException {
+    	return this.daoHelper.delete(this.candidateDao, keyMap);
+    }
+
+}

Add permissions for methods

Once the methods have been noted, it is necessary to add the service and the method that we have noted to the table of the DB that stores those elements and to the table that indicates the methods for which the role has permission.

INSERT INTO TSERVER_PERMISSION VALUES('com.ontimize.projectwiki.model.core.service.CandidateService/candidateQuery')
+INSERT INTO TSERVER_PERMISSION VALUES('com.ontimize.projectwiki.model.core.service.CandidateService/candidateInsert')
+INSERT INTO TSERVER_PERMISSION VALUES('com.ontimize.projectwiki.model.core.service.CandidateService/candidateUpdate')
+INSERT INTO TSERVER_PERMISSION VALUES('com.ontimize.projectwiki.model.core.service.CandidateService/candidateDelete')
+
+INSERT INTO TROLE_SERVER_PERMISSION VALUES(0,1)
+INSERT INTO TROLE_SERVER_PERMISSION VALUES(0,2)
+INSERT INTO TROLE_SERVER_PERMISSION VALUES(0,3)
+INSERT INTO TROLE_SERVER_PERMISSION VALUES(0,4)

If we try to make requests through Postman to the service of CandidateService, changing the authentication by the user candidate and password candidate, it will give an error, since the user candidate does not belong to the role admin which is the only role that has permissions to make these queries.

diff --git a/v1/getting_started/index.html b/v1/getting_started/index.html new file mode 100644 index 0000000..2732bff --- /dev/null +++ b/v1/getting_started/index.html @@ -0,0 +1,11 @@ + Getting started | Ontimize Boot Skip to main content Link Menu Expand (external link) Document Search Copy Copied

Getting started


This page allows you to know how to start developing an application with Ontimize Boot in a simple way. This project includes an HSQLDB database already prepared to start the application. It can be replaced.

Create application from archetype

Open a console and type the next command:

mvn org.apache.maven.plugins:maven-archetype-plugin:2.4:generate -DgroupId=YOUR_GROUP_ID -DartifactId=YOUR_ARTIFACT_ID -Dversion=YOUR_VERSION -Dpackage=YOUR.GROUPID.ARTIFACTID -DarchetypeGroupId=com.ontimize -DarchetypeArtifactId=ontimize-boot-archetype -DarchetypeVersion=1.0.0 -DinteractiveMode=false -DarchetypeCatalog=https://artifactory.imatia.com/public-artifactory/ontimize-archetypes/archetype-catalog.xml
+

Command explanation

Argument Meaning
mvn Maven CLI
org.apache.maven.plugins:maven-archetype-plugin:2.4:generate Use the Maven Archetype Plugin (v2.4) for create a new project from an archetype
-DgroupId=YOUR_GROUP_ID Your project groupId
-DartifactId=YOUR_ARTIFACT_ID Your project artifactId
-Dversion=YOUR_VERSION Your project version
-Dpackage=YOUR.GROUPID.ARTIFACTID Sets the package on which the project will be based (e.g.: In our examples, this will be com.ontimize.projectwiki)
-DarchetypeGroupId=com.ontimize groupId of the Ontimize Boot archetype
-DarchetypeArtifactId=ontimize-boot-archetype artifactId of the Ontimize Boot archetype
-DarchetypeVersion=1.0.0 version of the Ontimize Boot archetype
-DinteractiveMode=false Forced to skip interactive mode and use the paramaters in the command
-DarchetypeCatalog=https://artifactory.imatia.com/public-artifactory/ontimize-archetypes/archetype-catalog.xml URL where you can find the archetype catalog

Start the project

To start the project, it is necessary to start both the database and the server. The first thing to do is to execute the mvn install command inside the project’s root folder

$ cd app
+/app$ mvn install
+

Start the database

Next, we navigate to the model folder to start the HSQLDB database

/app$ cd model
+/app/model$ mvn exec:java -Prun_database
+

Start the server

To start the server, open a new console in the root folder of the project, navigate to boot folder and type the following command

/app$ cd boot
+/app/boot$ mvn spring-boot:run
+

Test the application

You can check if the application is working by making a request, for example, to the following address:

http://localhost:33333/users/user?columns=USER_
+

Through applications such as Postman or from the browser

In both cases, the access must be done with a user and password example:

    User: demo
+Password: demouser
+
diff --git a/v1/index.html b/v1/index.html new file mode 100644 index 0000000..2762bc3 --- /dev/null +++ b/v1/index.html @@ -0,0 +1 @@ + Home | Ontimize Boot Skip to main content Link Menu Expand (external link) Document Search Copy Copied

📜 Ontimize Boot

Ontimize Boot uses Spring Boot technology to further simplify the development of a service or microservice based server, using the API REST communication system.

✍ Use

To start developing an application with Ontimize Boot is very simple, we have an archetype that generates the skeleton of an application in seconds, from which you can develop the application you want. For more information, consult the desired topics in this documentation, using the search box or the side menu.

👁️‍🗨️ Versions and dependencies

All the versions and dependencies of the artifacts contained in this project can be downloaded from Imatia Artifactory, as well as knowing each of its dependencies.

diff --git a/v1/introduction/index.html b/v1/introduction/index.html new file mode 100644 index 0000000..8424c6d --- /dev/null +++ b/v1/introduction/index.html @@ -0,0 +1 @@ + Introduction | Ontimize Boot Skip to main content Link Menu Expand (external link) Document Search Copy Copied

Welcome to the documentation of the backend development framework for building the future


How to read and use this documentation.


In this page you will find the necessary elements to start developing your backend application with Ontimize Boot. Below you will find links to the sections containing the information you need for a quick introduction to Ontimize Boot development.

Sections

Prerequisites Check you meet minimum requirements to start.
Getting started First contact with an Ontimize Boot app. Generate an app is easy with an archetype.

diff --git a/v1/prerequisites/index.html b/v1/prerequisites/index.html new file mode 100644 index 0000000..51fe626 --- /dev/null +++ b/v1/prerequisites/index.html @@ -0,0 +1,11 @@ + Prerequisites | Ontimize Boot Skip to main content Link Menu Expand (external link) Document Search Copy Copied

Prerequisites


Java JDK 8

Make sure you have the JDK version of Java 8 installed. There are many different builds, but perhaps the most common is Adoptium, which you can download from the following link (add your operating system and your computer’s architecture): Adoptium JDK

NOTE: Check the option to set the JAVA_HOME variable.

Following installation, make sure you have correctly installed Java JDK 8 by invoking the following commands in the command-line java -version

NOTE: On the Mac, the command-line is available via the Terminal >application. On the PC, it’s available as Command Prompt.

The result should look similar to

$java -version
+openjdk version "1.8.0_XXX"
+OpenJDK Runtime Enviroment (Temurin)(build 1.8.0_XXX-XXX)
+OpenJDK 64-Bit Server VM (Temurin)(build 1.8.0_XXX-XXX, mixed mode)
+

Maven 3.6.0 or newer

Maven is required for downloading and using the Ontimize Boot application archetype, managing the libraries contained in the framework and even for running the application. You can download Maven from its official project page at the following link: Maven

Follow the installation steps indicated in the official web site

To check the installation, run the following command at a command prompt mvn -v. The result should look similar to:

$mvn -v
+Apache Maven 3.9.6 (bc0240f3c744dd6b6ec2920b3cd08dcc295161ae)
+Maven home: C:\apache-maven-3.9.6
+Java version: 1.8.0_392, vendor: Temurin, runtime: C:\Program Files\Eclipse Adoptium\jdk-8-0-392.8-hotspot\jre
+Default locale: es_ES, platform encoding: Cp1252
+OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"
+

IDE

It is not absolutely necessary to use an IDE, but it is highly recommended and helps the development of the application. We recommend the use of IntelliJ (in its Community or Ultimate version), Eclipse (in its Enterprise Java and Web Developers version) or Visual Studio Code.

diff --git a/v3/LICENSE b/v3/LICENSE new file mode 100644 index 0000000..7d510d0 --- /dev/null +++ b/v3/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 just-the-docs + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/v3/README.md b/v3/README.md new file mode 100644 index 0000000..3aa37b1 --- /dev/null +++ b/v3/README.md @@ -0,0 +1,30 @@ +# [Ontimize Boot v3.X.X - Documentation](https://ontimize.github.io/docs/v3/index.html) + +## ✍ Use + +### v3.X.X documentation: + +- [Check this link](https://ontimize.github.io/docs/v3/index.html) + +### v3.X.X-develop documentation: + +- Download this branch: https://github.com/ontimize/docs/tree/3.x.x-develop + + > **IMPORTANT** + > If this is the first time you are working with this documentation, run this command before continue. + > + > ``` + > bundle install + > ``` + > + > This will install the necessary Ruby gems. Please, if the installation modifies your **_Gemfile.lock_** file, **DO NOT UPLOAD IT**. + +- Run the following command to launch a local Jekyll server and check the documentation + + ``` + bundle exec jekyll serve --config _config.yml,_config.deploy.yml + ``` + +### Deploy v3.X.X documentation: + +- Upload all the changes you want to deploy in version 3.x.x to the 3.x.x-develop branch. Make a pull request from version 3.x.x-develop to version 3.x.x and merge it. diff --git a/v3/assets/css/just-the-docs-dark.css b/v3/assets/css/just-the-docs-dark.css new file mode 100644 index 0000000..e228938 --- /dev/null +++ b/v3/assets/css/just-the-docs-dark.css @@ -0,0 +1,11143 @@ +@charset "UTF-8"; +.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: "Roboto", sans-serif; + 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) { + .main { + position: relative; + max-width: 50rem; + margin-left: 15.5rem; + } +} +@media (min-width: 66.5rem) { + .main { + margin-left: max( + 16.5rem, + calc((100% - 66.5rem) / 2 + 16.5rem) + ); + } +} + +.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; + display: none; + background-color: #27262b; +} +@media (min-width: 50rem) { + .main-header { + display: flex; + justify-content: space-between; + height: 3.75rem; + background-color: #27262b; + border-bottom: 1px solid #44434d; + } +} +.main-header.nav-open { + display: block; +} +@media (min-width: 50rem) { + .main-header.nav-open { + display: flex; + } +} + +.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-logo { + width: 100%; + height: 100%; + background-image: url("/docs/v3/assets/icons/logo-ontimize-blanco.png"); + background-repeat: no-repeat; + background-position: left center; + background-size: contain; +} + +.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; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-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; + } +} +@media (min-width: 800px) { + .m-home-header-0 { + margin: 0 !important; + } + .mt-home-header-0 { + margin-top: 0 !important; + } + .mr-home-header-0 { + margin-right: 0 !important; + } + .mb-home-header-0 { + margin-bottom: 0 !important; + } + .ml-home-header-0 { + margin-left: 0 !important; + } + .mx-home-header-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .my-home-header-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .mxn-home-header-0 { + margin-right: -0 !important; + margin-left: -0 !important; + } +} +@media (min-width: 800px) { + .m-home-header-1 { + margin: 0.25rem !important; + } + .mt-home-header-1 { + margin-top: 0.25rem !important; + } + .mr-home-header-1 { + margin-right: 0.25rem !important; + } + .mb-home-header-1 { + margin-bottom: 0.25rem !important; + } + .ml-home-header-1 { + margin-left: 0.25rem !important; + } + .mx-home-header-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .my-home-header-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .mxn-home-header-1 { + margin-right: -0.25rem !important; + margin-left: -0.25rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-2 { + margin: 0.5rem !important; + } + .mt-home-header-2 { + margin-top: 0.5rem !important; + } + .mr-home-header-2 { + margin-right: 0.5rem !important; + } + .mb-home-header-2 { + margin-bottom: 0.5rem !important; + } + .ml-home-header-2 { + margin-left: 0.5rem !important; + } + .mx-home-header-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .my-home-header-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .mxn-home-header-2 { + margin-right: -0.5rem !important; + margin-left: -0.5rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-3 { + margin: 0.75rem !important; + } + .mt-home-header-3 { + margin-top: 0.75rem !important; + } + .mr-home-header-3 { + margin-right: 0.75rem !important; + } + .mb-home-header-3 { + margin-bottom: 0.75rem !important; + } + .ml-home-header-3 { + margin-left: 0.75rem !important; + } + .mx-home-header-3 { + margin-right: 0.75rem !important; + margin-left: 0.75rem !important; + } + .my-home-header-3 { + margin-top: 0.75rem !important; + margin-bottom: 0.75rem !important; + } + .mxn-home-header-3 { + margin-right: -0.75rem !important; + margin-left: -0.75rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-4 { + margin: 1rem !important; + } + .mt-home-header-4 { + margin-top: 1rem !important; + } + .mr-home-header-4 { + margin-right: 1rem !important; + } + .mb-home-header-4 { + margin-bottom: 1rem !important; + } + .ml-home-header-4 { + margin-left: 1rem !important; + } + .mx-home-header-4 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .my-home-header-4 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .mxn-home-header-4 { + margin-right: -1rem !important; + margin-left: -1rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-5 { + margin: 1.5rem !important; + } + .mt-home-header-5 { + margin-top: 1.5rem !important; + } + .mr-home-header-5 { + margin-right: 1.5rem !important; + } + .mb-home-header-5 { + margin-bottom: 1.5rem !important; + } + .ml-home-header-5 { + margin-left: 1.5rem !important; + } + .mx-home-header-5 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .my-home-header-5 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .mxn-home-header-5 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-6 { + margin: 2rem !important; + } + .mt-home-header-6 { + margin-top: 2rem !important; + } + .mr-home-header-6 { + margin-right: 2rem !important; + } + .mb-home-header-6 { + margin-bottom: 2rem !important; + } + .ml-home-header-6 { + margin-left: 2rem !important; + } + .mx-home-header-6 { + margin-right: 2rem !important; + margin-left: 2rem !important; + } + .my-home-header-6 { + margin-top: 2rem !important; + margin-bottom: 2rem !important; + } + .mxn-home-header-6 { + margin-right: -2rem !important; + margin-left: -2rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-7 { + margin: 2.5rem !important; + } + .mt-home-header-7 { + margin-top: 2.5rem !important; + } + .mr-home-header-7 { + margin-right: 2.5rem !important; + } + .mb-home-header-7 { + margin-bottom: 2.5rem !important; + } + .ml-home-header-7 { + margin-left: 2.5rem !important; + } + .mx-home-header-7 { + margin-right: 2.5rem !important; + margin-left: 2.5rem !important; + } + .my-home-header-7 { + margin-top: 2.5rem !important; + margin-bottom: 2.5rem !important; + } + .mxn-home-header-7 { + margin-right: -2.5rem !important; + margin-left: -2.5rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-8 { + margin: 3rem !important; + } + .mt-home-header-8 { + margin-top: 3rem !important; + } + .mr-home-header-8 { + margin-right: 3rem !important; + } + .mb-home-header-8 { + margin-bottom: 3rem !important; + } + .ml-home-header-8 { + margin-left: 3rem !important; + } + .mx-home-header-8 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .my-home-header-8 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .mxn-home-header-8 { + margin-right: -3rem !important; + margin-left: -3rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-9 { + margin: 3.5rem !important; + } + .mt-home-header-9 { + margin-top: 3.5rem !important; + } + .mr-home-header-9 { + margin-right: 3.5rem !important; + } + .mb-home-header-9 { + margin-bottom: 3.5rem !important; + } + .ml-home-header-9 { + margin-left: 3.5rem !important; + } + .mx-home-header-9 { + margin-right: 3.5rem !important; + margin-left: 3.5rem !important; + } + .my-home-header-9 { + margin-top: 3.5rem !important; + margin-bottom: 3.5rem !important; + } + .mxn-home-header-9 { + margin-right: -3.5rem !important; + margin-left: -3.5rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-10 { + margin: 4rem !important; + } + .mt-home-header-10 { + margin-top: 4rem !important; + } + .mr-home-header-10 { + margin-right: 4rem !important; + } + .mb-home-header-10 { + margin-bottom: 4rem !important; + } + .ml-home-header-10 { + margin-left: 4rem !important; + } + .mx-home-header-10 { + margin-right: 4rem !important; + margin-left: 4rem !important; + } + .my-home-header-10 { + margin-top: 4rem !important; + margin-bottom: 4rem !important; + } + .mxn-home-header-10 { + margin-right: -4rem !important; + margin-left: -4rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-0 { + margin: 0 !important; + } + .mt-home-imgs-max-0 { + margin-top: 0 !important; + } + .mr-home-imgs-max-0 { + margin-right: 0 !important; + } + .mb-home-imgs-max-0 { + margin-bottom: 0 !important; + } + .ml-home-imgs-max-0 { + margin-left: 0 !important; + } + .mx-home-imgs-max-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .my-home-imgs-max-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .mxn-home-imgs-max-0 { + margin-right: -0 !important; + margin-left: -0 !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-1 { + margin: 0.25rem !important; + } + .mt-home-imgs-max-1 { + margin-top: 0.25rem !important; + } + .mr-home-imgs-max-1 { + margin-right: 0.25rem !important; + } + .mb-home-imgs-max-1 { + margin-bottom: 0.25rem !important; + } + .ml-home-imgs-max-1 { + margin-left: 0.25rem !important; + } + .mx-home-imgs-max-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .my-home-imgs-max-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .mxn-home-imgs-max-1 { + margin-right: -0.25rem !important; + margin-left: -0.25rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-2 { + margin: 0.5rem !important; + } + .mt-home-imgs-max-2 { + margin-top: 0.5rem !important; + } + .mr-home-imgs-max-2 { + margin-right: 0.5rem !important; + } + .mb-home-imgs-max-2 { + margin-bottom: 0.5rem !important; + } + .ml-home-imgs-max-2 { + margin-left: 0.5rem !important; + } + .mx-home-imgs-max-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .my-home-imgs-max-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .mxn-home-imgs-max-2 { + margin-right: -0.5rem !important; + margin-left: -0.5rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-3 { + margin: 0.75rem !important; + } + .mt-home-imgs-max-3 { + margin-top: 0.75rem !important; + } + .mr-home-imgs-max-3 { + margin-right: 0.75rem !important; + } + .mb-home-imgs-max-3 { + margin-bottom: 0.75rem !important; + } + .ml-home-imgs-max-3 { + margin-left: 0.75rem !important; + } + .mx-home-imgs-max-3 { + margin-right: 0.75rem !important; + margin-left: 0.75rem !important; + } + .my-home-imgs-max-3 { + margin-top: 0.75rem !important; + margin-bottom: 0.75rem !important; + } + .mxn-home-imgs-max-3 { + margin-right: -0.75rem !important; + margin-left: -0.75rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-4 { + margin: 1rem !important; + } + .mt-home-imgs-max-4 { + margin-top: 1rem !important; + } + .mr-home-imgs-max-4 { + margin-right: 1rem !important; + } + .mb-home-imgs-max-4 { + margin-bottom: 1rem !important; + } + .ml-home-imgs-max-4 { + margin-left: 1rem !important; + } + .mx-home-imgs-max-4 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .my-home-imgs-max-4 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .mxn-home-imgs-max-4 { + margin-right: -1rem !important; + margin-left: -1rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-5 { + margin: 1.5rem !important; + } + .mt-home-imgs-max-5 { + margin-top: 1.5rem !important; + } + .mr-home-imgs-max-5 { + margin-right: 1.5rem !important; + } + .mb-home-imgs-max-5 { + margin-bottom: 1.5rem !important; + } + .ml-home-imgs-max-5 { + margin-left: 1.5rem !important; + } + .mx-home-imgs-max-5 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .my-home-imgs-max-5 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .mxn-home-imgs-max-5 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-6 { + margin: 2rem !important; + } + .mt-home-imgs-max-6 { + margin-top: 2rem !important; + } + .mr-home-imgs-max-6 { + margin-right: 2rem !important; + } + .mb-home-imgs-max-6 { + margin-bottom: 2rem !important; + } + .ml-home-imgs-max-6 { + margin-left: 2rem !important; + } + .mx-home-imgs-max-6 { + margin-right: 2rem !important; + margin-left: 2rem !important; + } + .my-home-imgs-max-6 { + margin-top: 2rem !important; + margin-bottom: 2rem !important; + } + .mxn-home-imgs-max-6 { + margin-right: -2rem !important; + margin-left: -2rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-7 { + margin: 2.5rem !important; + } + .mt-home-imgs-max-7 { + margin-top: 2.5rem !important; + } + .mr-home-imgs-max-7 { + margin-right: 2.5rem !important; + } + .mb-home-imgs-max-7 { + margin-bottom: 2.5rem !important; + } + .ml-home-imgs-max-7 { + margin-left: 2.5rem !important; + } + .mx-home-imgs-max-7 { + margin-right: 2.5rem !important; + margin-left: 2.5rem !important; + } + .my-home-imgs-max-7 { + margin-top: 2.5rem !important; + margin-bottom: 2.5rem !important; + } + .mxn-home-imgs-max-7 { + margin-right: -2.5rem !important; + margin-left: -2.5rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-8 { + margin: 3rem !important; + } + .mt-home-imgs-max-8 { + margin-top: 3rem !important; + } + .mr-home-imgs-max-8 { + margin-right: 3rem !important; + } + .mb-home-imgs-max-8 { + margin-bottom: 3rem !important; + } + .ml-home-imgs-max-8 { + margin-left: 3rem !important; + } + .mx-home-imgs-max-8 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .my-home-imgs-max-8 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .mxn-home-imgs-max-8 { + margin-right: -3rem !important; + margin-left: -3rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-9 { + margin: 3.5rem !important; + } + .mt-home-imgs-max-9 { + margin-top: 3.5rem !important; + } + .mr-home-imgs-max-9 { + margin-right: 3.5rem !important; + } + .mb-home-imgs-max-9 { + margin-bottom: 3.5rem !important; + } + .ml-home-imgs-max-9 { + margin-left: 3.5rem !important; + } + .mx-home-imgs-max-9 { + margin-right: 3.5rem !important; + margin-left: 3.5rem !important; + } + .my-home-imgs-max-9 { + margin-top: 3.5rem !important; + margin-bottom: 3.5rem !important; + } + .mxn-home-imgs-max-9 { + margin-right: -3.5rem !important; + margin-left: -3.5rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-10 { + margin: 4rem !important; + } + .mt-home-imgs-max-10 { + margin-top: 4rem !important; + } + .mr-home-imgs-max-10 { + margin-right: 4rem !important; + } + .mb-home-imgs-max-10 { + margin-bottom: 4rem !important; + } + .ml-home-imgs-max-10 { + margin-left: 4rem !important; + } + .mx-home-imgs-max-10 { + margin-right: 4rem !important; + margin-left: 4rem !important; + } + .my-home-imgs-max-10 { + margin-top: 4rem !important; + margin-bottom: 4rem !important; + } + .mxn-home-imgs-max-10 { + margin-right: -4rem !important; + margin-left: -4rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-0 { + margin: 0 !important; + } + .mt-mobile-m-0 { + margin-top: 0 !important; + } + .mr-mobile-m-0 { + margin-right: 0 !important; + } + .mb-mobile-m-0 { + margin-bottom: 0 !important; + } + .ml-mobile-m-0 { + margin-left: 0 !important; + } + .mx-mobile-m-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .my-mobile-m-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .mxn-mobile-m-0 { + margin-right: -0 !important; + margin-left: -0 !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-1 { + margin: 0.25rem !important; + } + .mt-mobile-m-1 { + margin-top: 0.25rem !important; + } + .mr-mobile-m-1 { + margin-right: 0.25rem !important; + } + .mb-mobile-m-1 { + margin-bottom: 0.25rem !important; + } + .ml-mobile-m-1 { + margin-left: 0.25rem !important; + } + .mx-mobile-m-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .my-mobile-m-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .mxn-mobile-m-1 { + margin-right: -0.25rem !important; + margin-left: -0.25rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-2 { + margin: 0.5rem !important; + } + .mt-mobile-m-2 { + margin-top: 0.5rem !important; + } + .mr-mobile-m-2 { + margin-right: 0.5rem !important; + } + .mb-mobile-m-2 { + margin-bottom: 0.5rem !important; + } + .ml-mobile-m-2 { + margin-left: 0.5rem !important; + } + .mx-mobile-m-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .my-mobile-m-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .mxn-mobile-m-2 { + margin-right: -0.5rem !important; + margin-left: -0.5rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-3 { + margin: 0.75rem !important; + } + .mt-mobile-m-3 { + margin-top: 0.75rem !important; + } + .mr-mobile-m-3 { + margin-right: 0.75rem !important; + } + .mb-mobile-m-3 { + margin-bottom: 0.75rem !important; + } + .ml-mobile-m-3 { + margin-left: 0.75rem !important; + } + .mx-mobile-m-3 { + margin-right: 0.75rem !important; + margin-left: 0.75rem !important; + } + .my-mobile-m-3 { + margin-top: 0.75rem !important; + margin-bottom: 0.75rem !important; + } + .mxn-mobile-m-3 { + margin-right: -0.75rem !important; + margin-left: -0.75rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-4 { + margin: 1rem !important; + } + .mt-mobile-m-4 { + margin-top: 1rem !important; + } + .mr-mobile-m-4 { + margin-right: 1rem !important; + } + .mb-mobile-m-4 { + margin-bottom: 1rem !important; + } + .ml-mobile-m-4 { + margin-left: 1rem !important; + } + .mx-mobile-m-4 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .my-mobile-m-4 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .mxn-mobile-m-4 { + margin-right: -1rem !important; + margin-left: -1rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-5 { + margin: 1.5rem !important; + } + .mt-mobile-m-5 { + margin-top: 1.5rem !important; + } + .mr-mobile-m-5 { + margin-right: 1.5rem !important; + } + .mb-mobile-m-5 { + margin-bottom: 1.5rem !important; + } + .ml-mobile-m-5 { + margin-left: 1.5rem !important; + } + .mx-mobile-m-5 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .my-mobile-m-5 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .mxn-mobile-m-5 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-6 { + margin: 2rem !important; + } + .mt-mobile-m-6 { + margin-top: 2rem !important; + } + .mr-mobile-m-6 { + margin-right: 2rem !important; + } + .mb-mobile-m-6 { + margin-bottom: 2rem !important; + } + .ml-mobile-m-6 { + margin-left: 2rem !important; + } + .mx-mobile-m-6 { + margin-right: 2rem !important; + margin-left: 2rem !important; + } + .my-mobile-m-6 { + margin-top: 2rem !important; + margin-bottom: 2rem !important; + } + .mxn-mobile-m-6 { + margin-right: -2rem !important; + margin-left: -2rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-7 { + margin: 2.5rem !important; + } + .mt-mobile-m-7 { + margin-top: 2.5rem !important; + } + .mr-mobile-m-7 { + margin-right: 2.5rem !important; + } + .mb-mobile-m-7 { + margin-bottom: 2.5rem !important; + } + .ml-mobile-m-7 { + margin-left: 2.5rem !important; + } + .mx-mobile-m-7 { + margin-right: 2.5rem !important; + margin-left: 2.5rem !important; + } + .my-mobile-m-7 { + margin-top: 2.5rem !important; + margin-bottom: 2.5rem !important; + } + .mxn-mobile-m-7 { + margin-right: -2.5rem !important; + margin-left: -2.5rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-8 { + margin: 3rem !important; + } + .mt-mobile-m-8 { + margin-top: 3rem !important; + } + .mr-mobile-m-8 { + margin-right: 3rem !important; + } + .mb-mobile-m-8 { + margin-bottom: 3rem !important; + } + .ml-mobile-m-8 { + margin-left: 3rem !important; + } + .mx-mobile-m-8 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .my-mobile-m-8 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .mxn-mobile-m-8 { + margin-right: -3rem !important; + margin-left: -3rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-9 { + margin: 3.5rem !important; + } + .mt-mobile-m-9 { + margin-top: 3.5rem !important; + } + .mr-mobile-m-9 { + margin-right: 3.5rem !important; + } + .mb-mobile-m-9 { + margin-bottom: 3.5rem !important; + } + .ml-mobile-m-9 { + margin-left: 3.5rem !important; + } + .mx-mobile-m-9 { + margin-right: 3.5rem !important; + margin-left: 3.5rem !important; + } + .my-mobile-m-9 { + margin-top: 3.5rem !important; + margin-bottom: 3.5rem !important; + } + .mxn-mobile-m-9 { + margin-right: -3.5rem !important; + margin-left: -3.5rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-10 { + margin: 4rem !important; + } + .mt-mobile-m-10 { + margin-top: 4rem !important; + } + .mr-mobile-m-10 { + margin-right: 4rem !important; + } + .mb-mobile-m-10 { + margin-bottom: 4rem !important; + } + .ml-mobile-m-10 { + margin-left: 4rem !important; + } + .mx-mobile-m-10 { + margin-right: 4rem !important; + margin-left: 4rem !important; + } + .my-mobile-m-10 { + margin-top: 4rem !important; + margin-bottom: 4rem !important; + } + .mxn-mobile-m-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 (min-width: 800px) { + .p-home-header-0 { + padding: 0 !important; + } + .pt-home-header-0 { + padding-top: 0 !important; + } + .pr-home-header-0 { + padding-right: 0 !important; + } + .pb-home-header-0 { + padding-bottom: 0 !important; + } + .pl-home-header-0 { + padding-left: 0 !important; + } + .px-home-header-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .py-home-header-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .p-home-header-1 { + padding: 0.25rem !important; + } + .pt-home-header-1 { + padding-top: 0.25rem !important; + } + .pr-home-header-1 { + padding-right: 0.25rem !important; + } + .pb-home-header-1 { + padding-bottom: 0.25rem !important; + } + .pl-home-header-1 { + padding-left: 0.25rem !important; + } + .px-home-header-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .py-home-header-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .p-home-header-2 { + padding: 0.5rem !important; + } + .pt-home-header-2 { + padding-top: 0.5rem !important; + } + .pr-home-header-2 { + padding-right: 0.5rem !important; + } + .pb-home-header-2 { + padding-bottom: 0.5rem !important; + } + .pl-home-header-2 { + padding-left: 0.5rem !important; + } + .px-home-header-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .py-home-header-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .p-home-header-3 { + padding: 0.75rem !important; + } + .pt-home-header-3 { + padding-top: 0.75rem !important; + } + .pr-home-header-3 { + padding-right: 0.75rem !important; + } + .pb-home-header-3 { + padding-bottom: 0.75rem !important; + } + .pl-home-header-3 { + padding-left: 0.75rem !important; + } + .px-home-header-3 { + padding-right: 0.75rem !important; + padding-left: 0.75rem !important; + } + .py-home-header-3 { + padding-top: 0.75rem !important; + padding-bottom: 0.75rem !important; + } + .p-home-header-4 { + padding: 1rem !important; + } + .pt-home-header-4 { + padding-top: 1rem !important; + } + .pr-home-header-4 { + padding-right: 1rem !important; + } + .pb-home-header-4 { + padding-bottom: 1rem !important; + } + .pl-home-header-4 { + padding-left: 1rem !important; + } + .px-home-header-4 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .py-home-header-4 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .p-home-header-5 { + padding: 1.5rem !important; + } + .pt-home-header-5 { + padding-top: 1.5rem !important; + } + .pr-home-header-5 { + padding-right: 1.5rem !important; + } + .pb-home-header-5 { + padding-bottom: 1.5rem !important; + } + .pl-home-header-5 { + padding-left: 1.5rem !important; + } + .px-home-header-5 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .py-home-header-5 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .p-home-header-6 { + padding: 2rem !important; + } + .pt-home-header-6 { + padding-top: 2rem !important; + } + .pr-home-header-6 { + padding-right: 2rem !important; + } + .pb-home-header-6 { + padding-bottom: 2rem !important; + } + .pl-home-header-6 { + padding-left: 2rem !important; + } + .px-home-header-6 { + padding-right: 2rem !important; + padding-left: 2rem !important; + } + .py-home-header-6 { + padding-top: 2rem !important; + padding-bottom: 2rem !important; + } + .p-home-header-7 { + padding: 2.5rem !important; + } + .pt-home-header-7 { + padding-top: 2.5rem !important; + } + .pr-home-header-7 { + padding-right: 2.5rem !important; + } + .pb-home-header-7 { + padding-bottom: 2.5rem !important; + } + .pl-home-header-7 { + padding-left: 2.5rem !important; + } + .px-home-header-7 { + padding-right: 2.5rem !important; + padding-left: 2.5rem !important; + } + .py-home-header-7 { + padding-top: 2.5rem !important; + padding-bottom: 2.5rem !important; + } + .p-home-header-8 { + padding: 3rem !important; + } + .pt-home-header-8 { + padding-top: 3rem !important; + } + .pr-home-header-8 { + padding-right: 3rem !important; + } + .pb-home-header-8 { + padding-bottom: 3rem !important; + } + .pl-home-header-8 { + padding-left: 3rem !important; + } + .px-home-header-8 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-home-header-8 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .p-home-header-9 { + padding: 3.5rem !important; + } + .pt-home-header-9 { + padding-top: 3.5rem !important; + } + .pr-home-header-9 { + padding-right: 3.5rem !important; + } + .pb-home-header-9 { + padding-bottom: 3.5rem !important; + } + .pl-home-header-9 { + padding-left: 3.5rem !important; + } + .px-home-header-9 { + padding-right: 3.5rem !important; + padding-left: 3.5rem !important; + } + .py-home-header-9 { + padding-top: 3.5rem !important; + padding-bottom: 3.5rem !important; + } + .p-home-header-10 { + padding: 4rem !important; + } + .pt-home-header-10 { + padding-top: 4rem !important; + } + .pr-home-header-10 { + padding-right: 4rem !important; + } + .pb-home-header-10 { + padding-bottom: 4rem !important; + } + .pl-home-header-10 { + padding-left: 4rem !important; + } + .px-home-header-10 { + padding-right: 4rem !important; + padding-left: 4rem !important; + } + .py-home-header-10 { + padding-top: 4rem !important; + padding-bottom: 4rem !important; + } +} +@media (min-width: 2880px) { + .p-home-imgs-max-0 { + padding: 0 !important; + } + .pt-home-imgs-max-0 { + padding-top: 0 !important; + } + .pr-home-imgs-max-0 { + padding-right: 0 !important; + } + .pb-home-imgs-max-0 { + padding-bottom: 0 !important; + } + .pl-home-imgs-max-0 { + padding-left: 0 !important; + } + .px-home-imgs-max-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .py-home-imgs-max-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .p-home-imgs-max-1 { + padding: 0.25rem !important; + } + .pt-home-imgs-max-1 { + padding-top: 0.25rem !important; + } + .pr-home-imgs-max-1 { + padding-right: 0.25rem !important; + } + .pb-home-imgs-max-1 { + padding-bottom: 0.25rem !important; + } + .pl-home-imgs-max-1 { + padding-left: 0.25rem !important; + } + .px-home-imgs-max-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .py-home-imgs-max-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .p-home-imgs-max-2 { + padding: 0.5rem !important; + } + .pt-home-imgs-max-2 { + padding-top: 0.5rem !important; + } + .pr-home-imgs-max-2 { + padding-right: 0.5rem !important; + } + .pb-home-imgs-max-2 { + padding-bottom: 0.5rem !important; + } + .pl-home-imgs-max-2 { + padding-left: 0.5rem !important; + } + .px-home-imgs-max-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .py-home-imgs-max-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .p-home-imgs-max-3 { + padding: 0.75rem !important; + } + .pt-home-imgs-max-3 { + padding-top: 0.75rem !important; + } + .pr-home-imgs-max-3 { + padding-right: 0.75rem !important; + } + .pb-home-imgs-max-3 { + padding-bottom: 0.75rem !important; + } + .pl-home-imgs-max-3 { + padding-left: 0.75rem !important; + } + .px-home-imgs-max-3 { + padding-right: 0.75rem !important; + padding-left: 0.75rem !important; + } + .py-home-imgs-max-3 { + padding-top: 0.75rem !important; + padding-bottom: 0.75rem !important; + } + .p-home-imgs-max-4 { + padding: 1rem !important; + } + .pt-home-imgs-max-4 { + padding-top: 1rem !important; + } + .pr-home-imgs-max-4 { + padding-right: 1rem !important; + } + .pb-home-imgs-max-4 { + padding-bottom: 1rem !important; + } + .pl-home-imgs-max-4 { + padding-left: 1rem !important; + } + .px-home-imgs-max-4 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .py-home-imgs-max-4 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .p-home-imgs-max-5 { + padding: 1.5rem !important; + } + .pt-home-imgs-max-5 { + padding-top: 1.5rem !important; + } + .pr-home-imgs-max-5 { + padding-right: 1.5rem !important; + } + .pb-home-imgs-max-5 { + padding-bottom: 1.5rem !important; + } + .pl-home-imgs-max-5 { + padding-left: 1.5rem !important; + } + .px-home-imgs-max-5 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .py-home-imgs-max-5 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .p-home-imgs-max-6 { + padding: 2rem !important; + } + .pt-home-imgs-max-6 { + padding-top: 2rem !important; + } + .pr-home-imgs-max-6 { + padding-right: 2rem !important; + } + .pb-home-imgs-max-6 { + padding-bottom: 2rem !important; + } + .pl-home-imgs-max-6 { + padding-left: 2rem !important; + } + .px-home-imgs-max-6 { + padding-right: 2rem !important; + padding-left: 2rem !important; + } + .py-home-imgs-max-6 { + padding-top: 2rem !important; + padding-bottom: 2rem !important; + } + .p-home-imgs-max-7 { + padding: 2.5rem !important; + } + .pt-home-imgs-max-7 { + padding-top: 2.5rem !important; + } + .pr-home-imgs-max-7 { + padding-right: 2.5rem !important; + } + .pb-home-imgs-max-7 { + padding-bottom: 2.5rem !important; + } + .pl-home-imgs-max-7 { + padding-left: 2.5rem !important; + } + .px-home-imgs-max-7 { + padding-right: 2.5rem !important; + padding-left: 2.5rem !important; + } + .py-home-imgs-max-7 { + padding-top: 2.5rem !important; + padding-bottom: 2.5rem !important; + } + .p-home-imgs-max-8 { + padding: 3rem !important; + } + .pt-home-imgs-max-8 { + padding-top: 3rem !important; + } + .pr-home-imgs-max-8 { + padding-right: 3rem !important; + } + .pb-home-imgs-max-8 { + padding-bottom: 3rem !important; + } + .pl-home-imgs-max-8 { + padding-left: 3rem !important; + } + .px-home-imgs-max-8 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-home-imgs-max-8 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .p-home-imgs-max-9 { + padding: 3.5rem !important; + } + .pt-home-imgs-max-9 { + padding-top: 3.5rem !important; + } + .pr-home-imgs-max-9 { + padding-right: 3.5rem !important; + } + .pb-home-imgs-max-9 { + padding-bottom: 3.5rem !important; + } + .pl-home-imgs-max-9 { + padding-left: 3.5rem !important; + } + .px-home-imgs-max-9 { + padding-right: 3.5rem !important; + padding-left: 3.5rem !important; + } + .py-home-imgs-max-9 { + padding-top: 3.5rem !important; + padding-bottom: 3.5rem !important; + } + .p-home-imgs-max-10 { + padding: 4rem !important; + } + .pt-home-imgs-max-10 { + padding-top: 4rem !important; + } + .pr-home-imgs-max-10 { + padding-right: 4rem !important; + } + .pb-home-imgs-max-10 { + padding-bottom: 4rem !important; + } + .pl-home-imgs-max-10 { + padding-left: 4rem !important; + } + .px-home-imgs-max-10 { + padding-right: 4rem !important; + padding-left: 4rem !important; + } + .py-home-imgs-max-10 { + padding-top: 4rem !important; + padding-bottom: 4rem !important; + } +} +@media (min-width: 375px) { + .p-mobile-m-0 { + padding: 0 !important; + } + .pt-mobile-m-0 { + padding-top: 0 !important; + } + .pr-mobile-m-0 { + padding-right: 0 !important; + } + .pb-mobile-m-0 { + padding-bottom: 0 !important; + } + .pl-mobile-m-0 { + padding-left: 0 !important; + } + .px-mobile-m-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .py-mobile-m-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .p-mobile-m-1 { + padding: 0.25rem !important; + } + .pt-mobile-m-1 { + padding-top: 0.25rem !important; + } + .pr-mobile-m-1 { + padding-right: 0.25rem !important; + } + .pb-mobile-m-1 { + padding-bottom: 0.25rem !important; + } + .pl-mobile-m-1 { + padding-left: 0.25rem !important; + } + .px-mobile-m-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .py-mobile-m-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .p-mobile-m-2 { + padding: 0.5rem !important; + } + .pt-mobile-m-2 { + padding-top: 0.5rem !important; + } + .pr-mobile-m-2 { + padding-right: 0.5rem !important; + } + .pb-mobile-m-2 { + padding-bottom: 0.5rem !important; + } + .pl-mobile-m-2 { + padding-left: 0.5rem !important; + } + .px-mobile-m-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .py-mobile-m-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .p-mobile-m-3 { + padding: 0.75rem !important; + } + .pt-mobile-m-3 { + padding-top: 0.75rem !important; + } + .pr-mobile-m-3 { + padding-right: 0.75rem !important; + } + .pb-mobile-m-3 { + padding-bottom: 0.75rem !important; + } + .pl-mobile-m-3 { + padding-left: 0.75rem !important; + } + .px-mobile-m-3 { + padding-right: 0.75rem !important; + padding-left: 0.75rem !important; + } + .py-mobile-m-3 { + padding-top: 0.75rem !important; + padding-bottom: 0.75rem !important; + } + .p-mobile-m-4 { + padding: 1rem !important; + } + .pt-mobile-m-4 { + padding-top: 1rem !important; + } + .pr-mobile-m-4 { + padding-right: 1rem !important; + } + .pb-mobile-m-4 { + padding-bottom: 1rem !important; + } + .pl-mobile-m-4 { + padding-left: 1rem !important; + } + .px-mobile-m-4 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .py-mobile-m-4 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .p-mobile-m-5 { + padding: 1.5rem !important; + } + .pt-mobile-m-5 { + padding-top: 1.5rem !important; + } + .pr-mobile-m-5 { + padding-right: 1.5rem !important; + } + .pb-mobile-m-5 { + padding-bottom: 1.5rem !important; + } + .pl-mobile-m-5 { + padding-left: 1.5rem !important; + } + .px-mobile-m-5 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .py-mobile-m-5 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .p-mobile-m-6 { + padding: 2rem !important; + } + .pt-mobile-m-6 { + padding-top: 2rem !important; + } + .pr-mobile-m-6 { + padding-right: 2rem !important; + } + .pb-mobile-m-6 { + padding-bottom: 2rem !important; + } + .pl-mobile-m-6 { + padding-left: 2rem !important; + } + .px-mobile-m-6 { + padding-right: 2rem !important; + padding-left: 2rem !important; + } + .py-mobile-m-6 { + padding-top: 2rem !important; + padding-bottom: 2rem !important; + } + .p-mobile-m-7 { + padding: 2.5rem !important; + } + .pt-mobile-m-7 { + padding-top: 2.5rem !important; + } + .pr-mobile-m-7 { + padding-right: 2.5rem !important; + } + .pb-mobile-m-7 { + padding-bottom: 2.5rem !important; + } + .pl-mobile-m-7 { + padding-left: 2.5rem !important; + } + .px-mobile-m-7 { + padding-right: 2.5rem !important; + padding-left: 2.5rem !important; + } + .py-mobile-m-7 { + padding-top: 2.5rem !important; + padding-bottom: 2.5rem !important; + } + .p-mobile-m-8 { + padding: 3rem !important; + } + .pt-mobile-m-8 { + padding-top: 3rem !important; + } + .pr-mobile-m-8 { + padding-right: 3rem !important; + } + .pb-mobile-m-8 { + padding-bottom: 3rem !important; + } + .pl-mobile-m-8 { + padding-left: 3rem !important; + } + .px-mobile-m-8 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-mobile-m-8 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .p-mobile-m-9 { + padding: 3.5rem !important; + } + .pt-mobile-m-9 { + padding-top: 3.5rem !important; + } + .pr-mobile-m-9 { + padding-right: 3.5rem !important; + } + .pb-mobile-m-9 { + padding-bottom: 3.5rem !important; + } + .pl-mobile-m-9 { + padding-left: 3.5rem !important; + } + .px-mobile-m-9 { + padding-right: 3.5rem !important; + padding-left: 3.5rem !important; + } + .py-mobile-m-9 { + padding-top: 3.5rem !important; + padding-bottom: 3.5rem !important; + } + .p-mobile-m-10 { + padding: 4rem !important; + } + .pt-mobile-m-10 { + padding-top: 4rem !important; + } + .pr-mobile-m-10 { + padding-right: 4rem !important; + } + .pb-mobile-m-10 { + padding-bottom: 4rem !important; + } + .pl-mobile-m-10 { + padding-left: 4rem !important; + } + .px-mobile-m-10 { + padding-right: 4rem !important; + padding-left: 4rem !important; + } + .py-mobile-m-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; +} + +p.highlight, blockquote.highlight { + background: rgba(149, 147, 150, 0.2); + border-left: 4px solid #27262b; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + padding: 0.8rem; +} +p.highlight > .highlight-title, blockquote.highlight > .highlight-title { + color: #27262b; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} + +p.highlight-title, blockquote.highlight-title { + background: rgba(149, 147, 150, 0.2); + border-left: 4px solid #27262b; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + padding: 0.8rem; +} +p.highlight-title > p:first-child, blockquote.highlight-title > p:first-child { + margin-top: 0; + margin-bottom: 0; + color: #27262b; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} + +blockquote.highlight { + margin-left: 0; + margin-right: 0; +} +blockquote.highlight > p:first-child { + margin-top: 0; +} +blockquote.highlight > p:last-child { + margin-bottom: 0; +} + +blockquote.highlight-title { + margin-left: 0; + margin-right: 0; +} +blockquote.highlight-title > p:nth-child(2) { + margin-top: 0; +} +blockquote.highlight-title > p:last-child { + margin-bottom: 0; +} + +p.important, blockquote.important { + background: rgba(149, 147, 150, 0.2); + border-left: 4px solid #27262b; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + padding: 0.8rem; +} +p.important::before, blockquote.important::before { + color: #27262b; + content: "Important"; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} +p.important > .important-title, blockquote.important > .important-title { + color: #27262b; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} + +p.important-title, blockquote.important-title { + background: rgba(149, 147, 150, 0.2); + border-left: 4px solid #27262b; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + padding: 0.8rem; +} +p.important-title > p:first-child, blockquote.important-title > p:first-child { + margin-top: 0; + margin-bottom: 0; + color: #27262b; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} + +blockquote.important { + margin-left: 0; + margin-right: 0; +} +blockquote.important > p:first-child { + margin-top: 0; +} +blockquote.important > p:last-child { + margin-bottom: 0; +} + +blockquote.important-title { + margin-left: 0; + margin-right: 0; +} +blockquote.important-title > p:nth-child(2) { + margin-top: 0; +} +blockquote.important-title > p:last-child { + margin-bottom: 0; +} + +p.note, blockquote.note { + background: rgba(44, 132, 250, 0.2); + border-left: 4px solid #183385; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + padding: 0.8rem; +} +p.note::before, blockquote.note::before { + color: #183385; + content: "Note"; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} +p.note > .note-title, blockquote.note > .note-title { + color: #183385; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} + +p.note-title, blockquote.note-title { + background: rgba(44, 132, 250, 0.2); + border-left: 4px solid #183385; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + padding: 0.8rem; +} +p.note-title > p:first-child, blockquote.note-title > p:first-child { + margin-top: 0; + margin-bottom: 0; + color: #183385; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} + +blockquote.note { + margin-left: 0; + margin-right: 0; +} +blockquote.note > p:first-child { + margin-top: 0; +} +blockquote.note > p:last-child { + margin-bottom: 0; +} + +blockquote.note-title { + margin-left: 0; + margin-right: 0; +} +blockquote.note-title > p:nth-child(2) { + margin-top: 0; +} +blockquote.note-title > p:last-child { + margin-bottom: 0; +} + +p.warning, blockquote.warning { + background: rgba(247, 126, 126, 0.2); + border-left: 4px solid #dd2e2e; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + padding: 0.8rem; +} +p.warning::before, blockquote.warning::before { + color: #dd2e2e; + content: "Warning"; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} +p.warning > .warning-title, blockquote.warning > .warning-title { + color: #dd2e2e; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} + +p.warning-title, blockquote.warning-title { + background: rgba(247, 126, 126, 0.2); + border-left: 4px solid #dd2e2e; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + padding: 0.8rem; +} +p.warning-title > p:first-child, blockquote.warning-title > p:first-child { + margin-top: 0; + margin-bottom: 0; + color: #dd2e2e; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} + +blockquote.warning { + margin-left: 0; + margin-right: 0; +} +blockquote.warning > p:first-child { + margin-top: 0; +} +blockquote.warning > p:last-child { + margin-bottom: 0; +} + +blockquote.warning-title { + margin-left: 0; + margin-right: 0; +} +blockquote.warning-title > p:nth-child(2) { + margin-top: 0; +} +blockquote.warning-title > p:last-child { + margin-bottom: 0; +} + +@media (min-width: 50rem) { + #main-header { + position: sticky; + top: 0; + z-index: 999; + } +} +.text-primary-900 { + color: #5A8AB6; +} + +.home-body { + padding: 0; +} +.home-body .home { + display: flex; + flex-direction: column; + justify-content: start; + align-items: center; + background-color: #293239; + color: rgba(255, 255, 255, 0.7411764706); + width: 100%; + height: 100%; +} +.home-body .home a { + color: #A8C7FF; + text-decoration: underline; + text-decoration-color: #A8C7FF; +} +.home-body .home a:hover { + text-decoration-color: #A8C7FF; +} +.home-body .home .text-primary-400 { + color: #4286FF; +} +.home-body .home .white-87 { + color: rgba(255, 255, 255, 0.8705882353); +} +.home-body .home .introduction { + background-image: url("../../assets/images/home/bg-landing.png"); + background-repeat: repeat; + display: flex; + flex-direction: column; + justify-content: start; + height: 100%; + width: 100%; +} +@media (min-width: 66.5rem) { + .home-body .home .introduction { + height: 100vh; + } +} +.home-body .home .introduction .header { + display: flex; + flex-direction: column; + align-items: center; + justify-content: space-around; + gap: 28px; + padding: 0 5rem 28px; + background-color: #293239; + box-shadow: 0 1px 12px rgba(255, 255, 255, 0.5); +} +@media (min-width: 800px) { + .home-body .home .introduction .header { + height: 96px; + padding-bottom: 0; + flex-direction: row; + } +} +.home-body .home .introduction .header .site-header { + flex-shrink: 0; + height: fit-content; + width: fit-content; + border: none; + align-items: end; +} +@media (min-width: 800px) { + .home-body .home .introduction .header .site-header { + align-items: center; + } +} +.home-body .home .introduction .header .site-header img { + width: 140px; + height: 41px; +} +.home-body .home .introduction .header .main-header { + display: flex; + align-items: center; + justify-content: space-between; + background-color: #293239; + border: none; + gap: 28px; + flex-grow: 1; + flex-direction: column; + height: inherit; + padding: 0; +} +@media (min-width: 800px) { + .home-body .home .introduction .header .main-header { + flex-direction: row; + } +} +.home-body .home .introduction .header .main-header .search { + display: flex; + height: 48px; + max-height: 48px; + width: auto; + min-width: 243px; + padding: 0; + justify-content: center; + position: static; +} +@media (min-width: 800px) { + .home-body .home .introduction .header .main-header .search { + min-width: 194px; + } +} +.home-body .home .introduction .header .main-header .search .search-input-wrap { + position: relative; + top: 0; + width: 100%; + max-width: 33.5rem; + border-radius: 4px; + box-shadow: none; + height: 100%; +} +.home-body .home .introduction .header .main-header .search .search-input-wrap .search-input { + font-size: 0.875rem; + padding-left: 2.5rem; + background-color: transparent; + border: solid 1px rgba(255, 255, 255, 0.7411764706); + border-radius: 4px; + color: white; +} +.home-body .home .introduction .header .main-header .search .search-input-wrap .search-label { + padding-left: 1rem; +} +.home-body .home .introduction .header .main-header .search .search-input-wrap .search-label > svg { + color: rgba(255, 255, 255, 0.7411764706); +} +.home-body .home .introduction .header .main-header .search .search-results { + left: auto; + background-color: #293239; + box-shadow: 0 1px 12px rgba(255, 255, 255, 0.5); + width: -webkit-fill-available; + min-width: 243px; + max-width: 243px; + max-height: calc(100vh - 4rem); + top: 128px; +} +@media (min-width: 800px) { + .home-body .home .introduction .header .main-header .search .search-results { + top: 48px; + min-width: 194px; + max-width: 33.5rem; + max-height: calc(100vh - 200%); + } +} +.home-body .home .introduction .header .main-header .header-custom-main { + display: flex; + column-gap: 28px; + color: rgba(255, 255, 255, 0.7411764706); +} +.home-body .home .introduction .header .main-header .header-custom-main .select { + border-style: none; + background-color: transparent; + color: inherit; +} +.home-body .home .introduction .header .main-header .header-custom-main .select > option { + background-color: #293239; + color: inherit; +} +.home-body .home .introduction .header .main-header .header-custom-main .github-div { + flex-shrink: 0; +} +.home-body .home .introduction .header .main-header .header-custom-main .github-div > a { + display: flex; + align-items: center; +} +.home-body .home .introduction .header .main-header .header-custom-main .docs-div { + display: flex; + justify-content: center; + align-items: center; + border: solid 1px rgba(255, 255, 255, 0.7411764706); + border-radius: 4px; + width: 80px; + height: 40px; + font-size: 16px; +} +.home-body .home .introduction .header .main-header .header-custom-main > a { + text-decoration: none; + color: rgba(255, 255, 255, 0.7411764706); +} +.home-body .home .introduction .landing { + display: flex; + flex-direction: column; + row-gap: 28px; + align-items: center; + height: calc(100% - 226.5px); +} +@media (min-width: 800px) { + .home-body .home .introduction .landing { + height: calc(100% - 96px); + } +} +@media (min-width: 66.5rem) { + .home-body .home .introduction .landing { + justify-content: space-around; + flex-direction: row; + } +} +.home-body .home .introduction .landing .text { + display: flex; + flex-direction: column; + justify-content: center; + align-items: inherit; + padding: 28px 28px 0; +} +@media (min-width: 66.5rem) { + .home-body .home .introduction .landing .text { + max-width: 50%; + } +} +.home-body .home .introduction .landing .text > h4 { + align-self: start; + margin: 0; +} +.home-body .home .introduction .landing .text > p { + color: #4286FF; +} +.home-body .home .introduction .landing .text .home-btn { + font-size: 14px; + color: #FFF; + background-color: #2876FF; + height: 42px; + width: 148px; + align-self: start; +} +.home-body .home .introduction .landing .text .home-btn:hover { + background-color: #1A51C8; +} +.home-body .home .introduction .landing .banner { + display: flex; + justify-content: center; + flex-shrink: 1; + padding: 0 28px; +} +@media (min-width: 66.5rem) { + .home-body .home .introduction .landing .banner { + max-width: fit-content; + } +} +.home-body .home .top-content { + display: flex; + flex-direction: column; + width: 80%; +} +.home-body .home .custom-content { + display: flex; + flex-direction: row; + column-gap: 28px; + width: 80%; +} +.home-body .home .custom-content .code-icon { + width: 72px; + height: 72px; + position: absolute; + transform: translate(-100px, 12px); +} +.home-body .home .custom-content .code-icon-container { + display: flex; + flex-direction: column; + min-width: 72px; +} +@media (min-width: 2880px) { + .home-body .home .custom-content .code-icon-container { + display: none; + } +} +.home-body .home .custom-content .main-content { + display: flex; + flex-direction: column; +} +.home-body .home .custom-content .main-content .section-text { + display: flex; + flex-direction: column; + flex-grow: 1; + flex-shrink: 0; +} +.home-body .home .custom-content .main-content .section-text > h1 { + font-weight: 600; +} +.home-body .home .custom-content .main-content .link-div { + display: flex; + flex-direction: row; + flex-grow: 1; + flex-shrink: 0; + margin-top: 82px; + margin-bottom: 124px; + transform: translateX(-150px); +} +@media (min-width: 375px) { + .home-body .home .custom-content .main-content .link-div { + transform: translateX(-100px); + } +} +@media (min-width: 800px) { + .home-body .home .custom-content .main-content .link-div { + transform: translateX(0); + } +} +.home-body .home .custom-content .main-content .link-div .link-img { + display: flex; + flex-shrink: 0; + align-items: start; +} +.home-body .home .custom-content .main-content .link-div .link-img > img { + width: 100%; + max-width: 168px; + aspect-ratio: 1/1; +} +.home-body .home .custom-content .main-content .link-div .link-texts { + display: flex; + flex-direction: column; + flex-shrink: 1; + flex-grow: 1; +} +.home-body .home .custom-content .main-content .link-div .link-texts > h2 { + display: flex; + flex-direction: column; + justify-content: center; + min-height: 168px; + font-weight: 600; + color: #75A7FF; + margin: 0; +} +.home-body .home .custom-content .main-content .productivity-section { + display: flex; + flex-direction: column; +} +.home-body .home .custom-content .main-content .productivity-section .productivity-img-container { + display: flex; + align-items: center; + height: 38.9105058366vw; + max-height: 1119px; +} +@media (min-width: 2880px) { + .home-body .home .custom-content .main-content .productivity-section .productivity-img-container { + width: calc(80vw - 122px); + justify-content: center; + } +} +.home-body .home .custom-content .main-content .productivity-section .productivity-img-container > img { + max-width: 2888px; + width: 100%; + position: absolute; + left: 0; + aspect-ratio: 2880/1119; +} +@media (min-width: 2880px) { + .home-body .home .custom-content .main-content .productivity-section .productivity-img-container > img { + position: static; + } +} +.home-body .home .custom-content .main-content .productivity-section .productivity-img-container .productivity-bottom { + display: flex; + flex-direction: column; + justify-items: start; + flex-shrink: 0; + flex-grow: 1; +} +.home-body .home .custom-content .main-content .performance-section { + display: flex; + flex-direction: column; +} +.home-body .home .custom-content .main-content .performance-section .performance-img-container { + display: flex; + align-items: center; + height: 44.0528634361vw; + max-height: 1268px; +} +@media (min-width: 2880px) { + .home-body .home .custom-content .main-content .performance-section .performance-img-container { + width: calc(80vw - 122px); + justify-content: center; + } +} +.home-body .home .custom-content .main-content .performance-section .performance-img-container > img { + max-width: 2888px; + width: 100%; + position: absolute; + left: 0; + aspect-ratio: 2888/1268; +} +@media (min-width: 2880px) { + .home-body .home .custom-content .main-content .performance-section .performance-img-container > img { + position: static; + } +} +.home-body .home .custom-content .main-content .performance-section .performance-bottom { + display: flex; + flex-grow: 1; + flex-shrink: 0; + flex-direction: column; + justify-items: start; +} +.home-body .home .custom-content .main-content .performance-section .performance-bottom > a { + align-self: start; +} +.home-body .home .custom-content .main-content .components-section { + display: flex; + flex-direction: column; +} +.home-body .home .custom-content .main-content .components-section .components-img-container { + display: flex; + align-items: center; + height: 44.0528634361vw; + max-height: 1268px; +} +@media (min-width: 2880px) { + .home-body .home .custom-content .main-content .components-section .components-img-container { + width: calc(80vw - 122px); + justify-content: center; + } +} +.home-body .home .custom-content .main-content .components-section .components-img-container > img { + max-width: 2888px; + width: 100%; + position: absolute; + left: 0; + aspect-ratio: 2888/1268; +} +@media (min-width: 2880px) { + .home-body .home .custom-content .main-content .components-section .components-img-container > img { + position: static; + } +} +.home-body .home .custom-content .main-content .addons-section { + display: flex; + flex-direction: column; +} +.home-body .home .custom-content .main-content .addons-section .addons-img-container { + display: flex; + align-items: center; + height: 44.0528634361vw; + max-height: 1268px; +} +@media (min-width: 2880px) { + .home-body .home .custom-content .main-content .addons-section .addons-img-container { + width: calc(80vw - 122px); + justify-content: center; + } +} +.home-body .home .custom-content .main-content .addons-section .addons-img-container > img { + max-width: 2888px; + width: 100%; + position: absolute; + left: 0; + aspect-ratio: 2888/1268; +} +@media (min-width: 2880px) { + .home-body .home .custom-content .main-content .addons-section .addons-img-container > img { + position: static; + } +} +.home-body .home .footer-img-container { + display: flex; + align-items: center; + height: 13.3333333333vw; + max-height: 512px; + width: 100%; +} +.home-body .home .footer-img-container > img { + max-width: 3840px; + width: 100%; + aspect-ratio: 3840/512; +} +.home-body .home .home-footer { + display: flex; + flex-direction: column; + align-items: center; + justify-content: space-between; + width: 100%; + padding: 28px 5rem; + text-align: justify; + border-top: solid 1px rgba(255, 255, 255, 0.7411764706); +} +@media (min-width: 66.5rem) { + .home-body .home .home-footer { + flex-direction: row; + height: 74px; + padding: 0 5rem; + } +} +.home-body .home .home-footer > img { + width: 140px; + height: 41px; +} +.home-body .home .home-footer > div { + display: flex; + flex-direction: row; + justify-content: space-between; + align-items: center; + width: 200px; +} +.home-body .home .home-footer > div > a { + color: rgba(255, 255, 255, 0.8588235294); + display: flex; + align-items: center; + text-decoration: none; +} + +@media (min-width: 50rem) { + .breadcrumbs { + margin-top: -1rem; + } +} +.breadcrumbs ol { + padding-left: 0; + margin-bottom: 0.75rem; + margin-top: 0; + list-style: none; +} +.breadcrumbs li { + display: table-cell; + font-size: 0.6875rem !important; +} +@media (min-width: 31.25rem) { + .breadcrumbs li { + font-size: 0.75rem !important; + } +} +.breadcrumbs li::before { + display: none; +} +.breadcrumbs li::after { + display: inline-block; + margin-right: 0.5rem; + margin-left: 0.5rem; + color: #959396; + content: "/"; +} +.breadcrumbs li:last-child::after { + content: ""; +} + +@media (min-width: 50rem) { + .breadcrumbs { + margin-top: -1rem; + } +} +.breadcrumbs ol { + padding-left: 0; + margin-bottom: 0.75rem; + list-style: none; +} +.breadcrumbs li { + display: table-cell; + font-size: 0.6875rem !important; +} +@media (min-width: 31.25rem) { + .breadcrumbs li { + font-size: 0.75rem !important; + } +} +.breadcrumbs li::before { + display: none; +} +.breadcrumbs li::after { + display: inline-block; + margin-right: 0.5rem; + margin-left: 0.5rem; + color: #959396; + content: "/"; +} +.breadcrumbs li:last-child::after { + content: ""; +} + +.btn:focus { + display: none; +} + +a:not([class]) { + text-decoration: underline; + text-decoration-color: #44434d; + text-underline-offset: 2px; +} +a:not([class]):hover { + text-decoration-color: rgba(138, 178, 210, 0.2392156863); +} + +.nav-list .nav-list-item .nav-list-expander { + color: rgba(255, 255, 255, 0.7411764706); +} +.nav-list .nav-list-item .nav-list-link { + color: rgba(255, 255, 255, 0.7411764706); + font-weight: 400; + font-size: 1rem; +} +.nav-list .nav-list-item .nav-list-link.active { + color: rgba(255, 255, 255, 0.6); + background-image: linear-gradient(-90deg, #1d1d1d 0%, rgba(29, 29, 29, 0.8) 80%, rgba(29, 29, 29, 0) 100%) !important; + font-weight: 500; + font-size: 1rem; +} + +.header-custom-main { + display: flex; + place-content: end; + column-gap: 10px; + margin-right: 33px; +} +.header-custom-main .toggle-theme { + cursor: pointer; +} +.header-custom-main .select { + width: 65px; + border-style: none; + background: transparent; + color: rgba(255, 255, 255, 0.7411764706); +} +.header-custom-main .select option { + background-color: #27262b; +} +.header-custom-main .github-div { + display: flex; + align-items: center; +} +.header-custom-main .github-div > a { + display: flex; + align-items: center; +} + +.o-tab { + overflow: hidden; + padding-bottom: 6px; + /* Style the buttons that are used to open the tab content */ + /* Change background color of buttons on hover */ + /* Create an active/current tablink class */ +} +.o-tab button { + background-color: inherit; + float: left; + border: none; + outline: none; + cursor: pointer; + padding: 12px 16px; + transition: 0.3s; + font-size: 0.8em; + color: rgba(255, 255, 255, 0.7411764706); +} +.o-tab button:hover { + background-color: white; + border-bottom: 2px solid rgba(138, 178, 210, 0.2392156863); +} +.o-tab button.active { + border-bottom: 2px solid #1464A5; +} + +/* Style the tab content */ +.o-tabcontent { + display: none; + padding: 6px 12px; + -webkit-animation: fadeEffect 1s; + animation: fadeEffect 1s; +} + +.o-component-container .list__item { + padding-right: 0; +} +.o-component-container .list__item .archive__item-excerpt { + margin-top: 0; + font-size: 0.75em; +} + +.mdl-data-table td[required] p.first:after { + content: " *"; +} + +.attributes-list { + overflow: hidden; +} +.attributes-list li { + display: inline-block; + width: 50%; + margin-bottom: 0.25em; + font-size: 18px; +} + +@media (min-width: 66.5rem) { + .sidebar__right { + position: fixed; + top: 64px; + right: 0px; + max-height: calc(100% - 112px); + min-height: fit-content; + width: 360px; + padding-bottom: 20px; + border: 1px solid #44434d; + border-radius: 4px; + overflow: auto; + background-color: #27262b; + z-index: 999; + } +} + +.toc { + letter-spacing: 1px; +} +.toc .nav__title { + margin: 0; + cursor: pointer; + font-size: 1rem !important; + color: #F1F6FA; + background-color: #8AB2D2; + padding: 20px 14px 8px 14px; +} +@media (min-width: 31.25rem) { + .toc .nav__title { + font-size: 1.125rem !important; + } +} +@media (min-width: 50rem) { + .toc .nav__title { + font-size: 0.875rem !important; + } +} +@media (min-width: 50rem) and (min-width: 31.25rem) { + .toc .nav__title { + font-size: 1rem !important; + } +} + +.toc__menu { + font-size: 1rem !important; + margin: 0; + padding: 0; + width: 100%; + list-style: none; +} +@media (min-width: 31.25rem) { + .toc__menu { + font-size: 1.125rem !important; + } +} +@media (min-width: 50rem) { + .toc__menu { + font-size: 0.875rem !important; + } +} +@media (min-width: 50rem) and (min-width: 31.25rem) { + .toc__menu { + font-size: 1rem !important; + } +} +.toc__menu li::before { + content: "" !important; +} +.toc__menu a { + text-decoration: none; + color: rgba(255, 255, 255, 0.7411764706); +} +.toc__menu a.active { + color: rgba(255, 255, 255, 0.6); + font-weight: 500; +} +.toc__menu li ul > li a { + padding-top: 0.2rem; + border: none; + text-transform: none; +} + +@media (min-width: 66.5rem) { + .toc__menu.collapsed { + display: none; + } + .toc.collapsed { + position: relative; + bottom: 14px; + } + .nav__title.collapsed { + height: 100%; + font-size: 15px !important; + cursor: pointer; + } + .sidebar__right.collapsed { + padding-bottom: 0px; + width: auto; + transform: rotate(270deg); + transform-origin: bottom right; + top: 34px; + height: 30px; + overflow: hidden; + color: #F1F6FA; + } +} +.faq-posts .panel-default .panel-heading { + color: #eee; + background-color: #0c0c0c; + border-color: #222; + border-bottom: 0; + padding: 10px 30px; + border-bottom: 1px solid transparent; + border-top-left-radius: 3px; + border-top-right-radius: 3px; + cursor: pointer; +} +.faq-posts .panel-default .panel-title { + margin-top: 0; + margin-bottom: 0; + font-size: 16px; + color: inherit; +} +.faq-posts .panel-body { + padding: 15px; + font-size: 14px; +} +.faq-posts .panel { + margin-bottom: 0; + border-radius: 4px; + background-color: #000; + border: 1px solid transparent; +} +.faq-posts .collapse { + display: none; +} +.faq-posts .collapse.in { + display: block; +} +.faq-posts .collapsing { + position: relative; + height: 0; + overflow: hidden; + -webkit-transition-property: height, visibility; + transition-property: height, visibility; + -webkit-transition-duration: 0.35s; + transition-duration: 0.35s; + -webkit-transition-timing-function: ease; + transition-timing-function: ease; +} + +.multicolumn { + display: flex; +} + +.toggle-tree-btn { + all: unset; + margin-bottom: 10px; + align-self: flex-end; + position: absolute; + top: 8px; + right: 8px; + cursor: pointer; +} + +.multicolumnleft { + flex: 1; + max-width: 100%; + overflow-x: auto; + padding: 0 40px 0 0; + box-sizing: border-box; + position: relative; +} + +.multicolumnnopadding { + flex: 1; + max-width: 100%; + overflow-x: auto; + padding: 0 0 0 0; + box-sizing: border-box; +} + +.multicolumnright { + box-sizing: border-box; + border-left: 1px solid #2e2e2e; + transition: width 0.3s ease; + overflow-x: auto; +} +.multicolumnright.collapsed { + width: 0; + overflow: hidden; + padding: 0; + border-left: none; + display: none; +} + +.verticalDivider { + border-left: 1px solid #0f0f0f; + padding-right: 10px; + margin-left: 10px; +} + +.jstreeloader ul > li::before { + content: ""; +} + +a.jstree-anchor.jstree-hovered { + color: #515151; +} +a.jstree-anchor.jstree-hovered i { + filter: invert(26%) sepia(0%) saturate(28%) hue-rotate(162deg) brightness(94%) contrast(85%); +} + +a.jstree-anchor.jstree-clicked { + color: #494949; +} +a.jstree-anchor.jstree-clicked i { + filter: invert(26%) sepia(0%) saturate(28%) hue-rotate(162deg) brightness(94%) contrast(85%); +} + +i.jstree-icon { + filter: invert(89%) sepia(0%) saturate(0%) hue-rotate(174deg) brightness(84%) contrast(87%); +} + +@media (min-width: 50rem) and ((max-width: 66.5rem)) { + #top.main { + max-width: none; + margin-left: 16.5rem; + } +} +@media (min-width: 66.5rem) { + body > div.side-bar { + min-width: auto; + width: auto; + } + #top.main { + max-width: none; + margin-left: calc(16.5rem + 1px); + } +} +@media (min-width: 50rem) { + div.side-bar { + width: 16.5rem; + } +} +table { + table-layout: auto; + width: 120px; +} + +.menu-card-container { + display: grid; + grid-gap: 32px; + grid-template-columns: repeat(auto-fit, minmax(auto, 368px)); + grid-auto-rows: minmax(auto, 208px); + justify-content: center; +} +.menu-card-container a { + text-decoration: none; + color: rgba(255, 255, 255, 0.7411764706); +} +.menu-card-container a .menu-card { + display: flex; + flex-direction: column; + justify-content: space-between; + height: 100%; + border-radius: 2px; + border: 1px solid rgba(255, 255, 255, 0.1215686275); +} +.menu-card-container a .menu-card .image-container { + display: flex; + justify-content: center; + align-items: center; + height: 128px; + border-bottom: 1px solid rgba(255, 255, 255, 0.1215686275); + background-color: #31363A; +} +.menu-card-container a .menu-card .bottom-image { + height: 80px; + vertical-align: middle; + text-align: start; + padding: 28px 18px; + margin: 0; + overflow: hidden; + text-overflow: ellipsis; + font-weight: 500; +} +.menu-card-container a .menu-card .text-container { + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + height: 88px; + font-weight: 500; + border-bottom: 1px solid rgba(255, 255, 255, 0.1215686275); +} +.menu-card-container a .menu-card .text-container > p { + width: 100%; + display: flex; + align-items: center; + justify-content: center; + text-align: start; + padding: 10px 18px 0 18px; + height: 100%; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + color: rgba(255, 255, 255, 0.8705882353); +} +.menu-card-container a .menu-card .bottom-title { + height: 118px; + text-overflow: ellipsis; + overflow: hidden; + text-align: start; + margin: 0; + padding: 20px 18px; +} +.menu-card-container a:hover .menu-card .bottom-title { + background-color: #00345f; +} +.menu-card-container a:hover .menu-card .bottom-image { + background-color: #012644; +} + +.menu-card-container:has(.image-container) { + grid-template-columns: repeat(auto-fit, minmax(auto, 272px)); + grid-auto-rows: minmax(208px, auto); +} + +.hidden { + display: none; +} + +.menuitem-badge { + background: linear-gradient(-180deg, #8AB2D2 0, rgba(138, 178, 210, 0.2392156863) 100%); + color: #000; + padding: 2px 4px; + vertical-align: middle; + border-radius: 3px; + font-weight: 700; + font-size: 11px; + position: relative; + top: -1px; +} + +img[alt="Alt text"] { + width: 100%; +} + +/*# sourceMappingURL=just-the-docs-dark.css.map */ \ No newline at end of file diff --git a/v3/assets/css/just-the-docs-dark.css.map b/v3/assets/css/just-the-docs-dark.css.map new file mode 100644 index 0000000..879be6f --- /dev/null +++ b/v3/assets/css/just-the-docs-dark.css.map @@ -0,0 +1 @@ +{"version":3,"sourceRoot":"","sources":["../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/vendor/OneLightJekyll/syntax.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/vendor/OneDarkJekyll/syntax.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/vendor/normalize.scss/normalize.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/base.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/color_schemes/dark.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/support/mixins/_typography.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/support/mixins/_layout.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/support/_variables.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/layout.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/content.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/navigation.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/typography.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/labels.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/buttons.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/support/mixins/_buttons.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/search.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/tables.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/code.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/utilities/_colors.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/utilities/_layout.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/utilities/_typography.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/utilities/_lists.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/utilities/_spacing.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/print.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/skiptomain.scss","just-the-docs-dark.scss","../../_sass/custom/custom.scss","../../_sass/custom/setup.scss"],"names":[],"mappings":";AAEA;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;EACA;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;EESJ;IAEI;IACA,WD6EY;IC5EZ,aDwEW;;;ADrFX;EESJ;IAUI;AAAA;AAAA;AAAA;;;;AAQJ;EFhBE,eCuDK;EDtDL,cCsDK;ECpCL,aDoCK;ECnCL,gBDmCK;;ADlEH;EE2BJ;IFZI,eCqDG;IDpDH,cCoDG;;;ADpEH;EE2BJ;IAOI,aDkCG;ICjCH,gBDiCG;;;;AC7BP;EACE;EACA;EACA,kBDtBY;;ADpBV;EEuCJ;IAMI;IACA;IACA,QD2CY;IC1CZ,kBD5BU;IC6BV;;;AAGF;EACE;;AFrDA;EEoDF;IAII;;;;AAKN;AAAA;AAAA;EAGE;;AFhEE;EE6DJ;AAAA;AAAA;IAMI,ODiBQ;;;;ACbZ;EACE;;AAEA;EACE;;AF3EA;EEuEJ;IAQI;IACA,aDVG;ICWH,gBDfG;ICgBH;IACA;;;;AAIJ;EACE;EACA,YDCc;ECAd;;AF1FE;EEuFJ;IAMI,QDHY;ICIZ,YDJY;ICKZ;;;;AAIJ;EFxFE,eCuDK;EDtDL,cCsDK;ECoCL;EACA;EACA;EACA;EACA,aDzCK;EC0CL,gBD1CK;EC2CL,ODvFY;EFMZ;;AC3BE;EEmGJ;IFpFI,eCqDG;IDpDH,cCoDG;;;ADpEH;EEmGJ;IHrEI;IACA,aEpCuB;;;ADKvB;EEmGJ;IAaI,aDhDG;ICiDH,gBDjDG;;;;ACsDL;EACE;EACA;EACA;EACA;EACA;EACA;;;AAIJ;EACE;EACA;EACA,SDjEK;ECkEL;;;AFpIE;EEwIF;IACE;;;AAIJ;EACE;;;AAQF;EACE;;;AASF;EACE;EACA,gBD1FM;EC2FN;;AFnKE;EEgKJ;IAMI;IACA;;;;AAMJ;EFlKE,eCuDK;EDtDL,cCsDK;EC8GL;EACA;EACA;EACA,aDjHK;ECkHL,gBDlHK;ECmHL,ODrKY;EFrBZ;;ACKE;EE6KJ;IF9JI,eCqDG;IDpDH,cCoDG;;;ADpEH;EE6KJ;IH/KI;;;ACEA;EE6KJ;IAYI;IACA;;;;AAIJ;EACE,OD5HK;EC6HL,QD7HK;EC8HL,ODpKS;;;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;;;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;;;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;;;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;;;AClBF;EACE,kBlBuBY;;;AkBtBb;EACG;EACA;EACA,elB4EY;EkB3EZ;EACA;;AAEA;EACE,OlBcQ;EkBbR;EACA;EACA;EACA;EACA;;;AAIN;EACI;EACA;EACA,elB2DY;EkB1DZ;EACA;;AACA;EACE;EACA;EACA,OlBJQ;EkBKR;EACA;EACA;EACA;EACA;;;AAIN;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;AAIJ;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;AAIJ;EACI;EACA;EACA,elBeY;EkBdZ;EACA;;AAEA;EACI,OlB/CM;EkBgDN;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACE,OlBzDQ;EkB0DR;EACA;EACA;EACA;EACA;;;AAIN;EACI;EACA;EACA,elBZY;EkBaZ;EACA;;AACA;EACE;EACA;EACA,OlB3EQ;EkB4ER;EACA;EACA;EACA;EACA;;;AAIN;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;AAIJ;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;AAIJ;EACI;EACA;EACA,elBxDY;EkByDZ;EACA;;AAEA;EACI,OlB1GG;EkB2GH;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACE,OlBpHK;EkBqHL;EACA;EACA;EACA;EACA;;;AAIN;EACI;EACA;EACA,elBnFY;EkBoFZ;EACA;;AACA;EACE;EACA;EACA,OlBtIK;EkBuIL;EACA;EACA;EACA;EACA;;;AAIN;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;AAIJ;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;AAIJ;EACI;EACA;EACA,elB/HY;EkBgIZ;EACA;;AAEA;EACI,OlBrKE;EkBsKF;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACE,OlB/KI;EkBgLJ;EACA;EACA;EACA;EACA;;;AAIN;EACI;EACA;EACA,elB1JY;EkB2JZ;EACA;;AACA;EACE;EACA;EACA,OlBjMI;EkBkMJ;EACA;EACA;EACA;EACA;;;AAIN;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;AAIJ;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;ACzRJ;EACE;IACE;IACA;IACA;;;AAKJ;EAMI,OCNe;;;ADWnB;EACE;;AAEA;EACE;EACA;EACA;EACA;EACA,kBCbc;EDcd;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;ApB7CF;EoBsCA;IAUI;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA,kBCxDU;EDyDV;;ApB3DJ;EoBmDE;IAWI;IACA;IACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;ApBxEN;EoBmEI;IAQI;;;AAGF;EACE;EACA;;AAIJ;EACE;EACA;EACA;EACA,kBCtFQ;EDuFR;EACA;EACA;EACA;EACA;EACA;;ApB9FN;EoBoFI;IAaI;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ApB5GR;EoBoGM;IAWI;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAEA;EACE;;AAKN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ApBrJV;EoB6IQ;IAWI;IACA;IACA;IACA;;;AAKN;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAEA;EACE,kBCzKE;ED0KF;;AAIJ;EACE;;AAEA;EACE;EACA;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;;AAMR;EACE;EACA;EACA;EACA;EACA;;ApBjNJ;EoB4ME;IAQI;;;ApBpNN;EoB4ME;IAYI;IACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;ApBjON;EoB4NI;IAQI;;;AAGF;EACE;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAKN;EACE;EACA;EACA;EACA;;ApBlQN;EoB8PI;IAOI;;;AAOR;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;ApBlSJ;EoB+RE;IAMI;;;AAIJ;EACE;EACA;;AAGA;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAKJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;ApBjUN;EoB0TI;IAUI;;;ApBpUR;EoB0TI;IAcI;;;AAGF;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAIJ;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAKN;EACE;EACA;;AAEA;EACE;EACA;EACA;EACA;;ApBjXR;EoB6WM;IAOI;IACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;ApB7XV;EoBiYU;IACE;;;AAIJ;EACE;EACA;EACA;EACA;EACA;;AAKN;EACE;EACA;;AAEA;EACE;EACA;EACA;EACA;;ApBxZR;EoBoZM;IAOI;IACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;ApBpaV;EoBwaU;IACE;;;AAKN;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAKN;EACE;EACA;;AAEA;EACE;EACA;EACA;EACA;;ApBncR;EoB+bM;IAOI;IACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;ApB/cV;EoBmdU;IACE;;;AAMR;EACE;EACA;;AAEA;EACE;EACA;EACA;EACA;;ApBleR;EoB8dM;IAOI;IACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;ApB9eV;EoBkfU;IACE;;;AAQZ;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ApBjhBF;EoBygBA;IAWI;IACA;IACA;;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;;ApBziBN;EoBijBJ;IAEI;;;AAGF;EACE;EACA,enBvfG;EmBwfH;EACA;;AAGF;EACE;ErBnkBF;;ACKE;EoB6jBF;IrB/jBE;;;AqBmkBA;EACE;;AAGF;EACE;EACA,cnBvgBC;EmBwgBD,anBxgBC;EmBygBD,OnBzjBQ;EmB0jBR;;AAIA;EACE;;;ApB/kBJ;EoBslBJ;IAEI;;;AAGF;EACE;EACA,enB5hBG;EmB6hBH;;AAGF;EACE;ErBvmBF;;ACKE;EoBimBF;IrBnmBE;;;AqBumBA;EACE;;AAGF;EACE;EACA,cnB3iBC;EmB4iBD,anB5iBC;EmB6iBD,OnB7lBQ;EmB8lBR;;AAIA;EACE;;;AAQR;EACE;;;AAIF;EACE;EACA,uBnBhnBY;EmBinBZ;;AAEA;EAMI,uBC9oBgB;;;ADupBlB;EAMI,OC3pBG;;AD+pBP;EAMI,OCrqBG;EDwqBL;EAEA,WnBpqBQ;;AmBsqBR;EAMI,OCjrBC;EDkrBD;EAGF;EACA,WnBjrBM;;;AmBwrBd;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;EAOE,OCltBK;;ADotBL;EACE;;AAKN;EACE;EACA;;AAEA;EACE;EACA;;;AAMN;EACE;EACA;AAEA;AAoBA;AAaA;;AAhCA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAOE,OC1vBK;;AD+vBT;EAOI;EACA;;AAKJ;EAMI;;;AAKN;AACA;EACE;EACA;EACA;EACA;;;AAIA;EACE;;AAEA;EACE;EACA;;;AAUE;EACE;;;AAQV;EACE;;AAEA;EACE;EACA;EACA;EACA;;;ApB9zBA;EoBk0BJ;IAGI;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,kBnB3zBU;ImB4zBV;;;;AAIJ;EACE;;AAEA;EACE;EACA;ErBt0BF;EqBm1BI,OCx2BY;EDy2BZ,kBC72Ba;EDg3Bf;;ApB12BA;EoBu1BF;IrBj0BE;;;ACtBA;EoBu1BF;IrB50BA;;;ACXE;EoBu1BF;IrBz0BE;;;;AqBg2BJ;ErB31BE;EqBm2BA;EACA;EACA;EACA;;ApBz3BE;EoB82BJ;IrBx1BI;;;ACtBA;EoB82BJ;IrBn2BE;;;ACXE;EoB82BJ;IrBh2BI;;;AqB62BF;EACE;;AAGF;EACE;EAOE,OCx4BK;;AD24BP;EAOI,OCj5BG;EDo5BL;;AAIJ;EACE;EACA;EACA;;;AAMJ;EACE;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;IACA;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;IACA;IAOE,OCj8BY;;;AD28Bd;EAQI;EACA;EACA;EAIF;EAEA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAIJ;EACE;EACA;;AAGF;EACE;EACA;EAOE;EAGF;;AAMF;EACE;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIJ;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EAOE;EAGF;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;;;AAIJ;EAOI;EAGF;EACA;;;AAIF;EACE;;;AAGF;EAEQ;;AACI;EACI;;;AAIhB;EAEQ;;AACA;EACI;;;AAKZ;EAKQ;;;AAKR;EACE;IACE;IACA;;;AAIJ;EACE;IACE;IACA;;EAGF;IACE;IACA;;;AAIJ;EACE;IACE;;;AAMJ;EACE;EACA;;;AAKF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EAOE,OC1qCK;;AD6qCP;EACE;EACA;EACA;EACA;EACA;EAOE;;AAGF;EACE;EACA;EACA;EACA;EAQE;EACA;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EAOE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAOE;;AAKN;EACE;EACA;EACA;EACA;EACA;EACA;;AAMA;EAOI;;AAIJ;EAMI;;;AAQZ;EACE;EACA;;;AAGF;EACE;;;AAIF;EAOI;EACA;EAGF;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE","sourcesContent":["// 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\n.main {\n @include mq(md) {\n position: relative;\n max-width: $content-width;\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\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 display: none;\n background-color: $sidebar-color;\n\n @include mq(md) {\n display: flex;\n justify-content: space-between;\n height: $header-height;\n background-color: $body-background-color;\n border-bottom: $border $border-color;\n }\n\n &.nav-open {\n display: block;\n\n @include mq(md) {\n display: flex;\n }\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$logo: \"/docs/v3/assets/icons/logo-ontimize-blanco.png\";\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}p.highlight, blockquote.highlight {\n background: rgba($grey-dk-000, 0.2);\n border-left: $border-radius solid $grey-dk-300;\n border-radius: $border-radius;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);\n padding: .8rem;\n \n > .highlight-title {\n color: $grey-dk-300;\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n}\n\np.highlight-title, blockquote.highlight-title {\n background: rgba($grey-dk-000, 0.2);\n border-left: $border-radius solid $grey-dk-300;\n border-radius: $border-radius;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);\n padding: .8rem;\n > p:first-child {\n margin-top: 0;\n margin-bottom: 0;\n color: $grey-dk-300;\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n}\n\nblockquote.highlight {\n margin-left: 0;\n margin-right: 0;\n \n > p:first-child {\n margin-top: 0;\n }\n \n > p:last-child {\n margin-bottom: 0;\n }\n}\n\nblockquote.highlight-title {\n margin-left: 0;\n margin-right: 0;\n \n > p:nth-child(2) {\n margin-top: 0;\n }\n \n > p:last-child {\n margin-bottom: 0;\n }\n}\n\np.important, blockquote.important {\n background: rgba($grey-dk-000, 0.2);\n border-left: $border-radius solid $grey-dk-300;\n border-radius: $border-radius;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);\n padding: .8rem;\n \n &::before {\n color: $grey-dk-300;\n content: \"Important\";\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n \n > .important-title {\n color: $grey-dk-300;\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n}\n\np.important-title, blockquote.important-title {\n background: rgba($grey-dk-000, 0.2);\n border-left: $border-radius solid $grey-dk-300;\n border-radius: $border-radius;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);\n padding: .8rem;\n > p:first-child {\n margin-top: 0;\n margin-bottom: 0;\n color: $grey-dk-300;\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n}\n\nblockquote.important {\n margin-left: 0;\n margin-right: 0;\n \n > p:first-child {\n margin-top: 0;\n }\n \n > p:last-child {\n margin-bottom: 0;\n }\n}\n\nblockquote.important-title {\n margin-left: 0;\n margin-right: 0;\n \n > p:nth-child(2) {\n margin-top: 0;\n }\n \n > p:last-child {\n margin-bottom: 0;\n }\n}\n\np.note, blockquote.note {\n background: rgba($blue-000, 0.2);\n border-left: $border-radius solid $blue-300;\n border-radius: $border-radius;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);\n padding: .8rem;\n \n &::before {\n color: $blue-300;\n content: \"Note\";\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n \n > .note-title {\n color: $blue-300;\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n}\n\np.note-title, blockquote.note-title {\n background: rgba($blue-000, 0.2);\n border-left: $border-radius solid $blue-300;\n border-radius: $border-radius;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);\n padding: .8rem;\n > p:first-child {\n margin-top: 0;\n margin-bottom: 0;\n color: $blue-300;\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n}\n\nblockquote.note {\n margin-left: 0;\n margin-right: 0;\n \n > p:first-child {\n margin-top: 0;\n }\n \n > p:last-child {\n margin-bottom: 0;\n }\n}\n\nblockquote.note-title {\n margin-left: 0;\n margin-right: 0;\n \n > p:nth-child(2) {\n margin-top: 0;\n }\n \n > p:last-child {\n margin-bottom: 0;\n }\n}\n\np.warning, blockquote.warning {\n background: rgba($red-000, 0.2);\n border-left: $border-radius solid $red-300;\n border-radius: $border-radius;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);\n padding: .8rem;\n \n &::before {\n color: $red-300;\n content: \"Warning\";\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n \n > .warning-title {\n color: $red-300;\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n}\n\np.warning-title, blockquote.warning-title {\n background: rgba($red-000, 0.2);\n border-left: $border-radius solid $red-300;\n border-radius: $border-radius;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);\n padding: .8rem;\n > p:first-child {\n margin-top: 0;\n margin-bottom: 0;\n color: $red-300;\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n}\n\nblockquote.warning {\n margin-left: 0;\n margin-right: 0;\n \n > p:first-child {\n margin-top: 0;\n }\n \n > p:last-child {\n margin-bottom: 0;\n }\n}\n\nblockquote.warning-title {\n margin-left: 0;\n margin-right: 0;\n \n > p:nth-child(2) {\n margin-top: 0;\n }\n \n > p:last-child {\n margin-bottom: 0;\n }\n}\n\n\n@import \"./custom/custom\";\n\n\n","// Sticky header\n@media (min-width: 50rem) {\n #main-header {\n position: sticky;\n top: 0;\n z-index: 999\n }\n}\n\n// Custom text colors\n.text-primary-900 {\n @if $color_scheme=='light' {\n color: $primary-900\n }\n\n @else {\n color: $primary-900-dark\n }\n}\n\n// Home page\n.home-body {\n padding: 0;\n\n .home {\n display: flex;\n flex-direction: column;\n justify-content: start;\n align-items: center;\n background-color: $home-background;\n color: #FFFFFFBD;\n width: 100%;\n height: 100%;\n\n a {\n color: #A8C7FF;\n text-decoration: underline;\n text-decoration-color: #A8C7FF;\n\n &:hover {\n text-decoration-color: #A8C7FF;\n }\n }\n\n .text-primary-400 {\n color: #4286FF;\n }\n\n .white-87 {\n color: #FFFFFFDE;\n }\n\n .introduction {\n background-image: url('../../assets/images/home/bg-landing.png');\n background-repeat: repeat;\n display: flex;\n flex-direction: column;\n justify-content: start;\n height: 100%;\n width: 100%;\n\n @include mq (lg) {\n height: 100vh;\n }\n\n .header {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: space-around;\n gap: 28px;\n padding: 0 5rem 28px;\n background-color: $home-background;\n box-shadow: 0 1px 12px rgba(255, 255, 255, 0.5);\n\n @include mq(home-header) {\n height: 96px;\n padding-bottom: 0;\n flex-direction: row;\n }\n\n .site-header {\n flex-shrink: 0;\n height: fit-content;\n width: fit-content;\n border: none;\n align-items: end;\n\n @include mq(home-header) {\n align-items: center;\n }\n\n img {\n width: 140px;\n height: 41px;\n }\n }\n\n .main-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n background-color: $home-background;\n border: none;\n gap: 28px;\n flex-grow: 1;\n flex-direction: column;\n height: inherit;\n padding: 0;\n\n @include mq(home-header) {\n flex-direction: row;\n }\n\n .search {\n display: flex;\n height: 48px;\n max-height: 48px;\n width: auto;\n min-width: 243px;\n padding: 0;\n justify-content: center;\n position: static;\n\n @include mq(home-header) {\n min-width: 194px;\n }\n\n .search-input-wrap {\n position: relative;\n top: 0;\n width: 100%;\n max-width: 33.5rem;\n border-radius: 4px;\n box-shadow: none;\n height: 100%;\n\n .search-input {\n font-size: 0.875rem;\n padding-left: 2.5rem;\n background-color: transparent;\n border: solid 1px #FFFFFFBD;\n border-radius: 4px;\n color: white;\n }\n\n .search-label {\n padding-left: 1rem;\n\n >svg {\n color: #FFFFFFBD;\n }\n }\n }\n\n .search-results {\n left: auto;\n background-color: #293239;\n box-shadow: 0 1px 12px rgba(255, 255, 255, 0.5);\n width: -webkit-fill-available;\n min-width: 243px;\n max-width: 243px;\n max-height: calc(100vh - #{$sp-10});\n top: 128px;\n\n @include mq(home-header) {\n top: 48px;\n min-width: 194px;\n max-width: 33.5rem;\n max-height: calc(100vh - 200%);\n }\n }\n }\n\n .header-custom-main {\n display: flex;\n column-gap: 28px;\n color: #FFFFFFBD;\n\n .select {\n border-style: none;\n background-color: transparent;\n color: inherit;\n\n >option {\n background-color: $home-background;\n color: inherit;\n }\n }\n\n .github-div {\n flex-shrink: 0;\n\n >a {\n display: flex;\n align-items: center;\n }\n }\n\n .docs-div {\n display: flex;\n justify-content: center;\n align-items: center;\n border: solid 1px #FFFFFFBD;\n border-radius: 4px;\n width: 80px;\n height: 40px;\n font-size: 16px;\n }\n\n >a {\n text-decoration: none;\n color: #FFFFFFBD;\n }\n }\n }\n }\n\n .landing {\n display: flex;\n flex-direction: column;\n row-gap: 28px;\n align-items: center;\n height: calc(100% - 226.5px);\n\n @include mq(home-header) {\n height: calc(100% - 96px);\n }\n\n @include mq (lg) {\n justify-content: space-around;\n flex-direction: row;\n }\n\n .text {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: inherit;\n padding: 28px 28px 0;\n\n @include mq(lg) {\n max-width: 50%;\n }\n\n >h4 {\n align-self: start;\n margin: 0;\n }\n\n >p {\n color: #4286FF;\n }\n\n .home-btn {\n font-size: 14px;\n color: #FFF;\n background-color: #2876FF;\n height: 42px;\n width: 148px;\n align-self: start;\n\n &:hover {\n background-color: #1A51C8;\n }\n }\n }\n\n .banner {\n display: flex;\n justify-content: center;\n flex-shrink: 1;\n padding: 0 28px;\n\n @include mq (lg) {\n max-width: fit-content;\n }\n }\n }\n\n }\n\n .top-content {\n display: flex;\n flex-direction: column;\n width: 80%;\n }\n\n .custom-content {\n display: flex;\n flex-direction: row;\n column-gap: 28px;\n width: 80%;\n\n .code-icon {\n width: 72px;\n height: 72px;\n position: absolute;\n transform: translate(-100px, 12px);\n }\n\n .code-icon-container {\n display: flex;\n flex-direction: column;\n min-width: 72px;\n\n @include mq(home-imgs-max) {\n display: none;\n }\n }\n\n .main-content {\n display: flex;\n flex-direction: column;\n\n\n .section-text {\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n flex-shrink: 0;\n\n >h1 {\n font-weight: 600;\n }\n\n }\n\n .link-div {\n display: flex;\n flex-direction: row;\n flex-grow: 1;\n flex-shrink: 0;\n margin-top: 82px;\n margin-bottom: 124px;\n transform: translateX(-150px);\n\n @include mq(mobile-m) {\n transform: translateX(-100px);\n }\n\n @include mq(home-header) {\n transform: translateX(0);\n }\n\n .link-img {\n display: flex;\n flex-shrink: 0;\n align-items: start;\n\n >img {\n width: 100%;\n max-width: 168px;\n aspect-ratio: 1 / 1;\n }\n }\n\n .link-texts {\n display: flex;\n flex-direction: column;\n flex-shrink: 1;\n flex-grow: 1;\n\n >h2 {\n display: flex;\n flex-direction: column;\n justify-content: center;\n min-height: 168px;\n font-weight: 600;\n color: #75A7FF;\n margin: 0;\n }\n }\n }\n\n .productivity-section {\n display: flex;\n flex-direction: column;\n\n .productivity-img-container {\n display: flex;\n align-items: center;\n height: calc(100vw / 2.57);\n max-height: 1119px;\n\n @include mq(home-imgs-max) {\n width: calc(80vw - 122px);\n justify-content: center;\n }\n\n >img {\n max-width: 2888px;\n width: 100%;\n position: absolute;\n left: 0;\n aspect-ratio: 2880 / 1119;\n }\n\n @include mq(home-imgs-max) {\n >img {\n position: static;\n }\n }\n\n .productivity-bottom {\n display: flex;\n flex-direction: column;\n justify-items: start;\n flex-shrink: 0;\n flex-grow: 1;\n }\n }\n }\n\n .performance-section {\n display: flex;\n flex-direction: column;\n\n .performance-img-container {\n display: flex;\n align-items: center;\n height: calc(100vw / 2.27);\n max-height: 1268px;\n\n @include mq(home-imgs-max) {\n width: calc(80vw - 122px);\n justify-content: center;\n }\n\n >img {\n max-width: 2888px;\n width: 100%;\n position: absolute;\n left: 0;\n aspect-ratio: 2888 / 1268;\n }\n\n @include mq(home-imgs-max) {\n >img {\n position: static;\n }\n }\n }\n\n .performance-bottom {\n display: flex;\n flex-grow: 1;\n flex-shrink: 0;\n flex-direction: column;\n justify-items: start;\n\n >a {\n align-self: start;\n }\n }\n }\n\n .components-section {\n display: flex;\n flex-direction: column;\n\n .components-img-container {\n display: flex;\n align-items: center;\n height: calc(100vw / 2.27);\n max-height: 1268px;\n\n @include mq(home-imgs-max) {\n width: calc(80vw - 122px);\n justify-content: center;\n }\n\n >img {\n max-width: 2888px;\n width: 100%;\n position: absolute;\n left: 0;\n aspect-ratio: 2888 / 1268;\n }\n\n @include mq(home-imgs-max) {\n >img {\n position: static;\n }\n }\n }\n }\n\n .addons-section {\n display: flex;\n flex-direction: column;\n\n .addons-img-container {\n display: flex;\n align-items: center;\n height: calc(100vw / 2.27);\n max-height: 1268px;\n\n @include mq(home-imgs-max) {\n width: calc(80vw - 122px);\n justify-content: center;\n }\n\n >img {\n max-width: 2888px;\n width: 100%;\n position: absolute;\n left: 0;\n aspect-ratio: 2888 / 1268;\n }\n\n @include mq(home-imgs-max) {\n >img {\n position: static;\n }\n }\n }\n }\n }\n }\n\n .footer-img-container {\n display: flex;\n align-items: center;\n height: calc(100vw / 7.5);\n max-height: 512px;\n width: 100%;\n\n >img {\n max-width: 3840px;\n width: 100%;\n aspect-ratio: 3840 / 512;\n }\n }\n\n .home-footer {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n padding: 28px 5rem;\n text-align: justify;\n border-top: solid 1px #FFFFFFBD;\n\n @include mq(lg) {\n flex-direction: row;\n height: 74px;\n padding: 0 5rem;\n }\n\n >img {\n width: 140px;\n height: 41px;\n }\n\n >div {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n width: 200px;\n\n >a {\n color: #FFFFFFDB;\n display: flex;\n align-items: center;\n text-decoration: none;\n }\n }\n }\n }\n}\n\n// breadcrumbs.html include style\n.breadcrumbs {\n @include mq(md) {\n margin-top: -$sp-4;\n }\n\n ol {\n padding-left: 0;\n margin-bottom: $sp-3;\n margin-top: 0;\n list-style: none;\n }\n\n li {\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}\n\n// breadcrumbs.html include style\n.breadcrumbs {\n @include mq(md) {\n margin-top: -$sp-4;\n }\n\n ol {\n padding-left: 0;\n margin-bottom: $sp-3;\n list-style: none;\n }\n\n li {\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\n}\n\n// Button outline style\n.btn:focus {\n display: none;\n}\n\n// Links\na:not([class]) {\n text-decoration: underline;\n text-decoration-color: $border-color;\n text-underline-offset: 2px;\n\n &:hover {\n @if $color_scheme=='light' {\n text-decoration-color: $primary-500-24;\n }\n\n @else {\n text-decoration-color: $primary-500-24-dark;\n }\n }\n}\n\n// Default side bar\n.nav-list {\n .nav-list-item {\n\n .nav-list-expander {\n @if $color_scheme=='light' {\n color: $dark-74;\n }\n\n @else {\n color: $white-74;\n }\n }\n\n .nav-list-link {\n @if $color_scheme=='light' {\n color: $dark-74;\n }\n\n @else {\n color: $white-74;\n }\n\n font-weight: 400;\n // 16px\n font-size: $font-size-5;\n\n &.active {\n @if $color_scheme=='light' {\n color: $dark-60;\n }\n\n @else {\n color: $white-60;\n background-image: linear-gradient(-90deg, #1d1d1d 0%, rgba(29, 29, 29, 0.8) 80%, rgba(29, 29, 29, 0) 100%) !important;\n }\n\n font-weight: 500;\n font-size: $font-size-5;\n }\n }\n }\n}\n\n// Style of the header version changer\n.header-custom-main {\n display: flex;\n place-content: end;\n column-gap: 10px;\n margin-right: 33px;\n\n .toggle-theme {\n cursor: pointer;\n }\n\n .select {\n width: 65px;\n border-style: none;\n background: transparent;\n\n @if $color_scheme=='light' {\n color: $dark-74;\n }\n\n @else {\n color: $white-74;\n\n option {\n background-color: #27262b;\n }\n }\n }\n\n .github-div {\n display: flex;\n align-items: center;\n\n >a {\n display: flex;\n align-items: center;\n }\n }\n}\n\n// Style of the component-api tabs\n.o-tab {\n overflow: hidden;\n padding-bottom: 6px;\n\n /* Style the buttons that are used to open the tab content */\n button {\n background-color: inherit;\n float: left;\n border: none;\n outline: none;\n cursor: pointer;\n padding: 12px 16px;\n transition: .3s;\n font-size: 0.8em;\n\n @if $color_scheme=='light' {\n color: $dark-74;\n }\n\n @else {\n color: $white-74;\n }\n }\n\n /* Change background color of buttons on hover */\n button:hover {\n @if $color_scheme=='light' {\n background-color: lighten($primary-500, 40%);\n border-bottom: 2px solid $primary-500-24;\n }\n\n @else {\n background-color: lighten($primary-500-dark, 40%);\n border-bottom: 2px solid $primary-500-24-dark;\n }\n }\n\n /* Create an active/current tablink class */\n button.active {\n @if $color_scheme=='light' {\n border-bottom: 2px solid $primary-500;\n }\n\n @else {\n border-bottom: 2px solid $primary-500;\n }\n }\n}\n\n/* Style the tab content */\n.o-tabcontent {\n display: none;\n padding: 6px 12px;\n -webkit-animation: fadeEffect 1s;\n animation: fadeEffect 1s;\n}\n\n.o-component-container {\n .list__item {\n padding-right: 0;\n\n .archive__item-excerpt {\n margin-top: 0;\n font-size: .75em;\n }\n }\n}\n\n// Api tables\n.mdl-data-table {\n td {\n &[required] {\n p.first {\n &:after {\n content: ' *';\n }\n }\n }\n }\n}\n\n// Api attribute inhereds\n.attributes-list {\n overflow: hidden;\n\n li {\n display: inline-block;\n width: 50%;\n margin-bottom: .25em;\n font-size: 18px;\n }\n}\n\n.sidebar__right {\n\n @include mq(lg) {\n position: fixed;\n top: 64px;\n right: 0px;\n max-height: calc(100% - 112px);\n min-height: fit-content;\n width: 360px;\n padding-bottom: 20px;\n border: 1px solid $border-color;\n border-radius: 4px;\n overflow: auto;\n background-color: $body-background-color;\n z-index: 999;\n }\n}\n\n.toc {\n letter-spacing: 1px;\n\n .nav__title {\n margin: 0;\n cursor: pointer;\n @include fs-5;\n\n @include mq(md) {\n @include fs-4;\n }\n\n @if $color_scheme=='light' {\n color: $primary-500;\n background-color: $primary-50;\n }\n\n @else {\n color: $primary-50-dark;\n background-color: $primary-500-dark;\n }\n\n padding: 20px 14px 8px 14px;\n }\n}\n\n.toc__menu {\n\n @include fs-5;\n\n @include mq(md) {\n @include fs-4;\n }\n\n margin: 0;\n padding: 0;\n width: 100%;\n list-style: none;\n\n li::before {\n content: \"\" !important;\n }\n\n a {\n text-decoration: none;\n\n @if $color_scheme=='light' {\n color: $dark-74;\n }\n\n @else {\n color: $white-74;\n }\n\n &.active {\n\n @if $color_scheme=='light' {\n color: $dark-60;\n }\n\n @else {\n color: $white-60;\n }\n\n font-weight: 500;\n }\n }\n\n li ul>li a {\n padding-top: 0.2rem;\n border: none;\n text-transform: none;\n\n }\n}\n\n//Ontimize TOC screen size bigger than 66.5 rem\n@media (min-width: 66.5rem) {\n .toc__menu.collapsed {\n display: none;\n }\n\n .toc.collapsed {\n position: relative;\n bottom: 14px;\n }\n\n .nav__title.collapsed {\n height: 100%;\n font-size: 15px !important;\n cursor: pointer;\n }\n\n .sidebar__right.collapsed {\n padding-bottom: 0px;\n width: auto;\n transform: rotate(270deg);\n transform-origin: bottom right;\n top: calc(64px - 30px);\n height: 30px;\n overflow: hidden;\n\n @if $color_scheme=='light' {\n color: $primary-50;\n }\n\n @else {\n color: $primary-50-dark;\n }\n }\n}\n\n// FAQ page\n\n.faq-posts {\n .panel-default {\n\n .panel-heading {\n @if $color_scheme=='light' {\n color: #333;\n background-color: #f5f5f5;\n border-color: #ddd;\n }\n\n @else {\n color: #eee;\n background-color: #0c0c0c;\n border-color: #222;\n }\n\n\n border-bottom: 0;\n\n padding: 10px 30px;\n border-bottom: 1px solid transparent;\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n cursor: pointer;\n }\n\n .panel-title {\n margin-top: 0;\n margin-bottom: 0;\n font-size: 16px;\n color: inherit;\n }\n }\n\n .panel-body {\n padding: 15px;\n font-size: 14px;\n }\n\n .panel {\n margin-bottom: 0;\n border-radius: 4px;\n\n @if $color_scheme=='light' {\n background-color: #fff;\n }\n\n @else {\n background-color: #000;\n }\n\n border: 1px solid transparent;\n\n //-webkit-box-shadow: 0 1px 1px rgba(0,0,0,.05);\n //box-shadow: 0 1px 1px rgba(0,0,0,.05);\n }\n\n .collapse {\n display: none;\n\n &.in {\n display: block;\n }\n }\n\n .collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n -webkit-transition-property: height, visibility;\n transition-property: height, visibility;\n -webkit-transition-duration: .35s;\n transition-duration: .35s;\n -webkit-transition-timing-function: ease;\n transition-timing-function: ease;\n }\n}\n\n.multicolumn {\n display: flex;\n}\n\n.toggle-tree-btn {\n all: unset;\n margin-bottom: 10px;\n align-self: flex-end;\n position: absolute;\n top: 8px;\n right: 8px;\n cursor: pointer;\n}\n\n.multicolumnleft {\n flex: 1;\n max-width: 100%;\n overflow-x: auto;\n padding: 0 40px 0 0;\n box-sizing: border-box;\n position: relative;\n}\n\n.multicolumnnopadding {\n flex: 1;\n max-width: 100%;\n overflow-x: auto;\n padding: 0 0 0 0;\n box-sizing: border-box;\n}\n\n.multicolumnright {\n box-sizing: border-box;\n\n @if $color_scheme=='light' {\n border-left: 1px solid #ccc;\n }\n\n @else {\n border-left: 1px solid #2e2e2e;\n }\n\n transition: width 0.3s ease;\n overflow-x: auto;\n\n &.collapsed {\n width: 0;\n overflow: hidden;\n padding: 0;\n border-left: none;\n display: none;\n }\n}\n\n.verticalDivider {\n\n @if $color_scheme=='light' {\n border-left: 1px solid #F2F3F3;\n }\n\n @else {\n border-left: 1px solid #0f0f0f;\n }\n\n padding-right: 10px;\n margin-left: 10px;\n}\n\n// //jstree\n.jstreeloader ul>li::before {\n content: \"\";\n}\n\na.jstree-anchor.jstree-hovered{\n @if $color_scheme=='dark' {\n color: #515151;\n i {\n filter: invert(26%) sepia(0%) saturate(28%) hue-rotate(162deg) brightness(94%) contrast(85%);\n }\n }\n}\na.jstree-anchor.jstree-clicked{\n @if $color_scheme=='dark' {\n color: #494949;\n i {\n filter: invert(26%) sepia(0%) saturate(28%) hue-rotate(162deg) brightness(94%) contrast(85%);\n }\n }\n}\n\ni.jstree-icon{\n @if $color_scheme=='light' {\n filter: invert(36%) sepia(8%) saturate(440%) hue-rotate(218deg) brightness(90%) contrast(85%);\n }\n @if $color_scheme=='dark' {\n filter: invert(89%) sepia(0%) saturate(0%) hue-rotate(174deg) brightness(84%) contrast(87%);\n }\n}\n\n\n@media (min-width: 50rem) and ((max-width: 66.5rem)) {\n #top.main {\n max-width: none;\n margin-left: 16.5rem;\n }\n}\n\n@media (min-width: 66.5rem) {\n body>div.side-bar {\n min-width: auto;\n width: auto,\n }\n\n #top.main {\n max-width: none;\n margin-left: calc(16.5rem + 1px);\n }\n}\n\n@media (min-width: 50rem) {\n div.side-bar {\n width: 16.5rem;\n }\n\n\n}\n\ntable {\n table-layout: auto;\n width: 120px;\n}\n\n// Link sections menu cards\n\n.menu-card-container {\n display: grid;\n grid-gap: 32px;\n grid-template-columns: repeat(auto-fit, minmax(auto, 368px));\n grid-auto-rows: minmax(auto, 208px);\n justify-content: center;\n\n a {\n text-decoration: none;\n\n @if $color_scheme=='light' {\n color: $dark-74;\n }\n\n @else {\n color: $white-74;\n }\n\n .menu-card {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n height: 100%;\n border-radius: 2px;\n\n @if $color_scheme=='light' {\n border: 1px solid #0000001F;\n }\n\n @else {\n border: 1px solid #FFFFFF1F;\n }\n\n .image-container {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 128px;\n\n @if $color_scheme=='light' {\n border-bottom: 1px solid #0000001F;\n background-color: #F6F6F6;\n }\n\n @else {\n border-bottom: 1px solid #FFFFFF1F;\n background-color: #31363A;\n }\n }\n\n .bottom-image {\n height: 80px;\n vertical-align: middle;\n text-align: start;\n padding: 28px 18px;\n margin: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n font-weight: 500;\n }\n\n .text-container {\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n height: 88px;\n font-weight: 500;\n\n @if $color_scheme=='light' {\n border-bottom: 1px solid #0000001F;\n }\n\n @else {\n border-bottom: 1px solid #FFFFFF1F;\n }\n\n >p {\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n text-align: start;\n padding: 10px 18px 0 18px;\n height: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n @if $color_scheme=='light' {\n color: #000000DE;\n }\n\n @else {\n color: #FFFFFFDE;\n }\n }\n }\n\n .bottom-title {\n height: 118px;\n text-overflow: ellipsis;\n overflow: hidden;\n text-align: start;\n margin: 0;\n padding: 20px 18px;\n }\n }\n\n &:hover {\n .menu-card {\n .bottom-title {\n\n @if $color_scheme=='light' {\n background-color: #C7DAE9;\n }\n\n @else {\n background-color: #00345f;\n }\n }\n\n .bottom-image {\n @if $color_scheme=='light' {\n background-color: #C7DAE9;\n }\n\n @else {\n background-color: #012644;\n }\n }\n }\n }\n }\n}\n\n.menu-card-container:has(.image-container) {\n grid-template-columns: repeat(auto-fit, minmax(auto, 272px));\n grid-auto-rows: minmax(208px, auto);\n}\n\n.hidden {\n display: none;\n}\n\n\n.menuitem-badge {\n @if $color_scheme=='light' {\n background: linear-gradient(-180deg, $primary-500 0, $primary-500-24 100%);\n color: #fff;\n }\n\n @else {\n background: linear-gradient(-180deg, $primary-500-dark 0, $primary-500-24-dark 100%);\n color: #000;\n }\n\n padding: 2px 4px;\n vertical-align: middle;\n border-radius: 3px;\n font-weight: 700;\n font-size: 11px;\n position: relative;\n top: -1px;\n}\n\nimg[alt=\"Alt text\"] {\n width: 100%;\n}","// custom setup code goes here\n$primary-500: #1464A5;\n$primary-400: #377BB3;\n$primary-900: #063679;\n$primary-500-24: #1464A53D;\n$primary-50: #E3ECF4;\n$dark-74: #000000BD;\n$dark-60: #00000099;\n$primary-500-dark: #8AB2D2;\n$primary-400-dark: #9CBED9;\n$primary-900-dark: #5A8AB6;\n$primary-500-24-dark: #8AB2D23D;\n$primary-50-dark: #F1F6FA;\n$white-74: #FFFFFFBD;\n$white-60: #FFFFFF99;\n$grey: #F6F6F6;\n$home-background: #293239;\n// Font\n$body-font-family: 'Roboto', sans-serif;\n// media queries\n$custom-media-queries: (home-header: 800px,\n home-imgs-max: 2880px,\n mobile-m: 375px);\n$media-queries: map-merge($media-queries, $custom-media-queries);"],"file":"just-the-docs-dark.css"} \ No newline at end of file diff --git a/v3/assets/css/just-the-docs-default.css b/v3/assets/css/just-the-docs-default.css new file mode 100644 index 0000000..a1dda59 --- /dev/null +++ b/v3/assets/css/just-the-docs-default.css @@ -0,0 +1,10861 @@ +@charset "UTF-8"; +.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: "Roboto", sans-serif; + 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) { + .main { + position: relative; + max-width: 50rem; + margin-left: 15.5rem; + } +} +@media (min-width: 66.5rem) { + .main { + margin-left: max( + 16.5rem, + calc((100% - 66.5rem) / 2 + 16.5rem) + ); + } +} + +.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; + display: none; + background-color: #f5f6fa; +} +@media (min-width: 50rem) { + .main-header { + display: flex; + justify-content: space-between; + height: 3.75rem; + background-color: #fff; + border-bottom: 1px solid #eeebee; + } +} +.main-header.nav-open { + display: block; +} +@media (min-width: 50rem) { + .main-header.nav-open { + display: flex; + } +} + +.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-logo { + width: 100%; + height: 100%; + background-image: url("/docs/v3/assets/icons/logo-ontimize-blanco.png"); + background-repeat: no-repeat; + background-position: left center; + background-size: contain; +} + +.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; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-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; + } +} +@media (min-width: 800px) { + .m-home-header-0 { + margin: 0 !important; + } + .mt-home-header-0 { + margin-top: 0 !important; + } + .mr-home-header-0 { + margin-right: 0 !important; + } + .mb-home-header-0 { + margin-bottom: 0 !important; + } + .ml-home-header-0 { + margin-left: 0 !important; + } + .mx-home-header-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .my-home-header-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .mxn-home-header-0 { + margin-right: -0 !important; + margin-left: -0 !important; + } +} +@media (min-width: 800px) { + .m-home-header-1 { + margin: 0.25rem !important; + } + .mt-home-header-1 { + margin-top: 0.25rem !important; + } + .mr-home-header-1 { + margin-right: 0.25rem !important; + } + .mb-home-header-1 { + margin-bottom: 0.25rem !important; + } + .ml-home-header-1 { + margin-left: 0.25rem !important; + } + .mx-home-header-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .my-home-header-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .mxn-home-header-1 { + margin-right: -0.25rem !important; + margin-left: -0.25rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-2 { + margin: 0.5rem !important; + } + .mt-home-header-2 { + margin-top: 0.5rem !important; + } + .mr-home-header-2 { + margin-right: 0.5rem !important; + } + .mb-home-header-2 { + margin-bottom: 0.5rem !important; + } + .ml-home-header-2 { + margin-left: 0.5rem !important; + } + .mx-home-header-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .my-home-header-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .mxn-home-header-2 { + margin-right: -0.5rem !important; + margin-left: -0.5rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-3 { + margin: 0.75rem !important; + } + .mt-home-header-3 { + margin-top: 0.75rem !important; + } + .mr-home-header-3 { + margin-right: 0.75rem !important; + } + .mb-home-header-3 { + margin-bottom: 0.75rem !important; + } + .ml-home-header-3 { + margin-left: 0.75rem !important; + } + .mx-home-header-3 { + margin-right: 0.75rem !important; + margin-left: 0.75rem !important; + } + .my-home-header-3 { + margin-top: 0.75rem !important; + margin-bottom: 0.75rem !important; + } + .mxn-home-header-3 { + margin-right: -0.75rem !important; + margin-left: -0.75rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-4 { + margin: 1rem !important; + } + .mt-home-header-4 { + margin-top: 1rem !important; + } + .mr-home-header-4 { + margin-right: 1rem !important; + } + .mb-home-header-4 { + margin-bottom: 1rem !important; + } + .ml-home-header-4 { + margin-left: 1rem !important; + } + .mx-home-header-4 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .my-home-header-4 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .mxn-home-header-4 { + margin-right: -1rem !important; + margin-left: -1rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-5 { + margin: 1.5rem !important; + } + .mt-home-header-5 { + margin-top: 1.5rem !important; + } + .mr-home-header-5 { + margin-right: 1.5rem !important; + } + .mb-home-header-5 { + margin-bottom: 1.5rem !important; + } + .ml-home-header-5 { + margin-left: 1.5rem !important; + } + .mx-home-header-5 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .my-home-header-5 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .mxn-home-header-5 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-6 { + margin: 2rem !important; + } + .mt-home-header-6 { + margin-top: 2rem !important; + } + .mr-home-header-6 { + margin-right: 2rem !important; + } + .mb-home-header-6 { + margin-bottom: 2rem !important; + } + .ml-home-header-6 { + margin-left: 2rem !important; + } + .mx-home-header-6 { + margin-right: 2rem !important; + margin-left: 2rem !important; + } + .my-home-header-6 { + margin-top: 2rem !important; + margin-bottom: 2rem !important; + } + .mxn-home-header-6 { + margin-right: -2rem !important; + margin-left: -2rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-7 { + margin: 2.5rem !important; + } + .mt-home-header-7 { + margin-top: 2.5rem !important; + } + .mr-home-header-7 { + margin-right: 2.5rem !important; + } + .mb-home-header-7 { + margin-bottom: 2.5rem !important; + } + .ml-home-header-7 { + margin-left: 2.5rem !important; + } + .mx-home-header-7 { + margin-right: 2.5rem !important; + margin-left: 2.5rem !important; + } + .my-home-header-7 { + margin-top: 2.5rem !important; + margin-bottom: 2.5rem !important; + } + .mxn-home-header-7 { + margin-right: -2.5rem !important; + margin-left: -2.5rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-8 { + margin: 3rem !important; + } + .mt-home-header-8 { + margin-top: 3rem !important; + } + .mr-home-header-8 { + margin-right: 3rem !important; + } + .mb-home-header-8 { + margin-bottom: 3rem !important; + } + .ml-home-header-8 { + margin-left: 3rem !important; + } + .mx-home-header-8 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .my-home-header-8 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .mxn-home-header-8 { + margin-right: -3rem !important; + margin-left: -3rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-9 { + margin: 3.5rem !important; + } + .mt-home-header-9 { + margin-top: 3.5rem !important; + } + .mr-home-header-9 { + margin-right: 3.5rem !important; + } + .mb-home-header-9 { + margin-bottom: 3.5rem !important; + } + .ml-home-header-9 { + margin-left: 3.5rem !important; + } + .mx-home-header-9 { + margin-right: 3.5rem !important; + margin-left: 3.5rem !important; + } + .my-home-header-9 { + margin-top: 3.5rem !important; + margin-bottom: 3.5rem !important; + } + .mxn-home-header-9 { + margin-right: -3.5rem !important; + margin-left: -3.5rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-10 { + margin: 4rem !important; + } + .mt-home-header-10 { + margin-top: 4rem !important; + } + .mr-home-header-10 { + margin-right: 4rem !important; + } + .mb-home-header-10 { + margin-bottom: 4rem !important; + } + .ml-home-header-10 { + margin-left: 4rem !important; + } + .mx-home-header-10 { + margin-right: 4rem !important; + margin-left: 4rem !important; + } + .my-home-header-10 { + margin-top: 4rem !important; + margin-bottom: 4rem !important; + } + .mxn-home-header-10 { + margin-right: -4rem !important; + margin-left: -4rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-0 { + margin: 0 !important; + } + .mt-home-imgs-max-0 { + margin-top: 0 !important; + } + .mr-home-imgs-max-0 { + margin-right: 0 !important; + } + .mb-home-imgs-max-0 { + margin-bottom: 0 !important; + } + .ml-home-imgs-max-0 { + margin-left: 0 !important; + } + .mx-home-imgs-max-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .my-home-imgs-max-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .mxn-home-imgs-max-0 { + margin-right: -0 !important; + margin-left: -0 !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-1 { + margin: 0.25rem !important; + } + .mt-home-imgs-max-1 { + margin-top: 0.25rem !important; + } + .mr-home-imgs-max-1 { + margin-right: 0.25rem !important; + } + .mb-home-imgs-max-1 { + margin-bottom: 0.25rem !important; + } + .ml-home-imgs-max-1 { + margin-left: 0.25rem !important; + } + .mx-home-imgs-max-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .my-home-imgs-max-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .mxn-home-imgs-max-1 { + margin-right: -0.25rem !important; + margin-left: -0.25rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-2 { + margin: 0.5rem !important; + } + .mt-home-imgs-max-2 { + margin-top: 0.5rem !important; + } + .mr-home-imgs-max-2 { + margin-right: 0.5rem !important; + } + .mb-home-imgs-max-2 { + margin-bottom: 0.5rem !important; + } + .ml-home-imgs-max-2 { + margin-left: 0.5rem !important; + } + .mx-home-imgs-max-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .my-home-imgs-max-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .mxn-home-imgs-max-2 { + margin-right: -0.5rem !important; + margin-left: -0.5rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-3 { + margin: 0.75rem !important; + } + .mt-home-imgs-max-3 { + margin-top: 0.75rem !important; + } + .mr-home-imgs-max-3 { + margin-right: 0.75rem !important; + } + .mb-home-imgs-max-3 { + margin-bottom: 0.75rem !important; + } + .ml-home-imgs-max-3 { + margin-left: 0.75rem !important; + } + .mx-home-imgs-max-3 { + margin-right: 0.75rem !important; + margin-left: 0.75rem !important; + } + .my-home-imgs-max-3 { + margin-top: 0.75rem !important; + margin-bottom: 0.75rem !important; + } + .mxn-home-imgs-max-3 { + margin-right: -0.75rem !important; + margin-left: -0.75rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-4 { + margin: 1rem !important; + } + .mt-home-imgs-max-4 { + margin-top: 1rem !important; + } + .mr-home-imgs-max-4 { + margin-right: 1rem !important; + } + .mb-home-imgs-max-4 { + margin-bottom: 1rem !important; + } + .ml-home-imgs-max-4 { + margin-left: 1rem !important; + } + .mx-home-imgs-max-4 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .my-home-imgs-max-4 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .mxn-home-imgs-max-4 { + margin-right: -1rem !important; + margin-left: -1rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-5 { + margin: 1.5rem !important; + } + .mt-home-imgs-max-5 { + margin-top: 1.5rem !important; + } + .mr-home-imgs-max-5 { + margin-right: 1.5rem !important; + } + .mb-home-imgs-max-5 { + margin-bottom: 1.5rem !important; + } + .ml-home-imgs-max-5 { + margin-left: 1.5rem !important; + } + .mx-home-imgs-max-5 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .my-home-imgs-max-5 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .mxn-home-imgs-max-5 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-6 { + margin: 2rem !important; + } + .mt-home-imgs-max-6 { + margin-top: 2rem !important; + } + .mr-home-imgs-max-6 { + margin-right: 2rem !important; + } + .mb-home-imgs-max-6 { + margin-bottom: 2rem !important; + } + .ml-home-imgs-max-6 { + margin-left: 2rem !important; + } + .mx-home-imgs-max-6 { + margin-right: 2rem !important; + margin-left: 2rem !important; + } + .my-home-imgs-max-6 { + margin-top: 2rem !important; + margin-bottom: 2rem !important; + } + .mxn-home-imgs-max-6 { + margin-right: -2rem !important; + margin-left: -2rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-7 { + margin: 2.5rem !important; + } + .mt-home-imgs-max-7 { + margin-top: 2.5rem !important; + } + .mr-home-imgs-max-7 { + margin-right: 2.5rem !important; + } + .mb-home-imgs-max-7 { + margin-bottom: 2.5rem !important; + } + .ml-home-imgs-max-7 { + margin-left: 2.5rem !important; + } + .mx-home-imgs-max-7 { + margin-right: 2.5rem !important; + margin-left: 2.5rem !important; + } + .my-home-imgs-max-7 { + margin-top: 2.5rem !important; + margin-bottom: 2.5rem !important; + } + .mxn-home-imgs-max-7 { + margin-right: -2.5rem !important; + margin-left: -2.5rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-8 { + margin: 3rem !important; + } + .mt-home-imgs-max-8 { + margin-top: 3rem !important; + } + .mr-home-imgs-max-8 { + margin-right: 3rem !important; + } + .mb-home-imgs-max-8 { + margin-bottom: 3rem !important; + } + .ml-home-imgs-max-8 { + margin-left: 3rem !important; + } + .mx-home-imgs-max-8 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .my-home-imgs-max-8 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .mxn-home-imgs-max-8 { + margin-right: -3rem !important; + margin-left: -3rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-9 { + margin: 3.5rem !important; + } + .mt-home-imgs-max-9 { + margin-top: 3.5rem !important; + } + .mr-home-imgs-max-9 { + margin-right: 3.5rem !important; + } + .mb-home-imgs-max-9 { + margin-bottom: 3.5rem !important; + } + .ml-home-imgs-max-9 { + margin-left: 3.5rem !important; + } + .mx-home-imgs-max-9 { + margin-right: 3.5rem !important; + margin-left: 3.5rem !important; + } + .my-home-imgs-max-9 { + margin-top: 3.5rem !important; + margin-bottom: 3.5rem !important; + } + .mxn-home-imgs-max-9 { + margin-right: -3.5rem !important; + margin-left: -3.5rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-10 { + margin: 4rem !important; + } + .mt-home-imgs-max-10 { + margin-top: 4rem !important; + } + .mr-home-imgs-max-10 { + margin-right: 4rem !important; + } + .mb-home-imgs-max-10 { + margin-bottom: 4rem !important; + } + .ml-home-imgs-max-10 { + margin-left: 4rem !important; + } + .mx-home-imgs-max-10 { + margin-right: 4rem !important; + margin-left: 4rem !important; + } + .my-home-imgs-max-10 { + margin-top: 4rem !important; + margin-bottom: 4rem !important; + } + .mxn-home-imgs-max-10 { + margin-right: -4rem !important; + margin-left: -4rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-0 { + margin: 0 !important; + } + .mt-mobile-m-0 { + margin-top: 0 !important; + } + .mr-mobile-m-0 { + margin-right: 0 !important; + } + .mb-mobile-m-0 { + margin-bottom: 0 !important; + } + .ml-mobile-m-0 { + margin-left: 0 !important; + } + .mx-mobile-m-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .my-mobile-m-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .mxn-mobile-m-0 { + margin-right: -0 !important; + margin-left: -0 !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-1 { + margin: 0.25rem !important; + } + .mt-mobile-m-1 { + margin-top: 0.25rem !important; + } + .mr-mobile-m-1 { + margin-right: 0.25rem !important; + } + .mb-mobile-m-1 { + margin-bottom: 0.25rem !important; + } + .ml-mobile-m-1 { + margin-left: 0.25rem !important; + } + .mx-mobile-m-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .my-mobile-m-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .mxn-mobile-m-1 { + margin-right: -0.25rem !important; + margin-left: -0.25rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-2 { + margin: 0.5rem !important; + } + .mt-mobile-m-2 { + margin-top: 0.5rem !important; + } + .mr-mobile-m-2 { + margin-right: 0.5rem !important; + } + .mb-mobile-m-2 { + margin-bottom: 0.5rem !important; + } + .ml-mobile-m-2 { + margin-left: 0.5rem !important; + } + .mx-mobile-m-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .my-mobile-m-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .mxn-mobile-m-2 { + margin-right: -0.5rem !important; + margin-left: -0.5rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-3 { + margin: 0.75rem !important; + } + .mt-mobile-m-3 { + margin-top: 0.75rem !important; + } + .mr-mobile-m-3 { + margin-right: 0.75rem !important; + } + .mb-mobile-m-3 { + margin-bottom: 0.75rem !important; + } + .ml-mobile-m-3 { + margin-left: 0.75rem !important; + } + .mx-mobile-m-3 { + margin-right: 0.75rem !important; + margin-left: 0.75rem !important; + } + .my-mobile-m-3 { + margin-top: 0.75rem !important; + margin-bottom: 0.75rem !important; + } + .mxn-mobile-m-3 { + margin-right: -0.75rem !important; + margin-left: -0.75rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-4 { + margin: 1rem !important; + } + .mt-mobile-m-4 { + margin-top: 1rem !important; + } + .mr-mobile-m-4 { + margin-right: 1rem !important; + } + .mb-mobile-m-4 { + margin-bottom: 1rem !important; + } + .ml-mobile-m-4 { + margin-left: 1rem !important; + } + .mx-mobile-m-4 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .my-mobile-m-4 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .mxn-mobile-m-4 { + margin-right: -1rem !important; + margin-left: -1rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-5 { + margin: 1.5rem !important; + } + .mt-mobile-m-5 { + margin-top: 1.5rem !important; + } + .mr-mobile-m-5 { + margin-right: 1.5rem !important; + } + .mb-mobile-m-5 { + margin-bottom: 1.5rem !important; + } + .ml-mobile-m-5 { + margin-left: 1.5rem !important; + } + .mx-mobile-m-5 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .my-mobile-m-5 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .mxn-mobile-m-5 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-6 { + margin: 2rem !important; + } + .mt-mobile-m-6 { + margin-top: 2rem !important; + } + .mr-mobile-m-6 { + margin-right: 2rem !important; + } + .mb-mobile-m-6 { + margin-bottom: 2rem !important; + } + .ml-mobile-m-6 { + margin-left: 2rem !important; + } + .mx-mobile-m-6 { + margin-right: 2rem !important; + margin-left: 2rem !important; + } + .my-mobile-m-6 { + margin-top: 2rem !important; + margin-bottom: 2rem !important; + } + .mxn-mobile-m-6 { + margin-right: -2rem !important; + margin-left: -2rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-7 { + margin: 2.5rem !important; + } + .mt-mobile-m-7 { + margin-top: 2.5rem !important; + } + .mr-mobile-m-7 { + margin-right: 2.5rem !important; + } + .mb-mobile-m-7 { + margin-bottom: 2.5rem !important; + } + .ml-mobile-m-7 { + margin-left: 2.5rem !important; + } + .mx-mobile-m-7 { + margin-right: 2.5rem !important; + margin-left: 2.5rem !important; + } + .my-mobile-m-7 { + margin-top: 2.5rem !important; + margin-bottom: 2.5rem !important; + } + .mxn-mobile-m-7 { + margin-right: -2.5rem !important; + margin-left: -2.5rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-8 { + margin: 3rem !important; + } + .mt-mobile-m-8 { + margin-top: 3rem !important; + } + .mr-mobile-m-8 { + margin-right: 3rem !important; + } + .mb-mobile-m-8 { + margin-bottom: 3rem !important; + } + .ml-mobile-m-8 { + margin-left: 3rem !important; + } + .mx-mobile-m-8 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .my-mobile-m-8 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .mxn-mobile-m-8 { + margin-right: -3rem !important; + margin-left: -3rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-9 { + margin: 3.5rem !important; + } + .mt-mobile-m-9 { + margin-top: 3.5rem !important; + } + .mr-mobile-m-9 { + margin-right: 3.5rem !important; + } + .mb-mobile-m-9 { + margin-bottom: 3.5rem !important; + } + .ml-mobile-m-9 { + margin-left: 3.5rem !important; + } + .mx-mobile-m-9 { + margin-right: 3.5rem !important; + margin-left: 3.5rem !important; + } + .my-mobile-m-9 { + margin-top: 3.5rem !important; + margin-bottom: 3.5rem !important; + } + .mxn-mobile-m-9 { + margin-right: -3.5rem !important; + margin-left: -3.5rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-10 { + margin: 4rem !important; + } + .mt-mobile-m-10 { + margin-top: 4rem !important; + } + .mr-mobile-m-10 { + margin-right: 4rem !important; + } + .mb-mobile-m-10 { + margin-bottom: 4rem !important; + } + .ml-mobile-m-10 { + margin-left: 4rem !important; + } + .mx-mobile-m-10 { + margin-right: 4rem !important; + margin-left: 4rem !important; + } + .my-mobile-m-10 { + margin-top: 4rem !important; + margin-bottom: 4rem !important; + } + .mxn-mobile-m-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 (min-width: 800px) { + .p-home-header-0 { + padding: 0 !important; + } + .pt-home-header-0 { + padding-top: 0 !important; + } + .pr-home-header-0 { + padding-right: 0 !important; + } + .pb-home-header-0 { + padding-bottom: 0 !important; + } + .pl-home-header-0 { + padding-left: 0 !important; + } + .px-home-header-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .py-home-header-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .p-home-header-1 { + padding: 0.25rem !important; + } + .pt-home-header-1 { + padding-top: 0.25rem !important; + } + .pr-home-header-1 { + padding-right: 0.25rem !important; + } + .pb-home-header-1 { + padding-bottom: 0.25rem !important; + } + .pl-home-header-1 { + padding-left: 0.25rem !important; + } + .px-home-header-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .py-home-header-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .p-home-header-2 { + padding: 0.5rem !important; + } + .pt-home-header-2 { + padding-top: 0.5rem !important; + } + .pr-home-header-2 { + padding-right: 0.5rem !important; + } + .pb-home-header-2 { + padding-bottom: 0.5rem !important; + } + .pl-home-header-2 { + padding-left: 0.5rem !important; + } + .px-home-header-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .py-home-header-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .p-home-header-3 { + padding: 0.75rem !important; + } + .pt-home-header-3 { + padding-top: 0.75rem !important; + } + .pr-home-header-3 { + padding-right: 0.75rem !important; + } + .pb-home-header-3 { + padding-bottom: 0.75rem !important; + } + .pl-home-header-3 { + padding-left: 0.75rem !important; + } + .px-home-header-3 { + padding-right: 0.75rem !important; + padding-left: 0.75rem !important; + } + .py-home-header-3 { + padding-top: 0.75rem !important; + padding-bottom: 0.75rem !important; + } + .p-home-header-4 { + padding: 1rem !important; + } + .pt-home-header-4 { + padding-top: 1rem !important; + } + .pr-home-header-4 { + padding-right: 1rem !important; + } + .pb-home-header-4 { + padding-bottom: 1rem !important; + } + .pl-home-header-4 { + padding-left: 1rem !important; + } + .px-home-header-4 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .py-home-header-4 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .p-home-header-5 { + padding: 1.5rem !important; + } + .pt-home-header-5 { + padding-top: 1.5rem !important; + } + .pr-home-header-5 { + padding-right: 1.5rem !important; + } + .pb-home-header-5 { + padding-bottom: 1.5rem !important; + } + .pl-home-header-5 { + padding-left: 1.5rem !important; + } + .px-home-header-5 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .py-home-header-5 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .p-home-header-6 { + padding: 2rem !important; + } + .pt-home-header-6 { + padding-top: 2rem !important; + } + .pr-home-header-6 { + padding-right: 2rem !important; + } + .pb-home-header-6 { + padding-bottom: 2rem !important; + } + .pl-home-header-6 { + padding-left: 2rem !important; + } + .px-home-header-6 { + padding-right: 2rem !important; + padding-left: 2rem !important; + } + .py-home-header-6 { + padding-top: 2rem !important; + padding-bottom: 2rem !important; + } + .p-home-header-7 { + padding: 2.5rem !important; + } + .pt-home-header-7 { + padding-top: 2.5rem !important; + } + .pr-home-header-7 { + padding-right: 2.5rem !important; + } + .pb-home-header-7 { + padding-bottom: 2.5rem !important; + } + .pl-home-header-7 { + padding-left: 2.5rem !important; + } + .px-home-header-7 { + padding-right: 2.5rem !important; + padding-left: 2.5rem !important; + } + .py-home-header-7 { + padding-top: 2.5rem !important; + padding-bottom: 2.5rem !important; + } + .p-home-header-8 { + padding: 3rem !important; + } + .pt-home-header-8 { + padding-top: 3rem !important; + } + .pr-home-header-8 { + padding-right: 3rem !important; + } + .pb-home-header-8 { + padding-bottom: 3rem !important; + } + .pl-home-header-8 { + padding-left: 3rem !important; + } + .px-home-header-8 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-home-header-8 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .p-home-header-9 { + padding: 3.5rem !important; + } + .pt-home-header-9 { + padding-top: 3.5rem !important; + } + .pr-home-header-9 { + padding-right: 3.5rem !important; + } + .pb-home-header-9 { + padding-bottom: 3.5rem !important; + } + .pl-home-header-9 { + padding-left: 3.5rem !important; + } + .px-home-header-9 { + padding-right: 3.5rem !important; + padding-left: 3.5rem !important; + } + .py-home-header-9 { + padding-top: 3.5rem !important; + padding-bottom: 3.5rem !important; + } + .p-home-header-10 { + padding: 4rem !important; + } + .pt-home-header-10 { + padding-top: 4rem !important; + } + .pr-home-header-10 { + padding-right: 4rem !important; + } + .pb-home-header-10 { + padding-bottom: 4rem !important; + } + .pl-home-header-10 { + padding-left: 4rem !important; + } + .px-home-header-10 { + padding-right: 4rem !important; + padding-left: 4rem !important; + } + .py-home-header-10 { + padding-top: 4rem !important; + padding-bottom: 4rem !important; + } +} +@media (min-width: 2880px) { + .p-home-imgs-max-0 { + padding: 0 !important; + } + .pt-home-imgs-max-0 { + padding-top: 0 !important; + } + .pr-home-imgs-max-0 { + padding-right: 0 !important; + } + .pb-home-imgs-max-0 { + padding-bottom: 0 !important; + } + .pl-home-imgs-max-0 { + padding-left: 0 !important; + } + .px-home-imgs-max-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .py-home-imgs-max-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .p-home-imgs-max-1 { + padding: 0.25rem !important; + } + .pt-home-imgs-max-1 { + padding-top: 0.25rem !important; + } + .pr-home-imgs-max-1 { + padding-right: 0.25rem !important; + } + .pb-home-imgs-max-1 { + padding-bottom: 0.25rem !important; + } + .pl-home-imgs-max-1 { + padding-left: 0.25rem !important; + } + .px-home-imgs-max-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .py-home-imgs-max-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .p-home-imgs-max-2 { + padding: 0.5rem !important; + } + .pt-home-imgs-max-2 { + padding-top: 0.5rem !important; + } + .pr-home-imgs-max-2 { + padding-right: 0.5rem !important; + } + .pb-home-imgs-max-2 { + padding-bottom: 0.5rem !important; + } + .pl-home-imgs-max-2 { + padding-left: 0.5rem !important; + } + .px-home-imgs-max-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .py-home-imgs-max-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .p-home-imgs-max-3 { + padding: 0.75rem !important; + } + .pt-home-imgs-max-3 { + padding-top: 0.75rem !important; + } + .pr-home-imgs-max-3 { + padding-right: 0.75rem !important; + } + .pb-home-imgs-max-3 { + padding-bottom: 0.75rem !important; + } + .pl-home-imgs-max-3 { + padding-left: 0.75rem !important; + } + .px-home-imgs-max-3 { + padding-right: 0.75rem !important; + padding-left: 0.75rem !important; + } + .py-home-imgs-max-3 { + padding-top: 0.75rem !important; + padding-bottom: 0.75rem !important; + } + .p-home-imgs-max-4 { + padding: 1rem !important; + } + .pt-home-imgs-max-4 { + padding-top: 1rem !important; + } + .pr-home-imgs-max-4 { + padding-right: 1rem !important; + } + .pb-home-imgs-max-4 { + padding-bottom: 1rem !important; + } + .pl-home-imgs-max-4 { + padding-left: 1rem !important; + } + .px-home-imgs-max-4 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .py-home-imgs-max-4 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .p-home-imgs-max-5 { + padding: 1.5rem !important; + } + .pt-home-imgs-max-5 { + padding-top: 1.5rem !important; + } + .pr-home-imgs-max-5 { + padding-right: 1.5rem !important; + } + .pb-home-imgs-max-5 { + padding-bottom: 1.5rem !important; + } + .pl-home-imgs-max-5 { + padding-left: 1.5rem !important; + } + .px-home-imgs-max-5 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .py-home-imgs-max-5 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .p-home-imgs-max-6 { + padding: 2rem !important; + } + .pt-home-imgs-max-6 { + padding-top: 2rem !important; + } + .pr-home-imgs-max-6 { + padding-right: 2rem !important; + } + .pb-home-imgs-max-6 { + padding-bottom: 2rem !important; + } + .pl-home-imgs-max-6 { + padding-left: 2rem !important; + } + .px-home-imgs-max-6 { + padding-right: 2rem !important; + padding-left: 2rem !important; + } + .py-home-imgs-max-6 { + padding-top: 2rem !important; + padding-bottom: 2rem !important; + } + .p-home-imgs-max-7 { + padding: 2.5rem !important; + } + .pt-home-imgs-max-7 { + padding-top: 2.5rem !important; + } + .pr-home-imgs-max-7 { + padding-right: 2.5rem !important; + } + .pb-home-imgs-max-7 { + padding-bottom: 2.5rem !important; + } + .pl-home-imgs-max-7 { + padding-left: 2.5rem !important; + } + .px-home-imgs-max-7 { + padding-right: 2.5rem !important; + padding-left: 2.5rem !important; + } + .py-home-imgs-max-7 { + padding-top: 2.5rem !important; + padding-bottom: 2.5rem !important; + } + .p-home-imgs-max-8 { + padding: 3rem !important; + } + .pt-home-imgs-max-8 { + padding-top: 3rem !important; + } + .pr-home-imgs-max-8 { + padding-right: 3rem !important; + } + .pb-home-imgs-max-8 { + padding-bottom: 3rem !important; + } + .pl-home-imgs-max-8 { + padding-left: 3rem !important; + } + .px-home-imgs-max-8 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-home-imgs-max-8 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .p-home-imgs-max-9 { + padding: 3.5rem !important; + } + .pt-home-imgs-max-9 { + padding-top: 3.5rem !important; + } + .pr-home-imgs-max-9 { + padding-right: 3.5rem !important; + } + .pb-home-imgs-max-9 { + padding-bottom: 3.5rem !important; + } + .pl-home-imgs-max-9 { + padding-left: 3.5rem !important; + } + .px-home-imgs-max-9 { + padding-right: 3.5rem !important; + padding-left: 3.5rem !important; + } + .py-home-imgs-max-9 { + padding-top: 3.5rem !important; + padding-bottom: 3.5rem !important; + } + .p-home-imgs-max-10 { + padding: 4rem !important; + } + .pt-home-imgs-max-10 { + padding-top: 4rem !important; + } + .pr-home-imgs-max-10 { + padding-right: 4rem !important; + } + .pb-home-imgs-max-10 { + padding-bottom: 4rem !important; + } + .pl-home-imgs-max-10 { + padding-left: 4rem !important; + } + .px-home-imgs-max-10 { + padding-right: 4rem !important; + padding-left: 4rem !important; + } + .py-home-imgs-max-10 { + padding-top: 4rem !important; + padding-bottom: 4rem !important; + } +} +@media (min-width: 375px) { + .p-mobile-m-0 { + padding: 0 !important; + } + .pt-mobile-m-0 { + padding-top: 0 !important; + } + .pr-mobile-m-0 { + padding-right: 0 !important; + } + .pb-mobile-m-0 { + padding-bottom: 0 !important; + } + .pl-mobile-m-0 { + padding-left: 0 !important; + } + .px-mobile-m-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .py-mobile-m-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .p-mobile-m-1 { + padding: 0.25rem !important; + } + .pt-mobile-m-1 { + padding-top: 0.25rem !important; + } + .pr-mobile-m-1 { + padding-right: 0.25rem !important; + } + .pb-mobile-m-1 { + padding-bottom: 0.25rem !important; + } + .pl-mobile-m-1 { + padding-left: 0.25rem !important; + } + .px-mobile-m-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .py-mobile-m-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .p-mobile-m-2 { + padding: 0.5rem !important; + } + .pt-mobile-m-2 { + padding-top: 0.5rem !important; + } + .pr-mobile-m-2 { + padding-right: 0.5rem !important; + } + .pb-mobile-m-2 { + padding-bottom: 0.5rem !important; + } + .pl-mobile-m-2 { + padding-left: 0.5rem !important; + } + .px-mobile-m-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .py-mobile-m-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .p-mobile-m-3 { + padding: 0.75rem !important; + } + .pt-mobile-m-3 { + padding-top: 0.75rem !important; + } + .pr-mobile-m-3 { + padding-right: 0.75rem !important; + } + .pb-mobile-m-3 { + padding-bottom: 0.75rem !important; + } + .pl-mobile-m-3 { + padding-left: 0.75rem !important; + } + .px-mobile-m-3 { + padding-right: 0.75rem !important; + padding-left: 0.75rem !important; + } + .py-mobile-m-3 { + padding-top: 0.75rem !important; + padding-bottom: 0.75rem !important; + } + .p-mobile-m-4 { + padding: 1rem !important; + } + .pt-mobile-m-4 { + padding-top: 1rem !important; + } + .pr-mobile-m-4 { + padding-right: 1rem !important; + } + .pb-mobile-m-4 { + padding-bottom: 1rem !important; + } + .pl-mobile-m-4 { + padding-left: 1rem !important; + } + .px-mobile-m-4 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .py-mobile-m-4 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .p-mobile-m-5 { + padding: 1.5rem !important; + } + .pt-mobile-m-5 { + padding-top: 1.5rem !important; + } + .pr-mobile-m-5 { + padding-right: 1.5rem !important; + } + .pb-mobile-m-5 { + padding-bottom: 1.5rem !important; + } + .pl-mobile-m-5 { + padding-left: 1.5rem !important; + } + .px-mobile-m-5 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .py-mobile-m-5 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .p-mobile-m-6 { + padding: 2rem !important; + } + .pt-mobile-m-6 { + padding-top: 2rem !important; + } + .pr-mobile-m-6 { + padding-right: 2rem !important; + } + .pb-mobile-m-6 { + padding-bottom: 2rem !important; + } + .pl-mobile-m-6 { + padding-left: 2rem !important; + } + .px-mobile-m-6 { + padding-right: 2rem !important; + padding-left: 2rem !important; + } + .py-mobile-m-6 { + padding-top: 2rem !important; + padding-bottom: 2rem !important; + } + .p-mobile-m-7 { + padding: 2.5rem !important; + } + .pt-mobile-m-7 { + padding-top: 2.5rem !important; + } + .pr-mobile-m-7 { + padding-right: 2.5rem !important; + } + .pb-mobile-m-7 { + padding-bottom: 2.5rem !important; + } + .pl-mobile-m-7 { + padding-left: 2.5rem !important; + } + .px-mobile-m-7 { + padding-right: 2.5rem !important; + padding-left: 2.5rem !important; + } + .py-mobile-m-7 { + padding-top: 2.5rem !important; + padding-bottom: 2.5rem !important; + } + .p-mobile-m-8 { + padding: 3rem !important; + } + .pt-mobile-m-8 { + padding-top: 3rem !important; + } + .pr-mobile-m-8 { + padding-right: 3rem !important; + } + .pb-mobile-m-8 { + padding-bottom: 3rem !important; + } + .pl-mobile-m-8 { + padding-left: 3rem !important; + } + .px-mobile-m-8 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-mobile-m-8 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .p-mobile-m-9 { + padding: 3.5rem !important; + } + .pt-mobile-m-9 { + padding-top: 3.5rem !important; + } + .pr-mobile-m-9 { + padding-right: 3.5rem !important; + } + .pb-mobile-m-9 { + padding-bottom: 3.5rem !important; + } + .pl-mobile-m-9 { + padding-left: 3.5rem !important; + } + .px-mobile-m-9 { + padding-right: 3.5rem !important; + padding-left: 3.5rem !important; + } + .py-mobile-m-9 { + padding-top: 3.5rem !important; + padding-bottom: 3.5rem !important; + } + .p-mobile-m-10 { + padding: 4rem !important; + } + .pt-mobile-m-10 { + padding-top: 4rem !important; + } + .pr-mobile-m-10 { + padding-right: 4rem !important; + } + .pb-mobile-m-10 { + padding-bottom: 4rem !important; + } + .pl-mobile-m-10 { + padding-left: 4rem !important; + } + .px-mobile-m-10 { + padding-right: 4rem !important; + padding-left: 4rem !important; + } + .py-mobile-m-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; +} + +p.highlight, blockquote.highlight { + background: rgba(149, 147, 150, 0.2); + border-left: 4px solid #27262b; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + padding: 0.8rem; +} +p.highlight > .highlight-title, blockquote.highlight > .highlight-title { + color: #27262b; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} + +p.highlight-title, blockquote.highlight-title { + background: rgba(149, 147, 150, 0.2); + border-left: 4px solid #27262b; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + padding: 0.8rem; +} +p.highlight-title > p:first-child, blockquote.highlight-title > p:first-child { + margin-top: 0; + margin-bottom: 0; + color: #27262b; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} + +blockquote.highlight { + margin-left: 0; + margin-right: 0; +} +blockquote.highlight > p:first-child { + margin-top: 0; +} +blockquote.highlight > p:last-child { + margin-bottom: 0; +} + +blockquote.highlight-title { + margin-left: 0; + margin-right: 0; +} +blockquote.highlight-title > p:nth-child(2) { + margin-top: 0; +} +blockquote.highlight-title > p:last-child { + margin-bottom: 0; +} + +p.important, blockquote.important { + background: rgba(149, 147, 150, 0.2); + border-left: 4px solid #27262b; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + padding: 0.8rem; +} +p.important::before, blockquote.important::before { + color: #27262b; + content: "Important"; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} +p.important > .important-title, blockquote.important > .important-title { + color: #27262b; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} + +p.important-title, blockquote.important-title { + background: rgba(149, 147, 150, 0.2); + border-left: 4px solid #27262b; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + padding: 0.8rem; +} +p.important-title > p:first-child, blockquote.important-title > p:first-child { + margin-top: 0; + margin-bottom: 0; + color: #27262b; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} + +blockquote.important { + margin-left: 0; + margin-right: 0; +} +blockquote.important > p:first-child { + margin-top: 0; +} +blockquote.important > p:last-child { + margin-bottom: 0; +} + +blockquote.important-title { + margin-left: 0; + margin-right: 0; +} +blockquote.important-title > p:nth-child(2) { + margin-top: 0; +} +blockquote.important-title > p:last-child { + margin-bottom: 0; +} + +p.note, blockquote.note { + background: rgba(44, 132, 250, 0.2); + border-left: 4px solid #183385; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + padding: 0.8rem; +} +p.note::before, blockquote.note::before { + color: #183385; + content: "Note"; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} +p.note > .note-title, blockquote.note > .note-title { + color: #183385; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} + +p.note-title, blockquote.note-title { + background: rgba(44, 132, 250, 0.2); + border-left: 4px solid #183385; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + padding: 0.8rem; +} +p.note-title > p:first-child, blockquote.note-title > p:first-child { + margin-top: 0; + margin-bottom: 0; + color: #183385; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} + +blockquote.note { + margin-left: 0; + margin-right: 0; +} +blockquote.note > p:first-child { + margin-top: 0; +} +blockquote.note > p:last-child { + margin-bottom: 0; +} + +blockquote.note-title { + margin-left: 0; + margin-right: 0; +} +blockquote.note-title > p:nth-child(2) { + margin-top: 0; +} +blockquote.note-title > p:last-child { + margin-bottom: 0; +} + +p.warning, blockquote.warning { + background: rgba(247, 126, 126, 0.2); + border-left: 4px solid #dd2e2e; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + padding: 0.8rem; +} +p.warning::before, blockquote.warning::before { + color: #dd2e2e; + content: "Warning"; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} +p.warning > .warning-title, blockquote.warning > .warning-title { + color: #dd2e2e; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} + +p.warning-title, blockquote.warning-title { + background: rgba(247, 126, 126, 0.2); + border-left: 4px solid #dd2e2e; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + padding: 0.8rem; +} +p.warning-title > p:first-child, blockquote.warning-title > p:first-child { + margin-top: 0; + margin-bottom: 0; + color: #dd2e2e; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} + +blockquote.warning { + margin-left: 0; + margin-right: 0; +} +blockquote.warning > p:first-child { + margin-top: 0; +} +blockquote.warning > p:last-child { + margin-bottom: 0; +} + +blockquote.warning-title { + margin-left: 0; + margin-right: 0; +} +blockquote.warning-title > p:nth-child(2) { + margin-top: 0; +} +blockquote.warning-title > p:last-child { + margin-bottom: 0; +} + +@media (min-width: 50rem) { + #main-header { + position: sticky; + top: 0; + z-index: 999; + } +} +.text-primary-900 { + color: #063679; +} + +.home-body { + padding: 0; +} +.home-body .home { + display: flex; + flex-direction: column; + justify-content: start; + align-items: center; + background-color: #293239; + color: rgba(255, 255, 255, 0.7411764706); + width: 100%; + height: 100%; +} +.home-body .home a { + color: #A8C7FF; + text-decoration: underline; + text-decoration-color: #A8C7FF; +} +.home-body .home a:hover { + text-decoration-color: #A8C7FF; +} +.home-body .home .text-primary-400 { + color: #4286FF; +} +.home-body .home .white-87 { + color: rgba(255, 255, 255, 0.8705882353); +} +.home-body .home .introduction { + background-image: url("../../assets/images/home/bg-landing.png"); + background-repeat: repeat; + display: flex; + flex-direction: column; + justify-content: start; + height: 100%; + width: 100%; +} +@media (min-width: 66.5rem) { + .home-body .home .introduction { + height: 100vh; + } +} +.home-body .home .introduction .header { + display: flex; + flex-direction: column; + align-items: center; + justify-content: space-around; + gap: 28px; + padding: 0 5rem 28px; + background-color: #293239; + box-shadow: 0 1px 12px rgba(255, 255, 255, 0.5); +} +@media (min-width: 800px) { + .home-body .home .introduction .header { + height: 96px; + padding-bottom: 0; + flex-direction: row; + } +} +.home-body .home .introduction .header .site-header { + flex-shrink: 0; + height: fit-content; + width: fit-content; + border: none; + align-items: end; +} +@media (min-width: 800px) { + .home-body .home .introduction .header .site-header { + align-items: center; + } +} +.home-body .home .introduction .header .site-header img { + width: 140px; + height: 41px; +} +.home-body .home .introduction .header .main-header { + display: flex; + align-items: center; + justify-content: space-between; + background-color: #293239; + border: none; + gap: 28px; + flex-grow: 1; + flex-direction: column; + height: inherit; + padding: 0; +} +@media (min-width: 800px) { + .home-body .home .introduction .header .main-header { + flex-direction: row; + } +} +.home-body .home .introduction .header .main-header .search { + display: flex; + height: 48px; + max-height: 48px; + width: auto; + min-width: 243px; + padding: 0; + justify-content: center; + position: static; +} +@media (min-width: 800px) { + .home-body .home .introduction .header .main-header .search { + min-width: 194px; + } +} +.home-body .home .introduction .header .main-header .search .search-input-wrap { + position: relative; + top: 0; + width: 100%; + max-width: 33.5rem; + border-radius: 4px; + box-shadow: none; + height: 100%; +} +.home-body .home .introduction .header .main-header .search .search-input-wrap .search-input { + font-size: 0.875rem; + padding-left: 2.5rem; + background-color: transparent; + border: solid 1px rgba(255, 255, 255, 0.7411764706); + border-radius: 4px; + color: white; +} +.home-body .home .introduction .header .main-header .search .search-input-wrap .search-label { + padding-left: 1rem; +} +.home-body .home .introduction .header .main-header .search .search-input-wrap .search-label > svg { + color: rgba(255, 255, 255, 0.7411764706); +} +.home-body .home .introduction .header .main-header .search .search-results { + left: auto; + background-color: #293239; + box-shadow: 0 1px 12px rgba(255, 255, 255, 0.5); + width: -webkit-fill-available; + min-width: 243px; + max-width: 243px; + max-height: calc(100vh - 4rem); + top: 128px; +} +@media (min-width: 800px) { + .home-body .home .introduction .header .main-header .search .search-results { + top: 48px; + min-width: 194px; + max-width: 33.5rem; + max-height: calc(100vh - 200%); + } +} +.home-body .home .introduction .header .main-header .header-custom-main { + display: flex; + column-gap: 28px; + color: rgba(255, 255, 255, 0.7411764706); +} +.home-body .home .introduction .header .main-header .header-custom-main .select { + border-style: none; + background-color: transparent; + color: inherit; +} +.home-body .home .introduction .header .main-header .header-custom-main .select > option { + background-color: #293239; + color: inherit; +} +.home-body .home .introduction .header .main-header .header-custom-main .github-div { + flex-shrink: 0; +} +.home-body .home .introduction .header .main-header .header-custom-main .github-div > a { + display: flex; + align-items: center; +} +.home-body .home .introduction .header .main-header .header-custom-main .docs-div { + display: flex; + justify-content: center; + align-items: center; + border: solid 1px rgba(255, 255, 255, 0.7411764706); + border-radius: 4px; + width: 80px; + height: 40px; + font-size: 16px; +} +.home-body .home .introduction .header .main-header .header-custom-main > a { + text-decoration: none; + color: rgba(255, 255, 255, 0.7411764706); +} +.home-body .home .introduction .landing { + display: flex; + flex-direction: column; + row-gap: 28px; + align-items: center; + height: calc(100% - 226.5px); +} +@media (min-width: 800px) { + .home-body .home .introduction .landing { + height: calc(100% - 96px); + } +} +@media (min-width: 66.5rem) { + .home-body .home .introduction .landing { + justify-content: space-around; + flex-direction: row; + } +} +.home-body .home .introduction .landing .text { + display: flex; + flex-direction: column; + justify-content: center; + align-items: inherit; + padding: 28px 28px 0; +} +@media (min-width: 66.5rem) { + .home-body .home .introduction .landing .text { + max-width: 50%; + } +} +.home-body .home .introduction .landing .text > h4 { + align-self: start; + margin: 0; +} +.home-body .home .introduction .landing .text > p { + color: #4286FF; +} +.home-body .home .introduction .landing .text .home-btn { + font-size: 14px; + color: #FFF; + background-color: #2876FF; + height: 42px; + width: 148px; + align-self: start; +} +.home-body .home .introduction .landing .text .home-btn:hover { + background-color: #1A51C8; +} +.home-body .home .introduction .landing .banner { + display: flex; + justify-content: center; + flex-shrink: 1; + padding: 0 28px; +} +@media (min-width: 66.5rem) { + .home-body .home .introduction .landing .banner { + max-width: fit-content; + } +} +.home-body .home .top-content { + display: flex; + flex-direction: column; + width: 80%; +} +.home-body .home .custom-content { + display: flex; + flex-direction: row; + column-gap: 28px; + width: 80%; +} +.home-body .home .custom-content .code-icon { + width: 72px; + height: 72px; + position: absolute; + transform: translate(-100px, 12px); +} +.home-body .home .custom-content .code-icon-container { + display: flex; + flex-direction: column; + min-width: 72px; +} +@media (min-width: 2880px) { + .home-body .home .custom-content .code-icon-container { + display: none; + } +} +.home-body .home .custom-content .main-content { + display: flex; + flex-direction: column; +} +.home-body .home .custom-content .main-content .section-text { + display: flex; + flex-direction: column; + flex-grow: 1; + flex-shrink: 0; +} +.home-body .home .custom-content .main-content .section-text > h1 { + font-weight: 600; +} +.home-body .home .custom-content .main-content .link-div { + display: flex; + flex-direction: row; + flex-grow: 1; + flex-shrink: 0; + margin-top: 82px; + margin-bottom: 124px; + transform: translateX(-150px); +} +@media (min-width: 375px) { + .home-body .home .custom-content .main-content .link-div { + transform: translateX(-100px); + } +} +@media (min-width: 800px) { + .home-body .home .custom-content .main-content .link-div { + transform: translateX(0); + } +} +.home-body .home .custom-content .main-content .link-div .link-img { + display: flex; + flex-shrink: 0; + align-items: start; +} +.home-body .home .custom-content .main-content .link-div .link-img > img { + width: 100%; + max-width: 168px; + aspect-ratio: 1/1; +} +.home-body .home .custom-content .main-content .link-div .link-texts { + display: flex; + flex-direction: column; + flex-shrink: 1; + flex-grow: 1; +} +.home-body .home .custom-content .main-content .link-div .link-texts > h2 { + display: flex; + flex-direction: column; + justify-content: center; + min-height: 168px; + font-weight: 600; + color: #75A7FF; + margin: 0; +} +.home-body .home .custom-content .main-content .productivity-section { + display: flex; + flex-direction: column; +} +.home-body .home .custom-content .main-content .productivity-section .productivity-img-container { + display: flex; + align-items: center; + height: 38.9105058366vw; + max-height: 1119px; +} +@media (min-width: 2880px) { + .home-body .home .custom-content .main-content .productivity-section .productivity-img-container { + width: calc(80vw - 122px); + justify-content: center; + } +} +.home-body .home .custom-content .main-content .productivity-section .productivity-img-container > img { + max-width: 2888px; + width: 100%; + position: absolute; + left: 0; + aspect-ratio: 2880/1119; +} +@media (min-width: 2880px) { + .home-body .home .custom-content .main-content .productivity-section .productivity-img-container > img { + position: static; + } +} +.home-body .home .custom-content .main-content .productivity-section .productivity-img-container .productivity-bottom { + display: flex; + flex-direction: column; + justify-items: start; + flex-shrink: 0; + flex-grow: 1; +} +.home-body .home .custom-content .main-content .performance-section { + display: flex; + flex-direction: column; +} +.home-body .home .custom-content .main-content .performance-section .performance-img-container { + display: flex; + align-items: center; + height: 44.0528634361vw; + max-height: 1268px; +} +@media (min-width: 2880px) { + .home-body .home .custom-content .main-content .performance-section .performance-img-container { + width: calc(80vw - 122px); + justify-content: center; + } +} +.home-body .home .custom-content .main-content .performance-section .performance-img-container > img { + max-width: 2888px; + width: 100%; + position: absolute; + left: 0; + aspect-ratio: 2888/1268; +} +@media (min-width: 2880px) { + .home-body .home .custom-content .main-content .performance-section .performance-img-container > img { + position: static; + } +} +.home-body .home .custom-content .main-content .performance-section .performance-bottom { + display: flex; + flex-grow: 1; + flex-shrink: 0; + flex-direction: column; + justify-items: start; +} +.home-body .home .custom-content .main-content .performance-section .performance-bottom > a { + align-self: start; +} +.home-body .home .custom-content .main-content .components-section { + display: flex; + flex-direction: column; +} +.home-body .home .custom-content .main-content .components-section .components-img-container { + display: flex; + align-items: center; + height: 44.0528634361vw; + max-height: 1268px; +} +@media (min-width: 2880px) { + .home-body .home .custom-content .main-content .components-section .components-img-container { + width: calc(80vw - 122px); + justify-content: center; + } +} +.home-body .home .custom-content .main-content .components-section .components-img-container > img { + max-width: 2888px; + width: 100%; + position: absolute; + left: 0; + aspect-ratio: 2888/1268; +} +@media (min-width: 2880px) { + .home-body .home .custom-content .main-content .components-section .components-img-container > img { + position: static; + } +} +.home-body .home .custom-content .main-content .addons-section { + display: flex; + flex-direction: column; +} +.home-body .home .custom-content .main-content .addons-section .addons-img-container { + display: flex; + align-items: center; + height: 44.0528634361vw; + max-height: 1268px; +} +@media (min-width: 2880px) { + .home-body .home .custom-content .main-content .addons-section .addons-img-container { + width: calc(80vw - 122px); + justify-content: center; + } +} +.home-body .home .custom-content .main-content .addons-section .addons-img-container > img { + max-width: 2888px; + width: 100%; + position: absolute; + left: 0; + aspect-ratio: 2888/1268; +} +@media (min-width: 2880px) { + .home-body .home .custom-content .main-content .addons-section .addons-img-container > img { + position: static; + } +} +.home-body .home .footer-img-container { + display: flex; + align-items: center; + height: 13.3333333333vw; + max-height: 512px; + width: 100%; +} +.home-body .home .footer-img-container > img { + max-width: 3840px; + width: 100%; + aspect-ratio: 3840/512; +} +.home-body .home .home-footer { + display: flex; + flex-direction: column; + align-items: center; + justify-content: space-between; + width: 100%; + padding: 28px 5rem; + text-align: justify; + border-top: solid 1px rgba(255, 255, 255, 0.7411764706); +} +@media (min-width: 66.5rem) { + .home-body .home .home-footer { + flex-direction: row; + height: 74px; + padding: 0 5rem; + } +} +.home-body .home .home-footer > img { + width: 140px; + height: 41px; +} +.home-body .home .home-footer > div { + display: flex; + flex-direction: row; + justify-content: space-between; + align-items: center; + width: 200px; +} +.home-body .home .home-footer > div > a { + color: rgba(255, 255, 255, 0.8588235294); + display: flex; + align-items: center; + text-decoration: none; +} + +@media (min-width: 50rem) { + .breadcrumbs { + margin-top: -1rem; + } +} +.breadcrumbs ol { + padding-left: 0; + margin-bottom: 0.75rem; + margin-top: 0; + list-style: none; +} +.breadcrumbs li { + display: table-cell; + font-size: 0.6875rem !important; +} +@media (min-width: 31.25rem) { + .breadcrumbs li { + font-size: 0.75rem !important; + } +} +.breadcrumbs li::before { + display: none; +} +.breadcrumbs li::after { + display: inline-block; + margin-right: 0.5rem; + margin-left: 0.5rem; + color: #959396; + content: "/"; +} +.breadcrumbs li:last-child::after { + content: ""; +} + +@media (min-width: 50rem) { + .breadcrumbs { + margin-top: -1rem; + } +} +.breadcrumbs ol { + padding-left: 0; + margin-bottom: 0.75rem; + list-style: none; +} +.breadcrumbs li { + display: table-cell; + font-size: 0.6875rem !important; +} +@media (min-width: 31.25rem) { + .breadcrumbs li { + font-size: 0.75rem !important; + } +} +.breadcrumbs li::before { + display: none; +} +.breadcrumbs li::after { + display: inline-block; + margin-right: 0.5rem; + margin-left: 0.5rem; + color: #959396; + content: "/"; +} +.breadcrumbs li:last-child::after { + content: ""; +} + +.btn:focus { + display: none; +} + +a:not([class]) { + text-decoration: underline; + text-decoration-color: #eeebee; + text-underline-offset: 2px; +} +a:not([class]):hover { + text-decoration-color: rgba(20, 100, 165, 0.2392156863); +} + +.nav-list .nav-list-item .nav-list-expander { + color: rgba(0, 0, 0, 0.7411764706); +} +.nav-list .nav-list-item .nav-list-link { + color: rgba(0, 0, 0, 0.7411764706); + font-weight: 400; + font-size: 1rem; +} +.nav-list .nav-list-item .nav-list-link.active { + color: rgba(0, 0, 0, 0.6); + font-weight: 500; + font-size: 1rem; +} + +.header-custom-main { + display: flex; + place-content: end; + column-gap: 10px; + margin-right: 33px; +} +.header-custom-main .toggle-theme { + cursor: pointer; +} +.header-custom-main .select { + width: 65px; + border-style: none; + background: transparent; + color: rgba(0, 0, 0, 0.7411764706); +} +.header-custom-main .github-div { + display: flex; + align-items: center; +} +.header-custom-main .github-div > a { + display: flex; + align-items: center; +} + +.o-tab { + overflow: hidden; + padding-bottom: 6px; + /* Style the buttons that are used to open the tab content */ + /* Change background color of buttons on hover */ + /* Create an active/current tablink class */ +} +.o-tab button { + background-color: inherit; + float: left; + border: none; + outline: none; + cursor: pointer; + padding: 12px 16px; + transition: 0.3s; + font-size: 0.8em; + color: rgba(0, 0, 0, 0.7411764706); +} +.o-tab button:hover { + background-color: #93c7f2; + border-bottom: 2px solid rgba(20, 100, 165, 0.2392156863); +} +.o-tab button.active { + border-bottom: 2px solid #1464A5; +} + +/* Style the tab content */ +.o-tabcontent { + display: none; + padding: 6px 12px; + -webkit-animation: fadeEffect 1s; + animation: fadeEffect 1s; +} + +.o-component-container .list__item { + padding-right: 0; +} +.o-component-container .list__item .archive__item-excerpt { + margin-top: 0; + font-size: 0.75em; +} + +.mdl-data-table td[required] p.first:after { + content: " *"; +} + +.attributes-list { + overflow: hidden; +} +.attributes-list li { + display: inline-block; + width: 50%; + margin-bottom: 0.25em; + font-size: 18px; +} + +@media (min-width: 66.5rem) { + .sidebar__right { + position: fixed; + top: 64px; + right: 0px; + max-height: calc(100% - 112px); + min-height: fit-content; + width: 360px; + padding-bottom: 20px; + border: 1px solid #eeebee; + border-radius: 4px; + overflow: auto; + background-color: #fff; + z-index: 999; + } +} + +.toc { + letter-spacing: 1px; +} +.toc .nav__title { + margin: 0; + cursor: pointer; + font-size: 1rem !important; + color: #1464A5; + background-color: #E3ECF4; + padding: 20px 14px 8px 14px; +} +@media (min-width: 31.25rem) { + .toc .nav__title { + font-size: 1.125rem !important; + } +} +@media (min-width: 50rem) { + .toc .nav__title { + font-size: 0.875rem !important; + } +} +@media (min-width: 50rem) and (min-width: 31.25rem) { + .toc .nav__title { + font-size: 1rem !important; + } +} + +.toc__menu { + font-size: 1rem !important; + margin: 0; + padding: 0; + width: 100%; + list-style: none; +} +@media (min-width: 31.25rem) { + .toc__menu { + font-size: 1.125rem !important; + } +} +@media (min-width: 50rem) { + .toc__menu { + font-size: 0.875rem !important; + } +} +@media (min-width: 50rem) and (min-width: 31.25rem) { + .toc__menu { + font-size: 1rem !important; + } +} +.toc__menu li::before { + content: "" !important; +} +.toc__menu a { + text-decoration: none; + color: rgba(0, 0, 0, 0.7411764706); +} +.toc__menu a.active { + color: rgba(0, 0, 0, 0.6); + font-weight: 500; +} +.toc__menu li ul > li a { + padding-top: 0.2rem; + border: none; + text-transform: none; +} + +@media (min-width: 66.5rem) { + .toc__menu.collapsed { + display: none; + } + .toc.collapsed { + position: relative; + bottom: 14px; + } + .nav__title.collapsed { + height: 100%; + font-size: 15px !important; + cursor: pointer; + } + .sidebar__right.collapsed { + padding-bottom: 0px; + width: auto; + transform: rotate(270deg); + transform-origin: bottom right; + top: 34px; + height: 30px; + overflow: hidden; + color: #E3ECF4; + } +} +.faq-posts .panel-default .panel-heading { + color: #333; + background-color: #f5f5f5; + border-color: #ddd; + border-bottom: 0; + padding: 10px 30px; + border-bottom: 1px solid transparent; + border-top-left-radius: 3px; + border-top-right-radius: 3px; + cursor: pointer; +} +.faq-posts .panel-default .panel-title { + margin-top: 0; + margin-bottom: 0; + font-size: 16px; + color: inherit; +} +.faq-posts .panel-body { + padding: 15px; + font-size: 14px; +} +.faq-posts .panel { + margin-bottom: 0; + border-radius: 4px; + background-color: #fff; + border: 1px solid transparent; +} +.faq-posts .collapse { + display: none; +} +.faq-posts .collapse.in { + display: block; +} +.faq-posts .collapsing { + position: relative; + height: 0; + overflow: hidden; + -webkit-transition-property: height, visibility; + transition-property: height, visibility; + -webkit-transition-duration: 0.35s; + transition-duration: 0.35s; + -webkit-transition-timing-function: ease; + transition-timing-function: ease; +} + +.multicolumn { + display: flex; +} + +.toggle-tree-btn { + all: unset; + margin-bottom: 10px; + align-self: flex-end; + position: absolute; + top: 8px; + right: 8px; + cursor: pointer; +} + +.multicolumnleft { + flex: 1; + max-width: 100%; + overflow-x: auto; + padding: 0 40px 0 0; + box-sizing: border-box; + position: relative; +} + +.multicolumnnopadding { + flex: 1; + max-width: 100%; + overflow-x: auto; + padding: 0 0 0 0; + box-sizing: border-box; +} + +.multicolumnright { + box-sizing: border-box; + border-left: 1px solid #ccc; + transition: width 0.3s ease; + overflow-x: auto; +} +.multicolumnright.collapsed { + width: 0; + overflow: hidden; + padding: 0; + border-left: none; + display: none; +} + +.verticalDivider { + border-left: 1px solid #F2F3F3; + padding-right: 10px; + margin-left: 10px; +} + +.jstreeloader ul > li::before { + content: ""; +} + +i.jstree-icon { + filter: invert(36%) sepia(8%) saturate(440%) hue-rotate(218deg) brightness(90%) contrast(85%); +} + +@media (min-width: 50rem) and ((max-width: 66.5rem)) { + #top.main { + max-width: none; + margin-left: 16.5rem; + } +} +@media (min-width: 66.5rem) { + body > div.side-bar { + min-width: auto; + width: auto; + } + #top.main { + max-width: none; + margin-left: calc(16.5rem + 1px); + } +} +@media (min-width: 50rem) { + div.side-bar { + width: 16.5rem; + } +} +table { + table-layout: auto; + width: 120px; +} + +.menu-card-container { + display: grid; + grid-gap: 32px; + grid-template-columns: repeat(auto-fit, minmax(auto, 368px)); + grid-auto-rows: minmax(auto, 208px); + justify-content: center; +} +.menu-card-container a { + text-decoration: none; + color: rgba(0, 0, 0, 0.7411764706); +} +.menu-card-container a .menu-card { + display: flex; + flex-direction: column; + justify-content: space-between; + height: 100%; + border-radius: 2px; + border: 1px solid rgba(0, 0, 0, 0.1215686275); +} +.menu-card-container a .menu-card .image-container { + display: flex; + justify-content: center; + align-items: center; + height: 128px; + border-bottom: 1px solid rgba(0, 0, 0, 0.1215686275); + background-color: #F6F6F6; +} +.menu-card-container a .menu-card .bottom-image { + height: 80px; + vertical-align: middle; + text-align: start; + padding: 28px 18px; + margin: 0; + overflow: hidden; + text-overflow: ellipsis; + font-weight: 500; +} +.menu-card-container a .menu-card .text-container { + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + height: 88px; + font-weight: 500; + border-bottom: 1px solid rgba(0, 0, 0, 0.1215686275); +} +.menu-card-container a .menu-card .text-container > p { + width: 100%; + display: flex; + align-items: center; + justify-content: center; + text-align: start; + padding: 10px 18px 0 18px; + height: 100%; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + color: rgba(0, 0, 0, 0.8705882353); +} +.menu-card-container a .menu-card .bottom-title { + height: 118px; + text-overflow: ellipsis; + overflow: hidden; + text-align: start; + margin: 0; + padding: 20px 18px; +} +.menu-card-container a:hover .menu-card .bottom-title { + background-color: #C7DAE9; +} +.menu-card-container a:hover .menu-card .bottom-image { + background-color: #C7DAE9; +} + +.menu-card-container:has(.image-container) { + grid-template-columns: repeat(auto-fit, minmax(auto, 272px)); + grid-auto-rows: minmax(208px, auto); +} + +.hidden { + display: none; +} + +.menuitem-badge { + background: linear-gradient(-180deg, #1464A5 0, rgba(20, 100, 165, 0.2392156863) 100%); + color: #fff; + padding: 2px 4px; + vertical-align: middle; + border-radius: 3px; + font-weight: 700; + font-size: 11px; + position: relative; + top: -1px; +} + +img[alt="Alt text"] { + width: 100%; +} + +/*# sourceMappingURL=just-the-docs-default.css.map */ \ No newline at end of file diff --git a/v3/assets/css/just-the-docs-default.css.map b/v3/assets/css/just-the-docs-default.css.map new file mode 100644 index 0000000..f09b191 --- /dev/null +++ b/v3/assets/css/just-the-docs-default.css.map @@ -0,0 +1 @@ +{"version":3,"sourceRoot":"","sources":["../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/vendor/OneLightJekyll/syntax.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/vendor/normalize.scss/normalize.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/base.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/color_schemes/light.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/support/mixins/_typography.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/support/mixins/_layout.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/support/_variables.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/layout.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/content.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/navigation.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/typography.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/labels.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/buttons.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/support/mixins/_buttons.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/search.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/tables.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/code.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/utilities/_colors.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/utilities/_layout.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/utilities/_typography.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/utilities/_lists.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/utilities/_spacing.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/print.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/skiptomain.scss","just-the-docs-default.scss","../../_sass/custom/custom.scss","../../_sass/custom/setup.scss"],"names":[],"mappings":";AAEA;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;EACA;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;EESJ;IAEI;IACA,WD6EY;IC5EZ,aDwEW;;;ADrFX;EESJ;IAUI;AAAA;AAAA;AAAA;;;;AAQJ;EFhBE,eCuDK;EDtDL,cCsDK;ECpCL,aDoCK;ECnCL,gBDmCK;;ADlEH;EE2BJ;IFZI,eCqDG;IDpDH,cCoDG;;;ADpEH;EE2BJ;IAOI,aDkCG;ICjCH,gBDiCG;;;;AC7BP;EACE;EACA;EACA,kBDrBY;;ADrBV;EEuCJ;IAMI;IACA;IACA,QD2CY;IC1CZ,kBDjCI;ICkCJ;;;AAGF;EACE;;AFrDA;EEoDF;IAII;;;;AAKN;AAAA;AAAA;EAGE;;AFhEE;EE6DJ;AAAA;AAAA;IAMI,ODiBQ;;;;ACbZ;EACE;;AAEA;EACE;;AF3EA;EEuEJ;IAQI;IACA,aDVG;ICWH,gBDfG;ICgBH;IACA;;;;AAIJ;EACE;EACA,YDCc;ECAd;;AF1FE;EEuFJ;IAMI,QDHY;ICIZ,YDJY;ICKZ;;;;AAIJ;EFxFE,eCuDK;EDtDL,cCsDK;ECoCL;EACA;EACA;EACA;EACA,aDzCK;EC0CL,gBD1CK;EC2CL,ODxFY;EFOZ;;AC3BE;EEmGJ;IFpFI,eCqDG;IDpDH,cCoDG;;;ADpEH;EEmGJ;IHrEI;IACA,aEpCuB;;;ADKvB;EEmGJ;IAaI,aDhDG;ICiDH,gBDjDG;;;;ACsDL;EACE;EACA;EACA;EACA;EACA;EACA;;;AAIJ;EACE;EACA;EACA,SDjEK;ECkEL;;;AFpIE;EEwIF;IACE;;;AAIJ;EACE;;;AAQF;EACE;;;AASF;EACE;EACA,gBD1FM;EC2FN;;AFnKE;EEgKJ;IAMI;IACA;;;;AAMJ;EFlKE,eCuDK;EDtDL,cCsDK;EC8GL;EACA;EACA;EACA,aDjHK;ECkHL,gBDlHK;ECmHL,ODrKY;EFrBZ;;ACKE;EE6KJ;IF9JI,eCqDG;IDpDH,cCoDG;;;ADpEH;EE6KJ;IH/KI;;;ACEA;EE6KJ;IAYI;IACA;;;;AAIJ;EACE,OD5HK;EC6HL,QD7HK;EC8HL,ODxKW;;;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;;;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;;;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;;;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;;;ACnBF;EACE,kBlBmBM;;;AkBlBP;EACG;EACA;EACA,elB6EY;EkB5EZ;EACA;;AAEA;EACE,OlBeQ;EkBdR;EACA;EACA;EACA;EACA;;;AAIN;EACI;EACA;EACA,elB4DY;EkB3DZ;EACA;;AACA;EACE;EACA;EACA,OlBHQ;EkBIR;EACA;EACA;EACA;EACA;;;AAIN;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;AAIJ;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;AAIJ;EACI;EACA;EACA,elBgBY;EkBfZ;EACA;;AAEA;EACI,OlB9CM;EkB+CN;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACE,OlBxDQ;EkByDR;EACA;EACA;EACA;EACA;;;AAIN;EACI;EACA;EACA,elBXY;EkBYZ;EACA;;AACA;EACE;EACA;EACA,OlB1EQ;EkB2ER;EACA;EACA;EACA;EACA;;;AAIN;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;AAIJ;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;AAIJ;EACI;EACA;EACA,elBvDY;EkBwDZ;EACA;;AAEA;EACI,OlBzGG;EkB0GH;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACE,OlBnHK;EkBoHL;EACA;EACA;EACA;EACA;;;AAIN;EACI;EACA;EACA,elBlFY;EkBmFZ;EACA;;AACA;EACE;EACA;EACA,OlBrIK;EkBsIL;EACA;EACA;EACA;EACA;;;AAIN;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;AAIJ;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;AAIJ;EACI;EACA;EACA,elB9HY;EkB+HZ;EACA;;AAEA;EACI,OlBpKE;EkBqKF;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACE,OlB9KI;EkB+KJ;EACA;EACA;EACA;EACA;;;AAIN;EACI;EACA;EACA,elBzJY;EkB0JZ;EACA;;AACA;EACE;EACA;EACA,OlBhMI;EkBiMJ;EACA;EACA;EACA;EACA;;;AAIN;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;AAIJ;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;ACxRJ;EACE;IACE;IACA;IACA;;;AAKJ;EAEI,OCTU;;;ADkBd;EACE;;AAEA;EACE;EACA;EACA;EACA;EACA,kBCbc;EDcd;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;ApB7CF;EoBsCA;IAUI;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA,kBCxDU;EDyDV;;ApB3DJ;EoBmDE;IAWI;IACA;IACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;ApBxEN;EoBmEI;IAQI;;;AAGF;EACE;EACA;;AAIJ;EACE;EACA;EACA;EACA,kBCtFQ;EDuFR;EACA;EACA;EACA;EACA;EACA;;ApB9FN;EoBoFI;IAaI;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ApB5GR;EoBoGM;IAWI;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAEA;EACE;;AAKN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ApBrJV;EoB6IQ;IAWI;IACA;IACA;IACA;;;AAKN;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAEA;EACE,kBCzKE;ED0KF;;AAIJ;EACE;;AAEA;EACE;EACA;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;;AAMR;EACE;EACA;EACA;EACA;EACA;;ApBjNJ;EoB4ME;IAQI;;;ApBpNN;EoB4ME;IAYI;IACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;ApBjON;EoB4NI;IAQI;;;AAGF;EACE;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAKN;EACE;EACA;EACA;EACA;;ApBlQN;EoB8PI;IAOI;;;AAOR;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;ApBlSJ;EoB+RE;IAMI;;;AAIJ;EACE;EACA;;AAGA;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAKJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;ApBjUN;EoB0TI;IAUI;;;ApBpUR;EoB0TI;IAcI;;;AAGF;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAIJ;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAKN;EACE;EACA;;AAEA;EACE;EACA;EACA;EACA;;ApBjXR;EoB6WM;IAOI;IACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;ApB7XV;EoBiYU;IACE;;;AAIJ;EACE;EACA;EACA;EACA;EACA;;AAKN;EACE;EACA;;AAEA;EACE;EACA;EACA;EACA;;ApBxZR;EoBoZM;IAOI;IACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;ApBpaV;EoBwaU;IACE;;;AAKN;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAKN;EACE;EACA;;AAEA;EACE;EACA;EACA;EACA;;ApBncR;EoB+bM;IAOI;IACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;ApB/cV;EoBmdU;IACE;;;AAMR;EACE;EACA;;AAEA;EACE;EACA;EACA;EACA;;ApBleR;EoB8dM;IAOI;IACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;ApB9eV;EoBkfU;IACE;;;AAQZ;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ApBjhBF;EoBygBA;IAWI;IACA;IACA;;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;;ApBziBN;EoBijBJ;IAEI;;;AAGF;EACE;EACA,enBvfG;EmBwfH;EACA;;AAGF;EACE;ErBnkBF;;ACKE;EoB6jBF;IrB/jBE;;;AqBmkBA;EACE;;AAGF;EACE;EACA,cnBvgBC;EmBwgBD,anBxgBC;EmBygBD,OnBzjBQ;EmB0jBR;;AAIA;EACE;;;ApB/kBJ;EoBslBJ;IAEI;;;AAGF;EACE;EACA,enB5hBG;EmB6hBH;;AAGF;EACE;ErBvmBF;;ACKE;EoBimBF;IrBnmBE;;;AqBumBA;EACE;;AAGF;EACE;EACA,cnB3iBC;EmB4iBD,anB5iBC;EmB6iBD,OnB7lBQ;EmB8lBR;;AAIA;EACE;;;AAQR;EACE;;;AAIF;EACE;EACA,uBnB5mBY;EmB6mBZ;;AAEA;EAEI,uBCjpBW;;;AD8pBb;EAEI,OC9pBE;;ADsqBN;EAEI,OCxqBE;ED+qBJ;EAEA,WnBpqBQ;;AmBsqBR;EAEI,OCprBA;ED4rBF;EACA,WnBjrBM;;;AmBwrBd;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;EAGE,OCrtBI;;ADiuBR;EACE;EACA;;AAEA;EACE;EACA;;;AAMN;EACE;EACA;AAEA;AAoBA;AAaA;;AAhCA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAGE,OC7vBI;;ADswBR;EAEI;EACA;;AAUJ;EAEI;;;AASN;AACA;EACE;EACA;EACA;EACA;;;AAIA;EACE;;AAEA;EACE;EACA;;;AAUE;EACE;;;AAQV;EACE;;AAEA;EACE;EACA;EACA;EACA;;;ApB9zBA;EoBk0BJ;IAGI;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,kBnBh0BI;ImBi0BJ;;;;AAIJ;EACE;;AAEA;EACE;EACA;ErBt0BF;EqB80BI,OC92BQ;ED+2BR,kBC32BO;EDm3BT;;ApB12BA;EoBu1BF;IrBj0BE;;;ACtBA;EoBu1BF;IrB50BA;;;ACXE;EoBu1BF;IrBz0BE;;;;AqBg2BJ;ErB31BE;EqBm2BA;EACA;EACA;EACA;;ApBz3BE;EoB82BJ;IrBx1BI;;;ACtBA;EoB82BJ;IrBn2BE;;;ACXE;EoB82BJ;IrBh2BI;;;AqB62BF;EACE;;AAGF;EACE;EAGE,OC34BI;;ADk5BN;EAGI,OCp5BE;ED25BJ;;AAIJ;EACE;EACA;EACA;;;AAMJ;EACE;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;IACA;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;IACA;IAGE,OCp8BO;;;ADk9BT;EAEI;EACA;EACA;EAUF;EAEA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAIJ;EACE;EACA;;AAGF;EACE;EACA;EAGE;EAOF;;AAMF;EACE;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIJ;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EAGE;EAOF;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;;;AAIJ;EAGI;EAOF;EACA;;;AAIF;EACE;;;AAoBF;EAEQ;;;AAQR;EACE;IACE;IACA;;;AAIJ;EACE;IACE;IACA;;EAGF;IACE;IACA;;;AAIJ;EACE;IACE;;;AAMJ;EACE;EACA;;;AAKF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EAGE,OC7qCI;;ADorCN;EACE;EACA;EACA;EACA;EACA;EAGE;;AAOF;EACE;EACA;EACA;EACA;EAGE;EACA;;AASJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EAGE;;AAOF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAGE;;AASN;EACE;EACA;EACA;EACA;EACA;EACA;;AAMA;EAGI;;AAQJ;EAEI;;;AAYZ;EACE;EACA;;;AAGF;EACE;;;AAIF;EAEI;EACA;EAQF;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE","sourcesContent":["// 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\n.main {\n @include mq(md) {\n position: relative;\n max-width: $content-width;\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\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 display: none;\n background-color: $sidebar-color;\n\n @include mq(md) {\n display: flex;\n justify-content: space-between;\n height: $header-height;\n background-color: $body-background-color;\n border-bottom: $border $border-color;\n }\n\n &.nav-open {\n display: block;\n\n @include mq(md) {\n display: flex;\n }\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$logo: \"/docs/v3/assets/icons/logo-ontimize-blanco.png\";\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}p.highlight, blockquote.highlight {\n background: rgba($grey-dk-000, 0.2);\n border-left: $border-radius solid $grey-dk-300;\n border-radius: $border-radius;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);\n padding: .8rem;\n \n > .highlight-title {\n color: $grey-dk-300;\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n}\n\np.highlight-title, blockquote.highlight-title {\n background: rgba($grey-dk-000, 0.2);\n border-left: $border-radius solid $grey-dk-300;\n border-radius: $border-radius;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);\n padding: .8rem;\n > p:first-child {\n margin-top: 0;\n margin-bottom: 0;\n color: $grey-dk-300;\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n}\n\nblockquote.highlight {\n margin-left: 0;\n margin-right: 0;\n \n > p:first-child {\n margin-top: 0;\n }\n \n > p:last-child {\n margin-bottom: 0;\n }\n}\n\nblockquote.highlight-title {\n margin-left: 0;\n margin-right: 0;\n \n > p:nth-child(2) {\n margin-top: 0;\n }\n \n > p:last-child {\n margin-bottom: 0;\n }\n}\n\np.important, blockquote.important {\n background: rgba($grey-dk-000, 0.2);\n border-left: $border-radius solid $grey-dk-300;\n border-radius: $border-radius;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);\n padding: .8rem;\n \n &::before {\n color: $grey-dk-300;\n content: \"Important\";\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n \n > .important-title {\n color: $grey-dk-300;\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n}\n\np.important-title, blockquote.important-title {\n background: rgba($grey-dk-000, 0.2);\n border-left: $border-radius solid $grey-dk-300;\n border-radius: $border-radius;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);\n padding: .8rem;\n > p:first-child {\n margin-top: 0;\n margin-bottom: 0;\n color: $grey-dk-300;\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n}\n\nblockquote.important {\n margin-left: 0;\n margin-right: 0;\n \n > p:first-child {\n margin-top: 0;\n }\n \n > p:last-child {\n margin-bottom: 0;\n }\n}\n\nblockquote.important-title {\n margin-left: 0;\n margin-right: 0;\n \n > p:nth-child(2) {\n margin-top: 0;\n }\n \n > p:last-child {\n margin-bottom: 0;\n }\n}\n\np.note, blockquote.note {\n background: rgba($blue-000, 0.2);\n border-left: $border-radius solid $blue-300;\n border-radius: $border-radius;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);\n padding: .8rem;\n \n &::before {\n color: $blue-300;\n content: \"Note\";\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n \n > .note-title {\n color: $blue-300;\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n}\n\np.note-title, blockquote.note-title {\n background: rgba($blue-000, 0.2);\n border-left: $border-radius solid $blue-300;\n border-radius: $border-radius;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);\n padding: .8rem;\n > p:first-child {\n margin-top: 0;\n margin-bottom: 0;\n color: $blue-300;\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n}\n\nblockquote.note {\n margin-left: 0;\n margin-right: 0;\n \n > p:first-child {\n margin-top: 0;\n }\n \n > p:last-child {\n margin-bottom: 0;\n }\n}\n\nblockquote.note-title {\n margin-left: 0;\n margin-right: 0;\n \n > p:nth-child(2) {\n margin-top: 0;\n }\n \n > p:last-child {\n margin-bottom: 0;\n }\n}\n\np.warning, blockquote.warning {\n background: rgba($red-000, 0.2);\n border-left: $border-radius solid $red-300;\n border-radius: $border-radius;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);\n padding: .8rem;\n \n &::before {\n color: $red-300;\n content: \"Warning\";\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n \n > .warning-title {\n color: $red-300;\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n}\n\np.warning-title, blockquote.warning-title {\n background: rgba($red-000, 0.2);\n border-left: $border-radius solid $red-300;\n border-radius: $border-radius;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);\n padding: .8rem;\n > p:first-child {\n margin-top: 0;\n margin-bottom: 0;\n color: $red-300;\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n}\n\nblockquote.warning {\n margin-left: 0;\n margin-right: 0;\n \n > p:first-child {\n margin-top: 0;\n }\n \n > p:last-child {\n margin-bottom: 0;\n }\n}\n\nblockquote.warning-title {\n margin-left: 0;\n margin-right: 0;\n \n > p:nth-child(2) {\n margin-top: 0;\n }\n \n > p:last-child {\n margin-bottom: 0;\n }\n}\n\n\n@import \"./custom/custom\";\n\n\n","// Sticky header\n@media (min-width: 50rem) {\n #main-header {\n position: sticky;\n top: 0;\n z-index: 999\n }\n}\n\n// Custom text colors\n.text-primary-900 {\n @if $color_scheme=='light' {\n color: $primary-900\n }\n\n @else {\n color: $primary-900-dark\n }\n}\n\n// Home page\n.home-body {\n padding: 0;\n\n .home {\n display: flex;\n flex-direction: column;\n justify-content: start;\n align-items: center;\n background-color: $home-background;\n color: #FFFFFFBD;\n width: 100%;\n height: 100%;\n\n a {\n color: #A8C7FF;\n text-decoration: underline;\n text-decoration-color: #A8C7FF;\n\n &:hover {\n text-decoration-color: #A8C7FF;\n }\n }\n\n .text-primary-400 {\n color: #4286FF;\n }\n\n .white-87 {\n color: #FFFFFFDE;\n }\n\n .introduction {\n background-image: url('../../assets/images/home/bg-landing.png');\n background-repeat: repeat;\n display: flex;\n flex-direction: column;\n justify-content: start;\n height: 100%;\n width: 100%;\n\n @include mq (lg) {\n height: 100vh;\n }\n\n .header {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: space-around;\n gap: 28px;\n padding: 0 5rem 28px;\n background-color: $home-background;\n box-shadow: 0 1px 12px rgba(255, 255, 255, 0.5);\n\n @include mq(home-header) {\n height: 96px;\n padding-bottom: 0;\n flex-direction: row;\n }\n\n .site-header {\n flex-shrink: 0;\n height: fit-content;\n width: fit-content;\n border: none;\n align-items: end;\n\n @include mq(home-header) {\n align-items: center;\n }\n\n img {\n width: 140px;\n height: 41px;\n }\n }\n\n .main-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n background-color: $home-background;\n border: none;\n gap: 28px;\n flex-grow: 1;\n flex-direction: column;\n height: inherit;\n padding: 0;\n\n @include mq(home-header) {\n flex-direction: row;\n }\n\n .search {\n display: flex;\n height: 48px;\n max-height: 48px;\n width: auto;\n min-width: 243px;\n padding: 0;\n justify-content: center;\n position: static;\n\n @include mq(home-header) {\n min-width: 194px;\n }\n\n .search-input-wrap {\n position: relative;\n top: 0;\n width: 100%;\n max-width: 33.5rem;\n border-radius: 4px;\n box-shadow: none;\n height: 100%;\n\n .search-input {\n font-size: 0.875rem;\n padding-left: 2.5rem;\n background-color: transparent;\n border: solid 1px #FFFFFFBD;\n border-radius: 4px;\n color: white;\n }\n\n .search-label {\n padding-left: 1rem;\n\n >svg {\n color: #FFFFFFBD;\n }\n }\n }\n\n .search-results {\n left: auto;\n background-color: #293239;\n box-shadow: 0 1px 12px rgba(255, 255, 255, 0.5);\n width: -webkit-fill-available;\n min-width: 243px;\n max-width: 243px;\n max-height: calc(100vh - #{$sp-10});\n top: 128px;\n\n @include mq(home-header) {\n top: 48px;\n min-width: 194px;\n max-width: 33.5rem;\n max-height: calc(100vh - 200%);\n }\n }\n }\n\n .header-custom-main {\n display: flex;\n column-gap: 28px;\n color: #FFFFFFBD;\n\n .select {\n border-style: none;\n background-color: transparent;\n color: inherit;\n\n >option {\n background-color: $home-background;\n color: inherit;\n }\n }\n\n .github-div {\n flex-shrink: 0;\n\n >a {\n display: flex;\n align-items: center;\n }\n }\n\n .docs-div {\n display: flex;\n justify-content: center;\n align-items: center;\n border: solid 1px #FFFFFFBD;\n border-radius: 4px;\n width: 80px;\n height: 40px;\n font-size: 16px;\n }\n\n >a {\n text-decoration: none;\n color: #FFFFFFBD;\n }\n }\n }\n }\n\n .landing {\n display: flex;\n flex-direction: column;\n row-gap: 28px;\n align-items: center;\n height: calc(100% - 226.5px);\n\n @include mq(home-header) {\n height: calc(100% - 96px);\n }\n\n @include mq (lg) {\n justify-content: space-around;\n flex-direction: row;\n }\n\n .text {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: inherit;\n padding: 28px 28px 0;\n\n @include mq(lg) {\n max-width: 50%;\n }\n\n >h4 {\n align-self: start;\n margin: 0;\n }\n\n >p {\n color: #4286FF;\n }\n\n .home-btn {\n font-size: 14px;\n color: #FFF;\n background-color: #2876FF;\n height: 42px;\n width: 148px;\n align-self: start;\n\n &:hover {\n background-color: #1A51C8;\n }\n }\n }\n\n .banner {\n display: flex;\n justify-content: center;\n flex-shrink: 1;\n padding: 0 28px;\n\n @include mq (lg) {\n max-width: fit-content;\n }\n }\n }\n\n }\n\n .top-content {\n display: flex;\n flex-direction: column;\n width: 80%;\n }\n\n .custom-content {\n display: flex;\n flex-direction: row;\n column-gap: 28px;\n width: 80%;\n\n .code-icon {\n width: 72px;\n height: 72px;\n position: absolute;\n transform: translate(-100px, 12px);\n }\n\n .code-icon-container {\n display: flex;\n flex-direction: column;\n min-width: 72px;\n\n @include mq(home-imgs-max) {\n display: none;\n }\n }\n\n .main-content {\n display: flex;\n flex-direction: column;\n\n\n .section-text {\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n flex-shrink: 0;\n\n >h1 {\n font-weight: 600;\n }\n\n }\n\n .link-div {\n display: flex;\n flex-direction: row;\n flex-grow: 1;\n flex-shrink: 0;\n margin-top: 82px;\n margin-bottom: 124px;\n transform: translateX(-150px);\n\n @include mq(mobile-m) {\n transform: translateX(-100px);\n }\n\n @include mq(home-header) {\n transform: translateX(0);\n }\n\n .link-img {\n display: flex;\n flex-shrink: 0;\n align-items: start;\n\n >img {\n width: 100%;\n max-width: 168px;\n aspect-ratio: 1 / 1;\n }\n }\n\n .link-texts {\n display: flex;\n flex-direction: column;\n flex-shrink: 1;\n flex-grow: 1;\n\n >h2 {\n display: flex;\n flex-direction: column;\n justify-content: center;\n min-height: 168px;\n font-weight: 600;\n color: #75A7FF;\n margin: 0;\n }\n }\n }\n\n .productivity-section {\n display: flex;\n flex-direction: column;\n\n .productivity-img-container {\n display: flex;\n align-items: center;\n height: calc(100vw / 2.57);\n max-height: 1119px;\n\n @include mq(home-imgs-max) {\n width: calc(80vw - 122px);\n justify-content: center;\n }\n\n >img {\n max-width: 2888px;\n width: 100%;\n position: absolute;\n left: 0;\n aspect-ratio: 2880 / 1119;\n }\n\n @include mq(home-imgs-max) {\n >img {\n position: static;\n }\n }\n\n .productivity-bottom {\n display: flex;\n flex-direction: column;\n justify-items: start;\n flex-shrink: 0;\n flex-grow: 1;\n }\n }\n }\n\n .performance-section {\n display: flex;\n flex-direction: column;\n\n .performance-img-container {\n display: flex;\n align-items: center;\n height: calc(100vw / 2.27);\n max-height: 1268px;\n\n @include mq(home-imgs-max) {\n width: calc(80vw - 122px);\n justify-content: center;\n }\n\n >img {\n max-width: 2888px;\n width: 100%;\n position: absolute;\n left: 0;\n aspect-ratio: 2888 / 1268;\n }\n\n @include mq(home-imgs-max) {\n >img {\n position: static;\n }\n }\n }\n\n .performance-bottom {\n display: flex;\n flex-grow: 1;\n flex-shrink: 0;\n flex-direction: column;\n justify-items: start;\n\n >a {\n align-self: start;\n }\n }\n }\n\n .components-section {\n display: flex;\n flex-direction: column;\n\n .components-img-container {\n display: flex;\n align-items: center;\n height: calc(100vw / 2.27);\n max-height: 1268px;\n\n @include mq(home-imgs-max) {\n width: calc(80vw - 122px);\n justify-content: center;\n }\n\n >img {\n max-width: 2888px;\n width: 100%;\n position: absolute;\n left: 0;\n aspect-ratio: 2888 / 1268;\n }\n\n @include mq(home-imgs-max) {\n >img {\n position: static;\n }\n }\n }\n }\n\n .addons-section {\n display: flex;\n flex-direction: column;\n\n .addons-img-container {\n display: flex;\n align-items: center;\n height: calc(100vw / 2.27);\n max-height: 1268px;\n\n @include mq(home-imgs-max) {\n width: calc(80vw - 122px);\n justify-content: center;\n }\n\n >img {\n max-width: 2888px;\n width: 100%;\n position: absolute;\n left: 0;\n aspect-ratio: 2888 / 1268;\n }\n\n @include mq(home-imgs-max) {\n >img {\n position: static;\n }\n }\n }\n }\n }\n }\n\n .footer-img-container {\n display: flex;\n align-items: center;\n height: calc(100vw / 7.5);\n max-height: 512px;\n width: 100%;\n\n >img {\n max-width: 3840px;\n width: 100%;\n aspect-ratio: 3840 / 512;\n }\n }\n\n .home-footer {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n padding: 28px 5rem;\n text-align: justify;\n border-top: solid 1px #FFFFFFBD;\n\n @include mq(lg) {\n flex-direction: row;\n height: 74px;\n padding: 0 5rem;\n }\n\n >img {\n width: 140px;\n height: 41px;\n }\n\n >div {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n width: 200px;\n\n >a {\n color: #FFFFFFDB;\n display: flex;\n align-items: center;\n text-decoration: none;\n }\n }\n }\n }\n}\n\n// breadcrumbs.html include style\n.breadcrumbs {\n @include mq(md) {\n margin-top: -$sp-4;\n }\n\n ol {\n padding-left: 0;\n margin-bottom: $sp-3;\n margin-top: 0;\n list-style: none;\n }\n\n li {\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}\n\n// breadcrumbs.html include style\n.breadcrumbs {\n @include mq(md) {\n margin-top: -$sp-4;\n }\n\n ol {\n padding-left: 0;\n margin-bottom: $sp-3;\n list-style: none;\n }\n\n li {\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\n}\n\n// Button outline style\n.btn:focus {\n display: none;\n}\n\n// Links\na:not([class]) {\n text-decoration: underline;\n text-decoration-color: $border-color;\n text-underline-offset: 2px;\n\n &:hover {\n @if $color_scheme=='light' {\n text-decoration-color: $primary-500-24;\n }\n\n @else {\n text-decoration-color: $primary-500-24-dark;\n }\n }\n}\n\n// Default side bar\n.nav-list {\n .nav-list-item {\n\n .nav-list-expander {\n @if $color_scheme=='light' {\n color: $dark-74;\n }\n\n @else {\n color: $white-74;\n }\n }\n\n .nav-list-link {\n @if $color_scheme=='light' {\n color: $dark-74;\n }\n\n @else {\n color: $white-74;\n }\n\n font-weight: 400;\n // 16px\n font-size: $font-size-5;\n\n &.active {\n @if $color_scheme=='light' {\n color: $dark-60;\n }\n\n @else {\n color: $white-60;\n background-image: linear-gradient(-90deg, #1d1d1d 0%, rgba(29, 29, 29, 0.8) 80%, rgba(29, 29, 29, 0) 100%) !important;\n }\n\n font-weight: 500;\n font-size: $font-size-5;\n }\n }\n }\n}\n\n// Style of the header version changer\n.header-custom-main {\n display: flex;\n place-content: end;\n column-gap: 10px;\n margin-right: 33px;\n\n .toggle-theme {\n cursor: pointer;\n }\n\n .select {\n width: 65px;\n border-style: none;\n background: transparent;\n\n @if $color_scheme=='light' {\n color: $dark-74;\n }\n\n @else {\n color: $white-74;\n\n option {\n background-color: #27262b;\n }\n }\n }\n\n .github-div {\n display: flex;\n align-items: center;\n\n >a {\n display: flex;\n align-items: center;\n }\n }\n}\n\n// Style of the component-api tabs\n.o-tab {\n overflow: hidden;\n padding-bottom: 6px;\n\n /* Style the buttons that are used to open the tab content */\n button {\n background-color: inherit;\n float: left;\n border: none;\n outline: none;\n cursor: pointer;\n padding: 12px 16px;\n transition: .3s;\n font-size: 0.8em;\n\n @if $color_scheme=='light' {\n color: $dark-74;\n }\n\n @else {\n color: $white-74;\n }\n }\n\n /* Change background color of buttons on hover */\n button:hover {\n @if $color_scheme=='light' {\n background-color: lighten($primary-500, 40%);\n border-bottom: 2px solid $primary-500-24;\n }\n\n @else {\n background-color: lighten($primary-500-dark, 40%);\n border-bottom: 2px solid $primary-500-24-dark;\n }\n }\n\n /* Create an active/current tablink class */\n button.active {\n @if $color_scheme=='light' {\n border-bottom: 2px solid $primary-500;\n }\n\n @else {\n border-bottom: 2px solid $primary-500;\n }\n }\n}\n\n/* Style the tab content */\n.o-tabcontent {\n display: none;\n padding: 6px 12px;\n -webkit-animation: fadeEffect 1s;\n animation: fadeEffect 1s;\n}\n\n.o-component-container {\n .list__item {\n padding-right: 0;\n\n .archive__item-excerpt {\n margin-top: 0;\n font-size: .75em;\n }\n }\n}\n\n// Api tables\n.mdl-data-table {\n td {\n &[required] {\n p.first {\n &:after {\n content: ' *';\n }\n }\n }\n }\n}\n\n// Api attribute inhereds\n.attributes-list {\n overflow: hidden;\n\n li {\n display: inline-block;\n width: 50%;\n margin-bottom: .25em;\n font-size: 18px;\n }\n}\n\n.sidebar__right {\n\n @include mq(lg) {\n position: fixed;\n top: 64px;\n right: 0px;\n max-height: calc(100% - 112px);\n min-height: fit-content;\n width: 360px;\n padding-bottom: 20px;\n border: 1px solid $border-color;\n border-radius: 4px;\n overflow: auto;\n background-color: $body-background-color;\n z-index: 999;\n }\n}\n\n.toc {\n letter-spacing: 1px;\n\n .nav__title {\n margin: 0;\n cursor: pointer;\n @include fs-5;\n\n @include mq(md) {\n @include fs-4;\n }\n\n @if $color_scheme=='light' {\n color: $primary-500;\n background-color: $primary-50;\n }\n\n @else {\n color: $primary-50-dark;\n background-color: $primary-500-dark;\n }\n\n padding: 20px 14px 8px 14px;\n }\n}\n\n.toc__menu {\n\n @include fs-5;\n\n @include mq(md) {\n @include fs-4;\n }\n\n margin: 0;\n padding: 0;\n width: 100%;\n list-style: none;\n\n li::before {\n content: \"\" !important;\n }\n\n a {\n text-decoration: none;\n\n @if $color_scheme=='light' {\n color: $dark-74;\n }\n\n @else {\n color: $white-74;\n }\n\n &.active {\n\n @if $color_scheme=='light' {\n color: $dark-60;\n }\n\n @else {\n color: $white-60;\n }\n\n font-weight: 500;\n }\n }\n\n li ul>li a {\n padding-top: 0.2rem;\n border: none;\n text-transform: none;\n\n }\n}\n\n//Ontimize TOC screen size bigger than 66.5 rem\n@media (min-width: 66.5rem) {\n .toc__menu.collapsed {\n display: none;\n }\n\n .toc.collapsed {\n position: relative;\n bottom: 14px;\n }\n\n .nav__title.collapsed {\n height: 100%;\n font-size: 15px !important;\n cursor: pointer;\n }\n\n .sidebar__right.collapsed {\n padding-bottom: 0px;\n width: auto;\n transform: rotate(270deg);\n transform-origin: bottom right;\n top: calc(64px - 30px);\n height: 30px;\n overflow: hidden;\n\n @if $color_scheme=='light' {\n color: $primary-50;\n }\n\n @else {\n color: $primary-50-dark;\n }\n }\n}\n\n// FAQ page\n\n.faq-posts {\n .panel-default {\n\n .panel-heading {\n @if $color_scheme=='light' {\n color: #333;\n background-color: #f5f5f5;\n border-color: #ddd;\n }\n\n @else {\n color: #eee;\n background-color: #0c0c0c;\n border-color: #222;\n }\n\n\n border-bottom: 0;\n\n padding: 10px 30px;\n border-bottom: 1px solid transparent;\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n cursor: pointer;\n }\n\n .panel-title {\n margin-top: 0;\n margin-bottom: 0;\n font-size: 16px;\n color: inherit;\n }\n }\n\n .panel-body {\n padding: 15px;\n font-size: 14px;\n }\n\n .panel {\n margin-bottom: 0;\n border-radius: 4px;\n\n @if $color_scheme=='light' {\n background-color: #fff;\n }\n\n @else {\n background-color: #000;\n }\n\n border: 1px solid transparent;\n\n //-webkit-box-shadow: 0 1px 1px rgba(0,0,0,.05);\n //box-shadow: 0 1px 1px rgba(0,0,0,.05);\n }\n\n .collapse {\n display: none;\n\n &.in {\n display: block;\n }\n }\n\n .collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n -webkit-transition-property: height, visibility;\n transition-property: height, visibility;\n -webkit-transition-duration: .35s;\n transition-duration: .35s;\n -webkit-transition-timing-function: ease;\n transition-timing-function: ease;\n }\n}\n\n.multicolumn {\n display: flex;\n}\n\n.toggle-tree-btn {\n all: unset;\n margin-bottom: 10px;\n align-self: flex-end;\n position: absolute;\n top: 8px;\n right: 8px;\n cursor: pointer;\n}\n\n.multicolumnleft {\n flex: 1;\n max-width: 100%;\n overflow-x: auto;\n padding: 0 40px 0 0;\n box-sizing: border-box;\n position: relative;\n}\n\n.multicolumnnopadding {\n flex: 1;\n max-width: 100%;\n overflow-x: auto;\n padding: 0 0 0 0;\n box-sizing: border-box;\n}\n\n.multicolumnright {\n box-sizing: border-box;\n\n @if $color_scheme=='light' {\n border-left: 1px solid #ccc;\n }\n\n @else {\n border-left: 1px solid #2e2e2e;\n }\n\n transition: width 0.3s ease;\n overflow-x: auto;\n\n &.collapsed {\n width: 0;\n overflow: hidden;\n padding: 0;\n border-left: none;\n display: none;\n }\n}\n\n.verticalDivider {\n\n @if $color_scheme=='light' {\n border-left: 1px solid #F2F3F3;\n }\n\n @else {\n border-left: 1px solid #0f0f0f;\n }\n\n padding-right: 10px;\n margin-left: 10px;\n}\n\n// //jstree\n.jstreeloader ul>li::before {\n content: \"\";\n}\n\na.jstree-anchor.jstree-hovered{\n @if $color_scheme=='dark' {\n color: #515151;\n i {\n filter: invert(26%) sepia(0%) saturate(28%) hue-rotate(162deg) brightness(94%) contrast(85%);\n }\n }\n}\na.jstree-anchor.jstree-clicked{\n @if $color_scheme=='dark' {\n color: #494949;\n i {\n filter: invert(26%) sepia(0%) saturate(28%) hue-rotate(162deg) brightness(94%) contrast(85%);\n }\n }\n}\n\ni.jstree-icon{\n @if $color_scheme=='light' {\n filter: invert(36%) sepia(8%) saturate(440%) hue-rotate(218deg) brightness(90%) contrast(85%);\n }\n @if $color_scheme=='dark' {\n filter: invert(89%) sepia(0%) saturate(0%) hue-rotate(174deg) brightness(84%) contrast(87%);\n }\n}\n\n\n@media (min-width: 50rem) and ((max-width: 66.5rem)) {\n #top.main {\n max-width: none;\n margin-left: 16.5rem;\n }\n}\n\n@media (min-width: 66.5rem) {\n body>div.side-bar {\n min-width: auto;\n width: auto,\n }\n\n #top.main {\n max-width: none;\n margin-left: calc(16.5rem + 1px);\n }\n}\n\n@media (min-width: 50rem) {\n div.side-bar {\n width: 16.5rem;\n }\n\n\n}\n\ntable {\n table-layout: auto;\n width: 120px;\n}\n\n// Link sections menu cards\n\n.menu-card-container {\n display: grid;\n grid-gap: 32px;\n grid-template-columns: repeat(auto-fit, minmax(auto, 368px));\n grid-auto-rows: minmax(auto, 208px);\n justify-content: center;\n\n a {\n text-decoration: none;\n\n @if $color_scheme=='light' {\n color: $dark-74;\n }\n\n @else {\n color: $white-74;\n }\n\n .menu-card {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n height: 100%;\n border-radius: 2px;\n\n @if $color_scheme=='light' {\n border: 1px solid #0000001F;\n }\n\n @else {\n border: 1px solid #FFFFFF1F;\n }\n\n .image-container {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 128px;\n\n @if $color_scheme=='light' {\n border-bottom: 1px solid #0000001F;\n background-color: #F6F6F6;\n }\n\n @else {\n border-bottom: 1px solid #FFFFFF1F;\n background-color: #31363A;\n }\n }\n\n .bottom-image {\n height: 80px;\n vertical-align: middle;\n text-align: start;\n padding: 28px 18px;\n margin: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n font-weight: 500;\n }\n\n .text-container {\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n height: 88px;\n font-weight: 500;\n\n @if $color_scheme=='light' {\n border-bottom: 1px solid #0000001F;\n }\n\n @else {\n border-bottom: 1px solid #FFFFFF1F;\n }\n\n >p {\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n text-align: start;\n padding: 10px 18px 0 18px;\n height: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n @if $color_scheme=='light' {\n color: #000000DE;\n }\n\n @else {\n color: #FFFFFFDE;\n }\n }\n }\n\n .bottom-title {\n height: 118px;\n text-overflow: ellipsis;\n overflow: hidden;\n text-align: start;\n margin: 0;\n padding: 20px 18px;\n }\n }\n\n &:hover {\n .menu-card {\n .bottom-title {\n\n @if $color_scheme=='light' {\n background-color: #C7DAE9;\n }\n\n @else {\n background-color: #00345f;\n }\n }\n\n .bottom-image {\n @if $color_scheme=='light' {\n background-color: #C7DAE9;\n }\n\n @else {\n background-color: #012644;\n }\n }\n }\n }\n }\n}\n\n.menu-card-container:has(.image-container) {\n grid-template-columns: repeat(auto-fit, minmax(auto, 272px));\n grid-auto-rows: minmax(208px, auto);\n}\n\n.hidden {\n display: none;\n}\n\n\n.menuitem-badge {\n @if $color_scheme=='light' {\n background: linear-gradient(-180deg, $primary-500 0, $primary-500-24 100%);\n color: #fff;\n }\n\n @else {\n background: linear-gradient(-180deg, $primary-500-dark 0, $primary-500-24-dark 100%);\n color: #000;\n }\n\n padding: 2px 4px;\n vertical-align: middle;\n border-radius: 3px;\n font-weight: 700;\n font-size: 11px;\n position: relative;\n top: -1px;\n}\n\nimg[alt=\"Alt text\"] {\n width: 100%;\n}","// custom setup code goes here\n$primary-500: #1464A5;\n$primary-400: #377BB3;\n$primary-900: #063679;\n$primary-500-24: #1464A53D;\n$primary-50: #E3ECF4;\n$dark-74: #000000BD;\n$dark-60: #00000099;\n$primary-500-dark: #8AB2D2;\n$primary-400-dark: #9CBED9;\n$primary-900-dark: #5A8AB6;\n$primary-500-24-dark: #8AB2D23D;\n$primary-50-dark: #F1F6FA;\n$white-74: #FFFFFFBD;\n$white-60: #FFFFFF99;\n$grey: #F6F6F6;\n$home-background: #293239;\n// Font\n$body-font-family: 'Roboto', sans-serif;\n// media queries\n$custom-media-queries: (home-header: 800px,\n home-imgs-max: 2880px,\n mobile-m: 375px);\n$media-queries: map-merge($media-queries, $custom-media-queries);"],"file":"just-the-docs-default.css"} \ No newline at end of file diff --git a/v3/assets/css/just-the-docs-head-nav.css b/v3/assets/css/just-the-docs-head-nav.css new file mode 100644 index 0000000..552a3af --- /dev/null +++ b/v3/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/v3/assets/css/just-the-docs-light.css b/v3/assets/css/just-the-docs-light.css new file mode 100644 index 0000000..67e4ee2 --- /dev/null +++ b/v3/assets/css/just-the-docs-light.css @@ -0,0 +1,10861 @@ +@charset "UTF-8"; +.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: "Roboto", sans-serif; + 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) { + .main { + position: relative; + max-width: 50rem; + margin-left: 15.5rem; + } +} +@media (min-width: 66.5rem) { + .main { + margin-left: max( + 16.5rem, + calc((100% - 66.5rem) / 2 + 16.5rem) + ); + } +} + +.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; + display: none; + background-color: #f5f6fa; +} +@media (min-width: 50rem) { + .main-header { + display: flex; + justify-content: space-between; + height: 3.75rem; + background-color: #fff; + border-bottom: 1px solid #eeebee; + } +} +.main-header.nav-open { + display: block; +} +@media (min-width: 50rem) { + .main-header.nav-open { + display: flex; + } +} + +.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-logo { + width: 100%; + height: 100%; + background-image: url("/docs/v3/assets/icons/logo-ontimize-blanco.png"); + background-repeat: no-repeat; + background-position: left center; + background-size: contain; +} + +.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; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-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; + } +} +@media (min-width: 800px) { + .m-home-header-0 { + margin: 0 !important; + } + .mt-home-header-0 { + margin-top: 0 !important; + } + .mr-home-header-0 { + margin-right: 0 !important; + } + .mb-home-header-0 { + margin-bottom: 0 !important; + } + .ml-home-header-0 { + margin-left: 0 !important; + } + .mx-home-header-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .my-home-header-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .mxn-home-header-0 { + margin-right: -0 !important; + margin-left: -0 !important; + } +} +@media (min-width: 800px) { + .m-home-header-1 { + margin: 0.25rem !important; + } + .mt-home-header-1 { + margin-top: 0.25rem !important; + } + .mr-home-header-1 { + margin-right: 0.25rem !important; + } + .mb-home-header-1 { + margin-bottom: 0.25rem !important; + } + .ml-home-header-1 { + margin-left: 0.25rem !important; + } + .mx-home-header-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .my-home-header-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .mxn-home-header-1 { + margin-right: -0.25rem !important; + margin-left: -0.25rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-2 { + margin: 0.5rem !important; + } + .mt-home-header-2 { + margin-top: 0.5rem !important; + } + .mr-home-header-2 { + margin-right: 0.5rem !important; + } + .mb-home-header-2 { + margin-bottom: 0.5rem !important; + } + .ml-home-header-2 { + margin-left: 0.5rem !important; + } + .mx-home-header-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .my-home-header-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .mxn-home-header-2 { + margin-right: -0.5rem !important; + margin-left: -0.5rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-3 { + margin: 0.75rem !important; + } + .mt-home-header-3 { + margin-top: 0.75rem !important; + } + .mr-home-header-3 { + margin-right: 0.75rem !important; + } + .mb-home-header-3 { + margin-bottom: 0.75rem !important; + } + .ml-home-header-3 { + margin-left: 0.75rem !important; + } + .mx-home-header-3 { + margin-right: 0.75rem !important; + margin-left: 0.75rem !important; + } + .my-home-header-3 { + margin-top: 0.75rem !important; + margin-bottom: 0.75rem !important; + } + .mxn-home-header-3 { + margin-right: -0.75rem !important; + margin-left: -0.75rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-4 { + margin: 1rem !important; + } + .mt-home-header-4 { + margin-top: 1rem !important; + } + .mr-home-header-4 { + margin-right: 1rem !important; + } + .mb-home-header-4 { + margin-bottom: 1rem !important; + } + .ml-home-header-4 { + margin-left: 1rem !important; + } + .mx-home-header-4 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .my-home-header-4 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .mxn-home-header-4 { + margin-right: -1rem !important; + margin-left: -1rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-5 { + margin: 1.5rem !important; + } + .mt-home-header-5 { + margin-top: 1.5rem !important; + } + .mr-home-header-5 { + margin-right: 1.5rem !important; + } + .mb-home-header-5 { + margin-bottom: 1.5rem !important; + } + .ml-home-header-5 { + margin-left: 1.5rem !important; + } + .mx-home-header-5 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .my-home-header-5 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .mxn-home-header-5 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-6 { + margin: 2rem !important; + } + .mt-home-header-6 { + margin-top: 2rem !important; + } + .mr-home-header-6 { + margin-right: 2rem !important; + } + .mb-home-header-6 { + margin-bottom: 2rem !important; + } + .ml-home-header-6 { + margin-left: 2rem !important; + } + .mx-home-header-6 { + margin-right: 2rem !important; + margin-left: 2rem !important; + } + .my-home-header-6 { + margin-top: 2rem !important; + margin-bottom: 2rem !important; + } + .mxn-home-header-6 { + margin-right: -2rem !important; + margin-left: -2rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-7 { + margin: 2.5rem !important; + } + .mt-home-header-7 { + margin-top: 2.5rem !important; + } + .mr-home-header-7 { + margin-right: 2.5rem !important; + } + .mb-home-header-7 { + margin-bottom: 2.5rem !important; + } + .ml-home-header-7 { + margin-left: 2.5rem !important; + } + .mx-home-header-7 { + margin-right: 2.5rem !important; + margin-left: 2.5rem !important; + } + .my-home-header-7 { + margin-top: 2.5rem !important; + margin-bottom: 2.5rem !important; + } + .mxn-home-header-7 { + margin-right: -2.5rem !important; + margin-left: -2.5rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-8 { + margin: 3rem !important; + } + .mt-home-header-8 { + margin-top: 3rem !important; + } + .mr-home-header-8 { + margin-right: 3rem !important; + } + .mb-home-header-8 { + margin-bottom: 3rem !important; + } + .ml-home-header-8 { + margin-left: 3rem !important; + } + .mx-home-header-8 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .my-home-header-8 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .mxn-home-header-8 { + margin-right: -3rem !important; + margin-left: -3rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-9 { + margin: 3.5rem !important; + } + .mt-home-header-9 { + margin-top: 3.5rem !important; + } + .mr-home-header-9 { + margin-right: 3.5rem !important; + } + .mb-home-header-9 { + margin-bottom: 3.5rem !important; + } + .ml-home-header-9 { + margin-left: 3.5rem !important; + } + .mx-home-header-9 { + margin-right: 3.5rem !important; + margin-left: 3.5rem !important; + } + .my-home-header-9 { + margin-top: 3.5rem !important; + margin-bottom: 3.5rem !important; + } + .mxn-home-header-9 { + margin-right: -3.5rem !important; + margin-left: -3.5rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-10 { + margin: 4rem !important; + } + .mt-home-header-10 { + margin-top: 4rem !important; + } + .mr-home-header-10 { + margin-right: 4rem !important; + } + .mb-home-header-10 { + margin-bottom: 4rem !important; + } + .ml-home-header-10 { + margin-left: 4rem !important; + } + .mx-home-header-10 { + margin-right: 4rem !important; + margin-left: 4rem !important; + } + .my-home-header-10 { + margin-top: 4rem !important; + margin-bottom: 4rem !important; + } + .mxn-home-header-10 { + margin-right: -4rem !important; + margin-left: -4rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-0 { + margin: 0 !important; + } + .mt-home-imgs-max-0 { + margin-top: 0 !important; + } + .mr-home-imgs-max-0 { + margin-right: 0 !important; + } + .mb-home-imgs-max-0 { + margin-bottom: 0 !important; + } + .ml-home-imgs-max-0 { + margin-left: 0 !important; + } + .mx-home-imgs-max-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .my-home-imgs-max-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .mxn-home-imgs-max-0 { + margin-right: -0 !important; + margin-left: -0 !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-1 { + margin: 0.25rem !important; + } + .mt-home-imgs-max-1 { + margin-top: 0.25rem !important; + } + .mr-home-imgs-max-1 { + margin-right: 0.25rem !important; + } + .mb-home-imgs-max-1 { + margin-bottom: 0.25rem !important; + } + .ml-home-imgs-max-1 { + margin-left: 0.25rem !important; + } + .mx-home-imgs-max-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .my-home-imgs-max-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .mxn-home-imgs-max-1 { + margin-right: -0.25rem !important; + margin-left: -0.25rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-2 { + margin: 0.5rem !important; + } + .mt-home-imgs-max-2 { + margin-top: 0.5rem !important; + } + .mr-home-imgs-max-2 { + margin-right: 0.5rem !important; + } + .mb-home-imgs-max-2 { + margin-bottom: 0.5rem !important; + } + .ml-home-imgs-max-2 { + margin-left: 0.5rem !important; + } + .mx-home-imgs-max-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .my-home-imgs-max-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .mxn-home-imgs-max-2 { + margin-right: -0.5rem !important; + margin-left: -0.5rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-3 { + margin: 0.75rem !important; + } + .mt-home-imgs-max-3 { + margin-top: 0.75rem !important; + } + .mr-home-imgs-max-3 { + margin-right: 0.75rem !important; + } + .mb-home-imgs-max-3 { + margin-bottom: 0.75rem !important; + } + .ml-home-imgs-max-3 { + margin-left: 0.75rem !important; + } + .mx-home-imgs-max-3 { + margin-right: 0.75rem !important; + margin-left: 0.75rem !important; + } + .my-home-imgs-max-3 { + margin-top: 0.75rem !important; + margin-bottom: 0.75rem !important; + } + .mxn-home-imgs-max-3 { + margin-right: -0.75rem !important; + margin-left: -0.75rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-4 { + margin: 1rem !important; + } + .mt-home-imgs-max-4 { + margin-top: 1rem !important; + } + .mr-home-imgs-max-4 { + margin-right: 1rem !important; + } + .mb-home-imgs-max-4 { + margin-bottom: 1rem !important; + } + .ml-home-imgs-max-4 { + margin-left: 1rem !important; + } + .mx-home-imgs-max-4 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .my-home-imgs-max-4 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .mxn-home-imgs-max-4 { + margin-right: -1rem !important; + margin-left: -1rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-5 { + margin: 1.5rem !important; + } + .mt-home-imgs-max-5 { + margin-top: 1.5rem !important; + } + .mr-home-imgs-max-5 { + margin-right: 1.5rem !important; + } + .mb-home-imgs-max-5 { + margin-bottom: 1.5rem !important; + } + .ml-home-imgs-max-5 { + margin-left: 1.5rem !important; + } + .mx-home-imgs-max-5 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .my-home-imgs-max-5 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .mxn-home-imgs-max-5 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-6 { + margin: 2rem !important; + } + .mt-home-imgs-max-6 { + margin-top: 2rem !important; + } + .mr-home-imgs-max-6 { + margin-right: 2rem !important; + } + .mb-home-imgs-max-6 { + margin-bottom: 2rem !important; + } + .ml-home-imgs-max-6 { + margin-left: 2rem !important; + } + .mx-home-imgs-max-6 { + margin-right: 2rem !important; + margin-left: 2rem !important; + } + .my-home-imgs-max-6 { + margin-top: 2rem !important; + margin-bottom: 2rem !important; + } + .mxn-home-imgs-max-6 { + margin-right: -2rem !important; + margin-left: -2rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-7 { + margin: 2.5rem !important; + } + .mt-home-imgs-max-7 { + margin-top: 2.5rem !important; + } + .mr-home-imgs-max-7 { + margin-right: 2.5rem !important; + } + .mb-home-imgs-max-7 { + margin-bottom: 2.5rem !important; + } + .ml-home-imgs-max-7 { + margin-left: 2.5rem !important; + } + .mx-home-imgs-max-7 { + margin-right: 2.5rem !important; + margin-left: 2.5rem !important; + } + .my-home-imgs-max-7 { + margin-top: 2.5rem !important; + margin-bottom: 2.5rem !important; + } + .mxn-home-imgs-max-7 { + margin-right: -2.5rem !important; + margin-left: -2.5rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-8 { + margin: 3rem !important; + } + .mt-home-imgs-max-8 { + margin-top: 3rem !important; + } + .mr-home-imgs-max-8 { + margin-right: 3rem !important; + } + .mb-home-imgs-max-8 { + margin-bottom: 3rem !important; + } + .ml-home-imgs-max-8 { + margin-left: 3rem !important; + } + .mx-home-imgs-max-8 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .my-home-imgs-max-8 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .mxn-home-imgs-max-8 { + margin-right: -3rem !important; + margin-left: -3rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-9 { + margin: 3.5rem !important; + } + .mt-home-imgs-max-9 { + margin-top: 3.5rem !important; + } + .mr-home-imgs-max-9 { + margin-right: 3.5rem !important; + } + .mb-home-imgs-max-9 { + margin-bottom: 3.5rem !important; + } + .ml-home-imgs-max-9 { + margin-left: 3.5rem !important; + } + .mx-home-imgs-max-9 { + margin-right: 3.5rem !important; + margin-left: 3.5rem !important; + } + .my-home-imgs-max-9 { + margin-top: 3.5rem !important; + margin-bottom: 3.5rem !important; + } + .mxn-home-imgs-max-9 { + margin-right: -3.5rem !important; + margin-left: -3.5rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-10 { + margin: 4rem !important; + } + .mt-home-imgs-max-10 { + margin-top: 4rem !important; + } + .mr-home-imgs-max-10 { + margin-right: 4rem !important; + } + .mb-home-imgs-max-10 { + margin-bottom: 4rem !important; + } + .ml-home-imgs-max-10 { + margin-left: 4rem !important; + } + .mx-home-imgs-max-10 { + margin-right: 4rem !important; + margin-left: 4rem !important; + } + .my-home-imgs-max-10 { + margin-top: 4rem !important; + margin-bottom: 4rem !important; + } + .mxn-home-imgs-max-10 { + margin-right: -4rem !important; + margin-left: -4rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-0 { + margin: 0 !important; + } + .mt-mobile-m-0 { + margin-top: 0 !important; + } + .mr-mobile-m-0 { + margin-right: 0 !important; + } + .mb-mobile-m-0 { + margin-bottom: 0 !important; + } + .ml-mobile-m-0 { + margin-left: 0 !important; + } + .mx-mobile-m-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .my-mobile-m-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .mxn-mobile-m-0 { + margin-right: -0 !important; + margin-left: -0 !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-1 { + margin: 0.25rem !important; + } + .mt-mobile-m-1 { + margin-top: 0.25rem !important; + } + .mr-mobile-m-1 { + margin-right: 0.25rem !important; + } + .mb-mobile-m-1 { + margin-bottom: 0.25rem !important; + } + .ml-mobile-m-1 { + margin-left: 0.25rem !important; + } + .mx-mobile-m-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .my-mobile-m-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .mxn-mobile-m-1 { + margin-right: -0.25rem !important; + margin-left: -0.25rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-2 { + margin: 0.5rem !important; + } + .mt-mobile-m-2 { + margin-top: 0.5rem !important; + } + .mr-mobile-m-2 { + margin-right: 0.5rem !important; + } + .mb-mobile-m-2 { + margin-bottom: 0.5rem !important; + } + .ml-mobile-m-2 { + margin-left: 0.5rem !important; + } + .mx-mobile-m-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .my-mobile-m-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .mxn-mobile-m-2 { + margin-right: -0.5rem !important; + margin-left: -0.5rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-3 { + margin: 0.75rem !important; + } + .mt-mobile-m-3 { + margin-top: 0.75rem !important; + } + .mr-mobile-m-3 { + margin-right: 0.75rem !important; + } + .mb-mobile-m-3 { + margin-bottom: 0.75rem !important; + } + .ml-mobile-m-3 { + margin-left: 0.75rem !important; + } + .mx-mobile-m-3 { + margin-right: 0.75rem !important; + margin-left: 0.75rem !important; + } + .my-mobile-m-3 { + margin-top: 0.75rem !important; + margin-bottom: 0.75rem !important; + } + .mxn-mobile-m-3 { + margin-right: -0.75rem !important; + margin-left: -0.75rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-4 { + margin: 1rem !important; + } + .mt-mobile-m-4 { + margin-top: 1rem !important; + } + .mr-mobile-m-4 { + margin-right: 1rem !important; + } + .mb-mobile-m-4 { + margin-bottom: 1rem !important; + } + .ml-mobile-m-4 { + margin-left: 1rem !important; + } + .mx-mobile-m-4 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .my-mobile-m-4 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .mxn-mobile-m-4 { + margin-right: -1rem !important; + margin-left: -1rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-5 { + margin: 1.5rem !important; + } + .mt-mobile-m-5 { + margin-top: 1.5rem !important; + } + .mr-mobile-m-5 { + margin-right: 1.5rem !important; + } + .mb-mobile-m-5 { + margin-bottom: 1.5rem !important; + } + .ml-mobile-m-5 { + margin-left: 1.5rem !important; + } + .mx-mobile-m-5 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .my-mobile-m-5 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .mxn-mobile-m-5 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-6 { + margin: 2rem !important; + } + .mt-mobile-m-6 { + margin-top: 2rem !important; + } + .mr-mobile-m-6 { + margin-right: 2rem !important; + } + .mb-mobile-m-6 { + margin-bottom: 2rem !important; + } + .ml-mobile-m-6 { + margin-left: 2rem !important; + } + .mx-mobile-m-6 { + margin-right: 2rem !important; + margin-left: 2rem !important; + } + .my-mobile-m-6 { + margin-top: 2rem !important; + margin-bottom: 2rem !important; + } + .mxn-mobile-m-6 { + margin-right: -2rem !important; + margin-left: -2rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-7 { + margin: 2.5rem !important; + } + .mt-mobile-m-7 { + margin-top: 2.5rem !important; + } + .mr-mobile-m-7 { + margin-right: 2.5rem !important; + } + .mb-mobile-m-7 { + margin-bottom: 2.5rem !important; + } + .ml-mobile-m-7 { + margin-left: 2.5rem !important; + } + .mx-mobile-m-7 { + margin-right: 2.5rem !important; + margin-left: 2.5rem !important; + } + .my-mobile-m-7 { + margin-top: 2.5rem !important; + margin-bottom: 2.5rem !important; + } + .mxn-mobile-m-7 { + margin-right: -2.5rem !important; + margin-left: -2.5rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-8 { + margin: 3rem !important; + } + .mt-mobile-m-8 { + margin-top: 3rem !important; + } + .mr-mobile-m-8 { + margin-right: 3rem !important; + } + .mb-mobile-m-8 { + margin-bottom: 3rem !important; + } + .ml-mobile-m-8 { + margin-left: 3rem !important; + } + .mx-mobile-m-8 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .my-mobile-m-8 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .mxn-mobile-m-8 { + margin-right: -3rem !important; + margin-left: -3rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-9 { + margin: 3.5rem !important; + } + .mt-mobile-m-9 { + margin-top: 3.5rem !important; + } + .mr-mobile-m-9 { + margin-right: 3.5rem !important; + } + .mb-mobile-m-9 { + margin-bottom: 3.5rem !important; + } + .ml-mobile-m-9 { + margin-left: 3.5rem !important; + } + .mx-mobile-m-9 { + margin-right: 3.5rem !important; + margin-left: 3.5rem !important; + } + .my-mobile-m-9 { + margin-top: 3.5rem !important; + margin-bottom: 3.5rem !important; + } + .mxn-mobile-m-9 { + margin-right: -3.5rem !important; + margin-left: -3.5rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-10 { + margin: 4rem !important; + } + .mt-mobile-m-10 { + margin-top: 4rem !important; + } + .mr-mobile-m-10 { + margin-right: 4rem !important; + } + .mb-mobile-m-10 { + margin-bottom: 4rem !important; + } + .ml-mobile-m-10 { + margin-left: 4rem !important; + } + .mx-mobile-m-10 { + margin-right: 4rem !important; + margin-left: 4rem !important; + } + .my-mobile-m-10 { + margin-top: 4rem !important; + margin-bottom: 4rem !important; + } + .mxn-mobile-m-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 (min-width: 800px) { + .p-home-header-0 { + padding: 0 !important; + } + .pt-home-header-0 { + padding-top: 0 !important; + } + .pr-home-header-0 { + padding-right: 0 !important; + } + .pb-home-header-0 { + padding-bottom: 0 !important; + } + .pl-home-header-0 { + padding-left: 0 !important; + } + .px-home-header-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .py-home-header-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .p-home-header-1 { + padding: 0.25rem !important; + } + .pt-home-header-1 { + padding-top: 0.25rem !important; + } + .pr-home-header-1 { + padding-right: 0.25rem !important; + } + .pb-home-header-1 { + padding-bottom: 0.25rem !important; + } + .pl-home-header-1 { + padding-left: 0.25rem !important; + } + .px-home-header-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .py-home-header-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .p-home-header-2 { + padding: 0.5rem !important; + } + .pt-home-header-2 { + padding-top: 0.5rem !important; + } + .pr-home-header-2 { + padding-right: 0.5rem !important; + } + .pb-home-header-2 { + padding-bottom: 0.5rem !important; + } + .pl-home-header-2 { + padding-left: 0.5rem !important; + } + .px-home-header-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .py-home-header-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .p-home-header-3 { + padding: 0.75rem !important; + } + .pt-home-header-3 { + padding-top: 0.75rem !important; + } + .pr-home-header-3 { + padding-right: 0.75rem !important; + } + .pb-home-header-3 { + padding-bottom: 0.75rem !important; + } + .pl-home-header-3 { + padding-left: 0.75rem !important; + } + .px-home-header-3 { + padding-right: 0.75rem !important; + padding-left: 0.75rem !important; + } + .py-home-header-3 { + padding-top: 0.75rem !important; + padding-bottom: 0.75rem !important; + } + .p-home-header-4 { + padding: 1rem !important; + } + .pt-home-header-4 { + padding-top: 1rem !important; + } + .pr-home-header-4 { + padding-right: 1rem !important; + } + .pb-home-header-4 { + padding-bottom: 1rem !important; + } + .pl-home-header-4 { + padding-left: 1rem !important; + } + .px-home-header-4 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .py-home-header-4 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .p-home-header-5 { + padding: 1.5rem !important; + } + .pt-home-header-5 { + padding-top: 1.5rem !important; + } + .pr-home-header-5 { + padding-right: 1.5rem !important; + } + .pb-home-header-5 { + padding-bottom: 1.5rem !important; + } + .pl-home-header-5 { + padding-left: 1.5rem !important; + } + .px-home-header-5 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .py-home-header-5 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .p-home-header-6 { + padding: 2rem !important; + } + .pt-home-header-6 { + padding-top: 2rem !important; + } + .pr-home-header-6 { + padding-right: 2rem !important; + } + .pb-home-header-6 { + padding-bottom: 2rem !important; + } + .pl-home-header-6 { + padding-left: 2rem !important; + } + .px-home-header-6 { + padding-right: 2rem !important; + padding-left: 2rem !important; + } + .py-home-header-6 { + padding-top: 2rem !important; + padding-bottom: 2rem !important; + } + .p-home-header-7 { + padding: 2.5rem !important; + } + .pt-home-header-7 { + padding-top: 2.5rem !important; + } + .pr-home-header-7 { + padding-right: 2.5rem !important; + } + .pb-home-header-7 { + padding-bottom: 2.5rem !important; + } + .pl-home-header-7 { + padding-left: 2.5rem !important; + } + .px-home-header-7 { + padding-right: 2.5rem !important; + padding-left: 2.5rem !important; + } + .py-home-header-7 { + padding-top: 2.5rem !important; + padding-bottom: 2.5rem !important; + } + .p-home-header-8 { + padding: 3rem !important; + } + .pt-home-header-8 { + padding-top: 3rem !important; + } + .pr-home-header-8 { + padding-right: 3rem !important; + } + .pb-home-header-8 { + padding-bottom: 3rem !important; + } + .pl-home-header-8 { + padding-left: 3rem !important; + } + .px-home-header-8 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-home-header-8 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .p-home-header-9 { + padding: 3.5rem !important; + } + .pt-home-header-9 { + padding-top: 3.5rem !important; + } + .pr-home-header-9 { + padding-right: 3.5rem !important; + } + .pb-home-header-9 { + padding-bottom: 3.5rem !important; + } + .pl-home-header-9 { + padding-left: 3.5rem !important; + } + .px-home-header-9 { + padding-right: 3.5rem !important; + padding-left: 3.5rem !important; + } + .py-home-header-9 { + padding-top: 3.5rem !important; + padding-bottom: 3.5rem !important; + } + .p-home-header-10 { + padding: 4rem !important; + } + .pt-home-header-10 { + padding-top: 4rem !important; + } + .pr-home-header-10 { + padding-right: 4rem !important; + } + .pb-home-header-10 { + padding-bottom: 4rem !important; + } + .pl-home-header-10 { + padding-left: 4rem !important; + } + .px-home-header-10 { + padding-right: 4rem !important; + padding-left: 4rem !important; + } + .py-home-header-10 { + padding-top: 4rem !important; + padding-bottom: 4rem !important; + } +} +@media (min-width: 2880px) { + .p-home-imgs-max-0 { + padding: 0 !important; + } + .pt-home-imgs-max-0 { + padding-top: 0 !important; + } + .pr-home-imgs-max-0 { + padding-right: 0 !important; + } + .pb-home-imgs-max-0 { + padding-bottom: 0 !important; + } + .pl-home-imgs-max-0 { + padding-left: 0 !important; + } + .px-home-imgs-max-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .py-home-imgs-max-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .p-home-imgs-max-1 { + padding: 0.25rem !important; + } + .pt-home-imgs-max-1 { + padding-top: 0.25rem !important; + } + .pr-home-imgs-max-1 { + padding-right: 0.25rem !important; + } + .pb-home-imgs-max-1 { + padding-bottom: 0.25rem !important; + } + .pl-home-imgs-max-1 { + padding-left: 0.25rem !important; + } + .px-home-imgs-max-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .py-home-imgs-max-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .p-home-imgs-max-2 { + padding: 0.5rem !important; + } + .pt-home-imgs-max-2 { + padding-top: 0.5rem !important; + } + .pr-home-imgs-max-2 { + padding-right: 0.5rem !important; + } + .pb-home-imgs-max-2 { + padding-bottom: 0.5rem !important; + } + .pl-home-imgs-max-2 { + padding-left: 0.5rem !important; + } + .px-home-imgs-max-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .py-home-imgs-max-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .p-home-imgs-max-3 { + padding: 0.75rem !important; + } + .pt-home-imgs-max-3 { + padding-top: 0.75rem !important; + } + .pr-home-imgs-max-3 { + padding-right: 0.75rem !important; + } + .pb-home-imgs-max-3 { + padding-bottom: 0.75rem !important; + } + .pl-home-imgs-max-3 { + padding-left: 0.75rem !important; + } + .px-home-imgs-max-3 { + padding-right: 0.75rem !important; + padding-left: 0.75rem !important; + } + .py-home-imgs-max-3 { + padding-top: 0.75rem !important; + padding-bottom: 0.75rem !important; + } + .p-home-imgs-max-4 { + padding: 1rem !important; + } + .pt-home-imgs-max-4 { + padding-top: 1rem !important; + } + .pr-home-imgs-max-4 { + padding-right: 1rem !important; + } + .pb-home-imgs-max-4 { + padding-bottom: 1rem !important; + } + .pl-home-imgs-max-4 { + padding-left: 1rem !important; + } + .px-home-imgs-max-4 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .py-home-imgs-max-4 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .p-home-imgs-max-5 { + padding: 1.5rem !important; + } + .pt-home-imgs-max-5 { + padding-top: 1.5rem !important; + } + .pr-home-imgs-max-5 { + padding-right: 1.5rem !important; + } + .pb-home-imgs-max-5 { + padding-bottom: 1.5rem !important; + } + .pl-home-imgs-max-5 { + padding-left: 1.5rem !important; + } + .px-home-imgs-max-5 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .py-home-imgs-max-5 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .p-home-imgs-max-6 { + padding: 2rem !important; + } + .pt-home-imgs-max-6 { + padding-top: 2rem !important; + } + .pr-home-imgs-max-6 { + padding-right: 2rem !important; + } + .pb-home-imgs-max-6 { + padding-bottom: 2rem !important; + } + .pl-home-imgs-max-6 { + padding-left: 2rem !important; + } + .px-home-imgs-max-6 { + padding-right: 2rem !important; + padding-left: 2rem !important; + } + .py-home-imgs-max-6 { + padding-top: 2rem !important; + padding-bottom: 2rem !important; + } + .p-home-imgs-max-7 { + padding: 2.5rem !important; + } + .pt-home-imgs-max-7 { + padding-top: 2.5rem !important; + } + .pr-home-imgs-max-7 { + padding-right: 2.5rem !important; + } + .pb-home-imgs-max-7 { + padding-bottom: 2.5rem !important; + } + .pl-home-imgs-max-7 { + padding-left: 2.5rem !important; + } + .px-home-imgs-max-7 { + padding-right: 2.5rem !important; + padding-left: 2.5rem !important; + } + .py-home-imgs-max-7 { + padding-top: 2.5rem !important; + padding-bottom: 2.5rem !important; + } + .p-home-imgs-max-8 { + padding: 3rem !important; + } + .pt-home-imgs-max-8 { + padding-top: 3rem !important; + } + .pr-home-imgs-max-8 { + padding-right: 3rem !important; + } + .pb-home-imgs-max-8 { + padding-bottom: 3rem !important; + } + .pl-home-imgs-max-8 { + padding-left: 3rem !important; + } + .px-home-imgs-max-8 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-home-imgs-max-8 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .p-home-imgs-max-9 { + padding: 3.5rem !important; + } + .pt-home-imgs-max-9 { + padding-top: 3.5rem !important; + } + .pr-home-imgs-max-9 { + padding-right: 3.5rem !important; + } + .pb-home-imgs-max-9 { + padding-bottom: 3.5rem !important; + } + .pl-home-imgs-max-9 { + padding-left: 3.5rem !important; + } + .px-home-imgs-max-9 { + padding-right: 3.5rem !important; + padding-left: 3.5rem !important; + } + .py-home-imgs-max-9 { + padding-top: 3.5rem !important; + padding-bottom: 3.5rem !important; + } + .p-home-imgs-max-10 { + padding: 4rem !important; + } + .pt-home-imgs-max-10 { + padding-top: 4rem !important; + } + .pr-home-imgs-max-10 { + padding-right: 4rem !important; + } + .pb-home-imgs-max-10 { + padding-bottom: 4rem !important; + } + .pl-home-imgs-max-10 { + padding-left: 4rem !important; + } + .px-home-imgs-max-10 { + padding-right: 4rem !important; + padding-left: 4rem !important; + } + .py-home-imgs-max-10 { + padding-top: 4rem !important; + padding-bottom: 4rem !important; + } +} +@media (min-width: 375px) { + .p-mobile-m-0 { + padding: 0 !important; + } + .pt-mobile-m-0 { + padding-top: 0 !important; + } + .pr-mobile-m-0 { + padding-right: 0 !important; + } + .pb-mobile-m-0 { + padding-bottom: 0 !important; + } + .pl-mobile-m-0 { + padding-left: 0 !important; + } + .px-mobile-m-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .py-mobile-m-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .p-mobile-m-1 { + padding: 0.25rem !important; + } + .pt-mobile-m-1 { + padding-top: 0.25rem !important; + } + .pr-mobile-m-1 { + padding-right: 0.25rem !important; + } + .pb-mobile-m-1 { + padding-bottom: 0.25rem !important; + } + .pl-mobile-m-1 { + padding-left: 0.25rem !important; + } + .px-mobile-m-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .py-mobile-m-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .p-mobile-m-2 { + padding: 0.5rem !important; + } + .pt-mobile-m-2 { + padding-top: 0.5rem !important; + } + .pr-mobile-m-2 { + padding-right: 0.5rem !important; + } + .pb-mobile-m-2 { + padding-bottom: 0.5rem !important; + } + .pl-mobile-m-2 { + padding-left: 0.5rem !important; + } + .px-mobile-m-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .py-mobile-m-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .p-mobile-m-3 { + padding: 0.75rem !important; + } + .pt-mobile-m-3 { + padding-top: 0.75rem !important; + } + .pr-mobile-m-3 { + padding-right: 0.75rem !important; + } + .pb-mobile-m-3 { + padding-bottom: 0.75rem !important; + } + .pl-mobile-m-3 { + padding-left: 0.75rem !important; + } + .px-mobile-m-3 { + padding-right: 0.75rem !important; + padding-left: 0.75rem !important; + } + .py-mobile-m-3 { + padding-top: 0.75rem !important; + padding-bottom: 0.75rem !important; + } + .p-mobile-m-4 { + padding: 1rem !important; + } + .pt-mobile-m-4 { + padding-top: 1rem !important; + } + .pr-mobile-m-4 { + padding-right: 1rem !important; + } + .pb-mobile-m-4 { + padding-bottom: 1rem !important; + } + .pl-mobile-m-4 { + padding-left: 1rem !important; + } + .px-mobile-m-4 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .py-mobile-m-4 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .p-mobile-m-5 { + padding: 1.5rem !important; + } + .pt-mobile-m-5 { + padding-top: 1.5rem !important; + } + .pr-mobile-m-5 { + padding-right: 1.5rem !important; + } + .pb-mobile-m-5 { + padding-bottom: 1.5rem !important; + } + .pl-mobile-m-5 { + padding-left: 1.5rem !important; + } + .px-mobile-m-5 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .py-mobile-m-5 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .p-mobile-m-6 { + padding: 2rem !important; + } + .pt-mobile-m-6 { + padding-top: 2rem !important; + } + .pr-mobile-m-6 { + padding-right: 2rem !important; + } + .pb-mobile-m-6 { + padding-bottom: 2rem !important; + } + .pl-mobile-m-6 { + padding-left: 2rem !important; + } + .px-mobile-m-6 { + padding-right: 2rem !important; + padding-left: 2rem !important; + } + .py-mobile-m-6 { + padding-top: 2rem !important; + padding-bottom: 2rem !important; + } + .p-mobile-m-7 { + padding: 2.5rem !important; + } + .pt-mobile-m-7 { + padding-top: 2.5rem !important; + } + .pr-mobile-m-7 { + padding-right: 2.5rem !important; + } + .pb-mobile-m-7 { + padding-bottom: 2.5rem !important; + } + .pl-mobile-m-7 { + padding-left: 2.5rem !important; + } + .px-mobile-m-7 { + padding-right: 2.5rem !important; + padding-left: 2.5rem !important; + } + .py-mobile-m-7 { + padding-top: 2.5rem !important; + padding-bottom: 2.5rem !important; + } + .p-mobile-m-8 { + padding: 3rem !important; + } + .pt-mobile-m-8 { + padding-top: 3rem !important; + } + .pr-mobile-m-8 { + padding-right: 3rem !important; + } + .pb-mobile-m-8 { + padding-bottom: 3rem !important; + } + .pl-mobile-m-8 { + padding-left: 3rem !important; + } + .px-mobile-m-8 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-mobile-m-8 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .p-mobile-m-9 { + padding: 3.5rem !important; + } + .pt-mobile-m-9 { + padding-top: 3.5rem !important; + } + .pr-mobile-m-9 { + padding-right: 3.5rem !important; + } + .pb-mobile-m-9 { + padding-bottom: 3.5rem !important; + } + .pl-mobile-m-9 { + padding-left: 3.5rem !important; + } + .px-mobile-m-9 { + padding-right: 3.5rem !important; + padding-left: 3.5rem !important; + } + .py-mobile-m-9 { + padding-top: 3.5rem !important; + padding-bottom: 3.5rem !important; + } + .p-mobile-m-10 { + padding: 4rem !important; + } + .pt-mobile-m-10 { + padding-top: 4rem !important; + } + .pr-mobile-m-10 { + padding-right: 4rem !important; + } + .pb-mobile-m-10 { + padding-bottom: 4rem !important; + } + .pl-mobile-m-10 { + padding-left: 4rem !important; + } + .px-mobile-m-10 { + padding-right: 4rem !important; + padding-left: 4rem !important; + } + .py-mobile-m-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; +} + +p.highlight, blockquote.highlight { + background: rgba(149, 147, 150, 0.2); + border-left: 4px solid #27262b; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + padding: 0.8rem; +} +p.highlight > .highlight-title, blockquote.highlight > .highlight-title { + color: #27262b; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} + +p.highlight-title, blockquote.highlight-title { + background: rgba(149, 147, 150, 0.2); + border-left: 4px solid #27262b; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + padding: 0.8rem; +} +p.highlight-title > p:first-child, blockquote.highlight-title > p:first-child { + margin-top: 0; + margin-bottom: 0; + color: #27262b; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} + +blockquote.highlight { + margin-left: 0; + margin-right: 0; +} +blockquote.highlight > p:first-child { + margin-top: 0; +} +blockquote.highlight > p:last-child { + margin-bottom: 0; +} + +blockquote.highlight-title { + margin-left: 0; + margin-right: 0; +} +blockquote.highlight-title > p:nth-child(2) { + margin-top: 0; +} +blockquote.highlight-title > p:last-child { + margin-bottom: 0; +} + +p.important, blockquote.important { + background: rgba(149, 147, 150, 0.2); + border-left: 4px solid #27262b; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + padding: 0.8rem; +} +p.important::before, blockquote.important::before { + color: #27262b; + content: "Important"; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} +p.important > .important-title, blockquote.important > .important-title { + color: #27262b; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} + +p.important-title, blockquote.important-title { + background: rgba(149, 147, 150, 0.2); + border-left: 4px solid #27262b; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + padding: 0.8rem; +} +p.important-title > p:first-child, blockquote.important-title > p:first-child { + margin-top: 0; + margin-bottom: 0; + color: #27262b; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} + +blockquote.important { + margin-left: 0; + margin-right: 0; +} +blockquote.important > p:first-child { + margin-top: 0; +} +blockquote.important > p:last-child { + margin-bottom: 0; +} + +blockquote.important-title { + margin-left: 0; + margin-right: 0; +} +blockquote.important-title > p:nth-child(2) { + margin-top: 0; +} +blockquote.important-title > p:last-child { + margin-bottom: 0; +} + +p.note, blockquote.note { + background: rgba(44, 132, 250, 0.2); + border-left: 4px solid #183385; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + padding: 0.8rem; +} +p.note::before, blockquote.note::before { + color: #183385; + content: "Note"; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} +p.note > .note-title, blockquote.note > .note-title { + color: #183385; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} + +p.note-title, blockquote.note-title { + background: rgba(44, 132, 250, 0.2); + border-left: 4px solid #183385; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + padding: 0.8rem; +} +p.note-title > p:first-child, blockquote.note-title > p:first-child { + margin-top: 0; + margin-bottom: 0; + color: #183385; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} + +blockquote.note { + margin-left: 0; + margin-right: 0; +} +blockquote.note > p:first-child { + margin-top: 0; +} +blockquote.note > p:last-child { + margin-bottom: 0; +} + +blockquote.note-title { + margin-left: 0; + margin-right: 0; +} +blockquote.note-title > p:nth-child(2) { + margin-top: 0; +} +blockquote.note-title > p:last-child { + margin-bottom: 0; +} + +p.warning, blockquote.warning { + background: rgba(247, 126, 126, 0.2); + border-left: 4px solid #dd2e2e; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + padding: 0.8rem; +} +p.warning::before, blockquote.warning::before { + color: #dd2e2e; + content: "Warning"; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} +p.warning > .warning-title, blockquote.warning > .warning-title { + color: #dd2e2e; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} + +p.warning-title, blockquote.warning-title { + background: rgba(247, 126, 126, 0.2); + border-left: 4px solid #dd2e2e; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + padding: 0.8rem; +} +p.warning-title > p:first-child, blockquote.warning-title > p:first-child { + margin-top: 0; + margin-bottom: 0; + color: #dd2e2e; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} + +blockquote.warning { + margin-left: 0; + margin-right: 0; +} +blockquote.warning > p:first-child { + margin-top: 0; +} +blockquote.warning > p:last-child { + margin-bottom: 0; +} + +blockquote.warning-title { + margin-left: 0; + margin-right: 0; +} +blockquote.warning-title > p:nth-child(2) { + margin-top: 0; +} +blockquote.warning-title > p:last-child { + margin-bottom: 0; +} + +@media (min-width: 50rem) { + #main-header { + position: sticky; + top: 0; + z-index: 999; + } +} +.text-primary-900 { + color: #063679; +} + +.home-body { + padding: 0; +} +.home-body .home { + display: flex; + flex-direction: column; + justify-content: start; + align-items: center; + background-color: #293239; + color: rgba(255, 255, 255, 0.7411764706); + width: 100%; + height: 100%; +} +.home-body .home a { + color: #A8C7FF; + text-decoration: underline; + text-decoration-color: #A8C7FF; +} +.home-body .home a:hover { + text-decoration-color: #A8C7FF; +} +.home-body .home .text-primary-400 { + color: #4286FF; +} +.home-body .home .white-87 { + color: rgba(255, 255, 255, 0.8705882353); +} +.home-body .home .introduction { + background-image: url("../../assets/images/home/bg-landing.png"); + background-repeat: repeat; + display: flex; + flex-direction: column; + justify-content: start; + height: 100%; + width: 100%; +} +@media (min-width: 66.5rem) { + .home-body .home .introduction { + height: 100vh; + } +} +.home-body .home .introduction .header { + display: flex; + flex-direction: column; + align-items: center; + justify-content: space-around; + gap: 28px; + padding: 0 5rem 28px; + background-color: #293239; + box-shadow: 0 1px 12px rgba(255, 255, 255, 0.5); +} +@media (min-width: 800px) { + .home-body .home .introduction .header { + height: 96px; + padding-bottom: 0; + flex-direction: row; + } +} +.home-body .home .introduction .header .site-header { + flex-shrink: 0; + height: fit-content; + width: fit-content; + border: none; + align-items: end; +} +@media (min-width: 800px) { + .home-body .home .introduction .header .site-header { + align-items: center; + } +} +.home-body .home .introduction .header .site-header img { + width: 140px; + height: 41px; +} +.home-body .home .introduction .header .main-header { + display: flex; + align-items: center; + justify-content: space-between; + background-color: #293239; + border: none; + gap: 28px; + flex-grow: 1; + flex-direction: column; + height: inherit; + padding: 0; +} +@media (min-width: 800px) { + .home-body .home .introduction .header .main-header { + flex-direction: row; + } +} +.home-body .home .introduction .header .main-header .search { + display: flex; + height: 48px; + max-height: 48px; + width: auto; + min-width: 243px; + padding: 0; + justify-content: center; + position: static; +} +@media (min-width: 800px) { + .home-body .home .introduction .header .main-header .search { + min-width: 194px; + } +} +.home-body .home .introduction .header .main-header .search .search-input-wrap { + position: relative; + top: 0; + width: 100%; + max-width: 33.5rem; + border-radius: 4px; + box-shadow: none; + height: 100%; +} +.home-body .home .introduction .header .main-header .search .search-input-wrap .search-input { + font-size: 0.875rem; + padding-left: 2.5rem; + background-color: transparent; + border: solid 1px rgba(255, 255, 255, 0.7411764706); + border-radius: 4px; + color: white; +} +.home-body .home .introduction .header .main-header .search .search-input-wrap .search-label { + padding-left: 1rem; +} +.home-body .home .introduction .header .main-header .search .search-input-wrap .search-label > svg { + color: rgba(255, 255, 255, 0.7411764706); +} +.home-body .home .introduction .header .main-header .search .search-results { + left: auto; + background-color: #293239; + box-shadow: 0 1px 12px rgba(255, 255, 255, 0.5); + width: -webkit-fill-available; + min-width: 243px; + max-width: 243px; + max-height: calc(100vh - 4rem); + top: 128px; +} +@media (min-width: 800px) { + .home-body .home .introduction .header .main-header .search .search-results { + top: 48px; + min-width: 194px; + max-width: 33.5rem; + max-height: calc(100vh - 200%); + } +} +.home-body .home .introduction .header .main-header .header-custom-main { + display: flex; + column-gap: 28px; + color: rgba(255, 255, 255, 0.7411764706); +} +.home-body .home .introduction .header .main-header .header-custom-main .select { + border-style: none; + background-color: transparent; + color: inherit; +} +.home-body .home .introduction .header .main-header .header-custom-main .select > option { + background-color: #293239; + color: inherit; +} +.home-body .home .introduction .header .main-header .header-custom-main .github-div { + flex-shrink: 0; +} +.home-body .home .introduction .header .main-header .header-custom-main .github-div > a { + display: flex; + align-items: center; +} +.home-body .home .introduction .header .main-header .header-custom-main .docs-div { + display: flex; + justify-content: center; + align-items: center; + border: solid 1px rgba(255, 255, 255, 0.7411764706); + border-radius: 4px; + width: 80px; + height: 40px; + font-size: 16px; +} +.home-body .home .introduction .header .main-header .header-custom-main > a { + text-decoration: none; + color: rgba(255, 255, 255, 0.7411764706); +} +.home-body .home .introduction .landing { + display: flex; + flex-direction: column; + row-gap: 28px; + align-items: center; + height: calc(100% - 226.5px); +} +@media (min-width: 800px) { + .home-body .home .introduction .landing { + height: calc(100% - 96px); + } +} +@media (min-width: 66.5rem) { + .home-body .home .introduction .landing { + justify-content: space-around; + flex-direction: row; + } +} +.home-body .home .introduction .landing .text { + display: flex; + flex-direction: column; + justify-content: center; + align-items: inherit; + padding: 28px 28px 0; +} +@media (min-width: 66.5rem) { + .home-body .home .introduction .landing .text { + max-width: 50%; + } +} +.home-body .home .introduction .landing .text > h4 { + align-self: start; + margin: 0; +} +.home-body .home .introduction .landing .text > p { + color: #4286FF; +} +.home-body .home .introduction .landing .text .home-btn { + font-size: 14px; + color: #FFF; + background-color: #2876FF; + height: 42px; + width: 148px; + align-self: start; +} +.home-body .home .introduction .landing .text .home-btn:hover { + background-color: #1A51C8; +} +.home-body .home .introduction .landing .banner { + display: flex; + justify-content: center; + flex-shrink: 1; + padding: 0 28px; +} +@media (min-width: 66.5rem) { + .home-body .home .introduction .landing .banner { + max-width: fit-content; + } +} +.home-body .home .top-content { + display: flex; + flex-direction: column; + width: 80%; +} +.home-body .home .custom-content { + display: flex; + flex-direction: row; + column-gap: 28px; + width: 80%; +} +.home-body .home .custom-content .code-icon { + width: 72px; + height: 72px; + position: absolute; + transform: translate(-100px, 12px); +} +.home-body .home .custom-content .code-icon-container { + display: flex; + flex-direction: column; + min-width: 72px; +} +@media (min-width: 2880px) { + .home-body .home .custom-content .code-icon-container { + display: none; + } +} +.home-body .home .custom-content .main-content { + display: flex; + flex-direction: column; +} +.home-body .home .custom-content .main-content .section-text { + display: flex; + flex-direction: column; + flex-grow: 1; + flex-shrink: 0; +} +.home-body .home .custom-content .main-content .section-text > h1 { + font-weight: 600; +} +.home-body .home .custom-content .main-content .link-div { + display: flex; + flex-direction: row; + flex-grow: 1; + flex-shrink: 0; + margin-top: 82px; + margin-bottom: 124px; + transform: translateX(-150px); +} +@media (min-width: 375px) { + .home-body .home .custom-content .main-content .link-div { + transform: translateX(-100px); + } +} +@media (min-width: 800px) { + .home-body .home .custom-content .main-content .link-div { + transform: translateX(0); + } +} +.home-body .home .custom-content .main-content .link-div .link-img { + display: flex; + flex-shrink: 0; + align-items: start; +} +.home-body .home .custom-content .main-content .link-div .link-img > img { + width: 100%; + max-width: 168px; + aspect-ratio: 1/1; +} +.home-body .home .custom-content .main-content .link-div .link-texts { + display: flex; + flex-direction: column; + flex-shrink: 1; + flex-grow: 1; +} +.home-body .home .custom-content .main-content .link-div .link-texts > h2 { + display: flex; + flex-direction: column; + justify-content: center; + min-height: 168px; + font-weight: 600; + color: #75A7FF; + margin: 0; +} +.home-body .home .custom-content .main-content .productivity-section { + display: flex; + flex-direction: column; +} +.home-body .home .custom-content .main-content .productivity-section .productivity-img-container { + display: flex; + align-items: center; + height: 38.9105058366vw; + max-height: 1119px; +} +@media (min-width: 2880px) { + .home-body .home .custom-content .main-content .productivity-section .productivity-img-container { + width: calc(80vw - 122px); + justify-content: center; + } +} +.home-body .home .custom-content .main-content .productivity-section .productivity-img-container > img { + max-width: 2888px; + width: 100%; + position: absolute; + left: 0; + aspect-ratio: 2880/1119; +} +@media (min-width: 2880px) { + .home-body .home .custom-content .main-content .productivity-section .productivity-img-container > img { + position: static; + } +} +.home-body .home .custom-content .main-content .productivity-section .productivity-img-container .productivity-bottom { + display: flex; + flex-direction: column; + justify-items: start; + flex-shrink: 0; + flex-grow: 1; +} +.home-body .home .custom-content .main-content .performance-section { + display: flex; + flex-direction: column; +} +.home-body .home .custom-content .main-content .performance-section .performance-img-container { + display: flex; + align-items: center; + height: 44.0528634361vw; + max-height: 1268px; +} +@media (min-width: 2880px) { + .home-body .home .custom-content .main-content .performance-section .performance-img-container { + width: calc(80vw - 122px); + justify-content: center; + } +} +.home-body .home .custom-content .main-content .performance-section .performance-img-container > img { + max-width: 2888px; + width: 100%; + position: absolute; + left: 0; + aspect-ratio: 2888/1268; +} +@media (min-width: 2880px) { + .home-body .home .custom-content .main-content .performance-section .performance-img-container > img { + position: static; + } +} +.home-body .home .custom-content .main-content .performance-section .performance-bottom { + display: flex; + flex-grow: 1; + flex-shrink: 0; + flex-direction: column; + justify-items: start; +} +.home-body .home .custom-content .main-content .performance-section .performance-bottom > a { + align-self: start; +} +.home-body .home .custom-content .main-content .components-section { + display: flex; + flex-direction: column; +} +.home-body .home .custom-content .main-content .components-section .components-img-container { + display: flex; + align-items: center; + height: 44.0528634361vw; + max-height: 1268px; +} +@media (min-width: 2880px) { + .home-body .home .custom-content .main-content .components-section .components-img-container { + width: calc(80vw - 122px); + justify-content: center; + } +} +.home-body .home .custom-content .main-content .components-section .components-img-container > img { + max-width: 2888px; + width: 100%; + position: absolute; + left: 0; + aspect-ratio: 2888/1268; +} +@media (min-width: 2880px) { + .home-body .home .custom-content .main-content .components-section .components-img-container > img { + position: static; + } +} +.home-body .home .custom-content .main-content .addons-section { + display: flex; + flex-direction: column; +} +.home-body .home .custom-content .main-content .addons-section .addons-img-container { + display: flex; + align-items: center; + height: 44.0528634361vw; + max-height: 1268px; +} +@media (min-width: 2880px) { + .home-body .home .custom-content .main-content .addons-section .addons-img-container { + width: calc(80vw - 122px); + justify-content: center; + } +} +.home-body .home .custom-content .main-content .addons-section .addons-img-container > img { + max-width: 2888px; + width: 100%; + position: absolute; + left: 0; + aspect-ratio: 2888/1268; +} +@media (min-width: 2880px) { + .home-body .home .custom-content .main-content .addons-section .addons-img-container > img { + position: static; + } +} +.home-body .home .footer-img-container { + display: flex; + align-items: center; + height: 13.3333333333vw; + max-height: 512px; + width: 100%; +} +.home-body .home .footer-img-container > img { + max-width: 3840px; + width: 100%; + aspect-ratio: 3840/512; +} +.home-body .home .home-footer { + display: flex; + flex-direction: column; + align-items: center; + justify-content: space-between; + width: 100%; + padding: 28px 5rem; + text-align: justify; + border-top: solid 1px rgba(255, 255, 255, 0.7411764706); +} +@media (min-width: 66.5rem) { + .home-body .home .home-footer { + flex-direction: row; + height: 74px; + padding: 0 5rem; + } +} +.home-body .home .home-footer > img { + width: 140px; + height: 41px; +} +.home-body .home .home-footer > div { + display: flex; + flex-direction: row; + justify-content: space-between; + align-items: center; + width: 200px; +} +.home-body .home .home-footer > div > a { + color: rgba(255, 255, 255, 0.8588235294); + display: flex; + align-items: center; + text-decoration: none; +} + +@media (min-width: 50rem) { + .breadcrumbs { + margin-top: -1rem; + } +} +.breadcrumbs ol { + padding-left: 0; + margin-bottom: 0.75rem; + margin-top: 0; + list-style: none; +} +.breadcrumbs li { + display: table-cell; + font-size: 0.6875rem !important; +} +@media (min-width: 31.25rem) { + .breadcrumbs li { + font-size: 0.75rem !important; + } +} +.breadcrumbs li::before { + display: none; +} +.breadcrumbs li::after { + display: inline-block; + margin-right: 0.5rem; + margin-left: 0.5rem; + color: #959396; + content: "/"; +} +.breadcrumbs li:last-child::after { + content: ""; +} + +@media (min-width: 50rem) { + .breadcrumbs { + margin-top: -1rem; + } +} +.breadcrumbs ol { + padding-left: 0; + margin-bottom: 0.75rem; + list-style: none; +} +.breadcrumbs li { + display: table-cell; + font-size: 0.6875rem !important; +} +@media (min-width: 31.25rem) { + .breadcrumbs li { + font-size: 0.75rem !important; + } +} +.breadcrumbs li::before { + display: none; +} +.breadcrumbs li::after { + display: inline-block; + margin-right: 0.5rem; + margin-left: 0.5rem; + color: #959396; + content: "/"; +} +.breadcrumbs li:last-child::after { + content: ""; +} + +.btn:focus { + display: none; +} + +a:not([class]) { + text-decoration: underline; + text-decoration-color: #eeebee; + text-underline-offset: 2px; +} +a:not([class]):hover { + text-decoration-color: rgba(20, 100, 165, 0.2392156863); +} + +.nav-list .nav-list-item .nav-list-expander { + color: rgba(0, 0, 0, 0.7411764706); +} +.nav-list .nav-list-item .nav-list-link { + color: rgba(0, 0, 0, 0.7411764706); + font-weight: 400; + font-size: 1rem; +} +.nav-list .nav-list-item .nav-list-link.active { + color: rgba(0, 0, 0, 0.6); + font-weight: 500; + font-size: 1rem; +} + +.header-custom-main { + display: flex; + place-content: end; + column-gap: 10px; + margin-right: 33px; +} +.header-custom-main .toggle-theme { + cursor: pointer; +} +.header-custom-main .select { + width: 65px; + border-style: none; + background: transparent; + color: rgba(0, 0, 0, 0.7411764706); +} +.header-custom-main .github-div { + display: flex; + align-items: center; +} +.header-custom-main .github-div > a { + display: flex; + align-items: center; +} + +.o-tab { + overflow: hidden; + padding-bottom: 6px; + /* Style the buttons that are used to open the tab content */ + /* Change background color of buttons on hover */ + /* Create an active/current tablink class */ +} +.o-tab button { + background-color: inherit; + float: left; + border: none; + outline: none; + cursor: pointer; + padding: 12px 16px; + transition: 0.3s; + font-size: 0.8em; + color: rgba(0, 0, 0, 0.7411764706); +} +.o-tab button:hover { + background-color: #93c7f2; + border-bottom: 2px solid rgba(20, 100, 165, 0.2392156863); +} +.o-tab button.active { + border-bottom: 2px solid #1464A5; +} + +/* Style the tab content */ +.o-tabcontent { + display: none; + padding: 6px 12px; + -webkit-animation: fadeEffect 1s; + animation: fadeEffect 1s; +} + +.o-component-container .list__item { + padding-right: 0; +} +.o-component-container .list__item .archive__item-excerpt { + margin-top: 0; + font-size: 0.75em; +} + +.mdl-data-table td[required] p.first:after { + content: " *"; +} + +.attributes-list { + overflow: hidden; +} +.attributes-list li { + display: inline-block; + width: 50%; + margin-bottom: 0.25em; + font-size: 18px; +} + +@media (min-width: 66.5rem) { + .sidebar__right { + position: fixed; + top: 64px; + right: 0px; + max-height: calc(100% - 112px); + min-height: fit-content; + width: 360px; + padding-bottom: 20px; + border: 1px solid #eeebee; + border-radius: 4px; + overflow: auto; + background-color: #fff; + z-index: 999; + } +} + +.toc { + letter-spacing: 1px; +} +.toc .nav__title { + margin: 0; + cursor: pointer; + font-size: 1rem !important; + color: #1464A5; + background-color: #E3ECF4; + padding: 20px 14px 8px 14px; +} +@media (min-width: 31.25rem) { + .toc .nav__title { + font-size: 1.125rem !important; + } +} +@media (min-width: 50rem) { + .toc .nav__title { + font-size: 0.875rem !important; + } +} +@media (min-width: 50rem) and (min-width: 31.25rem) { + .toc .nav__title { + font-size: 1rem !important; + } +} + +.toc__menu { + font-size: 1rem !important; + margin: 0; + padding: 0; + width: 100%; + list-style: none; +} +@media (min-width: 31.25rem) { + .toc__menu { + font-size: 1.125rem !important; + } +} +@media (min-width: 50rem) { + .toc__menu { + font-size: 0.875rem !important; + } +} +@media (min-width: 50rem) and (min-width: 31.25rem) { + .toc__menu { + font-size: 1rem !important; + } +} +.toc__menu li::before { + content: "" !important; +} +.toc__menu a { + text-decoration: none; + color: rgba(0, 0, 0, 0.7411764706); +} +.toc__menu a.active { + color: rgba(0, 0, 0, 0.6); + font-weight: 500; +} +.toc__menu li ul > li a { + padding-top: 0.2rem; + border: none; + text-transform: none; +} + +@media (min-width: 66.5rem) { + .toc__menu.collapsed { + display: none; + } + .toc.collapsed { + position: relative; + bottom: 14px; + } + .nav__title.collapsed { + height: 100%; + font-size: 15px !important; + cursor: pointer; + } + .sidebar__right.collapsed { + padding-bottom: 0px; + width: auto; + transform: rotate(270deg); + transform-origin: bottom right; + top: 34px; + height: 30px; + overflow: hidden; + color: #E3ECF4; + } +} +.faq-posts .panel-default .panel-heading { + color: #333; + background-color: #f5f5f5; + border-color: #ddd; + border-bottom: 0; + padding: 10px 30px; + border-bottom: 1px solid transparent; + border-top-left-radius: 3px; + border-top-right-radius: 3px; + cursor: pointer; +} +.faq-posts .panel-default .panel-title { + margin-top: 0; + margin-bottom: 0; + font-size: 16px; + color: inherit; +} +.faq-posts .panel-body { + padding: 15px; + font-size: 14px; +} +.faq-posts .panel { + margin-bottom: 0; + border-radius: 4px; + background-color: #fff; + border: 1px solid transparent; +} +.faq-posts .collapse { + display: none; +} +.faq-posts .collapse.in { + display: block; +} +.faq-posts .collapsing { + position: relative; + height: 0; + overflow: hidden; + -webkit-transition-property: height, visibility; + transition-property: height, visibility; + -webkit-transition-duration: 0.35s; + transition-duration: 0.35s; + -webkit-transition-timing-function: ease; + transition-timing-function: ease; +} + +.multicolumn { + display: flex; +} + +.toggle-tree-btn { + all: unset; + margin-bottom: 10px; + align-self: flex-end; + position: absolute; + top: 8px; + right: 8px; + cursor: pointer; +} + +.multicolumnleft { + flex: 1; + max-width: 100%; + overflow-x: auto; + padding: 0 40px 0 0; + box-sizing: border-box; + position: relative; +} + +.multicolumnnopadding { + flex: 1; + max-width: 100%; + overflow-x: auto; + padding: 0 0 0 0; + box-sizing: border-box; +} + +.multicolumnright { + box-sizing: border-box; + border-left: 1px solid #ccc; + transition: width 0.3s ease; + overflow-x: auto; +} +.multicolumnright.collapsed { + width: 0; + overflow: hidden; + padding: 0; + border-left: none; + display: none; +} + +.verticalDivider { + border-left: 1px solid #F2F3F3; + padding-right: 10px; + margin-left: 10px; +} + +.jstreeloader ul > li::before { + content: ""; +} + +i.jstree-icon { + filter: invert(36%) sepia(8%) saturate(440%) hue-rotate(218deg) brightness(90%) contrast(85%); +} + +@media (min-width: 50rem) and ((max-width: 66.5rem)) { + #top.main { + max-width: none; + margin-left: 16.5rem; + } +} +@media (min-width: 66.5rem) { + body > div.side-bar { + min-width: auto; + width: auto; + } + #top.main { + max-width: none; + margin-left: calc(16.5rem + 1px); + } +} +@media (min-width: 50rem) { + div.side-bar { + width: 16.5rem; + } +} +table { + table-layout: auto; + width: 120px; +} + +.menu-card-container { + display: grid; + grid-gap: 32px; + grid-template-columns: repeat(auto-fit, minmax(auto, 368px)); + grid-auto-rows: minmax(auto, 208px); + justify-content: center; +} +.menu-card-container a { + text-decoration: none; + color: rgba(0, 0, 0, 0.7411764706); +} +.menu-card-container a .menu-card { + display: flex; + flex-direction: column; + justify-content: space-between; + height: 100%; + border-radius: 2px; + border: 1px solid rgba(0, 0, 0, 0.1215686275); +} +.menu-card-container a .menu-card .image-container { + display: flex; + justify-content: center; + align-items: center; + height: 128px; + border-bottom: 1px solid rgba(0, 0, 0, 0.1215686275); + background-color: #F6F6F6; +} +.menu-card-container a .menu-card .bottom-image { + height: 80px; + vertical-align: middle; + text-align: start; + padding: 28px 18px; + margin: 0; + overflow: hidden; + text-overflow: ellipsis; + font-weight: 500; +} +.menu-card-container a .menu-card .text-container { + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + height: 88px; + font-weight: 500; + border-bottom: 1px solid rgba(0, 0, 0, 0.1215686275); +} +.menu-card-container a .menu-card .text-container > p { + width: 100%; + display: flex; + align-items: center; + justify-content: center; + text-align: start; + padding: 10px 18px 0 18px; + height: 100%; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + color: rgba(0, 0, 0, 0.8705882353); +} +.menu-card-container a .menu-card .bottom-title { + height: 118px; + text-overflow: ellipsis; + overflow: hidden; + text-align: start; + margin: 0; + padding: 20px 18px; +} +.menu-card-container a:hover .menu-card .bottom-title { + background-color: #C7DAE9; +} +.menu-card-container a:hover .menu-card .bottom-image { + background-color: #C7DAE9; +} + +.menu-card-container:has(.image-container) { + grid-template-columns: repeat(auto-fit, minmax(auto, 272px)); + grid-auto-rows: minmax(208px, auto); +} + +.hidden { + display: none; +} + +.menuitem-badge { + background: linear-gradient(-180deg, #1464A5 0, rgba(20, 100, 165, 0.2392156863) 100%); + color: #fff; + padding: 2px 4px; + vertical-align: middle; + border-radius: 3px; + font-weight: 700; + font-size: 11px; + position: relative; + top: -1px; +} + +img[alt="Alt text"] { + width: 100%; +} + +/*# sourceMappingURL=just-the-docs-light.css.map */ \ No newline at end of file diff --git a/v3/assets/css/just-the-docs-light.css.map b/v3/assets/css/just-the-docs-light.css.map new file mode 100644 index 0000000..f927d17 --- /dev/null +++ b/v3/assets/css/just-the-docs-light.css.map @@ -0,0 +1 @@ +{"version":3,"sourceRoot":"","sources":["../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/vendor/OneLightJekyll/syntax.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/vendor/normalize.scss/normalize.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/base.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/color_schemes/light.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/support/mixins/_typography.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/support/mixins/_layout.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/support/_variables.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/layout.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/content.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/navigation.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/typography.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/labels.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/buttons.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/support/mixins/_buttons.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/search.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/tables.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/code.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/utilities/_colors.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/utilities/_layout.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/utilities/_typography.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/utilities/_lists.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/utilities/_spacing.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/print.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/skiptomain.scss","just-the-docs-light.scss","../../_sass/custom/custom.scss","../../_sass/custom/setup.scss"],"names":[],"mappings":";AAEA;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;EACA;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;EESJ;IAEI;IACA,WD6EY;IC5EZ,aDwEW;;;ADrFX;EESJ;IAUI;AAAA;AAAA;AAAA;;;;AAQJ;EFhBE,eCuDK;EDtDL,cCsDK;ECpCL,aDoCK;ECnCL,gBDmCK;;ADlEH;EE2BJ;IFZI,eCqDG;IDpDH,cCoDG;;;ADpEH;EE2BJ;IAOI,aDkCG;ICjCH,gBDiCG;;;;AC7BP;EACE;EACA;EACA,kBDrBY;;ADrBV;EEuCJ;IAMI;IACA;IACA,QD2CY;IC1CZ,kBDjCI;ICkCJ;;;AAGF;EACE;;AFrDA;EEoDF;IAII;;;;AAKN;AAAA;AAAA;EAGE;;AFhEE;EE6DJ;AAAA;AAAA;IAMI,ODiBQ;;;;ACbZ;EACE;;AAEA;EACE;;AF3EA;EEuEJ;IAQI;IACA,aDVG;ICWH,gBDfG;ICgBH;IACA;;;;AAIJ;EACE;EACA,YDCc;ECAd;;AF1FE;EEuFJ;IAMI,QDHY;ICIZ,YDJY;ICKZ;;;;AAIJ;EFxFE,eCuDK;EDtDL,cCsDK;ECoCL;EACA;EACA;EACA;EACA,aDzCK;EC0CL,gBD1CK;EC2CL,ODxFY;EFOZ;;AC3BE;EEmGJ;IFpFI,eCqDG;IDpDH,cCoDG;;;ADpEH;EEmGJ;IHrEI;IACA,aEpCuB;;;ADKvB;EEmGJ;IAaI,aDhDG;ICiDH,gBDjDG;;;;ACsDL;EACE;EACA;EACA;EACA;EACA;EACA;;;AAIJ;EACE;EACA;EACA,SDjEK;ECkEL;;;AFpIE;EEwIF;IACE;;;AAIJ;EACE;;;AAQF;EACE;;;AASF;EACE;EACA,gBD1FM;EC2FN;;AFnKE;EEgKJ;IAMI;IACA;;;;AAMJ;EFlKE,eCuDK;EDtDL,cCsDK;EC8GL;EACA;EACA;EACA,aDjHK;ECkHL,gBDlHK;ECmHL,ODrKY;EFrBZ;;ACKE;EE6KJ;IF9JI,eCqDG;IDpDH,cCoDG;;;ADpEH;EE6KJ;IH/KI;;;ACEA;EE6KJ;IAYI;IACA;;;;AAIJ;EACE,OD5HK;EC6HL,QD7HK;EC8HL,ODxKW;;;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;;;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;;;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;;;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;;;ACpBF;EACE,kBlBoBM;;;AkBnBP;EACG;EACA;EACA,elB8EY;EkB7EZ;EACA;;AAEA;EACE,OlBgBQ;EkBfR;EACA;EACA;EACA;EACA;;;AAIN;EACI;EACA;EACA,elB6DY;EkB5DZ;EACA;;AACA;EACE;EACA;EACA,OlBFQ;EkBGR;EACA;EACA;EACA;EACA;;;AAIN;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;AAIJ;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;AAIJ;EACI;EACA;EACA,elBiBY;EkBhBZ;EACA;;AAEA;EACI,OlB7CM;EkB8CN;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACE,OlBvDQ;EkBwDR;EACA;EACA;EACA;EACA;;;AAIN;EACI;EACA;EACA,elBVY;EkBWZ;EACA;;AACA;EACE;EACA;EACA,OlBzEQ;EkB0ER;EACA;EACA;EACA;EACA;;;AAIN;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;AAIJ;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;AAIJ;EACI;EACA;EACA,elBtDY;EkBuDZ;EACA;;AAEA;EACI,OlBxGG;EkByGH;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACE,OlBlHK;EkBmHL;EACA;EACA;EACA;EACA;;;AAIN;EACI;EACA;EACA,elBjFY;EkBkFZ;EACA;;AACA;EACE;EACA;EACA,OlBpIK;EkBqIL;EACA;EACA;EACA;EACA;;;AAIN;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;AAIJ;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;AAIJ;EACI;EACA;EACA,elB7HY;EkB8HZ;EACA;;AAEA;EACI,OlBnKE;EkBoKF;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACE,OlB7KI;EkB8KJ;EACA;EACA;EACA;EACA;;;AAIN;EACI;EACA;EACA,elBxJY;EkByJZ;EACA;;AACA;EACE;EACA;EACA,OlB/LI;EkBgMJ;EACA;EACA;EACA;EACA;;;AAIN;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;AAIJ;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;ACvRJ;EACE;IACE;IACA;IACA;;;AAKJ;EAEI,OCTU;;;ADkBd;EACE;;AAEA;EACE;EACA;EACA;EACA;EACA,kBCbc;EDcd;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;ApB7CF;EoBsCA;IAUI;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA,kBCxDU;EDyDV;;ApB3DJ;EoBmDE;IAWI;IACA;IACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;ApBxEN;EoBmEI;IAQI;;;AAGF;EACE;EACA;;AAIJ;EACE;EACA;EACA;EACA,kBCtFQ;EDuFR;EACA;EACA;EACA;EACA;EACA;;ApB9FN;EoBoFI;IAaI;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ApB5GR;EoBoGM;IAWI;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAEA;EACE;;AAKN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ApBrJV;EoB6IQ;IAWI;IACA;IACA;IACA;;;AAKN;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAEA;EACE,kBCzKE;ED0KF;;AAIJ;EACE;;AAEA;EACE;EACA;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;;AAMR;EACE;EACA;EACA;EACA;EACA;;ApBjNJ;EoB4ME;IAQI;;;ApBpNN;EoB4ME;IAYI;IACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;ApBjON;EoB4NI;IAQI;;;AAGF;EACE;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAKN;EACE;EACA;EACA;EACA;;ApBlQN;EoB8PI;IAOI;;;AAOR;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;ApBlSJ;EoB+RE;IAMI;;;AAIJ;EACE;EACA;;AAGA;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAKJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;ApBjUN;EoB0TI;IAUI;;;ApBpUR;EoB0TI;IAcI;;;AAGF;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAIJ;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAKN;EACE;EACA;;AAEA;EACE;EACA;EACA;EACA;;ApBjXR;EoB6WM;IAOI;IACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;ApB7XV;EoBiYU;IACE;;;AAIJ;EACE;EACA;EACA;EACA;EACA;;AAKN;EACE;EACA;;AAEA;EACE;EACA;EACA;EACA;;ApBxZR;EoBoZM;IAOI;IACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;ApBpaV;EoBwaU;IACE;;;AAKN;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAKN;EACE;EACA;;AAEA;EACE;EACA;EACA;EACA;;ApBncR;EoB+bM;IAOI;IACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;ApB/cV;EoBmdU;IACE;;;AAMR;EACE;EACA;;AAEA;EACE;EACA;EACA;EACA;;ApBleR;EoB8dM;IAOI;IACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;ApB9eV;EoBkfU;IACE;;;AAQZ;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ApBjhBF;EoBygBA;IAWI;IACA;IACA;;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;;ApBziBN;EoBijBJ;IAEI;;;AAGF;EACE;EACA,enBvfG;EmBwfH;EACA;;AAGF;EACE;ErBnkBF;;ACKE;EoB6jBF;IrB/jBE;;;AqBmkBA;EACE;;AAGF;EACE;EACA,cnBvgBC;EmBwgBD,anBxgBC;EmBygBD,OnBzjBQ;EmB0jBR;;AAIA;EACE;;;ApB/kBJ;EoBslBJ;IAEI;;;AAGF;EACE;EACA,enB5hBG;EmB6hBH;;AAGF;EACE;ErBvmBF;;ACKE;EoBimBF;IrBnmBE;;;AqBumBA;EACE;;AAGF;EACE;EACA,cnB3iBC;EmB4iBD,anB5iBC;EmB6iBD,OnB7lBQ;EmB8lBR;;AAIA;EACE;;;AAQR;EACE;;;AAIF;EACE;EACA,uBnB5mBY;EmB6mBZ;;AAEA;EAEI,uBCjpBW;;;AD8pBb;EAEI,OC9pBE;;ADsqBN;EAEI,OCxqBE;ED+qBJ;EAEA,WnBpqBQ;;AmBsqBR;EAEI,OCprBA;ED4rBF;EACA,WnBjrBM;;;AmBwrBd;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;EAGE,OCrtBI;;ADiuBR;EACE;EACA;;AAEA;EACE;EACA;;;AAMN;EACE;EACA;AAEA;AAoBA;AAaA;;AAhCA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAGE,OC7vBI;;ADswBR;EAEI;EACA;;AAUJ;EAEI;;;AASN;AACA;EACE;EACA;EACA;EACA;;;AAIA;EACE;;AAEA;EACE;EACA;;;AAUE;EACE;;;AAQV;EACE;;AAEA;EACE;EACA;EACA;EACA;;;ApB9zBA;EoBk0BJ;IAGI;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,kBnBh0BI;ImBi0BJ;;;;AAIJ;EACE;;AAEA;EACE;EACA;ErBt0BF;EqB80BI,OC92BQ;ED+2BR,kBC32BO;EDm3BT;;ApB12BA;EoBu1BF;IrBj0BE;;;ACtBA;EoBu1BF;IrB50BA;;;ACXE;EoBu1BF;IrBz0BE;;;;AqBg2BJ;ErB31BE;EqBm2BA;EACA;EACA;EACA;;ApBz3BE;EoB82BJ;IrBx1BI;;;ACtBA;EoB82BJ;IrBn2BE;;;ACXE;EoB82BJ;IrBh2BI;;;AqB62BF;EACE;;AAGF;EACE;EAGE,OC34BI;;ADk5BN;EAGI,OCp5BE;ED25BJ;;AAIJ;EACE;EACA;EACA;;;AAMJ;EACE;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;IACA;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;IACA;IAGE,OCp8BO;;;ADk9BT;EAEI;EACA;EACA;EAUF;EAEA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAIJ;EACE;EACA;;AAGF;EACE;EACA;EAGE;EAOF;;AAMF;EACE;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIJ;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EAGE;EAOF;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;;;AAIJ;EAGI;EAOF;EACA;;;AAIF;EACE;;;AAoBF;EAEQ;;;AAQR;EACE;IACE;IACA;;;AAIJ;EACE;IACE;IACA;;EAGF;IACE;IACA;;;AAIJ;EACE;IACE;;;AAMJ;EACE;EACA;;;AAKF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EAGE,OC7qCI;;ADorCN;EACE;EACA;EACA;EACA;EACA;EAGE;;AAOF;EACE;EACA;EACA;EACA;EAGE;EACA;;AASJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EAGE;;AAOF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAGE;;AASN;EACE;EACA;EACA;EACA;EACA;EACA;;AAMA;EAGI;;AAQJ;EAEI;;;AAYZ;EACE;EACA;;;AAGF;EACE;;;AAIF;EAEI;EACA;EAQF;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE","sourcesContent":["// 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\n.main {\n @include mq(md) {\n position: relative;\n max-width: $content-width;\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\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 display: none;\n background-color: $sidebar-color;\n\n @include mq(md) {\n display: flex;\n justify-content: space-between;\n height: $header-height;\n background-color: $body-background-color;\n border-bottom: $border $border-color;\n }\n\n &.nav-open {\n display: block;\n\n @include mq(md) {\n display: flex;\n }\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$logo: \"/docs/v3/assets/icons/logo-ontimize-blanco.png\";\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}p.highlight, blockquote.highlight {\n background: rgba($grey-dk-000, 0.2);\n border-left: $border-radius solid $grey-dk-300;\n border-radius: $border-radius;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);\n padding: .8rem;\n \n > .highlight-title {\n color: $grey-dk-300;\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n}\n\np.highlight-title, blockquote.highlight-title {\n background: rgba($grey-dk-000, 0.2);\n border-left: $border-radius solid $grey-dk-300;\n border-radius: $border-radius;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);\n padding: .8rem;\n > p:first-child {\n margin-top: 0;\n margin-bottom: 0;\n color: $grey-dk-300;\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n}\n\nblockquote.highlight {\n margin-left: 0;\n margin-right: 0;\n \n > p:first-child {\n margin-top: 0;\n }\n \n > p:last-child {\n margin-bottom: 0;\n }\n}\n\nblockquote.highlight-title {\n margin-left: 0;\n margin-right: 0;\n \n > p:nth-child(2) {\n margin-top: 0;\n }\n \n > p:last-child {\n margin-bottom: 0;\n }\n}\n\np.important, blockquote.important {\n background: rgba($grey-dk-000, 0.2);\n border-left: $border-radius solid $grey-dk-300;\n border-radius: $border-radius;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);\n padding: .8rem;\n \n &::before {\n color: $grey-dk-300;\n content: \"Important\";\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n \n > .important-title {\n color: $grey-dk-300;\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n}\n\np.important-title, blockquote.important-title {\n background: rgba($grey-dk-000, 0.2);\n border-left: $border-radius solid $grey-dk-300;\n border-radius: $border-radius;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);\n padding: .8rem;\n > p:first-child {\n margin-top: 0;\n margin-bottom: 0;\n color: $grey-dk-300;\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n}\n\nblockquote.important {\n margin-left: 0;\n margin-right: 0;\n \n > p:first-child {\n margin-top: 0;\n }\n \n > p:last-child {\n margin-bottom: 0;\n }\n}\n\nblockquote.important-title {\n margin-left: 0;\n margin-right: 0;\n \n > p:nth-child(2) {\n margin-top: 0;\n }\n \n > p:last-child {\n margin-bottom: 0;\n }\n}\n\np.note, blockquote.note {\n background: rgba($blue-000, 0.2);\n border-left: $border-radius solid $blue-300;\n border-radius: $border-radius;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);\n padding: .8rem;\n \n &::before {\n color: $blue-300;\n content: \"Note\";\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n \n > .note-title {\n color: $blue-300;\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n}\n\np.note-title, blockquote.note-title {\n background: rgba($blue-000, 0.2);\n border-left: $border-radius solid $blue-300;\n border-radius: $border-radius;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);\n padding: .8rem;\n > p:first-child {\n margin-top: 0;\n margin-bottom: 0;\n color: $blue-300;\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n}\n\nblockquote.note {\n margin-left: 0;\n margin-right: 0;\n \n > p:first-child {\n margin-top: 0;\n }\n \n > p:last-child {\n margin-bottom: 0;\n }\n}\n\nblockquote.note-title {\n margin-left: 0;\n margin-right: 0;\n \n > p:nth-child(2) {\n margin-top: 0;\n }\n \n > p:last-child {\n margin-bottom: 0;\n }\n}\n\np.warning, blockquote.warning {\n background: rgba($red-000, 0.2);\n border-left: $border-radius solid $red-300;\n border-radius: $border-radius;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);\n padding: .8rem;\n \n &::before {\n color: $red-300;\n content: \"Warning\";\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n \n > .warning-title {\n color: $red-300;\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n}\n\np.warning-title, blockquote.warning-title {\n background: rgba($red-000, 0.2);\n border-left: $border-radius solid $red-300;\n border-radius: $border-radius;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);\n padding: .8rem;\n > p:first-child {\n margin-top: 0;\n margin-bottom: 0;\n color: $red-300;\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n}\n\nblockquote.warning {\n margin-left: 0;\n margin-right: 0;\n \n > p:first-child {\n margin-top: 0;\n }\n \n > p:last-child {\n margin-bottom: 0;\n }\n}\n\nblockquote.warning-title {\n margin-left: 0;\n margin-right: 0;\n \n > p:nth-child(2) {\n margin-top: 0;\n }\n \n > p:last-child {\n margin-bottom: 0;\n }\n}\n\n\n@import \"./custom/custom\";\n\n\n","// Sticky header\n@media (min-width: 50rem) {\n #main-header {\n position: sticky;\n top: 0;\n z-index: 999\n }\n}\n\n// Custom text colors\n.text-primary-900 {\n @if $color_scheme=='light' {\n color: $primary-900\n }\n\n @else {\n color: $primary-900-dark\n }\n}\n\n// Home page\n.home-body {\n padding: 0;\n\n .home {\n display: flex;\n flex-direction: column;\n justify-content: start;\n align-items: center;\n background-color: $home-background;\n color: #FFFFFFBD;\n width: 100%;\n height: 100%;\n\n a {\n color: #A8C7FF;\n text-decoration: underline;\n text-decoration-color: #A8C7FF;\n\n &:hover {\n text-decoration-color: #A8C7FF;\n }\n }\n\n .text-primary-400 {\n color: #4286FF;\n }\n\n .white-87 {\n color: #FFFFFFDE;\n }\n\n .introduction {\n background-image: url('../../assets/images/home/bg-landing.png');\n background-repeat: repeat;\n display: flex;\n flex-direction: column;\n justify-content: start;\n height: 100%;\n width: 100%;\n\n @include mq (lg) {\n height: 100vh;\n }\n\n .header {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: space-around;\n gap: 28px;\n padding: 0 5rem 28px;\n background-color: $home-background;\n box-shadow: 0 1px 12px rgba(255, 255, 255, 0.5);\n\n @include mq(home-header) {\n height: 96px;\n padding-bottom: 0;\n flex-direction: row;\n }\n\n .site-header {\n flex-shrink: 0;\n height: fit-content;\n width: fit-content;\n border: none;\n align-items: end;\n\n @include mq(home-header) {\n align-items: center;\n }\n\n img {\n width: 140px;\n height: 41px;\n }\n }\n\n .main-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n background-color: $home-background;\n border: none;\n gap: 28px;\n flex-grow: 1;\n flex-direction: column;\n height: inherit;\n padding: 0;\n\n @include mq(home-header) {\n flex-direction: row;\n }\n\n .search {\n display: flex;\n height: 48px;\n max-height: 48px;\n width: auto;\n min-width: 243px;\n padding: 0;\n justify-content: center;\n position: static;\n\n @include mq(home-header) {\n min-width: 194px;\n }\n\n .search-input-wrap {\n position: relative;\n top: 0;\n width: 100%;\n max-width: 33.5rem;\n border-radius: 4px;\n box-shadow: none;\n height: 100%;\n\n .search-input {\n font-size: 0.875rem;\n padding-left: 2.5rem;\n background-color: transparent;\n border: solid 1px #FFFFFFBD;\n border-radius: 4px;\n color: white;\n }\n\n .search-label {\n padding-left: 1rem;\n\n >svg {\n color: #FFFFFFBD;\n }\n }\n }\n\n .search-results {\n left: auto;\n background-color: #293239;\n box-shadow: 0 1px 12px rgba(255, 255, 255, 0.5);\n width: -webkit-fill-available;\n min-width: 243px;\n max-width: 243px;\n max-height: calc(100vh - #{$sp-10});\n top: 128px;\n\n @include mq(home-header) {\n top: 48px;\n min-width: 194px;\n max-width: 33.5rem;\n max-height: calc(100vh - 200%);\n }\n }\n }\n\n .header-custom-main {\n display: flex;\n column-gap: 28px;\n color: #FFFFFFBD;\n\n .select {\n border-style: none;\n background-color: transparent;\n color: inherit;\n\n >option {\n background-color: $home-background;\n color: inherit;\n }\n }\n\n .github-div {\n flex-shrink: 0;\n\n >a {\n display: flex;\n align-items: center;\n }\n }\n\n .docs-div {\n display: flex;\n justify-content: center;\n align-items: center;\n border: solid 1px #FFFFFFBD;\n border-radius: 4px;\n width: 80px;\n height: 40px;\n font-size: 16px;\n }\n\n >a {\n text-decoration: none;\n color: #FFFFFFBD;\n }\n }\n }\n }\n\n .landing {\n display: flex;\n flex-direction: column;\n row-gap: 28px;\n align-items: center;\n height: calc(100% - 226.5px);\n\n @include mq(home-header) {\n height: calc(100% - 96px);\n }\n\n @include mq (lg) {\n justify-content: space-around;\n flex-direction: row;\n }\n\n .text {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: inherit;\n padding: 28px 28px 0;\n\n @include mq(lg) {\n max-width: 50%;\n }\n\n >h4 {\n align-self: start;\n margin: 0;\n }\n\n >p {\n color: #4286FF;\n }\n\n .home-btn {\n font-size: 14px;\n color: #FFF;\n background-color: #2876FF;\n height: 42px;\n width: 148px;\n align-self: start;\n\n &:hover {\n background-color: #1A51C8;\n }\n }\n }\n\n .banner {\n display: flex;\n justify-content: center;\n flex-shrink: 1;\n padding: 0 28px;\n\n @include mq (lg) {\n max-width: fit-content;\n }\n }\n }\n\n }\n\n .top-content {\n display: flex;\n flex-direction: column;\n width: 80%;\n }\n\n .custom-content {\n display: flex;\n flex-direction: row;\n column-gap: 28px;\n width: 80%;\n\n .code-icon {\n width: 72px;\n height: 72px;\n position: absolute;\n transform: translate(-100px, 12px);\n }\n\n .code-icon-container {\n display: flex;\n flex-direction: column;\n min-width: 72px;\n\n @include mq(home-imgs-max) {\n display: none;\n }\n }\n\n .main-content {\n display: flex;\n flex-direction: column;\n\n\n .section-text {\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n flex-shrink: 0;\n\n >h1 {\n font-weight: 600;\n }\n\n }\n\n .link-div {\n display: flex;\n flex-direction: row;\n flex-grow: 1;\n flex-shrink: 0;\n margin-top: 82px;\n margin-bottom: 124px;\n transform: translateX(-150px);\n\n @include mq(mobile-m) {\n transform: translateX(-100px);\n }\n\n @include mq(home-header) {\n transform: translateX(0);\n }\n\n .link-img {\n display: flex;\n flex-shrink: 0;\n align-items: start;\n\n >img {\n width: 100%;\n max-width: 168px;\n aspect-ratio: 1 / 1;\n }\n }\n\n .link-texts {\n display: flex;\n flex-direction: column;\n flex-shrink: 1;\n flex-grow: 1;\n\n >h2 {\n display: flex;\n flex-direction: column;\n justify-content: center;\n min-height: 168px;\n font-weight: 600;\n color: #75A7FF;\n margin: 0;\n }\n }\n }\n\n .productivity-section {\n display: flex;\n flex-direction: column;\n\n .productivity-img-container {\n display: flex;\n align-items: center;\n height: calc(100vw / 2.57);\n max-height: 1119px;\n\n @include mq(home-imgs-max) {\n width: calc(80vw - 122px);\n justify-content: center;\n }\n\n >img {\n max-width: 2888px;\n width: 100%;\n position: absolute;\n left: 0;\n aspect-ratio: 2880 / 1119;\n }\n\n @include mq(home-imgs-max) {\n >img {\n position: static;\n }\n }\n\n .productivity-bottom {\n display: flex;\n flex-direction: column;\n justify-items: start;\n flex-shrink: 0;\n flex-grow: 1;\n }\n }\n }\n\n .performance-section {\n display: flex;\n flex-direction: column;\n\n .performance-img-container {\n display: flex;\n align-items: center;\n height: calc(100vw / 2.27);\n max-height: 1268px;\n\n @include mq(home-imgs-max) {\n width: calc(80vw - 122px);\n justify-content: center;\n }\n\n >img {\n max-width: 2888px;\n width: 100%;\n position: absolute;\n left: 0;\n aspect-ratio: 2888 / 1268;\n }\n\n @include mq(home-imgs-max) {\n >img {\n position: static;\n }\n }\n }\n\n .performance-bottom {\n display: flex;\n flex-grow: 1;\n flex-shrink: 0;\n flex-direction: column;\n justify-items: start;\n\n >a {\n align-self: start;\n }\n }\n }\n\n .components-section {\n display: flex;\n flex-direction: column;\n\n .components-img-container {\n display: flex;\n align-items: center;\n height: calc(100vw / 2.27);\n max-height: 1268px;\n\n @include mq(home-imgs-max) {\n width: calc(80vw - 122px);\n justify-content: center;\n }\n\n >img {\n max-width: 2888px;\n width: 100%;\n position: absolute;\n left: 0;\n aspect-ratio: 2888 / 1268;\n }\n\n @include mq(home-imgs-max) {\n >img {\n position: static;\n }\n }\n }\n }\n\n .addons-section {\n display: flex;\n flex-direction: column;\n\n .addons-img-container {\n display: flex;\n align-items: center;\n height: calc(100vw / 2.27);\n max-height: 1268px;\n\n @include mq(home-imgs-max) {\n width: calc(80vw - 122px);\n justify-content: center;\n }\n\n >img {\n max-width: 2888px;\n width: 100%;\n position: absolute;\n left: 0;\n aspect-ratio: 2888 / 1268;\n }\n\n @include mq(home-imgs-max) {\n >img {\n position: static;\n }\n }\n }\n }\n }\n }\n\n .footer-img-container {\n display: flex;\n align-items: center;\n height: calc(100vw / 7.5);\n max-height: 512px;\n width: 100%;\n\n >img {\n max-width: 3840px;\n width: 100%;\n aspect-ratio: 3840 / 512;\n }\n }\n\n .home-footer {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n padding: 28px 5rem;\n text-align: justify;\n border-top: solid 1px #FFFFFFBD;\n\n @include mq(lg) {\n flex-direction: row;\n height: 74px;\n padding: 0 5rem;\n }\n\n >img {\n width: 140px;\n height: 41px;\n }\n\n >div {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n width: 200px;\n\n >a {\n color: #FFFFFFDB;\n display: flex;\n align-items: center;\n text-decoration: none;\n }\n }\n }\n }\n}\n\n// breadcrumbs.html include style\n.breadcrumbs {\n @include mq(md) {\n margin-top: -$sp-4;\n }\n\n ol {\n padding-left: 0;\n margin-bottom: $sp-3;\n margin-top: 0;\n list-style: none;\n }\n\n li {\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}\n\n// breadcrumbs.html include style\n.breadcrumbs {\n @include mq(md) {\n margin-top: -$sp-4;\n }\n\n ol {\n padding-left: 0;\n margin-bottom: $sp-3;\n list-style: none;\n }\n\n li {\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\n}\n\n// Button outline style\n.btn:focus {\n display: none;\n}\n\n// Links\na:not([class]) {\n text-decoration: underline;\n text-decoration-color: $border-color;\n text-underline-offset: 2px;\n\n &:hover {\n @if $color_scheme=='light' {\n text-decoration-color: $primary-500-24;\n }\n\n @else {\n text-decoration-color: $primary-500-24-dark;\n }\n }\n}\n\n// Default side bar\n.nav-list {\n .nav-list-item {\n\n .nav-list-expander {\n @if $color_scheme=='light' {\n color: $dark-74;\n }\n\n @else {\n color: $white-74;\n }\n }\n\n .nav-list-link {\n @if $color_scheme=='light' {\n color: $dark-74;\n }\n\n @else {\n color: $white-74;\n }\n\n font-weight: 400;\n // 16px\n font-size: $font-size-5;\n\n &.active {\n @if $color_scheme=='light' {\n color: $dark-60;\n }\n\n @else {\n color: $white-60;\n background-image: linear-gradient(-90deg, #1d1d1d 0%, rgba(29, 29, 29, 0.8) 80%, rgba(29, 29, 29, 0) 100%) !important;\n }\n\n font-weight: 500;\n font-size: $font-size-5;\n }\n }\n }\n}\n\n// Style of the header version changer\n.header-custom-main {\n display: flex;\n place-content: end;\n column-gap: 10px;\n margin-right: 33px;\n\n .toggle-theme {\n cursor: pointer;\n }\n\n .select {\n width: 65px;\n border-style: none;\n background: transparent;\n\n @if $color_scheme=='light' {\n color: $dark-74;\n }\n\n @else {\n color: $white-74;\n\n option {\n background-color: #27262b;\n }\n }\n }\n\n .github-div {\n display: flex;\n align-items: center;\n\n >a {\n display: flex;\n align-items: center;\n }\n }\n}\n\n// Style of the component-api tabs\n.o-tab {\n overflow: hidden;\n padding-bottom: 6px;\n\n /* Style the buttons that are used to open the tab content */\n button {\n background-color: inherit;\n float: left;\n border: none;\n outline: none;\n cursor: pointer;\n padding: 12px 16px;\n transition: .3s;\n font-size: 0.8em;\n\n @if $color_scheme=='light' {\n color: $dark-74;\n }\n\n @else {\n color: $white-74;\n }\n }\n\n /* Change background color of buttons on hover */\n button:hover {\n @if $color_scheme=='light' {\n background-color: lighten($primary-500, 40%);\n border-bottom: 2px solid $primary-500-24;\n }\n\n @else {\n background-color: lighten($primary-500-dark, 40%);\n border-bottom: 2px solid $primary-500-24-dark;\n }\n }\n\n /* Create an active/current tablink class */\n button.active {\n @if $color_scheme=='light' {\n border-bottom: 2px solid $primary-500;\n }\n\n @else {\n border-bottom: 2px solid $primary-500;\n }\n }\n}\n\n/* Style the tab content */\n.o-tabcontent {\n display: none;\n padding: 6px 12px;\n -webkit-animation: fadeEffect 1s;\n animation: fadeEffect 1s;\n}\n\n.o-component-container {\n .list__item {\n padding-right: 0;\n\n .archive__item-excerpt {\n margin-top: 0;\n font-size: .75em;\n }\n }\n}\n\n// Api tables\n.mdl-data-table {\n td {\n &[required] {\n p.first {\n &:after {\n content: ' *';\n }\n }\n }\n }\n}\n\n// Api attribute inhereds\n.attributes-list {\n overflow: hidden;\n\n li {\n display: inline-block;\n width: 50%;\n margin-bottom: .25em;\n font-size: 18px;\n }\n}\n\n.sidebar__right {\n\n @include mq(lg) {\n position: fixed;\n top: 64px;\n right: 0px;\n max-height: calc(100% - 112px);\n min-height: fit-content;\n width: 360px;\n padding-bottom: 20px;\n border: 1px solid $border-color;\n border-radius: 4px;\n overflow: auto;\n background-color: $body-background-color;\n z-index: 999;\n }\n}\n\n.toc {\n letter-spacing: 1px;\n\n .nav__title {\n margin: 0;\n cursor: pointer;\n @include fs-5;\n\n @include mq(md) {\n @include fs-4;\n }\n\n @if $color_scheme=='light' {\n color: $primary-500;\n background-color: $primary-50;\n }\n\n @else {\n color: $primary-50-dark;\n background-color: $primary-500-dark;\n }\n\n padding: 20px 14px 8px 14px;\n }\n}\n\n.toc__menu {\n\n @include fs-5;\n\n @include mq(md) {\n @include fs-4;\n }\n\n margin: 0;\n padding: 0;\n width: 100%;\n list-style: none;\n\n li::before {\n content: \"\" !important;\n }\n\n a {\n text-decoration: none;\n\n @if $color_scheme=='light' {\n color: $dark-74;\n }\n\n @else {\n color: $white-74;\n }\n\n &.active {\n\n @if $color_scheme=='light' {\n color: $dark-60;\n }\n\n @else {\n color: $white-60;\n }\n\n font-weight: 500;\n }\n }\n\n li ul>li a {\n padding-top: 0.2rem;\n border: none;\n text-transform: none;\n\n }\n}\n\n//Ontimize TOC screen size bigger than 66.5 rem\n@media (min-width: 66.5rem) {\n .toc__menu.collapsed {\n display: none;\n }\n\n .toc.collapsed {\n position: relative;\n bottom: 14px;\n }\n\n .nav__title.collapsed {\n height: 100%;\n font-size: 15px !important;\n cursor: pointer;\n }\n\n .sidebar__right.collapsed {\n padding-bottom: 0px;\n width: auto;\n transform: rotate(270deg);\n transform-origin: bottom right;\n top: calc(64px - 30px);\n height: 30px;\n overflow: hidden;\n\n @if $color_scheme=='light' {\n color: $primary-50;\n }\n\n @else {\n color: $primary-50-dark;\n }\n }\n}\n\n// FAQ page\n\n.faq-posts {\n .panel-default {\n\n .panel-heading {\n @if $color_scheme=='light' {\n color: #333;\n background-color: #f5f5f5;\n border-color: #ddd;\n }\n\n @else {\n color: #eee;\n background-color: #0c0c0c;\n border-color: #222;\n }\n\n\n border-bottom: 0;\n\n padding: 10px 30px;\n border-bottom: 1px solid transparent;\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n cursor: pointer;\n }\n\n .panel-title {\n margin-top: 0;\n margin-bottom: 0;\n font-size: 16px;\n color: inherit;\n }\n }\n\n .panel-body {\n padding: 15px;\n font-size: 14px;\n }\n\n .panel {\n margin-bottom: 0;\n border-radius: 4px;\n\n @if $color_scheme=='light' {\n background-color: #fff;\n }\n\n @else {\n background-color: #000;\n }\n\n border: 1px solid transparent;\n\n //-webkit-box-shadow: 0 1px 1px rgba(0,0,0,.05);\n //box-shadow: 0 1px 1px rgba(0,0,0,.05);\n }\n\n .collapse {\n display: none;\n\n &.in {\n display: block;\n }\n }\n\n .collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n -webkit-transition-property: height, visibility;\n transition-property: height, visibility;\n -webkit-transition-duration: .35s;\n transition-duration: .35s;\n -webkit-transition-timing-function: ease;\n transition-timing-function: ease;\n }\n}\n\n.multicolumn {\n display: flex;\n}\n\n.toggle-tree-btn {\n all: unset;\n margin-bottom: 10px;\n align-self: flex-end;\n position: absolute;\n top: 8px;\n right: 8px;\n cursor: pointer;\n}\n\n.multicolumnleft {\n flex: 1;\n max-width: 100%;\n overflow-x: auto;\n padding: 0 40px 0 0;\n box-sizing: border-box;\n position: relative;\n}\n\n.multicolumnnopadding {\n flex: 1;\n max-width: 100%;\n overflow-x: auto;\n padding: 0 0 0 0;\n box-sizing: border-box;\n}\n\n.multicolumnright {\n box-sizing: border-box;\n\n @if $color_scheme=='light' {\n border-left: 1px solid #ccc;\n }\n\n @else {\n border-left: 1px solid #2e2e2e;\n }\n\n transition: width 0.3s ease;\n overflow-x: auto;\n\n &.collapsed {\n width: 0;\n overflow: hidden;\n padding: 0;\n border-left: none;\n display: none;\n }\n}\n\n.verticalDivider {\n\n @if $color_scheme=='light' {\n border-left: 1px solid #F2F3F3;\n }\n\n @else {\n border-left: 1px solid #0f0f0f;\n }\n\n padding-right: 10px;\n margin-left: 10px;\n}\n\n// //jstree\n.jstreeloader ul>li::before {\n content: \"\";\n}\n\na.jstree-anchor.jstree-hovered{\n @if $color_scheme=='dark' {\n color: #515151;\n i {\n filter: invert(26%) sepia(0%) saturate(28%) hue-rotate(162deg) brightness(94%) contrast(85%);\n }\n }\n}\na.jstree-anchor.jstree-clicked{\n @if $color_scheme=='dark' {\n color: #494949;\n i {\n filter: invert(26%) sepia(0%) saturate(28%) hue-rotate(162deg) brightness(94%) contrast(85%);\n }\n }\n}\n\ni.jstree-icon{\n @if $color_scheme=='light' {\n filter: invert(36%) sepia(8%) saturate(440%) hue-rotate(218deg) brightness(90%) contrast(85%);\n }\n @if $color_scheme=='dark' {\n filter: invert(89%) sepia(0%) saturate(0%) hue-rotate(174deg) brightness(84%) contrast(87%);\n }\n}\n\n\n@media (min-width: 50rem) and ((max-width: 66.5rem)) {\n #top.main {\n max-width: none;\n margin-left: 16.5rem;\n }\n}\n\n@media (min-width: 66.5rem) {\n body>div.side-bar {\n min-width: auto;\n width: auto,\n }\n\n #top.main {\n max-width: none;\n margin-left: calc(16.5rem + 1px);\n }\n}\n\n@media (min-width: 50rem) {\n div.side-bar {\n width: 16.5rem;\n }\n\n\n}\n\ntable {\n table-layout: auto;\n width: 120px;\n}\n\n// Link sections menu cards\n\n.menu-card-container {\n display: grid;\n grid-gap: 32px;\n grid-template-columns: repeat(auto-fit, minmax(auto, 368px));\n grid-auto-rows: minmax(auto, 208px);\n justify-content: center;\n\n a {\n text-decoration: none;\n\n @if $color_scheme=='light' {\n color: $dark-74;\n }\n\n @else {\n color: $white-74;\n }\n\n .menu-card {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n height: 100%;\n border-radius: 2px;\n\n @if $color_scheme=='light' {\n border: 1px solid #0000001F;\n }\n\n @else {\n border: 1px solid #FFFFFF1F;\n }\n\n .image-container {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 128px;\n\n @if $color_scheme=='light' {\n border-bottom: 1px solid #0000001F;\n background-color: #F6F6F6;\n }\n\n @else {\n border-bottom: 1px solid #FFFFFF1F;\n background-color: #31363A;\n }\n }\n\n .bottom-image {\n height: 80px;\n vertical-align: middle;\n text-align: start;\n padding: 28px 18px;\n margin: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n font-weight: 500;\n }\n\n .text-container {\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n height: 88px;\n font-weight: 500;\n\n @if $color_scheme=='light' {\n border-bottom: 1px solid #0000001F;\n }\n\n @else {\n border-bottom: 1px solid #FFFFFF1F;\n }\n\n >p {\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n text-align: start;\n padding: 10px 18px 0 18px;\n height: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n @if $color_scheme=='light' {\n color: #000000DE;\n }\n\n @else {\n color: #FFFFFFDE;\n }\n }\n }\n\n .bottom-title {\n height: 118px;\n text-overflow: ellipsis;\n overflow: hidden;\n text-align: start;\n margin: 0;\n padding: 20px 18px;\n }\n }\n\n &:hover {\n .menu-card {\n .bottom-title {\n\n @if $color_scheme=='light' {\n background-color: #C7DAE9;\n }\n\n @else {\n background-color: #00345f;\n }\n }\n\n .bottom-image {\n @if $color_scheme=='light' {\n background-color: #C7DAE9;\n }\n\n @else {\n background-color: #012644;\n }\n }\n }\n }\n }\n}\n\n.menu-card-container:has(.image-container) {\n grid-template-columns: repeat(auto-fit, minmax(auto, 272px));\n grid-auto-rows: minmax(208px, auto);\n}\n\n.hidden {\n display: none;\n}\n\n\n.menuitem-badge {\n @if $color_scheme=='light' {\n background: linear-gradient(-180deg, $primary-500 0, $primary-500-24 100%);\n color: #fff;\n }\n\n @else {\n background: linear-gradient(-180deg, $primary-500-dark 0, $primary-500-24-dark 100%);\n color: #000;\n }\n\n padding: 2px 4px;\n vertical-align: middle;\n border-radius: 3px;\n font-weight: 700;\n font-size: 11px;\n position: relative;\n top: -1px;\n}\n\nimg[alt=\"Alt text\"] {\n width: 100%;\n}","// custom setup code goes here\n$primary-500: #1464A5;\n$primary-400: #377BB3;\n$primary-900: #063679;\n$primary-500-24: #1464A53D;\n$primary-50: #E3ECF4;\n$dark-74: #000000BD;\n$dark-60: #00000099;\n$primary-500-dark: #8AB2D2;\n$primary-400-dark: #9CBED9;\n$primary-900-dark: #5A8AB6;\n$primary-500-24-dark: #8AB2D23D;\n$primary-50-dark: #F1F6FA;\n$white-74: #FFFFFFBD;\n$white-60: #FFFFFF99;\n$grey: #F6F6F6;\n$home-background: #293239;\n// Font\n$body-font-family: 'Roboto', sans-serif;\n// media queries\n$custom-media-queries: (home-header: 800px,\n home-imgs-max: 2880px,\n mobile-m: 375px);\n$media-queries: map-merge($media-queries, $custom-media-queries);"],"file":"just-the-docs-light.css"} \ No newline at end of file diff --git a/v3/assets/css/just-the-docs-ontimize-dark.css b/v3/assets/css/just-the-docs-ontimize-dark.css new file mode 100644 index 0000000..386cdce --- /dev/null +++ b/v3/assets/css/just-the-docs-ontimize-dark.css @@ -0,0 +1,11143 @@ +@charset "UTF-8"; +.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: "Roboto", sans-serif; + 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: #8AB2D2; + 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(138, 178, 210, 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) { + .main { + position: relative; + max-width: 50rem; + margin-left: 15.5rem; + } +} +@media (min-width: 66.5rem) { + .main { + margin-left: max( + 16.5rem, + calc((100% - 66.5rem) / 2 + 16.5rem) + ); + } +} + +.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; + display: none; + background-color: #27262b; +} +@media (min-width: 50rem) { + .main-header { + display: flex; + justify-content: space-between; + height: 3.75rem; + background-color: #27262b; + border-bottom: 1px solid #44434d; + } +} +.main-header.nav-open { + display: block; +} +@media (min-width: 50rem) { + .main-header.nav-open { + display: flex; + } +} + +.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-logo { + width: 100%; + height: 100%; + background-image: url("/docs/v3/assets/icons/logo-ontimize-blanco.png"); + background-repeat: no-repeat; + background-position: left center; + background-size: contain; +} + +.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, #1d1d1d 0%, rgba(29, 29, 29, 0.8) 80%, rgba(29, 29, 29, 0) 100%); +} + +.site-button:hover { + background-image: linear-gradient(-90deg, #1d1d1d 0%, rgba(29, 29, 29, 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: #8AB2D2; +} + +.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: #8AB2D2; + 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, #1d1d1d 0%, rgba(29, 29, 29, 0.8) 80%, rgba(29, 29, 29, 0) 100%); +} +.nav-list .nav-list-item .nav-list-expander { + position: absolute; + right: 0; + width: 3rem; + height: 3rem; + padding: 0.75rem; + color: #8AB2D2; +} +@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, #1d1d1d 0%, rgba(29, 29, 29, 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: rgba(255, 255, 255, 0.6); +} +.nav-list .nav-list-item > .nav-list .nav-list-item .nav-list-expander { + color: rgba(255, 255, 255, 0.6); +} +.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: #8AB2D2; +} +.nav-list.nav-category-list > .nav-list-item > .nav-list > .nav-list-item > .nav-list-expander { + color: #8AB2D2; +} + +.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: #8AB2D2; + text-decoration: none; + vertical-align: baseline; + cursor: pointer; + background-color: rgba(0, 0, 0, 0.6); + 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: #83adcf; +} +.btn:hover, .btn:active, .btn.zeroclipboard-is-hover, .btn.zeroclipboard-is-active { + text-decoration: none; + background-color: rgba(0, 0, 0, 0.6); +} +.btn:active, .btn.selected, .btn.zeroclipboard-is-active { + background-color: rgba(0, 0, 0, 0.6); + 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: #8AB2D2; + 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: #7ba8cc; + 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: #83adcf; + background-image: linear-gradient(#9cbed9, #83adcf); + 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: #7ba8cc; + background-image: linear-gradient(#91b7d5, #7ba8cc); +} +.btn-primary:active, .btn-primary.selected, .btn-primary.zeroclipboard-is-active { + background-color: #78a6cb; + background-image: none; + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); +} +.btn-primary.selected:hover { + background-color: #659ac4; +} + +.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: #e9f1f7; + background-image: linear-gradient(white, #e9f1f7); + 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: #e2ecf5; + background-image: linear-gradient(#f9fbfd, #e2ecf5); +} +.btn-blue:active, .btn-blue.selected, .btn-blue.zeroclipboard-is-active { + background-color: #deeaf3; + background-image: none; + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); +} +.btn-blue.selected:hover { + background-color: #cbdeed; +} + +.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: #8AB2D2; +} + +.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: #1d1d1d; +} + +.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: #8AB2D2; + 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(138, 178, 210, 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: #F1F6FA !important; +} + +.text-blue-100 { + color: #2869e6 !important; +} + +.text-blue-200 { + color: #9CBED9 !important; +} + +.text-blue-300 { + color: #8AB2D2 !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: #F1F6FA !important; +} + +.bg-blue-100 { + background-color: #2869e6 !important; +} + +.bg-blue-200 { + background-color: #9CBED9 !important; +} + +.bg-blue-300 { + background-color: #8AB2D2 !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; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-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; + } +} +@media (min-width: 800px) { + .m-home-header-0 { + margin: 0 !important; + } + .mt-home-header-0 { + margin-top: 0 !important; + } + .mr-home-header-0 { + margin-right: 0 !important; + } + .mb-home-header-0 { + margin-bottom: 0 !important; + } + .ml-home-header-0 { + margin-left: 0 !important; + } + .mx-home-header-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .my-home-header-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .mxn-home-header-0 { + margin-right: -0 !important; + margin-left: -0 !important; + } +} +@media (min-width: 800px) { + .m-home-header-1 { + margin: 0.25rem !important; + } + .mt-home-header-1 { + margin-top: 0.25rem !important; + } + .mr-home-header-1 { + margin-right: 0.25rem !important; + } + .mb-home-header-1 { + margin-bottom: 0.25rem !important; + } + .ml-home-header-1 { + margin-left: 0.25rem !important; + } + .mx-home-header-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .my-home-header-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .mxn-home-header-1 { + margin-right: -0.25rem !important; + margin-left: -0.25rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-2 { + margin: 0.5rem !important; + } + .mt-home-header-2 { + margin-top: 0.5rem !important; + } + .mr-home-header-2 { + margin-right: 0.5rem !important; + } + .mb-home-header-2 { + margin-bottom: 0.5rem !important; + } + .ml-home-header-2 { + margin-left: 0.5rem !important; + } + .mx-home-header-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .my-home-header-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .mxn-home-header-2 { + margin-right: -0.5rem !important; + margin-left: -0.5rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-3 { + margin: 0.75rem !important; + } + .mt-home-header-3 { + margin-top: 0.75rem !important; + } + .mr-home-header-3 { + margin-right: 0.75rem !important; + } + .mb-home-header-3 { + margin-bottom: 0.75rem !important; + } + .ml-home-header-3 { + margin-left: 0.75rem !important; + } + .mx-home-header-3 { + margin-right: 0.75rem !important; + margin-left: 0.75rem !important; + } + .my-home-header-3 { + margin-top: 0.75rem !important; + margin-bottom: 0.75rem !important; + } + .mxn-home-header-3 { + margin-right: -0.75rem !important; + margin-left: -0.75rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-4 { + margin: 1rem !important; + } + .mt-home-header-4 { + margin-top: 1rem !important; + } + .mr-home-header-4 { + margin-right: 1rem !important; + } + .mb-home-header-4 { + margin-bottom: 1rem !important; + } + .ml-home-header-4 { + margin-left: 1rem !important; + } + .mx-home-header-4 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .my-home-header-4 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .mxn-home-header-4 { + margin-right: -1rem !important; + margin-left: -1rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-5 { + margin: 1.5rem !important; + } + .mt-home-header-5 { + margin-top: 1.5rem !important; + } + .mr-home-header-5 { + margin-right: 1.5rem !important; + } + .mb-home-header-5 { + margin-bottom: 1.5rem !important; + } + .ml-home-header-5 { + margin-left: 1.5rem !important; + } + .mx-home-header-5 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .my-home-header-5 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .mxn-home-header-5 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-6 { + margin: 2rem !important; + } + .mt-home-header-6 { + margin-top: 2rem !important; + } + .mr-home-header-6 { + margin-right: 2rem !important; + } + .mb-home-header-6 { + margin-bottom: 2rem !important; + } + .ml-home-header-6 { + margin-left: 2rem !important; + } + .mx-home-header-6 { + margin-right: 2rem !important; + margin-left: 2rem !important; + } + .my-home-header-6 { + margin-top: 2rem !important; + margin-bottom: 2rem !important; + } + .mxn-home-header-6 { + margin-right: -2rem !important; + margin-left: -2rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-7 { + margin: 2.5rem !important; + } + .mt-home-header-7 { + margin-top: 2.5rem !important; + } + .mr-home-header-7 { + margin-right: 2.5rem !important; + } + .mb-home-header-7 { + margin-bottom: 2.5rem !important; + } + .ml-home-header-7 { + margin-left: 2.5rem !important; + } + .mx-home-header-7 { + margin-right: 2.5rem !important; + margin-left: 2.5rem !important; + } + .my-home-header-7 { + margin-top: 2.5rem !important; + margin-bottom: 2.5rem !important; + } + .mxn-home-header-7 { + margin-right: -2.5rem !important; + margin-left: -2.5rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-8 { + margin: 3rem !important; + } + .mt-home-header-8 { + margin-top: 3rem !important; + } + .mr-home-header-8 { + margin-right: 3rem !important; + } + .mb-home-header-8 { + margin-bottom: 3rem !important; + } + .ml-home-header-8 { + margin-left: 3rem !important; + } + .mx-home-header-8 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .my-home-header-8 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .mxn-home-header-8 { + margin-right: -3rem !important; + margin-left: -3rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-9 { + margin: 3.5rem !important; + } + .mt-home-header-9 { + margin-top: 3.5rem !important; + } + .mr-home-header-9 { + margin-right: 3.5rem !important; + } + .mb-home-header-9 { + margin-bottom: 3.5rem !important; + } + .ml-home-header-9 { + margin-left: 3.5rem !important; + } + .mx-home-header-9 { + margin-right: 3.5rem !important; + margin-left: 3.5rem !important; + } + .my-home-header-9 { + margin-top: 3.5rem !important; + margin-bottom: 3.5rem !important; + } + .mxn-home-header-9 { + margin-right: -3.5rem !important; + margin-left: -3.5rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-10 { + margin: 4rem !important; + } + .mt-home-header-10 { + margin-top: 4rem !important; + } + .mr-home-header-10 { + margin-right: 4rem !important; + } + .mb-home-header-10 { + margin-bottom: 4rem !important; + } + .ml-home-header-10 { + margin-left: 4rem !important; + } + .mx-home-header-10 { + margin-right: 4rem !important; + margin-left: 4rem !important; + } + .my-home-header-10 { + margin-top: 4rem !important; + margin-bottom: 4rem !important; + } + .mxn-home-header-10 { + margin-right: -4rem !important; + margin-left: -4rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-0 { + margin: 0 !important; + } + .mt-home-imgs-max-0 { + margin-top: 0 !important; + } + .mr-home-imgs-max-0 { + margin-right: 0 !important; + } + .mb-home-imgs-max-0 { + margin-bottom: 0 !important; + } + .ml-home-imgs-max-0 { + margin-left: 0 !important; + } + .mx-home-imgs-max-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .my-home-imgs-max-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .mxn-home-imgs-max-0 { + margin-right: -0 !important; + margin-left: -0 !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-1 { + margin: 0.25rem !important; + } + .mt-home-imgs-max-1 { + margin-top: 0.25rem !important; + } + .mr-home-imgs-max-1 { + margin-right: 0.25rem !important; + } + .mb-home-imgs-max-1 { + margin-bottom: 0.25rem !important; + } + .ml-home-imgs-max-1 { + margin-left: 0.25rem !important; + } + .mx-home-imgs-max-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .my-home-imgs-max-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .mxn-home-imgs-max-1 { + margin-right: -0.25rem !important; + margin-left: -0.25rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-2 { + margin: 0.5rem !important; + } + .mt-home-imgs-max-2 { + margin-top: 0.5rem !important; + } + .mr-home-imgs-max-2 { + margin-right: 0.5rem !important; + } + .mb-home-imgs-max-2 { + margin-bottom: 0.5rem !important; + } + .ml-home-imgs-max-2 { + margin-left: 0.5rem !important; + } + .mx-home-imgs-max-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .my-home-imgs-max-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .mxn-home-imgs-max-2 { + margin-right: -0.5rem !important; + margin-left: -0.5rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-3 { + margin: 0.75rem !important; + } + .mt-home-imgs-max-3 { + margin-top: 0.75rem !important; + } + .mr-home-imgs-max-3 { + margin-right: 0.75rem !important; + } + .mb-home-imgs-max-3 { + margin-bottom: 0.75rem !important; + } + .ml-home-imgs-max-3 { + margin-left: 0.75rem !important; + } + .mx-home-imgs-max-3 { + margin-right: 0.75rem !important; + margin-left: 0.75rem !important; + } + .my-home-imgs-max-3 { + margin-top: 0.75rem !important; + margin-bottom: 0.75rem !important; + } + .mxn-home-imgs-max-3 { + margin-right: -0.75rem !important; + margin-left: -0.75rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-4 { + margin: 1rem !important; + } + .mt-home-imgs-max-4 { + margin-top: 1rem !important; + } + .mr-home-imgs-max-4 { + margin-right: 1rem !important; + } + .mb-home-imgs-max-4 { + margin-bottom: 1rem !important; + } + .ml-home-imgs-max-4 { + margin-left: 1rem !important; + } + .mx-home-imgs-max-4 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .my-home-imgs-max-4 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .mxn-home-imgs-max-4 { + margin-right: -1rem !important; + margin-left: -1rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-5 { + margin: 1.5rem !important; + } + .mt-home-imgs-max-5 { + margin-top: 1.5rem !important; + } + .mr-home-imgs-max-5 { + margin-right: 1.5rem !important; + } + .mb-home-imgs-max-5 { + margin-bottom: 1.5rem !important; + } + .ml-home-imgs-max-5 { + margin-left: 1.5rem !important; + } + .mx-home-imgs-max-5 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .my-home-imgs-max-5 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .mxn-home-imgs-max-5 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-6 { + margin: 2rem !important; + } + .mt-home-imgs-max-6 { + margin-top: 2rem !important; + } + .mr-home-imgs-max-6 { + margin-right: 2rem !important; + } + .mb-home-imgs-max-6 { + margin-bottom: 2rem !important; + } + .ml-home-imgs-max-6 { + margin-left: 2rem !important; + } + .mx-home-imgs-max-6 { + margin-right: 2rem !important; + margin-left: 2rem !important; + } + .my-home-imgs-max-6 { + margin-top: 2rem !important; + margin-bottom: 2rem !important; + } + .mxn-home-imgs-max-6 { + margin-right: -2rem !important; + margin-left: -2rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-7 { + margin: 2.5rem !important; + } + .mt-home-imgs-max-7 { + margin-top: 2.5rem !important; + } + .mr-home-imgs-max-7 { + margin-right: 2.5rem !important; + } + .mb-home-imgs-max-7 { + margin-bottom: 2.5rem !important; + } + .ml-home-imgs-max-7 { + margin-left: 2.5rem !important; + } + .mx-home-imgs-max-7 { + margin-right: 2.5rem !important; + margin-left: 2.5rem !important; + } + .my-home-imgs-max-7 { + margin-top: 2.5rem !important; + margin-bottom: 2.5rem !important; + } + .mxn-home-imgs-max-7 { + margin-right: -2.5rem !important; + margin-left: -2.5rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-8 { + margin: 3rem !important; + } + .mt-home-imgs-max-8 { + margin-top: 3rem !important; + } + .mr-home-imgs-max-8 { + margin-right: 3rem !important; + } + .mb-home-imgs-max-8 { + margin-bottom: 3rem !important; + } + .ml-home-imgs-max-8 { + margin-left: 3rem !important; + } + .mx-home-imgs-max-8 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .my-home-imgs-max-8 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .mxn-home-imgs-max-8 { + margin-right: -3rem !important; + margin-left: -3rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-9 { + margin: 3.5rem !important; + } + .mt-home-imgs-max-9 { + margin-top: 3.5rem !important; + } + .mr-home-imgs-max-9 { + margin-right: 3.5rem !important; + } + .mb-home-imgs-max-9 { + margin-bottom: 3.5rem !important; + } + .ml-home-imgs-max-9 { + margin-left: 3.5rem !important; + } + .mx-home-imgs-max-9 { + margin-right: 3.5rem !important; + margin-left: 3.5rem !important; + } + .my-home-imgs-max-9 { + margin-top: 3.5rem !important; + margin-bottom: 3.5rem !important; + } + .mxn-home-imgs-max-9 { + margin-right: -3.5rem !important; + margin-left: -3.5rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-10 { + margin: 4rem !important; + } + .mt-home-imgs-max-10 { + margin-top: 4rem !important; + } + .mr-home-imgs-max-10 { + margin-right: 4rem !important; + } + .mb-home-imgs-max-10 { + margin-bottom: 4rem !important; + } + .ml-home-imgs-max-10 { + margin-left: 4rem !important; + } + .mx-home-imgs-max-10 { + margin-right: 4rem !important; + margin-left: 4rem !important; + } + .my-home-imgs-max-10 { + margin-top: 4rem !important; + margin-bottom: 4rem !important; + } + .mxn-home-imgs-max-10 { + margin-right: -4rem !important; + margin-left: -4rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-0 { + margin: 0 !important; + } + .mt-mobile-m-0 { + margin-top: 0 !important; + } + .mr-mobile-m-0 { + margin-right: 0 !important; + } + .mb-mobile-m-0 { + margin-bottom: 0 !important; + } + .ml-mobile-m-0 { + margin-left: 0 !important; + } + .mx-mobile-m-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .my-mobile-m-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .mxn-mobile-m-0 { + margin-right: -0 !important; + margin-left: -0 !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-1 { + margin: 0.25rem !important; + } + .mt-mobile-m-1 { + margin-top: 0.25rem !important; + } + .mr-mobile-m-1 { + margin-right: 0.25rem !important; + } + .mb-mobile-m-1 { + margin-bottom: 0.25rem !important; + } + .ml-mobile-m-1 { + margin-left: 0.25rem !important; + } + .mx-mobile-m-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .my-mobile-m-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .mxn-mobile-m-1 { + margin-right: -0.25rem !important; + margin-left: -0.25rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-2 { + margin: 0.5rem !important; + } + .mt-mobile-m-2 { + margin-top: 0.5rem !important; + } + .mr-mobile-m-2 { + margin-right: 0.5rem !important; + } + .mb-mobile-m-2 { + margin-bottom: 0.5rem !important; + } + .ml-mobile-m-2 { + margin-left: 0.5rem !important; + } + .mx-mobile-m-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .my-mobile-m-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .mxn-mobile-m-2 { + margin-right: -0.5rem !important; + margin-left: -0.5rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-3 { + margin: 0.75rem !important; + } + .mt-mobile-m-3 { + margin-top: 0.75rem !important; + } + .mr-mobile-m-3 { + margin-right: 0.75rem !important; + } + .mb-mobile-m-3 { + margin-bottom: 0.75rem !important; + } + .ml-mobile-m-3 { + margin-left: 0.75rem !important; + } + .mx-mobile-m-3 { + margin-right: 0.75rem !important; + margin-left: 0.75rem !important; + } + .my-mobile-m-3 { + margin-top: 0.75rem !important; + margin-bottom: 0.75rem !important; + } + .mxn-mobile-m-3 { + margin-right: -0.75rem !important; + margin-left: -0.75rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-4 { + margin: 1rem !important; + } + .mt-mobile-m-4 { + margin-top: 1rem !important; + } + .mr-mobile-m-4 { + margin-right: 1rem !important; + } + .mb-mobile-m-4 { + margin-bottom: 1rem !important; + } + .ml-mobile-m-4 { + margin-left: 1rem !important; + } + .mx-mobile-m-4 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .my-mobile-m-4 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .mxn-mobile-m-4 { + margin-right: -1rem !important; + margin-left: -1rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-5 { + margin: 1.5rem !important; + } + .mt-mobile-m-5 { + margin-top: 1.5rem !important; + } + .mr-mobile-m-5 { + margin-right: 1.5rem !important; + } + .mb-mobile-m-5 { + margin-bottom: 1.5rem !important; + } + .ml-mobile-m-5 { + margin-left: 1.5rem !important; + } + .mx-mobile-m-5 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .my-mobile-m-5 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .mxn-mobile-m-5 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-6 { + margin: 2rem !important; + } + .mt-mobile-m-6 { + margin-top: 2rem !important; + } + .mr-mobile-m-6 { + margin-right: 2rem !important; + } + .mb-mobile-m-6 { + margin-bottom: 2rem !important; + } + .ml-mobile-m-6 { + margin-left: 2rem !important; + } + .mx-mobile-m-6 { + margin-right: 2rem !important; + margin-left: 2rem !important; + } + .my-mobile-m-6 { + margin-top: 2rem !important; + margin-bottom: 2rem !important; + } + .mxn-mobile-m-6 { + margin-right: -2rem !important; + margin-left: -2rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-7 { + margin: 2.5rem !important; + } + .mt-mobile-m-7 { + margin-top: 2.5rem !important; + } + .mr-mobile-m-7 { + margin-right: 2.5rem !important; + } + .mb-mobile-m-7 { + margin-bottom: 2.5rem !important; + } + .ml-mobile-m-7 { + margin-left: 2.5rem !important; + } + .mx-mobile-m-7 { + margin-right: 2.5rem !important; + margin-left: 2.5rem !important; + } + .my-mobile-m-7 { + margin-top: 2.5rem !important; + margin-bottom: 2.5rem !important; + } + .mxn-mobile-m-7 { + margin-right: -2.5rem !important; + margin-left: -2.5rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-8 { + margin: 3rem !important; + } + .mt-mobile-m-8 { + margin-top: 3rem !important; + } + .mr-mobile-m-8 { + margin-right: 3rem !important; + } + .mb-mobile-m-8 { + margin-bottom: 3rem !important; + } + .ml-mobile-m-8 { + margin-left: 3rem !important; + } + .mx-mobile-m-8 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .my-mobile-m-8 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .mxn-mobile-m-8 { + margin-right: -3rem !important; + margin-left: -3rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-9 { + margin: 3.5rem !important; + } + .mt-mobile-m-9 { + margin-top: 3.5rem !important; + } + .mr-mobile-m-9 { + margin-right: 3.5rem !important; + } + .mb-mobile-m-9 { + margin-bottom: 3.5rem !important; + } + .ml-mobile-m-9 { + margin-left: 3.5rem !important; + } + .mx-mobile-m-9 { + margin-right: 3.5rem !important; + margin-left: 3.5rem !important; + } + .my-mobile-m-9 { + margin-top: 3.5rem !important; + margin-bottom: 3.5rem !important; + } + .mxn-mobile-m-9 { + margin-right: -3.5rem !important; + margin-left: -3.5rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-10 { + margin: 4rem !important; + } + .mt-mobile-m-10 { + margin-top: 4rem !important; + } + .mr-mobile-m-10 { + margin-right: 4rem !important; + } + .mb-mobile-m-10 { + margin-bottom: 4rem !important; + } + .ml-mobile-m-10 { + margin-left: 4rem !important; + } + .mx-mobile-m-10 { + margin-right: 4rem !important; + margin-left: 4rem !important; + } + .my-mobile-m-10 { + margin-top: 4rem !important; + margin-bottom: 4rem !important; + } + .mxn-mobile-m-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 (min-width: 800px) { + .p-home-header-0 { + padding: 0 !important; + } + .pt-home-header-0 { + padding-top: 0 !important; + } + .pr-home-header-0 { + padding-right: 0 !important; + } + .pb-home-header-0 { + padding-bottom: 0 !important; + } + .pl-home-header-0 { + padding-left: 0 !important; + } + .px-home-header-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .py-home-header-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .p-home-header-1 { + padding: 0.25rem !important; + } + .pt-home-header-1 { + padding-top: 0.25rem !important; + } + .pr-home-header-1 { + padding-right: 0.25rem !important; + } + .pb-home-header-1 { + padding-bottom: 0.25rem !important; + } + .pl-home-header-1 { + padding-left: 0.25rem !important; + } + .px-home-header-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .py-home-header-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .p-home-header-2 { + padding: 0.5rem !important; + } + .pt-home-header-2 { + padding-top: 0.5rem !important; + } + .pr-home-header-2 { + padding-right: 0.5rem !important; + } + .pb-home-header-2 { + padding-bottom: 0.5rem !important; + } + .pl-home-header-2 { + padding-left: 0.5rem !important; + } + .px-home-header-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .py-home-header-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .p-home-header-3 { + padding: 0.75rem !important; + } + .pt-home-header-3 { + padding-top: 0.75rem !important; + } + .pr-home-header-3 { + padding-right: 0.75rem !important; + } + .pb-home-header-3 { + padding-bottom: 0.75rem !important; + } + .pl-home-header-3 { + padding-left: 0.75rem !important; + } + .px-home-header-3 { + padding-right: 0.75rem !important; + padding-left: 0.75rem !important; + } + .py-home-header-3 { + padding-top: 0.75rem !important; + padding-bottom: 0.75rem !important; + } + .p-home-header-4 { + padding: 1rem !important; + } + .pt-home-header-4 { + padding-top: 1rem !important; + } + .pr-home-header-4 { + padding-right: 1rem !important; + } + .pb-home-header-4 { + padding-bottom: 1rem !important; + } + .pl-home-header-4 { + padding-left: 1rem !important; + } + .px-home-header-4 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .py-home-header-4 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .p-home-header-5 { + padding: 1.5rem !important; + } + .pt-home-header-5 { + padding-top: 1.5rem !important; + } + .pr-home-header-5 { + padding-right: 1.5rem !important; + } + .pb-home-header-5 { + padding-bottom: 1.5rem !important; + } + .pl-home-header-5 { + padding-left: 1.5rem !important; + } + .px-home-header-5 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .py-home-header-5 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .p-home-header-6 { + padding: 2rem !important; + } + .pt-home-header-6 { + padding-top: 2rem !important; + } + .pr-home-header-6 { + padding-right: 2rem !important; + } + .pb-home-header-6 { + padding-bottom: 2rem !important; + } + .pl-home-header-6 { + padding-left: 2rem !important; + } + .px-home-header-6 { + padding-right: 2rem !important; + padding-left: 2rem !important; + } + .py-home-header-6 { + padding-top: 2rem !important; + padding-bottom: 2rem !important; + } + .p-home-header-7 { + padding: 2.5rem !important; + } + .pt-home-header-7 { + padding-top: 2.5rem !important; + } + .pr-home-header-7 { + padding-right: 2.5rem !important; + } + .pb-home-header-7 { + padding-bottom: 2.5rem !important; + } + .pl-home-header-7 { + padding-left: 2.5rem !important; + } + .px-home-header-7 { + padding-right: 2.5rem !important; + padding-left: 2.5rem !important; + } + .py-home-header-7 { + padding-top: 2.5rem !important; + padding-bottom: 2.5rem !important; + } + .p-home-header-8 { + padding: 3rem !important; + } + .pt-home-header-8 { + padding-top: 3rem !important; + } + .pr-home-header-8 { + padding-right: 3rem !important; + } + .pb-home-header-8 { + padding-bottom: 3rem !important; + } + .pl-home-header-8 { + padding-left: 3rem !important; + } + .px-home-header-8 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-home-header-8 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .p-home-header-9 { + padding: 3.5rem !important; + } + .pt-home-header-9 { + padding-top: 3.5rem !important; + } + .pr-home-header-9 { + padding-right: 3.5rem !important; + } + .pb-home-header-9 { + padding-bottom: 3.5rem !important; + } + .pl-home-header-9 { + padding-left: 3.5rem !important; + } + .px-home-header-9 { + padding-right: 3.5rem !important; + padding-left: 3.5rem !important; + } + .py-home-header-9 { + padding-top: 3.5rem !important; + padding-bottom: 3.5rem !important; + } + .p-home-header-10 { + padding: 4rem !important; + } + .pt-home-header-10 { + padding-top: 4rem !important; + } + .pr-home-header-10 { + padding-right: 4rem !important; + } + .pb-home-header-10 { + padding-bottom: 4rem !important; + } + .pl-home-header-10 { + padding-left: 4rem !important; + } + .px-home-header-10 { + padding-right: 4rem !important; + padding-left: 4rem !important; + } + .py-home-header-10 { + padding-top: 4rem !important; + padding-bottom: 4rem !important; + } +} +@media (min-width: 2880px) { + .p-home-imgs-max-0 { + padding: 0 !important; + } + .pt-home-imgs-max-0 { + padding-top: 0 !important; + } + .pr-home-imgs-max-0 { + padding-right: 0 !important; + } + .pb-home-imgs-max-0 { + padding-bottom: 0 !important; + } + .pl-home-imgs-max-0 { + padding-left: 0 !important; + } + .px-home-imgs-max-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .py-home-imgs-max-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .p-home-imgs-max-1 { + padding: 0.25rem !important; + } + .pt-home-imgs-max-1 { + padding-top: 0.25rem !important; + } + .pr-home-imgs-max-1 { + padding-right: 0.25rem !important; + } + .pb-home-imgs-max-1 { + padding-bottom: 0.25rem !important; + } + .pl-home-imgs-max-1 { + padding-left: 0.25rem !important; + } + .px-home-imgs-max-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .py-home-imgs-max-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .p-home-imgs-max-2 { + padding: 0.5rem !important; + } + .pt-home-imgs-max-2 { + padding-top: 0.5rem !important; + } + .pr-home-imgs-max-2 { + padding-right: 0.5rem !important; + } + .pb-home-imgs-max-2 { + padding-bottom: 0.5rem !important; + } + .pl-home-imgs-max-2 { + padding-left: 0.5rem !important; + } + .px-home-imgs-max-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .py-home-imgs-max-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .p-home-imgs-max-3 { + padding: 0.75rem !important; + } + .pt-home-imgs-max-3 { + padding-top: 0.75rem !important; + } + .pr-home-imgs-max-3 { + padding-right: 0.75rem !important; + } + .pb-home-imgs-max-3 { + padding-bottom: 0.75rem !important; + } + .pl-home-imgs-max-3 { + padding-left: 0.75rem !important; + } + .px-home-imgs-max-3 { + padding-right: 0.75rem !important; + padding-left: 0.75rem !important; + } + .py-home-imgs-max-3 { + padding-top: 0.75rem !important; + padding-bottom: 0.75rem !important; + } + .p-home-imgs-max-4 { + padding: 1rem !important; + } + .pt-home-imgs-max-4 { + padding-top: 1rem !important; + } + .pr-home-imgs-max-4 { + padding-right: 1rem !important; + } + .pb-home-imgs-max-4 { + padding-bottom: 1rem !important; + } + .pl-home-imgs-max-4 { + padding-left: 1rem !important; + } + .px-home-imgs-max-4 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .py-home-imgs-max-4 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .p-home-imgs-max-5 { + padding: 1.5rem !important; + } + .pt-home-imgs-max-5 { + padding-top: 1.5rem !important; + } + .pr-home-imgs-max-5 { + padding-right: 1.5rem !important; + } + .pb-home-imgs-max-5 { + padding-bottom: 1.5rem !important; + } + .pl-home-imgs-max-5 { + padding-left: 1.5rem !important; + } + .px-home-imgs-max-5 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .py-home-imgs-max-5 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .p-home-imgs-max-6 { + padding: 2rem !important; + } + .pt-home-imgs-max-6 { + padding-top: 2rem !important; + } + .pr-home-imgs-max-6 { + padding-right: 2rem !important; + } + .pb-home-imgs-max-6 { + padding-bottom: 2rem !important; + } + .pl-home-imgs-max-6 { + padding-left: 2rem !important; + } + .px-home-imgs-max-6 { + padding-right: 2rem !important; + padding-left: 2rem !important; + } + .py-home-imgs-max-6 { + padding-top: 2rem !important; + padding-bottom: 2rem !important; + } + .p-home-imgs-max-7 { + padding: 2.5rem !important; + } + .pt-home-imgs-max-7 { + padding-top: 2.5rem !important; + } + .pr-home-imgs-max-7 { + padding-right: 2.5rem !important; + } + .pb-home-imgs-max-7 { + padding-bottom: 2.5rem !important; + } + .pl-home-imgs-max-7 { + padding-left: 2.5rem !important; + } + .px-home-imgs-max-7 { + padding-right: 2.5rem !important; + padding-left: 2.5rem !important; + } + .py-home-imgs-max-7 { + padding-top: 2.5rem !important; + padding-bottom: 2.5rem !important; + } + .p-home-imgs-max-8 { + padding: 3rem !important; + } + .pt-home-imgs-max-8 { + padding-top: 3rem !important; + } + .pr-home-imgs-max-8 { + padding-right: 3rem !important; + } + .pb-home-imgs-max-8 { + padding-bottom: 3rem !important; + } + .pl-home-imgs-max-8 { + padding-left: 3rem !important; + } + .px-home-imgs-max-8 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-home-imgs-max-8 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .p-home-imgs-max-9 { + padding: 3.5rem !important; + } + .pt-home-imgs-max-9 { + padding-top: 3.5rem !important; + } + .pr-home-imgs-max-9 { + padding-right: 3.5rem !important; + } + .pb-home-imgs-max-9 { + padding-bottom: 3.5rem !important; + } + .pl-home-imgs-max-9 { + padding-left: 3.5rem !important; + } + .px-home-imgs-max-9 { + padding-right: 3.5rem !important; + padding-left: 3.5rem !important; + } + .py-home-imgs-max-9 { + padding-top: 3.5rem !important; + padding-bottom: 3.5rem !important; + } + .p-home-imgs-max-10 { + padding: 4rem !important; + } + .pt-home-imgs-max-10 { + padding-top: 4rem !important; + } + .pr-home-imgs-max-10 { + padding-right: 4rem !important; + } + .pb-home-imgs-max-10 { + padding-bottom: 4rem !important; + } + .pl-home-imgs-max-10 { + padding-left: 4rem !important; + } + .px-home-imgs-max-10 { + padding-right: 4rem !important; + padding-left: 4rem !important; + } + .py-home-imgs-max-10 { + padding-top: 4rem !important; + padding-bottom: 4rem !important; + } +} +@media (min-width: 375px) { + .p-mobile-m-0 { + padding: 0 !important; + } + .pt-mobile-m-0 { + padding-top: 0 !important; + } + .pr-mobile-m-0 { + padding-right: 0 !important; + } + .pb-mobile-m-0 { + padding-bottom: 0 !important; + } + .pl-mobile-m-0 { + padding-left: 0 !important; + } + .px-mobile-m-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .py-mobile-m-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .p-mobile-m-1 { + padding: 0.25rem !important; + } + .pt-mobile-m-1 { + padding-top: 0.25rem !important; + } + .pr-mobile-m-1 { + padding-right: 0.25rem !important; + } + .pb-mobile-m-1 { + padding-bottom: 0.25rem !important; + } + .pl-mobile-m-1 { + padding-left: 0.25rem !important; + } + .px-mobile-m-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .py-mobile-m-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .p-mobile-m-2 { + padding: 0.5rem !important; + } + .pt-mobile-m-2 { + padding-top: 0.5rem !important; + } + .pr-mobile-m-2 { + padding-right: 0.5rem !important; + } + .pb-mobile-m-2 { + padding-bottom: 0.5rem !important; + } + .pl-mobile-m-2 { + padding-left: 0.5rem !important; + } + .px-mobile-m-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .py-mobile-m-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .p-mobile-m-3 { + padding: 0.75rem !important; + } + .pt-mobile-m-3 { + padding-top: 0.75rem !important; + } + .pr-mobile-m-3 { + padding-right: 0.75rem !important; + } + .pb-mobile-m-3 { + padding-bottom: 0.75rem !important; + } + .pl-mobile-m-3 { + padding-left: 0.75rem !important; + } + .px-mobile-m-3 { + padding-right: 0.75rem !important; + padding-left: 0.75rem !important; + } + .py-mobile-m-3 { + padding-top: 0.75rem !important; + padding-bottom: 0.75rem !important; + } + .p-mobile-m-4 { + padding: 1rem !important; + } + .pt-mobile-m-4 { + padding-top: 1rem !important; + } + .pr-mobile-m-4 { + padding-right: 1rem !important; + } + .pb-mobile-m-4 { + padding-bottom: 1rem !important; + } + .pl-mobile-m-4 { + padding-left: 1rem !important; + } + .px-mobile-m-4 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .py-mobile-m-4 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .p-mobile-m-5 { + padding: 1.5rem !important; + } + .pt-mobile-m-5 { + padding-top: 1.5rem !important; + } + .pr-mobile-m-5 { + padding-right: 1.5rem !important; + } + .pb-mobile-m-5 { + padding-bottom: 1.5rem !important; + } + .pl-mobile-m-5 { + padding-left: 1.5rem !important; + } + .px-mobile-m-5 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .py-mobile-m-5 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .p-mobile-m-6 { + padding: 2rem !important; + } + .pt-mobile-m-6 { + padding-top: 2rem !important; + } + .pr-mobile-m-6 { + padding-right: 2rem !important; + } + .pb-mobile-m-6 { + padding-bottom: 2rem !important; + } + .pl-mobile-m-6 { + padding-left: 2rem !important; + } + .px-mobile-m-6 { + padding-right: 2rem !important; + padding-left: 2rem !important; + } + .py-mobile-m-6 { + padding-top: 2rem !important; + padding-bottom: 2rem !important; + } + .p-mobile-m-7 { + padding: 2.5rem !important; + } + .pt-mobile-m-7 { + padding-top: 2.5rem !important; + } + .pr-mobile-m-7 { + padding-right: 2.5rem !important; + } + .pb-mobile-m-7 { + padding-bottom: 2.5rem !important; + } + .pl-mobile-m-7 { + padding-left: 2.5rem !important; + } + .px-mobile-m-7 { + padding-right: 2.5rem !important; + padding-left: 2.5rem !important; + } + .py-mobile-m-7 { + padding-top: 2.5rem !important; + padding-bottom: 2.5rem !important; + } + .p-mobile-m-8 { + padding: 3rem !important; + } + .pt-mobile-m-8 { + padding-top: 3rem !important; + } + .pr-mobile-m-8 { + padding-right: 3rem !important; + } + .pb-mobile-m-8 { + padding-bottom: 3rem !important; + } + .pl-mobile-m-8 { + padding-left: 3rem !important; + } + .px-mobile-m-8 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-mobile-m-8 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .p-mobile-m-9 { + padding: 3.5rem !important; + } + .pt-mobile-m-9 { + padding-top: 3.5rem !important; + } + .pr-mobile-m-9 { + padding-right: 3.5rem !important; + } + .pb-mobile-m-9 { + padding-bottom: 3.5rem !important; + } + .pl-mobile-m-9 { + padding-left: 3.5rem !important; + } + .px-mobile-m-9 { + padding-right: 3.5rem !important; + padding-left: 3.5rem !important; + } + .py-mobile-m-9 { + padding-top: 3.5rem !important; + padding-bottom: 3.5rem !important; + } + .p-mobile-m-10 { + padding: 4rem !important; + } + .pt-mobile-m-10 { + padding-top: 4rem !important; + } + .pr-mobile-m-10 { + padding-right: 4rem !important; + } + .pb-mobile-m-10 { + padding-bottom: 4rem !important; + } + .pl-mobile-m-10 { + padding-left: 4rem !important; + } + .px-mobile-m-10 { + padding-right: 4rem !important; + padding-left: 4rem !important; + } + .py-mobile-m-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: #8AB2D2; + background-color: #27262b; + left: auto; + top: auto; + width: 30%; + height: auto; + overflow: auto; + margin: 10px 35%; + padding: 5px; + border-radius: 15px; + border: 4px solid #8AB2D2; + text-align: center; + font-size: 1.2em; + z-index: 999; +} + +div.opaque { + background-color: #27262b; +} + +p.highlight, blockquote.highlight { + background: rgba(149, 147, 150, 0.2); + border-left: 4px solid #27262b; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + padding: 0.8rem; +} +p.highlight > .highlight-title, blockquote.highlight > .highlight-title { + color: #27262b; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} + +p.highlight-title, blockquote.highlight-title { + background: rgba(149, 147, 150, 0.2); + border-left: 4px solid #27262b; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + padding: 0.8rem; +} +p.highlight-title > p:first-child, blockquote.highlight-title > p:first-child { + margin-top: 0; + margin-bottom: 0; + color: #27262b; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} + +blockquote.highlight { + margin-left: 0; + margin-right: 0; +} +blockquote.highlight > p:first-child { + margin-top: 0; +} +blockquote.highlight > p:last-child { + margin-bottom: 0; +} + +blockquote.highlight-title { + margin-left: 0; + margin-right: 0; +} +blockquote.highlight-title > p:nth-child(2) { + margin-top: 0; +} +blockquote.highlight-title > p:last-child { + margin-bottom: 0; +} + +p.important, blockquote.important { + background: rgba(149, 147, 150, 0.2); + border-left: 4px solid #27262b; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + padding: 0.8rem; +} +p.important::before, blockquote.important::before { + color: #27262b; + content: "Important"; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} +p.important > .important-title, blockquote.important > .important-title { + color: #27262b; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} + +p.important-title, blockquote.important-title { + background: rgba(149, 147, 150, 0.2); + border-left: 4px solid #27262b; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + padding: 0.8rem; +} +p.important-title > p:first-child, blockquote.important-title > p:first-child { + margin-top: 0; + margin-bottom: 0; + color: #27262b; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} + +blockquote.important { + margin-left: 0; + margin-right: 0; +} +blockquote.important > p:first-child { + margin-top: 0; +} +blockquote.important > p:last-child { + margin-bottom: 0; +} + +blockquote.important-title { + margin-left: 0; + margin-right: 0; +} +blockquote.important-title > p:nth-child(2) { + margin-top: 0; +} +blockquote.important-title > p:last-child { + margin-bottom: 0; +} + +p.note, blockquote.note { + background: rgba(241, 246, 250, 0.2); + border-left: 4px solid #8AB2D2; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + padding: 0.8rem; +} +p.note::before, blockquote.note::before { + color: #8AB2D2; + content: "Note"; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} +p.note > .note-title, blockquote.note > .note-title { + color: #8AB2D2; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} + +p.note-title, blockquote.note-title { + background: rgba(241, 246, 250, 0.2); + border-left: 4px solid #8AB2D2; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + padding: 0.8rem; +} +p.note-title > p:first-child, blockquote.note-title > p:first-child { + margin-top: 0; + margin-bottom: 0; + color: #8AB2D2; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} + +blockquote.note { + margin-left: 0; + margin-right: 0; +} +blockquote.note > p:first-child { + margin-top: 0; +} +blockquote.note > p:last-child { + margin-bottom: 0; +} + +blockquote.note-title { + margin-left: 0; + margin-right: 0; +} +blockquote.note-title > p:nth-child(2) { + margin-top: 0; +} +blockquote.note-title > p:last-child { + margin-bottom: 0; +} + +p.warning, blockquote.warning { + background: rgba(247, 126, 126, 0.2); + border-left: 4px solid #dd2e2e; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + padding: 0.8rem; +} +p.warning::before, blockquote.warning::before { + color: #dd2e2e; + content: "Warning"; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} +p.warning > .warning-title, blockquote.warning > .warning-title { + color: #dd2e2e; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} + +p.warning-title, blockquote.warning-title { + background: rgba(247, 126, 126, 0.2); + border-left: 4px solid #dd2e2e; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + padding: 0.8rem; +} +p.warning-title > p:first-child, blockquote.warning-title > p:first-child { + margin-top: 0; + margin-bottom: 0; + color: #dd2e2e; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} + +blockquote.warning { + margin-left: 0; + margin-right: 0; +} +blockquote.warning > p:first-child { + margin-top: 0; +} +blockquote.warning > p:last-child { + margin-bottom: 0; +} + +blockquote.warning-title { + margin-left: 0; + margin-right: 0; +} +blockquote.warning-title > p:nth-child(2) { + margin-top: 0; +} +blockquote.warning-title > p:last-child { + margin-bottom: 0; +} + +@media (min-width: 50rem) { + #main-header { + position: sticky; + top: 0; + z-index: 999; + } +} +.text-primary-900 { + color: #5A8AB6; +} + +.home-body { + padding: 0; +} +.home-body .home { + display: flex; + flex-direction: column; + justify-content: start; + align-items: center; + background-color: #293239; + color: rgba(255, 255, 255, 0.7411764706); + width: 100%; + height: 100%; +} +.home-body .home a { + color: #A8C7FF; + text-decoration: underline; + text-decoration-color: #A8C7FF; +} +.home-body .home a:hover { + text-decoration-color: #A8C7FF; +} +.home-body .home .text-primary-400 { + color: #4286FF; +} +.home-body .home .white-87 { + color: rgba(255, 255, 255, 0.8705882353); +} +.home-body .home .introduction { + background-image: url("../../assets/images/home/bg-landing.png"); + background-repeat: repeat; + display: flex; + flex-direction: column; + justify-content: start; + height: 100%; + width: 100%; +} +@media (min-width: 66.5rem) { + .home-body .home .introduction { + height: 100vh; + } +} +.home-body .home .introduction .header { + display: flex; + flex-direction: column; + align-items: center; + justify-content: space-around; + gap: 28px; + padding: 0 5rem 28px; + background-color: #293239; + box-shadow: 0 1px 12px rgba(255, 255, 255, 0.5); +} +@media (min-width: 800px) { + .home-body .home .introduction .header { + height: 96px; + padding-bottom: 0; + flex-direction: row; + } +} +.home-body .home .introduction .header .site-header { + flex-shrink: 0; + height: fit-content; + width: fit-content; + border: none; + align-items: end; +} +@media (min-width: 800px) { + .home-body .home .introduction .header .site-header { + align-items: center; + } +} +.home-body .home .introduction .header .site-header img { + width: 140px; + height: 41px; +} +.home-body .home .introduction .header .main-header { + display: flex; + align-items: center; + justify-content: space-between; + background-color: #293239; + border: none; + gap: 28px; + flex-grow: 1; + flex-direction: column; + height: inherit; + padding: 0; +} +@media (min-width: 800px) { + .home-body .home .introduction .header .main-header { + flex-direction: row; + } +} +.home-body .home .introduction .header .main-header .search { + display: flex; + height: 48px; + max-height: 48px; + width: auto; + min-width: 243px; + padding: 0; + justify-content: center; + position: static; +} +@media (min-width: 800px) { + .home-body .home .introduction .header .main-header .search { + min-width: 194px; + } +} +.home-body .home .introduction .header .main-header .search .search-input-wrap { + position: relative; + top: 0; + width: 100%; + max-width: 33.5rem; + border-radius: 4px; + box-shadow: none; + height: 100%; +} +.home-body .home .introduction .header .main-header .search .search-input-wrap .search-input { + font-size: 0.875rem; + padding-left: 2.5rem; + background-color: transparent; + border: solid 1px rgba(255, 255, 255, 0.7411764706); + border-radius: 4px; + color: white; +} +.home-body .home .introduction .header .main-header .search .search-input-wrap .search-label { + padding-left: 1rem; +} +.home-body .home .introduction .header .main-header .search .search-input-wrap .search-label > svg { + color: rgba(255, 255, 255, 0.7411764706); +} +.home-body .home .introduction .header .main-header .search .search-results { + left: auto; + background-color: #293239; + box-shadow: 0 1px 12px rgba(255, 255, 255, 0.5); + width: -webkit-fill-available; + min-width: 243px; + max-width: 243px; + max-height: calc(100vh - 4rem); + top: 128px; +} +@media (min-width: 800px) { + .home-body .home .introduction .header .main-header .search .search-results { + top: 48px; + min-width: 194px; + max-width: 33.5rem; + max-height: calc(100vh - 200%); + } +} +.home-body .home .introduction .header .main-header .header-custom-main { + display: flex; + column-gap: 28px; + color: rgba(255, 255, 255, 0.7411764706); +} +.home-body .home .introduction .header .main-header .header-custom-main .select { + border-style: none; + background-color: transparent; + color: inherit; +} +.home-body .home .introduction .header .main-header .header-custom-main .select > option { + background-color: #293239; + color: inherit; +} +.home-body .home .introduction .header .main-header .header-custom-main .github-div { + flex-shrink: 0; +} +.home-body .home .introduction .header .main-header .header-custom-main .github-div > a { + display: flex; + align-items: center; +} +.home-body .home .introduction .header .main-header .header-custom-main .docs-div { + display: flex; + justify-content: center; + align-items: center; + border: solid 1px rgba(255, 255, 255, 0.7411764706); + border-radius: 4px; + width: 80px; + height: 40px; + font-size: 16px; +} +.home-body .home .introduction .header .main-header .header-custom-main > a { + text-decoration: none; + color: rgba(255, 255, 255, 0.7411764706); +} +.home-body .home .introduction .landing { + display: flex; + flex-direction: column; + row-gap: 28px; + align-items: center; + height: calc(100% - 226.5px); +} +@media (min-width: 800px) { + .home-body .home .introduction .landing { + height: calc(100% - 96px); + } +} +@media (min-width: 66.5rem) { + .home-body .home .introduction .landing { + justify-content: space-around; + flex-direction: row; + } +} +.home-body .home .introduction .landing .text { + display: flex; + flex-direction: column; + justify-content: center; + align-items: inherit; + padding: 28px 28px 0; +} +@media (min-width: 66.5rem) { + .home-body .home .introduction .landing .text { + max-width: 50%; + } +} +.home-body .home .introduction .landing .text > h4 { + align-self: start; + margin: 0; +} +.home-body .home .introduction .landing .text > p { + color: #4286FF; +} +.home-body .home .introduction .landing .text .home-btn { + font-size: 14px; + color: #FFF; + background-color: #2876FF; + height: 42px; + width: 148px; + align-self: start; +} +.home-body .home .introduction .landing .text .home-btn:hover { + background-color: #1A51C8; +} +.home-body .home .introduction .landing .banner { + display: flex; + justify-content: center; + flex-shrink: 1; + padding: 0 28px; +} +@media (min-width: 66.5rem) { + .home-body .home .introduction .landing .banner { + max-width: fit-content; + } +} +.home-body .home .top-content { + display: flex; + flex-direction: column; + width: 80%; +} +.home-body .home .custom-content { + display: flex; + flex-direction: row; + column-gap: 28px; + width: 80%; +} +.home-body .home .custom-content .code-icon { + width: 72px; + height: 72px; + position: absolute; + transform: translate(-100px, 12px); +} +.home-body .home .custom-content .code-icon-container { + display: flex; + flex-direction: column; + min-width: 72px; +} +@media (min-width: 2880px) { + .home-body .home .custom-content .code-icon-container { + display: none; + } +} +.home-body .home .custom-content .main-content { + display: flex; + flex-direction: column; +} +.home-body .home .custom-content .main-content .section-text { + display: flex; + flex-direction: column; + flex-grow: 1; + flex-shrink: 0; +} +.home-body .home .custom-content .main-content .section-text > h1 { + font-weight: 600; +} +.home-body .home .custom-content .main-content .link-div { + display: flex; + flex-direction: row; + flex-grow: 1; + flex-shrink: 0; + margin-top: 82px; + margin-bottom: 124px; + transform: translateX(-150px); +} +@media (min-width: 375px) { + .home-body .home .custom-content .main-content .link-div { + transform: translateX(-100px); + } +} +@media (min-width: 800px) { + .home-body .home .custom-content .main-content .link-div { + transform: translateX(0); + } +} +.home-body .home .custom-content .main-content .link-div .link-img { + display: flex; + flex-shrink: 0; + align-items: start; +} +.home-body .home .custom-content .main-content .link-div .link-img > img { + width: 100%; + max-width: 168px; + aspect-ratio: 1/1; +} +.home-body .home .custom-content .main-content .link-div .link-texts { + display: flex; + flex-direction: column; + flex-shrink: 1; + flex-grow: 1; +} +.home-body .home .custom-content .main-content .link-div .link-texts > h2 { + display: flex; + flex-direction: column; + justify-content: center; + min-height: 168px; + font-weight: 600; + color: #75A7FF; + margin: 0; +} +.home-body .home .custom-content .main-content .productivity-section { + display: flex; + flex-direction: column; +} +.home-body .home .custom-content .main-content .productivity-section .productivity-img-container { + display: flex; + align-items: center; + height: 38.9105058366vw; + max-height: 1119px; +} +@media (min-width: 2880px) { + .home-body .home .custom-content .main-content .productivity-section .productivity-img-container { + width: calc(80vw - 122px); + justify-content: center; + } +} +.home-body .home .custom-content .main-content .productivity-section .productivity-img-container > img { + max-width: 2888px; + width: 100%; + position: absolute; + left: 0; + aspect-ratio: 2880/1119; +} +@media (min-width: 2880px) { + .home-body .home .custom-content .main-content .productivity-section .productivity-img-container > img { + position: static; + } +} +.home-body .home .custom-content .main-content .productivity-section .productivity-img-container .productivity-bottom { + display: flex; + flex-direction: column; + justify-items: start; + flex-shrink: 0; + flex-grow: 1; +} +.home-body .home .custom-content .main-content .performance-section { + display: flex; + flex-direction: column; +} +.home-body .home .custom-content .main-content .performance-section .performance-img-container { + display: flex; + align-items: center; + height: 44.0528634361vw; + max-height: 1268px; +} +@media (min-width: 2880px) { + .home-body .home .custom-content .main-content .performance-section .performance-img-container { + width: calc(80vw - 122px); + justify-content: center; + } +} +.home-body .home .custom-content .main-content .performance-section .performance-img-container > img { + max-width: 2888px; + width: 100%; + position: absolute; + left: 0; + aspect-ratio: 2888/1268; +} +@media (min-width: 2880px) { + .home-body .home .custom-content .main-content .performance-section .performance-img-container > img { + position: static; + } +} +.home-body .home .custom-content .main-content .performance-section .performance-bottom { + display: flex; + flex-grow: 1; + flex-shrink: 0; + flex-direction: column; + justify-items: start; +} +.home-body .home .custom-content .main-content .performance-section .performance-bottom > a { + align-self: start; +} +.home-body .home .custom-content .main-content .components-section { + display: flex; + flex-direction: column; +} +.home-body .home .custom-content .main-content .components-section .components-img-container { + display: flex; + align-items: center; + height: 44.0528634361vw; + max-height: 1268px; +} +@media (min-width: 2880px) { + .home-body .home .custom-content .main-content .components-section .components-img-container { + width: calc(80vw - 122px); + justify-content: center; + } +} +.home-body .home .custom-content .main-content .components-section .components-img-container > img { + max-width: 2888px; + width: 100%; + position: absolute; + left: 0; + aspect-ratio: 2888/1268; +} +@media (min-width: 2880px) { + .home-body .home .custom-content .main-content .components-section .components-img-container > img { + position: static; + } +} +.home-body .home .custom-content .main-content .addons-section { + display: flex; + flex-direction: column; +} +.home-body .home .custom-content .main-content .addons-section .addons-img-container { + display: flex; + align-items: center; + height: 44.0528634361vw; + max-height: 1268px; +} +@media (min-width: 2880px) { + .home-body .home .custom-content .main-content .addons-section .addons-img-container { + width: calc(80vw - 122px); + justify-content: center; + } +} +.home-body .home .custom-content .main-content .addons-section .addons-img-container > img { + max-width: 2888px; + width: 100%; + position: absolute; + left: 0; + aspect-ratio: 2888/1268; +} +@media (min-width: 2880px) { + .home-body .home .custom-content .main-content .addons-section .addons-img-container > img { + position: static; + } +} +.home-body .home .footer-img-container { + display: flex; + align-items: center; + height: 13.3333333333vw; + max-height: 512px; + width: 100%; +} +.home-body .home .footer-img-container > img { + max-width: 3840px; + width: 100%; + aspect-ratio: 3840/512; +} +.home-body .home .home-footer { + display: flex; + flex-direction: column; + align-items: center; + justify-content: space-between; + width: 100%; + padding: 28px 5rem; + text-align: justify; + border-top: solid 1px rgba(255, 255, 255, 0.7411764706); +} +@media (min-width: 66.5rem) { + .home-body .home .home-footer { + flex-direction: row; + height: 74px; + padding: 0 5rem; + } +} +.home-body .home .home-footer > img { + width: 140px; + height: 41px; +} +.home-body .home .home-footer > div { + display: flex; + flex-direction: row; + justify-content: space-between; + align-items: center; + width: 200px; +} +.home-body .home .home-footer > div > a { + color: rgba(255, 255, 255, 0.8588235294); + display: flex; + align-items: center; + text-decoration: none; +} + +@media (min-width: 50rem) { + .breadcrumbs { + margin-top: -1rem; + } +} +.breadcrumbs ol { + padding-left: 0; + margin-bottom: 0.75rem; + margin-top: 0; + list-style: none; +} +.breadcrumbs li { + display: table-cell; + font-size: 0.6875rem !important; +} +@media (min-width: 31.25rem) { + .breadcrumbs li { + font-size: 0.75rem !important; + } +} +.breadcrumbs li::before { + display: none; +} +.breadcrumbs li::after { + display: inline-block; + margin-right: 0.5rem; + margin-left: 0.5rem; + color: #959396; + content: "/"; +} +.breadcrumbs li:last-child::after { + content: ""; +} + +@media (min-width: 50rem) { + .breadcrumbs { + margin-top: -1rem; + } +} +.breadcrumbs ol { + padding-left: 0; + margin-bottom: 0.75rem; + list-style: none; +} +.breadcrumbs li { + display: table-cell; + font-size: 0.6875rem !important; +} +@media (min-width: 31.25rem) { + .breadcrumbs li { + font-size: 0.75rem !important; + } +} +.breadcrumbs li::before { + display: none; +} +.breadcrumbs li::after { + display: inline-block; + margin-right: 0.5rem; + margin-left: 0.5rem; + color: #959396; + content: "/"; +} +.breadcrumbs li:last-child::after { + content: ""; +} + +.btn:focus { + display: none; +} + +a:not([class]) { + text-decoration: underline; + text-decoration-color: #44434d; + text-underline-offset: 2px; +} +a:not([class]):hover { + text-decoration-color: rgba(138, 178, 210, 0.2392156863); +} + +.nav-list .nav-list-item .nav-list-expander { + color: rgba(255, 255, 255, 0.7411764706); +} +.nav-list .nav-list-item .nav-list-link { + color: rgba(255, 255, 255, 0.7411764706); + font-weight: 400; + font-size: 1rem; +} +.nav-list .nav-list-item .nav-list-link.active { + color: rgba(255, 255, 255, 0.6); + background-image: linear-gradient(-90deg, #1d1d1d 0%, rgba(29, 29, 29, 0.8) 80%, rgba(29, 29, 29, 0) 100%) !important; + font-weight: 500; + font-size: 1rem; +} + +.header-custom-main { + display: flex; + place-content: end; + column-gap: 10px; + margin-right: 33px; +} +.header-custom-main .toggle-theme { + cursor: pointer; +} +.header-custom-main .select { + width: 65px; + border-style: none; + background: transparent; + color: rgba(255, 255, 255, 0.7411764706); +} +.header-custom-main .select option { + background-color: #27262b; +} +.header-custom-main .github-div { + display: flex; + align-items: center; +} +.header-custom-main .github-div > a { + display: flex; + align-items: center; +} + +.o-tab { + overflow: hidden; + padding-bottom: 6px; + /* Style the buttons that are used to open the tab content */ + /* Change background color of buttons on hover */ + /* Create an active/current tablink class */ +} +.o-tab button { + background-color: inherit; + float: left; + border: none; + outline: none; + cursor: pointer; + padding: 12px 16px; + transition: 0.3s; + font-size: 0.8em; + color: rgba(255, 255, 255, 0.7411764706); +} +.o-tab button:hover { + background-color: white; + border-bottom: 2px solid rgba(138, 178, 210, 0.2392156863); +} +.o-tab button.active { + border-bottom: 2px solid #1464A5; +} + +/* Style the tab content */ +.o-tabcontent { + display: none; + padding: 6px 12px; + -webkit-animation: fadeEffect 1s; + animation: fadeEffect 1s; +} + +.o-component-container .list__item { + padding-right: 0; +} +.o-component-container .list__item .archive__item-excerpt { + margin-top: 0; + font-size: 0.75em; +} + +.mdl-data-table td[required] p.first:after { + content: " *"; +} + +.attributes-list { + overflow: hidden; +} +.attributes-list li { + display: inline-block; + width: 50%; + margin-bottom: 0.25em; + font-size: 18px; +} + +@media (min-width: 66.5rem) { + .sidebar__right { + position: fixed; + top: 64px; + right: 0px; + max-height: calc(100% - 112px); + min-height: fit-content; + width: 360px; + padding-bottom: 20px; + border: 1px solid #44434d; + border-radius: 4px; + overflow: auto; + background-color: #27262b; + z-index: 999; + } +} + +.toc { + letter-spacing: 1px; +} +.toc .nav__title { + margin: 0; + cursor: pointer; + font-size: 1rem !important; + color: #F1F6FA; + background-color: #8AB2D2; + padding: 20px 14px 8px 14px; +} +@media (min-width: 31.25rem) { + .toc .nav__title { + font-size: 1.125rem !important; + } +} +@media (min-width: 50rem) { + .toc .nav__title { + font-size: 0.875rem !important; + } +} +@media (min-width: 50rem) and (min-width: 31.25rem) { + .toc .nav__title { + font-size: 1rem !important; + } +} + +.toc__menu { + font-size: 1rem !important; + margin: 0; + padding: 0; + width: 100%; + list-style: none; +} +@media (min-width: 31.25rem) { + .toc__menu { + font-size: 1.125rem !important; + } +} +@media (min-width: 50rem) { + .toc__menu { + font-size: 0.875rem !important; + } +} +@media (min-width: 50rem) and (min-width: 31.25rem) { + .toc__menu { + font-size: 1rem !important; + } +} +.toc__menu li::before { + content: "" !important; +} +.toc__menu a { + text-decoration: none; + color: rgba(255, 255, 255, 0.7411764706); +} +.toc__menu a.active { + color: rgba(255, 255, 255, 0.6); + font-weight: 500; +} +.toc__menu li ul > li a { + padding-top: 0.2rem; + border: none; + text-transform: none; +} + +@media (min-width: 66.5rem) { + .toc__menu.collapsed { + display: none; + } + .toc.collapsed { + position: relative; + bottom: 14px; + } + .nav__title.collapsed { + height: 100%; + font-size: 15px !important; + cursor: pointer; + } + .sidebar__right.collapsed { + padding-bottom: 0px; + width: auto; + transform: rotate(270deg); + transform-origin: bottom right; + top: 34px; + height: 30px; + overflow: hidden; + color: #F1F6FA; + } +} +.faq-posts .panel-default .panel-heading { + color: #eee; + background-color: #0c0c0c; + border-color: #222; + border-bottom: 0; + padding: 10px 30px; + border-bottom: 1px solid transparent; + border-top-left-radius: 3px; + border-top-right-radius: 3px; + cursor: pointer; +} +.faq-posts .panel-default .panel-title { + margin-top: 0; + margin-bottom: 0; + font-size: 16px; + color: inherit; +} +.faq-posts .panel-body { + padding: 15px; + font-size: 14px; +} +.faq-posts .panel { + margin-bottom: 0; + border-radius: 4px; + background-color: #000; + border: 1px solid transparent; +} +.faq-posts .collapse { + display: none; +} +.faq-posts .collapse.in { + display: block; +} +.faq-posts .collapsing { + position: relative; + height: 0; + overflow: hidden; + -webkit-transition-property: height, visibility; + transition-property: height, visibility; + -webkit-transition-duration: 0.35s; + transition-duration: 0.35s; + -webkit-transition-timing-function: ease; + transition-timing-function: ease; +} + +.multicolumn { + display: flex; +} + +.toggle-tree-btn { + all: unset; + margin-bottom: 10px; + align-self: flex-end; + position: absolute; + top: 8px; + right: 8px; + cursor: pointer; +} + +.multicolumnleft { + flex: 1; + max-width: 100%; + overflow-x: auto; + padding: 0 40px 0 0; + box-sizing: border-box; + position: relative; +} + +.multicolumnnopadding { + flex: 1; + max-width: 100%; + overflow-x: auto; + padding: 0 0 0 0; + box-sizing: border-box; +} + +.multicolumnright { + box-sizing: border-box; + border-left: 1px solid #2e2e2e; + transition: width 0.3s ease; + overflow-x: auto; +} +.multicolumnright.collapsed { + width: 0; + overflow: hidden; + padding: 0; + border-left: none; + display: none; +} + +.verticalDivider { + border-left: 1px solid #0f0f0f; + padding-right: 10px; + margin-left: 10px; +} + +.jstreeloader ul > li::before { + content: ""; +} + +a.jstree-anchor.jstree-hovered { + color: #515151; +} +a.jstree-anchor.jstree-hovered i { + filter: invert(26%) sepia(0%) saturate(28%) hue-rotate(162deg) brightness(94%) contrast(85%); +} + +a.jstree-anchor.jstree-clicked { + color: #494949; +} +a.jstree-anchor.jstree-clicked i { + filter: invert(26%) sepia(0%) saturate(28%) hue-rotate(162deg) brightness(94%) contrast(85%); +} + +i.jstree-icon { + filter: invert(89%) sepia(0%) saturate(0%) hue-rotate(174deg) brightness(84%) contrast(87%); +} + +@media (min-width: 50rem) and ((max-width: 66.5rem)) { + #top.main { + max-width: none; + margin-left: 16.5rem; + } +} +@media (min-width: 66.5rem) { + body > div.side-bar { + min-width: auto; + width: auto; + } + #top.main { + max-width: none; + margin-left: calc(16.5rem + 1px); + } +} +@media (min-width: 50rem) { + div.side-bar { + width: 16.5rem; + } +} +table { + table-layout: auto; + width: 120px; +} + +.menu-card-container { + display: grid; + grid-gap: 32px; + grid-template-columns: repeat(auto-fit, minmax(auto, 368px)); + grid-auto-rows: minmax(auto, 208px); + justify-content: center; +} +.menu-card-container a { + text-decoration: none; + color: rgba(255, 255, 255, 0.7411764706); +} +.menu-card-container a .menu-card { + display: flex; + flex-direction: column; + justify-content: space-between; + height: 100%; + border-radius: 2px; + border: 1px solid rgba(255, 255, 255, 0.1215686275); +} +.menu-card-container a .menu-card .image-container { + display: flex; + justify-content: center; + align-items: center; + height: 128px; + border-bottom: 1px solid rgba(255, 255, 255, 0.1215686275); + background-color: #31363A; +} +.menu-card-container a .menu-card .bottom-image { + height: 80px; + vertical-align: middle; + text-align: start; + padding: 28px 18px; + margin: 0; + overflow: hidden; + text-overflow: ellipsis; + font-weight: 500; +} +.menu-card-container a .menu-card .text-container { + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + height: 88px; + font-weight: 500; + border-bottom: 1px solid rgba(255, 255, 255, 0.1215686275); +} +.menu-card-container a .menu-card .text-container > p { + width: 100%; + display: flex; + align-items: center; + justify-content: center; + text-align: start; + padding: 10px 18px 0 18px; + height: 100%; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + color: rgba(255, 255, 255, 0.8705882353); +} +.menu-card-container a .menu-card .bottom-title { + height: 118px; + text-overflow: ellipsis; + overflow: hidden; + text-align: start; + margin: 0; + padding: 20px 18px; +} +.menu-card-container a:hover .menu-card .bottom-title { + background-color: #00345f; +} +.menu-card-container a:hover .menu-card .bottom-image { + background-color: #012644; +} + +.menu-card-container:has(.image-container) { + grid-template-columns: repeat(auto-fit, minmax(auto, 272px)); + grid-auto-rows: minmax(208px, auto); +} + +.hidden { + display: none; +} + +.menuitem-badge { + background: linear-gradient(-180deg, #8AB2D2 0, rgba(138, 178, 210, 0.2392156863) 100%); + color: #000; + padding: 2px 4px; + vertical-align: middle; + border-radius: 3px; + font-weight: 700; + font-size: 11px; + position: relative; + top: -1px; +} + +img[alt="Alt text"] { + width: 100%; +} + +/*# sourceMappingURL=just-the-docs-ontimize-dark.css.map */ \ No newline at end of file diff --git a/v3/assets/css/just-the-docs-ontimize-dark.css.map b/v3/assets/css/just-the-docs-ontimize-dark.css.map new file mode 100644 index 0000000..77a89ba --- /dev/null +++ b/v3/assets/css/just-the-docs-ontimize-dark.css.map @@ -0,0 +1 @@ +{"version":3,"sourceRoot":"","sources":["../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/vendor/OneLightJekyll/syntax.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/vendor/OneDarkJekyll/syntax.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/vendor/normalize.scss/normalize.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/base.scss","../../_sass/color_schemes/ontimize-dark.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/support/mixins/_typography.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/support/mixins/_layout.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/support/_variables.scss","../../_sass/custom/setup.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/layout.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/content.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/navigation.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/typography.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/labels.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/buttons.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/support/mixins/_buttons.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/search.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/tables.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/code.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/utilities/_colors.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/utilities/_layout.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/utilities/_typography.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/utilities/_lists.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/utilities/_spacing.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/print.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/skiptomain.scss","just-the-docs-ontimize-dark.scss","../../_sass/custom/custom.scss"],"names":[],"mappings":";AAEA;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,cCHa;;;ADMf;EACE;;;AAGF;EEcE;EFXA;;AGAE;EHHJ;IEiBI;;;;AFXJ;EACE;EACA;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,OKrDiB;ELsDjB;;;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;;;AM7GF;EACE;EACA;EACA;EACA,kBF4BY;;ADpBV;EGZJ;IAOI;IACA;IACA,OFwFW;IEvFX;IACA;IACA;;;AHAA;EGZJ;IAgBI;IACA,WF+EQ;;;;ADpFR;EGSJ;IAEI;IACA,WF6EY;IE5EZ,aFwEW;;;ADrFX;EGSJ;IAUI;AAAA;AAAA;AAAA;;;;AAQJ;EHhBE,eCuDK;EDtDL,cCsDK;EEpCL,aFoCK;EEnCL,gBFmCK;;ADlEH;EG2BJ;IHZI,eCqDG;IDpDH,cCoDG;;;ADpEH;EG2BJ;IAOI,aFkCG;IEjCH,gBFiCG;;;;AE7BP;EACE;EACA;EACA,kBFtBY;;ADpBV;EGuCJ;IAMI;IACA;IACA,QF2CY;IE1CZ,kBF5BU;IE6BV;;;AAGF;EACE;;AHrDA;EGoDF;IAII;;;;AAKN;AAAA;AAAA;EAGE;;AHhEE;EG6DJ;AAAA;AAAA;IAMI,OFiBQ;;;;AEbZ;EACE;;AAEA;EACE;;AH3EA;EGuEJ;IAQI;IACA,aFVG;IEWH,gBFfG;IEgBH;IACA;;;;AAIJ;EACE;EACA,YFCc;EEAd;;AH1FE;EGuFJ;IAMI,QFHY;IEIZ,YFJY;IEKZ;;;;AAIJ;EHxFE,eCuDK;EDtDL,cCsDK;EEoCL;EACA;EACA;EACA;EACA,aFzCK;EE0CL,gBF1CK;EE2CL,OFvFY;EFMZ;;AC3BE;EGmGJ;IHpFI,eCqDG;IDpDH,cCoDG;;;ADpEH;EGmGJ;IJrEI;IACA,aEpCuB;;;ADKvB;EGmGJ;IAaI,aFhDG;IEiDH,gBFjDG;;;;AEsDL;EACE;EACA;EACA;EACA;EACA;EACA;;;AAIJ;EACE;EACA;EACA,SFjEK;EEkEL;;;AHpIE;EGwIF;IACE;;;AAIJ;EACE;;;AAQF;EACE;;;AASF;EACE;EACA,gBF1FM;EE2FN;;AHnKE;EGgKJ;IAMI;IACA;;;;AAMJ;EHlKE,eCuDK;EDtDL,cCsDK;EE8GL;EACA;EACA;EACA,aFjHK;EEkHL,gBFlHK;EEmHL,OFrKY;EFrBZ;;ACKE;EG6KJ;IH9JI,eCqDG;IDpDH,cCoDG;;;ADpEH;EG6KJ;IJ/KI;;;ACEA;EG6KJ;IAYI;IACA;;;;AAIJ;EACE,OF5HK;EE6HL,QF7HK;EE8HL,ODvMiB;;;AEHnB;EACE,aHEoB;;AGApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAOE;;AAGF;EACE;EACA;;AAGF;AAAA;EAEE;;AAIA;EACE,YH+CC;;AG3CL;EACE;EACA;;AAEA;EACE;;AAEA;EACE;EACA;EACA;EACA,OHfM;EGgBN;EACA;EL9BN;;ACHE;EI2BE;ILrBF;;;ACNA;EI2BE;IAUI;;;AAIJ;EACE;;AAGE;EACE;EACA;;AAOV;EACE;;AAGE;EACE;EACA;EACA,OH7CM;EG8CN;;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,OHnFG;EGoFH;EACA,eHzFG;EG0FH,cH1FG;EG2FH;;AJ1JA;EImJF;IAUI;IACA;;;AAGF;EACE;EACA;EACA;EACA,OF3Ka;EE4Kb;;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,YH9JG;;;AI3EP;EACE;EACA;EACA;EACA;;AAEA;ENgBA;EMbE;EACA;;ALCA;EKLF;INmBE;;;ACdA;EKLF;INQA;;;ACHE;EKLF;INWE;;;AMDA;EACE;EACA,YJ+DC;EI9DD,aJuDC;EItDD,gBJsDC;EIrDD;EAEE,eJ0DD;EIzDC,cJqDD;;ADlEH;EKKA;IAeI,YJgDD;II/CC;IAEE,eJ6CH;II5CG,cJ4CH;;;AIrCD;EACE,OJkCD;EIjCC,QJiCD;EIhCC;;AAGF;EACE;EACA;;AAGF;EAEE;;AASJ;EACE;EAEE;EAGF,OJWC;EIVD,QJUC;EITD;EACA,OHpEa;;AFMf;EKqDA;IAYI,OJGD;IIFC,QJED;IIDC;;;AAGF;EACE;;AAQA;EACE;;AAKN;EACE;EACA,cJtBC;EIuBD;;AAEA;EACE;;AAEA;EACE,OH9FC;;AGiGH;EACE,OHlGC;;AGwGL;EAEI;;AAMJ;EACE;;;AAMR;EACE;EACA;EACA;EACA;EACA;ENjIA;;ACKE;EKuHJ;INzHI;;;ACEA;EKuHJ;IASI;IACA,YJ/DG;IIgEH;;EAEA;IACE;;;;AAMJ;EACE;;AAEA;EACE;;AAGE;EACE,OHzJS;;AG4JX;EACE,OH7JS;;;AGsKnB;EACE;EACA;ENvKA;;ACKE;EKgKJ;INlKI;;;AMuKF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;ALjLA;EKgKJ;IAqBI,eJnHG;;;;ADlEH;EK2LJ;IAEI;;;;AAIJ;EACE;EACA,eJlIK;EImIL;;;AAGF;EACE;EN7MA;;ACKE;EKuMJ;INzMI;;;AM6MF;EACE;;AAGF;EACE;EACA,cJjJG;EIkJH,aJlJG;EImJH,OJnMU;EIoMV;;AAIA;EACE;;;ACpON;AAAA;EPwDE;EACA,aEnDyB;EKFzB;;ANOE;EMXJ;AAAA;IP4DI;;;;AOrDJ;AAAA;AAAA;EP+BE;;AC3BE;EMJJ;AAAA;AAAA;IPkCI;IACA,aEpCuB;;;;AKO3B;AAAA;EPiBE;;ACnBE;EMEJ;AAAA;IPoBI;;;;AOfJ;AAAA;EPZE;EOgBA;EACA;EACA;;ANbE;EMOJ;AAAA;IPTI;;;;AOkBJ;EACE;;;AAGF;AAAA;EPjBE;;ACHE;EMoBJ;AAAA;IPdI;;;;AOmBJ;AAAA;EP9BE;;ACKE;EMyBJ;AAAA;IP3BI;;;;AOgCJ;EPnCE;;ACKE;EM8BJ;IPhCI;;;;AOoCJ;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;ACvDF;AAAA;EAEE;EACA;EACA,cNoEK;EMnEL,aNmEK;EMlEL,ONiBM;EMhBN;EACA;EACA,kBN6BS;EFnCT;EQSA;;APJE;EORJ;AAAA;IRMI;;;;AQSJ;EACE,kBN2BU;;;AMxBZ;EACE,kBNcW;;;AMXb;EACE,kBN2BQ;;;AMxBV;EACE,ONFY;EMGZ,kBNkBW;;;AOlDb;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,ONJiB;EMKjB;EACA;EACA;EACA,kBNTQ;EMUR;EACA,ePyEc;EOxEd,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,ONlEiB;EMmEjB;EACA;;AAEA;EAIE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA,YACE;;AAIJ;EAEE;;;AAIJ;ECnGE,OR0BM;EQzBN;EACA;EACA,YACE;;AAGF;EAEE,ORiBI;EQhBJ;EACA;;AAGF;EAGE;EACA;EACA;;AAGF;EACE;;;ADgFJ;ECvGE,OR0BM;EQzBN;EACA;EACA,YACE;;AAGF;EAEE,ORiBI;EQhBJ;EACA;;AAGF;EAGE;EACA;EACA;;AAGF;EACE;;;ADoFJ;EC3GE,OR0BM;EQzBN;EACA;EACA,YACE;;AAGF;EAEE,ORiBI;EQhBJ;EACA;;AAGF;EAGE;EACA;EACA;;AAGF;EACE;;;ADwFJ;EC/GE,OR0BM;EQzBN;EACA;EACA,YACE;;AAGF;EAEE,ORiBI;EQhBJ;EACA;;AAGF;EAGE;EACA;EACA;;AAGF;EACE;;;AD4FJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AE3HF;EACE;EACA;EACA;EACA,QTgFM;ES/EN,STuEK;EStEL;;AVME;EUZJ;IASI;IACA;IACA;IACA;IACA;;;;AAIJ;EACE;EACA;EACA,QT8DK;ES7DL;EACA,eTmEc;ESlEd,YACE;EAEF;;AVdE;EUKJ;IAYI;IACA;IACA,WTwEmB;ISvEnB;IACA;IACA;IACA;;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA,OTTY;ESUZ,kBTfY;ESgBZ;EACA;EACA;EACA;EACA;;AVvCE;EU2BJ;IAeI;IACA;IACA,kBTxBU;ISyBV;;;AAGF;EACE;;AAEA;EACE,OR1Da;;;AQ+DnB;EACE;EACA;EACA;EACA,cTKK;;ADlEH;EUyDJ;IAOI,cTIG;ISHH;;;AAGF;EACE;EACA;EACA;EACA,OTxDU;;;AS4Dd;EACE;EACA;EACA;EACA;EACA;EACA;EACA,kBThEY;ESiEZ,4BTPc;ESQd,2BTRc;ESSd,YACE;;AVvFA;EU4EJ;IAeI;IACA,OTDmB;ISEnB;;;;AAIJ;EACE;EACA,eTpCK;ESqCL;EXzFA;;ACXE;EUiGJ;IXnFI;;;ACdA;EUiGJ;IX9FE;;;ACHE;EUiGJ;IX3FI;;;;AWsGJ;EACE;EACA;;;AAGF;EACE;EACA;;AAEA;EAEE,kBZhIa;;;AYoIjB;EACE;EACA,aT7DK;ES8DL,gBT9DK;;ADhEH;EU2HJ;IAMI;IACA;IACA,eTnEG;ISoEH;;;;AAIJ;EACE;EACA;EACA;;AAEA;EACE;EX3IF;;ACHE;EU6IF;IXvIE;;;ACNA;EU6IF;IXlJA;;;ACKE;EU6IF;IX/IE;;;AWwJF;EACE,OTrFG;ESsFH,QTtFG;ESuFH,cTzFG;ES0FH,ORhKe;EQiKf;;AAGF;EACE;;;AAIJ;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA,OT5JY;ES6JZ;EACA;EX3LA;;ACaE;EUwKJ;IXlLI;;;;AW4LJ;EACE;EACA,aTpHK;ESqHL,gBTrHK;ESsHL,cTpHK;ESqHL,aTvHK;ESwHL,OTxKY;ESyKZ;EACA,aT9GO;ES+GP,mBTzKY;EFvBZ;;ACKE;EUkLJ;IXpLI;;;ACEA;EUkLJ;IAaI;IACA;IACA,cTjIG;ISkIH;IACA;;;;AAIJ;EACE,YTzIK;;;AS4IP;EACE;;;AAGF;EACE;EX7MA;;ACHE;EU+MJ;IXzMI;;;;AW8MJ;EACE;EACA,OTpJK;ESqJL,QTrJK;ESsJL;EACA,OTlJK;ESmJL,QTnJK;ESoJL,kBTxMY;ESyMZ;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,QTvLI;ESwLJ;;AVhQA;EU8PF;IAKI,OTxKiB;ISyKjB,YACE;;;AAKN;EACE,kBTxPU;;ADnBV;EU0QF;IAII;;;AV9QF;EUkRF;IAEI;;;AAIJ;EACE;;AAGF;EACE;EACA;EACA;EACA,YACE;;AVjSF;EUuSA;IACE;IACA;IACA;;;AAIJ;EACE,aTvOI;;ADxEJ;EU8SF;IAII;;;;AC7TN;EACE;EACA;EACA;EACA,eV0EK;EUzEL;EACA,eVkFc;EUjFd,YACE;;;AAIJ;EACE;EACA;EACA;;;AAGF;AAAA;EZJE;EYQA;EACA;EACA,kBVMY;EULZ;EACA;;AXfE;EWOJ;AAAA;IZDI;;;AYWF;AAAA;EACE;;;AAOE;AAAA;EAEE;;AAGF;EACE,gBVkCD;;;AU3BL;EACE;;;AC9CF;EACE;EACA;EACA,kBdEoB;EcDpB;EACA,eX+EY;;;AW1EhB;EACE,cXcY;;;AWqCd;AAAA;AAAA;EAGE;EACA,eXMK;EWLL,kBd9DsB;Ec+DtB,eXgBc;EWfd;EACA;EACA;EACA;;AAIA;AAAA;AAAA;EACE,OXLG;EWMH;EACA;EACA;EACA;EACA;EACA,kBd9EoB;Ec+EpB,OXrDU;EWsDV;;AAEA;AAAA;AAAA;EACE,MXzDQ;;AW4DV;AAAA;AAAA;EACE;EACA;EACA;;AAGF;AAAA;AAAA;EACE;;AAMF;AAAA;AAAA;EACE;EACA;;;AASJ;EACE;EACA,SX7CG;EW8CH;EACA;;AAGF;AAAA;EAEE;EACA;EACA;;;AAUJ;EAGE;EACA,eXpEK;;AW2CL;EACE;EACA,SX7CG;EW8CH;EACA;;AAGF;AAAA;EAEE;EACA;EACA;;;AAwBF;AAAA;EAEE;EACA,SXjFG;EWkFH;EACA;;;AAQJ;EACE;EACA;EACA;EACA;;AAEA;AAAA;EbvKA;Ea2KE;EACA;EACA,kBd1KoB;Ec2KpB;;AZzKA;EYkKF;AAAA;IbpKE;;;Aa8KF;EACE;EACA,eX7GG;EW8GH,cX9GG;;AWiHL;EACE;EACA;;;AAKJ;AAAA;EAEE,SX1HK;EW2HL,eX3HK;EW4HL;EACA;EACA,eXlHc;;AWoHd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAIE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAKJ;EACE;EACA;EACA;;;AAIF;AAAA;EAEE,Yd3NsB;Ec8NpB,Od7NoB;;;AcoOxB;EACE,YdtOsB;;;AeRxB;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;;;AdPE;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;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;EhBDE;;ACaE;EeZJ;IhBEI;;;;AgBEJ;EhBGE;;ACKE;EeRJ;IhBMI;;;;AgBFJ;EhBOE;;ACHE;EeJJ;IhBUI;;;;AgBNJ;EhBWE;;ACXE;EeAJ;IhBcI;;;;AgBVJ;EhBeE;;ACnBE;EeIJ;IhBkBI;;;;AgBdJ;EhBmBE;;AC3BE;EeQJ;IhBsBI;IACA,aEpCuB;;;;AciB3B;EhBwBE;EACA,aE1CyB;;ADKvB;EeYJ;IhB4BI;;;;AgBxBJ;EhB6BE;EACA,aEnDyB;;ADKvB;EegBJ;IhBiCI;;;;AgB7BJ;EhBkCE;EACA,aE5DyB;;ADKvB;EeoBJ;IhBsCI;;;;AgBlCJ;EhBuCE;EACA,aErEyB;;ADKvB;EewBJ;IhB2CI;;;;AgBvCJ;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE,adxDiB;;;Ac2DnB;EACE,ad1DyB;;;Ac6D3B;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;;;AjBlCA;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;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;;;AjB7GA;EiBwHE;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;;;AjB/IJ;EiBwHE;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;;;AjB/IJ;EiBwHE;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;;;AjB/IJ;EiBwHE;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;;;AjB/IJ;EiBwHE;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;;;AjB/IJ;EiBwHE;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;;;AjB/IJ;EiBwHE;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;;;AjB/IJ;EiBwHE;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,OjBPiB;EiBQjB,kBlBkBY;EkBjBZ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AClBF;EACE,kBnBuBY;;;AmBtBb;EACG;EACA;EACA,enB4EY;EmB3EZ;EACA;;AAEA;EACE,OnBcQ;EmBbR;EACA;EACA;EACA;EACA;;;AAIN;EACI;EACA;EACA,enB2DY;EmB1DZ;EACA;;AACA;EACE;EACA;EACA,OnBJQ;EmBKR;EACA;EACA;EACA;EACA;;;AAIN;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;AAIJ;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;AAIJ;EACI;EACA;EACA,enBeY;EmBdZ;EACA;;AAEA;EACI,OnB/CM;EmBgDN;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACE,OnBzDQ;EmB0DR;EACA;EACA;EACA;EACA;;;AAIN;EACI;EACA;EACA,enBZY;EmBaZ;EACA;;AACA;EACE;EACA;EACA,OnB3EQ;EmB4ER;EACA;EACA;EACA;EACA;;;AAIN;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;AAIJ;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;AAIJ;EACI;EACA;EACA,enBxDY;EmByDZ;EACA;;AAEA;EACI,OlBhJW;EkBiJX;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACE,OlB1Ja;EkB2Jb;EACA;EACA;EACA;EACA;;;AAIN;EACI;EACA;EACA,enBnFY;EmBoFZ;EACA;;AACA;EACE;EACA;EACA,OlB5Ka;EkB6Kb;EACA;EACA;EACA;EACA;;;AAIN;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;AAIJ;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;AAIJ;EACI;EACA;EACA,enB/HY;EmBgIZ;EACA;;AAEA;EACI,OnBrKE;EmBsKF;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACE,OnB/KI;EmBgLJ;EACA;EACA;EACA;EACA;;;AAIN;EACI;EACA;EACA,enB1JY;EmB2JZ;EACA;;AACA;EACE;EACA;EACA,OnBjMI;EmBkMJ;EACA;EACA;EACA;EACA;;;AAIN;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;AAIJ;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;ACzRJ;EACE;IACE;IACA;IACA;;;AAKJ;EAMI,OnBNe;;;AmBWnB;EACE;;AAEA;EACE;EACA;EACA;EACA;EACA,kBnBbc;EmBcd;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;ArB7CF;EqBsCA;IAUI;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA,kBnBxDU;EmByDV;;ArB3DJ;EqBmDE;IAWI;IACA;IACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;ArBxEN;EqBmEI;IAQI;;;AAGF;EACE;EACA;;AAIJ;EACE;EACA;EACA;EACA,kBnBtFQ;EmBuFR;EACA;EACA;EACA;EACA;EACA;;ArB9FN;EqBoFI;IAaI;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ArB5GR;EqBoGM;IAWI;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAEA;EACE;;AAKN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ArBrJV;EqB6IQ;IAWI;IACA;IACA;IACA;;;AAKN;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAEA;EACE,kBnBzKE;EmB0KF;;AAIJ;EACE;;AAEA;EACE;EACA;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;;AAMR;EACE;EACA;EACA;EACA;EACA;;ArBjNJ;EqB4ME;IAQI;;;ArBpNN;EqB4ME;IAYI;IACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;ArBjON;EqB4NI;IAQI;;;AAGF;EACE;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAKN;EACE;EACA;EACA;EACA;;ArBlQN;EqB8PI;IAOI;;;AAOR;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;ArBlSJ;EqB+RE;IAMI;;;AAIJ;EACE;EACA;;AAGA;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAKJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;ArBjUN;EqB0TI;IAUI;;;ArBpUR;EqB0TI;IAcI;;;AAGF;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAIJ;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAKN;EACE;EACA;;AAEA;EACE;EACA;EACA;EACA;;ArBjXR;EqB6WM;IAOI;IACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;ArB7XV;EqBiYU;IACE;;;AAIJ;EACE;EACA;EACA;EACA;EACA;;AAKN;EACE;EACA;;AAEA;EACE;EACA;EACA;EACA;;ArBxZR;EqBoZM;IAOI;IACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;ArBpaV;EqBwaU;IACE;;;AAKN;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAKN;EACE;EACA;;AAEA;EACE;EACA;EACA;EACA;;ArBncR;EqB+bM;IAOI;IACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;ArB/cV;EqBmdU;IACE;;;AAMR;EACE;EACA;;AAEA;EACE;EACA;EACA;EACA;;ArBleR;EqB8dM;IAOI;IACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;ArB9eV;EqBkfU;IACE;;;AAQZ;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ArBjhBF;EqBygBA;IAWI;IACA;IACA;;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;;ArBziBN;EqBijBJ;IAEI;;;AAGF;EACE;EACA,epBvfG;EoBwfH;EACA;;AAGF;EACE;EtBnkBF;;ACKE;EqB6jBF;ItB/jBE;;;AsBmkBA;EACE;;AAGF;EACE;EACA,cpBvgBC;EoBwgBD,apBxgBC;EoBygBD,OpBzjBQ;EoB0jBR;;AAIA;EACE;;;ArB/kBJ;EqBslBJ;IAEI;;;AAGF;EACE;EACA,epB5hBG;EoB6hBH;;AAGF;EACE;EtBvmBF;;ACKE;EqBimBF;ItBnmBE;;;AsBumBA;EACE;;AAGF;EACE;EACA,cpB3iBC;EoB4iBD,apB5iBC;EoB6iBD,OpB7lBQ;EoB8lBR;;AAIA;EACE;;;AAQR;EACE;;;AAIF;EACE;EACA,uBpBhnBY;EoBinBZ;;AAEA;EAMI,uBnB9oBgB;;;AmBupBlB;EAMI,OnB3pBG;;AmB+pBP;EAMI,OnBrqBG;EmBwqBL;EAEA,WpBpqBQ;;AoBsqBR;EAMI,OnBjrBC;EmBkrBD;EAGF;EACA,WpBjrBM;;;AoBwrBd;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;EAOE,OnBltBK;;AmBotBL;EACE;;AAKN;EACE;EACA;;AAEA;EACE;EACA;;;AAMN;EACE;EACA;AAEA;AAoBA;AAaA;;AAhCA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAOE,OnB1vBK;;AmB+vBT;EAOI;EACA;;AAKJ;EAMI;;;AAKN;AACA;EACE;EACA;EACA;EACA;;;AAIA;EACE;;AAEA;EACE;EACA;;;AAUE;EACE;;;AAQV;EACE;;AAEA;EACE;EACA;EACA;EACA;;;ArB9zBA;EqBk0BJ;IAGI;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,kBpB3zBU;IoB4zBV;;;;AAIJ;EACE;;AAEA;EACE;EACA;EtBt0BF;EsBm1BI,OnBx2BY;EmBy2BZ,kBnB72Ba;EmBg3Bf;;ArB12BA;EqBu1BF;ItBj0BE;;;ACtBA;EqBu1BF;ItB50BA;;;ACXE;EqBu1BF;ItBz0BE;;;;AsBg2BJ;EtB31BE;EsBm2BA;EACA;EACA;EACA;;ArBz3BE;EqB82BJ;ItBx1BI;;;ACtBA;EqB82BJ;ItBn2BE;;;ACXE;EqB82BJ;ItBh2BI;;;AsB62BF;EACE;;AAGF;EACE;EAOE,OnBx4BK;;AmB24BP;EAOI,OnBj5BG;EmBo5BL;;AAIJ;EACE;EACA;EACA;;;AAMJ;EACE;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;IACA;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;IACA;IAOE,OnBj8BY;;;AmB28Bd;EAQI;EACA;EACA;EAIF;EAEA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAIJ;EACE;EACA;;AAGF;EACE;EACA;EAOE;EAGF;;AAMF;EACE;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIJ;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EAOE;EAGF;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;;;AAIJ;EAOI;EAGF;EACA;;;AAIF;EACE;;;AAGF;EAEQ;;AACI;EACI;;;AAIhB;EAEQ;;AACA;EACI;;;AAKZ;EAKQ;;;AAKR;EACE;IACE;IACA;;;AAIJ;EACE;IACE;IACA;;EAGF;IACE;IACA;;;AAIJ;EACE;IACE;;;AAMJ;EACE;EACA;;;AAKF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EAOE,OnB1qCK;;AmB6qCP;EACE;EACA;EACA;EACA;EACA;EAOE;;AAGF;EACE;EACA;EACA;EACA;EAQE;EACA;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EAOE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAOE;;AAKN;EACE;EACA;EACA;EACA;EACA;EACA;;AAMA;EAOI;;AAIJ;EAMI;;;AAQZ;EACE;EACA;;;AAGF;EACE;;;AAIF;EAOI;EACA;EAGF;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE","sourcesContent":["// 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","@import \"./color_schemes/dark\";\n$color-scheme: dark;\n// Colors\n$link-color: $primary-500-dark;\n$nav-child-link-color: $white-60;\n$feedback-color: #1d1d1d;\n$btn-primary-color: $primary-500-dark;\n$base-button-color: $dark-60;\n$code-background-color: $grey;\n$blue-300: $primary-500-dark;\n$blue-200: $primary-400-dark;\n$blue-000: $primary-50-dark;\n$code-background-color: #31343f;\n$code-linenumber-color: #dee2f7;","@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","// custom setup code goes here\n$primary-500: #1464A5;\n$primary-400: #377BB3;\n$primary-900: #063679;\n$primary-500-24: #1464A53D;\n$primary-50: #E3ECF4;\n$dark-74: #000000BD;\n$dark-60: #00000099;\n$primary-500-dark: #8AB2D2;\n$primary-400-dark: #9CBED9;\n$primary-900-dark: #5A8AB6;\n$primary-500-24-dark: #8AB2D23D;\n$primary-50-dark: #F1F6FA;\n$white-74: #FFFFFFBD;\n$white-60: #FFFFFF99;\n$grey: #F6F6F6;\n$home-background: #293239;\n// Font\n$body-font-family: 'Roboto', sans-serif;\n// media queries\n$custom-media-queries: (home-header: 800px,\n home-imgs-max: 2880px,\n mobile-m: 375px);\n$media-queries: map-merge($media-queries, $custom-media-queries);","// 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\n.main {\n @include mq(md) {\n position: relative;\n max-width: $content-width;\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\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 display: none;\n background-color: $sidebar-color;\n\n @include mq(md) {\n display: flex;\n justify-content: space-between;\n height: $header-height;\n background-color: $body-background-color;\n border-bottom: $border $border-color;\n }\n\n &.nav-open {\n display: block;\n\n @include mq(md) {\n display: flex;\n }\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$logo: \"/docs/v3/assets/icons/logo-ontimize-blanco.png\";\n\n@import \"./support/support\";\n@import \"./custom/setup\";\n@import \"./color_schemes/light\";\n\n@import \"./color_schemes/ontimize-dark\";\n\n@import \"./modules\";\ndiv.opaque {\n background-color: $body-background-color;\n}p.highlight, blockquote.highlight {\n background: rgba($grey-dk-000, 0.2);\n border-left: $border-radius solid $grey-dk-300;\n border-radius: $border-radius;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);\n padding: .8rem;\n \n > .highlight-title {\n color: $grey-dk-300;\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n}\n\np.highlight-title, blockquote.highlight-title {\n background: rgba($grey-dk-000, 0.2);\n border-left: $border-radius solid $grey-dk-300;\n border-radius: $border-radius;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);\n padding: .8rem;\n > p:first-child {\n margin-top: 0;\n margin-bottom: 0;\n color: $grey-dk-300;\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n}\n\nblockquote.highlight {\n margin-left: 0;\n margin-right: 0;\n \n > p:first-child {\n margin-top: 0;\n }\n \n > p:last-child {\n margin-bottom: 0;\n }\n}\n\nblockquote.highlight-title {\n margin-left: 0;\n margin-right: 0;\n \n > p:nth-child(2) {\n margin-top: 0;\n }\n \n > p:last-child {\n margin-bottom: 0;\n }\n}\n\np.important, blockquote.important {\n background: rgba($grey-dk-000, 0.2);\n border-left: $border-radius solid $grey-dk-300;\n border-radius: $border-radius;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);\n padding: .8rem;\n \n &::before {\n color: $grey-dk-300;\n content: \"Important\";\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n \n > .important-title {\n color: $grey-dk-300;\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n}\n\np.important-title, blockquote.important-title {\n background: rgba($grey-dk-000, 0.2);\n border-left: $border-radius solid $grey-dk-300;\n border-radius: $border-radius;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);\n padding: .8rem;\n > p:first-child {\n margin-top: 0;\n margin-bottom: 0;\n color: $grey-dk-300;\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n}\n\nblockquote.important {\n margin-left: 0;\n margin-right: 0;\n \n > p:first-child {\n margin-top: 0;\n }\n \n > p:last-child {\n margin-bottom: 0;\n }\n}\n\nblockquote.important-title {\n margin-left: 0;\n margin-right: 0;\n \n > p:nth-child(2) {\n margin-top: 0;\n }\n \n > p:last-child {\n margin-bottom: 0;\n }\n}\n\np.note, blockquote.note {\n background: rgba($blue-000, 0.2);\n border-left: $border-radius solid $blue-300;\n border-radius: $border-radius;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);\n padding: .8rem;\n \n &::before {\n color: $blue-300;\n content: \"Note\";\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n \n > .note-title {\n color: $blue-300;\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n}\n\np.note-title, blockquote.note-title {\n background: rgba($blue-000, 0.2);\n border-left: $border-radius solid $blue-300;\n border-radius: $border-radius;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);\n padding: .8rem;\n > p:first-child {\n margin-top: 0;\n margin-bottom: 0;\n color: $blue-300;\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n}\n\nblockquote.note {\n margin-left: 0;\n margin-right: 0;\n \n > p:first-child {\n margin-top: 0;\n }\n \n > p:last-child {\n margin-bottom: 0;\n }\n}\n\nblockquote.note-title {\n margin-left: 0;\n margin-right: 0;\n \n > p:nth-child(2) {\n margin-top: 0;\n }\n \n > p:last-child {\n margin-bottom: 0;\n }\n}\n\np.warning, blockquote.warning {\n background: rgba($red-000, 0.2);\n border-left: $border-radius solid $red-300;\n border-radius: $border-radius;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);\n padding: .8rem;\n \n &::before {\n color: $red-300;\n content: \"Warning\";\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n \n > .warning-title {\n color: $red-300;\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n}\n\np.warning-title, blockquote.warning-title {\n background: rgba($red-000, 0.2);\n border-left: $border-radius solid $red-300;\n border-radius: $border-radius;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);\n padding: .8rem;\n > p:first-child {\n margin-top: 0;\n margin-bottom: 0;\n color: $red-300;\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n}\n\nblockquote.warning {\n margin-left: 0;\n margin-right: 0;\n \n > p:first-child {\n margin-top: 0;\n }\n \n > p:last-child {\n margin-bottom: 0;\n }\n}\n\nblockquote.warning-title {\n margin-left: 0;\n margin-right: 0;\n \n > p:nth-child(2) {\n margin-top: 0;\n }\n \n > p:last-child {\n margin-bottom: 0;\n }\n}\n\n\n@import \"./custom/custom\";\n\n\n","// Sticky header\n@media (min-width: 50rem) {\n #main-header {\n position: sticky;\n top: 0;\n z-index: 999\n }\n}\n\n// Custom text colors\n.text-primary-900 {\n @if $color_scheme=='light' {\n color: $primary-900\n }\n\n @else {\n color: $primary-900-dark\n }\n}\n\n// Home page\n.home-body {\n padding: 0;\n\n .home {\n display: flex;\n flex-direction: column;\n justify-content: start;\n align-items: center;\n background-color: $home-background;\n color: #FFFFFFBD;\n width: 100%;\n height: 100%;\n\n a {\n color: #A8C7FF;\n text-decoration: underline;\n text-decoration-color: #A8C7FF;\n\n &:hover {\n text-decoration-color: #A8C7FF;\n }\n }\n\n .text-primary-400 {\n color: #4286FF;\n }\n\n .white-87 {\n color: #FFFFFFDE;\n }\n\n .introduction {\n background-image: url('../../assets/images/home/bg-landing.png');\n background-repeat: repeat;\n display: flex;\n flex-direction: column;\n justify-content: start;\n height: 100%;\n width: 100%;\n\n @include mq (lg) {\n height: 100vh;\n }\n\n .header {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: space-around;\n gap: 28px;\n padding: 0 5rem 28px;\n background-color: $home-background;\n box-shadow: 0 1px 12px rgba(255, 255, 255, 0.5);\n\n @include mq(home-header) {\n height: 96px;\n padding-bottom: 0;\n flex-direction: row;\n }\n\n .site-header {\n flex-shrink: 0;\n height: fit-content;\n width: fit-content;\n border: none;\n align-items: end;\n\n @include mq(home-header) {\n align-items: center;\n }\n\n img {\n width: 140px;\n height: 41px;\n }\n }\n\n .main-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n background-color: $home-background;\n border: none;\n gap: 28px;\n flex-grow: 1;\n flex-direction: column;\n height: inherit;\n padding: 0;\n\n @include mq(home-header) {\n flex-direction: row;\n }\n\n .search {\n display: flex;\n height: 48px;\n max-height: 48px;\n width: auto;\n min-width: 243px;\n padding: 0;\n justify-content: center;\n position: static;\n\n @include mq(home-header) {\n min-width: 194px;\n }\n\n .search-input-wrap {\n position: relative;\n top: 0;\n width: 100%;\n max-width: 33.5rem;\n border-radius: 4px;\n box-shadow: none;\n height: 100%;\n\n .search-input {\n font-size: 0.875rem;\n padding-left: 2.5rem;\n background-color: transparent;\n border: solid 1px #FFFFFFBD;\n border-radius: 4px;\n color: white;\n }\n\n .search-label {\n padding-left: 1rem;\n\n >svg {\n color: #FFFFFFBD;\n }\n }\n }\n\n .search-results {\n left: auto;\n background-color: #293239;\n box-shadow: 0 1px 12px rgba(255, 255, 255, 0.5);\n width: -webkit-fill-available;\n min-width: 243px;\n max-width: 243px;\n max-height: calc(100vh - #{$sp-10});\n top: 128px;\n\n @include mq(home-header) {\n top: 48px;\n min-width: 194px;\n max-width: 33.5rem;\n max-height: calc(100vh - 200%);\n }\n }\n }\n\n .header-custom-main {\n display: flex;\n column-gap: 28px;\n color: #FFFFFFBD;\n\n .select {\n border-style: none;\n background-color: transparent;\n color: inherit;\n\n >option {\n background-color: $home-background;\n color: inherit;\n }\n }\n\n .github-div {\n flex-shrink: 0;\n\n >a {\n display: flex;\n align-items: center;\n }\n }\n\n .docs-div {\n display: flex;\n justify-content: center;\n align-items: center;\n border: solid 1px #FFFFFFBD;\n border-radius: 4px;\n width: 80px;\n height: 40px;\n font-size: 16px;\n }\n\n >a {\n text-decoration: none;\n color: #FFFFFFBD;\n }\n }\n }\n }\n\n .landing {\n display: flex;\n flex-direction: column;\n row-gap: 28px;\n align-items: center;\n height: calc(100% - 226.5px);\n\n @include mq(home-header) {\n height: calc(100% - 96px);\n }\n\n @include mq (lg) {\n justify-content: space-around;\n flex-direction: row;\n }\n\n .text {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: inherit;\n padding: 28px 28px 0;\n\n @include mq(lg) {\n max-width: 50%;\n }\n\n >h4 {\n align-self: start;\n margin: 0;\n }\n\n >p {\n color: #4286FF;\n }\n\n .home-btn {\n font-size: 14px;\n color: #FFF;\n background-color: #2876FF;\n height: 42px;\n width: 148px;\n align-self: start;\n\n &:hover {\n background-color: #1A51C8;\n }\n }\n }\n\n .banner {\n display: flex;\n justify-content: center;\n flex-shrink: 1;\n padding: 0 28px;\n\n @include mq (lg) {\n max-width: fit-content;\n }\n }\n }\n\n }\n\n .top-content {\n display: flex;\n flex-direction: column;\n width: 80%;\n }\n\n .custom-content {\n display: flex;\n flex-direction: row;\n column-gap: 28px;\n width: 80%;\n\n .code-icon {\n width: 72px;\n height: 72px;\n position: absolute;\n transform: translate(-100px, 12px);\n }\n\n .code-icon-container {\n display: flex;\n flex-direction: column;\n min-width: 72px;\n\n @include mq(home-imgs-max) {\n display: none;\n }\n }\n\n .main-content {\n display: flex;\n flex-direction: column;\n\n\n .section-text {\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n flex-shrink: 0;\n\n >h1 {\n font-weight: 600;\n }\n\n }\n\n .link-div {\n display: flex;\n flex-direction: row;\n flex-grow: 1;\n flex-shrink: 0;\n margin-top: 82px;\n margin-bottom: 124px;\n transform: translateX(-150px);\n\n @include mq(mobile-m) {\n transform: translateX(-100px);\n }\n\n @include mq(home-header) {\n transform: translateX(0);\n }\n\n .link-img {\n display: flex;\n flex-shrink: 0;\n align-items: start;\n\n >img {\n width: 100%;\n max-width: 168px;\n aspect-ratio: 1 / 1;\n }\n }\n\n .link-texts {\n display: flex;\n flex-direction: column;\n flex-shrink: 1;\n flex-grow: 1;\n\n >h2 {\n display: flex;\n flex-direction: column;\n justify-content: center;\n min-height: 168px;\n font-weight: 600;\n color: #75A7FF;\n margin: 0;\n }\n }\n }\n\n .productivity-section {\n display: flex;\n flex-direction: column;\n\n .productivity-img-container {\n display: flex;\n align-items: center;\n height: calc(100vw / 2.57);\n max-height: 1119px;\n\n @include mq(home-imgs-max) {\n width: calc(80vw - 122px);\n justify-content: center;\n }\n\n >img {\n max-width: 2888px;\n width: 100%;\n position: absolute;\n left: 0;\n aspect-ratio: 2880 / 1119;\n }\n\n @include mq(home-imgs-max) {\n >img {\n position: static;\n }\n }\n\n .productivity-bottom {\n display: flex;\n flex-direction: column;\n justify-items: start;\n flex-shrink: 0;\n flex-grow: 1;\n }\n }\n }\n\n .performance-section {\n display: flex;\n flex-direction: column;\n\n .performance-img-container {\n display: flex;\n align-items: center;\n height: calc(100vw / 2.27);\n max-height: 1268px;\n\n @include mq(home-imgs-max) {\n width: calc(80vw - 122px);\n justify-content: center;\n }\n\n >img {\n max-width: 2888px;\n width: 100%;\n position: absolute;\n left: 0;\n aspect-ratio: 2888 / 1268;\n }\n\n @include mq(home-imgs-max) {\n >img {\n position: static;\n }\n }\n }\n\n .performance-bottom {\n display: flex;\n flex-grow: 1;\n flex-shrink: 0;\n flex-direction: column;\n justify-items: start;\n\n >a {\n align-self: start;\n }\n }\n }\n\n .components-section {\n display: flex;\n flex-direction: column;\n\n .components-img-container {\n display: flex;\n align-items: center;\n height: calc(100vw / 2.27);\n max-height: 1268px;\n\n @include mq(home-imgs-max) {\n width: calc(80vw - 122px);\n justify-content: center;\n }\n\n >img {\n max-width: 2888px;\n width: 100%;\n position: absolute;\n left: 0;\n aspect-ratio: 2888 / 1268;\n }\n\n @include mq(home-imgs-max) {\n >img {\n position: static;\n }\n }\n }\n }\n\n .addons-section {\n display: flex;\n flex-direction: column;\n\n .addons-img-container {\n display: flex;\n align-items: center;\n height: calc(100vw / 2.27);\n max-height: 1268px;\n\n @include mq(home-imgs-max) {\n width: calc(80vw - 122px);\n justify-content: center;\n }\n\n >img {\n max-width: 2888px;\n width: 100%;\n position: absolute;\n left: 0;\n aspect-ratio: 2888 / 1268;\n }\n\n @include mq(home-imgs-max) {\n >img {\n position: static;\n }\n }\n }\n }\n }\n }\n\n .footer-img-container {\n display: flex;\n align-items: center;\n height: calc(100vw / 7.5);\n max-height: 512px;\n width: 100%;\n\n >img {\n max-width: 3840px;\n width: 100%;\n aspect-ratio: 3840 / 512;\n }\n }\n\n .home-footer {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n padding: 28px 5rem;\n text-align: justify;\n border-top: solid 1px #FFFFFFBD;\n\n @include mq(lg) {\n flex-direction: row;\n height: 74px;\n padding: 0 5rem;\n }\n\n >img {\n width: 140px;\n height: 41px;\n }\n\n >div {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n width: 200px;\n\n >a {\n color: #FFFFFFDB;\n display: flex;\n align-items: center;\n text-decoration: none;\n }\n }\n }\n }\n}\n\n// breadcrumbs.html include style\n.breadcrumbs {\n @include mq(md) {\n margin-top: -$sp-4;\n }\n\n ol {\n padding-left: 0;\n margin-bottom: $sp-3;\n margin-top: 0;\n list-style: none;\n }\n\n li {\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}\n\n// breadcrumbs.html include style\n.breadcrumbs {\n @include mq(md) {\n margin-top: -$sp-4;\n }\n\n ol {\n padding-left: 0;\n margin-bottom: $sp-3;\n list-style: none;\n }\n\n li {\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\n}\n\n// Button outline style\n.btn:focus {\n display: none;\n}\n\n// Links\na:not([class]) {\n text-decoration: underline;\n text-decoration-color: $border-color;\n text-underline-offset: 2px;\n\n &:hover {\n @if $color_scheme=='light' {\n text-decoration-color: $primary-500-24;\n }\n\n @else {\n text-decoration-color: $primary-500-24-dark;\n }\n }\n}\n\n// Default side bar\n.nav-list {\n .nav-list-item {\n\n .nav-list-expander {\n @if $color_scheme=='light' {\n color: $dark-74;\n }\n\n @else {\n color: $white-74;\n }\n }\n\n .nav-list-link {\n @if $color_scheme=='light' {\n color: $dark-74;\n }\n\n @else {\n color: $white-74;\n }\n\n font-weight: 400;\n // 16px\n font-size: $font-size-5;\n\n &.active {\n @if $color_scheme=='light' {\n color: $dark-60;\n }\n\n @else {\n color: $white-60;\n background-image: linear-gradient(-90deg, #1d1d1d 0%, rgba(29, 29, 29, 0.8) 80%, rgba(29, 29, 29, 0) 100%) !important;\n }\n\n font-weight: 500;\n font-size: $font-size-5;\n }\n }\n }\n}\n\n// Style of the header version changer\n.header-custom-main {\n display: flex;\n place-content: end;\n column-gap: 10px;\n margin-right: 33px;\n\n .toggle-theme {\n cursor: pointer;\n }\n\n .select {\n width: 65px;\n border-style: none;\n background: transparent;\n\n @if $color_scheme=='light' {\n color: $dark-74;\n }\n\n @else {\n color: $white-74;\n\n option {\n background-color: #27262b;\n }\n }\n }\n\n .github-div {\n display: flex;\n align-items: center;\n\n >a {\n display: flex;\n align-items: center;\n }\n }\n}\n\n// Style of the component-api tabs\n.o-tab {\n overflow: hidden;\n padding-bottom: 6px;\n\n /* Style the buttons that are used to open the tab content */\n button {\n background-color: inherit;\n float: left;\n border: none;\n outline: none;\n cursor: pointer;\n padding: 12px 16px;\n transition: .3s;\n font-size: 0.8em;\n\n @if $color_scheme=='light' {\n color: $dark-74;\n }\n\n @else {\n color: $white-74;\n }\n }\n\n /* Change background color of buttons on hover */\n button:hover {\n @if $color_scheme=='light' {\n background-color: lighten($primary-500, 40%);\n border-bottom: 2px solid $primary-500-24;\n }\n\n @else {\n background-color: lighten($primary-500-dark, 40%);\n border-bottom: 2px solid $primary-500-24-dark;\n }\n }\n\n /* Create an active/current tablink class */\n button.active {\n @if $color_scheme=='light' {\n border-bottom: 2px solid $primary-500;\n }\n\n @else {\n border-bottom: 2px solid $primary-500;\n }\n }\n}\n\n/* Style the tab content */\n.o-tabcontent {\n display: none;\n padding: 6px 12px;\n -webkit-animation: fadeEffect 1s;\n animation: fadeEffect 1s;\n}\n\n.o-component-container {\n .list__item {\n padding-right: 0;\n\n .archive__item-excerpt {\n margin-top: 0;\n font-size: .75em;\n }\n }\n}\n\n// Api tables\n.mdl-data-table {\n td {\n &[required] {\n p.first {\n &:after {\n content: ' *';\n }\n }\n }\n }\n}\n\n// Api attribute inhereds\n.attributes-list {\n overflow: hidden;\n\n li {\n display: inline-block;\n width: 50%;\n margin-bottom: .25em;\n font-size: 18px;\n }\n}\n\n.sidebar__right {\n\n @include mq(lg) {\n position: fixed;\n top: 64px;\n right: 0px;\n max-height: calc(100% - 112px);\n min-height: fit-content;\n width: 360px;\n padding-bottom: 20px;\n border: 1px solid $border-color;\n border-radius: 4px;\n overflow: auto;\n background-color: $body-background-color;\n z-index: 999;\n }\n}\n\n.toc {\n letter-spacing: 1px;\n\n .nav__title {\n margin: 0;\n cursor: pointer;\n @include fs-5;\n\n @include mq(md) {\n @include fs-4;\n }\n\n @if $color_scheme=='light' {\n color: $primary-500;\n background-color: $primary-50;\n }\n\n @else {\n color: $primary-50-dark;\n background-color: $primary-500-dark;\n }\n\n padding: 20px 14px 8px 14px;\n }\n}\n\n.toc__menu {\n\n @include fs-5;\n\n @include mq(md) {\n @include fs-4;\n }\n\n margin: 0;\n padding: 0;\n width: 100%;\n list-style: none;\n\n li::before {\n content: \"\" !important;\n }\n\n a {\n text-decoration: none;\n\n @if $color_scheme=='light' {\n color: $dark-74;\n }\n\n @else {\n color: $white-74;\n }\n\n &.active {\n\n @if $color_scheme=='light' {\n color: $dark-60;\n }\n\n @else {\n color: $white-60;\n }\n\n font-weight: 500;\n }\n }\n\n li ul>li a {\n padding-top: 0.2rem;\n border: none;\n text-transform: none;\n\n }\n}\n\n//Ontimize TOC screen size bigger than 66.5 rem\n@media (min-width: 66.5rem) {\n .toc__menu.collapsed {\n display: none;\n }\n\n .toc.collapsed {\n position: relative;\n bottom: 14px;\n }\n\n .nav__title.collapsed {\n height: 100%;\n font-size: 15px !important;\n cursor: pointer;\n }\n\n .sidebar__right.collapsed {\n padding-bottom: 0px;\n width: auto;\n transform: rotate(270deg);\n transform-origin: bottom right;\n top: calc(64px - 30px);\n height: 30px;\n overflow: hidden;\n\n @if $color_scheme=='light' {\n color: $primary-50;\n }\n\n @else {\n color: $primary-50-dark;\n }\n }\n}\n\n// FAQ page\n\n.faq-posts {\n .panel-default {\n\n .panel-heading {\n @if $color_scheme=='light' {\n color: #333;\n background-color: #f5f5f5;\n border-color: #ddd;\n }\n\n @else {\n color: #eee;\n background-color: #0c0c0c;\n border-color: #222;\n }\n\n\n border-bottom: 0;\n\n padding: 10px 30px;\n border-bottom: 1px solid transparent;\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n cursor: pointer;\n }\n\n .panel-title {\n margin-top: 0;\n margin-bottom: 0;\n font-size: 16px;\n color: inherit;\n }\n }\n\n .panel-body {\n padding: 15px;\n font-size: 14px;\n }\n\n .panel {\n margin-bottom: 0;\n border-radius: 4px;\n\n @if $color_scheme=='light' {\n background-color: #fff;\n }\n\n @else {\n background-color: #000;\n }\n\n border: 1px solid transparent;\n\n //-webkit-box-shadow: 0 1px 1px rgba(0,0,0,.05);\n //box-shadow: 0 1px 1px rgba(0,0,0,.05);\n }\n\n .collapse {\n display: none;\n\n &.in {\n display: block;\n }\n }\n\n .collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n -webkit-transition-property: height, visibility;\n transition-property: height, visibility;\n -webkit-transition-duration: .35s;\n transition-duration: .35s;\n -webkit-transition-timing-function: ease;\n transition-timing-function: ease;\n }\n}\n\n.multicolumn {\n display: flex;\n}\n\n.toggle-tree-btn {\n all: unset;\n margin-bottom: 10px;\n align-self: flex-end;\n position: absolute;\n top: 8px;\n right: 8px;\n cursor: pointer;\n}\n\n.multicolumnleft {\n flex: 1;\n max-width: 100%;\n overflow-x: auto;\n padding: 0 40px 0 0;\n box-sizing: border-box;\n position: relative;\n}\n\n.multicolumnnopadding {\n flex: 1;\n max-width: 100%;\n overflow-x: auto;\n padding: 0 0 0 0;\n box-sizing: border-box;\n}\n\n.multicolumnright {\n box-sizing: border-box;\n\n @if $color_scheme=='light' {\n border-left: 1px solid #ccc;\n }\n\n @else {\n border-left: 1px solid #2e2e2e;\n }\n\n transition: width 0.3s ease;\n overflow-x: auto;\n\n &.collapsed {\n width: 0;\n overflow: hidden;\n padding: 0;\n border-left: none;\n display: none;\n }\n}\n\n.verticalDivider {\n\n @if $color_scheme=='light' {\n border-left: 1px solid #F2F3F3;\n }\n\n @else {\n border-left: 1px solid #0f0f0f;\n }\n\n padding-right: 10px;\n margin-left: 10px;\n}\n\n// //jstree\n.jstreeloader ul>li::before {\n content: \"\";\n}\n\na.jstree-anchor.jstree-hovered{\n @if $color_scheme=='dark' {\n color: #515151;\n i {\n filter: invert(26%) sepia(0%) saturate(28%) hue-rotate(162deg) brightness(94%) contrast(85%);\n }\n }\n}\na.jstree-anchor.jstree-clicked{\n @if $color_scheme=='dark' {\n color: #494949;\n i {\n filter: invert(26%) sepia(0%) saturate(28%) hue-rotate(162deg) brightness(94%) contrast(85%);\n }\n }\n}\n\ni.jstree-icon{\n @if $color_scheme=='light' {\n filter: invert(36%) sepia(8%) saturate(440%) hue-rotate(218deg) brightness(90%) contrast(85%);\n }\n @if $color_scheme=='dark' {\n filter: invert(89%) sepia(0%) saturate(0%) hue-rotate(174deg) brightness(84%) contrast(87%);\n }\n}\n\n\n@media (min-width: 50rem) and ((max-width: 66.5rem)) {\n #top.main {\n max-width: none;\n margin-left: 16.5rem;\n }\n}\n\n@media (min-width: 66.5rem) {\n body>div.side-bar {\n min-width: auto;\n width: auto,\n }\n\n #top.main {\n max-width: none;\n margin-left: calc(16.5rem + 1px);\n }\n}\n\n@media (min-width: 50rem) {\n div.side-bar {\n width: 16.5rem;\n }\n\n\n}\n\ntable {\n table-layout: auto;\n width: 120px;\n}\n\n// Link sections menu cards\n\n.menu-card-container {\n display: grid;\n grid-gap: 32px;\n grid-template-columns: repeat(auto-fit, minmax(auto, 368px));\n grid-auto-rows: minmax(auto, 208px);\n justify-content: center;\n\n a {\n text-decoration: none;\n\n @if $color_scheme=='light' {\n color: $dark-74;\n }\n\n @else {\n color: $white-74;\n }\n\n .menu-card {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n height: 100%;\n border-radius: 2px;\n\n @if $color_scheme=='light' {\n border: 1px solid #0000001F;\n }\n\n @else {\n border: 1px solid #FFFFFF1F;\n }\n\n .image-container {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 128px;\n\n @if $color_scheme=='light' {\n border-bottom: 1px solid #0000001F;\n background-color: #F6F6F6;\n }\n\n @else {\n border-bottom: 1px solid #FFFFFF1F;\n background-color: #31363A;\n }\n }\n\n .bottom-image {\n height: 80px;\n vertical-align: middle;\n text-align: start;\n padding: 28px 18px;\n margin: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n font-weight: 500;\n }\n\n .text-container {\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n height: 88px;\n font-weight: 500;\n\n @if $color_scheme=='light' {\n border-bottom: 1px solid #0000001F;\n }\n\n @else {\n border-bottom: 1px solid #FFFFFF1F;\n }\n\n >p {\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n text-align: start;\n padding: 10px 18px 0 18px;\n height: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n @if $color_scheme=='light' {\n color: #000000DE;\n }\n\n @else {\n color: #FFFFFFDE;\n }\n }\n }\n\n .bottom-title {\n height: 118px;\n text-overflow: ellipsis;\n overflow: hidden;\n text-align: start;\n margin: 0;\n padding: 20px 18px;\n }\n }\n\n &:hover {\n .menu-card {\n .bottom-title {\n\n @if $color_scheme=='light' {\n background-color: #C7DAE9;\n }\n\n @else {\n background-color: #00345f;\n }\n }\n\n .bottom-image {\n @if $color_scheme=='light' {\n background-color: #C7DAE9;\n }\n\n @else {\n background-color: #012644;\n }\n }\n }\n }\n }\n}\n\n.menu-card-container:has(.image-container) {\n grid-template-columns: repeat(auto-fit, minmax(auto, 272px));\n grid-auto-rows: minmax(208px, auto);\n}\n\n.hidden {\n display: none;\n}\n\n\n.menuitem-badge {\n @if $color_scheme=='light' {\n background: linear-gradient(-180deg, $primary-500 0, $primary-500-24 100%);\n color: #fff;\n }\n\n @else {\n background: linear-gradient(-180deg, $primary-500-dark 0, $primary-500-24-dark 100%);\n color: #000;\n }\n\n padding: 2px 4px;\n vertical-align: middle;\n border-radius: 3px;\n font-weight: 700;\n font-size: 11px;\n position: relative;\n top: -1px;\n}\n\nimg[alt=\"Alt text\"] {\n width: 100%;\n}"],"file":"just-the-docs-ontimize-dark.css"} \ No newline at end of file diff --git a/v3/assets/css/just-the-docs-ontimize-light.css b/v3/assets/css/just-the-docs-ontimize-light.css new file mode 100644 index 0000000..fc1c999 --- /dev/null +++ b/v3/assets/css/just-the-docs-ontimize-light.css @@ -0,0 +1,10861 @@ +@charset "UTF-8"; +.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: "Roboto", sans-serif; + 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: #1464A5; + 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(20, 100, 165, 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: #F6F6F6; +} +@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) { + .main { + position: relative; + max-width: 50rem; + margin-left: 15.5rem; + } +} +@media (min-width: 66.5rem) { + .main { + margin-left: max( + 16.5rem, + calc((100% - 66.5rem) / 2 + 16.5rem) + ); + } +} + +.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; + display: none; + background-color: #F6F6F6; +} +@media (min-width: 50rem) { + .main-header { + display: flex; + justify-content: space-between; + height: 3.75rem; + background-color: #fff; + border-bottom: 1px solid #eeebee; + } +} +.main-header.nav-open { + display: block; +} +@media (min-width: 50rem) { + .main-header.nav-open { + display: flex; + } +} + +.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-logo { + width: 100%; + height: 100%; + background-image: url("/docs/v3/assets/icons/logo-ontimize-blanco.png"); + background-repeat: no-repeat; + background-position: left center; + background-size: contain; +} + +.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, #eaeaea 0%, rgba(234, 234, 234, 0.8) 80%, rgba(234, 234, 234, 0) 100%); +} + +.site-button:hover { + background-image: linear-gradient(-90deg, #eaeaea 0%, rgba(234, 234, 234, 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: #1464A5; +} + +.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: #1464A5; + 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, #eaeaea 0%, rgba(234, 234, 234, 0.8) 80%, rgba(234, 234, 234, 0) 100%); +} +.nav-list .nav-list-item .nav-list-expander { + position: absolute; + right: 0; + width: 3rem; + height: 3rem; + padding: 0.75rem; + color: #1464A5; +} +@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, #eaeaea 0%, rgba(234, 234, 234, 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: rgba(0, 0, 0, 0.6); +} +.nav-list .nav-list-item > .nav-list .nav-list-item .nav-list-expander { + color: rgba(0, 0, 0, 0.6); +} +.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: #1464A5; +} +.nav-list.nav-category-list > .nav-list-item > .nav-list > .nav-list-item > .nav-list-expander { + color: #1464A5; +} + +.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: #1464A5; + text-decoration: none; + vertical-align: baseline; + cursor: pointer; + background-color: #F6F6F6; + 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: #135e9c; +} +.btn:hover, .btn:active, .btn.zeroclipboard-is-hover, .btn.zeroclipboard-is-active { + text-decoration: none; + background-color: #f3f3f3; +} +.btn:active, .btn.selected, .btn.zeroclipboard-is-active { + background-color: #eeeeee; + 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: #1464A5; + 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: #125993; + 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: #135e9c; + background-image: linear-gradient(#1772bc, #135e9c); + 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: #125993; + background-image: linear-gradient(#156aae, #125993); +} +.btn-primary:active, .btn-primary.selected, .btn-primary.zeroclipboard-is-active { + background-color: #11568e; + background-image: none; + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); +} +.btn-primary.selected:hover { + background-color: #0e4878; +} + +.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: #dce7f1; + background-image: linear-gradient(#f5f8fb, #dce7f1); + 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: #d4e2ee; + background-image: linear-gradient(#eaf1f7, #d4e2ee); +} +.btn-blue:active, .btn-blue.selected, .btn-blue.zeroclipboard-is-active { + background-color: #d1e0ed; + background-image: none; + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); +} +.btn-blue.selected:hover { + background-color: #bed3e6; +} + +.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: #1464A5; +} + +.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: #EAEAEA; +} + +.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: #1464A5; + 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(20, 100, 165, 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: #F6F6F6; + 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: #F6F6F6; + 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 #F6F6F6; + background-color: #F6F6F6; + 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: #F6F6F6; + 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: #F6F6F6; + color: #5c5962; +} + +.highlight pre { + background: #F6F6F6; +} + +.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: #E3ECF4 !important; +} + +.text-blue-100 { + color: #2869e6 !important; +} + +.text-blue-200 { + color: #377BB3 !important; +} + +.text-blue-300 { + color: #1464A5 !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: #E3ECF4 !important; +} + +.bg-blue-100 { + background-color: #2869e6 !important; +} + +.bg-blue-200 { + background-color: #377BB3 !important; +} + +.bg-blue-300 { + background-color: #1464A5 !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; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 800px) { + .d-home-header-block { + display: block !important; + } + .d-home-header-flex { + display: flex !important; + } + .d-home-header-inline { + display: inline !important; + } + .d-home-header-inline-block { + display: inline-block !important; + } + .d-home-header-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 2880px) { + .d-home-imgs-max-block { + display: block !important; + } + .d-home-imgs-max-flex { + display: flex !important; + } + .d-home-imgs-max-inline { + display: inline !important; + } + .d-home-imgs-max-inline-block { + display: inline-block !important; + } + .d-home-imgs-max-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-none { + display: none !important; + } +} +@media (min-width: 375px) { + .d-mobile-m-block { + display: block !important; + } + .d-mobile-m-flex { + display: flex !important; + } + .d-mobile-m-inline { + display: inline !important; + } + .d-mobile-m-inline-block { + display: inline-block !important; + } + .d-mobile-m-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; + } +} +@media (min-width: 800px) { + .m-home-header-0 { + margin: 0 !important; + } + .mt-home-header-0 { + margin-top: 0 !important; + } + .mr-home-header-0 { + margin-right: 0 !important; + } + .mb-home-header-0 { + margin-bottom: 0 !important; + } + .ml-home-header-0 { + margin-left: 0 !important; + } + .mx-home-header-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .my-home-header-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .mxn-home-header-0 { + margin-right: -0 !important; + margin-left: -0 !important; + } +} +@media (min-width: 800px) { + .m-home-header-1 { + margin: 0.25rem !important; + } + .mt-home-header-1 { + margin-top: 0.25rem !important; + } + .mr-home-header-1 { + margin-right: 0.25rem !important; + } + .mb-home-header-1 { + margin-bottom: 0.25rem !important; + } + .ml-home-header-1 { + margin-left: 0.25rem !important; + } + .mx-home-header-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .my-home-header-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .mxn-home-header-1 { + margin-right: -0.25rem !important; + margin-left: -0.25rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-2 { + margin: 0.5rem !important; + } + .mt-home-header-2 { + margin-top: 0.5rem !important; + } + .mr-home-header-2 { + margin-right: 0.5rem !important; + } + .mb-home-header-2 { + margin-bottom: 0.5rem !important; + } + .ml-home-header-2 { + margin-left: 0.5rem !important; + } + .mx-home-header-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .my-home-header-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .mxn-home-header-2 { + margin-right: -0.5rem !important; + margin-left: -0.5rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-3 { + margin: 0.75rem !important; + } + .mt-home-header-3 { + margin-top: 0.75rem !important; + } + .mr-home-header-3 { + margin-right: 0.75rem !important; + } + .mb-home-header-3 { + margin-bottom: 0.75rem !important; + } + .ml-home-header-3 { + margin-left: 0.75rem !important; + } + .mx-home-header-3 { + margin-right: 0.75rem !important; + margin-left: 0.75rem !important; + } + .my-home-header-3 { + margin-top: 0.75rem !important; + margin-bottom: 0.75rem !important; + } + .mxn-home-header-3 { + margin-right: -0.75rem !important; + margin-left: -0.75rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-4 { + margin: 1rem !important; + } + .mt-home-header-4 { + margin-top: 1rem !important; + } + .mr-home-header-4 { + margin-right: 1rem !important; + } + .mb-home-header-4 { + margin-bottom: 1rem !important; + } + .ml-home-header-4 { + margin-left: 1rem !important; + } + .mx-home-header-4 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .my-home-header-4 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .mxn-home-header-4 { + margin-right: -1rem !important; + margin-left: -1rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-5 { + margin: 1.5rem !important; + } + .mt-home-header-5 { + margin-top: 1.5rem !important; + } + .mr-home-header-5 { + margin-right: 1.5rem !important; + } + .mb-home-header-5 { + margin-bottom: 1.5rem !important; + } + .ml-home-header-5 { + margin-left: 1.5rem !important; + } + .mx-home-header-5 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .my-home-header-5 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .mxn-home-header-5 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-6 { + margin: 2rem !important; + } + .mt-home-header-6 { + margin-top: 2rem !important; + } + .mr-home-header-6 { + margin-right: 2rem !important; + } + .mb-home-header-6 { + margin-bottom: 2rem !important; + } + .ml-home-header-6 { + margin-left: 2rem !important; + } + .mx-home-header-6 { + margin-right: 2rem !important; + margin-left: 2rem !important; + } + .my-home-header-6 { + margin-top: 2rem !important; + margin-bottom: 2rem !important; + } + .mxn-home-header-6 { + margin-right: -2rem !important; + margin-left: -2rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-7 { + margin: 2.5rem !important; + } + .mt-home-header-7 { + margin-top: 2.5rem !important; + } + .mr-home-header-7 { + margin-right: 2.5rem !important; + } + .mb-home-header-7 { + margin-bottom: 2.5rem !important; + } + .ml-home-header-7 { + margin-left: 2.5rem !important; + } + .mx-home-header-7 { + margin-right: 2.5rem !important; + margin-left: 2.5rem !important; + } + .my-home-header-7 { + margin-top: 2.5rem !important; + margin-bottom: 2.5rem !important; + } + .mxn-home-header-7 { + margin-right: -2.5rem !important; + margin-left: -2.5rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-8 { + margin: 3rem !important; + } + .mt-home-header-8 { + margin-top: 3rem !important; + } + .mr-home-header-8 { + margin-right: 3rem !important; + } + .mb-home-header-8 { + margin-bottom: 3rem !important; + } + .ml-home-header-8 { + margin-left: 3rem !important; + } + .mx-home-header-8 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .my-home-header-8 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .mxn-home-header-8 { + margin-right: -3rem !important; + margin-left: -3rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-9 { + margin: 3.5rem !important; + } + .mt-home-header-9 { + margin-top: 3.5rem !important; + } + .mr-home-header-9 { + margin-right: 3.5rem !important; + } + .mb-home-header-9 { + margin-bottom: 3.5rem !important; + } + .ml-home-header-9 { + margin-left: 3.5rem !important; + } + .mx-home-header-9 { + margin-right: 3.5rem !important; + margin-left: 3.5rem !important; + } + .my-home-header-9 { + margin-top: 3.5rem !important; + margin-bottom: 3.5rem !important; + } + .mxn-home-header-9 { + margin-right: -3.5rem !important; + margin-left: -3.5rem !important; + } +} +@media (min-width: 800px) { + .m-home-header-10 { + margin: 4rem !important; + } + .mt-home-header-10 { + margin-top: 4rem !important; + } + .mr-home-header-10 { + margin-right: 4rem !important; + } + .mb-home-header-10 { + margin-bottom: 4rem !important; + } + .ml-home-header-10 { + margin-left: 4rem !important; + } + .mx-home-header-10 { + margin-right: 4rem !important; + margin-left: 4rem !important; + } + .my-home-header-10 { + margin-top: 4rem !important; + margin-bottom: 4rem !important; + } + .mxn-home-header-10 { + margin-right: -4rem !important; + margin-left: -4rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-0 { + margin: 0 !important; + } + .mt-home-imgs-max-0 { + margin-top: 0 !important; + } + .mr-home-imgs-max-0 { + margin-right: 0 !important; + } + .mb-home-imgs-max-0 { + margin-bottom: 0 !important; + } + .ml-home-imgs-max-0 { + margin-left: 0 !important; + } + .mx-home-imgs-max-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .my-home-imgs-max-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .mxn-home-imgs-max-0 { + margin-right: -0 !important; + margin-left: -0 !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-1 { + margin: 0.25rem !important; + } + .mt-home-imgs-max-1 { + margin-top: 0.25rem !important; + } + .mr-home-imgs-max-1 { + margin-right: 0.25rem !important; + } + .mb-home-imgs-max-1 { + margin-bottom: 0.25rem !important; + } + .ml-home-imgs-max-1 { + margin-left: 0.25rem !important; + } + .mx-home-imgs-max-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .my-home-imgs-max-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .mxn-home-imgs-max-1 { + margin-right: -0.25rem !important; + margin-left: -0.25rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-2 { + margin: 0.5rem !important; + } + .mt-home-imgs-max-2 { + margin-top: 0.5rem !important; + } + .mr-home-imgs-max-2 { + margin-right: 0.5rem !important; + } + .mb-home-imgs-max-2 { + margin-bottom: 0.5rem !important; + } + .ml-home-imgs-max-2 { + margin-left: 0.5rem !important; + } + .mx-home-imgs-max-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .my-home-imgs-max-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .mxn-home-imgs-max-2 { + margin-right: -0.5rem !important; + margin-left: -0.5rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-3 { + margin: 0.75rem !important; + } + .mt-home-imgs-max-3 { + margin-top: 0.75rem !important; + } + .mr-home-imgs-max-3 { + margin-right: 0.75rem !important; + } + .mb-home-imgs-max-3 { + margin-bottom: 0.75rem !important; + } + .ml-home-imgs-max-3 { + margin-left: 0.75rem !important; + } + .mx-home-imgs-max-3 { + margin-right: 0.75rem !important; + margin-left: 0.75rem !important; + } + .my-home-imgs-max-3 { + margin-top: 0.75rem !important; + margin-bottom: 0.75rem !important; + } + .mxn-home-imgs-max-3 { + margin-right: -0.75rem !important; + margin-left: -0.75rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-4 { + margin: 1rem !important; + } + .mt-home-imgs-max-4 { + margin-top: 1rem !important; + } + .mr-home-imgs-max-4 { + margin-right: 1rem !important; + } + .mb-home-imgs-max-4 { + margin-bottom: 1rem !important; + } + .ml-home-imgs-max-4 { + margin-left: 1rem !important; + } + .mx-home-imgs-max-4 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .my-home-imgs-max-4 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .mxn-home-imgs-max-4 { + margin-right: -1rem !important; + margin-left: -1rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-5 { + margin: 1.5rem !important; + } + .mt-home-imgs-max-5 { + margin-top: 1.5rem !important; + } + .mr-home-imgs-max-5 { + margin-right: 1.5rem !important; + } + .mb-home-imgs-max-5 { + margin-bottom: 1.5rem !important; + } + .ml-home-imgs-max-5 { + margin-left: 1.5rem !important; + } + .mx-home-imgs-max-5 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .my-home-imgs-max-5 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .mxn-home-imgs-max-5 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-6 { + margin: 2rem !important; + } + .mt-home-imgs-max-6 { + margin-top: 2rem !important; + } + .mr-home-imgs-max-6 { + margin-right: 2rem !important; + } + .mb-home-imgs-max-6 { + margin-bottom: 2rem !important; + } + .ml-home-imgs-max-6 { + margin-left: 2rem !important; + } + .mx-home-imgs-max-6 { + margin-right: 2rem !important; + margin-left: 2rem !important; + } + .my-home-imgs-max-6 { + margin-top: 2rem !important; + margin-bottom: 2rem !important; + } + .mxn-home-imgs-max-6 { + margin-right: -2rem !important; + margin-left: -2rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-7 { + margin: 2.5rem !important; + } + .mt-home-imgs-max-7 { + margin-top: 2.5rem !important; + } + .mr-home-imgs-max-7 { + margin-right: 2.5rem !important; + } + .mb-home-imgs-max-7 { + margin-bottom: 2.5rem !important; + } + .ml-home-imgs-max-7 { + margin-left: 2.5rem !important; + } + .mx-home-imgs-max-7 { + margin-right: 2.5rem !important; + margin-left: 2.5rem !important; + } + .my-home-imgs-max-7 { + margin-top: 2.5rem !important; + margin-bottom: 2.5rem !important; + } + .mxn-home-imgs-max-7 { + margin-right: -2.5rem !important; + margin-left: -2.5rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-8 { + margin: 3rem !important; + } + .mt-home-imgs-max-8 { + margin-top: 3rem !important; + } + .mr-home-imgs-max-8 { + margin-right: 3rem !important; + } + .mb-home-imgs-max-8 { + margin-bottom: 3rem !important; + } + .ml-home-imgs-max-8 { + margin-left: 3rem !important; + } + .mx-home-imgs-max-8 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .my-home-imgs-max-8 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .mxn-home-imgs-max-8 { + margin-right: -3rem !important; + margin-left: -3rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-9 { + margin: 3.5rem !important; + } + .mt-home-imgs-max-9 { + margin-top: 3.5rem !important; + } + .mr-home-imgs-max-9 { + margin-right: 3.5rem !important; + } + .mb-home-imgs-max-9 { + margin-bottom: 3.5rem !important; + } + .ml-home-imgs-max-9 { + margin-left: 3.5rem !important; + } + .mx-home-imgs-max-9 { + margin-right: 3.5rem !important; + margin-left: 3.5rem !important; + } + .my-home-imgs-max-9 { + margin-top: 3.5rem !important; + margin-bottom: 3.5rem !important; + } + .mxn-home-imgs-max-9 { + margin-right: -3.5rem !important; + margin-left: -3.5rem !important; + } +} +@media (min-width: 2880px) { + .m-home-imgs-max-10 { + margin: 4rem !important; + } + .mt-home-imgs-max-10 { + margin-top: 4rem !important; + } + .mr-home-imgs-max-10 { + margin-right: 4rem !important; + } + .mb-home-imgs-max-10 { + margin-bottom: 4rem !important; + } + .ml-home-imgs-max-10 { + margin-left: 4rem !important; + } + .mx-home-imgs-max-10 { + margin-right: 4rem !important; + margin-left: 4rem !important; + } + .my-home-imgs-max-10 { + margin-top: 4rem !important; + margin-bottom: 4rem !important; + } + .mxn-home-imgs-max-10 { + margin-right: -4rem !important; + margin-left: -4rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-0 { + margin: 0 !important; + } + .mt-mobile-m-0 { + margin-top: 0 !important; + } + .mr-mobile-m-0 { + margin-right: 0 !important; + } + .mb-mobile-m-0 { + margin-bottom: 0 !important; + } + .ml-mobile-m-0 { + margin-left: 0 !important; + } + .mx-mobile-m-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .my-mobile-m-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .mxn-mobile-m-0 { + margin-right: -0 !important; + margin-left: -0 !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-1 { + margin: 0.25rem !important; + } + .mt-mobile-m-1 { + margin-top: 0.25rem !important; + } + .mr-mobile-m-1 { + margin-right: 0.25rem !important; + } + .mb-mobile-m-1 { + margin-bottom: 0.25rem !important; + } + .ml-mobile-m-1 { + margin-left: 0.25rem !important; + } + .mx-mobile-m-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .my-mobile-m-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .mxn-mobile-m-1 { + margin-right: -0.25rem !important; + margin-left: -0.25rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-2 { + margin: 0.5rem !important; + } + .mt-mobile-m-2 { + margin-top: 0.5rem !important; + } + .mr-mobile-m-2 { + margin-right: 0.5rem !important; + } + .mb-mobile-m-2 { + margin-bottom: 0.5rem !important; + } + .ml-mobile-m-2 { + margin-left: 0.5rem !important; + } + .mx-mobile-m-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .my-mobile-m-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .mxn-mobile-m-2 { + margin-right: -0.5rem !important; + margin-left: -0.5rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-3 { + margin: 0.75rem !important; + } + .mt-mobile-m-3 { + margin-top: 0.75rem !important; + } + .mr-mobile-m-3 { + margin-right: 0.75rem !important; + } + .mb-mobile-m-3 { + margin-bottom: 0.75rem !important; + } + .ml-mobile-m-3 { + margin-left: 0.75rem !important; + } + .mx-mobile-m-3 { + margin-right: 0.75rem !important; + margin-left: 0.75rem !important; + } + .my-mobile-m-3 { + margin-top: 0.75rem !important; + margin-bottom: 0.75rem !important; + } + .mxn-mobile-m-3 { + margin-right: -0.75rem !important; + margin-left: -0.75rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-4 { + margin: 1rem !important; + } + .mt-mobile-m-4 { + margin-top: 1rem !important; + } + .mr-mobile-m-4 { + margin-right: 1rem !important; + } + .mb-mobile-m-4 { + margin-bottom: 1rem !important; + } + .ml-mobile-m-4 { + margin-left: 1rem !important; + } + .mx-mobile-m-4 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .my-mobile-m-4 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .mxn-mobile-m-4 { + margin-right: -1rem !important; + margin-left: -1rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-5 { + margin: 1.5rem !important; + } + .mt-mobile-m-5 { + margin-top: 1.5rem !important; + } + .mr-mobile-m-5 { + margin-right: 1.5rem !important; + } + .mb-mobile-m-5 { + margin-bottom: 1.5rem !important; + } + .ml-mobile-m-5 { + margin-left: 1.5rem !important; + } + .mx-mobile-m-5 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .my-mobile-m-5 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .mxn-mobile-m-5 { + margin-right: -1.5rem !important; + margin-left: -1.5rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-6 { + margin: 2rem !important; + } + .mt-mobile-m-6 { + margin-top: 2rem !important; + } + .mr-mobile-m-6 { + margin-right: 2rem !important; + } + .mb-mobile-m-6 { + margin-bottom: 2rem !important; + } + .ml-mobile-m-6 { + margin-left: 2rem !important; + } + .mx-mobile-m-6 { + margin-right: 2rem !important; + margin-left: 2rem !important; + } + .my-mobile-m-6 { + margin-top: 2rem !important; + margin-bottom: 2rem !important; + } + .mxn-mobile-m-6 { + margin-right: -2rem !important; + margin-left: -2rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-7 { + margin: 2.5rem !important; + } + .mt-mobile-m-7 { + margin-top: 2.5rem !important; + } + .mr-mobile-m-7 { + margin-right: 2.5rem !important; + } + .mb-mobile-m-7 { + margin-bottom: 2.5rem !important; + } + .ml-mobile-m-7 { + margin-left: 2.5rem !important; + } + .mx-mobile-m-7 { + margin-right: 2.5rem !important; + margin-left: 2.5rem !important; + } + .my-mobile-m-7 { + margin-top: 2.5rem !important; + margin-bottom: 2.5rem !important; + } + .mxn-mobile-m-7 { + margin-right: -2.5rem !important; + margin-left: -2.5rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-8 { + margin: 3rem !important; + } + .mt-mobile-m-8 { + margin-top: 3rem !important; + } + .mr-mobile-m-8 { + margin-right: 3rem !important; + } + .mb-mobile-m-8 { + margin-bottom: 3rem !important; + } + .ml-mobile-m-8 { + margin-left: 3rem !important; + } + .mx-mobile-m-8 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .my-mobile-m-8 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .mxn-mobile-m-8 { + margin-right: -3rem !important; + margin-left: -3rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-9 { + margin: 3.5rem !important; + } + .mt-mobile-m-9 { + margin-top: 3.5rem !important; + } + .mr-mobile-m-9 { + margin-right: 3.5rem !important; + } + .mb-mobile-m-9 { + margin-bottom: 3.5rem !important; + } + .ml-mobile-m-9 { + margin-left: 3.5rem !important; + } + .mx-mobile-m-9 { + margin-right: 3.5rem !important; + margin-left: 3.5rem !important; + } + .my-mobile-m-9 { + margin-top: 3.5rem !important; + margin-bottom: 3.5rem !important; + } + .mxn-mobile-m-9 { + margin-right: -3.5rem !important; + margin-left: -3.5rem !important; + } +} +@media (min-width: 375px) { + .m-mobile-m-10 { + margin: 4rem !important; + } + .mt-mobile-m-10 { + margin-top: 4rem !important; + } + .mr-mobile-m-10 { + margin-right: 4rem !important; + } + .mb-mobile-m-10 { + margin-bottom: 4rem !important; + } + .ml-mobile-m-10 { + margin-left: 4rem !important; + } + .mx-mobile-m-10 { + margin-right: 4rem !important; + margin-left: 4rem !important; + } + .my-mobile-m-10 { + margin-top: 4rem !important; + margin-bottom: 4rem !important; + } + .mxn-mobile-m-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 (min-width: 800px) { + .p-home-header-0 { + padding: 0 !important; + } + .pt-home-header-0 { + padding-top: 0 !important; + } + .pr-home-header-0 { + padding-right: 0 !important; + } + .pb-home-header-0 { + padding-bottom: 0 !important; + } + .pl-home-header-0 { + padding-left: 0 !important; + } + .px-home-header-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .py-home-header-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .p-home-header-1 { + padding: 0.25rem !important; + } + .pt-home-header-1 { + padding-top: 0.25rem !important; + } + .pr-home-header-1 { + padding-right: 0.25rem !important; + } + .pb-home-header-1 { + padding-bottom: 0.25rem !important; + } + .pl-home-header-1 { + padding-left: 0.25rem !important; + } + .px-home-header-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .py-home-header-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .p-home-header-2 { + padding: 0.5rem !important; + } + .pt-home-header-2 { + padding-top: 0.5rem !important; + } + .pr-home-header-2 { + padding-right: 0.5rem !important; + } + .pb-home-header-2 { + padding-bottom: 0.5rem !important; + } + .pl-home-header-2 { + padding-left: 0.5rem !important; + } + .px-home-header-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .py-home-header-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .p-home-header-3 { + padding: 0.75rem !important; + } + .pt-home-header-3 { + padding-top: 0.75rem !important; + } + .pr-home-header-3 { + padding-right: 0.75rem !important; + } + .pb-home-header-3 { + padding-bottom: 0.75rem !important; + } + .pl-home-header-3 { + padding-left: 0.75rem !important; + } + .px-home-header-3 { + padding-right: 0.75rem !important; + padding-left: 0.75rem !important; + } + .py-home-header-3 { + padding-top: 0.75rem !important; + padding-bottom: 0.75rem !important; + } + .p-home-header-4 { + padding: 1rem !important; + } + .pt-home-header-4 { + padding-top: 1rem !important; + } + .pr-home-header-4 { + padding-right: 1rem !important; + } + .pb-home-header-4 { + padding-bottom: 1rem !important; + } + .pl-home-header-4 { + padding-left: 1rem !important; + } + .px-home-header-4 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .py-home-header-4 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .p-home-header-5 { + padding: 1.5rem !important; + } + .pt-home-header-5 { + padding-top: 1.5rem !important; + } + .pr-home-header-5 { + padding-right: 1.5rem !important; + } + .pb-home-header-5 { + padding-bottom: 1.5rem !important; + } + .pl-home-header-5 { + padding-left: 1.5rem !important; + } + .px-home-header-5 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .py-home-header-5 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .p-home-header-6 { + padding: 2rem !important; + } + .pt-home-header-6 { + padding-top: 2rem !important; + } + .pr-home-header-6 { + padding-right: 2rem !important; + } + .pb-home-header-6 { + padding-bottom: 2rem !important; + } + .pl-home-header-6 { + padding-left: 2rem !important; + } + .px-home-header-6 { + padding-right: 2rem !important; + padding-left: 2rem !important; + } + .py-home-header-6 { + padding-top: 2rem !important; + padding-bottom: 2rem !important; + } + .p-home-header-7 { + padding: 2.5rem !important; + } + .pt-home-header-7 { + padding-top: 2.5rem !important; + } + .pr-home-header-7 { + padding-right: 2.5rem !important; + } + .pb-home-header-7 { + padding-bottom: 2.5rem !important; + } + .pl-home-header-7 { + padding-left: 2.5rem !important; + } + .px-home-header-7 { + padding-right: 2.5rem !important; + padding-left: 2.5rem !important; + } + .py-home-header-7 { + padding-top: 2.5rem !important; + padding-bottom: 2.5rem !important; + } + .p-home-header-8 { + padding: 3rem !important; + } + .pt-home-header-8 { + padding-top: 3rem !important; + } + .pr-home-header-8 { + padding-right: 3rem !important; + } + .pb-home-header-8 { + padding-bottom: 3rem !important; + } + .pl-home-header-8 { + padding-left: 3rem !important; + } + .px-home-header-8 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-home-header-8 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .p-home-header-9 { + padding: 3.5rem !important; + } + .pt-home-header-9 { + padding-top: 3.5rem !important; + } + .pr-home-header-9 { + padding-right: 3.5rem !important; + } + .pb-home-header-9 { + padding-bottom: 3.5rem !important; + } + .pl-home-header-9 { + padding-left: 3.5rem !important; + } + .px-home-header-9 { + padding-right: 3.5rem !important; + padding-left: 3.5rem !important; + } + .py-home-header-9 { + padding-top: 3.5rem !important; + padding-bottom: 3.5rem !important; + } + .p-home-header-10 { + padding: 4rem !important; + } + .pt-home-header-10 { + padding-top: 4rem !important; + } + .pr-home-header-10 { + padding-right: 4rem !important; + } + .pb-home-header-10 { + padding-bottom: 4rem !important; + } + .pl-home-header-10 { + padding-left: 4rem !important; + } + .px-home-header-10 { + padding-right: 4rem !important; + padding-left: 4rem !important; + } + .py-home-header-10 { + padding-top: 4rem !important; + padding-bottom: 4rem !important; + } +} +@media (min-width: 2880px) { + .p-home-imgs-max-0 { + padding: 0 !important; + } + .pt-home-imgs-max-0 { + padding-top: 0 !important; + } + .pr-home-imgs-max-0 { + padding-right: 0 !important; + } + .pb-home-imgs-max-0 { + padding-bottom: 0 !important; + } + .pl-home-imgs-max-0 { + padding-left: 0 !important; + } + .px-home-imgs-max-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .py-home-imgs-max-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .p-home-imgs-max-1 { + padding: 0.25rem !important; + } + .pt-home-imgs-max-1 { + padding-top: 0.25rem !important; + } + .pr-home-imgs-max-1 { + padding-right: 0.25rem !important; + } + .pb-home-imgs-max-1 { + padding-bottom: 0.25rem !important; + } + .pl-home-imgs-max-1 { + padding-left: 0.25rem !important; + } + .px-home-imgs-max-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .py-home-imgs-max-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .p-home-imgs-max-2 { + padding: 0.5rem !important; + } + .pt-home-imgs-max-2 { + padding-top: 0.5rem !important; + } + .pr-home-imgs-max-2 { + padding-right: 0.5rem !important; + } + .pb-home-imgs-max-2 { + padding-bottom: 0.5rem !important; + } + .pl-home-imgs-max-2 { + padding-left: 0.5rem !important; + } + .px-home-imgs-max-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .py-home-imgs-max-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .p-home-imgs-max-3 { + padding: 0.75rem !important; + } + .pt-home-imgs-max-3 { + padding-top: 0.75rem !important; + } + .pr-home-imgs-max-3 { + padding-right: 0.75rem !important; + } + .pb-home-imgs-max-3 { + padding-bottom: 0.75rem !important; + } + .pl-home-imgs-max-3 { + padding-left: 0.75rem !important; + } + .px-home-imgs-max-3 { + padding-right: 0.75rem !important; + padding-left: 0.75rem !important; + } + .py-home-imgs-max-3 { + padding-top: 0.75rem !important; + padding-bottom: 0.75rem !important; + } + .p-home-imgs-max-4 { + padding: 1rem !important; + } + .pt-home-imgs-max-4 { + padding-top: 1rem !important; + } + .pr-home-imgs-max-4 { + padding-right: 1rem !important; + } + .pb-home-imgs-max-4 { + padding-bottom: 1rem !important; + } + .pl-home-imgs-max-4 { + padding-left: 1rem !important; + } + .px-home-imgs-max-4 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .py-home-imgs-max-4 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .p-home-imgs-max-5 { + padding: 1.5rem !important; + } + .pt-home-imgs-max-5 { + padding-top: 1.5rem !important; + } + .pr-home-imgs-max-5 { + padding-right: 1.5rem !important; + } + .pb-home-imgs-max-5 { + padding-bottom: 1.5rem !important; + } + .pl-home-imgs-max-5 { + padding-left: 1.5rem !important; + } + .px-home-imgs-max-5 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .py-home-imgs-max-5 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .p-home-imgs-max-6 { + padding: 2rem !important; + } + .pt-home-imgs-max-6 { + padding-top: 2rem !important; + } + .pr-home-imgs-max-6 { + padding-right: 2rem !important; + } + .pb-home-imgs-max-6 { + padding-bottom: 2rem !important; + } + .pl-home-imgs-max-6 { + padding-left: 2rem !important; + } + .px-home-imgs-max-6 { + padding-right: 2rem !important; + padding-left: 2rem !important; + } + .py-home-imgs-max-6 { + padding-top: 2rem !important; + padding-bottom: 2rem !important; + } + .p-home-imgs-max-7 { + padding: 2.5rem !important; + } + .pt-home-imgs-max-7 { + padding-top: 2.5rem !important; + } + .pr-home-imgs-max-7 { + padding-right: 2.5rem !important; + } + .pb-home-imgs-max-7 { + padding-bottom: 2.5rem !important; + } + .pl-home-imgs-max-7 { + padding-left: 2.5rem !important; + } + .px-home-imgs-max-7 { + padding-right: 2.5rem !important; + padding-left: 2.5rem !important; + } + .py-home-imgs-max-7 { + padding-top: 2.5rem !important; + padding-bottom: 2.5rem !important; + } + .p-home-imgs-max-8 { + padding: 3rem !important; + } + .pt-home-imgs-max-8 { + padding-top: 3rem !important; + } + .pr-home-imgs-max-8 { + padding-right: 3rem !important; + } + .pb-home-imgs-max-8 { + padding-bottom: 3rem !important; + } + .pl-home-imgs-max-8 { + padding-left: 3rem !important; + } + .px-home-imgs-max-8 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-home-imgs-max-8 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .p-home-imgs-max-9 { + padding: 3.5rem !important; + } + .pt-home-imgs-max-9 { + padding-top: 3.5rem !important; + } + .pr-home-imgs-max-9 { + padding-right: 3.5rem !important; + } + .pb-home-imgs-max-9 { + padding-bottom: 3.5rem !important; + } + .pl-home-imgs-max-9 { + padding-left: 3.5rem !important; + } + .px-home-imgs-max-9 { + padding-right: 3.5rem !important; + padding-left: 3.5rem !important; + } + .py-home-imgs-max-9 { + padding-top: 3.5rem !important; + padding-bottom: 3.5rem !important; + } + .p-home-imgs-max-10 { + padding: 4rem !important; + } + .pt-home-imgs-max-10 { + padding-top: 4rem !important; + } + .pr-home-imgs-max-10 { + padding-right: 4rem !important; + } + .pb-home-imgs-max-10 { + padding-bottom: 4rem !important; + } + .pl-home-imgs-max-10 { + padding-left: 4rem !important; + } + .px-home-imgs-max-10 { + padding-right: 4rem !important; + padding-left: 4rem !important; + } + .py-home-imgs-max-10 { + padding-top: 4rem !important; + padding-bottom: 4rem !important; + } +} +@media (min-width: 375px) { + .p-mobile-m-0 { + padding: 0 !important; + } + .pt-mobile-m-0 { + padding-top: 0 !important; + } + .pr-mobile-m-0 { + padding-right: 0 !important; + } + .pb-mobile-m-0 { + padding-bottom: 0 !important; + } + .pl-mobile-m-0 { + padding-left: 0 !important; + } + .px-mobile-m-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .py-mobile-m-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .p-mobile-m-1 { + padding: 0.25rem !important; + } + .pt-mobile-m-1 { + padding-top: 0.25rem !important; + } + .pr-mobile-m-1 { + padding-right: 0.25rem !important; + } + .pb-mobile-m-1 { + padding-bottom: 0.25rem !important; + } + .pl-mobile-m-1 { + padding-left: 0.25rem !important; + } + .px-mobile-m-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .py-mobile-m-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .p-mobile-m-2 { + padding: 0.5rem !important; + } + .pt-mobile-m-2 { + padding-top: 0.5rem !important; + } + .pr-mobile-m-2 { + padding-right: 0.5rem !important; + } + .pb-mobile-m-2 { + padding-bottom: 0.5rem !important; + } + .pl-mobile-m-2 { + padding-left: 0.5rem !important; + } + .px-mobile-m-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .py-mobile-m-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .p-mobile-m-3 { + padding: 0.75rem !important; + } + .pt-mobile-m-3 { + padding-top: 0.75rem !important; + } + .pr-mobile-m-3 { + padding-right: 0.75rem !important; + } + .pb-mobile-m-3 { + padding-bottom: 0.75rem !important; + } + .pl-mobile-m-3 { + padding-left: 0.75rem !important; + } + .px-mobile-m-3 { + padding-right: 0.75rem !important; + padding-left: 0.75rem !important; + } + .py-mobile-m-3 { + padding-top: 0.75rem !important; + padding-bottom: 0.75rem !important; + } + .p-mobile-m-4 { + padding: 1rem !important; + } + .pt-mobile-m-4 { + padding-top: 1rem !important; + } + .pr-mobile-m-4 { + padding-right: 1rem !important; + } + .pb-mobile-m-4 { + padding-bottom: 1rem !important; + } + .pl-mobile-m-4 { + padding-left: 1rem !important; + } + .px-mobile-m-4 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .py-mobile-m-4 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .p-mobile-m-5 { + padding: 1.5rem !important; + } + .pt-mobile-m-5 { + padding-top: 1.5rem !important; + } + .pr-mobile-m-5 { + padding-right: 1.5rem !important; + } + .pb-mobile-m-5 { + padding-bottom: 1.5rem !important; + } + .pl-mobile-m-5 { + padding-left: 1.5rem !important; + } + .px-mobile-m-5 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .py-mobile-m-5 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .p-mobile-m-6 { + padding: 2rem !important; + } + .pt-mobile-m-6 { + padding-top: 2rem !important; + } + .pr-mobile-m-6 { + padding-right: 2rem !important; + } + .pb-mobile-m-6 { + padding-bottom: 2rem !important; + } + .pl-mobile-m-6 { + padding-left: 2rem !important; + } + .px-mobile-m-6 { + padding-right: 2rem !important; + padding-left: 2rem !important; + } + .py-mobile-m-6 { + padding-top: 2rem !important; + padding-bottom: 2rem !important; + } + .p-mobile-m-7 { + padding: 2.5rem !important; + } + .pt-mobile-m-7 { + padding-top: 2.5rem !important; + } + .pr-mobile-m-7 { + padding-right: 2.5rem !important; + } + .pb-mobile-m-7 { + padding-bottom: 2.5rem !important; + } + .pl-mobile-m-7 { + padding-left: 2.5rem !important; + } + .px-mobile-m-7 { + padding-right: 2.5rem !important; + padding-left: 2.5rem !important; + } + .py-mobile-m-7 { + padding-top: 2.5rem !important; + padding-bottom: 2.5rem !important; + } + .p-mobile-m-8 { + padding: 3rem !important; + } + .pt-mobile-m-8 { + padding-top: 3rem !important; + } + .pr-mobile-m-8 { + padding-right: 3rem !important; + } + .pb-mobile-m-8 { + padding-bottom: 3rem !important; + } + .pl-mobile-m-8 { + padding-left: 3rem !important; + } + .px-mobile-m-8 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-mobile-m-8 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .p-mobile-m-9 { + padding: 3.5rem !important; + } + .pt-mobile-m-9 { + padding-top: 3.5rem !important; + } + .pr-mobile-m-9 { + padding-right: 3.5rem !important; + } + .pb-mobile-m-9 { + padding-bottom: 3.5rem !important; + } + .pl-mobile-m-9 { + padding-left: 3.5rem !important; + } + .px-mobile-m-9 { + padding-right: 3.5rem !important; + padding-left: 3.5rem !important; + } + .py-mobile-m-9 { + padding-top: 3.5rem !important; + padding-bottom: 3.5rem !important; + } + .p-mobile-m-10 { + padding: 4rem !important; + } + .pt-mobile-m-10 { + padding-top: 4rem !important; + } + .pr-mobile-m-10 { + padding-right: 4rem !important; + } + .pb-mobile-m-10 { + padding-bottom: 4rem !important; + } + .pl-mobile-m-10 { + padding-left: 4rem !important; + } + .px-mobile-m-10 { + padding-right: 4rem !important; + padding-left: 4rem !important; + } + .py-mobile-m-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: #1464A5; + background-color: #fff; + left: auto; + top: auto; + width: 30%; + height: auto; + overflow: auto; + margin: 10px 35%; + padding: 5px; + border-radius: 15px; + border: 4px solid #1464A5; + text-align: center; + font-size: 1.2em; + z-index: 999; +} + +div.opaque { + background-color: #fff; +} + +p.highlight, blockquote.highlight { + background: rgba(149, 147, 150, 0.2); + border-left: 4px solid #27262b; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + padding: 0.8rem; +} +p.highlight > .highlight-title, blockquote.highlight > .highlight-title { + color: #27262b; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} + +p.highlight-title, blockquote.highlight-title { + background: rgba(149, 147, 150, 0.2); + border-left: 4px solid #27262b; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + padding: 0.8rem; +} +p.highlight-title > p:first-child, blockquote.highlight-title > p:first-child { + margin-top: 0; + margin-bottom: 0; + color: #27262b; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} + +blockquote.highlight { + margin-left: 0; + margin-right: 0; +} +blockquote.highlight > p:first-child { + margin-top: 0; +} +blockquote.highlight > p:last-child { + margin-bottom: 0; +} + +blockquote.highlight-title { + margin-left: 0; + margin-right: 0; +} +blockquote.highlight-title > p:nth-child(2) { + margin-top: 0; +} +blockquote.highlight-title > p:last-child { + margin-bottom: 0; +} + +p.important, blockquote.important { + background: rgba(149, 147, 150, 0.2); + border-left: 4px solid #27262b; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + padding: 0.8rem; +} +p.important::before, blockquote.important::before { + color: #27262b; + content: "Important"; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} +p.important > .important-title, blockquote.important > .important-title { + color: #27262b; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} + +p.important-title, blockquote.important-title { + background: rgba(149, 147, 150, 0.2); + border-left: 4px solid #27262b; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + padding: 0.8rem; +} +p.important-title > p:first-child, blockquote.important-title > p:first-child { + margin-top: 0; + margin-bottom: 0; + color: #27262b; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} + +blockquote.important { + margin-left: 0; + margin-right: 0; +} +blockquote.important > p:first-child { + margin-top: 0; +} +blockquote.important > p:last-child { + margin-bottom: 0; +} + +blockquote.important-title { + margin-left: 0; + margin-right: 0; +} +blockquote.important-title > p:nth-child(2) { + margin-top: 0; +} +blockquote.important-title > p:last-child { + margin-bottom: 0; +} + +p.note, blockquote.note { + background: rgba(227, 236, 244, 0.2); + border-left: 4px solid #1464A5; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + padding: 0.8rem; +} +p.note::before, blockquote.note::before { + color: #1464A5; + content: "Note"; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} +p.note > .note-title, blockquote.note > .note-title { + color: #1464A5; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} + +p.note-title, blockquote.note-title { + background: rgba(227, 236, 244, 0.2); + border-left: 4px solid #1464A5; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + padding: 0.8rem; +} +p.note-title > p:first-child, blockquote.note-title > p:first-child { + margin-top: 0; + margin-bottom: 0; + color: #1464A5; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} + +blockquote.note { + margin-left: 0; + margin-right: 0; +} +blockquote.note > p:first-child { + margin-top: 0; +} +blockquote.note > p:last-child { + margin-bottom: 0; +} + +blockquote.note-title { + margin-left: 0; + margin-right: 0; +} +blockquote.note-title > p:nth-child(2) { + margin-top: 0; +} +blockquote.note-title > p:last-child { + margin-bottom: 0; +} + +p.warning, blockquote.warning { + background: rgba(247, 126, 126, 0.2); + border-left: 4px solid #dd2e2e; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + padding: 0.8rem; +} +p.warning::before, blockquote.warning::before { + color: #dd2e2e; + content: "Warning"; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} +p.warning > .warning-title, blockquote.warning > .warning-title { + color: #dd2e2e; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} + +p.warning-title, blockquote.warning-title { + background: rgba(247, 126, 126, 0.2); + border-left: 4px solid #dd2e2e; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + padding: 0.8rem; +} +p.warning-title > p:first-child, blockquote.warning-title > p:first-child { + margin-top: 0; + margin-bottom: 0; + color: #dd2e2e; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 0.75em; + padding-bottom: 0.125rem; +} + +blockquote.warning { + margin-left: 0; + margin-right: 0; +} +blockquote.warning > p:first-child { + margin-top: 0; +} +blockquote.warning > p:last-child { + margin-bottom: 0; +} + +blockquote.warning-title { + margin-left: 0; + margin-right: 0; +} +blockquote.warning-title > p:nth-child(2) { + margin-top: 0; +} +blockquote.warning-title > p:last-child { + margin-bottom: 0; +} + +@media (min-width: 50rem) { + #main-header { + position: sticky; + top: 0; + z-index: 999; + } +} +.text-primary-900 { + color: #063679; +} + +.home-body { + padding: 0; +} +.home-body .home { + display: flex; + flex-direction: column; + justify-content: start; + align-items: center; + background-color: #293239; + color: rgba(255, 255, 255, 0.7411764706); + width: 100%; + height: 100%; +} +.home-body .home a { + color: #A8C7FF; + text-decoration: underline; + text-decoration-color: #A8C7FF; +} +.home-body .home a:hover { + text-decoration-color: #A8C7FF; +} +.home-body .home .text-primary-400 { + color: #4286FF; +} +.home-body .home .white-87 { + color: rgba(255, 255, 255, 0.8705882353); +} +.home-body .home .introduction { + background-image: url("../../assets/images/home/bg-landing.png"); + background-repeat: repeat; + display: flex; + flex-direction: column; + justify-content: start; + height: 100%; + width: 100%; +} +@media (min-width: 66.5rem) { + .home-body .home .introduction { + height: 100vh; + } +} +.home-body .home .introduction .header { + display: flex; + flex-direction: column; + align-items: center; + justify-content: space-around; + gap: 28px; + padding: 0 5rem 28px; + background-color: #293239; + box-shadow: 0 1px 12px rgba(255, 255, 255, 0.5); +} +@media (min-width: 800px) { + .home-body .home .introduction .header { + height: 96px; + padding-bottom: 0; + flex-direction: row; + } +} +.home-body .home .introduction .header .site-header { + flex-shrink: 0; + height: fit-content; + width: fit-content; + border: none; + align-items: end; +} +@media (min-width: 800px) { + .home-body .home .introduction .header .site-header { + align-items: center; + } +} +.home-body .home .introduction .header .site-header img { + width: 140px; + height: 41px; +} +.home-body .home .introduction .header .main-header { + display: flex; + align-items: center; + justify-content: space-between; + background-color: #293239; + border: none; + gap: 28px; + flex-grow: 1; + flex-direction: column; + height: inherit; + padding: 0; +} +@media (min-width: 800px) { + .home-body .home .introduction .header .main-header { + flex-direction: row; + } +} +.home-body .home .introduction .header .main-header .search { + display: flex; + height: 48px; + max-height: 48px; + width: auto; + min-width: 243px; + padding: 0; + justify-content: center; + position: static; +} +@media (min-width: 800px) { + .home-body .home .introduction .header .main-header .search { + min-width: 194px; + } +} +.home-body .home .introduction .header .main-header .search .search-input-wrap { + position: relative; + top: 0; + width: 100%; + max-width: 33.5rem; + border-radius: 4px; + box-shadow: none; + height: 100%; +} +.home-body .home .introduction .header .main-header .search .search-input-wrap .search-input { + font-size: 0.875rem; + padding-left: 2.5rem; + background-color: transparent; + border: solid 1px rgba(255, 255, 255, 0.7411764706); + border-radius: 4px; + color: white; +} +.home-body .home .introduction .header .main-header .search .search-input-wrap .search-label { + padding-left: 1rem; +} +.home-body .home .introduction .header .main-header .search .search-input-wrap .search-label > svg { + color: rgba(255, 255, 255, 0.7411764706); +} +.home-body .home .introduction .header .main-header .search .search-results { + left: auto; + background-color: #293239; + box-shadow: 0 1px 12px rgba(255, 255, 255, 0.5); + width: -webkit-fill-available; + min-width: 243px; + max-width: 243px; + max-height: calc(100vh - 4rem); + top: 128px; +} +@media (min-width: 800px) { + .home-body .home .introduction .header .main-header .search .search-results { + top: 48px; + min-width: 194px; + max-width: 33.5rem; + max-height: calc(100vh - 200%); + } +} +.home-body .home .introduction .header .main-header .header-custom-main { + display: flex; + column-gap: 28px; + color: rgba(255, 255, 255, 0.7411764706); +} +.home-body .home .introduction .header .main-header .header-custom-main .select { + border-style: none; + background-color: transparent; + color: inherit; +} +.home-body .home .introduction .header .main-header .header-custom-main .select > option { + background-color: #293239; + color: inherit; +} +.home-body .home .introduction .header .main-header .header-custom-main .github-div { + flex-shrink: 0; +} +.home-body .home .introduction .header .main-header .header-custom-main .github-div > a { + display: flex; + align-items: center; +} +.home-body .home .introduction .header .main-header .header-custom-main .docs-div { + display: flex; + justify-content: center; + align-items: center; + border: solid 1px rgba(255, 255, 255, 0.7411764706); + border-radius: 4px; + width: 80px; + height: 40px; + font-size: 16px; +} +.home-body .home .introduction .header .main-header .header-custom-main > a { + text-decoration: none; + color: rgba(255, 255, 255, 0.7411764706); +} +.home-body .home .introduction .landing { + display: flex; + flex-direction: column; + row-gap: 28px; + align-items: center; + height: calc(100% - 226.5px); +} +@media (min-width: 800px) { + .home-body .home .introduction .landing { + height: calc(100% - 96px); + } +} +@media (min-width: 66.5rem) { + .home-body .home .introduction .landing { + justify-content: space-around; + flex-direction: row; + } +} +.home-body .home .introduction .landing .text { + display: flex; + flex-direction: column; + justify-content: center; + align-items: inherit; + padding: 28px 28px 0; +} +@media (min-width: 66.5rem) { + .home-body .home .introduction .landing .text { + max-width: 50%; + } +} +.home-body .home .introduction .landing .text > h4 { + align-self: start; + margin: 0; +} +.home-body .home .introduction .landing .text > p { + color: #4286FF; +} +.home-body .home .introduction .landing .text .home-btn { + font-size: 14px; + color: #FFF; + background-color: #2876FF; + height: 42px; + width: 148px; + align-self: start; +} +.home-body .home .introduction .landing .text .home-btn:hover { + background-color: #1A51C8; +} +.home-body .home .introduction .landing .banner { + display: flex; + justify-content: center; + flex-shrink: 1; + padding: 0 28px; +} +@media (min-width: 66.5rem) { + .home-body .home .introduction .landing .banner { + max-width: fit-content; + } +} +.home-body .home .top-content { + display: flex; + flex-direction: column; + width: 80%; +} +.home-body .home .custom-content { + display: flex; + flex-direction: row; + column-gap: 28px; + width: 80%; +} +.home-body .home .custom-content .code-icon { + width: 72px; + height: 72px; + position: absolute; + transform: translate(-100px, 12px); +} +.home-body .home .custom-content .code-icon-container { + display: flex; + flex-direction: column; + min-width: 72px; +} +@media (min-width: 2880px) { + .home-body .home .custom-content .code-icon-container { + display: none; + } +} +.home-body .home .custom-content .main-content { + display: flex; + flex-direction: column; +} +.home-body .home .custom-content .main-content .section-text { + display: flex; + flex-direction: column; + flex-grow: 1; + flex-shrink: 0; +} +.home-body .home .custom-content .main-content .section-text > h1 { + font-weight: 600; +} +.home-body .home .custom-content .main-content .link-div { + display: flex; + flex-direction: row; + flex-grow: 1; + flex-shrink: 0; + margin-top: 82px; + margin-bottom: 124px; + transform: translateX(-150px); +} +@media (min-width: 375px) { + .home-body .home .custom-content .main-content .link-div { + transform: translateX(-100px); + } +} +@media (min-width: 800px) { + .home-body .home .custom-content .main-content .link-div { + transform: translateX(0); + } +} +.home-body .home .custom-content .main-content .link-div .link-img { + display: flex; + flex-shrink: 0; + align-items: start; +} +.home-body .home .custom-content .main-content .link-div .link-img > img { + width: 100%; + max-width: 168px; + aspect-ratio: 1/1; +} +.home-body .home .custom-content .main-content .link-div .link-texts { + display: flex; + flex-direction: column; + flex-shrink: 1; + flex-grow: 1; +} +.home-body .home .custom-content .main-content .link-div .link-texts > h2 { + display: flex; + flex-direction: column; + justify-content: center; + min-height: 168px; + font-weight: 600; + color: #75A7FF; + margin: 0; +} +.home-body .home .custom-content .main-content .productivity-section { + display: flex; + flex-direction: column; +} +.home-body .home .custom-content .main-content .productivity-section .productivity-img-container { + display: flex; + align-items: center; + height: 38.9105058366vw; + max-height: 1119px; +} +@media (min-width: 2880px) { + .home-body .home .custom-content .main-content .productivity-section .productivity-img-container { + width: calc(80vw - 122px); + justify-content: center; + } +} +.home-body .home .custom-content .main-content .productivity-section .productivity-img-container > img { + max-width: 2888px; + width: 100%; + position: absolute; + left: 0; + aspect-ratio: 2880/1119; +} +@media (min-width: 2880px) { + .home-body .home .custom-content .main-content .productivity-section .productivity-img-container > img { + position: static; + } +} +.home-body .home .custom-content .main-content .productivity-section .productivity-img-container .productivity-bottom { + display: flex; + flex-direction: column; + justify-items: start; + flex-shrink: 0; + flex-grow: 1; +} +.home-body .home .custom-content .main-content .performance-section { + display: flex; + flex-direction: column; +} +.home-body .home .custom-content .main-content .performance-section .performance-img-container { + display: flex; + align-items: center; + height: 44.0528634361vw; + max-height: 1268px; +} +@media (min-width: 2880px) { + .home-body .home .custom-content .main-content .performance-section .performance-img-container { + width: calc(80vw - 122px); + justify-content: center; + } +} +.home-body .home .custom-content .main-content .performance-section .performance-img-container > img { + max-width: 2888px; + width: 100%; + position: absolute; + left: 0; + aspect-ratio: 2888/1268; +} +@media (min-width: 2880px) { + .home-body .home .custom-content .main-content .performance-section .performance-img-container > img { + position: static; + } +} +.home-body .home .custom-content .main-content .performance-section .performance-bottom { + display: flex; + flex-grow: 1; + flex-shrink: 0; + flex-direction: column; + justify-items: start; +} +.home-body .home .custom-content .main-content .performance-section .performance-bottom > a { + align-self: start; +} +.home-body .home .custom-content .main-content .components-section { + display: flex; + flex-direction: column; +} +.home-body .home .custom-content .main-content .components-section .components-img-container { + display: flex; + align-items: center; + height: 44.0528634361vw; + max-height: 1268px; +} +@media (min-width: 2880px) { + .home-body .home .custom-content .main-content .components-section .components-img-container { + width: calc(80vw - 122px); + justify-content: center; + } +} +.home-body .home .custom-content .main-content .components-section .components-img-container > img { + max-width: 2888px; + width: 100%; + position: absolute; + left: 0; + aspect-ratio: 2888/1268; +} +@media (min-width: 2880px) { + .home-body .home .custom-content .main-content .components-section .components-img-container > img { + position: static; + } +} +.home-body .home .custom-content .main-content .addons-section { + display: flex; + flex-direction: column; +} +.home-body .home .custom-content .main-content .addons-section .addons-img-container { + display: flex; + align-items: center; + height: 44.0528634361vw; + max-height: 1268px; +} +@media (min-width: 2880px) { + .home-body .home .custom-content .main-content .addons-section .addons-img-container { + width: calc(80vw - 122px); + justify-content: center; + } +} +.home-body .home .custom-content .main-content .addons-section .addons-img-container > img { + max-width: 2888px; + width: 100%; + position: absolute; + left: 0; + aspect-ratio: 2888/1268; +} +@media (min-width: 2880px) { + .home-body .home .custom-content .main-content .addons-section .addons-img-container > img { + position: static; + } +} +.home-body .home .footer-img-container { + display: flex; + align-items: center; + height: 13.3333333333vw; + max-height: 512px; + width: 100%; +} +.home-body .home .footer-img-container > img { + max-width: 3840px; + width: 100%; + aspect-ratio: 3840/512; +} +.home-body .home .home-footer { + display: flex; + flex-direction: column; + align-items: center; + justify-content: space-between; + width: 100%; + padding: 28px 5rem; + text-align: justify; + border-top: solid 1px rgba(255, 255, 255, 0.7411764706); +} +@media (min-width: 66.5rem) { + .home-body .home .home-footer { + flex-direction: row; + height: 74px; + padding: 0 5rem; + } +} +.home-body .home .home-footer > img { + width: 140px; + height: 41px; +} +.home-body .home .home-footer > div { + display: flex; + flex-direction: row; + justify-content: space-between; + align-items: center; + width: 200px; +} +.home-body .home .home-footer > div > a { + color: rgba(255, 255, 255, 0.8588235294); + display: flex; + align-items: center; + text-decoration: none; +} + +@media (min-width: 50rem) { + .breadcrumbs { + margin-top: -1rem; + } +} +.breadcrumbs ol { + padding-left: 0; + margin-bottom: 0.75rem; + margin-top: 0; + list-style: none; +} +.breadcrumbs li { + display: table-cell; + font-size: 0.6875rem !important; +} +@media (min-width: 31.25rem) { + .breadcrumbs li { + font-size: 0.75rem !important; + } +} +.breadcrumbs li::before { + display: none; +} +.breadcrumbs li::after { + display: inline-block; + margin-right: 0.5rem; + margin-left: 0.5rem; + color: #959396; + content: "/"; +} +.breadcrumbs li:last-child::after { + content: ""; +} + +@media (min-width: 50rem) { + .breadcrumbs { + margin-top: -1rem; + } +} +.breadcrumbs ol { + padding-left: 0; + margin-bottom: 0.75rem; + list-style: none; +} +.breadcrumbs li { + display: table-cell; + font-size: 0.6875rem !important; +} +@media (min-width: 31.25rem) { + .breadcrumbs li { + font-size: 0.75rem !important; + } +} +.breadcrumbs li::before { + display: none; +} +.breadcrumbs li::after { + display: inline-block; + margin-right: 0.5rem; + margin-left: 0.5rem; + color: #959396; + content: "/"; +} +.breadcrumbs li:last-child::after { + content: ""; +} + +.btn:focus { + display: none; +} + +a:not([class]) { + text-decoration: underline; + text-decoration-color: #eeebee; + text-underline-offset: 2px; +} +a:not([class]):hover { + text-decoration-color: rgba(20, 100, 165, 0.2392156863); +} + +.nav-list .nav-list-item .nav-list-expander { + color: rgba(0, 0, 0, 0.7411764706); +} +.nav-list .nav-list-item .nav-list-link { + color: rgba(0, 0, 0, 0.7411764706); + font-weight: 400; + font-size: 1rem; +} +.nav-list .nav-list-item .nav-list-link.active { + color: rgba(0, 0, 0, 0.6); + font-weight: 500; + font-size: 1rem; +} + +.header-custom-main { + display: flex; + place-content: end; + column-gap: 10px; + margin-right: 33px; +} +.header-custom-main .toggle-theme { + cursor: pointer; +} +.header-custom-main .select { + width: 65px; + border-style: none; + background: transparent; + color: rgba(0, 0, 0, 0.7411764706); +} +.header-custom-main .github-div { + display: flex; + align-items: center; +} +.header-custom-main .github-div > a { + display: flex; + align-items: center; +} + +.o-tab { + overflow: hidden; + padding-bottom: 6px; + /* Style the buttons that are used to open the tab content */ + /* Change background color of buttons on hover */ + /* Create an active/current tablink class */ +} +.o-tab button { + background-color: inherit; + float: left; + border: none; + outline: none; + cursor: pointer; + padding: 12px 16px; + transition: 0.3s; + font-size: 0.8em; + color: rgba(0, 0, 0, 0.7411764706); +} +.o-tab button:hover { + background-color: #93c7f2; + border-bottom: 2px solid rgba(20, 100, 165, 0.2392156863); +} +.o-tab button.active { + border-bottom: 2px solid #1464A5; +} + +/* Style the tab content */ +.o-tabcontent { + display: none; + padding: 6px 12px; + -webkit-animation: fadeEffect 1s; + animation: fadeEffect 1s; +} + +.o-component-container .list__item { + padding-right: 0; +} +.o-component-container .list__item .archive__item-excerpt { + margin-top: 0; + font-size: 0.75em; +} + +.mdl-data-table td[required] p.first:after { + content: " *"; +} + +.attributes-list { + overflow: hidden; +} +.attributes-list li { + display: inline-block; + width: 50%; + margin-bottom: 0.25em; + font-size: 18px; +} + +@media (min-width: 66.5rem) { + .sidebar__right { + position: fixed; + top: 64px; + right: 0px; + max-height: calc(100% - 112px); + min-height: fit-content; + width: 360px; + padding-bottom: 20px; + border: 1px solid #eeebee; + border-radius: 4px; + overflow: auto; + background-color: #fff; + z-index: 999; + } +} + +.toc { + letter-spacing: 1px; +} +.toc .nav__title { + margin: 0; + cursor: pointer; + font-size: 1rem !important; + color: #1464A5; + background-color: #E3ECF4; + padding: 20px 14px 8px 14px; +} +@media (min-width: 31.25rem) { + .toc .nav__title { + font-size: 1.125rem !important; + } +} +@media (min-width: 50rem) { + .toc .nav__title { + font-size: 0.875rem !important; + } +} +@media (min-width: 50rem) and (min-width: 31.25rem) { + .toc .nav__title { + font-size: 1rem !important; + } +} + +.toc__menu { + font-size: 1rem !important; + margin: 0; + padding: 0; + width: 100%; + list-style: none; +} +@media (min-width: 31.25rem) { + .toc__menu { + font-size: 1.125rem !important; + } +} +@media (min-width: 50rem) { + .toc__menu { + font-size: 0.875rem !important; + } +} +@media (min-width: 50rem) and (min-width: 31.25rem) { + .toc__menu { + font-size: 1rem !important; + } +} +.toc__menu li::before { + content: "" !important; +} +.toc__menu a { + text-decoration: none; + color: rgba(0, 0, 0, 0.7411764706); +} +.toc__menu a.active { + color: rgba(0, 0, 0, 0.6); + font-weight: 500; +} +.toc__menu li ul > li a { + padding-top: 0.2rem; + border: none; + text-transform: none; +} + +@media (min-width: 66.5rem) { + .toc__menu.collapsed { + display: none; + } + .toc.collapsed { + position: relative; + bottom: 14px; + } + .nav__title.collapsed { + height: 100%; + font-size: 15px !important; + cursor: pointer; + } + .sidebar__right.collapsed { + padding-bottom: 0px; + width: auto; + transform: rotate(270deg); + transform-origin: bottom right; + top: 34px; + height: 30px; + overflow: hidden; + color: #E3ECF4; + } +} +.faq-posts .panel-default .panel-heading { + color: #333; + background-color: #f5f5f5; + border-color: #ddd; + border-bottom: 0; + padding: 10px 30px; + border-bottom: 1px solid transparent; + border-top-left-radius: 3px; + border-top-right-radius: 3px; + cursor: pointer; +} +.faq-posts .panel-default .panel-title { + margin-top: 0; + margin-bottom: 0; + font-size: 16px; + color: inherit; +} +.faq-posts .panel-body { + padding: 15px; + font-size: 14px; +} +.faq-posts .panel { + margin-bottom: 0; + border-radius: 4px; + background-color: #fff; + border: 1px solid transparent; +} +.faq-posts .collapse { + display: none; +} +.faq-posts .collapse.in { + display: block; +} +.faq-posts .collapsing { + position: relative; + height: 0; + overflow: hidden; + -webkit-transition-property: height, visibility; + transition-property: height, visibility; + -webkit-transition-duration: 0.35s; + transition-duration: 0.35s; + -webkit-transition-timing-function: ease; + transition-timing-function: ease; +} + +.multicolumn { + display: flex; +} + +.toggle-tree-btn { + all: unset; + margin-bottom: 10px; + align-self: flex-end; + position: absolute; + top: 8px; + right: 8px; + cursor: pointer; +} + +.multicolumnleft { + flex: 1; + max-width: 100%; + overflow-x: auto; + padding: 0 40px 0 0; + box-sizing: border-box; + position: relative; +} + +.multicolumnnopadding { + flex: 1; + max-width: 100%; + overflow-x: auto; + padding: 0 0 0 0; + box-sizing: border-box; +} + +.multicolumnright { + box-sizing: border-box; + border-left: 1px solid #ccc; + transition: width 0.3s ease; + overflow-x: auto; +} +.multicolumnright.collapsed { + width: 0; + overflow: hidden; + padding: 0; + border-left: none; + display: none; +} + +.verticalDivider { + border-left: 1px solid #F2F3F3; + padding-right: 10px; + margin-left: 10px; +} + +.jstreeloader ul > li::before { + content: ""; +} + +i.jstree-icon { + filter: invert(36%) sepia(8%) saturate(440%) hue-rotate(218deg) brightness(90%) contrast(85%); +} + +@media (min-width: 50rem) and ((max-width: 66.5rem)) { + #top.main { + max-width: none; + margin-left: 16.5rem; + } +} +@media (min-width: 66.5rem) { + body > div.side-bar { + min-width: auto; + width: auto; + } + #top.main { + max-width: none; + margin-left: calc(16.5rem + 1px); + } +} +@media (min-width: 50rem) { + div.side-bar { + width: 16.5rem; + } +} +table { + table-layout: auto; + width: 120px; +} + +.menu-card-container { + display: grid; + grid-gap: 32px; + grid-template-columns: repeat(auto-fit, minmax(auto, 368px)); + grid-auto-rows: minmax(auto, 208px); + justify-content: center; +} +.menu-card-container a { + text-decoration: none; + color: rgba(0, 0, 0, 0.7411764706); +} +.menu-card-container a .menu-card { + display: flex; + flex-direction: column; + justify-content: space-between; + height: 100%; + border-radius: 2px; + border: 1px solid rgba(0, 0, 0, 0.1215686275); +} +.menu-card-container a .menu-card .image-container { + display: flex; + justify-content: center; + align-items: center; + height: 128px; + border-bottom: 1px solid rgba(0, 0, 0, 0.1215686275); + background-color: #F6F6F6; +} +.menu-card-container a .menu-card .bottom-image { + height: 80px; + vertical-align: middle; + text-align: start; + padding: 28px 18px; + margin: 0; + overflow: hidden; + text-overflow: ellipsis; + font-weight: 500; +} +.menu-card-container a .menu-card .text-container { + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + height: 88px; + font-weight: 500; + border-bottom: 1px solid rgba(0, 0, 0, 0.1215686275); +} +.menu-card-container a .menu-card .text-container > p { + width: 100%; + display: flex; + align-items: center; + justify-content: center; + text-align: start; + padding: 10px 18px 0 18px; + height: 100%; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + color: rgba(0, 0, 0, 0.8705882353); +} +.menu-card-container a .menu-card .bottom-title { + height: 118px; + text-overflow: ellipsis; + overflow: hidden; + text-align: start; + margin: 0; + padding: 20px 18px; +} +.menu-card-container a:hover .menu-card .bottom-title { + background-color: #C7DAE9; +} +.menu-card-container a:hover .menu-card .bottom-image { + background-color: #C7DAE9; +} + +.menu-card-container:has(.image-container) { + grid-template-columns: repeat(auto-fit, minmax(auto, 272px)); + grid-auto-rows: minmax(208px, auto); +} + +.hidden { + display: none; +} + +.menuitem-badge { + background: linear-gradient(-180deg, #1464A5 0, rgba(20, 100, 165, 0.2392156863) 100%); + color: #fff; + padding: 2px 4px; + vertical-align: middle; + border-radius: 3px; + font-weight: 700; + font-size: 11px; + position: relative; + top: -1px; +} + +img[alt="Alt text"] { + width: 100%; +} + +/*# sourceMappingURL=just-the-docs-ontimize-light.css.map */ \ No newline at end of file diff --git a/v3/assets/css/just-the-docs-ontimize-light.css.map b/v3/assets/css/just-the-docs-ontimize-light.css.map new file mode 100644 index 0000000..7621e1b --- /dev/null +++ b/v3/assets/css/just-the-docs-ontimize-light.css.map @@ -0,0 +1 @@ +{"version":3,"sourceRoot":"","sources":["../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/vendor/OneLightJekyll/syntax.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/vendor/normalize.scss/normalize.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/base.scss","../../_sass/color_schemes/ontimize-light.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/support/mixins/_typography.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/support/mixins/_layout.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/support/_variables.scss","../../_sass/custom/setup.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/layout.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/content.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/navigation.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/typography.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/labels.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/buttons.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/support/mixins/_buttons.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/search.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/tables.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/code.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/utilities/_colors.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/utilities/_layout.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/utilities/_typography.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/utilities/_lists.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/utilities/_spacing.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/print.scss","../../vendor/bundle/ruby/2.7.0/gems/just-the-docs-0.6.2/_sass/skiptomain.scss","just-the-docs-ontimize-light.scss","../../_sass/custom/custom.scss"],"names":[],"mappings":";AAEA;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;EACA;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,OK5DY;EL6DZ;;;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;;;AM7GF;EACE;EACA;EACA;EACA,kBDSK;;AFDH;EGZJ;IAOI;IACA;IACA,OFwFW;IEvFX;IACA;IACA;;;AHAA;EGZJ;IAgBI;IACA,WF+EQ;;;;ADpFR;EGSJ;IAEI;IACA,WF6EY;IE5EZ,aFwEW;;;ADrFX;EGSJ;IAUI;AAAA;AAAA;AAAA;;;;AAQJ;EHhBE,eCuDK;EDtDL,cCsDK;EEpCL,aFoCK;EEnCL,gBFmCK;;ADlEH;EG2BJ;IHZI,eCqDG;IDpDH,cCoDG;;;ADpEH;EG2BJ;IAOI,aFkCG;IEjCH,gBFiCG;;;;AE7BP;EACE;EACA;EACA,kBDzCK;;AFDH;EGuCJ;IAMI;IACA;IACA,QF2CY;IE1CZ,kBFjCI;IEkCJ;;;AAGF;EACE;;AHrDA;EGoDF;IAII;;;;AAKN;AAAA;AAAA;EAGE;;AHhEE;EG6DJ;AAAA;AAAA;IAMI,OFiBQ;;;;AEbZ;EACE;;AAEA;EACE;;AH3EA;EGuEJ;IAQI;IACA,aFVG;IEWH,gBFfG;IEgBH;IACA;;;;AAIJ;EACE;EACA,YFCc;EEAd;;AH1FE;EGuFJ;IAMI,QFHY;IEIZ,YFJY;IEKZ;;;;AAIJ;EHxFE,eCuDK;EDtDL,cCsDK;EEoCL;EACA;EACA;EACA;EACA,aFzCK;EE0CL,gBF1CK;EE2CL,OFxFY;EFOZ;;AC3BE;EGmGJ;IHpFI,eCqDG;IDpDH,cCoDG;;;ADpEH;EGmGJ;IJrEI;IACA,aEpCuB;;;ADKvB;EGmGJ;IAaI,aFhDG;IEiDH,gBFjDG;;;;AEsDL;EACE;EACA;EACA;EACA;EACA;EACA;;;AAIJ;EACE;EACA;EACA,SFjEK;EEkEL;;;AHpIE;EGwIF;IACE;;;AAIJ;EACE;;;AAQF;EACE;;;AASF;EACE;EACA,gBF1FM;EE2FN;;AHnKE;EGgKJ;IAMI;IACA;;;;AAMJ;EHlKE,eCuDK;EDtDL,cCsDK;EE8GL;EACA;EACA;EACA,aFjHK;EEkHL,gBFlHK;EEmHL,OFrKY;EFrBZ;;ACKE;EG6KJ;IH9JI,eCqDG;IDpDH,cCoDG;;;ADpEH;EG6KJ;IJ/KI;;;ACEA;EG6KJ;IAYI;IACA;;;;AAIJ;EACE,OF5HK;EE6HL,QF7HK;EE8HL,OD9MY;;;AEId;EACE,aHEoB;;AGApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAOE;;AAGF;EACE;EACA;;AAGF;AAAA;EAEE;;AAIA;EACE,YH+CC;;AG3CL;EACE;EACA;;AAEA;EACE;;AAEA;EACE;EACA;EACA;EACA,OHfM;EGgBN;EACA;EL9BN;;ACHE;EI2BE;ILrBF;;;ACNA;EI2BE;IAUI;;;AAIJ;EACE;;AAGE;EACE;EACA;;AAOV;EACE;;AAGE;EACE;EACA;EACA,OH7CM;EG8CN;;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,OHnFG;EGoFH;EACA,eHzFG;EG0FH,cH1FG;EG2FH;;AJ1JA;EImJF;IAUI;IACA;;;AAGF;EACE;EACA;EACA;EACA,OFlLQ;EEmLR;;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,YH9JG;;;AI3EP;EACE;EACA;EACA;EACA;;AAEA;ENgBA;EMbE;EACA;;ALCA;EKLF;INmBE;;;ACdA;EKLF;INQA;;;ACHE;EKLF;INWE;;;AMDA;EACE;EACA,YJ+DC;EI9DD,aJuDC;EItDD,gBJsDC;EIrDD;EAEE,eJ0DD;EIzDC,cJqDD;;ADlEH;EKKA;IAeI,YJgDD;II/CC;IAEE,eJ6CH;II5CG,cJ4CH;;;AIrCD;EACE,OJkCD;EIjCC,QJiCD;EIhCC;;AAGF;EACE;EACA;;AAGF;EAEE;;AASJ;EACE;EAEE;EAGF,OJWC;EIVD,QJUC;EITD;EACA,OH3EQ;;AFaV;EKqDA;IAYI,OJGD;IIFC,QJED;IIDC;;;AAGF;EACE;;AAQA;EACE;;AAKN;EACE;EACA,cJtBC;EIuBD;;AAEA;EACE;;AAEA;EACE,OHrGA;;AGwGF;EACE,OHzGA;;AG+GJ;EAEI;;AAMJ;EACE;;;AAMR;EACE;EACA;EACA;EACA;EACA;ENjIA;;ACKE;EKuHJ;INzHI;;;ACEA;EKuHJ;IASI;IACA,YJ/DG;IIgEH;;EAEA;IACE;;;;AAMJ;EACE;;AAEA;EACE;;AAGE;EACE,OHhKI;;AGmKN;EACE,OHpKI;;;AG6Kd;EACE;EACA;ENvKA;;ACKE;EKgKJ;INlKI;;;AMuKF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;ALjLA;EKgKJ;IAqBI,eJnHG;;;;ADlEH;EK2LJ;IAEI;;;;AAIJ;EACE;EACA,eJlIK;EImIL;;;AAGF;EACE;EN7MA;;ACKE;EKuMJ;INzMI;;;AM6MF;EACE;;AAGF;EACE;EACA,cJjJG;EIkJH,aJlJG;EImJH,OJnMU;EIoMV;;AAIA;EACE;;;ACpON;AAAA;EPwDE;EACA,aEnDyB;EKFzB;;ANOE;EMXJ;AAAA;IP4DI;;;;AOrDJ;AAAA;AAAA;EP+BE;;AC3BE;EMJJ;AAAA;AAAA;IPkCI;IACA,aEpCuB;;;;AKO3B;AAAA;EPiBE;;ACnBE;EMEJ;AAAA;IPoBI;;;;AOfJ;AAAA;EPZE;EOgBA;EACA;EACA;;ANbE;EMOJ;AAAA;IPTI;;;;AOkBJ;EACE;;;AAGF;AAAA;EPjBE;;ACHE;EMoBJ;AAAA;IPdI;;;;AOmBJ;AAAA;EP9BE;;ACKE;EMyBJ;AAAA;IP3BI;;;;AOgCJ;EPnCE;;ACKE;EM8BJ;IPhCI;;;;AOoCJ;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;ACvDF;AAAA;EAEE;EACA;EACA,cNoEK;EMnEL,aNmEK;EMlEL,ONiBM;EMhBN;EACA;EACA,kBN6BS;EFnCT;EQSA;;APJE;EORJ;AAAA;IRMI;;;;AQSJ;EACE,kBN2BU;;;AMxBZ;EACE,kBNcW;;;AMXb;EACE,kBN2BQ;;;AMxBV;EACE,ONFY;EMGZ,kBNkBW;;;AOlDb;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,ONXY;EMYZ;EACA;EACA;EACA,kBNDK;EMEL;EACA,ePyEc;EOxEd,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,ONzEY;EM0EZ;EACA;;AAEA;EAIE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA,YACE;;AAIJ;EAEE;;;AAIJ;ECnGE,OR0BM;EQzBN;EACA;EACA,YACE;;AAGF;EAEE,ORiBI;EQhBJ;EACA;;AAGF;EAGE;EACA;EACA;;AAGF;EACE;;;ADgFJ;ECvGE,OR0BM;EQzBN;EACA;EACA,YACE;;AAGF;EAEE,ORiBI;EQhBJ;EACA;;AAGF;EAGE;EACA;EACA;;AAGF;EACE;;;ADoFJ;EC3GE,OR0BM;EQzBN;EACA;EACA,YACE;;AAGF;EAEE,ORiBI;EQhBJ;EACA;;AAGF;EAGE;EACA;EACA;;AAGF;EACE;;;ADwFJ;EC/GE,OR0BM;EQzBN;EACA;EACA,YACE;;AAGF;EAEE,ORiBI;EQhBJ;EACA;;AAGF;EAGE;EACA;EACA;;AAGF;EACE;;;AD4FJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AE3HF;EACE;EACA;EACA;EACA,QTgFM;ES/EN,STuEK;EStEL;;AVME;EUZJ;IASI;IACA;IACA;IACA;IACA;;;;AAIJ;EACE;EACA;EACA,QT8DK;ES7DL;EACA,eTmEc;ESlEd,YACE;EAEF;;AVdE;EUKJ;IAYI;IACA;IACA,WTwEmB;ISvEnB;IACA;IACA;IACA;;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA,OThBY;ESiBZ,kBTnBM;ESoBN;EACA;EACA;EACA;EACA;;AVvCE;EU2BJ;IAeI;IACA;IACA,kBT7BI;IS8BJ;;;AAGF;EACE;;AAEA;EACE,ORjEQ;;;AQsEd;EACE;EACA;EACA;EACA,cTKK;;ADlEH;EUyDJ;IAOI,cTIG;ISHH;;;AAGF;EACE;EACA;EACA;EACA,OTxDU;;;AS4Dd;EACE;EACA;EACA;EACA;EACA;EACA;EACA,kBTpEM;ESqEN,4BTPc;ESQd,2BTRc;ESSd,YACE;;AVvFA;EU4EJ;IAeI;IACA,OTDmB;ISEnB;;;;AAIJ;EACE;EACA,eTpCK;ESqCL;EXzFA;;ACXE;EUiGJ;IXnFI;;;ACdA;EUiGJ;IX9FE;;;ACHE;EUiGJ;IX3FI;;;;AWsGJ;EACE;EACA;;;AAGF;EACE;EACA;;AAEA;EAEE,kBZhIa;;;AYoIjB;EACE;EACA,aT7DK;ES8DL,gBT9DK;;ADhEH;EU2HJ;IAMI;IACA;IACA,eTnEG;ISoEH;;;;AAIJ;EACE;EACA;EACA;;AAEA;EACE;EX3IF;;ACHE;EU6IF;IXvIE;;;ACNA;EU6IF;IXlJA;;;ACKE;EU6IF;IX/IE;;;AWwJF;EACE,OTrFG;ESsFH,QTtFG;ESuFH,cTzFG;ES0FH,ORvKU;EQwKV;;AAGF;EACE;;;AAIJ;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA,OT5JY;ES6JZ;EACA;EX3LA;;ACaE;EUwKJ;IXlLI;;;;AW4LJ;EACE;EACA,aTpHK;ESqHL,gBTrHK;ESsHL,cTpHK;ESqHL,aTvHK;ESwHL,OTxKY;ESyKZ;EACA,aT9GO;ES+GP,mBTrKY;EF3BZ;;ACKE;EUkLJ;IXpLI;;;ACEA;EUkLJ;IAaI;IACA;IACA,cTjIG;ISkIH;IACA;;;;AAIJ;EACE,YTzIK;;;AS4IP;EACE;;;AAGF;EACE;EX7MA;;ACHE;EU+MJ;IXzMI;;;;AW8MJ;EACE;EACA,OTpJK;ESqJL,QTrJK;ESsJL;EACA,OTlJK;ESmJL,QTnJK;ESoJL,kBT5MM;ES6MN;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,QTvLI;ESwLJ;;AVhQA;EU8PF;IAKI,OTxKiB;ISyKjB,YACE;;;AAKN;EACE,kBT5PI;;ADfJ;EU0QF;IAII;;;AV9QF;EUkRF;IAEI;;;AAIJ;EACE;;AAGF;EACE;EACA;EACA;EACA,YACE;;AVjSF;EUuSA;IACE;IACA;IACA;;;AAIJ;EACE,aTvOI;;ADxEJ;EU8SF;IAII;;;;AC7TN;EACE;EACA;EACA;EACA,eV0EK;EUzEL;EACA,eVkFc;EUjFd,YACE;;;AAIJ;EACE;EACA;EACA;;;AAGF;AAAA;EZJE;EYQA;EACA;EACA,kBVEM;EUDN;EACA;;AXfE;EWOJ;AAAA;IZDI;;;AYWF;AAAA;EACE;;;AAOE;AAAA;EAEE;;AAGF;EACE,gBVkCD;;;AU3BL;EACE;;;AC9CF;EACE;EACA;EACA,kBVKG;EUJH;EACA,eX+EY;;;AW1EhB;EACE,cXkBY;;;AWiCd;AAAA;AAAA;EAGE;EACA,eXMK;EWLL,kBV3DK;EU4DL,eXgBc;EWfd;EACA;EACA;EACA;;AAIA;AAAA;AAAA;EACE,OXLG;EWMH;EACA;EACA;EACA;EACA;EACA,kBV3EG;EU4EH,OX5DU;EW6DV;;AAEA;AAAA;AAAA;EACE,MXhEQ;;AWmEV;AAAA;AAAA;EACE;EACA;EACA;;AAGF;AAAA;AAAA;EACE;;AAMF;AAAA;AAAA;EACE;EACA;;;AASJ;EACE;EACA,SX7CG;EW8CH;EACA;;AAGF;AAAA;EAEE;EACA;EACA;;;AAUJ;EAGE;EACA,eXpEK;;AW2CL;EACE;EACA,SX7CG;EW8CH;EACA;;AAGF;AAAA;EAEE;EACA;EACA;;;AAwBF;AAAA;EAEE;EACA,SXjFG;EWkFH;EACA;;;AAQJ;EACE;EACA;EACA;EACA;;AAEA;AAAA;EbvKA;Ea2KE;EACA;EACA,kBVvKG;EUwKH;;AZzKA;EYkKF;AAAA;IbpKE;;;Aa8KF;EACE;EACA,eX7GG;EW8GH,cX9GG;;AWiHL;EACE;EACA;;;AAKJ;AAAA;EAEE,SX1HK;EW2HL,eX3HK;EW4HL;EACA;EACA,eXlHc;;AWoHd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAIE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAKJ;EACE;EACA;EACA;;;AAIF;AAAA;EAEE,YVxNK;EU6NH,OX7MU;;;AWkNd;EACE,YVnOK;;;AWXP;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;;;AdPE;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;Ad9BJ;EciBE;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;EhBDE;;ACaE;EeZJ;IhBEI;;;;AgBEJ;EhBGE;;ACKE;EeRJ;IhBMI;;;;AgBFJ;EhBOE;;ACHE;EeJJ;IhBUI;;;;AgBNJ;EhBWE;;ACXE;EeAJ;IhBcI;;;;AgBVJ;EhBeE;;ACnBE;EeIJ;IhBkBI;;;;AgBdJ;EhBmBE;;AC3BE;EeQJ;IhBsBI;IACA,aEpCuB;;;;AciB3B;EhBwBE;EACA,aE1CyB;;ADKvB;EeYJ;IhB4BI;;;;AgBxBJ;EhB6BE;EACA,aEnDyB;;ADKvB;EegBJ;IhBiCI;;;;AgB7BJ;EhBkCE;EACA,aE5DyB;;ADKvB;EeoBJ;IhBsCI;;;;AgBlCJ;EhBuCE;EACA,aErEyB;;ADKvB;EewBJ;IhB2CI;;;;AgBvCJ;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE,adxDiB;;;Ac2DnB;EACE,ad1DyB;;;Ac6D3B;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;;;AjBlCA;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;;AjBzEJ;EiB6CE;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;;;AjB7GA;EiBwHE;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;;;AjB/IJ;EiBwHE;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;;;AjB/IJ;EiBwHE;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;;;AjB/IJ;EiBwHE;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;;;AjB/IJ;EiBwHE;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;;;AjB/IJ;EiBwHE;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;;;AjB/IJ;EiBwHE;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;;;AjB/IJ;EiBwHE;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,OjBdY;EiBeZ,kBlBaM;EkBZN;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AClBF;EACE,kBnBkBM;;;AmBjBP;EACG;EACA;EACA,enB4EY;EmB3EZ;EACA;;AAEA;EACE,OnBcQ;EmBbR;EACA;EACA;EACA;EACA;;;AAIN;EACI;EACA;EACA,enB2DY;EmB1DZ;EACA;;AACA;EACE;EACA;EACA,OnBJQ;EmBKR;EACA;EACA;EACA;EACA;;;AAIN;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;AAIJ;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;AAIJ;EACI;EACA;EACA,enBeY;EmBdZ;EACA;;AAEA;EACI,OnB/CM;EmBgDN;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACE,OnBzDQ;EmB0DR;EACA;EACA;EACA;EACA;;;AAIN;EACI;EACA;EACA,enBZY;EmBaZ;EACA;;AACA;EACE;EACA;EACA,OnB3EQ;EmB4ER;EACA;EACA;EACA;EACA;;;AAIN;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;AAIJ;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;AAIJ;EACI;EACA;EACA,enBxDY;EmByDZ;EACA;;AAEA;EACI,OlBvJM;EkBwJN;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACE,OlBjKQ;EkBkKR;EACA;EACA;EACA;EACA;;;AAIN;EACI;EACA;EACA,enBnFY;EmBoFZ;EACA;;AACA;EACE;EACA;EACA,OlBnLQ;EkBoLR;EACA;EACA;EACA;EACA;;;AAIN;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;AAIJ;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;AAIJ;EACI;EACA;EACA,enB/HY;EmBgIZ;EACA;;AAEA;EACI,OnBrKE;EmBsKF;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACE,OnB/KI;EmBgLJ;EACA;EACA;EACA;EACA;;;AAIN;EACI;EACA;EACA,enB1JY;EmB2JZ;EACA;;AACA;EACE;EACA;EACA,OnBjMI;EmBkMJ;EACA;EACA;EACA;EACA;;;AAIN;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;AAIJ;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;ACzRJ;EACE;IACE;IACA;IACA;;;AAKJ;EAEI,OnBTU;;;AmBkBd;EACE;;AAEA;EACE;EACA;EACA;EACA;EACA,kBnBbc;EmBcd;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;ArB7CF;EqBsCA;IAUI;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA,kBnBxDU;EmByDV;;ArB3DJ;EqBmDE;IAWI;IACA;IACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;ArBxEN;EqBmEI;IAQI;;;AAGF;EACE;EACA;;AAIJ;EACE;EACA;EACA;EACA,kBnBtFQ;EmBuFR;EACA;EACA;EACA;EACA;EACA;;ArB9FN;EqBoFI;IAaI;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ArB5GR;EqBoGM;IAWI;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAEA;EACE;;AAKN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ArBrJV;EqB6IQ;IAWI;IACA;IACA;IACA;;;AAKN;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAEA;EACE,kBnBzKE;EmB0KF;;AAIJ;EACE;;AAEA;EACE;EACA;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;;AAMR;EACE;EACA;EACA;EACA;EACA;;ArBjNJ;EqB4ME;IAQI;;;ArBpNN;EqB4ME;IAYI;IACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;ArBjON;EqB4NI;IAQI;;;AAGF;EACE;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAKN;EACE;EACA;EACA;EACA;;ArBlQN;EqB8PI;IAOI;;;AAOR;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;ArBlSJ;EqB+RE;IAMI;;;AAIJ;EACE;EACA;;AAGA;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAKJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;ArBjUN;EqB0TI;IAUI;;;ArBpUR;EqB0TI;IAcI;;;AAGF;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAIJ;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAKN;EACE;EACA;;AAEA;EACE;EACA;EACA;EACA;;ArBjXR;EqB6WM;IAOI;IACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;ArB7XV;EqBiYU;IACE;;;AAIJ;EACE;EACA;EACA;EACA;EACA;;AAKN;EACE;EACA;;AAEA;EACE;EACA;EACA;EACA;;ArBxZR;EqBoZM;IAOI;IACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;ArBpaV;EqBwaU;IACE;;;AAKN;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAKN;EACE;EACA;;AAEA;EACE;EACA;EACA;EACA;;ArBncR;EqB+bM;IAOI;IACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;ArB/cV;EqBmdU;IACE;;;AAMR;EACE;EACA;;AAEA;EACE;EACA;EACA;EACA;;ArBleR;EqB8dM;IAOI;IACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;ArB9eV;EqBkfU;IACE;;;AAQZ;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ArBjhBF;EqBygBA;IAWI;IACA;IACA;;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;;ArBziBN;EqBijBJ;IAEI;;;AAGF;EACE;EACA,epBvfG;EoBwfH;EACA;;AAGF;EACE;EtBnkBF;;ACKE;EqB6jBF;ItB/jBE;;;AsBmkBA;EACE;;AAGF;EACE;EACA,cpBvgBC;EoBwgBD,apBxgBC;EoBygBD,OpBzjBQ;EoB0jBR;;AAIA;EACE;;;ArB/kBJ;EqBslBJ;IAEI;;;AAGF;EACE;EACA,epB5hBG;EoB6hBH;;AAGF;EACE;EtBvmBF;;ACKE;EqBimBF;ItBnmBE;;;AsBumBA;EACE;;AAGF;EACE;EACA,cpB3iBC;EoB4iBD,apB5iBC;EoB6iBD,OpB7lBQ;EoB8lBR;;AAIA;EACE;;;AAQR;EACE;;;AAIF;EACE;EACA,uBpB5mBY;EoB6mBZ;;AAEA;EAEI,uBnBjpBW;;;AmB8pBb;EAEI,OnB9pBE;;AmBsqBN;EAEI,OnBxqBE;EmB+qBJ;EAEA,WpBpqBQ;;AoBsqBR;EAEI,OnBprBA;EmB4rBF;EACA,WpBjrBM;;;AoBwrBd;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;EAGE,OnBrtBI;;AmBiuBR;EACE;EACA;;AAEA;EACE;EACA;;;AAMN;EACE;EACA;AAEA;AAoBA;AAaA;;AAhCA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAGE,OnB7vBI;;AmBswBR;EAEI;EACA;;AAUJ;EAEI;;;AASN;AACA;EACE;EACA;EACA;EACA;;;AAIA;EACE;;AAEA;EACE;EACA;;;AAUE;EACE;;;AAQV;EACE;;AAEA;EACE;EACA;EACA;EACA;;;ArB9zBA;EqBk0BJ;IAGI;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,kBpBh0BI;IoBi0BJ;;;;AAIJ;EACE;;AAEA;EACE;EACA;EtBt0BF;EsB80BI,OnB92BQ;EmB+2BR,kBnB32BO;EmBm3BT;;ArB12BA;EqBu1BF;ItBj0BE;;;ACtBA;EqBu1BF;ItB50BA;;;ACXE;EqBu1BF;ItBz0BE;;;;AsBg2BJ;EtB31BE;EsBm2BA;EACA;EACA;EACA;;ArBz3BE;EqB82BJ;ItBx1BI;;;ACtBA;EqB82BJ;ItBn2BE;;;ACXE;EqB82BJ;ItBh2BI;;;AsB62BF;EACE;;AAGF;EACE;EAGE,OnB34BI;;AmBk5BN;EAGI,OnBp5BE;EmB25BJ;;AAIJ;EACE;EACA;EACA;;;AAMJ;EACE;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;IACA;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;IACA;IAGE,OnBp8BO;;;AmBk9BT;EAEI;EACA;EACA;EAUF;EAEA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAIJ;EACE;EACA;;AAGF;EACE;EACA;EAGE;EAOF;;AAMF;EACE;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIJ;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EAGE;EAOF;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;;;AAIJ;EAGI;EAOF;EACA;;;AAIF;EACE;;;AAoBF;EAEQ;;;AAQR;EACE;IACE;IACA;;;AAIJ;EACE;IACE;IACA;;EAGF;IACE;IACA;;;AAIJ;EACE;IACE;;;AAMJ;EACE;EACA;;;AAKF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EAGE,OnB7qCI;;AmBorCN;EACE;EACA;EACA;EACA;EACA;EAGE;;AAOF;EACE;EACA;EACA;EACA;EAGE;EACA;;AASJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EAGE;;AAOF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAGE;;AASN;EACE;EACA;EACA;EACA;EACA;EACA;;AAMA;EAGI;;AAQJ;EAEI;;;AAYZ;EACE;EACA;;;AAGF;EACE;;;AAIF;EAEI;EACA;EAQF;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE","sourcesContent":["// 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;\n// Colors\n$link-color: $primary-500;\n$nav-child-link-color: $dark-60;\n$sidebar-color: $grey;\n$feedback-color: #EAEAEA;\n$btn-primary-color: $primary-500;\n$base-button-color: $grey;\n$code-background-color: $grey;\n$blue-300: $primary-500;\n$blue-200: $primary-400;\n$blue-000: $primary-50;","@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","// custom setup code goes here\n$primary-500: #1464A5;\n$primary-400: #377BB3;\n$primary-900: #063679;\n$primary-500-24: #1464A53D;\n$primary-50: #E3ECF4;\n$dark-74: #000000BD;\n$dark-60: #00000099;\n$primary-500-dark: #8AB2D2;\n$primary-400-dark: #9CBED9;\n$primary-900-dark: #5A8AB6;\n$primary-500-24-dark: #8AB2D23D;\n$primary-50-dark: #F1F6FA;\n$white-74: #FFFFFFBD;\n$white-60: #FFFFFF99;\n$grey: #F6F6F6;\n$home-background: #293239;\n// Font\n$body-font-family: 'Roboto', sans-serif;\n// media queries\n$custom-media-queries: (home-header: 800px,\n home-imgs-max: 2880px,\n mobile-m: 375px);\n$media-queries: map-merge($media-queries, $custom-media-queries);","// 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\n.main {\n @include mq(md) {\n position: relative;\n max-width: $content-width;\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\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 display: none;\n background-color: $sidebar-color;\n\n @include mq(md) {\n display: flex;\n justify-content: space-between;\n height: $header-height;\n background-color: $body-background-color;\n border-bottom: $border $border-color;\n }\n\n &.nav-open {\n display: block;\n\n @include mq(md) {\n display: flex;\n }\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$logo: \"/docs/v3/assets/icons/logo-ontimize-blanco.png\";\n\n@import \"./support/support\";\n@import \"./custom/setup\";\n@import \"./color_schemes/light\";\n\n@import \"./color_schemes/ontimize-light\";\n\n@import \"./modules\";\ndiv.opaque {\n background-color: $body-background-color;\n}p.highlight, blockquote.highlight {\n background: rgba($grey-dk-000, 0.2);\n border-left: $border-radius solid $grey-dk-300;\n border-radius: $border-radius;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);\n padding: .8rem;\n \n > .highlight-title {\n color: $grey-dk-300;\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n}\n\np.highlight-title, blockquote.highlight-title {\n background: rgba($grey-dk-000, 0.2);\n border-left: $border-radius solid $grey-dk-300;\n border-radius: $border-radius;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);\n padding: .8rem;\n > p:first-child {\n margin-top: 0;\n margin-bottom: 0;\n color: $grey-dk-300;\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n}\n\nblockquote.highlight {\n margin-left: 0;\n margin-right: 0;\n \n > p:first-child {\n margin-top: 0;\n }\n \n > p:last-child {\n margin-bottom: 0;\n }\n}\n\nblockquote.highlight-title {\n margin-left: 0;\n margin-right: 0;\n \n > p:nth-child(2) {\n margin-top: 0;\n }\n \n > p:last-child {\n margin-bottom: 0;\n }\n}\n\np.important, blockquote.important {\n background: rgba($grey-dk-000, 0.2);\n border-left: $border-radius solid $grey-dk-300;\n border-radius: $border-radius;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);\n padding: .8rem;\n \n &::before {\n color: $grey-dk-300;\n content: \"Important\";\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n \n > .important-title {\n color: $grey-dk-300;\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n}\n\np.important-title, blockquote.important-title {\n background: rgba($grey-dk-000, 0.2);\n border-left: $border-radius solid $grey-dk-300;\n border-radius: $border-radius;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);\n padding: .8rem;\n > p:first-child {\n margin-top: 0;\n margin-bottom: 0;\n color: $grey-dk-300;\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n}\n\nblockquote.important {\n margin-left: 0;\n margin-right: 0;\n \n > p:first-child {\n margin-top: 0;\n }\n \n > p:last-child {\n margin-bottom: 0;\n }\n}\n\nblockquote.important-title {\n margin-left: 0;\n margin-right: 0;\n \n > p:nth-child(2) {\n margin-top: 0;\n }\n \n > p:last-child {\n margin-bottom: 0;\n }\n}\n\np.note, blockquote.note {\n background: rgba($blue-000, 0.2);\n border-left: $border-radius solid $blue-300;\n border-radius: $border-radius;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);\n padding: .8rem;\n \n &::before {\n color: $blue-300;\n content: \"Note\";\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n \n > .note-title {\n color: $blue-300;\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n}\n\np.note-title, blockquote.note-title {\n background: rgba($blue-000, 0.2);\n border-left: $border-radius solid $blue-300;\n border-radius: $border-radius;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);\n padding: .8rem;\n > p:first-child {\n margin-top: 0;\n margin-bottom: 0;\n color: $blue-300;\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n}\n\nblockquote.note {\n margin-left: 0;\n margin-right: 0;\n \n > p:first-child {\n margin-top: 0;\n }\n \n > p:last-child {\n margin-bottom: 0;\n }\n}\n\nblockquote.note-title {\n margin-left: 0;\n margin-right: 0;\n \n > p:nth-child(2) {\n margin-top: 0;\n }\n \n > p:last-child {\n margin-bottom: 0;\n }\n}\n\np.warning, blockquote.warning {\n background: rgba($red-000, 0.2);\n border-left: $border-radius solid $red-300;\n border-radius: $border-radius;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);\n padding: .8rem;\n \n &::before {\n color: $red-300;\n content: \"Warning\";\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n \n > .warning-title {\n color: $red-300;\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n}\n\np.warning-title, blockquote.warning-title {\n background: rgba($red-000, 0.2);\n border-left: $border-radius solid $red-300;\n border-radius: $border-radius;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);\n padding: .8rem;\n > p:first-child {\n margin-top: 0;\n margin-bottom: 0;\n color: $red-300;\n display: block;\n font-weight: bold;\n text-transform: uppercase;\n font-size: .75em;\n padding-bottom: .125rem;\n }\n}\n\nblockquote.warning {\n margin-left: 0;\n margin-right: 0;\n \n > p:first-child {\n margin-top: 0;\n }\n \n > p:last-child {\n margin-bottom: 0;\n }\n}\n\nblockquote.warning-title {\n margin-left: 0;\n margin-right: 0;\n \n > p:nth-child(2) {\n margin-top: 0;\n }\n \n > p:last-child {\n margin-bottom: 0;\n }\n}\n\n\n@import \"./custom/custom\";\n\n\n","// Sticky header\n@media (min-width: 50rem) {\n #main-header {\n position: sticky;\n top: 0;\n z-index: 999\n }\n}\n\n// Custom text colors\n.text-primary-900 {\n @if $color_scheme=='light' {\n color: $primary-900\n }\n\n @else {\n color: $primary-900-dark\n }\n}\n\n// Home page\n.home-body {\n padding: 0;\n\n .home {\n display: flex;\n flex-direction: column;\n justify-content: start;\n align-items: center;\n background-color: $home-background;\n color: #FFFFFFBD;\n width: 100%;\n height: 100%;\n\n a {\n color: #A8C7FF;\n text-decoration: underline;\n text-decoration-color: #A8C7FF;\n\n &:hover {\n text-decoration-color: #A8C7FF;\n }\n }\n\n .text-primary-400 {\n color: #4286FF;\n }\n\n .white-87 {\n color: #FFFFFFDE;\n }\n\n .introduction {\n background-image: url('../../assets/images/home/bg-landing.png');\n background-repeat: repeat;\n display: flex;\n flex-direction: column;\n justify-content: start;\n height: 100%;\n width: 100%;\n\n @include mq (lg) {\n height: 100vh;\n }\n\n .header {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: space-around;\n gap: 28px;\n padding: 0 5rem 28px;\n background-color: $home-background;\n box-shadow: 0 1px 12px rgba(255, 255, 255, 0.5);\n\n @include mq(home-header) {\n height: 96px;\n padding-bottom: 0;\n flex-direction: row;\n }\n\n .site-header {\n flex-shrink: 0;\n height: fit-content;\n width: fit-content;\n border: none;\n align-items: end;\n\n @include mq(home-header) {\n align-items: center;\n }\n\n img {\n width: 140px;\n height: 41px;\n }\n }\n\n .main-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n background-color: $home-background;\n border: none;\n gap: 28px;\n flex-grow: 1;\n flex-direction: column;\n height: inherit;\n padding: 0;\n\n @include mq(home-header) {\n flex-direction: row;\n }\n\n .search {\n display: flex;\n height: 48px;\n max-height: 48px;\n width: auto;\n min-width: 243px;\n padding: 0;\n justify-content: center;\n position: static;\n\n @include mq(home-header) {\n min-width: 194px;\n }\n\n .search-input-wrap {\n position: relative;\n top: 0;\n width: 100%;\n max-width: 33.5rem;\n border-radius: 4px;\n box-shadow: none;\n height: 100%;\n\n .search-input {\n font-size: 0.875rem;\n padding-left: 2.5rem;\n background-color: transparent;\n border: solid 1px #FFFFFFBD;\n border-radius: 4px;\n color: white;\n }\n\n .search-label {\n padding-left: 1rem;\n\n >svg {\n color: #FFFFFFBD;\n }\n }\n }\n\n .search-results {\n left: auto;\n background-color: #293239;\n box-shadow: 0 1px 12px rgba(255, 255, 255, 0.5);\n width: -webkit-fill-available;\n min-width: 243px;\n max-width: 243px;\n max-height: calc(100vh - #{$sp-10});\n top: 128px;\n\n @include mq(home-header) {\n top: 48px;\n min-width: 194px;\n max-width: 33.5rem;\n max-height: calc(100vh - 200%);\n }\n }\n }\n\n .header-custom-main {\n display: flex;\n column-gap: 28px;\n color: #FFFFFFBD;\n\n .select {\n border-style: none;\n background-color: transparent;\n color: inherit;\n\n >option {\n background-color: $home-background;\n color: inherit;\n }\n }\n\n .github-div {\n flex-shrink: 0;\n\n >a {\n display: flex;\n align-items: center;\n }\n }\n\n .docs-div {\n display: flex;\n justify-content: center;\n align-items: center;\n border: solid 1px #FFFFFFBD;\n border-radius: 4px;\n width: 80px;\n height: 40px;\n font-size: 16px;\n }\n\n >a {\n text-decoration: none;\n color: #FFFFFFBD;\n }\n }\n }\n }\n\n .landing {\n display: flex;\n flex-direction: column;\n row-gap: 28px;\n align-items: center;\n height: calc(100% - 226.5px);\n\n @include mq(home-header) {\n height: calc(100% - 96px);\n }\n\n @include mq (lg) {\n justify-content: space-around;\n flex-direction: row;\n }\n\n .text {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: inherit;\n padding: 28px 28px 0;\n\n @include mq(lg) {\n max-width: 50%;\n }\n\n >h4 {\n align-self: start;\n margin: 0;\n }\n\n >p {\n color: #4286FF;\n }\n\n .home-btn {\n font-size: 14px;\n color: #FFF;\n background-color: #2876FF;\n height: 42px;\n width: 148px;\n align-self: start;\n\n &:hover {\n background-color: #1A51C8;\n }\n }\n }\n\n .banner {\n display: flex;\n justify-content: center;\n flex-shrink: 1;\n padding: 0 28px;\n\n @include mq (lg) {\n max-width: fit-content;\n }\n }\n }\n\n }\n\n .top-content {\n display: flex;\n flex-direction: column;\n width: 80%;\n }\n\n .custom-content {\n display: flex;\n flex-direction: row;\n column-gap: 28px;\n width: 80%;\n\n .code-icon {\n width: 72px;\n height: 72px;\n position: absolute;\n transform: translate(-100px, 12px);\n }\n\n .code-icon-container {\n display: flex;\n flex-direction: column;\n min-width: 72px;\n\n @include mq(home-imgs-max) {\n display: none;\n }\n }\n\n .main-content {\n display: flex;\n flex-direction: column;\n\n\n .section-text {\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n flex-shrink: 0;\n\n >h1 {\n font-weight: 600;\n }\n\n }\n\n .link-div {\n display: flex;\n flex-direction: row;\n flex-grow: 1;\n flex-shrink: 0;\n margin-top: 82px;\n margin-bottom: 124px;\n transform: translateX(-150px);\n\n @include mq(mobile-m) {\n transform: translateX(-100px);\n }\n\n @include mq(home-header) {\n transform: translateX(0);\n }\n\n .link-img {\n display: flex;\n flex-shrink: 0;\n align-items: start;\n\n >img {\n width: 100%;\n max-width: 168px;\n aspect-ratio: 1 / 1;\n }\n }\n\n .link-texts {\n display: flex;\n flex-direction: column;\n flex-shrink: 1;\n flex-grow: 1;\n\n >h2 {\n display: flex;\n flex-direction: column;\n justify-content: center;\n min-height: 168px;\n font-weight: 600;\n color: #75A7FF;\n margin: 0;\n }\n }\n }\n\n .productivity-section {\n display: flex;\n flex-direction: column;\n\n .productivity-img-container {\n display: flex;\n align-items: center;\n height: calc(100vw / 2.57);\n max-height: 1119px;\n\n @include mq(home-imgs-max) {\n width: calc(80vw - 122px);\n justify-content: center;\n }\n\n >img {\n max-width: 2888px;\n width: 100%;\n position: absolute;\n left: 0;\n aspect-ratio: 2880 / 1119;\n }\n\n @include mq(home-imgs-max) {\n >img {\n position: static;\n }\n }\n\n .productivity-bottom {\n display: flex;\n flex-direction: column;\n justify-items: start;\n flex-shrink: 0;\n flex-grow: 1;\n }\n }\n }\n\n .performance-section {\n display: flex;\n flex-direction: column;\n\n .performance-img-container {\n display: flex;\n align-items: center;\n height: calc(100vw / 2.27);\n max-height: 1268px;\n\n @include mq(home-imgs-max) {\n width: calc(80vw - 122px);\n justify-content: center;\n }\n\n >img {\n max-width: 2888px;\n width: 100%;\n position: absolute;\n left: 0;\n aspect-ratio: 2888 / 1268;\n }\n\n @include mq(home-imgs-max) {\n >img {\n position: static;\n }\n }\n }\n\n .performance-bottom {\n display: flex;\n flex-grow: 1;\n flex-shrink: 0;\n flex-direction: column;\n justify-items: start;\n\n >a {\n align-self: start;\n }\n }\n }\n\n .components-section {\n display: flex;\n flex-direction: column;\n\n .components-img-container {\n display: flex;\n align-items: center;\n height: calc(100vw / 2.27);\n max-height: 1268px;\n\n @include mq(home-imgs-max) {\n width: calc(80vw - 122px);\n justify-content: center;\n }\n\n >img {\n max-width: 2888px;\n width: 100%;\n position: absolute;\n left: 0;\n aspect-ratio: 2888 / 1268;\n }\n\n @include mq(home-imgs-max) {\n >img {\n position: static;\n }\n }\n }\n }\n\n .addons-section {\n display: flex;\n flex-direction: column;\n\n .addons-img-container {\n display: flex;\n align-items: center;\n height: calc(100vw / 2.27);\n max-height: 1268px;\n\n @include mq(home-imgs-max) {\n width: calc(80vw - 122px);\n justify-content: center;\n }\n\n >img {\n max-width: 2888px;\n width: 100%;\n position: absolute;\n left: 0;\n aspect-ratio: 2888 / 1268;\n }\n\n @include mq(home-imgs-max) {\n >img {\n position: static;\n }\n }\n }\n }\n }\n }\n\n .footer-img-container {\n display: flex;\n align-items: center;\n height: calc(100vw / 7.5);\n max-height: 512px;\n width: 100%;\n\n >img {\n max-width: 3840px;\n width: 100%;\n aspect-ratio: 3840 / 512;\n }\n }\n\n .home-footer {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n padding: 28px 5rem;\n text-align: justify;\n border-top: solid 1px #FFFFFFBD;\n\n @include mq(lg) {\n flex-direction: row;\n height: 74px;\n padding: 0 5rem;\n }\n\n >img {\n width: 140px;\n height: 41px;\n }\n\n >div {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n width: 200px;\n\n >a {\n color: #FFFFFFDB;\n display: flex;\n align-items: center;\n text-decoration: none;\n }\n }\n }\n }\n}\n\n// breadcrumbs.html include style\n.breadcrumbs {\n @include mq(md) {\n margin-top: -$sp-4;\n }\n\n ol {\n padding-left: 0;\n margin-bottom: $sp-3;\n margin-top: 0;\n list-style: none;\n }\n\n li {\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}\n\n// breadcrumbs.html include style\n.breadcrumbs {\n @include mq(md) {\n margin-top: -$sp-4;\n }\n\n ol {\n padding-left: 0;\n margin-bottom: $sp-3;\n list-style: none;\n }\n\n li {\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\n}\n\n// Button outline style\n.btn:focus {\n display: none;\n}\n\n// Links\na:not([class]) {\n text-decoration: underline;\n text-decoration-color: $border-color;\n text-underline-offset: 2px;\n\n &:hover {\n @if $color_scheme=='light' {\n text-decoration-color: $primary-500-24;\n }\n\n @else {\n text-decoration-color: $primary-500-24-dark;\n }\n }\n}\n\n// Default side bar\n.nav-list {\n .nav-list-item {\n\n .nav-list-expander {\n @if $color_scheme=='light' {\n color: $dark-74;\n }\n\n @else {\n color: $white-74;\n }\n }\n\n .nav-list-link {\n @if $color_scheme=='light' {\n color: $dark-74;\n }\n\n @else {\n color: $white-74;\n }\n\n font-weight: 400;\n // 16px\n font-size: $font-size-5;\n\n &.active {\n @if $color_scheme=='light' {\n color: $dark-60;\n }\n\n @else {\n color: $white-60;\n background-image: linear-gradient(-90deg, #1d1d1d 0%, rgba(29, 29, 29, 0.8) 80%, rgba(29, 29, 29, 0) 100%) !important;\n }\n\n font-weight: 500;\n font-size: $font-size-5;\n }\n }\n }\n}\n\n// Style of the header version changer\n.header-custom-main {\n display: flex;\n place-content: end;\n column-gap: 10px;\n margin-right: 33px;\n\n .toggle-theme {\n cursor: pointer;\n }\n\n .select {\n width: 65px;\n border-style: none;\n background: transparent;\n\n @if $color_scheme=='light' {\n color: $dark-74;\n }\n\n @else {\n color: $white-74;\n\n option {\n background-color: #27262b;\n }\n }\n }\n\n .github-div {\n display: flex;\n align-items: center;\n\n >a {\n display: flex;\n align-items: center;\n }\n }\n}\n\n// Style of the component-api tabs\n.o-tab {\n overflow: hidden;\n padding-bottom: 6px;\n\n /* Style the buttons that are used to open the tab content */\n button {\n background-color: inherit;\n float: left;\n border: none;\n outline: none;\n cursor: pointer;\n padding: 12px 16px;\n transition: .3s;\n font-size: 0.8em;\n\n @if $color_scheme=='light' {\n color: $dark-74;\n }\n\n @else {\n color: $white-74;\n }\n }\n\n /* Change background color of buttons on hover */\n button:hover {\n @if $color_scheme=='light' {\n background-color: lighten($primary-500, 40%);\n border-bottom: 2px solid $primary-500-24;\n }\n\n @else {\n background-color: lighten($primary-500-dark, 40%);\n border-bottom: 2px solid $primary-500-24-dark;\n }\n }\n\n /* Create an active/current tablink class */\n button.active {\n @if $color_scheme=='light' {\n border-bottom: 2px solid $primary-500;\n }\n\n @else {\n border-bottom: 2px solid $primary-500;\n }\n }\n}\n\n/* Style the tab content */\n.o-tabcontent {\n display: none;\n padding: 6px 12px;\n -webkit-animation: fadeEffect 1s;\n animation: fadeEffect 1s;\n}\n\n.o-component-container {\n .list__item {\n padding-right: 0;\n\n .archive__item-excerpt {\n margin-top: 0;\n font-size: .75em;\n }\n }\n}\n\n// Api tables\n.mdl-data-table {\n td {\n &[required] {\n p.first {\n &:after {\n content: ' *';\n }\n }\n }\n }\n}\n\n// Api attribute inhereds\n.attributes-list {\n overflow: hidden;\n\n li {\n display: inline-block;\n width: 50%;\n margin-bottom: .25em;\n font-size: 18px;\n }\n}\n\n.sidebar__right {\n\n @include mq(lg) {\n position: fixed;\n top: 64px;\n right: 0px;\n max-height: calc(100% - 112px);\n min-height: fit-content;\n width: 360px;\n padding-bottom: 20px;\n border: 1px solid $border-color;\n border-radius: 4px;\n overflow: auto;\n background-color: $body-background-color;\n z-index: 999;\n }\n}\n\n.toc {\n letter-spacing: 1px;\n\n .nav__title {\n margin: 0;\n cursor: pointer;\n @include fs-5;\n\n @include mq(md) {\n @include fs-4;\n }\n\n @if $color_scheme=='light' {\n color: $primary-500;\n background-color: $primary-50;\n }\n\n @else {\n color: $primary-50-dark;\n background-color: $primary-500-dark;\n }\n\n padding: 20px 14px 8px 14px;\n }\n}\n\n.toc__menu {\n\n @include fs-5;\n\n @include mq(md) {\n @include fs-4;\n }\n\n margin: 0;\n padding: 0;\n width: 100%;\n list-style: none;\n\n li::before {\n content: \"\" !important;\n }\n\n a {\n text-decoration: none;\n\n @if $color_scheme=='light' {\n color: $dark-74;\n }\n\n @else {\n color: $white-74;\n }\n\n &.active {\n\n @if $color_scheme=='light' {\n color: $dark-60;\n }\n\n @else {\n color: $white-60;\n }\n\n font-weight: 500;\n }\n }\n\n li ul>li a {\n padding-top: 0.2rem;\n border: none;\n text-transform: none;\n\n }\n}\n\n//Ontimize TOC screen size bigger than 66.5 rem\n@media (min-width: 66.5rem) {\n .toc__menu.collapsed {\n display: none;\n }\n\n .toc.collapsed {\n position: relative;\n bottom: 14px;\n }\n\n .nav__title.collapsed {\n height: 100%;\n font-size: 15px !important;\n cursor: pointer;\n }\n\n .sidebar__right.collapsed {\n padding-bottom: 0px;\n width: auto;\n transform: rotate(270deg);\n transform-origin: bottom right;\n top: calc(64px - 30px);\n height: 30px;\n overflow: hidden;\n\n @if $color_scheme=='light' {\n color: $primary-50;\n }\n\n @else {\n color: $primary-50-dark;\n }\n }\n}\n\n// FAQ page\n\n.faq-posts {\n .panel-default {\n\n .panel-heading {\n @if $color_scheme=='light' {\n color: #333;\n background-color: #f5f5f5;\n border-color: #ddd;\n }\n\n @else {\n color: #eee;\n background-color: #0c0c0c;\n border-color: #222;\n }\n\n\n border-bottom: 0;\n\n padding: 10px 30px;\n border-bottom: 1px solid transparent;\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n cursor: pointer;\n }\n\n .panel-title {\n margin-top: 0;\n margin-bottom: 0;\n font-size: 16px;\n color: inherit;\n }\n }\n\n .panel-body {\n padding: 15px;\n font-size: 14px;\n }\n\n .panel {\n margin-bottom: 0;\n border-radius: 4px;\n\n @if $color_scheme=='light' {\n background-color: #fff;\n }\n\n @else {\n background-color: #000;\n }\n\n border: 1px solid transparent;\n\n //-webkit-box-shadow: 0 1px 1px rgba(0,0,0,.05);\n //box-shadow: 0 1px 1px rgba(0,0,0,.05);\n }\n\n .collapse {\n display: none;\n\n &.in {\n display: block;\n }\n }\n\n .collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n -webkit-transition-property: height, visibility;\n transition-property: height, visibility;\n -webkit-transition-duration: .35s;\n transition-duration: .35s;\n -webkit-transition-timing-function: ease;\n transition-timing-function: ease;\n }\n}\n\n.multicolumn {\n display: flex;\n}\n\n.toggle-tree-btn {\n all: unset;\n margin-bottom: 10px;\n align-self: flex-end;\n position: absolute;\n top: 8px;\n right: 8px;\n cursor: pointer;\n}\n\n.multicolumnleft {\n flex: 1;\n max-width: 100%;\n overflow-x: auto;\n padding: 0 40px 0 0;\n box-sizing: border-box;\n position: relative;\n}\n\n.multicolumnnopadding {\n flex: 1;\n max-width: 100%;\n overflow-x: auto;\n padding: 0 0 0 0;\n box-sizing: border-box;\n}\n\n.multicolumnright {\n box-sizing: border-box;\n\n @if $color_scheme=='light' {\n border-left: 1px solid #ccc;\n }\n\n @else {\n border-left: 1px solid #2e2e2e;\n }\n\n transition: width 0.3s ease;\n overflow-x: auto;\n\n &.collapsed {\n width: 0;\n overflow: hidden;\n padding: 0;\n border-left: none;\n display: none;\n }\n}\n\n.verticalDivider {\n\n @if $color_scheme=='light' {\n border-left: 1px solid #F2F3F3;\n }\n\n @else {\n border-left: 1px solid #0f0f0f;\n }\n\n padding-right: 10px;\n margin-left: 10px;\n}\n\n// //jstree\n.jstreeloader ul>li::before {\n content: \"\";\n}\n\na.jstree-anchor.jstree-hovered{\n @if $color_scheme=='dark' {\n color: #515151;\n i {\n filter: invert(26%) sepia(0%) saturate(28%) hue-rotate(162deg) brightness(94%) contrast(85%);\n }\n }\n}\na.jstree-anchor.jstree-clicked{\n @if $color_scheme=='dark' {\n color: #494949;\n i {\n filter: invert(26%) sepia(0%) saturate(28%) hue-rotate(162deg) brightness(94%) contrast(85%);\n }\n }\n}\n\ni.jstree-icon{\n @if $color_scheme=='light' {\n filter: invert(36%) sepia(8%) saturate(440%) hue-rotate(218deg) brightness(90%) contrast(85%);\n }\n @if $color_scheme=='dark' {\n filter: invert(89%) sepia(0%) saturate(0%) hue-rotate(174deg) brightness(84%) contrast(87%);\n }\n}\n\n\n@media (min-width: 50rem) and ((max-width: 66.5rem)) {\n #top.main {\n max-width: none;\n margin-left: 16.5rem;\n }\n}\n\n@media (min-width: 66.5rem) {\n body>div.side-bar {\n min-width: auto;\n width: auto,\n }\n\n #top.main {\n max-width: none;\n margin-left: calc(16.5rem + 1px);\n }\n}\n\n@media (min-width: 50rem) {\n div.side-bar {\n width: 16.5rem;\n }\n\n\n}\n\ntable {\n table-layout: auto;\n width: 120px;\n}\n\n// Link sections menu cards\n\n.menu-card-container {\n display: grid;\n grid-gap: 32px;\n grid-template-columns: repeat(auto-fit, minmax(auto, 368px));\n grid-auto-rows: minmax(auto, 208px);\n justify-content: center;\n\n a {\n text-decoration: none;\n\n @if $color_scheme=='light' {\n color: $dark-74;\n }\n\n @else {\n color: $white-74;\n }\n\n .menu-card {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n height: 100%;\n border-radius: 2px;\n\n @if $color_scheme=='light' {\n border: 1px solid #0000001F;\n }\n\n @else {\n border: 1px solid #FFFFFF1F;\n }\n\n .image-container {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 128px;\n\n @if $color_scheme=='light' {\n border-bottom: 1px solid #0000001F;\n background-color: #F6F6F6;\n }\n\n @else {\n border-bottom: 1px solid #FFFFFF1F;\n background-color: #31363A;\n }\n }\n\n .bottom-image {\n height: 80px;\n vertical-align: middle;\n text-align: start;\n padding: 28px 18px;\n margin: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n font-weight: 500;\n }\n\n .text-container {\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n height: 88px;\n font-weight: 500;\n\n @if $color_scheme=='light' {\n border-bottom: 1px solid #0000001F;\n }\n\n @else {\n border-bottom: 1px solid #FFFFFF1F;\n }\n\n >p {\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n text-align: start;\n padding: 10px 18px 0 18px;\n height: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n @if $color_scheme=='light' {\n color: #000000DE;\n }\n\n @else {\n color: #FFFFFFDE;\n }\n }\n }\n\n .bottom-title {\n height: 118px;\n text-overflow: ellipsis;\n overflow: hidden;\n text-align: start;\n margin: 0;\n padding: 20px 18px;\n }\n }\n\n &:hover {\n .menu-card {\n .bottom-title {\n\n @if $color_scheme=='light' {\n background-color: #C7DAE9;\n }\n\n @else {\n background-color: #00345f;\n }\n }\n\n .bottom-image {\n @if $color_scheme=='light' {\n background-color: #C7DAE9;\n }\n\n @else {\n background-color: #012644;\n }\n }\n }\n }\n }\n}\n\n.menu-card-container:has(.image-container) {\n grid-template-columns: repeat(auto-fit, minmax(auto, 272px));\n grid-auto-rows: minmax(208px, auto);\n}\n\n.hidden {\n display: none;\n}\n\n\n.menuitem-badge {\n @if $color_scheme=='light' {\n background: linear-gradient(-180deg, $primary-500 0, $primary-500-24 100%);\n color: #fff;\n }\n\n @else {\n background: linear-gradient(-180deg, $primary-500-dark 0, $primary-500-24-dark 100%);\n color: #000;\n }\n\n padding: 2px 4px;\n vertical-align: middle;\n border-radius: 3px;\n font-weight: 700;\n font-size: 11px;\n position: relative;\n top: -1px;\n}\n\nimg[alt=\"Alt text\"] {\n width: 100%;\n}"],"file":"just-the-docs-ontimize-light.css"} \ No newline at end of file diff --git a/v3/assets/icons/dark_mode.svg b/v3/assets/icons/dark_mode.svg new file mode 100644 index 0000000..069df9a --- /dev/null +++ b/v3/assets/icons/dark_mode.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/v3/assets/icons/favicon.ico b/v3/assets/icons/favicon.ico new file mode 100644 index 0000000..e8c2c78 Binary files /dev/null and b/v3/assets/icons/favicon.ico differ diff --git a/v3/assets/icons/github-front-dark.svg b/v3/assets/icons/github-front-dark.svg new file mode 100644 index 0000000..fc416d8 --- /dev/null +++ b/v3/assets/icons/github-front-dark.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/v3/assets/icons/github-front.svg b/v3/assets/icons/github-front.svg new file mode 100644 index 0000000..d3cfac7 --- /dev/null +++ b/v3/assets/icons/github-front.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/v3/assets/icons/light_mode.svg b/v3/assets/icons/light_mode.svg new file mode 100644 index 0000000..fdbecc3 --- /dev/null +++ b/v3/assets/icons/light_mode.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/v3/assets/icons/logo-ontimize-blanco.png b/v3/assets/icons/logo-ontimize-blanco.png new file mode 100644 index 0000000..dd31e0a Binary files /dev/null and b/v3/assets/icons/logo-ontimize-blanco.png differ diff --git a/v3/assets/icons/manifest.json b/v3/assets/icons/manifest.json new file mode 100644 index 0000000..12b867c --- /dev/null +++ b/v3/assets/icons/manifest.json @@ -0,0 +1,41 @@ +{ + "name": "App", + "icons": [ + { + "src": "\/android-icon-36x36.png", + "sizes": "36x36", + "type": "image\/png", + "density": "0.75" + }, + { + "src": "\/android-icon-48x48.png", + "sizes": "48x48", + "type": "image\/png", + "density": "1.0" + }, + { + "src": "\/android-icon-72x72.png", + "sizes": "72x72", + "type": "image\/png", + "density": "1.5" + }, + { + "src": "\/android-icon-96x96.png", + "sizes": "96x96", + "type": "image\/png", + "density": "2.0" + }, + { + "src": "\/android-icon-144x144.png", + "sizes": "144x144", + "type": "image\/png", + "density": "3.0" + }, + { + "src": "\/android-icon-192x192.png", + "sizes": "192x192", + "type": "image\/png", + "density": "4.0" + } + ] +} \ No newline at end of file diff --git a/v3/assets/images/csvexport.png b/v3/assets/images/csvexport.png new file mode 100644 index 0000000..db612a8 Binary files /dev/null and b/v3/assets/images/csvexport.png differ diff --git a/v3/assets/images/databasecmplx.png b/v3/assets/images/databasecmplx.png new file mode 100644 index 0000000..ea2a78e Binary files /dev/null and b/v3/assets/images/databasecmplx.png differ diff --git a/v3/assets/images/excelexport.png b/v3/assets/images/excelexport.png new file mode 100644 index 0000000..f09500a Binary files /dev/null and b/v3/assets/images/excelexport.png differ diff --git a/v3/assets/images/export_postman_query.png b/v3/assets/images/export_postman_query.png new file mode 100644 index 0000000..8aa00d5 Binary files /dev/null and b/v3/assets/images/export_postman_query.png differ diff --git a/v3/assets/images/export_postman_query_csv.png b/v3/assets/images/export_postman_query_csv.png new file mode 100644 index 0000000..9ffd2e0 Binary files /dev/null and b/v3/assets/images/export_postman_query_csv.png differ diff --git a/v3/assets/images/export_postman_query_pdf.png b/v3/assets/images/export_postman_query_pdf.png new file mode 100644 index 0000000..38ab051 Binary files /dev/null and b/v3/assets/images/export_postman_query_pdf.png differ diff --git a/v3/assets/images/keycloak_multitenant_swagger_1.png b/v3/assets/images/keycloak_multitenant_swagger_1.png new file mode 100644 index 0000000..264a30a Binary files /dev/null and b/v3/assets/images/keycloak_multitenant_swagger_1.png differ diff --git a/v3/assets/images/keycloak_multitenant_swagger_10.png b/v3/assets/images/keycloak_multitenant_swagger_10.png new file mode 100644 index 0000000..8935b55 Binary files /dev/null and b/v3/assets/images/keycloak_multitenant_swagger_10.png differ diff --git a/v3/assets/images/keycloak_multitenant_swagger_11.png b/v3/assets/images/keycloak_multitenant_swagger_11.png new file mode 100644 index 0000000..8f7ba46 Binary files /dev/null and b/v3/assets/images/keycloak_multitenant_swagger_11.png differ diff --git a/v3/assets/images/keycloak_multitenant_swagger_2.png b/v3/assets/images/keycloak_multitenant_swagger_2.png new file mode 100644 index 0000000..a47ad5d Binary files /dev/null and b/v3/assets/images/keycloak_multitenant_swagger_2.png differ diff --git a/v3/assets/images/keycloak_multitenant_swagger_3.png b/v3/assets/images/keycloak_multitenant_swagger_3.png new file mode 100644 index 0000000..c715263 Binary files /dev/null and b/v3/assets/images/keycloak_multitenant_swagger_3.png differ diff --git a/v3/assets/images/keycloak_multitenant_swagger_4.png b/v3/assets/images/keycloak_multitenant_swagger_4.png new file mode 100644 index 0000000..89194f4 Binary files /dev/null and b/v3/assets/images/keycloak_multitenant_swagger_4.png differ diff --git a/v3/assets/images/keycloak_multitenant_swagger_5.png b/v3/assets/images/keycloak_multitenant_swagger_5.png new file mode 100644 index 0000000..d060a69 Binary files /dev/null and b/v3/assets/images/keycloak_multitenant_swagger_5.png differ diff --git a/v3/assets/images/keycloak_multitenant_swagger_6.png b/v3/assets/images/keycloak_multitenant_swagger_6.png new file mode 100644 index 0000000..8f7ba46 Binary files /dev/null and b/v3/assets/images/keycloak_multitenant_swagger_6.png differ diff --git a/v3/assets/images/keycloak_multitenant_swagger_7.png b/v3/assets/images/keycloak_multitenant_swagger_7.png new file mode 100644 index 0000000..90e355d Binary files /dev/null and b/v3/assets/images/keycloak_multitenant_swagger_7.png differ diff --git a/v3/assets/images/keycloak_multitenant_swagger_8.png b/v3/assets/images/keycloak_multitenant_swagger_8.png new file mode 100644 index 0000000..9f1254a Binary files /dev/null and b/v3/assets/images/keycloak_multitenant_swagger_8.png differ diff --git a/v3/assets/images/keycloak_multitenant_swagger_9.png b/v3/assets/images/keycloak_multitenant_swagger_9.png new file mode 100644 index 0000000..c419bf6 Binary files /dev/null and b/v3/assets/images/keycloak_multitenant_swagger_9.png differ diff --git a/v3/assets/images/keycloak_swagger_1.png b/v3/assets/images/keycloak_swagger_1.png new file mode 100644 index 0000000..264a30a Binary files /dev/null and b/v3/assets/images/keycloak_swagger_1.png differ diff --git a/v3/assets/images/keycloak_swagger_2.png b/v3/assets/images/keycloak_swagger_2.png new file mode 100644 index 0000000..208fce4 Binary files /dev/null and b/v3/assets/images/keycloak_swagger_2.png differ diff --git a/v3/assets/images/keycloak_swagger_3.png b/v3/assets/images/keycloak_swagger_3.png new file mode 100644 index 0000000..082a6cb Binary files /dev/null and b/v3/assets/images/keycloak_swagger_3.png differ diff --git a/v3/assets/images/keycloak_swagger_4.png b/v3/assets/images/keycloak_swagger_4.png new file mode 100644 index 0000000..a9a8de3 Binary files /dev/null and b/v3/assets/images/keycloak_swagger_4.png differ diff --git a/v3/assets/images/keycloak_swagger_5.png b/v3/assets/images/keycloak_swagger_5.png new file mode 100644 index 0000000..8f7ba46 Binary files /dev/null and b/v3/assets/images/keycloak_swagger_5.png differ diff --git a/v3/assets/images/multitenant_swagger_1.png b/v3/assets/images/multitenant_swagger_1.png new file mode 100644 index 0000000..b0e65fe Binary files /dev/null and b/v3/assets/images/multitenant_swagger_1.png differ diff --git a/v3/assets/images/multitenant_swagger_2.png b/v3/assets/images/multitenant_swagger_2.png new file mode 100644 index 0000000..90d6b4d Binary files /dev/null and b/v3/assets/images/multitenant_swagger_2.png differ diff --git a/v3/assets/images/multitenant_swagger_3.png b/v3/assets/images/multitenant_swagger_3.png new file mode 100644 index 0000000..96ee825 Binary files /dev/null and b/v3/assets/images/multitenant_swagger_3.png differ diff --git a/v3/assets/images/openapi_module_1.png b/v3/assets/images/openapi_module_1.png new file mode 100644 index 0000000..d48a9c4 Binary files /dev/null and b/v3/assets/images/openapi_module_1.png differ diff --git a/v3/assets/images/openapi_module_2.png b/v3/assets/images/openapi_module_2.png new file mode 100644 index 0000000..de5fc8e Binary files /dev/null and b/v3/assets/images/openapi_module_2.png differ diff --git a/v3/assets/images/openapi_ontimize_rest_swagger_1.png b/v3/assets/images/openapi_ontimize_rest_swagger_1.png new file mode 100644 index 0000000..410db76 Binary files /dev/null and b/v3/assets/images/openapi_ontimize_rest_swagger_1.png differ diff --git a/v3/assets/images/openapi_ontimize_rest_swagger_2.png b/v3/assets/images/openapi_ontimize_rest_swagger_2.png new file mode 100644 index 0000000..fb23283 Binary files /dev/null and b/v3/assets/images/openapi_ontimize_rest_swagger_2.png differ diff --git a/v3/assets/images/openapi_ontimize_rest_swagger_3.png b/v3/assets/images/openapi_ontimize_rest_swagger_3.png new file mode 100644 index 0000000..815c334 Binary files /dev/null and b/v3/assets/images/openapi_ontimize_rest_swagger_3.png differ diff --git a/v3/assets/images/openapi_ontimize_rest_swagger_4.png b/v3/assets/images/openapi_ontimize_rest_swagger_4.png new file mode 100644 index 0000000..340e8d8 Binary files /dev/null and b/v3/assets/images/openapi_ontimize_rest_swagger_4.png differ diff --git a/v3/assets/images/openapi_ontimize_rest_swagger_5.png b/v3/assets/images/openapi_ontimize_rest_swagger_5.png new file mode 100644 index 0000000..a14f4e5 Binary files /dev/null and b/v3/assets/images/openapi_ontimize_rest_swagger_5.png differ diff --git a/v3/assets/images/openapi_ontimize_rest_swagger_6.png b/v3/assets/images/openapi_ontimize_rest_swagger_6.png new file mode 100644 index 0000000..8e84de3 Binary files /dev/null and b/v3/assets/images/openapi_ontimize_rest_swagger_6.png differ diff --git a/v3/assets/images/openapi_standard_rest_swagger_1.png b/v3/assets/images/openapi_standard_rest_swagger_1.png new file mode 100644 index 0000000..98e6b6a Binary files /dev/null and b/v3/assets/images/openapi_standard_rest_swagger_1.png differ diff --git a/v3/assets/images/openapi_standard_rest_swagger_2.png b/v3/assets/images/openapi_standard_rest_swagger_2.png new file mode 100644 index 0000000..aa67199 Binary files /dev/null and b/v3/assets/images/openapi_standard_rest_swagger_2.png differ diff --git a/v3/assets/images/openapi_standard_rest_swagger_3.png b/v3/assets/images/openapi_standard_rest_swagger_3.png new file mode 100644 index 0000000..aca6917 Binary files /dev/null and b/v3/assets/images/openapi_standard_rest_swagger_3.png differ diff --git a/v3/assets/images/openapi_standard_rest_swagger_4.png b/v3/assets/images/openapi_standard_rest_swagger_4.png new file mode 100644 index 0000000..9f5306a Binary files /dev/null and b/v3/assets/images/openapi_standard_rest_swagger_4.png differ diff --git a/v3/assets/images/pdfexport.png b/v3/assets/images/pdfexport.png new file mode 100644 index 0000000..cbe8069 Binary files /dev/null and b/v3/assets/images/pdfexport.png differ diff --git a/v3/assets/images/tutorial_1.png b/v3/assets/images/tutorial_1.png new file mode 100644 index 0000000..f41689f Binary files /dev/null and b/v3/assets/images/tutorial_1.png differ diff --git a/v3/assets/images/tutorial_10.png b/v3/assets/images/tutorial_10.png new file mode 100644 index 0000000..0406f20 Binary files /dev/null and b/v3/assets/images/tutorial_10.png differ diff --git a/v3/assets/images/tutorial_11.png b/v3/assets/images/tutorial_11.png new file mode 100644 index 0000000..eb6d802 Binary files /dev/null and b/v3/assets/images/tutorial_11.png differ diff --git a/v3/assets/images/tutorial_12.png b/v3/assets/images/tutorial_12.png new file mode 100644 index 0000000..953fc24 Binary files /dev/null and b/v3/assets/images/tutorial_12.png differ diff --git a/v3/assets/images/tutorial_2.png b/v3/assets/images/tutorial_2.png new file mode 100644 index 0000000..855cfee Binary files /dev/null and b/v3/assets/images/tutorial_2.png differ diff --git a/v3/assets/images/tutorial_3.png b/v3/assets/images/tutorial_3.png new file mode 100644 index 0000000..4bce39e Binary files /dev/null and b/v3/assets/images/tutorial_3.png differ diff --git a/v3/assets/images/tutorial_4.png b/v3/assets/images/tutorial_4.png new file mode 100644 index 0000000..db3b0fa Binary files /dev/null and b/v3/assets/images/tutorial_4.png differ diff --git a/v3/assets/images/tutorial_5.png b/v3/assets/images/tutorial_5.png new file mode 100644 index 0000000..e66c71e Binary files /dev/null and b/v3/assets/images/tutorial_5.png differ diff --git a/v3/assets/images/tutorial_6.png b/v3/assets/images/tutorial_6.png new file mode 100644 index 0000000..e4ed35b Binary files /dev/null and b/v3/assets/images/tutorial_6.png differ diff --git a/v3/assets/images/tutorial_7.png b/v3/assets/images/tutorial_7.png new file mode 100644 index 0000000..9def248 Binary files /dev/null and b/v3/assets/images/tutorial_7.png differ diff --git a/v3/assets/images/tutorial_8.png b/v3/assets/images/tutorial_8.png new file mode 100644 index 0000000..a92807c Binary files /dev/null and b/v3/assets/images/tutorial_8.png differ diff --git a/v3/assets/images/tutorial_9.png b/v3/assets/images/tutorial_9.png new file mode 100644 index 0000000..4b6fec4 Binary files /dev/null and b/v3/assets/images/tutorial_9.png differ diff --git a/v3/assets/js/customScript.js b/v3/assets/js/customScript.js new file mode 100644 index 0000000..b1f0799 --- /dev/null +++ b/v3/assets/js/customScript.js @@ -0,0 +1,133 @@ +// Load jsTree +$(document).ready(function () { $('.jstreeloader').jstree(); }); + +// Show trees on initial load with width bigger than 1260px +window.onload = function() { + var windowWidth = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; + if (windowWidth > 1260) { + var toggleButtons = document.getElementsByClassName('jstreeloader'); + for (let div of toggleButtons){ + div.classList.remove('collapsed'); + div.parentElement.querySelector('.material-symbols-outlined').textContent = 'left_panel_open'; + } + } +}; + +// Toggle tree multicolumn +document.addEventListener('DOMContentLoaded', function() { + var toggleButtons = document.getElementsByClassName('toggle-tree-btn'); + for (let btn of toggleButtons) { + btn.addEventListener('click', function() { + var jstreeLoader = btn.closest('.multicolumn').querySelector('.jstreeloader'); + jstreeLoader.classList.toggle('collapsed'); + var isCollapsed = jstreeLoader.classList.contains('collapsed'); + var spanElement = btn.querySelector('.material-symbols-outlined'); + if (isCollapsed) { + spanElement.textContent = 'right_panel_open'; + } else { + spanElement.textContent = 'left_panel_open'; + } + }); + } +}); + +// Collapsible TOC +document.addEventListener("DOMContentLoaded", function() { + var tocTitle = document.getElementById("tocTitle"); + + if(tocTitle != null){ + tocTitle.addEventListener("click", function() { + var toc = document.getElementById("toc"); + toc.querySelector('.toc__menu').classList.toggle('collapsed'); + toc.closest('.sidebar__right').classList.toggle('collapsed'); + tocTitle.classList.toggle('collapsed'); + toc.classList.toggle('collapsed'); + }); + } +}); + +// Anchor scroll behaviour for sticky header +document.addEventListener('DOMContentLoaded', function() { + document.querySelectorAll('a[href^="#"]').forEach(function(anchor) { + anchor.addEventListener('click', function(e) { + e.preventDefault(); + const targetId = this.getAttribute('href').substring(1); + const targetElement = document.getElementById(targetId); + + if (targetElement) { + var windowWidth = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; + var offset = targetElement.offsetTop; + if (windowWidth > 800) { + var offset = offset - 72; + } + window.scrollTo({ + top: offset, + behavior: 'smooth' + }); + } + }); + }); +}); + +// Changes the theme mode into dark and light +document.onreadystatechange = function (e) { + if (document.readyState != 'loading') { + if (localStorage.getItem("theme") == null) { + localStorage.setItem("theme", "light"); + } + } +}; + +document.addEventListener('DOMContentLoaded', function () { + var toggleButton = document.getElementsByClassName('toggle-theme'); + var githubIcon = document.getElementsByClassName('github-img'); + var scriptElements = document.getElementsByTagName('script'); + var base_path; + let light_cards = document.getElementsByClassName("card-light"); + let dark_cards = document.getElementsByClassName("card-dark"); + + for (let element of scriptElements) { + if (element.getAttribute('base_path')) { + base_path = element.getAttribute('base_path'); + break; + } + } + + if (localStorage.getItem("theme") == "light") { + toggleButton[0].src = base_path + '/assets/icons/light_mode.svg'; + githubIcon[0].src = base_path + '/assets/icons/github-front.svg'; + for (let i = 0; i < dark_cards.length; i++) { + dark_cards[i].classList.add("hidden"); + light_cards[i].classList.remove("hidden"); + } + } else { + toggleButton[0].src = base_path + '/assets/icons/dark_mode.svg'; + githubIcon[0].src = base_path + '/assets/icons/github-front-dark.svg'; + for (let i = 0; i < light_cards.length; i++) { + dark_cards[i].classList.remove("hidden"); + light_cards[i].classList.add("hidden"); + } + } + + toggleButton[0].addEventListener('click', function () { + if (jtd.getTheme() == 'dark') { + localStorage.setItem("theme", "light"); + jtd.setTheme('ontimize-light'); + toggleButton[0].src = base_path + '/assets/icons/light_mode.svg'; + githubIcon[0].src = base_path + '/assets/icons/github-front.svg'; + for (let i = 0; i < dark_cards.length; i++) { + dark_cards[i].classList.add("hidden"); + light_cards[i].classList.remove("hidden"); + } + } else { + localStorage.setItem("theme", "dark"); + jtd.setTheme('ontimize-dark'); + toggleButton[0].src = base_path + '/assets/icons/dark_mode.svg'; + githubIcon[0].src = base_path + '/assets/icons/github-front-dark.svg'; + for (let i = 0; i < light_cards.length; i++) { + dark_cards[i].classList.remove("hidden"); + light_cards[i].classList.add("hidden"); + } + } + }); +}); \ No newline at end of file diff --git a/v3/assets/js/just-the-docs.js b/v3/assets/js/just-the-docs.js new file mode 100644 index 0000000..fb6d5d9 --- /dev/null +++ b/v3/assets/js/just-the-docs.js @@ -0,0 +1,545 @@ +(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'); + + disableHeadStyleSheet(); + + 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 page-specific Understanding application.yml | Ontimize Boot Skip to main content Link Menu Expand (external link) Document Search Copy Copied
Theme mode icon

Understanding application.yml

Introduction

A YAML file, with extension *.yml or .yaml , is a human readable file in which we can write data pairs in a suitable way by combinations of lists, maps and simple data. Another of the most important features of these files is the indentation. It is important to write these indented elements correctly, since if they are badly indented, they cannot be parsed correctly.

Application.yml file description

Endpoints

They allow you to monitor and interact with your application. Integrated endpoints are available, but adding custom endpoints is also allowed. 

  • endpoints: api:

    Attribute Values Meaning
    enabled true, false Active Spring Boot endpoints.

    Example

     endpoints:
    +    api:
    +       enabled: true
    +

Logging

  • logging: level:

    Attribute Values Meaning
    root String Default server log level set to INFO level

    Example

     logging:
    +    level:
    +       root: info
    +

CORS

Mechanism that allows restricted resources to be requested between domains.

  • ontimize:corsfilter:

    Attribute Values Meaning
    enabled true, false CORS filter enabled.
  • ontimize:globalcors:

    CORS global configuration

    Attribute Values Meaning
    cors-configurations String Configuration for this entrypoint
    • ontimize:globalcors:cors-configurations:

      Attribute Values Meaning
      allowed-origins String Allow different origins
      allowed-headers String Allow headers
      exposed-headers [“X-Auth-Token”,”Content-disposition”,”X-Requested-With”] Exposed headers
      allowed-methods GET, POST, PUT, DELETE, OPTIONS Allow HTTP methods

      Example

       ontimize:
      +    corsfilter:
      +       enabled: true
      +    globalcors:
      +       cors-configurations:
      +          '[/**]':
      +             allowed-origins: "*"
      +             allowed-headers: "*"
      +             exposed-headers: ["X-Auth-Token","Content-disposition","X-Requested-With"]       
      +             allowed-methods:
      +             - GET
      +             - POST
      +             - PUT
      +             - OPTIONS
      +             - DELETE
      +

JDBC

  • ontimize:jdbc:

    Attribute Values Meaning
    name-convention upper, lower, database Convention of data columns name
    sqlhandler postgres, mysql, oracle, oracle12, sqlserver, hsqldb SQL handler
    • ontimize:jdbc:sql-condition-processor:

      Attribute Values Meaning
      upper-string true, false Use of uppercase
      upper-like true, false String comparision using LIKE in uppercase

      Example

       jdbc:
      +       name-convention: upper
      +       sqlhandler: hsqldb
      +       sql-condition-processor:
      +          upper-string: true
      +          upper-like: true
      +

Security

  • ontimize:security:

    Attribute Values Meaning
    mode default Default security mode
    ignore-paths /app/** Routes where authenticated user control will not apply
    • ontimize:security:jwt:

      Configure password for JWT token.

      Attribute Values Meaning
      password cH4nG3_M3** Password for JWT token

      This JWT token MUST BE CHANGED in any application. It’s a secret inormation.

    • ontimize:security:role-information-service:

      Configure columns for user roles

      Attribute Values Meaning
      role-repository String Repository which store the user role
      role-name-column String Name of the column which store the role name
      server-permission-query-id String Query ID to identify the query of server permissions
      server-permission-name-column String Name of the columns which contains the name of the server permission
      client-permission-query-id String Query ID for client permissions
      client-permission-column String Name of the columns which contains the name of the client permission
    • ontimize:security:user-information-service:

      Information about the user

      Attribute Values Meaning
      user-repository String Repository which stores the users of the application
      user-login-column String Name of the column with the username
      user-password-column String Name of the column with the password
      query-id String Query identififer for login
      other-data List Other query columns
    • ontimize:security:user-role-information-service:

      Repository information about linking users and roles

      Attribute Values Meaning
      user-role-repository String Repository name
      query-id String Query identifier
      role-login-column String Column which stores the user
      role-name-column String Column which stores the role name

    Example

     security:
    +       mode: default
    +       jwt:
    +          password: cH4nG3_M3** # ← CHANGE THIS VALUE
    +       ignore-paths: /app/**
    +       role-information-iervice:
    +          role-repository: UserRoleDao
    +          role-name-column: ROLENAME
    +          server-permission-query-id: serverPermissions
    +          server-permission-name-column: PERMISSION_NAME
    +          client-permission-query-id: clientPermissions
    +          client-permission-column: XMLCLIENTPERMISSION
    +       user-information-service:
    +          user-repository: UserDao
    +          user-login-column: USER_
    +          user-password-column: PASSWORD
    +          query-id: login
    +          other-data:
    +             - NAME
    +             - SURNAME
    +             - EMAIL
    +             - NIF
    +             - USERBLOCKED
    +             - LASTPASSWORDUPDATE
    +             - FIRSTLOGIN
    +       user-role-information-service:
    +          user-role-repository: UserRoleDao
    +          query-id: userRole
    +          role-login-column: USER_
    +          role-name-column: ROLENAME
    +

Server

  • ontimize:server:

    Attribute Values Meaning
    port int Server port
    • ontimize:server:servlet:

      Attribute Values Meaning
      context-path String customized servlet path
    • ontimize:server:tomcat:

      Attribute Values Meaning
      uri-encoding String URI encoding
    • ontimize:server:compression:

      Attribute Values Meaning
      enabled true, false Enable data compression
      mime-types String Mime types

    Example

     server:
    +    servlet:
    +       context-path: /custom/path
    +    port: 33333
    +    tomcat:
    +       uri-encoding: UTF-8
    +    compression:
    +       enabled: true
    +       mime-types: application/json, application/xml
    +

Spring

  • ontimize:spring:datasource:

    Data source (DB connection)

    Attribute Values Meaning
    driver-class-name String JDBC driver
    jdbc-url String Connection URl
    username String DB username
    password String DB username password
    initial-size int Initial size
    test-on-borrow true, false Validation
  • ontimize:spring:main:

    Attribute Values Meaning
    banner-mode on, off Remove the startup banner in the console
  • ontimize:spring:session:

    Attribute Values Meaning
    store-type String Save the session in spring
  • ontimize:spring:resources:

    Attribute Values Meaning
    static-locations String Path for satic resources
  • ontimize:spring:autoconfigure:

    Attribute Values Meaning
    exclude String Delete Spring Boot auto-configuration files

Example

spring:
+   datasource:
+      driver-class-name: org.hsqldb.jdbcDriver
+      jdbc-url: jdbc:hsqldb:hsql://localhost:9013/templateDB
+      username: SA
+      password:
+      initial-size: 10
+      test-on-borrow: true
+   main:
+      banner-mode: 'off'
+   session:
+      store-type: none
+   resources:
+      static-locations: classpath:/ngx/dist/
+   autoconfigure:
+      exclude: 
+         org.springframework.boot.autoconfigure.security.SecurityAutoConfiguration, org.springframework.boot.actuate.autoconfigure.ManagementWebSecurityAutoConfiguration
+

Complete Example

endpoints:
+   api:
+      enabled: true
+logging:
+   level:
+      root: info
+ontimize:
+   corsfilter:
+      enabled: true
+   globalcors:
+      cors-configurations:
+         '[/**]':
+            allowed-origins: "*"
+            allowed-headers: "*"
+            exposed-headers: ["X-Auth-Token","Content-disposition","X-Requested-With"]
+            allowed-methods:
+            - GET
+            - POST
+            - PUT
+            - OPTIONS
+            - DELETE
+   jdbc:
+      name-convention: upper
+      sqlhandler: hsqldb
+      sql-condition-processor:
+         upper-string: true
+         upper-like: true
+   security:
+      mode: default
+      jwt:
+         password: cH4nG3_M3** # ← CHANGE THIS VALUE
+      role-information-service:
+         role-repository: UserRoleDao
+         role-name-column: ROLENAME
+         server-permission-query-id: serverPermissions
+         server-permission-name-column: PERMISSION_NAME
+         client-permission-query-id: clientPermissions
+         client-permission-column: XMLCLIENTPERMISSION
+      user-information-service:
+         user-repository: UserDao
+         user-login-column: USER_
+         user-password-column: PASSWORD
+         query-id: login
+         other-data:
+            - NAME
+            - SURNAME
+            - EMAIL
+            - NIF
+            - USERBLOCKED
+            - LASTPASSWORDUPDATE
+            - FIRSTLOGIN
+      user-role-information-service:
+         user-role-repository: UserRoleDao
+         query-id: userRole
+         role-login-column: USER_
+         role-name-column: ROLENAME
+server:
+   port: 33333
+   tomcat:
+      uri-encoding: UTF-8
+   compression:
+      enabled: true
+      mime-types: application/json, application/xml
+spring:
+   datasource:
+      driver-class-name: org.hsqldb.jdbcDriver
+      jdbc-url: jdbc:hsqldb:hsql://localhost:9013/templateDB
+      username: SA
+      password:
+      initial-size: 10
+      test-on-borrow: true
+   main:
+      banner-mode: 'off'
+   session:
+      store-type: none
+   resources:
+      static-locations: classpath:/ngx/dist/
+   autoconfigure:
+      exclude: |
+         org.springframework.boot.autoconfigure.security.SecurityAutoConfiguration, org.springframework.boot.actuate.autoconfigure.ManagementWebSecurityAutoConfiguration, org.springframework.boot.autoconfigure.security.FallbackWebSecurityAutoConfiguration
diff --git a/v3/basics/autoconfigurators/index.html b/v3/basics/autoconfigurators/index.html new file mode 100644 index 0000000..c85d363 --- /dev/null +++ b/v3/basics/autoconfigurators/index.html @@ -0,0 +1,213 @@ + Autoconfigurators | Ontimize Boot Skip to main content Link Menu Expand (external link) Document Search Copy Copied
Theme mode icon

Autoconfigurators

Autoconfigurators are an easy way to indicate common elements that need minimal customization in applications, such as database connection. These configurations are used within the application.yml file located inside the boot folder.

AsyncTask

  • ontimize:asynctask:
Attribute Values Meaning
enable true Module loading property
engine database Indicates the storage engine that will be used for the report system (database for database engine)
url String The URL base path where the asynchronous tasks service will be exposed

The configuration of the decoupled tasks system is done by setting up the necessary DAO for that system and annotating the service controller method. To see the configuration, check this link.

Example

ontimize:
+   asynctask:
+      enable: true
+      engine: database
+      url: /tasks
+

DMS

  • ontimize:dms:
Attribute Values Meaning
engine odms Indicates the engine that will be used for the DMS system. Ontimize has an implementation of an engine, whose value is odms.
base-path String The path where the DMS files will be stored

The configuration of DMS system is done by setting up the necessary DAOs for that system. To see the configuration, check this link.

Example

ontimize:
+   dms:
+      engine: odms
+      base-path: file:/C:/applications/projectwiki/dms
+

SDMS

This module works only for Ontimize Boot version 3.11.0 or above. Actual release version: Ontimize Boot

  • ontimize:sdms:
Attribute Values Meaning
engine s3 Indicates that the implementation that handles documents via the Amazon AWS S3 service API will be used.

The configuration of DMS system is done by setting up the application for that system. To see the configuration, check this link.

Example

ontimize:
+   dms:
+      engine: s3
+

SDMS - S3 Engine

  • ontimize:sdms:s3:
Attribute Values Meaning
access-key String Indicates the access-key parameter required to authenticate to the Amazon AWS S3 service API.
secret-key String Indicates the secret-key parameter required to authenticate to the Amazon AWS S3 service API.
bucket String Indicates the bucket parameter required to establish the S3 bucket into the SDMS.
region String Indicates the region parameter required to establish the region where the S3 bucket is located.

Example

ontimize:
+   dms:
+     access-key: s3
+   s3:
+     access-key: ${S3_ACCESS_KEY}
+     secret-key: ${S3_SECRET_KEY}
+     bucket: ${S3_BUCKET}
+     region: ${S3_REGION}
+

Export

This module works only for Ontimize Boot version 3.7.0 or above. Actual release version: Ontimize Boot

  • ontimize:export:
Attribute Values Meaning
url String Specifies the path to use the export system.
extension String Specifies the file extension to use. This String will append to the url path as a additional path.

The configuration of exporting system is done through autoconfigurators and dependencies. To see how to use and configure, check this link.

Example

ontimize:
+   export:
+      url: /export
+      enable: true
+

I18n

ontimize:i18n:

Attribute Values Meaning
ref-bundle-repository String Name of the DAO containing information about the translation bundles
bundle-key-column String Column of the database table containing the translation bundle identifier
bundle-class-name-column String Column of the database table containing the name of the translation bundle class
bundle-description-column String Column of the database table containing the description of the translation bundle
ref-bundle-value-repository String Name of the database table containing information about the translations of each translation bundle
bundle-value-text-key-column String Column of the database table containing the key of a translation
bundle-value-key-column String Column of the database table containing the key of a translation
engine default Property to enable the i18n system. Need to have any value, commonly, default.

The configuration of the I18N system is done by setting up the necessary DAOs for that system. To see the configuration, check this link.

Example

ontimize:
+   i18n:
+      ref-bundle-repository: OCDatabaseBundleDao
+      bundle-key-column: ID_I18N
+      bundle-class-name-column: CLASS_NAME
+      bundle-description-column: I18N_DESCRIPTION
+      ref-bundle-value-repository: OCDatabaseBundleValueDao
+      bundle-value-text-key-column: KEY
+      bundle-value-key-column: ID_I18N_VALUE
+      engine: default
+

JDBC

  • ontimize:jdbc:
Attribute Values Meaning
name-convention upper, lower, database Indicate the nomenclature of the columns in the DB, in lower case, upper case or as it appears in the database
sqlhandler postgres, mysql, oracle, oracle12, sqlserver, hsqldb Indicates which SQL statement handler will be used to communicate with the database
  • ontimize:jdbc:datasource:
Attribute Values Meaning
enabled true, false Enable or disable datasource
  • ontimize:jdbc:sql-condition-processor:
Attribute Values Meaning
upper-string true, false Use uppercase strings in WHERE conditions
upper-like true, false Use uppercase strings in LIKE conditions

Example

ontimize:
+   jdbc:
+      name-convention: upper
+      sqlhandler: hsqldb
+      sql-condition-processor:
+         upper-string: true
+         upper-like: true
+

Keycloak

  • ontimize:security:
Attribute Value Meaning
mode keycloak Change the system security from default to Keycloak
  • ontimize:security:keycloak:
Attribute Values Meaning
tenants-provider default, list, custom How the tenants will be configured. Default uses only one tenant, list allows to configure a list of tenants and custom allows to provide the tenants programmatically.
public-client true, false If set to true, the adapter will not send credentials for the client to Keycloak
use-client-role-mappings true, false If set to true, the adapter will look inside the token for client level role mappings for the user. If false, it will look at the realm level for user role mappings.
realms-provider default, custom How the realms settings will be configured. Deprecated since Ontimize Boot 3.15 use tenants-provider instead.
use-resource-role-mappings true, false If set to true, the adapter will look inside the token for client level role mappings for the user. If false, it will look at the realm level for user role mappings. Deprecated since Ontimize Boot 3.15 use use-client-role-mappings instead.

One tenant

  • ontimize:security:keycloak:
Attribute Values Meaning
url URL URL of the host for Keycloak security
realm String The realm name
client String The resource/client name
auth-server-url URL URL of the host for Keycloak security. Deprecated since Ontimize Boot 3.15 use url instead.
resource URL The resource/client name. Deprecated since Ontimize Boot 3.15 use client instead.

The keycloak security configuration is done through autoconfigurators. To see the settings, check this link.

Example

ontimize:
+   security:
+      mode: keycloak
+      keycloak:
+         url: http://yourkeycloakdomain.com
+         realm: yourrealm
+         client: yourclientname
+         public-client: true
+         use-client-role-mappings: true
+

Multiple tenants using the application properties

  • ontimize:security:keycloak:tenants:

Indicates the tenants to be configured, with the properties for each one.

Attribute Values Meaning
tenantName String Name of the tenant
url URL URL of the host for keycloak security
realm String The realm name
client String The resource/client name

The keycloak security configuration is done through autoconfigurators. To see the settings, check this link.

Example

ontimize:
+   security:
+      mode: keycloak
+      keycloak:
+         tenant-provider: list
+         tenants:
+            tenant1:
+               tenant-name: Tenant 1
+               url: http://yourkeycloakdomain1.com
+               realm: yourrealm1
+               client: yourclientname1
+            tenant2:
+               tenant-name: Tenant 2
+               url: http://yourkeycloakdomain2.com
+               realm: yourrealm2
+               client: yourclientname2
+         public-client: true
+         use-client-role-mappings: true
+

Multiple tenants using a table on a database

  • ontimize:security:keycloak:tenant-repository:

Indicates the table containing the information about the tenants to be configured.

Attribute Values Meaning
tenant-repository String Name of the DAO containing information about tenants
query-id String Name of the DAO query identifier for tenants
tenant-id-column String Database column that stores the tenant id
tenant-name-column String Database column that stores the tenant name
url-column String Database column that stores the URL of the host for keycloak security
realm-column String Database column that stores the realm name
client-column String Database column that stores the resource/client name

The keycloak security configuration is done through autoconfigurators. To see the settings, check this link.

Example

ontimize:
+   security:
+      mode: keycloak
+      keycloak:
+         tenant-provider: list
+         tenant-repository: TenantDao
+         query-id: default
+         tenant-id-column: TENANT_ID
+         tenant-name-column: TENANT_NAME
+         url-column: URL
+         realm-column: REALM
+         client-column: CLIENT
+         public-client: true
+         use-client-role-mappings: true
+

Roles

Allows to configure the roles using the application properties.

  • ontimize:security:keycloak:roles
Attribute Values Meaning
name String Name of the role
server-permissions List A list of server permissions
client-permissions String Client permissions

Example

ontimize:
+   security:
+      mode: keycloak
+      keycloak:
+         ...
+         public-client: true
+         use-client-role-mappings: true
+         roles:
+            - name: admin
+              server-permissions:
+                 - 'com.ontimize.projectwiki.model.core.service.ITestService/testQuery'
+                 - 'com.ontimize.projectwiki.model.core.service.ITestService/testPaginationQuery'
+                 - 'com.ontimize.projectwiki.model.core.service.ITestService/testInsert'
+              client-permissions: '<?xml version="1.0" encoding="UTF-8"?><security><MENU></MENU></security>'
+

LDAP

  • ontimize:security:
Attribute Value Meaning
mode ldap Change the system security from default to ldap
  • ontimize:security:ldap:
Attribute Values Meaning
active true, false Enable or disable ldap security
host IP Ip host for ldap security
port Number Port of the host for ldap security
login-type DN, simple The login type indicates whether a full LDAP string with DN value or will be used or if the username will simply be provided with simple value
binddn String credential you are using to authenticate against an LDAP with DN (Distinguished Name)
basedn String Search starting point for LDAP with DN (Distinguished Name)
domain String The domain name
ssl false (default), true Indicates whether to use the SSL protocol for the LDAP connection.

The LDAP security configuration is done through autoconfigurators. To see the settings, check this link.

Example

ontimize:
+   security:
+      mode: ldap
+      ldap:
+         active: true
+         host: 10.0.0.1
+         port: 389
+         login-type: simple
+         binddn: ou=XXXX,dc=YYY,dc=ZZZ
+         basedn: dc=MMMM,dc,NNN
+         domain: yourdomain.com
+         ssl: false
+

Mail

  • ontimize:mail:
Attribute Values Meaning
ref-repository String Name of the DAO containing the configuration information required for system configuration
filter-column-name String Name of the column in the database table containing the keys
value-column-name String Name of the database table column containing the values
query-id String Name of the DAO query to be executed. By default, is default
filter-column-value-encoding String Key name of the row in the key column containing the value for mail encoding
filter-column-value-host String Name of the key in the row of the key column containing the value for the host in the mail service
filter-column-value-port String Name of the key in the row of the key column containing the value for the port in the mail service
filter-column-value-protocol String Name of the key in the row of the key column containing the value for the protocol used in the mail service
filter-column-value-user String Name of the key in the row of the key column containing the value for the user in the mail service
filter-column-value-password String Name of the key in the row of the key column containing the value for the user password in the mail service
filter-column-value-java-mail-properties String Name of the key in the row of the key column containing the value for the mail propoerties in the mail service
engine String Enable or disable mail engine. To enable, have any value int this arribute. By default, use default value

The configuration of the mail system is done by setting up the necessary DAOs for that system. To see the configuration, check this link.

Example

ontimize:
+   mail:
+      ref-repository: OCSettingsDao
+      filter-column-name: SETTING_KEY
+      value-column-name: SETTING_VALUE
+      query-id: default
+      filter-column-value-encoding: mail_encoding
+      filter-column-value-host: mail_host
+      filter-column-value-port: mail_port
+      filter-column-value-protocol: mail_protocol
+      filter-column-value-user: mail_user
+      filter-column-value-password: mail_password
+      filter-column-value-java-mail-properties: mail_properties
+      engine: default
+

Multitenant

  • ontimize:multitenant:
Attribute Value Meaning
enabled true, false Enable or disable multitenant
  • ontimize:multitenant:configuration:tenants:

Indicates the tenants to be configured, with the properties for each one.

Attribute Values Meaning
driver-class String The driver class
jdbc-url String The JDBC url
Username String The username
Password String Password
  • ontimize:multitenant:configuration:tenant-repository:

Indicates the table containing the information about the tenants to be configured.

Attribute Values Meaning
tenant-repository String Name of the DAO containing information about tenants
query-id String Name of the DAO query identifier for tenants
tenant-id-column String Database column that stores the tenant id
driver-class-column String Database column that stores the driver class
jdbc-url-column String Database column that stores the JDBC url
username-column String Database column that stores the username
password-column String Database column that stores the password

The multitenant configuration is done through autoconfigurators. To see the settings, check this link.

Example

ontimize:
+   multitenant:
+      enabled: true
+      configuration:
+         tenants:
+            tenant1:
+               driver-class: org.hsqldb.jdbcDriver
+               jdbc-url: jdbc:hsqldb:hsql://localhost:9013/templateDB
+               username: SA
+               password:
+            tenant2:
+               driver-class: org.hsqldb.jdbcDriver
+               jdbc-url: jdbc:hsqldb:hsql://localhost:9013/templateDB2
+               username: SA
+               password:
+
ontimize:
+   multitenant:
+      enabled: true
+      configuration:
+         tenant-repository: TenantDao
+         query-id: default
+         tenant-id-column: TENANT_ID
+         driver-class-column: DRIVER_CLASS
+         jdbc-url-column: JDBC_URL
+         username-column: USERNAME
+         password-column: PASSWORD
+

Report

This module works only for Ontimize Boot version 3.7.0 or above. Actual release version: Ontimize Boot

  • ontimize:report:
Attribute Values Meaning
enable true Module loading property
engine database, file Indicates the engine that will be used for the report system (file for file system engine or database for database engine)
base-path String The path where the report files will be stored (file system engine only)

The configuration of the reports system is done by setting up the necessary DAOs for that system. To see the configuration, check this link.

Example

Database

ontimize:
+   report:
+      enable: true
+      engine: database
+

File system

ontimize:
+   report:
+      enable: true
+      engine: file
+      base-path: C:/applications/projectwiki/reports
+

REST

  • ontimize:corsfilter:
Attribute Values Meaning
enabled true, false Enable or disable CORS filter
  • ontimize:globalcors:cors-configurations Indicates the entrypoint to be configured, with the properties for each one. In general, the entrypoint [/**] is configured entirely.
Attribute Values Meaning
allowed-origins * Set the origins to allow, the special value * allows all domains. By default this is not set
allowed-headers * Set the list of headers that a pre-flight request can list as allowed for use during an actual request. The special value * allows actual requests to send any header. A header name is not required to be listed if it is one of: Cache-Control, Content-Language, Expires, Last-Modified or Pragma). By default this is not set.
exposed-headers   Set the list of response headers other than simple headers (i.e. Cache-Control, Content-Language, Content-Type, Expires, Last-Modified or Pragma that an actual response might have and can be exposed. Note that * is not a valid exposed header value. By default this is not set.
allowed-methods List Set the HTTP methods to allow, e.g. GET, POST, PUT, etc. The special value * allows all methods. If not set, only GET and HEAD are allowed. By default this is not set. Note: CORS checks use values from “Forwarded” RFC7239, X-Forwarded-Host, X-Forwarded-Port, and X-Forwarded-Proto headers, if present, in order to reflect the client-originated address. Consider using the ForwardedHeaderFilter in order to choose from a central place whether to extract and use, or to discard such headers. See the Spring Framework reference for more on this filter.
maxAge Number Configure how long, in seconds, the response from a pre-flight request can be cached by clients. By default this is not set.
allow-credentials - Whether user credentials are supported. By default this is not set (i.e. user credentials are not supported).

Example

ontimize:
+   corsfilter:
+      enabled: true
+   globalcors:
+      cors-configurations:
+         '[/**]':
+            allowed-origins: "*"
+            allowed-headers: "*"
+            exposed-headers: ["X-Auth-Token","Content-disposition","X-Requested-With"]
+            allowed-hethods:
+            - GET
+            - POST
+            - PUT
+            - OPTIONS
+            - DELETE
+

Security

  • ontimize:security:
Attribute Values Meaning
mode default Use default to enable the security mode for Ontimize Boot
ignore-paths String Paths in server thant will not be securized
service-path String Establish the service path. By default, /**
  • ontimize:security:jwt: Required
Attribute Values Meaning
password String JWT password
expiration-time Long JWT expiration time
refresh-token true, false Set true to refresh JWT, false otherwise
  • ontimize:security:user-information-service:
Attribute Values Meaning
query-id String Name of the DAO query identifier.
user-login-column String Database column that stores the username
user-password-column String Database column that stores the password
user-need-check-pass-column String Database column that stores whether the password requires updating at the next use
user-repository String Name of the DAO containing information about users
other-data List Extra data to store from the user logged
  • ontimize:security:role-information-service:
Attribute Values Meaning
role-repository String Name of the DAO containing information about users
role-name-column String Database column that stores the role name
server-permission-query-id String Name of the DAO query identifier for server permissions
server-permission-name-column String Database column that stores the server permissions
client-permission-query-id String Name of the DAO query identifier for client permissions
client-permission-column List Database column that stores the client permissions
  • ontimize:security:user-role-information-service:
Attribute Values Meaning
user-role-repository String Name of the DAO containing relation between users and its profiles
query-id String Name of the DAO query identifier
role-login-column String Database column that stores the username
role-name-column String Database column that stores the role name

The configuration of the rest of the Security System is done by setting up the necessary DAOs for that system. To see the configuration, check this link.

Example

ontimize:
+  security:
+    mode: default
+    jwt:
+      password: cH4nG3_M3** # ← CHANGE THIS VALUE
+    ignore-paths: /news/**, /products/**
+    user-information-service:
+      user-repository: OCLoginProfilesDao
+      query-id: login
+      user-login-column: USER_
+      user-password-column: PASSWORD
+      other-data:
+        - NAME
+        - SURNAME
+        - EMAIL
+        - NIF
+        - USERBLOCKED
+        - LASTPASSWORDUPDATE
+        - FIRSTLOGIN
+    user-role-information-service:
+      user-role-repository: OCLoginProfilesDao
+      query-id: userRole
+      role-login-column: USER_
+      role-name-column: ROLENAME
+    role-information-service:
+      role-repository: OCLoginProfilesDao
+      role-name-column: ROLENAME
+      server-permission-query-id: serverPermissions
+      server-permission-name-column: PERMISSION_NAME
+      client-permission-query-id: clientPermissions
+      client-permission-column: XMLCLIENTPERMISSION
+

TaskExecutor

  • ontimize:threadpool:
Attribute Values Meaning
coresize Integer The number of threads to keep in the pool, evenif they are idle
maxsize Integer The maximum number of threads to allow in the pool
keepalive Long When the number of threads is greater than the core, the maximum time that excess idle threads will wait for new tasks before terminating (in milliseconds)
timeout true, false Allow core threads to time out

Example

ontimize:
+   threadpool:
+      coresize: 1
+      maxsize: 2147483647
+      keepalive: 1000
+      timeout: true
+

Preferences

This module works only for Ontimize Boot version 3.9.0 or above. Actual release version: Ontimize Boot

  • ontimize:save-config:
Attribute Values Meaning
save-config true, false Allows save preferences in database
  • ontimize:save-config-dao:
Attribute Values Meaning
save-config-dao String The name of the DAO for save preferences

The configuration of the rest of the Preferences System is done by setting up the necessary DAOs for that system. To see the configuration, check this link.

Example

ontimize:
+   save-config: true
+   save-config-dao: ConfigsDao
+
diff --git a/v3/basics/charts-on-demand.html b/v3/basics/charts-on-demand.html new file mode 100644 index 0000000..9feae18 --- /dev/null +++ b/v3/basics/charts-on-demand.html @@ -0,0 +1,58 @@ + Charts On Demand | Ontimize Boot Skip to main content Link Menu Expand (external link) Document Search Copy Copied
Theme mode icon

Charts On Demand

This module works only for Ontimize Boot version 3.9.0 or above. Actual release version: Ontimize Boot

Prerequisites

You can follow this tutorial using your own application, although for this example we will use an application created using the archetype that can be found on this page and with a REST service.

There are 2 options to follow this tutorial, clone the repository with the initial state and follow the tutorial step by step, or download the final example and see which files are new and which have been updated.

Initial project

/$ git clone https://github.com/ontimize/ontimize-examples
+/ontimize-examples$ cd ontimize-examples
+/ontimize-examples$ git checkout boot-charts-initial
+

Final example

/$ git clone https://github.com/ontimize/ontimize-examples
+/ontimize-examples$ cd ontimize-examples
+/ontimize-examples$ git checkout boot-charts
+

Note: To simplify the code being written, three dots (…) may appear in some parts of the code. This indicates that there may be previous code before and after those dots.

Steps

Database

Preferences Table

With the database started, we create the new tables that will store the charts information. We’re going to need to create two different tables, one for the chart itself and one for the chart custom parameters.

CREATE TABLE PREFERENCES(ID INTEGER NOT NULL PRIMARY KEY,NAME VARCHAR(255),DESCRIPTION VARCHAR(255),PREFERENCES VARCHAR(5000),ENTITY VARCHAR(100), TYPE BIT)

Server

Add Preferences DAOs

A specific DAO will be created for each of both tables in the system, and each of them will implement a different interface.

PreferencesDao.xml

<?xml version="1.0" encoding="UTF-8"?>
+<JdbcEntitySetup
+ xmlns="http://www.ontimize.com/schema/jdbc"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.ontimize.com/schema/jdbc http://www.ontimize.com/schema/jdbc/ontimize-jdbc-dao.xsd"
+ catalog="" schema="${mainschema}" table="PREFERENCES"
+ datasource="mainDataSource" sqlhandler="dbSQLStatementHandler">
+ <DeleteKeys>
+  <Column>ID</Column>
+ </DeleteKeys>
+ <UpdateKeys>
+  <Column>ID</Column>
+ </UpdateKeys>
+ <GeneratedKey>ID</GeneratedKey>
+</JdbcEntitySetup>

PreferencesDao.java

package com.imatia.qsallcomponents.model.dao;
+
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Repository;
+
+import com.ontimize.jee.server.dao.IPreferencesDao;
+import com.ontimize.jee.server.dao.common.ConfigurationFile;
+import com.ontimize.jee.server.dao.jdbc.OntimizeJdbcDaoSupport;
+
+@Lazy
+@Repository(value = "PreferencesDao")
+@ConfigurationFile(configurationFile = "base-dao/PreferencesDao.xml", configurationFilePlaceholder = "base-dao/placeholders.properties")
+public class PreferencesDao extends OntimizeJdbcDaoSupport implements IPreferencesDao {
+
+    public static final String ATTR_ID = "ID";
+    public static final String ATTR_NAME = "NAME";
+    public static final String ATTR_DESCRIPTION = "DESCRIPTION";
+    public static final String ATTR_PREFERENCES = "PREFERENCES";
+    public static final String ATTR_TYPE = "TYPE";
+
+}

Testing the preferences system

Save preferences

Allows to save the configuration of a chart in the database to do it again quickly

  • URL: http://localhost:33333/preferences/save
  • HTTP Method: POST
  • Authorization: Basic Auth with parameters User: demo, Password: demouser
  • Body: JSON
Element Meaning
localhost:33333 Indicates the host
/preferences Indicates the service to be queried
/save Indicates the method of the service that is going to be executed

Body request:

{   "name":"chart preference",
+    "entity":"customer",
+    "service":"customers"
+    "type":"CHART",
+    "params":
+      {"title":"Chart of type",
+      "subtitle":"This is an example of a pie chart",
+      "entity":"customer",
+      "service":"customers",
+      "selectedXAxis":"CUSTOMERTYPEID",
+      "selectedYAxis":"CUSTOMERTYPEID",
+      "selectedXAxisType":4,
+      "selectedYAxisType":4,
+      "selectedTypeChart":4,
+      "selectedDataTypeChart":3}
+}

Get preferences

Execute the following request: http://localhost:33333/preferences/preferences?entity=ENTITY&service=SERVICE&type=REPORT.

Element Meaning
localhost:33333 Indicates the host
/preferences Indicates the service to be queried
/preferences Indicates the method of the service that is going to be executed
?entity=ENTITY ENTITY indicates the entity to filter the preferences
&service=SERVICE SERVICE indicates the service to filter the preferences
&type=CHART Indicates the type to filter the preferences

The authorization used for these requests is authorization of the type BASIC.

In all three cases cases, the access must be done with a user and password example:

    User: demo
+Password: demouser
+
diff --git a/v3/basics/complexqueries/index.html b/v3/basics/complexqueries/index.html new file mode 100644 index 0000000..b852c34 --- /dev/null +++ b/v3/basics/complexqueries/index.html @@ -0,0 +1,156 @@ + Complex queries | Ontimize Boot Skip to main content Link Menu Expand (external link) Document Search Copy Copied
Theme mode icon

Complex queries

Introduction

In this example the DAO *.xml files will be modified to make complex queries against other database tables.

Database structure

We will update the OfferCandidatesDao DAO to add new information in the *.xml. In this case, you will try to add a new query that reflects the other tables that are used from this DAO to relate the offers, candidates, and status. As this table only contains identifiers, our new query will allow us to know all the data and not only its identifiers.

database

Modify the DAO to add a complex query

In the *.xml, we will add a new <Queries> tag in which we will add the new queries using the <Query> tag. In this query, we can indicate the query to be executed through the <Sentence> tag. As we want to use the columns and conditions that you indicate through the request, we will use the following markers:

Query markers

Marker Meaning
#COLUMNS# Columns to be queried
#WHERE# Columns to filter the query
#WHERE_CONCAT# Adds more columns to filter the query with the AND sql operator
#ORDER# Column to order the queried values with the ORDER BY sql operator
#ORDER_CONCAT# Adds more columns to order the queried values with a comma (,)
#SCHEMA# Gets the database schema

Example

<Queries>
+    <Query>
+        <Sentence>
+            <![CDATA[
+                SELECT
+                #COLUMNS#
+                FROM
+                #SCHEMA#.OFFER_CANDIDATES
+                #WHERE#
+            ]]>
+        </Sentence>
+    </Query>
+</Queries>
+

This will be the query to execute:

SELECT ID, OFFER_ID, CANDIDATE_ID, OFFER_CANDIDATE_STATUS FROM PUBLIC.OFFER_CANDIDATES WHERE ID = 200
+

There are two ways to order the queries values, with the #ORDER# marker or with a <OrderColumn> tag

Example with #ORDER#

<Queries>
+    <Query>
+        <Sentence>
+            <![CDATA[
+                SELECT
+                #COLUMNS#
+                FROM
+                OFFER_CANDIDATES
+                #ORDER#
+            ]]>
+        </Sentence>
+    </Query>
+</Queries>
+

This will be the query to execute:

SELECT ID, OFFER_ID, CANDIDATE_ID, OFFER_CANDIDATE_STATUS FROM PUBLIC.OFFER_CANDIDATES ORDER BY ID
+

Example with <OrderColumn>

<Queries>
+    <Query>
+        <OrderColumns>
+            <OrderColumn name="CANDIDATE_ID" type="ASC"/>
+        </OrderColumns>
+        <Sentence>
+            <![CDATA[
+                SELECT
+                #COLUMNS#
+                FROM
+                OFFER_CANDIDATES
+            ]]>
+        </Sentence>
+    </Query>
+</Queries>
+

This will be the query to execute:

SELECT ID, OFFER_ID, CANDIDATE_ID, OFFER_CANDIDATE_STATUS FROM PUBLIC.OFFER_CANDIDATES ORDER BY CANDIDATE_ID
+

There are two types of OrderColumn, ASC (Ascendent) or DESC (Descendent).

Ambiguous columns

The use of the <AmbiguousColumn> tag will indicate which are the ambiguous columns (in this case, the DESCRIPTION column of OFFER_CANDIDATE_STATUS and OFFER, using the name of DESC_STATUS for OFFER_CANDIDATE_STATUS). Otherwise in case we want to modify the query that is performed by default, the identifier of the tag would be default <Query id = "default">. As we want to keep the query by default, we will put another identifier.

Example

 <Queries>
+  <Query id="details">
+   <AmbiguousColumns>
+    <AmbiguousColumn name="DESC_STATUS" prefix="OS"
+     databaseName="DESCRIPTION" />
+    <AmbiguousColumn name="OFF_STATUS" prefix="OCS"
+     databaseName="DESCRIPTION" />
+   </AmbiguousColumns>
+   <Sentence>
+   <![CDATA[
+     SELECT
+      #COLUMNS#
+     FROM
+      PUBLIC.OFFER_CANDIDATES OC
+     INNER JOIN PUBLIC.OFFER O ON
+      OC.OFFER_ID = O.ID
+     INNER JOIN PUBLIC.CANDIDATE C ON
+      OC.CANDIDATE_ID = C.ID
+     INNER JOIN PUBLIC.OFFER_STATUS OS ON
+      O.OFFER_STATUS = OS.ID
+     INNER JOIN PUBLIC.OFFER_CANDIDATE_STATUS OCS ON
+      O.OFFER_STATUS = OCS.ID
+     #WHERE#
+   ]]>
+   </Sentence>
+  </Query>
+ </Queries>
+

Complete example

OfferCandidatesDao.xml

<?xml version="1.0" encoding="UTF-8"?>
+<JdbcEntitySetup
+ xmlns="http://www.ontimize.com/schema/jdbc"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.ontimize.com/schema/jdbc http://www.ontimize.com/schema/jdbc/ontimize-jdbc-dao.xsd"
+ catalog="" schema="${mainschema}" table="OFFER_CANDIDATES"
+ datasource="mainDataSource" sqlhandler="dbSQLStatementHandler">
+ <DeleteKeys>
+  <Column>ID</Column>
+ </DeleteKeys>
+ <UpdateKeys>
+  <Column>ID</Column>
+ </UpdateKeys>
+ <GeneratedKey>ID</GeneratedKey>
+
+ <Queries>
+  <Query id="details">
+   <AmbiguousColumns>
+    <AmbiguousColumn name="DESC_STATUS" prefix="OS"
+     databaseName="DESCRIPTION" />
+    <AmbiguousColumn name="OFF_STATUS" prefix="OCS"
+     databaseName="DESCRIPTION" />
+   </AmbiguousColumns>
+   <Sentence>
+   <![CDATA[
+     SELECT
+      #COLUMNS#
+     FROM
+      PUBLIC.OFFER_CANDIDATES OC
+     INNER JOIN PUBLIC.OFFER O ON
+      OC.OFFER_ID = O.ID
+     INNER JOIN PUBLIC.CANDIDATE C ON
+      OC.CANDIDATE_ID = C.ID
+     INNER JOIN PUBLIC.OFFER_STATUS OS ON
+      O.OFFER_STATUS = OS.ID
+     INNER JOIN PUBLIC.OFFER_CANDIDATE_STATUS OCS ON
+      O.OFFER_STATUS = OCS.ID
+     #WHERE#
+   ]]>
+   </Sentence>
+  </Query>
+ </Queries>
+</JdbcEntitySetup>

In the java file, we will add a new constant, which will have the same value as the name of the identifier that we have established for the query.

OfferCandidatesDao.java

package com.ontimize.model.core.dao;
+
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Repository;
+
+import com.ontimize.jee.server.dao.common.ConfigurationFile;
+import com.ontimize.jee.server.dao.jdbc.OntimizeJdbcDaoSupport;
+
+@Repository("OfferCandidatesDao")
+@Lazy
+@ConfigurationFile(configurationFile = "dao/OfferCandidatesDao.xml", configurationFilePlaceholder = "dao/placeholders.properties")
+public class OfferCandidatesDao extends OntimizeJdbcDaoSupport {
+
+ public static final String ATTR_ID ="ID";
+ public static final String ATTR_OFFER_ID ="OFFER_ID";
+ public static final String ATTR_CANDIDATE_ID ="CANDIDATE_ID";
+ public static final String ATTR_OFFER_CANDIDATE_STATUS ="OFFER_CANDIDATE_STATUS";
+ public static final String QUERY_OFFER_DETAILS = "details";
+  
+}

Modify the interface and the service to add the new method

We will update the IOfferService interface to add the new method that will perform the query. In case of being the default query, it would not be necessary to do any of the steps indicated below.

IOfferService.java

public interface IOfferService {
+
+        ...
+ // OFFER CANDIDATES
+ ...
+ public EntityResult offerCandidateDetailsQuery(Map<String, Object> keyMap, List<String> attrList) throws OntimizeJEERuntimeException;
+
+        ...
+ // OFFER CANDIDATES STATUS
+        ...
+}

In the service, we implement the new interface method, using the daoHelper to create the query, but adding a new parameter after the list of columns to query, which will be the identifier of the query that we have created in the DAO (and that we have associated with a constant in the corresponding java file).

OfferService.java

@Service("OfferService")
+@Lazy
+public class OfferService implements IOfferService {
+
+ ...
+
+ @Override
+ public EntityResult offerCandidateDetailsQuery(Map<String, Object> keyMap, List<String> attrList)
+   throws OntimizeJEERuntimeException {
+  return this.daoHelper.query(this.offerCandidatesDao, keyMap, attrList, OfferCandidatesDao.QUERY_OFFER_DETAILS);
+ }
+
+ ...
+}
diff --git a/v3/basics/exportdata/export-data-to-csv.html b/v3/basics/exportdata/export-data-to-csv.html new file mode 100644 index 0000000..d9291cc --- /dev/null +++ b/v3/basics/exportdata/export-data-to-csv.html @@ -0,0 +1,97 @@ + Export data to csv | Ontimize Boot Skip to main content Link Menu Expand (external link) Document Search Copy Copied
Theme mode icon

This module works only for Ontimize Boot version 3.9.0 or above. Actual release version: Ontimize Boot

Introduction

Ontimize provides a system to export the DAO data of a service and dump it directly to an *.csv file. This system uses a JSON template where all the necessary parameters are indicated to use in the body of the request to obtain the file.

Prerequisites

You can follow this tutorial using your own application, although for this example we will use an application created using the archetype that can be found on this page and with a REST service.

There are 2 options to follow this tutorial, clone the repository with the initial state and follow the tutorial step by step, or download the final example and see which files are new and which have been updated.

Initial project

/$ git clone https://github.com/ontimize/ontimize-examples
+/ontimize-examples$ cd ontimize-examples
+/ontimize-examples$ git checkout boot-export-initial
+

Final example

/$ git clone https://github.com/ontimize/ontimize-examples
+/ontimize-examples$ cd ontimize-examples
+/ontimize-examples$ git checkout boot-export
+

Steps

Note: To simplify the code being written, three dots (…) may appear in some parts of the code. This indicates that there may be previous code before and after those dots.

Add dependencies

Two dependencies need to be added, one to the ws module containing the controllers (so that it can respond to the export request) and one to the boot module to be able to load the autoconfigurator in the application.yml file for export.

projectwiki-boot/pom.xml

    <dependencies>
+        ...
+        <dependency>
+            <groupId>com.ontimize.boot</groupId>
+            <artifactId>ontimize-boot-starter-webaddons</artifactId>
+        </dependency>
+        ...
+    </dependencies>

projectwiki-ws/pom.xml

    <dependencies>
+        ...
+        <dependency>
+            <groupId>com.ontimize.jee</groupId>
+            <artifactId>ontimize-jee-webclient-addons</artifactId>
+        </dependency>
+        ...
+    </dependencies>

Add export url to application.yml

In the application.yml file, a configuration will be added to allow indicating the export URL and the extension used.

ontimize:export:

Attribute Values Meaning
url String Specifies the path to use the export system.
enable Boolean Indicates when export is enabled.

Example

...
+ontimize:
+...
+    export:
+      url: /export
+      enable: true
+...
+

Check the export system

An application such as Postman will be used to execute the REST export request for our project. A POST request will be made to the previously configured url using *.json as the body of the request containing all the necessary information for the export.

  • URL: http://localhost:33333/export/csv
  • HTTP Method: POST
  • Authorization: User: demo, Password: demouser
  • Body: JSON
{
+    "queryParam": {
+        "columns": [
+            "SURNAME",
+            "PHONE",
+            "ID",
+            "EMAIL",
+            "WAGE_LEVEL",
+            "COMMENT",
+            "BIRTHDAY",
+            "DNI",
+            "SPECIALTIES",
+            "NAME"
+        ],
+        "sqltypes": {
+            "SURNAME": 12,
+            "PHONE": 12,
+            "ID": 4,
+            "EMAIL": 12,
+            "WAGE_LEVEL": 2,
+            "COMMENT": 12,
+            "BIRTHDAY": 91,
+            "DNI": 12,
+            "SPECIALTIES": 12,
+            "NAME": 12
+        },
+        "offset": -1,
+        "pageSize": 25,
+    },
+    "service": "CandidateService",
+    "dao": "candidate",
+    "path": "/candidates",
+    "advQuery": false,
+    "columns": {
+        "ID": {},
+        "DNI": {},
+        "NAME": {},
+        "SURNAME": {},
+        "EMAIL": {},
+        "PHONE": {},
+        "BIRTHDAY": {},
+        "SPECIALTIES": {},
+        "WAGE_LEVEL": {},
+        "COMMENT": {}
+    },
+    "columnTitles": {
+        "SURNAME": "Surname",
+        "PHONE": "Phone",
+        "ID": "Id.",
+        "EMAIL": "Email",
+        "WAGE_LEVEL": "Wage level",
+        "COMMENT": "Comment",
+        "BIRTHDAY": "Birthday",
+        "DNI": "DNI",
+        "SPECIALTIES": "Speciality",
+        "NAME": "Name"
+    },
+    "columnTypes": {
+        "SURNAME": "java.lang.String",
+        "PHONE": "java.lang.String",
+        "ID": "java.lang.Integer",
+        "EMAIL": "java.lang.String",
+        "WAGE_LEVEL": "java.lang.Integer",
+        "COMMENT": "java.lang.String",
+        "BIRTHDAY": "java.sql.Date",
+        "DNI": "java.lang.String",
+        "SPECIALTIES": "java.lang.String",
+        "NAME": "java.lang.String"
+    }
+}

After click in Send button, click in Save Response ^ and save it to a file. Then, open the *.csv file in your editor.

Postman

postman

CSV

export

Creating the JSON for exporting data

This is the list of values accepted by the JSON request to generate the export file.

Attribute Values Meaning
queryParam JSON Object A JSON object defining the columns and sqltypes elements.
AttributeValuesMeaning
columnsJSON ArrayAn array that indicates which columns to query in the database.
sqltypesJSON ObjectAn object containing the key-value pairs for the data type contained in the database. As a key, the column name and as a value, the integer corresponding to the database data type, which can be found at this link.
offsetIntegerInteger to especify a page to query. -1 if don't want it
pageSizeIntegerThe size of the page for advanced query. Useless with advQuery: false
service String This is the bean name of the service you want to query. (The name that appears inside the @Service() annotation, e.g.: @Service(“SERVICE_NAME”) = SERVICE_NAME)
dao String Name of the query method of the service to be queried without the suffix Query or PaginationQuery, e.g.: customerQuery = customer
path String Name of the path to be queried
advQuery Boolean Determines whether the DAO query method is Query or PaginationQuery.
columns JSON Object Determines the order of the columns in the export
columnTitles JSON Object Translates the name of the column to be exported, replacing it with the value of the key.
columnTypes JSON Object Key-value pairs that indicate how the data will be treated within the cell, e.g.: String, Date, Integer, etc. These data types are those corresponding to the database data type, which can be found at this link
diff --git a/v3/basics/exportdata/export-data-to-pdf.html b/v3/basics/exportdata/export-data-to-pdf.html new file mode 100644 index 0000000..057c435 --- /dev/null +++ b/v3/basics/exportdata/export-data-to-pdf.html @@ -0,0 +1,118 @@ + Export data to pdf | Ontimize Boot Skip to main content Link Menu Expand (external link) Document Search Copy Copied
Theme mode icon

This module works only for Ontimize Boot version 3.9.0 or above. Actual release version: Ontimize Boot

Introduction

Ontimize provides a system to export the DAO data of a service and dump it directly to an *.pdf file. This system uses a JSON template where all the necessary parameters are indicated to use in the body of the request to obtain the file.

Prerequisites

You can follow this tutorial using your own application, although for this example we will use an application created using the archetype that can be found on this page and with a REST service.

There are 2 options to follow this tutorial, clone the repository with the initial state and follow the tutorial step by step, or download the final example and see which files are new and which have been updated.

Initial project

/$ git clone https://github.com/ontimize/ontimize-examples
+/ontimize-examples$ cd ontimize-examples
+/ontimize-examples$ git checkout boot-export-initial
+

Final example

/$ git clone https://github.com/ontimize/ontimize-examples
+/ontimize-examples$ cd ontimize-examples
+/ontimize-examples$ git checkout boot-export
+

Steps

To simplify the code being written, three dots (…) may appear in some parts of the code. This indicates that there may be previous code before and after those dots.

Add dependencies

Two dependencies need to be added, one to the ws module containing the controllers (so that it can respond to the export request) and one to the boot module to be able to load the autoconfigurator in the application.yml file for export.

projectwiki-boot/pom.xml

    <dependencies>
+        ...
+        <dependency>
+            <groupId>com.ontimize.boot</groupId>
+            <artifactId>ontimize-boot-starter-webaddons</artifactId>
+        </dependency>
+        ...
+    </dependencies>

projectwiki-ws/pom.xml

    <dependencies>
+        ...
+        <dependency>
+            <groupId>com.ontimize.jee</groupId>
+            <artifactId>ontimize-jee-webclient-addons</artifactId>
+        </dependency>
+        ...
+    </dependencies>

Add export url to application.yml

In the application.yml file, a configuration will be added to allow indicating the export URL and the extension used.

ontimize:export:

Attribute Values Meaning
url String Specifies the path to use the export system.
enable Boolean Indicates when export is enabled.

Example

...
+ontimize:
+...
+    export:
+      url: /export
+      enable: true
+...
+

Check the export system

An application such as Postman will be used to execute the REST export request for our project. A POST request will be made to the previously configured url using *.json as the body of the request containing all the necessary information for the export.

  • URL: http://localhost:33333/export/pdf
  • HTTP Method: POST
  • Authorization: User: demo, Password: demouser
  • Body: JSON
{
+    "queryParam": {
+        "columns": [
+            "SURNAME",
+            "PHONE",
+            "ID",
+            "EMAIL",
+            "WAGE_LEVEL",
+            "COMMENT",
+            "BIRTHDAY",
+            "DNI",
+            "SPECIALTIES",
+            "NAME"
+        ],
+        "sqltypes": {
+            "SURNAME": 12,
+            "PHONE": 12,
+            "ID": 4,
+            "EMAIL": 12,
+            "WAGE_LEVEL": 2,
+            "COMMENT": 12,
+            "BIRTHDAY": 91,
+            "DNI": 12,
+            "SPECIALTIES": 12,
+            "NAME": 12
+        },
+        "offset": -1,
+        "pageSize": 25,
+    },
+    "service": "CandidateService",
+    "path": "/candidates",
+    "dao": "candidate",
+    "advQuery": false,
+    "columns": {
+        "ID": {},
+        "DNI": {},
+        "NAME": {},
+        "SURNAME": {},
+        "EMAIL": {},
+        "PHONE": {},
+        "BIRTHDAY": {},
+        "SPECIALTIES": {},
+        "WAGE_LEVEL": {},
+        "COMMENT": {}
+    },
+    "columnTitles": {
+        "SURNAME": "Surname",
+        "PHONE": "Phone",
+        "ID": "Id.",
+        "EMAIL": "Email",
+        "WAGE_LEVEL": "Wage level",
+        "COMMENT": "Comment",
+        "BIRTHDAY": "Birthday",
+        "DNI": "DNI",
+        "SPECIALTIES": "Speciality",
+        "NAME": "Name"
+    },
+    "columnTypes": {
+        "SURNAME": "java.lang.String",
+        "PHONE": "java.lang.String",
+        "ID": "java.lang.Integer",
+        "EMAIL": "java.lang.String",
+        "WAGE_LEVEL": "java.lang.Integer",
+        "COMMENT": "java.lang.String",
+        "BIRTHDAY": "java.sql.Date",
+        "DNI": "java.lang.String",
+        "SPECIALTIES": "java.lang.String",
+        "NAME": "java.lang.String"
+    },
+    "styles": {
+        "greenBG": {
+            "fillBackgroundColor": "GREEN"
+        },
+        "redBG": {
+            "fillBackgroundColor": "RED"
+        },
+        "blueBG": {
+            "fillBackgroundColor": "BLUE"
+        }
+    },
+    "columnStyles": {
+        "NAME": "greenBG"
+    },
+    "rowStyles": {
+        "1": "blueBG"
+    },
+    "cellStyles": {
+        "7,7": "greenBG",
+        "2,2,5,4": "redBG"
+    }
+}

After click in Send button, click in Save Response ^ and save it to a file. Then, open the *.pdf file in your editor.

Postman

postman

Pdf

export

Creating the JSON for exporting data

This is the list of values accepted by the JSON request to generate the export file.

Attribute Values Meaning
queryParam JSON Object A JSON object defining the columns and sqltypes elements.
AttributeValuesMeaning
columnsJSON ArrayAn array that indicates which columns to query in the database.
sqltypesJSON ObjectAn object containing the key-value pairs for the data type contained in the database. As a key, the column name and as a value, the integer corresponding to the database data type, which can be found at this link.
offsetIntegerInteger to especify a page to query. -1 if don't want it
pageSizeIntegerThe size of the page for advanced query. Useless with advQuery: false
service String This is the bean name of the service you want to query. (The name that appears inside the @Service() annotation, e.g.: @Service(“SERVICE_NAME”) = SERVICE_NAME)
dao String Name of the query method of the service to be queried without the suffix Query or PaginationQuery, e.g.: customerQuery = customer
path String Name of the path to be queried
advQuery Boolean Determines whether the DAO query method is Query or PaginationQuery.
columns JSON Object Determines the order of the columns in the export
columnTitles JSON Object Translates the name of the column to be exported, replacing it with the value of the key.
columnTypes JSON Object Key-value pairs that indicate how the data will be treated within the cell, e.g.: String, Date, Integer, etc. These data types are those corresponding to the database data type, which can be found at this link
styles JSON Object JSON objects used to indicate the styles that the cell will have, grouped under the same name. Only the following styles are supported:
AttributeValuesMeaning
dataFormatStringStringFormat string for some formatter, like decimals, e.g.: #,##0.00
alignmentStringThese are the possible values for the horizontal alignment: GENERAL, LEFT, CENTER, RIGHT, FILL, JUSTIFY, CENTER_SELECTION, DISTRIBUTED
verticalAlignmentStringThese are the possible values for the horizontal alignment: TOP, CENTER, BOTTOM, JUSTIFY, DISTRIBUTED
fillBackgroundColorStringThese are the possible values for the background colors: BLACK1, WHITE1, RED1, BRIGHT_GREEN1, BLUE1, YELLOW1, PINK1, TURQUOISE1, BLACK, WHITE, RED, BRIGHT_GREEN, BLUE, YELLOW, PINK, TURQUOISE, DARK_RED, GREEN, DARK_BLUE, DARK_YELLOW, VIOLET, TEAL, GREY_25_PERCENT, GREY_50_PERCENT, CORNFLOWER_BLUE, MAROON, LEMON_CHIFFON, LIGHT_TURQUOISE1, ORCHID, CORAL, ROYAL_BLUE, LIGHT_CORNFLOWER_BLUE, SKY_BLUE, LIGHT_TURQUOISE, LIGHT_GREEN, LIGHT_YELLOW, PALE_BLUE, ROSE, LAVENDER, TAN, LIGHT_BLUE, AQUA, LIME, GOLD, LIGHT_ORANGE, ORANGE, BLUE_GREY, GREY_40_PERCENT, DARK_TEAL, SEA_GREEN, DARK_GREEN, OLIVE_GREEN, BROWN, PLUM
columnStyles JSON Object Key-value pairs, where the key is the column name and the value is the name of the style defined in the styles section. This value has priority 2 (the lower value, the higher priority).
rowStyles JSON Object Key-value pairs, where the key is the row index and the value is the name of the style defined in the styles section. This value has priority 3 (the lower value, the higher priority).
cellStyles JSON Object Key-value pairs, where the key is the cell to be selected (row, column) or the range of cells (start row, start column, end row, end column) and the value is the name of the style defined in the styles section. This value has priority 1 (the lower the value, the higher the priority).
diff --git a/v3/basics/exportdata/export-data-to-xlsx.html b/v3/basics/exportdata/export-data-to-xlsx.html new file mode 100644 index 0000000..7ea1cd1 --- /dev/null +++ b/v3/basics/exportdata/export-data-to-xlsx.html @@ -0,0 +1,118 @@ + Export data to xlsx | Ontimize Boot Skip to main content Link Menu Expand (external link) Document Search Copy Copied
Theme mode icon

This module works only for Ontimize Boot version 3.9.0 or above. Actual release version: Ontimize Boot

Introduction

Ontimize provides a system to export the DAO data of a service and dump it directly to an *.xlsx file. This system uses a JSON template where all the necessary parameters are indicated to use in the body of the request to obtain the file.

Prerequisites

You can follow this tutorial using your own application, although for this example we will use an application created using the archetype that can be found on this page and with a REST service.

There are 2 options to follow this tutorial, clone the repository with the initial state and follow the tutorial step by step, or download the final example and see which files are new and which have been updated.

Initial project

/$ git clone https://github.com/ontimize/ontimize-examples
+/ontimize-examples$ cd ontimize-examples
+/ontimize-examples$ git checkout boot-export-initial
+

Final example

/$ git clone https://github.com/ontimize/ontimize-examples
+/ontimize-examples$ cd ontimize-examples
+/ontimize-examples$ git checkout boot-export
+

Steps

To simplify the code being written, three dots (…) may appear in some parts of the code. This indicates that there may be previous code before and after those dots.

Add dependencies

Two dependencies need to be added, one to the ws module containing the controllers (so that it can respond to the export request) and one to the boot module to be able to load the autoconfigurator in the application.yml file for export.

projectwiki-boot/pom.xml

    <dependencies>
+        ...
+        <dependency>
+            <groupId>com.ontimize.boot</groupId>
+            <artifactId>ontimize-boot-starter-webaddons</artifactId>
+        </dependency>
+        ...
+    </dependencies>

projectwiki-ws/pom.xml

    <dependencies>
+        ...
+        <dependency>
+            <groupId>com.ontimize.jee</groupId>
+            <artifactId>ontimize-jee-webclient-addons</artifactId>
+        </dependency>
+        ...
+    </dependencies>

Add export url to application.yml

In the application.yml file, a configuration will be added to allow indicating the export URL and the extension used.

ontimize:export:

Attribute Values Meaning
url String Specifies the path to use the export system.
enable Boolean Indicates when export is enabled.

Example

...
+ontimize:
+...
+   export:
+      url: /export
+      enable: true
+...
+

Check the export system

An application such as Postman will be used to execute the REST export request for our project. A POST request will be made to the previously configured url using *.json as the body of the request containing all the necessary information for the export.

  • URL: http://localhost:33333/export/xlsx
  • HTTP Method: POST
  • Authorization: User: demo, Password: demouser
  • Body: JSON
{
+    "queryParam": {
+        "columns": [
+            "SURNAME",
+            "PHONE",
+            "ID",
+            "EMAIL",
+            "WAGE_LEVEL",
+            "COMMENT",
+            "BIRTHDAY",
+            "DNI",
+            "SPECIALTIES",
+            "NAME"
+        ],
+        "sqltypes": {
+            "SURNAME": 12,
+            "PHONE": 12,
+            "ID": 4,
+            "EMAIL": 12,
+            "WAGE_LEVEL": 2,
+            "COMMENT": 12,
+            "BIRTHDAY": 91,
+            "DNI": 12,
+            "SPECIALTIES": 12,
+            "NAME": 12
+        }
+        "offset": -1,
+        "pageSize": 25
+    },
+    "service": "CandidateService",
+    "dao": "candidate",
+    "path": "/candidates",
+    "advQuery": false,
+    "columns": {
+        "ID": {},
+        "DNI": {},
+        "NAME": {},
+        "SURNAME": {},
+        "EMAIL": {},
+        "PHONE": {},
+        "BIRTHDAY": {},
+        "SPECIALTIES": {},
+        "WAGE_LEVEL": {},
+        "COMMENT": {}
+    },
+    "columnTitles": {
+        "SURNAME": "Surname",
+        "PHONE": "Phone",
+        "ID": "Id.",
+        "EMAIL": "Email",
+        "WAGE_LEVEL": "Wage level",
+        "COMMENT": "Comment",
+        "BIRTHDAY": "Birthday",
+        "DNI": "DNI",
+        "SPECIALTIES": "Speciality",
+        "NAME": "Name"
+    },
+    "columnTypes": {
+        "SURNAME": "java.lang.String",
+        "PHONE": "java.lang.String",
+        "ID": "java.lang.Integer",
+        "EMAIL": "java.lang.String",
+        "WAGE_LEVEL": "java.lang.Integer",
+        "COMMENT": "java.lang.String",
+        "BIRTHDAY": "java.sql.Date",
+        "DNI": "java.lang.String",
+        "SPECIALTIES": "java.lang.String",
+        "NAME": "java.lang.String"
+    },
+    "styles": {
+        "greenBG": {
+            "fillBackgroundColor": "GREEN"
+        },
+        "redBG": {
+            "fillBackgroundColor": "RED"
+        },
+        "blueBG": {
+            "fillBackgroundColor": "BLUE"
+        }
+    },
+    "columnStyles": {
+        "NAME": "greenBG"
+    },
+    "rowStyles": {
+        "1": "blueBG"
+    },
+    "cellStyles": {
+        "7,7": "greenBG",
+        "2,2,5,4": "redBG"
+    }
+}

After click in Send button, click in Save Response ^ and save it to a file. Then, open the *.xlsx file in your editor.

Postman

postman

Excel

export

Creating the JSON for exporting data

This is the list of values accepted by the JSON request to generate the export file.

Attribute Values Meaning
queryParam JSON Object A JSON object defining the columns and sqltypes elements.
AttributeValuesMeaning
columnsJSON ArrayAn array that indicates which columns to query in the database.
sqltypesJSON ObjectAn object containing the key-value pairs for the data type contained in the database. As a key, the column name and as a value, the integer corresponding to the database data type, which can be found at this link.
offsetIntegerInteger to especify a page to query. -1 if don't want it
pageSizeIntegerThe size of the page for advanced query. Useless withadvQuery: false
service String This is the bean name of the service you want to query. (The name that appears inside the @Service() annotation, e.g.: @Service(“SERVICE_NAME”) = SERVICE_NAME)
dao String Name of the query method of the service to be queried without the suffix Query or PaginationQuery, e.g.: customerQuery = customer
path String Name of the path to be queried
advQuery Boolean Determines whether the DAO query method is Query or PaginationQuery.
columns JSON Object Determines the order of the columns in the export
columnTitles JSON Object Translates the name of the column to be exported, replacing it with the value of the key.
columnTypes JSON Object Key-value pairs that indicate how the data will be treated within the cell, e.g.: String, Date, Integer, etc. These data types are those corresponding to the database data type, which can be found at this link
styles JSON Object JSON objects used to indicate the styles that the cell will have, grouped under the same name. Only the following styles are supported:
AttributeValuesMeaning
dataFormatStringStringFormat string for some formatter, like decimals, e.g.: #,##0.00
alignmentStringThese are the possible values for the horizontal alignment: GENERAL, LEFT, CENTER, RIGHT, FILL, JUSTIFY, CENTER_SELECTION, DISTRIBUTED
verticalAlignmentStringThese are the possible values for the horizontal alignment: TOP, CENTER, BOTTOM, JUSTIFY, DISTRIBUTED
fillBackgroundColorStringThese are the possible values for the background colors: BLACK1, WHITE1, RED1, BRIGHT_GREEN1, BLUE1, YELLOW1, PINK1, TURQUOISE1, BLACK, WHITE, RED, BRIGHT_GREEN, BLUE, YELLOW, PINK, TURQUOISE, DARK_RED, GREEN, DARK_BLUE, DARK_YELLOW, VIOLET, TEAL, GREY_25_PERCENT, GREY_50_PERCENT, CORNFLOWER_BLUE, MAROON, LEMON_CHIFFON, LIGHT_TURQUOISE1, ORCHID, CORAL, ROYAL_BLUE, LIGHT_CORNFLOWER_BLUE, SKY_BLUE, LIGHT_TURQUOISE, LIGHT_GREEN, LIGHT_YELLOW, PALE_BLUE, ROSE, LAVENDER, TAN, LIGHT_BLUE, AQUA, LIME, GOLD, LIGHT_ORANGE, ORANGE, BLUE_GREY, GREY_40_PERCENT, DARK_TEAL, SEA_GREEN, DARK_GREEN, OLIVE_GREEN, BROWN, PLUM
columnStyles JSON Object Key-value pairs, where the key is the column name and the value is the name of the style defined in the styles section. This value has priority 2 (the lower value, the higher priority).
rowStyles JSON Object Key-value pairs, where the key is the row index and the value is the name of the style defined in the styles section. This value has priority 3 (the lower value, the higher priority).
cellStyles JSON Object Key-value pairs, where the key is the cell to be selected (row, column) or the range of cells (start row, start column, end row, end column) and the value is the name of the style defined in the styles section. This value has priority 1 (the lower the value, the higher the priority).
diff --git a/v3/basics/exportdata/index.html b/v3/basics/exportdata/index.html new file mode 100644 index 0000000..8e67be7 --- /dev/null +++ b/v3/basics/exportdata/index.html @@ -0,0 +1 @@ + Export data | Ontimize Boot Skip to main content Link Menu Expand (external link) Document Search Copy Copied
Theme mode icon

Export data

This module works only for Ontimize Boot version 3.9.0 or above. Actual release version: Ontimize Boot

Ontimize provides a system to export the DAO data of a service and dump it directly to a file. This system uses a JSON template where all the necessary parameters are indicated to use in the body of the request to obtain the file.

The export options are:

diff --git a/v3/basics/index.html b/v3/basics/index.html new file mode 100644 index 0000000..8d93f29 --- /dev/null +++ b/v3/basics/index.html @@ -0,0 +1 @@ + Basics | Ontimize Boot Skip to main content Link Menu Expand (external link) Document Search Copy Copied
Theme mode icon

This section pretends to show the basic elements for the development of an application using Ontimize Boot

diff --git a/v3/basics/migration/index.html b/v3/basics/migration/index.html new file mode 100644 index 0000000..6b55477 --- /dev/null +++ b/v3/basics/migration/index.html @@ -0,0 +1,274 @@ + Migration from Ontimize 1.x.x to 3.x.x | Ontimize Boot Skip to main content Link Menu Expand (external link) Document Search Copy Copied
Theme mode icon

Migrate from Ontimize 1.x.x to 3.x.x

Introduction

In this tutorial we are going to explain how to migrate a project from Ontimize version 1.x.x that works with JDK 8 to Ontimize version 3.x.x that works with JDK 11. For this example we will download a project like the explained in this training course.

Prerequisites

You can follow this tutorial using your own application, although for this example we will use an application created using the archetype that can be found on this page and with a REST service.

There are 2 options to follow this tutorial, clone the repository with the initial state and follow the tutorial step by step, or download the final example and see which files are new and which have been updated.

Initial project

/$ git clone https://github.com/ontimize/ontimize-examples 
+/ontimize-examples$ cd ontimize-examples
+/ontimize-examples$ git checkout boot-migration-3.x.x-initial
+

Final example

/$ git clone https://github.com/ontimize/ontimize-examples 
+/ontimize-examples$ cd ontimize-examples
+/ontimize-examples$ git checkout boot-migration-3.x.x
+

To simplify the code being written, three dots (…) may appear in some parts of the code. This indicates that there may be previous code before and after those dots.

Steps

Ontimize version

First of all we need to update the version of Ontimize (ontimize-boot-parent) located in the parent of the project. Use always the latest version: Ontimize Boot Parent

pom.xml

  <parent>
+    <groupId>com.ontimize.boot</groupId>
+    <artifactId>ontimize-boot-parent</artifactId>
+    <version>3.x.x</version>
+  </parent>

Java version

In the project properties we will change the java version from 1.8 to 11, both for the main pom.xml and for the hr-model module pom.xml.

pom.xml

  <properties>
+    . . .
+    <java.version>11</java.version>
+    . . .
+  </properties>

Modifying application.yml

In the new version of Ontimize Boot, it has been decided to change the properties from camelCase to kebab-case, so you have to modify the application.yml.

endpoints:
+   api:
+      enabled: true
+logging:
+   level:
+      root: info
+ontimize:
+   corsfilter:
+      enabled: true
+   globalcors:
+      cors-configurations:
+         '[/**]':
+            allowed-origins: "*"
+            allowed-headers: "*"
+            exposed-headers: ["X-Auth-Token","Content-disposition","X-Requested-With"]
+            allowed-methods:
+            - GET
+            - POST
+            - PUT
+            - OPTIONS
+            - DELETE
+   jdbc:
+      name-convention: upper
+      sqlhandler: hsqldb
+      sql-condition-processor:
+         uppper-string: true
+         upper-like: true
+   security:
+      mode: default
+      ignore-paths: /app/**
+      role-information-service:
+         role-repository: UserRoleDao
+         role-name-column: ROLENAME
+         server-permission-query-id: serverPermissions
+         server-permission-name-column: PERMISSION_NAME
+         client-permission-query-id: clientPermissions
+         client-permission-column: XMLCLIENTPERMISSION
+      user-information-service:
+         user-repository: UserDao
+         user-login-column: USER_
+         user-password-column: PASSWORD
+         query-id: login
+         other-data:
+            - NAME
+            - SURNAME
+            - EMAIL
+            - NIF
+            - USERBLOCKED
+            - LASTPASSWORDUPDATE
+            - FIRSTLOGIN
+      user-role-information-service:
+         user-role-repository: UserRoleDao
+         query-id: userRole
+         role-login-column: USER_
+         role-name-column: ROLENAME
+server:
+   port: 33333
+   tomcat:
+      uri-encoding: UTF-8
+   compression:
+      enabled: true
+      mime-types: application/json, application/xml
+spring:
+   datasource:
+      driver-class-name: org.hsqldb.jdbcDriver
+      jdbc-url: jdbc:hsqldb:hsql://localhost:9013/templateDB
+      username: SA
+      password:
+      initial-size: 10
+      test-on-borrow: true
+   main:
+      banner-mode: 'off'
+   session:
+      store-type: none
+   autoconfigure:
+      exclude: |
+         org.springframework.boot.autoconfigure.security.SecurityAutoConfiguration, org.springframework.boot.actuate.autoconfigure.ManagementWebSecurityAutoConfiguration, org.springframework.boot.autoconfigure.security.FallbackWebSecurityAutoConfiguration
+

Renaming packages

With the new version, the ontimize-core library has been merged with ontimize-jee, and some classes have changed the name of their package, among them, the EntityResult Interface. To learn more about this class, check the following link.

The package name of EntityResult has been renamed from com.ontimize.db.EntityResult to com.ontimize.jee.common.dto.EntityResult.

Api module

In the hr-api module we need to change the name of the package of this class in all the interfaces that are using it.

ICandidateService.java

package com.ontimize.hr.api.core.service;
+
+. . .
+import com.ontimize.jee.common.dto.EntityResult;
+. . .
+
+public interface ICandidateService {
+
+ // CANDIDATE
+ public EntityResult candidateQuery(Map<String, Object> keyMap, List<String> attrList) throws OntimizeJEERuntimeException;
+ public EntityResult candidateInsert(Map<String, Object> attrMap) throws OntimizeJEERuntimeException;
+ public EntityResult candidateUpdate(Map<String, Object> attrMap, Map<String, Object> keyMap) throws OntimizeJEERuntimeException;
+ public EntityResult candidateDelete(Map<String, Object> keyMap) throws OntimizeJEERuntimeException;
+
+}

IMasterService.java

package com.ontimize.hr.api.core.service;
+
+. . .
+import com.ontimize.jee.common.dto.EntityResult;
+. . .
+
+public interface IMasterService {
+
+    . . .
+	 // EDUCATION
+	 public EntityResult educationQuery(Map<String, Object> keyMap, List<String> attrList) throws OntimizeJEERuntimeException;
+	 public EntityResult educationInsert(Map<String, Object> attrMap) throws OntimizeJEERuntimeException;
+	 public EntityResult educationUpdate(Map<String, Object> attrMap, Map<String, Object> keyMap) throws OntimizeJEERuntimeException;
+	 public EntityResult educationDelete(Map<String, Object> keyMap) throws OntimizeJEERuntimeException;
+     . . .
+}

IOfferService.java

package com.ontimize.hr.api.core.service;
+
+. . .
+import com.ontimize.jee.common.dto.EntityResult;
+. . .
+
+public interface IOfferService {
+
+    . . .
+	// OFFER
+	public EntityResult offerQuery(Map<String, Object> keyMap, List<String> attrList) throws OntimizeJEERuntimeException;
+	public EntityResult offerInsert(Map<String, Object> attrMap) throws OntimizeJEERuntimeException;
+	public EntityResult offerUpdate(Map<String, Object> attrMap, Map<String, Object> keyMap) throws OntimizeJEERuntimeException;
+	public EntityResult offerDelete(Map<String, Object> keyMap) throws OntimizeJEERuntimeException;
+    . . .
+
+}

IUserService.java

package com.ontimize.hr.api.core.service;
+
+. . .
+import com.ontimize.jee.common.dto.EntityResult;
+. . .
+
+public interface IUserService {
+
+	public EntityResult userQuery(Map<?, ?> keyMap, List<?> attrList);
+	public EntityResult userInsert(Map<?, ?> attrMap);
+	public EntityResult userUpdate(Map<?, ?> attrMap, Map<?, ?> keyMap);
+	public EntityResult userDelete(Map<?, ?> keyMap);
+
+}

Model module

Having changed the class in the interface, we also have to change it in the service. For this we go to the hr-model module and replace the import of all services.

CandidateService.java

package com.ontimize.hr.model.core.service;
+
+. . .
+import com.ontimize.jee.common.dto.EntityResult;
+. . .
+
+@Service("CandidateService")
+@Lazy
+public class CandidateService implements ICandidateService {
+
+	@Autowired
+	private CandidateDao candidateDao;
+    . . .
+}

MasterService.java

package com.ontimize.hr.model.core.service;
+
+. . .
+import com.ontimize.jee.common.dto.EntityResult;
+. . .
+
+@Service("MasterService")
+@Lazy
+public class MasterService implements MasterService {
+
+	@Autowired
+	private EducationDao educationDao;
+    . . .
+}

OfferService.java

package com.ontimize.hr.model.core.service;
+
+. . .
+import com.ontimize.jee.common.dto.EntityResult;
+. . .
+
+@Service("OfferService")
+@Lazy
+public class OfferService implements IOfferService {
+
+	@Autowired
+	private OfferDao offerDao;
+    . . .
+}

UserService.java

package com.ontimize.hr.model.core.service;
+
+. . .
+import com.ontimize.jee.common.dto.EntityResult;
+. . .
+
+@Lazy
+@Service("UserService")
+public class UserService implements IUserService {
+
+	@Autowired
+	private UserDao userDao;
+    . . .
+}

Ws module

In this case it is not just about changing the name of the package, it must also be taken into account that the EntityResult class is now an Interface, so an object cannot be instantiated from it. To do this, we will use the EntityResultMapImpl class.

Go to the hr-ws module and replace the import of the EntityResult class in the rest controllers and make the following changes:

OfferRestController.java

package com.ontimize.hr.ws.core.rest;
+
+. . .
+import com.ontimize.jee.common.db.SQLStatementBuilder;
+import com.ontimize.jee.common.db.SQLStatementBuilder.BasicExpression;
+import com.ontimize.jee.common.db.SQLStatementBuilder.BasicField;
+import com.ontimize.jee.common.db.SQLStatementBuilder.BasicOperator;
+import com.ontimize.jee.common.dto.EntityResult;
+import com.ontimize.jee.common.dto.EntityResultMapImpl;
+. . .
+
+@RestController
+@RequestMapping("/offers")
+@ComponentScan(basePackageClasses = { com.ontimize.hr.api.core.service.IOfferService.class })
+public class OfferRestController extends ORestController<IOfferService> {
+
+	. . .
+
+	@RequestMapping(value = "currentOffers/search", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
+	public EntityResult currentOffersSearch(@RequestBody Map<String, Object> req) {
+		try {
+			List<String> columns = (List<String>) req.get("columns");
+			Map<String, Object> key = new HashMap<String, Object>();
+			key.put(SQLStatementBuilder.ExtendedSQLConditionValuesProcessor.EXPRESSION_KEY,
+					searchBetween(OfferDao.ATTR_START_DATE));
+			return offerService.offerQuery(key, columns);
+		} catch (Exception e) {
+			e.printStackTrace();
+			EntityResult res = new EntityResultMapImpl();
+			res.setCode(EntityResult.OPERATION_WRONG);
+			return res;
+		}
+	}
+
+	@RequestMapping(value = "yearOffers/search", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
+	public EntityResult yearOffersSearch(@RequestBody Map<String, Object> req) {
+		try {
+			List<String> columns = (List<String>) req.get("columns");
+			Map<String, Object> filter = (Map<String, Object>) req.get("filter");
+			int year = (int) filter.get("YEAR");
+			Map<String, Object> key = new HashMap<String, Object>();
+			key.put(SQLStatementBuilder.ExtendedSQLConditionValuesProcessor.EXPRESSION_KEY,
+					searchBetweenWithYear(OfferDao.ATTR_START_DATE, year));
+			return offerService.offerQuery(key, columns);
+		} catch (Exception e) {
+			e.printStackTrace();
+			EntityResult res = new EntityResultMapImpl();
+			res.setCode(EntityResult.OPERATION_WRONG);
+			return res;
+		}
+	}
+
+    . . .
+
+}

UserRestController.java

package com.ontimize.hr.ws.core.rest;
+
+. . .
+import com.ontimize.jee.common.dto.EntityResult;
+. . .
+
+@RestController
+@RequestMapping("/users")
+public class UserRestController extends ORestController<IUserService> {
+
+	. . .
+	@RequestMapping(
+		value = "/login",
+		method = RequestMethod.POST,
+		produces = MediaType.APPLICATION_JSON_VALUE)
+	public ResponseEntity<EntityResult> login() {
+		return new ResponseEntity<>(HttpStatus.OK);
+	}
+}
diff --git a/v3/basics/multipledatasources/index.html b/v3/basics/multipledatasources/index.html new file mode 100644 index 0000000..7813624 --- /dev/null +++ b/v3/basics/multipledatasources/index.html @@ -0,0 +1,111 @@ + Multiple Datasources | Ontimize Boot Skip to main content Link Menu Expand (external link) Document Search Copy Copied
Theme mode icon

Multiple Datasources

This module works only for Ontimize Boot version 3.9.0 or above. Actual release version: Ontimize Boot

Introduction

Ontimize Boot allows a single application to query multiple data sources, thus allowing you to separate the user and permission tables in a database and use one or more other data sources to query the rest of the information you want by configuring the data source you want to query in each DAO.

Prerequisites

You can follow this tutorial using your own application, although for this example we will use an application created using the archetype that can be found on this page, with a REST service and two HSQLDB databases.

There are 2 options to follow this tutorial, clone the repository with the initial state and follow the tutorial step by step, or download the final example and see which files are new and which have been updated.

Initial project

/$ git clone https://github.com/ontimize/ontimize-examples
+/ontimize-examples$ cd ontimize-examples
+/ontimize-examples$ git checkout boot-multidatasource-initial
+

Final example

/$ git clone https://github.com/ontimize/ontimize-examples
+/ontimize-examples$ cd ontimize-examples
+/ontimize-examples$ git checkout boot-multidatasource
+

Steps

Modify application.yml file

Although you can keep the data source already indicated in the file, you can delete it without any problem. New data sources will be added in the *.yml under the ontimize.datasources properties, followed by a name for that data source, and then the same settings as required for the data source you normally use.

application.yml

...
+
+ontimize:
+   datasources:
+      dbone:
+         driver-class-name: org.hsqldb.jdbcDriver
+         jdbc-url: jdbc:hsqldb:hsql://localhost:9013/templateDB
+         username: SA
+         password:
+      dbtwo:
+         driver-class-name: org.hsqldb.jdbcDriver
+         jdbc-url: jdbc:hsqldb:hsql://localhost:9013/templateDB
+         username: SA
+         password:
+
+...

Modify DAO’s datasource

In the DAOs the data source must be modified to indicate the correct data source, and the database table that belongs to that data source. In the case of this example, as indicated in the *.yml file, that would be dbone and dbtwo.

RoleDao.xml

<?xml version="1.0" encoding="UTF-8"?>
+<JdbcEntitySetup
+    xmlns="http://www.ontimize.com/schema/jdbc"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://www.ontimize.com/schema/jdbc http://www.ontimize.com/schema/jdbc/ontimize-jdbc-dao.xsd"
+    catalog="" schema="${mainschema}" table="TROLE"
+    datasource="dbone" sqlhandler="dbSQLStatementHandler">
+    ...

RoleServerPermissionDao.xml

<?xml version="1.0" encoding="UTF-8"?>
+<JdbcEntitySetup
+    xmlns="http://www.ontimize.com/schema/jdbc"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://www.ontimize.com/schema/jdbc http://www.ontimize.com/schema/jdbc/ontimize-jdbc-dao.xsd"
+    catalog="" schema="${mainschema}" table="TROLE_SERVER_PERMISSION"
+    datasource="dbone" sqlhandler="dbSQLStatementHandler">
+    ...

ServerPermissionDao.xml

<?xml version="1.0" encoding="UTF-8"?>
+<JdbcEntitySetup
+    xmlns="http://www.ontimize.com/schema/jdbc"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://www.ontimize.com/schema/jdbc http://www.ontimize.com/schema/jdbc/ontimize-jdbc-dao.xsd"
+    catalog="" schema="${mainschema}" table="TSERVER_PERMISSION"
+    datasource="dbone" sqlhandler="dbSQLStatementHandler">
+    ...

UserDao.xml

<?xml version="1.0" encoding="UTF-8"?>
+<JdbcEntitySetup
+    xmlns="http://www.ontimize.com/schema/jdbc"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://www.ontimize.com/schema/jdbc http://www.ontimize.com/schema/jdbc/ontimize-jdbc-dao.xsd"
+    catalog="" schema="${mainschema}" table="TUSER"
+    datasource="dbone" sqlhandler="dbSQLStatementHandler">
+    ...

UserRoleDao.xml

<?xml version="1.0" encoding="UTF-8"?>
+<JdbcEntitySetup
+	xmlns="http://www.ontimize.com/schema/jdbc"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://www.ontimize.com/schema/jdbc http://www.ontimize.com/schema/jdbc/ontimize-jdbc-dao.xsd"
+	catalog="" schema="${mainschema}" table="TUSER_ROLE"
+	datasource="dbone" sqlhandler="dbSQLStatementHandler">
+  ...

CandidateDao.xml

<?xml version="1.0" encoding="UTF-8"?>
+<JdbcEntitySetup
+	xmlns="http://www.ontimize.com/schema/jdbc"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://www.ontimize.com/schema/jdbc http://www.ontimize.com/schema/jdbc/ontimize-jdbc-dao.xsd"
+	catalog="" schema="${mainschema}" table="CANDIDATE"
+	datasource="dbtwo" sqlhandler="dbSQLStatementHandler">
+  ...

Modify SQL handler

At this point more data sources can be queried, as shown in the example, but they all have the same SQL handler. It is quite possible that, when multiple data sources are queried, unlike the example, they are databases of different technologies. To do this, in the same way as it is allowed to do with the data sources, the SQL handlers of each of the DAOs are changed. There is a SQL handler that is configured by the ontimize.jdbc.sqlhandler and ontimize.jdbc.sql-condition-processor.* properties, called by default dbSQLStatementHandler. From this version, it is no longer necessary to indicate which SQL handler we will use in the ontimize.jdbc.sqlhandler property, but we will indicate its name, listed below. By default, they already have some pre-established configurations, although they can be modified without any problem in the application.yml file.

Handler Bean name Default configuration Property
default dbSQLStatementHandler Upper string false ontimize.jdbc.sql-condition-processor.upper-string
Upper like true ontimize.jdbc.sql-condition-processor.upper-like
postgres postgresSQLStatementHandler Upper string false ontimize.jdbc.postgres-sql-condition-processor.upper-string
Upper like true ontimize.jdbc.postgres-sql-condition-processor.upper-like
oracle oracleSQLStatementHandler Upper string false ontimize.jdbc.oracle-sql-condition-processor.upper-string
Upper like true ontimize.jdbc.oracle-sql-condition-processor.upper-like
oracle12 oracle12SQLStatementHandler Upper string false ontimize.jdbc.oracle12-sql-condition-processor.upper-string
Upper like true ontimize.jdbc.oracle12-sql-condition-processor.upper-like
sqlserver sqlserverSQLStatementHandler Upper string false ontimize.jdbc.sqlserver-sql-condition-processor.upper-string
Upper like true ontimize.jdbc.sqlserver-sql-condition-processor.upper-like
hsqldb hsqldbSQLStatementHandler Upper string false ontimize.jdbc.hsqldb-sql-condition-processor.upper-string
Upper like true ontimize.jdbc.hsqldb-sql-condition-processor.upper-like
mysql mysqlSQLStatementHandler Upper string false ontimize.jdbc.mysql-sql-condition-processor.upper-string
Upper like true ontimize.jdbc.mysql-sql-condition-processor.upper-like

Modified application.yml (will use default values) and some SQL handlers

aplication.yml

...
+ontimize:
+   datasources:
+      dbone:
+         driver-class-name: org.hsqldb.jdbcDriver
+         jdbc-url: jdbc:hsqldb:hsql://localhost:9013/templateDB
+         username: SA
+         password:
+         initial-size: 10
+         test-on-borrow: true
+      dbtwo:
+         driver-class-name: org.hsqldb.jdbcDriver
+         jdbc-url: jdbc:hsqldb:hsql://localhost:9014/templateDB
+         username: SA
+         password:
+         initial-size: 10
+         test-on-borrow: true
+   jdbc:
+      name-convention: upper
+...

RoleDao.xml

<?xml version="1.0" encoding="UTF-8"?>
+<JdbcEntitySetup
+    xmlns="http://www.ontimize.com/schema/jdbc"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://www.ontimize.com/schema/jdbc http://www.ontimize.com/schema/jdbc/ontimize-jdbc-dao.xsd"
+    catalog="" schema="${mainschema}" table="TROLE"
+    datasource="dbone" sqlhandler="hsqldbSQLStatementHandler">
+    ...

ServerPermissionDao.xml

<?xml version="1.0" encoding="UTF-8"?>
+<JdbcEntitySetup
+    xmlns="http://www.ontimize.com/schema/jdbc"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://www.ontimize.com/schema/jdbc http://www.ontimize.com/schema/jdbc/ontimize-jdbc-dao.xsd"
+    catalog="" schema="${mainschema}" table="TSERVER_PERMISSION"
+    datasource="dbone" sqlhandler="hsqldbSQLStatementHandler">
+    ...

UserRoleDao.xml

<?xml version="1.0" encoding="UTF-8"?>
+<JdbcEntitySetup
+	xmlns="http://www.ontimize.com/schema/jdbc"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://www.ontimize.com/schema/jdbc http://www.ontimize.com/schema/jdbc/ontimize-jdbc-dao.xsd"
+	catalog="" schema="${mainschema}" table="TUSER_ROLE"
+	datasource="dbone" sqlhandler="hsqldbSQLStatementHandler">
+  ...

CandidateDao.xml

<?xml version="1.0" encoding="UTF-8"?>
+<JdbcEntitySetup
+	xmlns="http://www.ontimize.com/schema/jdbc"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://www.ontimize.com/schema/jdbc http://www.ontimize.com/schema/jdbc/ontimize-jdbc-dao.xsd"
+	catalog="" schema="${mainschema}" table="CANDIDATE"
+	datasource="dbtwo" sqlhandler="hsqldbSQLStatementHandler">
+  ...
diff --git a/v3/getting_started/index.html b/v3/getting_started/index.html new file mode 100644 index 0000000..c7f58b7 --- /dev/null +++ b/v3/getting_started/index.html @@ -0,0 +1,11 @@ + Getting started | Ontimize Boot Skip to main content Link Menu Expand (external link) Document Search Copy Copied
Theme mode icon

This page allows you to know how to start developing an application with Ontimize Boot in a simple way. This project includes an HSQLDB database already prepared to start the application. It can be replaced.

Create application from archetype

Open a console and type the next command:

Check the argument -DarchetypeVersion argument points to the latest version of the archetype available, version Ontimize Boot Archetype

mvn archetype:generate -DgroupId=YOUR_GROUP_ID -DartifactId=YOUR_ARTIFACT_ID -Dversion=YOUR_VERSION -Dpackage=YOUR.GROUPID.ARTIFACTID -DarchetypeGroupId=com.ontimize -DarchetypeArtifactId=ontimize-boot-backend-archetype -DarchetypeVersion=1.0.10 -DinteractiveMode=false
+

Command explanation

Argument Meaning
mvn Maven CLI
archetype:generate Use the Maven Archetype Plugin for create a new project from an archetype
-DgroupId=YOUR_GROUP_ID Your project groupId
-DartifactId=YOUR_ARTIFACT_ID Your project artifactId
-Dversion=YOUR_VERSION Your project version
-Dpackage=YOUR.GROUPID.ARTIFACTID Sets the package on which the project will be based (e.g.: In our examples, this will be com.ontimize.projectwiki)
-DarchetypeGroupId=com.ontimize groupId of the Ontimize Boot archetype
-DarchetypeArtifactId=ontimize-boot-backend-archetype artifactId of the Ontimize Boot archetype
-DarchetypeVersion=1.0.10 version of the Ontimize Boot archetype. The lastest version is: Ontimize Boot Archetype
-DinteractiveMode=false Forced to skip interactive mode and use the paramaters in the command

Start the project

To start the project, it is necessary to start both the database and the server. The first thing to do is to execute the mvn install command inside the project’s root folder

$ cd app
+/app$ mvn install
+

Start the database

Next, we navigate to the model folder to start the HSQLDB database

/app$ cd model
+/app/model$ mvn exec:java -Prun_database
+

Start the server

To start the server, open a new console in the root folder of the project, navigate to boot folder and type the following command

/app$ cd boot
+/app/boot$ mvn spring-boot:run
+

Test the application

You can check if the application is working by making a request, for example, to the following address:

http://localhost:33333/users/user?columns=USER_
+

Through applications such as Postman or from the browser

In both cases, the access must be done with a user and password example:

    User: demo
+Password: demouser
+
diff --git a/v3/index.html b/v3/index.html new file mode 100644 index 0000000..068460c --- /dev/null +++ b/v3/index.html @@ -0,0 +1 @@ + Home | Ontimize Boot Skip to main content Link Menu Expand (external link) Document Search Copy Copied
Theme mode icon

📜 Ontimize Boot

Ontimize Boot uses Spring Boot technology to further simplify the development of a service or microservice based server, using the API REST communication system.

✍ Use

To start developing an application with Ontimize Boot is very simple, we have an archetype that generates the skeleton of an application in seconds, from which you can develop the application you want. For more information, consult the desired topics in this documentation, using the search box or the side menu.

👁️‍🗨️ Versions and dependencies

All the versions and dependencies of the artifacts contained in this project can be downloaded from Maven Central, as well as knowing each of its dependencies.

📣 Changelog

You can consult our changelog at the following link

diff --git a/v3/introduction/index.html b/v3/introduction/index.html new file mode 100644 index 0000000..216d7b6 --- /dev/null +++ b/v3/introduction/index.html @@ -0,0 +1 @@ + Introduction | Ontimize Boot Skip to main content Link Menu Expand (external link) Document Search Copy Copied
Theme mode icon

Welcome to the documentation of the backend development framework for building the future


How to read and use this documentation.


In this page you will find the necessary elements to start developing your backend application with Ontimize Boot. Below you will find links to the sections containing the information you need for a quick introduction to Ontimize Boot development.

Sections

Prerequisites Check you meet minimum requirements to start.
Getting started First contact with an Ontimize Boot app. Generate an app is easy with an archetype.
Basics Basic information about the configuration of an application.
Tutorial Tutorial on how to create from scratch an application with Ontimize Boot (in Spanish)

diff --git a/v3/prerequisites/index.html b/v3/prerequisites/index.html new file mode 100644 index 0000000..abf2726 --- /dev/null +++ b/v3/prerequisites/index.html @@ -0,0 +1,11 @@ + Prerequisites | Ontimize Boot Skip to main content Link Menu Expand (external link) Document Search Copy Copied
Theme mode icon

Prerequisites


Java JDK 11

Make sure you have the JDK version of Java 1 installed. There are many different builds, but perhaps the most common is Adoptium, which you can download from the following link (add your operating system and your computer’s architecture): Adoptium JDK

Check the option to set the JAVA_HOME variable.

Following installation, make sure you have correctly installed Java JDK 1 by invoking the following commands in the command-line java -version

On the Mac, the command-line is available via the Terminal >application. On the PC, it’s available as Command Prompt.

The result should look similar to:

C:\>java -version
+openjdk version "11.0.21" 2023-10-17
+OpenJDK Runtime Environment Temurin-11.0.21+9 (build 11.0.21+9)
+OpenJDK 64-Bit Server VM Temurin-11.0.21+9 (build 11.0.21+9, mixed mode)
+

Maven 3.6.0 or newer

Maven is required for downloading and using the Ontimize Boot application archetype, managing the libraries contained in the framework and even for running the application. You can download Maven from its official project page at the following link: Maven

Follow the installation steps indicated in the official web site

To check the installation, run the following command at a command prompt mvn -v. The result should look similar to:

C:\>mvn -v
+Apache Maven 3.9.1 (2e178502fcdbffc201671fb2537d0cb4b4cc58f8)
+Maven home: C:\Program Files (x86)\maven
+Java version: 11.0.21, vendor: Eclipse Adoptium, runtime: C:\Program Files\Eclipse Adoptium\jdk-11.0.21.9-hotspot
+Default locale: es_ES, platform encoding: Cp1252
+OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"
+

IDE

It is not absolutely necessary to use an IDE, but it is highly recommended and helps the development of the application. We recommend the use of IntelliJ (in its Community or Ultimate version), Eclipse (in its Enterprise Java and Web Developers version) or Visual Studio Code.

diff --git a/v3/sandbox/index.html b/v3/sandbox/index.html new file mode 100644 index 0000000..fbc96ca --- /dev/null +++ b/v3/sandbox/index.html @@ -0,0 +1,52 @@ + Sandbox | Ontimize Boot Skip to main content Link Menu Expand (external link) Document Search Copy Copied
Theme mode icon

Sandbox

Nueva página

Los include llevan un % en vez de un -
+
+---
+title: "Title of the page"
+layout: default
+permalink: /path/to/page/
+nav_order: X 
+# has_children: false
+# has_toc: false
+# nav_exclude: true
+# grand_parent: Title grand_parent
+# parent: Title parent
+---
+
+<!-- {- include base_path %} -->
+<!-- {- include toc %} -->
+

Doble columna (código y árbol, con toggle)

Los highlight y endhighlight llevan un % en vez de un -
+
+<div class="multicolumn">
+    <div class="multicolumn">
+        <div class="multicolumnleft">
+            <button class="unstyle toggle-tree-btn">
+                <span class="material-symbols-outlined">right_panel_open</span>
+            </button>
+            {- highlight java%}
+                // Aquí el código o lo que sea
+            {- endhighlight %}
+        </div>
+        <div class="multicolumnright jstreeloader collapsed">
+            // <ul> </ul> de jstree
+        </div>
+    </div>
+</div>
+

EjemploDeClase.java

            // Aquí el código o lo que sea
+        

Doble columna (código y código, sin toggle)

Los highlight y endhighlight llevan un % en vez de un -
+
+<div class="multicolumn">
+    <div class="multicolumnnopadding" >
+        {- highlight java%}
+            // Aquí el código o lo que sea
+        {- endhighlight %}
+    </div>
+    <div class="verticalDivider"></div>
+    <div class="multicolumnnopadding" >
+        {- highlight java%}
+            // Aquí el código o lo que sea
+        {- endhighlight %}
+    </div>
+</div>
+

First column

            // Aquí el código o lo que sea
+        

Second column

            // Aquí el código o lo que sea
+        
diff --git a/v3/systems/asynctask/index.html b/v3/systems/asynctask/index.html new file mode 100644 index 0000000..1ffcd12 --- /dev/null +++ b/v3/systems/asynctask/index.html @@ -0,0 +1,124 @@ + Async Tasks | Ontimize Boot Skip to main content Link Menu Expand (external link) Document Search Copy Copied
Theme mode icon

Async Tasks

This module works only for Ontimize Boot version 3.8.0 or above. Actual release version: Ontimize Boot

Introduction

The Async Task system will allow you to run decoupled, asynchronous tasks. This module will let you run any service method in a separate, newly created thread, by simply adding an annotation to its controller method.

Previous concepts

  • Task: It is the generic representation of a decoupled task. It stores information such as its UUID, its current status and the result of the execution.
  • Aspect: It is a modularization of a concern that cuts across multiple classes. It allows us to intercept the execution of any given method or class and implement some alternative or extra behaviour for it.

Prerequisites

You can follow this tutorial using your own application, although for this example we will use an application created using the archetype that can be found on this page and with a REST service.

There are 2 options to follow this tutorial, clone the repository with the initial state and follow the tutorial step by step, or download the final example and see which files are new and which have been updated.

Initial project

/$ git clone https://github.com/ontimize/ontimize-examples 
+/ontimize-examples$ cd ontimize-examples
+/ontimize-examples$ git checkout boot-async-task-initial
+

Final example

/$ git clone https://github.com/ontimize/ontimize-examples 
+/ontimize-examples$ cd ontimize-examples
+/ontimize-examples$ git checkout boot-async-task
+

To simplify the code being written, three dots (…) may appear in some parts of the code. This indicates that there may be previous code before and after those dots.

Steps

Database

Tasks Table

With the database started, we create the new table that will store the tasks information.

CREATE TABLE TASKS(ID INTEGER IDENTITY NOT NULL PRIMARY KEY, UUID VARCHAR(255) NOT NULL, STATUS VARCHAR(255), RESULT VARBINARY(16777216));

Server

Add Ontimize AsyncTask dependencies

The decoupled tasks system is integrated in the Ontimize Core module, so we need to declare it as a project dependency.

boot/pom.xml

...
+<dependencies>
+  ...
+  <dependency>
+    <groupId>com.ontimize.boot</groupId>
+    <artifactId>ontimize-boot-starter-core</artifactId>
+  </dependency>
+  ...
+</dependencies>
+...

model/pom.xml

...
+<dependencies>
+  ...
+  <dependency>
+    <groupId>com.ontimize.boot</groupId>
+    <artifactId>ontimize-boot-core</artifactId>
+  </dependency>
+  ...
+</dependencies>
+...

Modify application.yml

The application.yml file will be modified to enable the decoupled tasks module, indicate the storage engine it will use, the URL base path for the service, and its thread pool configuration. In this link you have information about the configuration of the asynchronous tasks system in the application.yml file.

The enable property must be set to true and the storage engine type must be specified in the engine property before the server is started.

The asynchronous tasks system requires the Ontimize TaskExecutor to be configured, see this link.

application.yml

For database storage

ontimize:
+  asynctask:
+    enable: true
+    engine: database
+    url: /tasks

Add Task DAO

A specific DAO will be created for the tasks table, and it will implement the DAO interface in the tasks module.

TaskDao.xml

<?xml version="1.0" encoding="UTF-8"?>
+<JdbcEntitySetup xmlns="http://www.ontimize.com/schema/jdbc"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://www.ontimize.com/schema/jdbc http://www.ontimize.com/schema/jdbc/ontimize-jdbc-dao.xsd"
+	table="TASKS" datasource="mainDataSource" sqlhandler="dbSQLStatementHandler">
+	<DeleteKeys>
+		<Column>ID</Column>
+	</DeleteKeys>
+	<UpdateKeys>
+		<Column>ID</Column>
+	</UpdateKeys>
+	<GeneratedKey>ID</GeneratedKey>
+</JdbcEntitySetup>

TaskDao.java

package com.imatia.qsallcomponents.model.dao;
+
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Repository;
+
+import com.ontimize.boot.core.asynctask.IAsyncTaskDao;
+import com.ontimize.jee.server.dao.common.ConfigurationFile;
+import com.ontimize.jee.server.dao.jdbc.OntimizeJdbcDaoSupport;
+
+@Lazy
+@Repository(value = "TaskDao")
+@ConfigurationFile(configurationFile = "dao/TaskDao.xml", configurationFilePlaceholder = "dao/placeholders.properties")
+public class TaskDao extends OntimizeJdbcDaoSupport implements IAsyncTaskDao {
+	
+	public static final String	ATTR_ID				= "ID";
+	public static final String	ATTR_UUID			= "UUID";
+	public static final String	ATTR_STATUS			= "STATUS";
+	public static final String	ATTR_RESULT			= "RESULT";
+	
+	public TaskDao() {
+		super();
+	}
+
+}

Annotate controller method

In order to run some service method asynchronously, we need to annotate its respective REST controller method with @OAsyncTask. This way, a new thread will be created in order to handle the method’s execution, and we will recieve an instant response with the URL where we can check the execution status and retrieve its result when it’s finished.

The service’s method MUST return a serializable object with getters and setters, as well as the controller’s method must return a ResponseEntity object. In this case, the query() method returns a Serializable object, the EntityResult.

We will override the query() method of the ORestController class.

CandidateRestController.java

package com.ontimize.projectwiki.ws.core.rest;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.ontimize.boot.core.asynctask.OAsyncTask;
+import com.ontimize.jee.common.dto.EntityResult;
+import com.ontimize.jee.server.rest.ORestController;
+import com.ontimize.projectwiki.api.core.service.ICandidateService;
+
+@RestController
+@RequestMapping("/candidates")
+@ComponentScan(basePackageClasses = { com.ontimize.projectwiki.api.core.service.ICandidateService.class })
+public class CandidateRestController extends ORestController<ICandidateService>{
+
+	@Autowired
+	private ICandidateService candidateService;
+
+	@Override
+	public ICandidateService getService() {
+		return this.candidateService;
+	}
+	
+    @OAsyncTask
+    @Override
+    public ResponseEntity<EntityResult> query(@PathVariable("name") String name,
+            @RequestParam(name = "filter", required = false) String filter,
+            @RequestParam(name = "columns", required = false) String columns) {
+        return super.query(name, filter, columns);
+    }
+}

Delay service method

To know all the states through which the asynchronous request passes, we will add a delay in the candidateQuery() method.

CandidateService.java

package com.ontimize.projectwiki.model.core.service;
+
+import java.util.concurrent.TimeUnit;
+
+. . .
+
+@Service("CandidateService")
+@Lazy
+public class CandidateService implements ICandidateService {
+
+. . .
+
+	@Override
+	public EntityResult candidateQuery(Map<String, Object> keyMap, List<String> attrList)
+			throws OntimizeJEERuntimeException {
+		try {
+			TimeUnit.MINUTES.sleep(1);
+		} catch (InterruptedException e) {
+			e.printStackTrace();
+		}
+		return this.daoHelper.query(this.candidateDao, keyMap, attrList);
+	}
+. . .
+}

Testing

To test the asynchronous tasks we need to execute a REST request to the method that we have marked with the annotation @OAsyncTask.

In this case, the request is GET and has the following structure: http://localhost:33333/candidates/candidate?columns=ID,NAME,SURNAME

Element Meaning
localhost:33333 Indicates the host
/candidates Indicates the service to be queried
/candidate Indicates the DAO that will access that service
?columns= Indicates the columns to be queried

The authorization used for this requests is authorization of the type BASIC.

The access must be done with a user and password example:

    User: demo
+Password: demouser
+

When you run the query, it should return a 202 Accepted with the following header: Location.

This header contains the relative path to the asynchronous task that you have to execute to receive the data.

Example

Location: /tasks/f16e9af7-ec0f-444c-a173-5b0179f5d57f

To execute the query the request needs to be GET and have the following structure: http://localhost:33333/tasks/f16e9af7-ec0f-444c-a173-5b0179f5d57f

The uuid that goes after /tasks varies in each execution of the previous query.

The first time you run this query the status becomes Started. When the time set in the delay expires the second time you execute the query, the status becomes Completed, returns the request data and removes the task from the TASKS table.

diff --git a/v3/systems/dms/index.html b/v3/systems/dms/index.html new file mode 100644 index 0000000..d244ae8 --- /dev/null +++ b/v3/systems/dms/index.html @@ -0,0 +1,530 @@ + DMS System | Ontimize Boot Skip to main content Link Menu Expand (external link) Document Search Copy Copied
Theme mode icon

DMS System

Introduction

A Document Management System (DMS) is a system that allows you to store files and keep track of the versions of those files. Ontimize Boot provides a DMS system that allows to store the files that are associated to the different records of a database table.

Previous concepts

  • Document (or workspace): It is superentity into which several files can be grouped.
  • File: The file is the generic representation of a file. A file groups several versions of itself.
  • Version: Is the relationship to a physical file.
  • Category (or folder): Is a way of grouping files within the document.

Prerequisites

You can follow this tutorial using your own application, although for this example we will use an application created using the archetype that can be found on this page and with a REST service.

There are 2 options to follow this tutorial, clone the repository with the initial state and follow the tutorial step by step, or download the final example and see which files are new and which have been updated.

Initial project

/$ git clone https://github.com/ontimize/ontimize-examples 
+/ontimize-examples$ cd ontimize-examples
+/ontimize-examples$ git checkout boot-dms-initial
+

Final example

/$ git clone https://github.com/ontimize/ontimize-examples 
+/ontimize-examples$ cd ontimize-examples
+/ontimize-examples$ git checkout boot-dms
+

To simplify the code being written, three dots (…) may appear in some parts of the code. This indicates that there may be previous code before and after those dots.

Steps

Database

DMS Tables

With the database started, we create the new tables that will store the DMS information.

CREATE TABLE TDMS_DOC(ID_DMS_DOC INTEGER IDENTITY NOT NULL PRIMARY KEY,UPDATE_DATE TIMESTAMP,UPDATE_BY_ID INTEGER,DOC_NAME VARCHAR(255) NOT NULL,OWNER_ID INTEGER NOT NULL,DOC_DESCRIPTION CLOB(1G),DOC_KEYWORDS VARCHAR(255));
+CREATE TABLE TDMS_DOC_FILE(ID_DMS_DOC_FILE INTEGER IDENTITY NOT NULL PRIMARY KEY,FILE_NAME VARCHAR(255) NOT NULL,ID_DMS_DOC INTEGER NOT NULL,FILE_TYPE VARCHAR(255),ID_DMS_DOC_CATEGORY INTEGER);
+CREATE TABLE TDMS_DOC_FILE_VERSION(ID_DMS_DOC_FILE_VERSION INTEGER IDENTITY NOT NULL PRIMARY KEY,FILE_PATH VARCHAR(500),VERSION INTEGER NOT NULL,FILE_DESCRIPTION CLOB(1G),IS_ACTIVE CHARACTER(1) NOT NULL,FILE_ADDED_DATE TIMESTAMP NOT NULL,FILE_ADDED_USER_ID INTEGER NOT NULL,ID_DMS_DOC_FILE INTEGER NOT NULL,THUMBNAIL BLOB(1G),FILE_SIZE INTEGER);
+CREATE TABLE TDMS_DOC_PROPERTY(ID_DMS_DOC_PROPERTY INTEGER IDENTITY NOT NULL PRIMARY KEY,DOC_PROPERTY_KEY VARCHAR(255) NOT NULL,DOC_PROPERTY_VALUE VARCHAR(255),ID_DMS_DOC INTEGER NOT NULL);
+CREATE TABLE TDMS_RELATED_DOC(ID_DMS_RELATED_PROPERTY INTEGER IDENTITY NOT NULL PRIMARY KEY,ID_DMS_DOC_MASTER INTEGER NOT NULL,ID_DMS_DOC_CHILD INTEGER NOT NULL);
+CREATE TABLE TDMS_DOC_CATEGORY(ID_DMS_DOC_CATEGORY INTEGER IDENTITY NOT NULL PRIMARY KEY,ID_DMS_DOC INTEGER NOT NULL,ID_DMS_DOC_CATEGORY_PARENT INTEGER,CATEGORY_NAME VARCHAR(255) NOT NULL);

Once the tables have been created, we add the foreign keys

ALTER TABLE TDMS_DOC_FILE ADD CONSTRAINT TDMS_DOC_FILE_FK FOREIGN KEY(ID_DMS_DOC) REFERENCES TDMS_DOC(ID_DMS_DOC);
+ALTER TABLE TDMS_DOC_FILE_VERSION ADD CONSTRAINT TDMS_DOC_FILE_VERSION_FK FOREIGN KEY(ID_DMS_DOC_FILE) REFERENCES TDMS_DOC_FILE(ID_DMS_DOC_FILE);
+ALTER TABLE TDMS_DOC_PROPERTY ADD CONSTRAINT TDMS_DOC_PROPERTY_FK FOREIGN KEY(ID_DMS_DOC) REFERENCES TDMS_DOC(ID_DMS_DOC)
+ALTER TABLE TDMS_RELATED_DOC ADD CONSTRAINT TDMS_RELATED_DOC_FK FOREIGN KEY(ID_DMS_DOC_MASTER) REFERENCES TDMS_DOC(ID_DMS_DOC);
+ALTER TABLE TDMS_RELATED_DOC ADD CONSTRAINT TDMS_RELATED_DOC_FK_1 FOREIGN KEY(ID_DMS_DOC_CHILD) REFERENCES TDMS_DOC(ID_DMS_DOC);
+ALTER TABLE TDMS_DOC_CATEGORY ADD CONSTRAINT TDMS_DOC_CATEGORY_FK FOREIGN KEY(ID_DMS_DOC) REFERENCES TDMS_DOC(ID_DMS_DOC);
+ALTER TABLE TDMS_DOC_FILE ADD CONSTRAINT TDMS_DOC_FILE_FK_1 FOREIGN KEY(ID_DMS_DOC_CATEGORY) REFERENCES TDMS_DOC_CATEGORY(ID_DMS_DOC_CATEGORY);

In this example we want each new candidate added to the application to have its own space to store documents, so we will modify the CANDIDATES table to contain a column that stores the primary key of the document (or workspace) that will be associated with it.

ALTER TABLE CANDIDATE ADD ID_DMS_DOC INTEGER;
ALTER TABLE CANDIDATE ADD CONSTRAINT CANDIDATE_FK FOREIGN KEY(ID_DMS_DOC) REFERENCES TDMS_DOC(ID_DMS_DOC);

Server

Add DMS dependencies

model/pom.xml

...
+<dependencies>
+  ...
+  <dependency>
+    <groupId>com.ontimize.jee.dms</groupId>
+    <artifactId>ontimize-jee-dms-server</artifactId>
+  </dependency>
+
+  <dependency>
+    <groupId>com.ontimize.jee.dms</groupId>
+    <artifactId>ontimize-jee-dms-common</artifactId>
+  </dependency>
+  ...
+</dependencies>
+...

ws/pom.xml

...
+<dependencies>
+  ...
+    <dependency>
+        <groupId>com.ontimize.jee.dms</groupId>
+        <artifactId>ontimize-jee-dms-rest</artifactId>
+    </dependency>
+  ...
+</dependencies>
+...

Add DMS DAO and modify Candidate DAO

A specific DAO will be created for each table in the DMS system, and each of them will implement a different interface. In turn, the candidate DAO will be modified to reflect the new column it contains.

DMSCategoryDao.xml

<?xml version="1.0" encoding="UTF-8"?>
+<JdbcEntitySetup
+  xmlns="http://www.ontimize.com/schema/jdbc"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://www.ontimize.com/schema/jdbc http://www.ontimize.com/schema/jdbc/ontimize-jdbc-dao.xsd"
+  catalog="" schema="${mainschema}" table="TDMS_DOC_CATEGORY"
+  datasource="mainDataSource" sqlhandler="dbSQLStatementHandler">
+  <DeleteKeys>
+    <Column>ID_DMS_DOC_CATEGORY</Column>
+  </DeleteKeys>
+  <UpdateKeys>
+    <Column>ID_DMS_DOC_CATEGORY</Column>
+  </UpdateKeys>
+  <GeneratedKey>ID_DMS_DOC_CATEGORY</GeneratedKey>
+</JdbcEntitySetup>

DMSDocumentDao.xml

<?xml version="1.0" encoding="UTF-8"?>
+<JdbcEntitySetup
+  xmlns="http://www.ontimize.com/schema/jdbc"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://www.ontimize.com/schema/jdbc http://www.ontimize.com/schema/jdbc/ontimize-jdbc-dao.xsd"
+  catalog="" schema="${mainschema}" table="TDMS_DOC"
+  datasource="mainDataSource" sqlhandler="dbSQLStatementHandler">
+  <DeleteKeys>
+    <Column>ID_DMS_DOC</Column>
+  </DeleteKeys>
+  <UpdateKeys>
+    <Column>ID_DMS_DOC</Column>
+  </UpdateKeys>
+  <GeneratedKey>ID_DMS_DOC</GeneratedKey>
+</JdbcEntitySetup>

DMSDocumentFileDao.xml

<?xml version="1.0" encoding="UTF-8"?>
+<JdbcEntitySetup
+  xmlns="http://www.ontimize.com/schema/jdbc"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://www.ontimize.com/schema/jdbc http://www.ontimize.com/schema/jdbc/ontimize-jdbc-dao.xsd"
+  catalog="" schema="${mainschema}" table="TDMS_DOC_FILE"
+  datasource="mainDataSource" sqlhandler="dbSQLStatementHandler">
+  <DeleteKeys>
+    <Column>ID_DMS_DOC_FILE</Column>
+  </DeleteKeys>
+  <UpdateKeys>
+    <Column>ID_DMS_DOC_FILE</Column>
+  </UpdateKeys>
+  <GeneratedKey>ID_DMS_DOC_FILE</GeneratedKey>
+  <Queries>
+    <Query id="default">
+      <AmbiguousColumns>
+        <AmbiguousColumn name="ID_DMS_DOC_FILE"
+          prefix="tddf" />
+        <AmbiguousColumn name="ID_DMS_DOC" prefix="tddf" />
+      </AmbiguousColumns>
+      <ValidColumns>
+        <!-- TDMS_DOC_FILE -->
+        <Column>ID_DMS_DOC_FILE</Column>
+        <Column>FILE_NAME</Column>
+        <Column>ID_DMS_DOC</Column>
+        <Column>FILE_TYPE</Column>
+        <Column>ID_DMS_DOC_CATEGORY</Column>
+        <!-- TDMS_DOC -->
+        <Column>ID_DMS_DOC</Column>
+        <Column>UPDATE_DATE</Column>
+        <Column>UPDATE_BY_ID</Column>
+        <Column>DOC_NAME</Column>
+        <Column>OWNER_ID</Column>
+        <Column>DOC_DESCRIPTION</Column>
+        <Column>DOC_KEYWORDS</Column>
+        <!-- TDMS_DOC_FILE_VERSION -->
+        <Column>ID_DMS_DOC_FILE_VERSION</Column>
+        <Column>FILE_PATH</Column>
+        <Column>VERSION</Column>
+        <Column>FILE_DESCRIPTION</Column>
+        <Column>IS_ACTIVE</Column>
+        <Column>FILE_ADDED_DATE</Column>
+        <Column>FILE_ADDED_USER_ID</Column>
+        <Column>ID_DMS_DOC_FILE</Column>
+        <Column>THUMBNAIL</Column>
+        <Column>FILE_SIZE</Column>
+      </ValidColumns>
+      <Sentence>
+        <![CDATA[
+          SELECT
+            #COLUMNS#
+          FROM
+            ${mainschema}.TDMS_DOC_FILE AS tddf
+            JOIN ${mainschema}.TDMS_DOC AS tdd ON tddf.ID_DMS_DOC = tdd.ID_DMS_DOC
+            LEFT JOIN ${mainschema}.TDMS_DOC_FILE_VERSION AS tddfv ON tddf.id_dms_doc_file = tddfv.id_dms_doc_file
+          WHERE (tddfv.IS_ACTIVE = 'Y' OR tddfv.id_dms_doc_file_version IS NULL)
+          #WHERE_CONCAT#
+          #ORDER#
+         ]]>
+    </Sentence>
+    </Query>
+    <Query id="allfiles">
+      <AmbiguousColumns>
+        <AmbiguousColumn name="ID_DMS_DOC_FILE"
+          prefix="tddf" />
+      </AmbiguousColumns>
+      <ValidColumns>
+        <Column>ID_DMS_DOC_FILE</Column>
+        <Column>FILE_NAME</Column>
+        <Column>ID_DMS_DOC</Column>
+        <Column>FILE_TYPE</Column>
+        <Column>ID_DMS_DOC_CATEGORY</Column>
+      </ValidColumns>
+      <Sentence>
+        <![CDATA[
+          SELECT
+            #COLUMNS#
+          FROM
+            ${mainschema}.TDMS_DOC_FILE AS tddf
+          #WHERE#
+          #ORDER#
+         ]]>
+    </Sentence>
+    </Query>
+  </Queries>
+</JdbcEntitySetup>

DMSDocumentFileVersionDao.xml

<?xml version="1.0" encoding="UTF-8"?>
+<JdbcEntitySetup
+  xmlns="http://www.ontimize.com/schema/jdbc"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://www.ontimize.com/schema/jdbc http://www.ontimize.com/schema/jdbc/ontimize-jdbc-dao.xsd"
+  catalog="" schema="${mainschema}" table="TDMS_DOC_FILE_VERSION"
+  datasource="mainDataSource" sqlhandler="dbSQLStatementHandler">
+  <DeleteKeys>
+    <Column>ID_DMS_DOC_FILE_VERSION</Column>
+  </DeleteKeys>
+  <UpdateKeys>
+    <Column>ID_DMS_DOC_FILE_VERSION</Column>
+  </UpdateKeys>
+  <GeneratedKey>ID_DMS_DOC_FILE_VERSION</GeneratedKey>
+  <Queries>
+    <Query id="default">
+      <AmbiguousColumns>
+        <AmbiguousColumn name="ID_DMS_DOC_FILE"
+          prefix="tddfv" />
+      </AmbiguousColumns>
+      <ValidColumns>
+        <!-- TDMS_DOC_FILE_VERSION -->
+        <Column>ID_DMS_DOC_FILE_VERSION</Column>
+        <Column>FILE_PATH</Column>
+        <Column>VERSION</Column>
+        <Column>FILE_DESCRIPTION</Column>
+        <Column>IS_ACTIVE</Column>
+        <Column>FILE_ADDED_DATE</Column>
+        <Column>FILE_ADDED_USER_ID</Column>
+        <Column>ID_DMS_DOC_FILE</Column>
+        <Column>THUMBNAIL</Column>
+        <Column>FILE_SIZE</Column>
+        <!-- TDMS_DOC_FILE -->
+        <Column>ID_DMS_DOC_FILE</Column>
+        <Column>FILE_NAME</Column>
+        <Column>ID_DMS_DOC</Column>
+        <Column>FILE_TYPE</Column>
+        <Column>ID_DMS_DOC_CATEGORY</Column>
+      </ValidColumns>
+      <Sentence>
+        <![CDATA[
+           SELECT
+             #COLUMNS#
+        FROM
+          ${mainschema}.TDMS_DOC_FILE_VERSION AS tddfv
+          LEFT JOIN ${mainschema}.TDMS_DOC_FILE AS tddf ON tddfv.ID_DMS_DOC_FILE = tddf.ID_DMS_DOC_FILE
+        #WHERE#
+        #ORDER#
+         ]]>
+      </Sentence>
+    </Query>
+  </Queries>
+</JdbcEntitySetup>

DMSDocumentPropertyDao.xml

<?xml version="1.0" encoding="UTF-8"?>
+<JdbcEntitySetup
+  xmlns="http://www.ontimize.com/schema/jdbc"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://www.ontimize.com/schema/jdbc http://www.ontimize.com/schema/jdbc/ontimize-jdbc-dao.xsd"
+  catalog="" schema="${mainschema}" table="TDMS_DOC_PROPERTY"
+  datasource="mainDataSource" sqlhandler="dbSQLStatementHandler">
+  <DeleteKeys>
+    <Column>ID_DMS_DOC_PROPERTY</Column>
+  </DeleteKeys>
+  <UpdateKeys>
+    <Column>ID_DMS_DOC_PROPERTY</Column>
+  </UpdateKeys>
+  <GeneratedKey>ID_DMS_DOC_PROPERTY</GeneratedKey>
+</JdbcEntitySetup>

DMSRelatedDocumentDao.xml

<?xml version="1.0" encoding="UTF-8"?>
+<JdbcEntitySetup
+  xmlns="http://www.ontimize.com/schema/jdbc"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://www.ontimize.com/schema/jdbc http://www.ontimize.com/schema/jdbc/ontimize-jdbc-dao.xsd"
+  catalog="" schema="${mainschema}" table="TDMS_RELATED_DOC"
+  datasource="mainDataSource" sqlhandler="dbSQLStatementHandler">
+  <DeleteKeys>
+    <Column>ID_DMS_RELATED_PROPERTY</Column>
+  </DeleteKeys>
+  <UpdateKeys>
+    <Column>ID_DMS_RELATED_PROPERTY</Column>
+  </UpdateKeys>
+  <GeneratedKey>ID_DMS_RELATED_PROPERTY</GeneratedKey>
+</JdbcEntitySetup>

CandidateDao.java

...
+public class CandidateDao extends OntimizeJdbcDaoSupport {
+  ...
+  public static final String ATTR_ID_DMS_DOC = "ID_DMS_DOC";
+}

DMSCategoryDao.java

package com.ontimize.projectwiki.model.core.dao;
+
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Repository;
+
+import com.ontimize.jee.server.dao.common.ConfigurationFile;
+import com.ontimize.jee.server.dao.jdbc.OntimizeJdbcDaoSupport;
+import com.ontimize.jee.server.services.dms.dao.IDMSCategoryDao;
+
+@Repository("DMSCategoryDao")
+@Lazy
+@ConfigurationFile(configurationFile = "dao/DMSCategoryDao.xml", configurationFilePlaceholder = "dao/placeholders.properties")
+public class DMSCategoryDao extends OntimizeJdbcDaoSupport implements IDMSCategoryDao {
+
+  public static final String ATTR_ID_DMS_DOC_CATEGORY = "ID_DMS_DOC_CATEGORY";
+  public static final String ATTR_ID_DMS_DOC = "ID_DMS_DOC";
+  public static final String ATTR_ID_DMS_DOC_CATEGORY_PARENT = "ID_DMS_DOC_CATEGORY_PARENT";
+  public static final String ATTR_CATEGORY_NAME = "CATEGORY_NAME";
+
+}

DMSDocumentDao.java

package com.ontimize.projectwiki.model.core.dao;
+
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Repository;
+
+import com.ontimize.jee.server.dao.common.ConfigurationFile;
+import com.ontimize.jee.server.dao.jdbc.OntimizeJdbcDaoSupport;
+import com.ontimize.jee.server.services.dms.dao.IDMSDocumentDao;
+
+@Repository("DMSDocumentDao")
+@Lazy
+@ConfigurationFile(configurationFile = "dao/DMSDocumentDao.xml", configurationFilePlaceholder = "dao/placeholders.properties")
+public class DMSDocumentDao extends OntimizeJdbcDaoSupport implements IDMSDocumentDao {
+
+  public static final String ATTR_ID_DMS_DOC = "ID_DMS_DOC";
+  public static final String ATTR_UPDATE_DATE = "UPDATE_DATE";
+  public static final String ATTR_UPDATE_BY_ID = "UPDATE_BY_ID";
+  public static final String ATTR_DOC_NAME = "DOC_NAME";
+  public static final String ATTR_OWNER_ID = "OWNER_ID";
+  public static final String ATTR_DOC_DESCRIPTION = "DOC_DESCRIPTION";
+  public static final String ATTR_DOC_KEYWORDS = "DOC_KEYWORDS";
+
+}

DMSDocumentFileDao.java

package com.ontimize.projectwiki.model.core.dao;
+
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Repository;
+
+import com.ontimize.jee.server.dao.common.ConfigurationFile;
+import com.ontimize.jee.server.dao.jdbc.OntimizeJdbcDaoSupport;
+import com.ontimize.jee.server.services.dms.dao.IDMSDocumentFileDao;
+
+@Repository("DMSDocumentFileDao")
+@Lazy
+@ConfigurationFile(configurationFile = "dao/DMSDocumentFileDao.xml", configurationFilePlaceholder = "dao/placeholders.properties")
+public class DMSDocumentFileDao extends OntimizeJdbcDaoSupport implements IDMSDocumentFileDao{
+
+  public static final String ATTR_ID_DMS_DOC_FILE = "ID_DMS_DOC_FILE";         
+  public static final String ATTR_FILE_NAME = "FILE_NAME";         
+  public static final String ATTR_ID_DMS_DOC = "ID_DMS_DOC";         
+  public static final String ATTR_FILE_TYPE = "FILE_TYPE";         
+  public static final String ATTR_ID_DMS_DOC_CATEGORY = "ID_DMS_DOC_CATEGORY";         
+    
+}

DMSDocumentFileVersionDao.java

package com.ontimize.projectwiki.model.core.dao;
+
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Repository;
+
+import com.ontimize.jee.server.dao.common.ConfigurationFile;
+import com.ontimize.jee.server.dao.jdbc.OntimizeJdbcDaoSupport;
+import com.ontimize.jee.server.services.dms.dao.IDMSDocumentFileVersionDao;
+
+@Repository("DMSDocumentFileVersionDao")
+@Lazy
+@ConfigurationFile(configurationFile = "dao/DMSDocumentFileVersionDao.xml", configurationFilePlaceholder = "dao/placeholders.properties")
+public class DMSDocumentFileVersionDao extends OntimizeJdbcDaoSupport implements IDMSDocumentFileVersionDao {
+
+  public static final String ATT_ID_DMS_DOC_FILE_VERSION = "ID_DMS_DOC_FILE_VERSION";
+  public static final String ATT_FILE_PATH = "FILE_PATH";
+  public static final String ATT_VERSION = "VERSION";
+  public static final String ATT_FILE_DESCRIPTION = "FILE_DESCRIPTION";
+  public static final String ATT_IS_ACTIVE = "IS_ACTIVE";
+  public static final String ATT_FILE_ADDED_DATE = "FILE_ADDED_DATE";
+  public static final String ATT_FILE_ADDED_USER_ID = "FILE_ADDED_USER_ID";
+  public static final String ATT_ID_DMS_DOC_FILE = "ID_DMS_DOC_FILE";
+  public static final String ATT_THUMBNAIL = "THUMBNAIL";
+  public static final String ATT_FILE_SIZE = "FILE_SIZE";
+
+}

DMSDocumentPropertyDao.java

package com.ontimize.projectwiki.model.core.dao;
+
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Repository;
+
+import com.ontimize.jee.server.dao.common.ConfigurationFile;
+import com.ontimize.jee.server.dao.jdbc.OntimizeJdbcDaoSupport;
+import com.ontimize.jee.server.services.dms.dao.IDMSDocumentPropertyDao;
+
+@Repository("DMSDocumentPropertyDao")
+@Lazy
+@ConfigurationFile(configurationFile = "dao/DMSDocumentPropertyDao.xml", configurationFilePlaceholder = "dao/placeholders.properties")
+public class DMSDocumentPropertyDao extends OntimizeJdbcDaoSupport implements IDMSDocumentPropertyDao {
+
+  public static final String ATTR_ID_DMS_DOC_PROPERTY = "ID_DMS_DOC_PROPERTY";
+  public static final String ATTR_DOC_PROPERTY_KEY = "DOC_PROPERTY_KEY";
+  public static final String ATTR_DOC_PROPERTY_VALUE = "DOC_PROPERTY_VALUE";
+  public static final String ATTR_ID_DMS_DOC = "ID_DMS_DOC";
+
+}

DMSRelatedDocumentDao.java

package com.ontimize.projectwiki.model.core.dao;
+
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Repository;
+
+import com.ontimize.jee.server.dao.common.ConfigurationFile;
+import com.ontimize.jee.server.dao.jdbc.OntimizeJdbcDaoSupport;
+import com.ontimize.jee.server.services.dms.dao.IDMSRelatedDocumentDao;
+
+@Repository("DMSRelatedDocumentDao")
+@Lazy
+@ConfigurationFile(configurationFile = "dao/DMSRelatedDocumentDao.xml", configurationFilePlaceholder = "dao/placeholders.properties")
+public class DMSRelatedDocumentDao extends OntimizeJdbcDaoSupport implements IDMSRelatedDocumentDao {
+
+  public static final String ATTR_ID_DMS_RELATED_PROPERTY = "ID_DMS_RELATED_PROPERTY";
+  public static final String ATTR_ID_DMS_DOC_MASTER = "ID_DMS_DOC_MASTER";
+  public static final String ATTR_ID_DMS_DOC_CHILD = "ID_DMS_DOC_CHILD";
+
+}

Modify CandidateService insert method

The method of inserting new candidates will be modified so that, when inserting them, they will have a workspace to maintain the files to be uploaded associated with the inserted candidate.

CandidateService.java

...
+import com.ontimize.jee.common.exceptions.DmsException;
+import com.ontimize.jee.common.naming.DMSNaming;
+import com.ontimize.jee.common.services.dms.DocumentIdentifier;
+import com.ontimize.jee.server.services.dms.DMSCreationHelper;
+...
+
+@Service("CandidateService")
+@Lazy
+public class CandidateService implements ICandidateService {
+
+  ...
+
+  @Autowired
+  private DMSCreationHelper dmsHelper;
+
+  ...
+
+  @Override
+  public EntityResult candidateInsert(Map<String, Object> attrMap) throws OntimizeJEERuntimeException {
+
+    try {
+    DocumentIdentifier docId = this.dmsHelper.createDocument((String) attrMap.get(CandidateDao.ATTR_DNI));
+    attrMap.put(DMSNaming.DOCUMENT_ID_DMS_DOCUMENT, docId.getDocumentId());
+    } catch (DmsException e) {
+      throw new OntimizeJEERuntimeException("ERROR_CREATING_DMS_DOC", e);
+    }
+
+    return this.daoHelper.insert(this.candidateDao, attrMap);
+  }
+
+  ...
+}

Add File Manager Rest Controller

DMSNameConverter.java

package com.ontimize.projectwiki.ws.core.rest;
+
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.stereotype.Service;
+
+import com.ontimize.jee.common.naming.DMSNaming;
+import com.ontimize.jee.server.dms.model.OFile;
+import com.ontimize.jee.server.dms.rest.IDMSNameConverter;
+
+@Service("DMSNameConverter")
+public class DMSNameConverter implements IDMSNameConverter {
+
+  @Override
+  public Object getFileIdColumn() {
+    return DMSNaming.DOCUMENT_FILE_ID_DMS_DOCUMENT_FILE;
+  }
+
+  @Override
+  public Object getFileNameColumn() {
+    return DMSNaming.DOCUMENT_FILE_NAME;
+  }
+
+  @Override
+  public Object getFileSizeColumn() {
+    return DMSNaming.DOCUMENT_FILE_VERSION_FILE_SIZE;
+  }
+
+  @Override
+  public Object getCategoryIdColumn() {
+    return DMSNaming.CATEGORY_ID_CATEGORY;
+  }
+
+  @Override
+  public Object getCategoryNameColumn() {
+    return DMSNaming.CATEGORY_CATEGORY_NAME;
+  }
+
+  @Override
+  public OFile createOFile(Map<?, ?> params) {
+    OFile file = new OFile();
+    file.setId((Integer) params.get(DMSNaming.DOCUMENT_FILE_ID_DMS_DOCUMENT_FILE));
+    file.setName((String) params.get(DMSNaming.DOCUMENT_FILE_NAME));
+    file.setType((String) params.get(DMSNaming.DOCUMENT_FILE_TYPE));
+    file.setSize((Integer) params.get(DMSNaming.DOCUMENT_FILE_VERSION_FILE_SIZE));
+    file.setCreationDate(((Date) params.get(DMSNaming.DOCUMENT_FILE_VERSION_FILE_ADDED_DATE)).getTime());
+    file.setDirectory(false);
+    return file;
+  }
+
+  @Override
+  public List<?> getFileColumns(List<?> columns) {
+    return Arrays.asList(DMSNaming.DOCUMENT_FILE_ID_DMS_DOCUMENT_FILE, DMSNaming.DOCUMENT_FILE_NAME,
+        DMSNaming.DOCUMENT_FILE_TYPE, DMSNaming.DOCUMENT_FILE_VERSION_FILE_SIZE,
+        DMSNaming.DOCUMENT_FILE_VERSION_FILE_ADDED_DATE);
+  }
+
+  @Override
+  public List<?> getCategoryColumns(List<?> columns) {
+    return Arrays.asList(DMSNaming.CATEGORY_ID_CATEGORY, DMSNaming.CATEGORY_CATEGORY_NAME,
+        DMSNaming.CATEGORY_ID_CATEGORY_PARENT);
+  }
+
+}

FileManagerRestController.java

package com.ontimize.projectwiki.ws.core.rest;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.ontimize.jee.common.services.dms.IDMSService;
+import com.ontimize.jee.server.dms.rest.DMSRestController;
+import com.ontimize.jee.server.dms.rest.IDMSNameConverter;
+
+@RestController
+@RequestMapping("/filemanager")
+@ComponentScan(basePackageClasses = { com.ontimize.jee.common.services.dms.IDMSService.class,
+    com.ontimize.jee.server.dms.rest.IDMSNameConverter.class })
+public class FileManagerRestController extends DMSRestController<IDMSService, IDMSNameConverter> {
+
+  @Autowired
+  private IDMSService dmsService;
+
+  @Override
+  public IDMSService getService() {
+    return this.dmsService;
+  }
+
+}

Modify application.yml

The application.yml file will be modified to indicate the path where the dms files will be stored and the engine it will use. In this link you have information about the configuration of the DMS system in the application.yml file.

The path specified in the basePath variable must exist before the server is started.

application.yml

ontimize:
+   dms:
+      engine: odms
+      basePath: file:/C:/applications/projectwiki/dms

Add permissions

It is necessary to add the permissions required for the role associated with the user to be able to execute REST requests, which are secured. For the example, we will add all the methods and give access to the demo user role.

INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.server.services.dms.DMSServiceImpl/fileGetContentOfVersion');
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.server.services.dms.DMSServiceImpl/documentGetProperty');
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.server.services.dms.DMSServiceImpl/fileRecoverPreviousVersion');
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.server.services.dms.DMSServiceImpl/documentDeleteProperties');
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.server.services.dms.DMSServiceImpl/documentGetProperties');
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.server.services.dms.DMSServiceImpl/documentGetAllFiles');
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.server.services.dms.DMSServiceImpl/setRelatedDocuments');
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.server.services.dms.DMSServiceImpl/documentAddProperties');
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.server.services.dms.DMSServiceImpl/getRelatedDocument');
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.server.services.dms.DMSServiceImpl/categoryGetForDocument');
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.server.services.dms.DMSServiceImpl/moveFilesToCategory');
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.server.services.dms.DMSServiceImpl/fileVersionQuery');
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.server.services.dms.DMSServiceImpl/documentQuery');
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.server.services.dms.DMSServiceImpl/documentInsert');
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.server.services.dms.DMSServiceImpl/documentUpdate');
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.server.services.dms.DMSServiceImpl/documentGetFiles');
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.server.services.dms.DMSServiceImpl/categoryInsert');
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.server.services.dms.DMSServiceImpl/fileInsert');
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.server.services.dms.DMSServiceImpl/categoryUpdate');
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.server.services.dms.DMSServiceImpl/categoryDelete');
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.server.services.dms.DMSServiceImpl/fileDelete');
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.server.services.dms.DMSServiceImpl/fileGetVersions');
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.server.services.dms.DMSServiceImpl/fileGetContent');
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.server.services.dms.DMSServiceImpl/fileUpdate');
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.server.services.dms.DMSServiceImpl/documentDelete');
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.server.services.dms.DMSServiceImpl/fileQuery');

Add all permissions to the user role demo.

INSERT
+	INTO
+	PUBLIC.PUBLIC.TROLE_SERVER_PERMISSION tsp (ID_SERVER_PERMISSION, ID_ROLENAME)
+SELECT
+	ID_SERVER_PERMISSION,
+	(
+	SELECT
+		ID_ROLENAME
+	FROM
+		TUSER_ROLE
+	WHERE
+		USER_ = 'demo') AS ID_ROLENAME
+FROM
+	TSERVER_PERMISSION tp
+LEFT JOIN TROLE_SERVER_PERMISSION tsp ON
+	tp.ID_SERVER_PERMISSION = tsp.ID_SERVER_PERMISSION
+WHERE
+	tsp.ID_SERVER_PERMISSION IS NULL
diff --git a/v3/systems/i18n/index.html b/v3/systems/i18n/index.html new file mode 100644 index 0000000..a7e3486 --- /dev/null +++ b/v3/systems/i18n/index.html @@ -0,0 +1,281 @@ + I18N System | Ontimize Boot Skip to main content Link Menu Expand (external link) Document Search Copy Copied
Theme mode icon

Introduction

Ontimize Boot’s remote internationalization service (i18n) allows you to manage the translations of the different languages of the application without having to modify the programs translation files, by storing the translations in the database. The interface implemented by the service is com.ontimize.jee.common.services.i18n.II18nService.

Prerequisites

There are 2 options to follow this tutorial, clone the repository with the initial state and follow the tutorial step by step, or download the final example and see which files are new and which have been updated.

Initial project

/$ git clone https://github.com/ontimize/ontimize-examples
+/ontimize-examples$ cd ontimize-examples
+/ontimize-examples$ git checkout boot-i18n-initial
+

Final example

/$ git clone https://github.com/ontimize/ontimize-examples
+/ontimize-examples$ cd ontimize-examples
+/ontimize-examples$ git checkout boot-i18n
+

Configuring internationalization service in Ontimize Boot

In this complete tutorial, we are going to create a backend for an application from scratch, including the database with different tables, configuring the server, creating the necessary DAO files and implementing the service.

DB configuration

If the configuration table does not exist in the DB, the database tables necessary for the operation of the service are created, one in which the names of the translation bundles shall be stored, and another in which the translations and the bundle to which they belong shall be stored:

SQL (HSQL) Statement

CREATE TABLE TI18N(ID_I18N INTEGER GENERATED BY DEFAULT AS IDENTITY NOT NULL PRIMARY KEY,CLASS_NAME VARCHAR(150),I18N_DESCRIPTION VARCHAR(250));
+CREATE TABLE TI18N_VALUE(ID_I18N_VALUE INTEGER GENERATED BY DEFAULT AS IDENTITY NOT NULL PRIMARY KEY,ID_I18N INTEGER NOT NULL,"KEY" VARCHAR(250),ES_ES LONGVARCHAR,EN_US LONGVARCHAR,ES_ES_GL LONGVARCHAR);

In the first table (the one named TI18N) we will add a bundle to link all resources of the TI18N_VALUE table.

SQL (HSQL) Statement

INSERT INTO TI18N (ID_I18N, CLASS_NAME, I18N_DESCRIPTION) VALUES(0, 'i18n.bundle', 'Resource bundle in database');

In the case of the second table (the one named TI18N_VALUE) it will contain a column with the name of each Locale accepted by the application.

SQL (HSQL) Statement

INSERT INTO TI18N_VALUE (ID_I18N, KEY, ES_ES, EN_US, GL_ES) VALUES(0,'ID','Id. Candidato','Candidate id','Id. Candidato');
+INSERT INTO TI18N_VALUE (ID_I18N, KEY, ES_ES, EN_US, GL_ES) VALUES(0,'PHOTO','Foto','Photo','Foto');
+INSERT INTO TI18N_VALUE (ID_I18N, KEY, ES_ES, EN_US, GL_ES) VALUES(0,'NAME','Nombre','Name','Nome');
+INSERT INTO TI18N_VALUE (ID_I18N, KEY, ES_ES, EN_US, GL_ES) VALUES(0,'SURNAME','Apellido','Surname','Apelido');
+INSERT INTO TI18N_VALUE (ID_I18N, KEY, ES_ES, EN_US, GL_ES) VALUES(0,'BIRTHDAY','Fecha de Nacimiento','Birthday','Data de nacemento');
+INSERT INTO TI18N_VALUE (ID_I18N, KEY, ES_ES, EN_US, GL_ES) VALUES(0,'DNI','DNI Candidato','Candidate DNI','DNI Candidato');
+INSERT INTO TI18N_VALUE (ID_I18N, KEY, ES_ES, EN_US, GL_ES) VALUES(0,'PHONE','Telefono','Phone','Telefono');
+INSERT INTO TI18N_VALUE (ID_I18N, KEY, ES_ES, EN_US, GL_ES) VALUES(0,'EMAIL','Correo electronico','E-mail','Correo electronico');

Add Permissions

The com.ontimize.jee.common.services.i18n.II18nService service has several methods that we will have to add to the permissions to be able to execute the methods.

SQL (HSQL) Statement

INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.common.services.i18n.II18nService/getAllResourceBundles');
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.common.services.i18n.II18nService/getBundles');
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.common.services.i18n.II18nService/getBundle');
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.common.services.i18n.II18nService/getAvailableBundles');
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.common.services.i18n.II18nService/getAvailableLocales');
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.common.services.i18n.II18nService/updateBundleValues');
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.common.services.i18n.II18nService/deleteBundleValues');

Add all permissions to the user role demo.

SQL (HSQL) Statement

INSERT
+	INTO
+	TROLE_SERVER_PERMISSION tsp (ID_SERVER_PERMISSION, ID_ROLENAME)
+SELECT
+	ID_SERVER_PERMISSION,
+	(
+	SELECT
+		ID_ROLENAME
+	FROM
+		TUSER_ROLE
+	WHERE
+		USER_ = 'demo') AS ID_ROLENAME
+FROM
+	TSERVER_PERMISSION tp
+LEFT JOIN TROLE_SERVER_PERMISSION tsp ON
+	tp.ID_SERVER_PERMISSION = tsp.ID_SERVER_PERMISSION
+WHERE
+	tsp.ID_SERVER_PERMISSION IS NULL

Server configuration

To configure this service, a new configuration fragment shall be added to the application.yml file.

ontimize:
+   i18n:
+      ref-bundle-repository: OCDatabaseBundleDao
+      bundle-key-column: ID_I18N
+      bundle-class-name-column: CLASS_NAME
+      bundle-description-column: I18N_DESCRIPTION
+      ref-bundle-value-repository: OCDatabaseBundleValueDao
+      bundle-value-text-key-column: KEY
+      bundle-value-key-column: ID_I18N_VALUE
+      engine: default

This configuration indicates the keys and values to be stored in the database. The database table is the one corresponding to the bean described in the ref-bundle-repository: OCDatabaseBundleDao attribute.

Creation of DAO files

It is necessary to create the DAOs that reflect the new DB tables we have created.

First we will create the *.xml files.

OCDatabaseBundleDao.xml

<?xml version="1.0" encoding="UTF-8"?>
+<JdbcEntitySetup
+	xmlns="http://www.ontimize.com/schema/jdbc"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://www.ontimize.com/schema/jdbc http://www.ontimize.com/schema/jdbc/ontimize-jdbc-dao.xsd"
+	table="TI18N" datasource="mainDataSource"
+	catalog="" schema="${mainschema}"
+	sqlhandler="dbSQLStatementHandler">
+	<DeleteKeys>
+		<Column>ID_I18N</Column>
+	</DeleteKeys>
+	<UpdateKeys>
+		<Column>ID_I18N</Column>
+	</UpdateKeys>
+	<GeneratedKey>ID_I18N</GeneratedKey>
+</JdbcEntitySetup>

OCDatabaseBundleValueDao.xml

<?xml version="1.0" encoding="UTF-8"?>
+<JdbcEntitySetup
+	xmlns="http://www.ontimize.com/schema/jdbc"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://www.ontimize.com/schema/jdbc http://www.ontimize.com/schema/jdbc/ontimize-jdbc-dao.xsd"
+	table="TI18N_VALUE" datasource="mainDataSource"
+	catalog="" schema="${mainschema}"
+	sqlhandler="dbSQLStatementHandler">
+	<DeleteKeys>
+		<Column>ID_I18N</Column>
+		<Column>KEY</Column>
+	</DeleteKeys>
+	<UpdateKeys>
+		<Column>ID_I18N</Column>
+		<Column>KEY</Column>
+	</UpdateKeys>
+	<GeneratedKey>ID_I18N_VALUE</GeneratedKey>
+</JdbcEntitySetup>

In the *.java files we indicate that it is a repository whose name will be OCDatabaseBundleDao and OCDatabaseBundleValueDao respectively, using the @Repository annotation. With the @Lazy annotation, we indicate that the loading is delayed until it is completely necessary, and the @ConfigurationFile annotation allows us to configure this DAO using the XML file and an additional file where some features common to several DAOs can be stored, such as the schema they belong to.

OCDatabaseBundleDao.java

package com.ontimize.projectwiki.model.core.dao;
+
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Repository;
+
+import com.ontimize.jee.server.dao.common.ConfigurationFile;
+import com.ontimize.jee.server.dao.jdbc.OntimizeJdbcDaoSupport;
+
+@Repository(value = "OCDatabaseBundleDao")
+@Lazy
+@ConfigurationFile(configurationFile = "dao/OCDatabaseBundleDao.xml", configurationFilePlaceholder = "dao/placeholders.properties")
+public class OCDatabaseBundleDao extends OntimizeJdbcDaoSupport {
+
+  public OCDatabaseBundleDao() {
+    super();
+  }
+}

OCDatabaseBundleValueDao.java

package com.ontimize.projectwiki.model.core.dao;
+
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Repository;
+
+import com.ontimize.jee.server.dao.common.ConfigurationFile;
+import com.ontimize.jee.server.dao.jdbc.OntimizeJdbcDaoSupport;
+
+@Repository(value = "OCDatabaseBundleValueDao")
+@Lazy
+@ConfigurationFile(configurationFile = "dao/OCDatabaseBundleValueDao.xml", configurationFilePlaceholder = "dao/placeholders.properties")
+public class OCDatabaseBundleValueDao extends OntimizeJdbcDaoSupport {
+
+  public OCDatabaseBundleValueDao() {
+    super();
+  }
+}

Add I18n Rest Controller

I18nRestController.java

With the tag @RequestMapping we indicate the route through which the rest service will receive the requests. With the tag @RequestBody we receive the data that were sent in the rest request. In this class we create a method that retrieves the translations of a bundle that we have specified in the language that we have indicated.

package com.ontimize.projectwiki.ws.core.rest;
+
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Locale;
+import java.util.ResourceBundle;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.ontimize.jee.common.dto.EntityResult;
+import com.ontimize.jee.common.dto.EntityResultMapImpl;
+
+import com.ontimize.jee.common.services.i18n.II18nService;
+import com.ontimize.jee.server.rest.InsertParameter;
+
+@RestController
+@RequestMapping("/i18n")
+@ComponentScan(basePackageClasses = { com.ontimize.jee.common.services.i18n.II18nService.class })
+public class I18nRestController {
+
+	@Autowired
+	@Qualifier("I18nService")
+	private II18nService iI18nService;
+
+	@RequestMapping(value = "/bundle", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
+	public ResponseEntity<EntityResult> getBundle(@RequestBody InsertParameter parameter) {
+		Map<Object, Object> data = parameter.getData();
+		ResourceBundle resource = iI18nService.getBundle(String.valueOf(data.get("bundle")),
+				new Locale(String.valueOf(data.get("lang")), String.valueOf(data.get("country"))));
+		return new ResponseEntity<EntityResult>(bundleToEntityResult(resource), HttpStatus.OK);
+	}
+
+	private EntityResult bundleToEntityResult(ResourceBundle resource) {
+		Map<String, String> values = new HashMap<>();
+		Enumeration<String> keys = resource.getKeys();
+		EntityResult eR = new EntityResultMapImpl();
+		while (keys.hasMoreElements()) {
+			String key = keys.nextElement();
+			values.put("key", key);
+			values.put("value", resource.getString(key));
+			eR.addRecord(values);
+			values = new HashMap<>();
+		}
+		return eR;
+	}
+}

Testing the i18n services

To test the i18n service we will use REST requests. For this, the following query will be executed: localhost:33333/i18n/bundle

Element Meaning
localhost:33333 Indicates the host
/i18n Indicates the service to be queried
/bundle Indicates the request mapping class

The request types can only be POST and the request body has to have the following structure:

Element Meaning
bundle Indicates the class name of the bundle specified in the database
lang Indicates the language of the bundle. It needs to be lowercase.
country Indicates the country of the language. It needs to be uppercase.
Request type Query URL Service method Body request
POST query localhost:33333/i18n/bundle getBundle Example below

Body request:

{
+    "data": {
+      "bundle": "i18n.bundle",
+      "lang": "en",
+      "country": "US"
+    }
+}

The authorization used for these requests is authorization of the type BASIC. In this case, the access must be done with a user and password example:

    User: demo
+Password: demouser
+

Uses of I18n Rest Controller

The i18n interface has a few methods for managing bundles or translations. Next in this example, we will test the bundle values CRUD(Create, Read, Update, Delete) methods.

To simplify the code being written, three dots (…) may appear in some parts of the code. This indicates that there may be previous code before and after those dots.

Query bundle values

To query the bundle values we create a method that receieves the bundle class, the language to query and the country of this language.

The code to query the values of a bundle is in the previous section.

Update bundle values

To update the bundle values we create a method that receieves the translations to modify of a bundle that we have specified.

Code

I18nRestController.java

package com.ontimize.projectwiki.ws.core.rest;
+
+import java.util.ArrayList;
+. . .
+
+import com.ontimize.jee.common.gui.i18n.DatabaseBundleValues;
+import com.ontimize.jee.server.rest.UpdateParameter;
+
+. . .
+
+@RestController
+@RequestMapping("/i18n")
+@ComponentScan(basePackageClasses = { com.ontimize.jee.common.services.i18n.II18nService.class })
+public class I18nRestController {
+
+	@Autowired
+	@Qualifier("I18nService")
+	private II18nService iI18nService;
+
+  . . .
+
+	@RequestMapping(value = "/bundle/update", method = RequestMethod.PUT, produces = MediaType.APPLICATION_JSON_VALUE)
+	public void updateBundleValues(@RequestBody UpdateParameter parameter) {
+
+		DatabaseBundleValues values = new DatabaseBundleValues(iI18nService.getAvailableLocales());
+		String bundleClass = String.valueOf(parameter.getData().get("bundleClass"));
+		String key = String.valueOf(parameter.getFilter().get("key"));
+		ArrayList e = (ArrayList) parameter.getData().get("bundleValues");
+		Map<String, Object> translationValues = new HashMap<>(); 
+		for (int i = 0; i < e.size(); i++) {
+			Map<String,Object> map = (Map<String, Object>) e.get(i);
+			translationValues.put(String.valueOf(map.get("language")), map.get("value"));
+		}
+		values.addBundleValue(key, bundleClass, translationValues);
+		iI18nService.updateBundleValues(values);
+	}
+
+}

REST request

The request to execute is the following: localhost:33333/i18n/bundle/update

Element Meaning
localhost:33333 Indicates the host
/i18n Indicates the service to be queried
/bundle/update Indicates the request mapping class

The request types can only be PUT and the request body has to have the following structure:

Element Meaning
key Indicates the key of the value to be translated.
bundleClass Indicates the class name of the bundle specified in the database.
bundleValues Indicates the values of the translation to be modified.

Body request:

{
+ "filter":{
+     "key": "EMAIL"
+ },   
+ "data":
+ {
+     "bundleClass": "i18n.bundle",
+     "bundleValues": [
+         {
+             "language":"es_ES",
+             "value":"ejemplo@ejemplo.com"
+         },
+         {
+             "language":"en_US",
+             "value":"example@example.com"
+         },
+         {
+             "language":"gl_ES",
+             "value":"exemplo@exemplo.com"
+         }
+     ]
+ }
+}

Insert bundle values

The method to update the bundle values explained in the previous point also allows creating a new value in the case of the specified value does not exist in the database.

DatabaseI18nEngine.java

. . .
+Object key = this.getBundleValueKey(filter);
+if (key != null) {
+    // update
+    filter.put(this.bundleValuesKeyColumn, key);
+    this.daoBundleValues.update(hValues, filter);
+} else {
+    // insert
+    hValues.putAll(filter);
+    this.daoBundleValues.insert(hValues);
+}
+. . .

Delete bundle values

To delete the bundle values we create a method that receives the bundle class and the key of the bundle values.

I18nRestController.java

package com.ontimize.projectwiki.ws.core.rest;
+
+import java.util.ArrayList;
+. . .
+
+import com.ontimize.jee.common.gui.i18n.DatabaseBundleValues;
+import com.ontimize.jee.server.rest.DeleteParameter;
+
+. . .
+
+@RestController
+@RequestMapping("/i18n")
+@ComponentScan(basePackageClasses = { com.ontimize.jee.common.services.i18n.II18nService.class })
+public class I18nRestController {
+
+	@Autowired
+	@Qualifier("I18nService")
+	private II18nService iI18nService;
+
+  . . .
+
+	@RequestMapping(value = "/bundle/delete", method = RequestMethod.DELETE, produces = MediaType.APPLICATION_JSON_VALUE)
+	public void deleteBundleValues(@RequestBody DeleteParameter parameter) {
+		DatabaseBundleValues values = new DatabaseBundleValues(iI18nService.getAvailableLocales());
+
+		String bundleClass = String.valueOf(parameter.getFilter().get("bundleClass"));
+		String key = String.valueOf(parameter.getFilter().get("key"));
+		
+		values.addBundleValue(key, bundleClass, null);
+		iI18nService.deleteBundleValues(values);
+	}
+
+}

The request to execute is the following: localhost:33333/i18n/bundle/delete

Element Meaning
localhost:33333 Indicates the host
/i18n Indicates the service to be queried
/bundle/delete Indicates the request mapping class

The request types can only be DELETE and the request body has to have the following structure:

Element Meaning
bundleClass Indicates the class name of the bundle specified in the database.
key Indicates the key of the value to be translated.

Body Request

{
+ "filter":{
+     "bundleClass": "i18n.bundle",
+     "key": "EMAIL"
+ }
+}
diff --git a/v3/systems/index.html b/v3/systems/index.html new file mode 100644 index 0000000..10fc64b --- /dev/null +++ b/v3/systems/index.html @@ -0,0 +1 @@ + Systems | Ontimize Boot Skip to main content Link Menu Expand (external link) Document Search Copy Copied
Theme mode icon
diff --git a/v3/systems/keycloak/index.html b/v3/systems/keycloak/index.html new file mode 100644 index 0000000..3074db3 --- /dev/null +++ b/v3/systems/keycloak/index.html @@ -0,0 +1 @@ + Keycloak Security | Ontimize Boot Skip to main content Link Menu Expand (external link) Document Search Copy Copied
Theme mode icon

Keycloak Security

This module works only for Ontimize Boot version 3.10.0 or above. Actual release version: Ontimize Boot

Introduction

Keycloak is a solution that adds authentication and authorization to applications and services with minimum effort. It supports single-sign on, identity brokering, user federation, and standard protocols such as OpenID Connect, OAuth 2.0, and SAML 2.0 (More information in this link).

Previous concepts

  • Realm: A realm manages a set of users, credentials, roles, and groups. A user belongs to and logs into a realm. Realms are isolated from one another and can only manage and authenticate the users that they control.
  • Client (or resource): Clients are applications or services that want to use Keycloak to secure themselves, requesting Keycloak to authenticate a user and provide a single sign-on solution.
  • Tenant: A realm with its own clients, users, roles, etc. configured on a specific Keycloak instance.

Setting up

Ontimize allows to configure the settings for one or multiple tenants.

One tenant only

The application will use a unique tenant declared using the application properties. You can find more information at this link.

Using the application properties

The list of tenans are declared using the application properties. You can find more information at this link.

Using a table on a database

The list of tenans are declared using a table on a database. You can find more information at this link.

Providing the tenants programmatically

The list of tenans are provided programmatically. You can find more information at this link.

diff --git a/v3/systems/keycloak/multitenant/by-properties.html b/v3/systems/keycloak/multitenant/by-properties.html new file mode 100644 index 0000000..6156826 --- /dev/null +++ b/v3/systems/keycloak/multitenant/by-properties.html @@ -0,0 +1,391 @@ + Using the application properties | Ontimize Boot Skip to main content Link Menu Expand (external link) Document Search Copy Copied
Theme mode icon

Keycloak Security using the application properties

This functionality works only for Ontimize Boot version 3.15.0 or above. Actual release version: Ontimize Boot

Introduction

Ontimize allows you to provide a list of tenants in the application properties. This is useful when the application will manage a fixed list of tenants.

Prerequisites

There are 2 options to follow this tutorial, clone the repository with the initial state and follow the tutorial step by step, or download the final example and see which files are new and which have been updated.

Initial project

/$ git clone https://github.com/ontimize/ontimize-examples
+/ontimize-examples$ cd ontimize-examples
+/ontimize-examples$ git checkout boot-keycloak-login-multitenant-by-properties-initial
+

Final example

/$ git clone https://github.com/ontimize/ontimize-examples
+/ontimize-examples$ cd ontimize-examples
+/ontimize-examples$ git checkout boot-keycloak-login-multitenant-by-properties
+

Keycloak

We need a Keycloak instance, then we must configure two realms with their own clients, roles and users. For the examples we will use the next settings:

Tenant 1:

Element Value Meaning
Url http://localhost:8082 The URL of the host for keycloak security
Realm demo1 The realm name
Client projectwiki1 The client name (Enable the implicit flow check to allow testing with Swagger UI)
Role admin The role name
User demo1 The username
Password demouser The user password

Tenant 2:

Element Value Meaning
Url http://localhost:8082 The URL of the host for keycloak security
Realm demo2 The realm name
Client projectwiki2 The client name (Enable the implicit flow check to allow testing with Swagger UI)
Role admin The role name (For the examples we will use client roles)
User demo2 The username
Password demouser The user password

To simplify the code being written, three dots (…) may appear in some parts of the code. This indicates that there may be previous code before and after those dots.

Steps

Configure the role

If the role does not exist in the database, we can create it with the following command:

INSERT INTO TROLE(ID_ROLENAME,ROLENAME,XMLCLIENTPERMISSION) VALUES(0,'admin','<?xml version="1.0" encoding="UTF-8"?><security></security>')

Add the Keycloak dependency to the Boot module

The Keycloak system is integrated in the Ontimize Core module, so we need to declare it as a project dependency.

pom.xml

...
+  <dependencies>
+    ...
+    <dependency>
+      <groupId>com.ontimize.boot</groupId>
+      <artifactId>ontimize-boot-starter-keycloak</artifactId>
+    </dependency>
+    ...
+  </dependencies>
+...

Enable the Keycloak security

In the application.yml we need to change the ontimize security mode to keycloak and add the following properties (More information in this link):

application.yml

ontimize:
+   ...
+   security:
+      mode: keycloak
+      keycloak:
+         tenants-provider: list
+         tenants:
+            tenant1:
+               tenant-name: Tenant 1
+               url: http://localhost:8082
+               realm: demo1
+               client: projectwiki1
+            tenant2:
+               tenant-name: Tenant 2
+               url: http://localhost:8082
+               realm: demo2
+               client: projectwiki2
+         public-client: true
+         use-client-role-mappings: true
+...

Removing the configurations and classes that are no longer needed

Once the Keycloak authentication had been implemented, the configurations and the data access objects for Ontimize authentication can be removed.

OpenAPI declaration files

The CRUD endpoints for the users management are no longer used, then we can remove tem or comment out in the openapi-rest.yml and user.yml files.

openapi-rest.yml

...
+paths:
+  ...
+#  /users/user:
+#    $ref: 'api/User.yml#/default'
+#  /users/user/search:
+#    $ref: 'api/User.yml#/search'
+  /users/login:
+    $ref: 'api/User.yml#/login'
+...

User.yml

#default:
+#  post:
+#    tags:
+#      - Users
+#    summary: Inserts a User.
+#    description: >
+#      This resource represents a user in the system.
+#    x-restcontroller: orestcontroller
+#    requestBody:
+#      required: true
+#      content:
+#        application/json:
+#          schema:
+#            $ref: '../base/InsertParameter.yml#/components/schemas/InsertParameter'
+#          examples:
+#            Laura Bugle:
+#              value:
+#                data:
+#                  USER_: 'laura'
+#                  PASSWORD: '1432'
+#                  NAME: 'Laura'
+#                  SURNAME: 'Bugle'
+#                  EMAIL: 'laurabugle@gmail.com'
+#                  NIF: '11111111H'
+#                  USERBLOCKED: '2016-09-19T12:00:00Z'
+#                  LASTPASSWORDUPDATE: '2021-06-01T12:00:00'
+#                  FIRSTLOGIN: true
+#                sqltypes:
+#                  USER_: 12
+#                  PASSWORD: 12
+#                  NAME: 12
+#                  SURNAME: 12
+#                  EMAIL: 12
+#                  NIF: 12
+#                  USERBLOCKED: 93
+#                  LASTPASSWORDUPDATE: 93
+#                  FIRSTLOGIN: 16
+#    responses:
+#      '200':
+#        $ref: '../base/Responses.yml#/components/responses/EntityResult'
+#      '400':
+#        $ref: '../base/Responses.yml#/components/responses/BadRequest'
+#      '401':
+#        $ref: '../base/Responses.yml#/components/responses/Unauthorized'
+#      '404':
+#        $ref: '../base/Responses.yml#/components/responses/NotFound'
+#      default:
+#        $ref: '../base/Responses.yml#/components/responses/Unexpected'
+#
+#  get:
+#    tags:
+#      - Users
+#    summary: Returns a list of Users.
+#    description: >
+#      This resource represents a list of users in the system.
+#    x-restcontroller: orestcontroller
+#    parameters:
+#      - in: query
+#        name: filter
+#        description: Filter
+#        schema:
+#          type: string
+#        required: false
+#        examples:
+#          user_:
+#            value: 'USER_=laura'
+#          password:
+#            value: 'PASSWORD=1432'
+#          name:
+#            value: 'NAME=Laura'
+#          surname:
+#            value: 'SURNAME=Bugle'
+#          email:
+#            value: 'EMAIL=laurabugle@gmail.com'
+#          nif:
+#            value: 'NIF=11111111H'
+#      - in: query
+#        name: columns
+#        description: Columns
+#        required: false
+#        schema:
+#          type: string
+#          example: USER_,PASSWORD,NAME,SURNAME,EMAIL,NIF,USERBLOCKED,LASTPASSWORDUPDATE,FIRSTLOGIN
+#    responses:
+#      '200':
+#        $ref: '../base/Responses.yml#/components/responses/EntityResult'
+#      '400':
+#        $ref: '../base/Responses.yml#/components/responses/BadRequest'
+#      '401':
+#        $ref: '../base/Responses.yml#/components/responses/Unauthorized'
+#      '404':
+#        $ref: '../base/Responses.yml#/components/responses/NotFound'
+#      default:
+#        $ref: '../base/Responses.yml#/components/responses/Unexpected'
+#
+#  put:
+#    tags:
+#      - Users
+#    summary: Updates a User.
+#    description: >
+#      This resource represents a user in the system.
+#    x-restcontroller: orestcontroller
+#    requestBody:
+#      required: true
+#      content:
+#        application/json:
+#          schema:
+#            $ref: '../base/UpdateParameter.yml#/components/schemas/UpdateParameter'
+#          examples:
+#            pasword:
+#              value:
+#                data:
+#                  PASSWORD: 'mT765HkqjY_34:76l'
+#                filter:
+#                  USER_: 'laura'
+#                sqltypes:
+#                  USER_: 12
+#            email:
+#              value:
+#                data:
+#                  EMAIL: 'laura.bugle@gmail.com'
+#                filter:
+#                  USER_: 'laura'
+#                sqltypes:
+#                  USER_: 12
+#    responses:
+#      '200':
+#        $ref: '../base/Responses.yml#/components/responses/EntityResult'
+#      '400':
+#        $ref: '../base/Responses.yml#/components/responses/BadRequest'
+#      '401':
+#        $ref: '../base/Responses.yml#/components/responses/Unauthorized'
+#      '404':
+#        $ref: '../base/Responses.yml#/components/responses/NotFound'
+#      default:
+#        $ref: '../base/Responses.yml#/components/responses/Unexpected'
+#
+#  delete:
+#    tags:
+#      - Users
+#    summary: Deletes a User.
+#    description: >
+#      This resource represents a user in the system.
+#    x-restcontroller: orestcontroller
+#    requestBody:
+#      required: true
+#      content:
+#        application/json:
+#          schema:
+#            $ref: '../base/DeleteParameter.yml#/components/schemas/DeleteParameter'
+#          examples:
+#            userid:
+#              value:
+#                filter:
+#                  USER_: 'laura'
+#                sqltypes:
+#                  USER_: 12
+#    responses:
+#      '200':
+#        $ref: '../base/Responses.yml#/components/responses/EntityResult'
+#      '400':
+#        $ref: '../base/Responses.yml#/components/responses/BadRequest'
+#      '401':
+#        $ref: '../base/Responses.yml#/components/responses/Unauthorized'
+#      '404':
+#        $ref: '../base/Responses.yml#/components/responses/NotFound'
+#      default:
+#        $ref: '../base/Responses.yml#/components/responses/Unexpected'
+#
+#search:
+#  post:
+#    tags:
+#      - Users
+#    summary: Searches and returns a list of Users.
+#    description: >
+#      This resource represents a list of users in the system.
+#    x-restcontroller: orestcontroller
+#    requestBody:
+#      content:
+#        application/json:
+#          schema:
+#            $ref: '../base/QueryParameter.yml#/components/schemas/QueryParameter'
+#          examples:
+#            surname:
+#              value:
+#                filter:
+#                  SURNAME: 'Bugle'
+#                columns:
+#                  - USER_
+#                  - PASSWORD
+#                  - NAME
+#                  - SURNAME
+#                  - EMAIL
+#                  - NIF
+#                  - USERBLOCKED
+#                  - LASTPASSWORDUPDATE
+#                  - FIRSTLOGIN
+#                sqltypes:
+#                  SURNAME: 12
+#    responses:
+#      '200':
+#        $ref: '../base/Responses.yml#/components/responses/EntityResult'
+#      '400':
+#        $ref: '../base/Responses.yml#/components/responses/BadRequest'
+#      '401':
+#        $ref: '../base/Responses.yml#/components/responses/Unauthorized'
+#      '404':
+#        $ref: '../base/Responses.yml#/components/responses/NotFound'
+#      default:
+#        $ref: '../base/Responses.yml#/components/responses/Unexpected'
+login:
+  post:
+    operationId: login
+    tags:
+      - Users
+    summary: Validates the current session.
+    description: >
+      This resource represents a session in the system.
+    x-hasparentpath: true
+    responses:
+      '200':
+        $ref: '../base/Responses.yml#/components/responses/EntityResult'
+      '400':
+        $ref: '../base/Responses.yml#/components/responses/BadRequest'
+      '401':
+        $ref: '../base/Responses.yml#/components/responses/Unauthorized'
+      '404':
+        $ref: '../base/Responses.yml#/components/responses/NotFound'
+      default:
+        $ref: '../base/Responses.yml#/components/responses/Unexpected'

Configurations for user information in application.yml

The user-information-service and user-role-information-service configurations under ontimize.security are no longer used and we can remove them.

application.yml

ontimize:
+...
+   security:
+      ...
+#      user-information-service:
+#         user-repository: UserDao
+#         user-login-column: USER_
+#         user-password-column: PASSWORD
+#         query-id: login
+#         other-data:
+#            - NAME
+#            - SURNAME
+#            - EMAIL
+#            - NIF
+#            - USERBLOCKED
+#            - LASTPASSWORDUPDATE
+#            - FIRSTLOGIN
+#      user-role-information-service:
+#         user-role-repository: UserRoleDao
+#         query-id: userRole
+#         role-login-column: USER_
+#         role-name-column: ROLENAME
+...

User CRUD API

The CRUD endpoints for the users management are no longer used, then we can remove them or comment out the inheritance of the ORestController class in the UserRestController.

UserRestController.java

package com.ontimize.projectwiki.ws.core.rest;
+
+// import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+// import com.ontimize.projectwiki.api.core.service.IUserService;
+import com.ontimize.jee.common.dto.EntityResult;
+// import com.ontimize.jee.server.rest.ORestController;
+
+
+@RestController
+@RequestMapping("/users")
+public class UserRestController /* extends ORestController<IUserService> */ {
+
+/*
+       @Autowired
+       private IUserService userSrv;
+
+       @Override
+       public IUserService getService() {
+               return this.userSrv;
+       }
+*/
+
+	@RequestMapping(
+		value = "/login",
+		method = RequestMethod.POST,
+		produces = MediaType.APPLICATION_JSON_VALUE)
+	public ResponseEntity<EntityResult> login() {
+		return new ResponseEntity<>(HttpStatus.OK);
+	}
+
+}

Services and data access objects for user information

The user services and DAOs are no longer needed and we can remove them.

Tables for user information

With the above configurations and classes removed, we can remove the user tables from the database with the following commands:

DELETE FROM TROLE_SERVER_PERMISSION WHERE ID_ROLE_SERVER_PERMISSION = 0
+DELETE FROM TSERVER_PERMISSION WHERE ID_SERVER_PERMISSION = 0
+DROP TABLE PUBLIC.TUSER_PREFERENCE
+DROP TABLE PUBLIC.TUSER_ROLE
+DROP TABLE PUBLIC.TUSER
And we can remove them from the database creation script.

templateDB.txt

...
+CREATE MEMORY TABLE PUBLIC.TUSER(USER_ VARCHAR(50) NOT NULL PRIMARY KEY,PASSWORD VARCHAR(255),NAME VARCHAR(50),SURNAME VARCHAR(50),EMAIL VARCHAR(50),NIF VARCHAR(50),USERBLOCKED TIMESTAMP,LASTPASSWORDUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP,FIRSTLOGIN BOOLEAN DEFAULT TRUE)
+...
+CREATE MEMORY TABLE PUBLIC.TUSER_ROLE(ID_USER_ROLE INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 0) NOT NULL PRIMARY KEY,ID_ROLENAME INTEGER,USER_ VARCHAR(50),CONSTRAINT FK_TUSER FOREIGN KEY(USER_) REFERENCES PUBLIC.TUSER(USER_),CONSTRAINT FK_TROLE FOREIGN KEY(ID_ROLENAME) REFERENCES PUBLIC.TROLE(ID_ROLENAME))
+ALTER TABLE PUBLIC.TUSER_ROLE ALTER COLUMN ID_USER_ROLE RESTART WITH 1
+...
+CREATE MEMORY TABLE PUBLIC.TUSER_PREFERENCE(ID_USER_PREFERENCE INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 0) NOT NULL PRIMARY KEY,PREFERENCE_NAME VARCHAR(150),USER_LOGIN VARCHAR(150),PREFERENCE_VALUE VARCHAR(16777216))
+ALTER TABLE PUBLIC.TUSER_PREFERENCE ALTER COLUMN ID_USER_PREFERENCE RESTART WITH 1
+...
+INSERT INTO TUSER VALUES('demo','demouser','demo','demo',NULL,'44460713B',NULL,NULL,NULL)
+...
+INSERT INTO TUSER_ROLE VALUES(0,0,'demo')
+...
+INSERT INTO TSERVER_PERMISSION VALUES(0,'com.ontimize.jee.common.services.user.IUserInformationService/getUserInformation')
+...
+INSERT INTO TUSER_PREFERENCE VALUES(0,'user_preference','demo','Iw0KI1R1ZSBNYXkgMTYgMTI6NTc6MDYgQ0VTVCAyMDE3DQpkZW1vX2FwcF9zdGF0dXNfYmFyX3Zpc2libGU9eWVzDQpkZW1vX2FkanVzdF90cmVlX3NwYWNlPXRydWUNCmRlbW9fYXBwX3dpbmRvd19zdGF0ZT0wDQpkZW1vX3RhYmxlX2NvbmZfc29ydF9maWx0ZXJfZm9ybUN1c3RvbWVyLnhtbF9DdXN0b21lclNlcnZpY2UuY3VzdG9tZXJfVEVTVD1udWxsO251bGw7U1VSTkFNRVw9OThcOjF8SURcPTc1XDoyfE5BTUVcPTk5XDozfENVU1RPTUVSVFlQRUlEXD0wXDo0fENVU1RPTUVSSURcPTEyNVw6NXxBRERSRVNTXD0xMjNcOjZ8UEhPTkVcPTEyMVw6N3xTVEFSVERBVEVcPTEzNlw6OHxMT05HSVRVREVcPTExNlw6OXxMQVRJVFVERVw9MTEzXDoxMHxFTUFJTFw9MTcwXDoxMnw7QkFTRTY0ck8wQUJYTnlBQk5xWVhaaExuVjBhV3d1U0dGemFIUmhZbXhsRTdzUEpTRks1TGdEQUFKR0FBcHNiMkZrUm1GamRHOXlTUUFKZEdoeVpYTm9iMnhrZUhBL1FBQUFBQUFBQ0hjSUFBQUFDd0FBQUFCNA0KZGVtb190YWJsZV9jb25mX3NvcnRfZmlsdGVyX2NvbmZpZ3VyYXRpb25zX2Zvcm1DdXN0b21lci54bWxfQ3VzdG9tZXJTZXJ2aWNlLmN1c3RvbWVyPVRFU1QNCmRlbW9fdGFibGVfY29udHJvbF9wYW5lbF9mb3JtQWNjb3VudHMtZGV0YWlsLnhtbF9Nb3ZlbWVudFNlcnZpY2UubW92ZW1lbnQ9Z3JvdXB0YWJsZWtleTtkZWZhdWx0Y2hhcnRidXR0b247ZXhjZWxleHBvcnRidXR0b247c3Vtcm93YnV0dG9uO2NhbGN1bGVkY29sc2J1dHRvbjtwcmludGluZ2J1dHRvbjtmaWx0ZXJzYXZlYnV0dG9uO3Zpc2libGVjb2xzYnV0dG9uO2h0bWxleHBvcnRidXR0b247Y29weWJ1dHRvbjtncm91cHRhYmxla2V5O2luc2VydGJ1dHRvbjtyZWZyZXNoYnV0dG9uDQpkZW1vX2Zvcm1CcmFuY2hlcy1kZXRhaWwueG1sPTg4MDs1MDU7LTExNTA7MzY5DQpkZW1vX2RldGFpbF9kaWFsb2dfc2l6ZV9wb3NpdGlvbl9mb3JtQ3VzdG9tZXIueG1sX0N1c3RvbWVyU2VydmljZS5jdXN0b21lcj03NDk7MzUwOy0xOTA1OzM5MQ0KZGVtb19hcHBfdG9vbGJhcl9sb2NhdGlvbj1Ob3J0aA0KZGVtb19hcHBfd2luZG93X3Bvc2l0aW9uPS0xNTgwOzExDQpkZW1vX2FwcF93aW5kb3dfc2l6ZT0xNTg0OzEwNDQNCmRlbW9fZm9ybUVtcGxveWVlcy1kZXRhaWwueG1sPTExMTY7NzM5OzYxMDsxOTUNCmRlbW9fZm9ybUFjY291bnRzLWRldGFpbC54bWw9OTE1OzUwMDstMTE1MDszNjkNCg==')
+...
+INSERT INTO TROLE_SERVER_PERMISSION VALUES(0,0,0)
+...

Testing

In order to call the REST API of the application, we must first log in using the Keycloak authentication user interface, capture the returned token, and then provide it in the authentication header of the http request.

To test this functionality we will use the Swagger tool deployed with the application, but we need to change the authentication settings on the OpenAPI declaration file.

Modify openapi-rest.yml

In the openapi-rest.yml we need to change the security settings to use OAuth2, replacing the previous BasicAuth properties (More information in this link and in this link).

Also we need to add a new parameter to provide the tenant and in the User.yml file we need to add a reference to this parameter on each method:

openapi-rest.yml

components:
+  ...
+  parameters:
+    TenantId:
+      in: header
+      name: X-Tenant
+      required: true
+      schema:
+        type: string
+      x-ignore: true
+      examples:
+        Tenant1:
+          value: 'tenant1'
+        Tenant2:
+          value: 'tenant2'
+  securitySchemes:
+    OAuth2Demo1:
+      type: oauth2
+      flows:
+        implicit:
+          authorizationUrl: http://localhost:8082/realms/demo1/protocol/openid-connect/auth
+          scopes: {}
+    OAuth2Demo2:
+      type: oauth2
+      flows:
+        implicit:
+          authorizationUrl: http://localhost:8082/realms/demo2/protocol/openid-connect/auth
+          scopes: {}
+security:
+  - OAuth2Demo1: []
+  - OAuth2Demo2: []
+...

User.yml

...
+login:
+  post:
+    ...
+    parameters:
+      - $ref: '../openapi-rest.yml#/components/parameters/TenantId'
+...

Testing using Tenant 1

Once we have built and launched the project, we can access to the application opening a web browser and going to http://localhost:33333):

keycloak_multitenant_swagger_1.png

We must open the authorization dialog by clicking on the Authorize button, provide the client and click on the Authorize button.

keycloak_multitenant_swagger_2.png

If there is not exists a previous Keycloak session, a new tab will be opened requesting then credentials to login.

keycloak_multitenant_swagger_3.png

Once the login process has been completed, it will return to the authorization dialog, showing the result of the authorization process.

keycloak_multitenant_swagger_4.png

Now, we can close the authorization dialog and test the API selecting the tenant 1.

keycloak_multitenant_swagger_5.png

keycloak_multitenant_swagger_6.png

Testing using Tenant 2

To test using the second tenant, we must open the authorization dialog again, provide the client and click on the Authorize button.

keycloak_multitenant_swagger_7.png

If there is not exists a previous Keycloak session, a new tab will be opened requesting then credentials to login.

keycloak_multitenant_swagger_8.png

Once the login process has been completed, it will return to the authorization dialog, showing the result of the authorization process.

keycloak_multitenant_swagger_9.png

Now, we can close the authorization dialog and test the API selecting the tenant 2.

keycloak_multitenant_swagger_10.png

keycloak_multitenant_swagger_11.png

diff --git a/v3/systems/keycloak/multitenant/by-table.html b/v3/systems/keycloak/multitenant/by-table.html new file mode 100644 index 0000000..664f3d8 --- /dev/null +++ b/v3/systems/keycloak/multitenant/by-table.html @@ -0,0 +1,394 @@ + Using a table on a database | Ontimize Boot Skip to main content Link Menu Expand (external link) Document Search Copy Copied
Theme mode icon

Keycloak Security using a table on a database

This functionality works only for Ontimize Boot version 3.15.0 or above. Actual release version: Ontimize Boot

Introduction

Ontimize allows you to provide a list of tenants in the application properties. This is useful when the application will manage a fixed list of tenants.

Prerequisites

There are 2 options to follow this tutorial, clone the repository with the initial state and follow the tutorial step by step, or download the final example and see which files are new and which have been updated.

Initial project

/$ git clone https://github.com/ontimize/ontimize-examples
+/ontimize-examples$ cd ontimize-examples
+/ontimize-examples$ git checkout boot-keycloak-login-multitenant-by-table-initial
+

Final example

/$ git clone https://github.com/ontimize/ontimize-examples
+/ontimize-examples$ cd ontimize-examples
+/ontimize-examples$ git checkout boot-keycloak-login-multitenant-by-table
+

Keycloak

We need a Keycloak instance, then we must configure two realms with their own clients, roles and users. For the examples we will use the next settings:

Tenant 1:

Element Value Meaning
Url http://localhost:8082 The URL of the host for keycloak security
Realm demo1 The realm name
Client projectwiki1 The client name (Enable the implicit flow check to allow testing with Swagger UI)
Role admin The role name
User demo1 The username
Password demouser The user password

Tenant 2:

Element Value Meaning
Url http://localhost:8082 The URL of the host for keycloak security
Realm demo2 The realm name
Client projectwiki2 The client name (Enable the implicit flow check to allow testing with Swagger UI)
Role admin The role name (For the examples we will use client roles)
User demo2 The username
Password demouser The user password

To simplify the code being written, three dots (…) may appear in some parts of the code. This indicates that there may be previous code before and after those dots.

Steps

Create the tenants table

We need a table containing the tenants. This table must provide a column for each tenant property (More information in this link):

templateDB.txt

...
+SET SCHEMA PUBLIC
+...
+CREATE MEMORY TABLE PUBLIC.TENANTS(TENANT_ID VARCHAR(50) NOT NULL PRIMARY KEY,TENANT_NAME VARCHAR(100) NOT NULL,URL VARCHAR(250) NOT NULL,REALM VARCHAR(50),CLIENT VARCHAR(50))
+...
+ALTER SEQUENCE SYSTEM_LOBS.LOB_ID RESTART WITH 1
+...

Configure the tenants

We need to add the tenants to the new table, we can create it with the following command:

INSERT INTO TENANTS(TENANT_ID,TENANT_NAME,URL,REALM,CLIENT) VALUES('tenant1','Tenant 1','http://localhost:8082/','demo1','projectwiki1')
+INSERT INTO TENANTS(TENANT_ID,TENANT_NAME,URL,REALM,CLIENT) VALUES('tenant2','Tenant 2','http://localhost:8082/','demo2','projectwiki2')

Configure the role

If the role does not exist in the database, we can create it with the following command:

INSERT INTO TROLE(ID_ROLENAME,ROLENAME,XMLCLIENTPERMISSION) VALUES(0,'admin','<?xml version="1.0" encoding="UTF-8"?><security></security>')

Add the Keycloak dependency to the Boot module

The Keycloak system is integrated in the Ontimize Core module, so we need to declare it as a project dependency.

pom.xml

...
+  <dependencies>
+    ...
+    <dependency>
+      <groupId>com.ontimize.boot</groupId>
+      <artifactId>ontimize-boot-starter-keycloak</artifactId>
+    </dependency>
+    ...
+  </dependencies>
+...

Enable the Keycloak security

In the application.yml we need to change the ontimize security mode to keycloak and add the following properties (More information in this link):

application.yml

ontimize:
+   ...
+   security:
+      mode: keycloak
+      keycloak:
+         tenants-provider: list
+         tenant-repository: TenantDao
+         query-id: default
+         tenant-id-column: TENANT_ID
+         tenant-name-column: TENANT_NAME
+         url-column: URL
+         realm-column: REALM
+         client-column: CLIENT
+         public-client: true
+         use-client-role-mappings: true
+...

Removing the configurations and classes that are no longer needed

Once the Keycloak authentication had been implemented, the configurations and the data access objects for Ontimize authentication can be removed.

OpenAPI declaration files

The CRUD endpoints for the users management are no longer used, then we can remove tem or comment out in the openapi-rest.yml and user.yml files.

openapi-rest.yml

...
+paths:
+  ...
+#  /users/user:
+#    $ref: 'api/User.yml#/default'
+#  /users/user/search:
+#    $ref: 'api/User.yml#/search'
+  /users/login:
+    $ref: 'api/User.yml#/login'
+...

User.yml

#default:
+#  post:
+#    tags:
+#      - Users
+#    summary: Inserts a User.
+#    description: >
+#      This resource represents a user in the system.
+#    x-restcontroller: orestcontroller
+#    requestBody:
+#      required: true
+#      content:
+#        application/json:
+#          schema:
+#            $ref: '../base/InsertParameter.yml#/components/schemas/InsertParameter'
+#          examples:
+#            Laura Bugle:
+#              value:
+#                data:
+#                  USER_: 'laura'
+#                  PASSWORD: '1432'
+#                  NAME: 'Laura'
+#                  SURNAME: 'Bugle'
+#                  EMAIL: 'laurabugle@gmail.com'
+#                  NIF: '11111111H'
+#                  USERBLOCKED: '2016-09-19T12:00:00Z'
+#                  LASTPASSWORDUPDATE: '2021-06-01T12:00:00'
+#                  FIRSTLOGIN: true
+#                sqltypes:
+#                  USER_: 12
+#                  PASSWORD: 12
+#                  NAME: 12
+#                  SURNAME: 12
+#                  EMAIL: 12
+#                  NIF: 12
+#                  USERBLOCKED: 93
+#                  LASTPASSWORDUPDATE: 93
+#                  FIRSTLOGIN: 16
+#    responses:
+#      '200':
+#        $ref: '../base/Responses.yml#/components/responses/EntityResult'
+#      '400':
+#        $ref: '../base/Responses.yml#/components/responses/BadRequest'
+#      '401':
+#        $ref: '../base/Responses.yml#/components/responses/Unauthorized'
+#      '404':
+#        $ref: '../base/Responses.yml#/components/responses/NotFound'
+#      default:
+#        $ref: '../base/Responses.yml#/components/responses/Unexpected'
+#
+#  get:
+#    tags:
+#      - Users
+#    summary: Returns a list of Users.
+#    description: >
+#      This resource represents a list of users in the system.
+#    x-restcontroller: orestcontroller
+#    parameters:
+#      - in: query
+#        name: filter
+#        description: Filter
+#        schema:
+#          type: string
+#        required: false
+#        examples:
+#          user_:
+#            value: 'USER_=laura'
+#          password:
+#            value: 'PASSWORD=1432'
+#          name:
+#            value: 'NAME=Laura'
+#          surname:
+#            value: 'SURNAME=Bugle'
+#          email:
+#            value: 'EMAIL=laurabugle@gmail.com'
+#          nif:
+#            value: 'NIF=11111111H'
+#      - in: query
+#        name: columns
+#        description: Columns
+#        required: false
+#        schema:
+#          type: string
+#          example: USER_,PASSWORD,NAME,SURNAME,EMAIL,NIF,USERBLOCKED,LASTPASSWORDUPDATE,FIRSTLOGIN
+#    responses:
+#      '200':
+#        $ref: '../base/Responses.yml#/components/responses/EntityResult'
+#      '400':
+#        $ref: '../base/Responses.yml#/components/responses/BadRequest'
+#      '401':
+#        $ref: '../base/Responses.yml#/components/responses/Unauthorized'
+#      '404':
+#        $ref: '../base/Responses.yml#/components/responses/NotFound'
+#      default:
+#        $ref: '../base/Responses.yml#/components/responses/Unexpected'
+#
+#  put:
+#    tags:
+#      - Users
+#    summary: Updates a User.
+#    description: >
+#      This resource represents a user in the system.
+#    x-restcontroller: orestcontroller
+#    requestBody:
+#      required: true
+#      content:
+#        application/json:
+#          schema:
+#            $ref: '../base/UpdateParameter.yml#/components/schemas/UpdateParameter'
+#          examples:
+#            pasword:
+#              value:
+#                data:
+#                  PASSWORD: 'mT765HkqjY_34:76l'
+#                filter:
+#                  USER_: 'laura'
+#                sqltypes:
+#                  USER_: 12
+#            email:
+#              value:
+#                data:
+#                  EMAIL: 'laura.bugle@gmail.com'
+#                filter:
+#                  USER_: 'laura'
+#                sqltypes:
+#                  USER_: 12
+#    responses:
+#      '200':
+#        $ref: '../base/Responses.yml#/components/responses/EntityResult'
+#      '400':
+#        $ref: '../base/Responses.yml#/components/responses/BadRequest'
+#      '401':
+#        $ref: '../base/Responses.yml#/components/responses/Unauthorized'
+#      '404':
+#        $ref: '../base/Responses.yml#/components/responses/NotFound'
+#      default:
+#        $ref: '../base/Responses.yml#/components/responses/Unexpected'
+#
+#  delete:
+#    tags:
+#      - Users
+#    summary: Deletes a User.
+#    description: >
+#      This resource represents a user in the system.
+#    x-restcontroller: orestcontroller
+#    requestBody:
+#      required: true
+#      content:
+#        application/json:
+#          schema:
+#            $ref: '../base/DeleteParameter.yml#/components/schemas/DeleteParameter'
+#          examples:
+#            userid:
+#              value:
+#                filter:
+#                  USER_: 'laura'
+#                sqltypes:
+#                  USER_: 12
+#    responses:
+#      '200':
+#        $ref: '../base/Responses.yml#/components/responses/EntityResult'
+#      '400':
+#        $ref: '../base/Responses.yml#/components/responses/BadRequest'
+#      '401':
+#        $ref: '../base/Responses.yml#/components/responses/Unauthorized'
+#      '404':
+#        $ref: '../base/Responses.yml#/components/responses/NotFound'
+#      default:
+#        $ref: '../base/Responses.yml#/components/responses/Unexpected'
+#
+#search:
+#  post:
+#    tags:
+#      - Users
+#    summary: Searches and returns a list of Users.
+#    description: >
+#      This resource represents a list of users in the system.
+#    x-restcontroller: orestcontroller
+#    requestBody:
+#      content:
+#        application/json:
+#          schema:
+#            $ref: '../base/QueryParameter.yml#/components/schemas/QueryParameter'
+#          examples:
+#            surname:
+#              value:
+#                filter:
+#                  SURNAME: 'Bugle'
+#                columns:
+#                  - USER_
+#                  - PASSWORD
+#                  - NAME
+#                  - SURNAME
+#                  - EMAIL
+#                  - NIF
+#                  - USERBLOCKED
+#                  - LASTPASSWORDUPDATE
+#                  - FIRSTLOGIN
+#                sqltypes:
+#                  SURNAME: 12
+#    responses:
+#      '200':
+#        $ref: '../base/Responses.yml#/components/responses/EntityResult'
+#      '400':
+#        $ref: '../base/Responses.yml#/components/responses/BadRequest'
+#      '401':
+#        $ref: '../base/Responses.yml#/components/responses/Unauthorized'
+#      '404':
+#        $ref: '../base/Responses.yml#/components/responses/NotFound'
+#      default:
+#        $ref: '../base/Responses.yml#/components/responses/Unexpected'
+login:
+  post:
+    operationId: login
+    tags:
+      - Users
+    summary: Validates the current session.
+    description: >
+      This resource represents a session in the system.
+    x-hasparentpath: true
+    responses:
+      '200':
+        $ref: '../base/Responses.yml#/components/responses/EntityResult'
+      '400':
+        $ref: '../base/Responses.yml#/components/responses/BadRequest'
+      '401':
+        $ref: '../base/Responses.yml#/components/responses/Unauthorized'
+      '404':
+        $ref: '../base/Responses.yml#/components/responses/NotFound'
+      default:
+        $ref: '../base/Responses.yml#/components/responses/Unexpected'

Configurations for user information in application.yml

The user-information-service and user-role-information-service configurations under ontimize.security are no longer used and we can remove them.

application.yml

ontimize:
+...
+   security:
+      ...
+#      user-information-service:
+#         user-repository: UserDao
+#         user-login-column: USER_
+#         user-password-column: PASSWORD
+#         query-id: login
+#         other-data:
+#            - NAME
+#            - SURNAME
+#            - EMAIL
+#            - NIF
+#            - USERBLOCKED
+#            - LASTPASSWORDUPDATE
+#            - FIRSTLOGIN
+#      user-role-information-service:
+#         user-role-repository: UserRoleDao
+#         query-id: userRole
+#         role-login-column: USER_
+#         role-name-column: ROLENAME
+...

User CRUD API

The CRUD endpoints for the users management are no longer used, then we can remove them or comment out the inheritance of the ORestController class in the UserRestController.

UserRestController.java

package com.ontimize.projectwiki.ws.core.rest;
+
+// import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+// import com.ontimize.projectwiki.api.core.service.IUserService;
+import com.ontimize.jee.common.dto.EntityResult;
+// import com.ontimize.jee.server.rest.ORestController;
+
+
+@RestController
+@RequestMapping("/users")
+public class UserRestController /* extends ORestController<IUserService> */ {
+
+/*
+       @Autowired
+       private IUserService userSrv;
+
+       @Override
+       public IUserService getService() {
+               return this.userSrv;
+       }
+*/
+
+	@RequestMapping(
+		value = "/login",
+		method = RequestMethod.POST,
+		produces = MediaType.APPLICATION_JSON_VALUE)
+	public ResponseEntity<EntityResult> login() {
+		return new ResponseEntity<>(HttpStatus.OK);
+	}
+
+}

Services and data access objects for user information

The user services and DAOs are no longer needed and we can remove them.

Tables for user information

With the above configurations and classes removed, we can remove the user tables from the database with the following commands:

DELETE FROM TROLE_SERVER_PERMISSION WHERE ID_ROLE_SERVER_PERMISSION = 0
+DELETE FROM TSERVER_PERMISSION WHERE ID_SERVER_PERMISSION = 0
+DROP TABLE PUBLIC.TUSER_PREFERENCE
+DROP TABLE PUBLIC.TUSER_ROLE
+DROP TABLE PUBLIC.TUSER
And we can remove them from the database creation script.

templateDB.txt

...
+CREATE MEMORY TABLE PUBLIC.TUSER(USER_ VARCHAR(50) NOT NULL PRIMARY KEY,PASSWORD VARCHAR(255),NAME VARCHAR(50),SURNAME VARCHAR(50),EMAIL VARCHAR(50),NIF VARCHAR(50),USERBLOCKED TIMESTAMP,LASTPASSWORDUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP,FIRSTLOGIN BOOLEAN DEFAULT TRUE)
+...
+CREATE MEMORY TABLE PUBLIC.TUSER_ROLE(ID_USER_ROLE INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 0) NOT NULL PRIMARY KEY,ID_ROLENAME INTEGER,USER_ VARCHAR(50),CONSTRAINT FK_TUSER FOREIGN KEY(USER_) REFERENCES PUBLIC.TUSER(USER_),CONSTRAINT FK_TROLE FOREIGN KEY(ID_ROLENAME) REFERENCES PUBLIC.TROLE(ID_ROLENAME))
+ALTER TABLE PUBLIC.TUSER_ROLE ALTER COLUMN ID_USER_ROLE RESTART WITH 1
+...
+CREATE MEMORY TABLE PUBLIC.TUSER_PREFERENCE(ID_USER_PREFERENCE INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 0) NOT NULL PRIMARY KEY,PREFERENCE_NAME VARCHAR(150),USER_LOGIN VARCHAR(150),PREFERENCE_VALUE VARCHAR(16777216))
+ALTER TABLE PUBLIC.TUSER_PREFERENCE ALTER COLUMN ID_USER_PREFERENCE RESTART WITH 1
+...
+INSERT INTO TUSER VALUES('demo','demouser','demo','demo',NULL,'44460713B',NULL,NULL,NULL)
+...
+INSERT INTO TUSER_ROLE VALUES(0,0,'demo')
+...
+INSERT INTO TSERVER_PERMISSION VALUES(0,'com.ontimize.jee.common.services.user.IUserInformationService/getUserInformation')
+...
+INSERT INTO TUSER_PREFERENCE VALUES(0,'user_preference','demo','Iw0KI1R1ZSBNYXkgMTYgMTI6NTc6MDYgQ0VTVCAyMDE3DQpkZW1vX2FwcF9zdGF0dXNfYmFyX3Zpc2libGU9eWVzDQpkZW1vX2FkanVzdF90cmVlX3NwYWNlPXRydWUNCmRlbW9fYXBwX3dpbmRvd19zdGF0ZT0wDQpkZW1vX3RhYmxlX2NvbmZfc29ydF9maWx0ZXJfZm9ybUN1c3RvbWVyLnhtbF9DdXN0b21lclNlcnZpY2UuY3VzdG9tZXJfVEVTVD1udWxsO251bGw7U1VSTkFNRVw9OThcOjF8SURcPTc1XDoyfE5BTUVcPTk5XDozfENVU1RPTUVSVFlQRUlEXD0wXDo0fENVU1RPTUVSSURcPTEyNVw6NXxBRERSRVNTXD0xMjNcOjZ8UEhPTkVcPTEyMVw6N3xTVEFSVERBVEVcPTEzNlw6OHxMT05HSVRVREVcPTExNlw6OXxMQVRJVFVERVw9MTEzXDoxMHxFTUFJTFw9MTcwXDoxMnw7QkFTRTY0ck8wQUJYTnlBQk5xWVhaaExuVjBhV3d1U0dGemFIUmhZbXhsRTdzUEpTRks1TGdEQUFKR0FBcHNiMkZrUm1GamRHOXlTUUFKZEdoeVpYTm9iMnhrZUhBL1FBQUFBQUFBQ0hjSUFBQUFDd0FBQUFCNA0KZGVtb190YWJsZV9jb25mX3NvcnRfZmlsdGVyX2NvbmZpZ3VyYXRpb25zX2Zvcm1DdXN0b21lci54bWxfQ3VzdG9tZXJTZXJ2aWNlLmN1c3RvbWVyPVRFU1QNCmRlbW9fdGFibGVfY29udHJvbF9wYW5lbF9mb3JtQWNjb3VudHMtZGV0YWlsLnhtbF9Nb3ZlbWVudFNlcnZpY2UubW92ZW1lbnQ9Z3JvdXB0YWJsZWtleTtkZWZhdWx0Y2hhcnRidXR0b247ZXhjZWxleHBvcnRidXR0b247c3Vtcm93YnV0dG9uO2NhbGN1bGVkY29sc2J1dHRvbjtwcmludGluZ2J1dHRvbjtmaWx0ZXJzYXZlYnV0dG9uO3Zpc2libGVjb2xzYnV0dG9uO2h0bWxleHBvcnRidXR0b247Y29weWJ1dHRvbjtncm91cHRhYmxla2V5O2luc2VydGJ1dHRvbjtyZWZyZXNoYnV0dG9uDQpkZW1vX2Zvcm1CcmFuY2hlcy1kZXRhaWwueG1sPTg4MDs1MDU7LTExNTA7MzY5DQpkZW1vX2RldGFpbF9kaWFsb2dfc2l6ZV9wb3NpdGlvbl9mb3JtQ3VzdG9tZXIueG1sX0N1c3RvbWVyU2VydmljZS5jdXN0b21lcj03NDk7MzUwOy0xOTA1OzM5MQ0KZGVtb19hcHBfdG9vbGJhcl9sb2NhdGlvbj1Ob3J0aA0KZGVtb19hcHBfd2luZG93X3Bvc2l0aW9uPS0xNTgwOzExDQpkZW1vX2FwcF93aW5kb3dfc2l6ZT0xNTg0OzEwNDQNCmRlbW9fZm9ybUVtcGxveWVlcy1kZXRhaWwueG1sPTExMTY7NzM5OzYxMDsxOTUNCmRlbW9fZm9ybUFjY291bnRzLWRldGFpbC54bWw9OTE1OzUwMDstMTE1MDszNjkNCg==')
+...
+INSERT INTO TROLE_SERVER_PERMISSION VALUES(0,0,0)
+...

Testing

In order to call the REST API of the application, we must first log in using the Keycloak authentication user interface, capture the returned token, and then provide it in the authentication header of the http request.

To test this functionality we will use the Swagger tool deployed with the application, but we need to change the authentication settings on the OpenAPI declaration file.

Modify openapi-rest.yml

In the openapi-rest.yml we need to change the security settings to use OAuth2, replacing the previous BasicAuth properties (More information in this link and in this link).

Also we need to add a new parameter to provide the tenant and in the User.yml file we need to add a reference to this parameter on each method:

openapi-rest.yml

components:
+  ...
+  parameters:
+    TenantId:
+      in: header
+      name: X-Tenant
+      required: true
+      schema:
+        type: string
+      x-ignore: true
+      examples:
+        Tenant1:
+          value: 'tenant1'
+        Tenant2:
+          value: 'tenant2'
+  securitySchemes:
+    OAuth2Demo1:
+      type: oauth2
+      flows:
+        implicit:
+          authorizationUrl: http://localhost:8082/realms/demo1/protocol/openid-connect/auth
+          scopes: {}
+    OAuth2Demo2:
+      type: oauth2
+      flows:
+        implicit:
+          authorizationUrl: http://localhost:8082/realms/demo2/protocol/openid-connect/auth
+          scopes: {}
+security:
+  - OAuth2Demo1: []
+  - OAuth2Demo2: []
+...

User.yml

...
+login:
+  post:
+    ...
+    parameters:
+      - $ref: '../openapi-rest.yml#/components/parameters/TenantId'
+...

Testing using Tenant 1

Once we have built and launched the project, we can access to the application opening a web browser and going to http://localhost:33333):

keycloak_multitenant_swagger_1.png

We must open the authorization dialog by clicking on the Authorize button, provide the client and click on the Authorize button.

keycloak_multitenant_swagger_2.png

If there is not exists a previous Keycloak session, a new tab will be opened requesting then credentials to login.

keycloak_multitenant_swagger_3.png

Once the login process has been completed, it will return to the authorization dialog, showing the result of the authorization process.

keycloak_multitenant_swagger_4.png

Now, we can close the authorization dialog and test the API selecting the tenant 1.

keycloak_multitenant_swagger_5.png

keycloak_multitenant_swagger_6.png

Testing using Tenant 2

To test using the second tenant, we must open the authorization dialog again, provide the client and click on the Authorize button.

keycloak_multitenant_swagger_7.png

If there is not exists a previous Keycloak session, a new tab will be opened requesting then credentials to login.

keycloak_multitenant_swagger_8.png

Once the login process has been completed, it will return to the authorization dialog, showing the result of the authorization process.

keycloak_multitenant_swagger_9.png

Now, we can close the authorization dialog and test the API selecting the tenant 2.

keycloak_multitenant_swagger_10.png

keycloak_multitenant_swagger_11.png

diff --git a/v3/systems/keycloak/multitenant/programmatically.html b/v3/systems/keycloak/multitenant/programmatically.html new file mode 100644 index 0000000..0d4bb05 --- /dev/null +++ b/v3/systems/keycloak/multitenant/programmatically.html @@ -0,0 +1,420 @@ + Providing the tenants programmatically | Ontimize Boot Skip to main content Link Menu Expand (external link) Document Search Copy Copied
Theme mode icon

Keycloak Security providing the tenants programmatically

Introduction

Ontimize allows you to provide a list of tenants programmatically. This is useful when the application will manage a dynamic list of tenants.

Prerequisites

There are 2 options to follow this tutorial, clone the repository with the initial state and follow the tutorial step by step, or download the final example and see which files are new and which have been updated.

Initial project

/$ git clone https://github.com/ontimize/ontimize-examples
+/ontimize-examples$ cd ontimize-examples
+/ontimize-examples$ git checkout boot-keycloak-login-custom-initial
+

Final example

/$ git clone https://github.com/ontimize/ontimize-examples
+/ontimize-examples$ cd ontimize-examples
+/ontimize-examples$ git checkout boot-keycloak-login-custom
+

Keycloak

We need a Keycloak instance, then we must configure two realms with their own clients, roles and users. For the examples we will use the next settings:

Tenant 1:

Element Value Meaning
Url http://localhost:8082 The URL of the host for keycloak security
Realm demo1 The realm name
Client projectwiki1 The client name (Enable the implicit flow check to allow testing with Swagger UI)
Role admin The role name
User demo1 The username
Password demouser The user password

Tenant 2:

Element Value Meaning
Url http://localhost:8082 The URL of the host for keycloak security
Realm demo2 The realm name
Client projectwiki2 The client name (Enable the implicit flow check to allow testing with Swagger UI)
Role admin The role name (For the examples we will use client roles)
User demo2 The username
Password demouser The user password

To simplify the code being written, three dots (…) may appear in some parts of the code. This indicates that there may be previous code before and after those dots.

Steps

Configure the role

If the role does not exist in the database, we can create it with the following command:

INSERT INTO TROLE(ID_ROLENAME,ROLENAME,XMLCLIENTPERMISSION) VALUES(0,'admin','<?xml version="1.0" encoding="UTF-8"?><security></security>')

Add the Keycloak dependency to the Boot module

The Keycloak system is integrated in the Ontimize Core module, so we need to declare it as a project dependency.

pom.xml

...
+  <dependencies>
+    ...
+    <dependency>
+      <groupId>com.ontimize.boot</groupId>
+      <artifactId>ontimize-boot-starter-keycloak</artifactId>
+    </dependency>
+    ...
+  </dependencies>
+...

Enable the Keycloak security

In the application.yml we need to change the ontimize security mode to keycloak and add the following properties (More information in this link):

application.yml

ontimize:
+   ...
+   security:
+      mode: keycloak
+      keycloak:
+         tenants-provider: custom
+         public-client: true
+         use-client-role-mappings: true
+...

Add the dependencies to the Model module

pom.xml

...
+  <dependencies>
+    ...
+    <dependency>
+        <groupId>com.ontimize.jee</groupId>
+        <artifactId>ontimize-jee-server-keycloak</artifactId>
+    </dependency>
+    ...
+  </dependencies>
+...

Provide the tenants programmatically

The OntimizeKeycloakConfigResolver bean is responsible for managing tenants, so we need to provide it with the tenants we want to use. For this we will add the new TenantsService class.

TenantsService.java

package com.ontimize.projectwiki.model.core.services;
+
+import com.ontimize.jee.common.multitenant.ITenantAuthenticationInfo;
+import com.ontimize.jee.server.security.keycloak.OntimizeKeycloakConfigResolver;
+import com.ontimize.jee.server.security.keycloak.store.TenantAuthenticationInfo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.HashMap;
+import java.util.Map;
+
+@Service("TenantsService")
+public class TenantsService {
+	private final Map<String, ITenantAuthenticationInfo> authenticationMap = new HashMap<>();
+
+	@Autowired
+	public TenantsService(final OntimizeKeycloakConfigResolver keycloakConfigResolver) {
+		this.AddTenant("tenant1", "Tenant 1", "http://localhost:8082", "demo1", "projectwiki1");
+		this.AddTenant("tenant2", "Tenant 2", "http://localhost:8082", "demo2", "projectwiki2");
+		keycloakConfigResolver.setTenantsAuthenticationInfo(this.authenticationMap);
+	}
+
+	private void AddTenant(final String tenantId, final String tenantName, final String url, final String realm, final String client) {
+		final TenantAuthenticationInfo frontAuthInfo = new TenantAuthenticationInfo();
+		frontAuthInfo.setTenantId(tenantId);
+		frontAuthInfo.setTenantName(tenantName);
+		frontAuthInfo.setUrl(url);
+		frontAuthInfo.setRealm(realm);
+		frontAuthInfo.setClient(client);
+		this.authenticationMap.put(tenantId, frontAuthInfo);
+	}
+}

Since Ontimize version 3.15.0, IOntimizeMultitenantKeycloakConfigResolver interface has been replaced by OntimizeKeycloakConfigResolve class.

Removing the configurations and classes that are no longer needed

Once the Keycloak authentication had been implemented, the configurations and the data access objects for Ontimize authentication can be removed.

OpenAPI declaration files

The CRUD endpoints for the users management are no longer used, then we can remove tem or comment out in the openapi-rest.yml and user.yml files.

openapi-rest.yml

...
+paths:
+  ...
+#  /users/user:
+#    $ref: 'api/User.yml#/default'
+#  /users/user/search:
+#    $ref: 'api/User.yml#/search'
+  /users/login:
+    $ref: 'api/User.yml#/login'
+...

User.yml

#default:
+#  post:
+#    tags:
+#      - Users
+#    summary: Inserts a User.
+#    description: >
+#      This resource represents a user in the system.
+#    x-restcontroller: orestcontroller
+#    requestBody:
+#      required: true
+#      content:
+#        application/json:
+#          schema:
+#            $ref: '../base/InsertParameter.yml#/components/schemas/InsertParameter'
+#          examples:
+#            Laura Bugle:
+#              value:
+#                data:
+#                  USER_: 'laura'
+#                  PASSWORD: '1432'
+#                  NAME: 'Laura'
+#                  SURNAME: 'Bugle'
+#                  EMAIL: 'laurabugle@gmail.com'
+#                  NIF: '11111111H'
+#                  USERBLOCKED: '2016-09-19T12:00:00Z'
+#                  LASTPASSWORDUPDATE: '2021-06-01T12:00:00'
+#                  FIRSTLOGIN: true
+#                sqltypes:
+#                  USER_: 12
+#                  PASSWORD: 12
+#                  NAME: 12
+#                  SURNAME: 12
+#                  EMAIL: 12
+#                  NIF: 12
+#                  USERBLOCKED: 93
+#                  LASTPASSWORDUPDATE: 93
+#                  FIRSTLOGIN: 16
+#    responses:
+#      '200':
+#        $ref: '../base/Responses.yml#/components/responses/EntityResult'
+#      '400':
+#        $ref: '../base/Responses.yml#/components/responses/BadRequest'
+#      '401':
+#        $ref: '../base/Responses.yml#/components/responses/Unauthorized'
+#      '404':
+#        $ref: '../base/Responses.yml#/components/responses/NotFound'
+#      default:
+#        $ref: '../base/Responses.yml#/components/responses/Unexpected'
+#
+#  get:
+#    tags:
+#      - Users
+#    summary: Returns a list of Users.
+#    description: >
+#      This resource represents a list of users in the system.
+#    x-restcontroller: orestcontroller
+#    parameters:
+#      - in: query
+#        name: filter
+#        description: Filter
+#        schema:
+#          type: string
+#        required: false
+#        examples:
+#          user_:
+#            value: 'USER_=laura'
+#          password:
+#            value: 'PASSWORD=1432'
+#          name:
+#            value: 'NAME=Laura'
+#          surname:
+#            value: 'SURNAME=Bugle'
+#          email:
+#            value: 'EMAIL=laurabugle@gmail.com'
+#          nif:
+#            value: 'NIF=11111111H'
+#      - in: query
+#        name: columns
+#        description: Columns
+#        required: false
+#        schema:
+#          type: string
+#          example: USER_,PASSWORD,NAME,SURNAME,EMAIL,NIF,USERBLOCKED,LASTPASSWORDUPDATE,FIRSTLOGIN
+#    responses:
+#      '200':
+#        $ref: '../base/Responses.yml#/components/responses/EntityResult'
+#      '400':
+#        $ref: '../base/Responses.yml#/components/responses/BadRequest'
+#      '401':
+#        $ref: '../base/Responses.yml#/components/responses/Unauthorized'
+#      '404':
+#        $ref: '../base/Responses.yml#/components/responses/NotFound'
+#      default:
+#        $ref: '../base/Responses.yml#/components/responses/Unexpected'
+#
+#  put:
+#    tags:
+#      - Users
+#    summary: Updates a User.
+#    description: >
+#      This resource represents a user in the system.
+#    x-restcontroller: orestcontroller
+#    requestBody:
+#      required: true
+#      content:
+#        application/json:
+#          schema:
+#            $ref: '../base/UpdateParameter.yml#/components/schemas/UpdateParameter'
+#          examples:
+#            pasword:
+#              value:
+#                data:
+#                  PASSWORD: 'mT765HkqjY_34:76l'
+#                filter:
+#                  USER_: 'laura'
+#                sqltypes:
+#                  USER_: 12
+#            email:
+#              value:
+#                data:
+#                  EMAIL: 'laura.bugle@gmail.com'
+#                filter:
+#                  USER_: 'laura'
+#                sqltypes:
+#                  USER_: 12
+#    responses:
+#      '200':
+#        $ref: '../base/Responses.yml#/components/responses/EntityResult'
+#      '400':
+#        $ref: '../base/Responses.yml#/components/responses/BadRequest'
+#      '401':
+#        $ref: '../base/Responses.yml#/components/responses/Unauthorized'
+#      '404':
+#        $ref: '../base/Responses.yml#/components/responses/NotFound'
+#      default:
+#        $ref: '../base/Responses.yml#/components/responses/Unexpected'
+#
+#  delete:
+#    tags:
+#      - Users
+#    summary: Deletes a User.
+#    description: >
+#      This resource represents a user in the system.
+#    x-restcontroller: orestcontroller
+#    requestBody:
+#      required: true
+#      content:
+#        application/json:
+#          schema:
+#            $ref: '../base/DeleteParameter.yml#/components/schemas/DeleteParameter'
+#          examples:
+#            userid:
+#              value:
+#                filter:
+#                  USER_: 'laura'
+#                sqltypes:
+#                  USER_: 12
+#    responses:
+#      '200':
+#        $ref: '../base/Responses.yml#/components/responses/EntityResult'
+#      '400':
+#        $ref: '../base/Responses.yml#/components/responses/BadRequest'
+#      '401':
+#        $ref: '../base/Responses.yml#/components/responses/Unauthorized'
+#      '404':
+#        $ref: '../base/Responses.yml#/components/responses/NotFound'
+#      default:
+#        $ref: '../base/Responses.yml#/components/responses/Unexpected'
+#
+#search:
+#  post:
+#    tags:
+#      - Users
+#    summary: Searches and returns a list of Users.
+#    description: >
+#      This resource represents a list of users in the system.
+#    x-restcontroller: orestcontroller
+#    requestBody:
+#      content:
+#        application/json:
+#          schema:
+#            $ref: '../base/QueryParameter.yml#/components/schemas/QueryParameter'
+#          examples:
+#            surname:
+#              value:
+#                filter:
+#                  SURNAME: 'Bugle'
+#                columns:
+#                  - USER_
+#                  - PASSWORD
+#                  - NAME
+#                  - SURNAME
+#                  - EMAIL
+#                  - NIF
+#                  - USERBLOCKED
+#                  - LASTPASSWORDUPDATE
+#                  - FIRSTLOGIN
+#                sqltypes:
+#                  SURNAME: 12
+#    responses:
+#      '200':
+#        $ref: '../base/Responses.yml#/components/responses/EntityResult'
+#      '400':
+#        $ref: '../base/Responses.yml#/components/responses/BadRequest'
+#      '401':
+#        $ref: '../base/Responses.yml#/components/responses/Unauthorized'
+#      '404':
+#        $ref: '../base/Responses.yml#/components/responses/NotFound'
+#      default:
+#        $ref: '../base/Responses.yml#/components/responses/Unexpected'
+login:
+  post:
+    operationId: login
+    tags:
+      - Users
+    summary: Validates the current session.
+    description: >
+      This resource represents a session in the system.
+    x-hasparentpath: true
+    responses:
+      '200':
+        $ref: '../base/Responses.yml#/components/responses/EntityResult'
+      '400':
+        $ref: '../base/Responses.yml#/components/responses/BadRequest'
+      '401':
+        $ref: '../base/Responses.yml#/components/responses/Unauthorized'
+      '404':
+        $ref: '../base/Responses.yml#/components/responses/NotFound'
+      default:
+        $ref: '../base/Responses.yml#/components/responses/Unexpected'

Configurations for user information in application.yml

The user-information-service and user-role-information-service configurations under ontimize.security are no longer used and we can remove them.

application.yml

ontimize:
+...
+   security:
+      ...
+#      user-information-service:
+#         user-repository: UserDao
+#         user-login-column: USER_
+#         user-password-column: PASSWORD
+#         query-id: login
+#         other-data:
+#            - NAME
+#            - SURNAME
+#            - EMAIL
+#            - NIF
+#            - USERBLOCKED
+#            - LASTPASSWORDUPDATE
+#            - FIRSTLOGIN
+#      user-role-information-service:
+#         user-role-repository: UserRoleDao
+#         query-id: userRole
+#         role-login-column: USER_
+#         role-name-column: ROLENAME
+...

User CRUD API

The CRUD endpoints for the users management are no longer used, then we can remove them or comment out the inheritance of the ORestController class in the UserRestController.

UserRestController.java

package com.ontimize.projectwiki.ws.core.rest;
+
+// import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+// import com.ontimize.projectwiki.api.core.service.IUserService;
+import com.ontimize.jee.common.dto.EntityResult;
+// import com.ontimize.jee.server.rest.ORestController;
+
+
+@RestController
+@RequestMapping("/users")
+public class UserRestController /* extends ORestController<IUserService> */ {
+
+/*
+       @Autowired
+       private IUserService userSrv;
+
+       @Override
+       public IUserService getService() {
+               return this.userSrv;
+       }
+*/
+
+	@RequestMapping(
+		value = "/login",
+		method = RequestMethod.POST,
+		produces = MediaType.APPLICATION_JSON_VALUE)
+	public ResponseEntity<EntityResult> login() {
+		return new ResponseEntity<>(HttpStatus.OK);
+	}
+
+}

Services and data access objects for user information

The user services and DAOs are no longer needed and we can remove them.

Tables for user information

With the above configurations and classes removed, we can remove the user tables from the database with the following commands:

DELETE FROM TROLE_SERVER_PERMISSION WHERE ID_ROLE_SERVER_PERMISSION = 0
+DELETE FROM TSERVER_PERMISSION WHERE ID_SERVER_PERMISSION = 0
+DROP TABLE PUBLIC.TUSER_PREFERENCE
+DROP TABLE PUBLIC.TUSER_ROLE
+DROP TABLE PUBLIC.TUSER
And we can remove them from the database creation script.

templateDB.txt

...
+CREATE MEMORY TABLE PUBLIC.TUSER(USER_ VARCHAR(50) NOT NULL PRIMARY KEY,PASSWORD VARCHAR(255),NAME VARCHAR(50),SURNAME VARCHAR(50),EMAIL VARCHAR(50),NIF VARCHAR(50),USERBLOCKED TIMESTAMP,LASTPASSWORDUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP,FIRSTLOGIN BOOLEAN DEFAULT TRUE)
+...
+CREATE MEMORY TABLE PUBLIC.TUSER_ROLE(ID_USER_ROLE INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 0) NOT NULL PRIMARY KEY,ID_ROLENAME INTEGER,USER_ VARCHAR(50),CONSTRAINT FK_TUSER FOREIGN KEY(USER_) REFERENCES PUBLIC.TUSER(USER_),CONSTRAINT FK_TROLE FOREIGN KEY(ID_ROLENAME) REFERENCES PUBLIC.TROLE(ID_ROLENAME))
+ALTER TABLE PUBLIC.TUSER_ROLE ALTER COLUMN ID_USER_ROLE RESTART WITH 1
+...
+CREATE MEMORY TABLE PUBLIC.TUSER_PREFERENCE(ID_USER_PREFERENCE INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 0) NOT NULL PRIMARY KEY,PREFERENCE_NAME VARCHAR(150),USER_LOGIN VARCHAR(150),PREFERENCE_VALUE VARCHAR(16777216))
+ALTER TABLE PUBLIC.TUSER_PREFERENCE ALTER COLUMN ID_USER_PREFERENCE RESTART WITH 1
+...
+INSERT INTO TUSER VALUES('demo','demouser','demo','demo',NULL,'44460713B',NULL,NULL,NULL)
+...
+INSERT INTO TUSER_ROLE VALUES(0,0,'demo')
+...
+INSERT INTO TSERVER_PERMISSION VALUES(0,'com.ontimize.jee.common.services.user.IUserInformationService/getUserInformation')
+...
+INSERT INTO TUSER_PREFERENCE VALUES(0,'user_preference','demo','Iw0KI1R1ZSBNYXkgMTYgMTI6NTc6MDYgQ0VTVCAyMDE3DQpkZW1vX2FwcF9zdGF0dXNfYmFyX3Zpc2libGU9eWVzDQpkZW1vX2FkanVzdF90cmVlX3NwYWNlPXRydWUNCmRlbW9fYXBwX3dpbmRvd19zdGF0ZT0wDQpkZW1vX3RhYmxlX2NvbmZfc29ydF9maWx0ZXJfZm9ybUN1c3RvbWVyLnhtbF9DdXN0b21lclNlcnZpY2UuY3VzdG9tZXJfVEVTVD1udWxsO251bGw7U1VSTkFNRVw9OThcOjF8SURcPTc1XDoyfE5BTUVcPTk5XDozfENVU1RPTUVSVFlQRUlEXD0wXDo0fENVU1RPTUVSSURcPTEyNVw6NXxBRERSRVNTXD0xMjNcOjZ8UEhPTkVcPTEyMVw6N3xTVEFSVERBVEVcPTEzNlw6OHxMT05HSVRVREVcPTExNlw6OXxMQVRJVFVERVw9MTEzXDoxMHxFTUFJTFw9MTcwXDoxMnw7QkFTRTY0ck8wQUJYTnlBQk5xWVhaaExuVjBhV3d1U0dGemFIUmhZbXhsRTdzUEpTRks1TGdEQUFKR0FBcHNiMkZrUm1GamRHOXlTUUFKZEdoeVpYTm9iMnhrZUhBL1FBQUFBQUFBQ0hjSUFBQUFDd0FBQUFCNA0KZGVtb190YWJsZV9jb25mX3NvcnRfZmlsdGVyX2NvbmZpZ3VyYXRpb25zX2Zvcm1DdXN0b21lci54bWxfQ3VzdG9tZXJTZXJ2aWNlLmN1c3RvbWVyPVRFU1QNCmRlbW9fdGFibGVfY29udHJvbF9wYW5lbF9mb3JtQWNjb3VudHMtZGV0YWlsLnhtbF9Nb3ZlbWVudFNlcnZpY2UubW92ZW1lbnQ9Z3JvdXB0YWJsZWtleTtkZWZhdWx0Y2hhcnRidXR0b247ZXhjZWxleHBvcnRidXR0b247c3Vtcm93YnV0dG9uO2NhbGN1bGVkY29sc2J1dHRvbjtwcmludGluZ2J1dHRvbjtmaWx0ZXJzYXZlYnV0dG9uO3Zpc2libGVjb2xzYnV0dG9uO2h0bWxleHBvcnRidXR0b247Y29weWJ1dHRvbjtncm91cHRhYmxla2V5O2luc2VydGJ1dHRvbjtyZWZyZXNoYnV0dG9uDQpkZW1vX2Zvcm1CcmFuY2hlcy1kZXRhaWwueG1sPTg4MDs1MDU7LTExNTA7MzY5DQpkZW1vX2RldGFpbF9kaWFsb2dfc2l6ZV9wb3NpdGlvbl9mb3JtQ3VzdG9tZXIueG1sX0N1c3RvbWVyU2VydmljZS5jdXN0b21lcj03NDk7MzUwOy0xOTA1OzM5MQ0KZGVtb19hcHBfdG9vbGJhcl9sb2NhdGlvbj1Ob3J0aA0KZGVtb19hcHBfd2luZG93X3Bvc2l0aW9uPS0xNTgwOzExDQpkZW1vX2FwcF93aW5kb3dfc2l6ZT0xNTg0OzEwNDQNCmRlbW9fZm9ybUVtcGxveWVlcy1kZXRhaWwueG1sPTExMTY7NzM5OzYxMDsxOTUNCmRlbW9fZm9ybUFjY291bnRzLWRldGFpbC54bWw9OTE1OzUwMDstMTE1MDszNjkNCg==')
+...
+INSERT INTO TROLE_SERVER_PERMISSION VALUES(0,0,0)
+...

Testing

In order to call the REST API of the application, we must first log in using the Keycloak authentication user interface, capture the returned token, and then provide it in the authentication header of the http request.

To test this functionality we will use the Swagger tool deployed with the application, but we need to change the authentication settings on the OpenAPI declaration file.

Modify openapi-rest.yml

In the openapi-rest.yml we need to change the security settings to use OAuth2, replacing the previous BasicAuth properties (More information in this link and in this link).

Also we need to add a new parameter to provide the tenant and in the User.yml file we need to add a reference to this parameter on each method:

openapi-rest.yml

components:
+  ...
+  parameters:
+    TenantId:
+      in: header
+      name: X-Tenant
+      required: true
+      schema:
+        type: string
+      x-ignore: true
+      examples:
+        Tenant1:
+          value: 'tenant1'
+        Tenant2:
+          value: 'tenant2'
+  securitySchemes:
+    OAuth2Demo1:
+      type: oauth2
+      flows:
+        implicit:
+          authorizationUrl: http://localhost:8082/realms/demo1/protocol/openid-connect/auth
+          scopes: {}
+    OAuth2Demo2:
+      type: oauth2
+      flows:
+        implicit:
+          authorizationUrl: http://localhost:8082/realms/demo2/protocol/openid-connect/auth
+          scopes: {}
+security:
+  - OAuth2Demo1: []
+  - OAuth2Demo2: []
+...

User.yml

...
+login:
+  post:
+    ...
+    parameters:
+      - $ref: '../openapi-rest.yml#/components/parameters/TenantId'
+...

Testing using Tenant 1

Once we have built and launched the project, we can access to the application opening a web browser and going to http://localhost:33333):

keycloak_multitenant_swagger_1.png

We must open the authorization dialog by clicking on the Authorize button, provide the client and click on the Authorize button.

keycloak_multitenant_swagger_2.png

If there is not exists a previous Keycloak session, a new tab will be opened requesting then credentials to login.

keycloak_multitenant_swagger_3.png

Once the login process has been completed, it will return to the authorization dialog, showing the result of the authorization process.

keycloak_multitenant_swagger_4.png

Now, we can close the authorization dialog and test the API selecting the tenant 1.

keycloak_multitenant_swagger_5.png

keycloak_multitenant_swagger_6.png

Testing using Tenant 2

To test using the second tenant, we must open the authorization dialog again, provide the client and click on the Authorize button.

keycloak_multitenant_swagger_7.png

If there is not exists a previous Keycloak session, a new tab will be opened requesting then credentials to login.

keycloak_multitenant_swagger_8.png

Once the login process has been completed, it will return to the authorization dialog, showing the result of the authorization process.

keycloak_multitenant_swagger_9.png

Now, we can close the authorization dialog and test the API selecting the tenant 2.

keycloak_multitenant_swagger_10.png

keycloak_multitenant_swagger_11.png

diff --git a/v3/systems/keycloak/one-tenant.html b/v3/systems/keycloak/one-tenant.html new file mode 100644 index 0000000..2bf1a7d --- /dev/null +++ b/v3/systems/keycloak/one-tenant.html @@ -0,0 +1,356 @@ + One tenant only | Ontimize Boot Skip to main content Link Menu Expand (external link) Document Search Copy Copied
Theme mode icon

Keycloak Security with one tenant only

Introduction

Ontimize allows you to provide the tenant in the application properties. This is useful when the application will use a fixed tenant.

Prerequisites

There are 2 options to follow this tutorial, clone the repository with the initial state and follow the tutorial step by step, or download the final example and see which files are new and which have been updated.

Initial project

/$ git clone https://github.com/ontimize/ontimize-examples
+/ontimize-examples$ cd ontimize-examples
+/ontimize-examples$ git checkout boot-keycloak-login-initial
+

Final example

/$ git clone https://github.com/ontimize/ontimize-examples
+/ontimize-examples$ cd ontimize-examples
+/ontimize-examples$ git checkout boot-keycloak-login
+

Keycloak

We need a Keycloak instance, then we must configure a realm with a client, a role and a user. For the examples we will use the next settings:

Element Value Meaning
Url http://localhost:8082 The URL of the host for keycloak security
Realm demo The realm name
Client projectwiki The client name (Enable the implicit flow check to allow testing with Swagger UI)
Role admin The role name (For the examples we will use client roles)
User demo The username
Password demouser The user password

To simplify the code being written, three dots (…) may appear in some parts of the code. This indicates that there may be previous code before and after those dots.

Steps

Configure the role

If the role does not exist in the database, we can create it with the following command:

INSERT INTO TROLE(ID_ROLENAME,ROLENAME,XMLCLIENTPERMISSION) VALUES(0,'admin','<?xml version="1.0" encoding="UTF-8"?><security></security>')

Add the Keycloak dependency to the Boot module

The Keycloak system is integrated in the Ontimize Core module, so we need to declare it as a project dependency.

pom.xml

...
+  <dependencies>
+    ...
+    <dependency>
+      <groupId>com.ontimize.boot</groupId>
+      <artifactId>ontimize-boot-starter-keycloak</artifactId>
+    </dependency>
+    ...
+  </dependencies>
+...

Enable the Keycloak security

In the application.yml we need to change the ontimize security mode to keycloak and add the following properties (More information in this link):

application.yml

ontimize:
+   ...
+   security:
+      mode: keycloak
+      keycloak:
+         url: http://localhost:8082
+         realm: demo
+         client: projectwiki
+         public-client: true
+         use-client-role-mappings: true
+...

Removing the configurations and classes that are no longer needed

Once the Keycloak authentication had been implemented, the configurations and the data access objects for Ontimize authentication can be removed.

OpenAPI declaration files

The CRUD endpoints for the users management are no longer used, then we can remove tem or comment out in the openapi-rest.yml and user.yml files.

openapi-rest.yml

...
+paths:
+  ...
+#  /users/user:
+#    $ref: 'api/User.yml#/default'
+#  /users/user/search:
+#    $ref: 'api/User.yml#/search'
+  /users/login:
+    $ref: 'api/User.yml#/login'
+...

User.yml

#default:
+#  post:
+#    tags:
+#      - Users
+#    summary: Inserts a User.
+#    description: >
+#      This resource represents a user in the system.
+#    x-restcontroller: orestcontroller
+#    requestBody:
+#      required: true
+#      content:
+#        application/json:
+#          schema:
+#            $ref: '../base/InsertParameter.yml#/components/schemas/InsertParameter'
+#          examples:
+#            Laura Bugle:
+#              value:
+#                data:
+#                  USER_: 'laura'
+#                  PASSWORD: '1432'
+#                  NAME: 'Laura'
+#                  SURNAME: 'Bugle'
+#                  EMAIL: 'laurabugle@gmail.com'
+#                  NIF: '11111111H'
+#                  USERBLOCKED: '2016-09-19T12:00:00Z'
+#                  LASTPASSWORDUPDATE: '2021-06-01T12:00:00'
+#                  FIRSTLOGIN: true
+#                sqltypes:
+#                  USER_: 12
+#                  PASSWORD: 12
+#                  NAME: 12
+#                  SURNAME: 12
+#                  EMAIL: 12
+#                  NIF: 12
+#                  USERBLOCKED: 93
+#                  LASTPASSWORDUPDATE: 93
+#                  FIRSTLOGIN: 16
+#    responses:
+#      '200':
+#        $ref: '../base/Responses.yml#/components/responses/EntityResult'
+#      '400':
+#        $ref: '../base/Responses.yml#/components/responses/BadRequest'
+#      '401':
+#        $ref: '../base/Responses.yml#/components/responses/Unauthorized'
+#      '404':
+#        $ref: '../base/Responses.yml#/components/responses/NotFound'
+#      default:
+#        $ref: '../base/Responses.yml#/components/responses/Unexpected'
+#
+#  get:
+#    tags:
+#      - Users
+#    summary: Returns a list of Users.
+#    description: >
+#      This resource represents a list of users in the system.
+#    x-restcontroller: orestcontroller
+#    parameters:
+#      - in: query
+#        name: filter
+#        description: Filter
+#        schema:
+#          type: string
+#        required: false
+#        examples:
+#          user_:
+#            value: 'USER_=laura'
+#          password:
+#            value: 'PASSWORD=1432'
+#          name:
+#            value: 'NAME=Laura'
+#          surname:
+#            value: 'SURNAME=Bugle'
+#          email:
+#            value: 'EMAIL=laurabugle@gmail.com'
+#          nif:
+#            value: 'NIF=11111111H'
+#      - in: query
+#        name: columns
+#        description: Columns
+#        required: false
+#        schema:
+#          type: string
+#          example: USER_,PASSWORD,NAME,SURNAME,EMAIL,NIF,USERBLOCKED,LASTPASSWORDUPDATE,FIRSTLOGIN
+#    responses:
+#      '200':
+#        $ref: '../base/Responses.yml#/components/responses/EntityResult'
+#      '400':
+#        $ref: '../base/Responses.yml#/components/responses/BadRequest'
+#      '401':
+#        $ref: '../base/Responses.yml#/components/responses/Unauthorized'
+#      '404':
+#        $ref: '../base/Responses.yml#/components/responses/NotFound'
+#      default:
+#        $ref: '../base/Responses.yml#/components/responses/Unexpected'
+#
+#  put:
+#    tags:
+#      - Users
+#    summary: Updates a User.
+#    description: >
+#      This resource represents a user in the system.
+#    x-restcontroller: orestcontroller
+#    requestBody:
+#      required: true
+#      content:
+#        application/json:
+#          schema:
+#            $ref: '../base/UpdateParameter.yml#/components/schemas/UpdateParameter'
+#          examples:
+#            pasword:
+#              value:
+#                data:
+#                  PASSWORD: 'mT765HkqjY_34:76l'
+#                filter:
+#                  USER_: 'laura'
+#                sqltypes:
+#                  USER_: 12
+#            email:
+#              value:
+#                data:
+#                  EMAIL: 'laura.bugle@gmail.com'
+#                filter:
+#                  USER_: 'laura'
+#                sqltypes:
+#                  USER_: 12
+#    responses:
+#      '200':
+#        $ref: '../base/Responses.yml#/components/responses/EntityResult'
+#      '400':
+#        $ref: '../base/Responses.yml#/components/responses/BadRequest'
+#      '401':
+#        $ref: '../base/Responses.yml#/components/responses/Unauthorized'
+#      '404':
+#        $ref: '../base/Responses.yml#/components/responses/NotFound'
+#      default:
+#        $ref: '../base/Responses.yml#/components/responses/Unexpected'
+#
+#  delete:
+#    tags:
+#      - Users
+#    summary: Deletes a User.
+#    description: >
+#      This resource represents a user in the system.
+#    x-restcontroller: orestcontroller
+#    requestBody:
+#      required: true
+#      content:
+#        application/json:
+#          schema:
+#            $ref: '../base/DeleteParameter.yml#/components/schemas/DeleteParameter'
+#          examples:
+#            userid:
+#              value:
+#                filter:
+#                  USER_: 'laura'
+#                sqltypes:
+#                  USER_: 12
+#    responses:
+#      '200':
+#        $ref: '../base/Responses.yml#/components/responses/EntityResult'
+#      '400':
+#        $ref: '../base/Responses.yml#/components/responses/BadRequest'
+#      '401':
+#        $ref: '../base/Responses.yml#/components/responses/Unauthorized'
+#      '404':
+#        $ref: '../base/Responses.yml#/components/responses/NotFound'
+#      default:
+#        $ref: '../base/Responses.yml#/components/responses/Unexpected'
+#
+#search:
+#  post:
+#    tags:
+#      - Users
+#    summary: Searches and returns a list of Users.
+#    description: >
+#      This resource represents a list of users in the system.
+#    x-restcontroller: orestcontroller
+#    requestBody:
+#      content:
+#        application/json:
+#          schema:
+#            $ref: '../base/QueryParameter.yml#/components/schemas/QueryParameter'
+#          examples:
+#            surname:
+#              value:
+#                filter:
+#                  SURNAME: 'Bugle'
+#                columns:
+#                  - USER_
+#                  - PASSWORD
+#                  - NAME
+#                  - SURNAME
+#                  - EMAIL
+#                  - NIF
+#                  - USERBLOCKED
+#                  - LASTPASSWORDUPDATE
+#                  - FIRSTLOGIN
+#                sqltypes:
+#                  SURNAME: 12
+#    responses:
+#      '200':
+#        $ref: '../base/Responses.yml#/components/responses/EntityResult'
+#      '400':
+#        $ref: '../base/Responses.yml#/components/responses/BadRequest'
+#      '401':
+#        $ref: '../base/Responses.yml#/components/responses/Unauthorized'
+#      '404':
+#        $ref: '../base/Responses.yml#/components/responses/NotFound'
+#      default:
+#        $ref: '../base/Responses.yml#/components/responses/Unexpected'
+login:
+  post:
+    operationId: login
+    tags:
+      - Users
+    summary: Validates the current session.
+    description: >
+      This resource represents a session in the system.
+    x-hasparentpath: true
+    responses:
+      '200':
+        $ref: '../base/Responses.yml#/components/responses/EntityResult'
+      '400':
+        $ref: '../base/Responses.yml#/components/responses/BadRequest'
+      '401':
+        $ref: '../base/Responses.yml#/components/responses/Unauthorized'
+      '404':
+        $ref: '../base/Responses.yml#/components/responses/NotFound'
+      default:
+        $ref: '../base/Responses.yml#/components/responses/Unexpected'

Configurations for user information in application.yml

The user-information-service and user-role-information-service configurations under ontimize.security are no longer used and we can remove them.

application.yml

ontimize:
+...
+   security:
+      ...
+#      user-information-service:
+#         user-repository: UserDao
+#         user-login-column: USER_
+#         user-password-column: PASSWORD
+#         query-id: login
+#         other-data:
+#            - NAME
+#            - SURNAME
+#            - EMAIL
+#            - NIF
+#            - USERBLOCKED
+#            - LASTPASSWORDUPDATE
+#            - FIRSTLOGIN
+#      user-role-information-service:
+#         user-role-repository: UserRoleDao
+#         query-id: userRole
+#         role-login-column: USER_
+#         role-name-column: ROLENAME
+...

User CRUD API

The CRUD endpoints for the users management are no longer used, then we can remove them or comment out the inheritance of the ORestController class in the UserRestController.

UserRestController.java

package com.ontimize.projectwiki.ws.core.rest;
+
+// import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+// import com.ontimize.projectwiki.api.core.service.IUserService;
+import com.ontimize.jee.common.dto.EntityResult;
+// import com.ontimize.jee.server.rest.ORestController;
+
+
+@RestController
+@RequestMapping("/users")
+public class UserRestController /* extends ORestController<IUserService> */ {
+
+/*
+       @Autowired
+       private IUserService userSrv;
+
+       @Override
+       public IUserService getService() {
+               return this.userSrv;
+       }
+*/
+
+	@RequestMapping(
+		value = "/login",
+		method = RequestMethod.POST,
+		produces = MediaType.APPLICATION_JSON_VALUE)
+	public ResponseEntity<EntityResult> login() {
+		return new ResponseEntity<>(HttpStatus.OK);
+	}
+
+}

Services and data access objects for user information

The user services and DAOs are no longer needed and we can remove them.

Tables for user information

With the above configurations and classes removed, we can remove the user tables from the database with the following commands:

DELETE FROM TROLE_SERVER_PERMISSION WHERE ID_ROLE_SERVER_PERMISSION = 0
+DELETE FROM TSERVER_PERMISSION WHERE ID_SERVER_PERMISSION = 0
+DROP TABLE PUBLIC.TUSER_PREFERENCE
+DROP TABLE PUBLIC.TUSER_ROLE
+DROP TABLE PUBLIC.TUSER
And we can remove them from the database creation script.

templateDB.txt

...
+CREATE MEMORY TABLE PUBLIC.TUSER(USER_ VARCHAR(50) NOT NULL PRIMARY KEY,PASSWORD VARCHAR(255),NAME VARCHAR(50),SURNAME VARCHAR(50),EMAIL VARCHAR(50),NIF VARCHAR(50),USERBLOCKED TIMESTAMP,LASTPASSWORDUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP,FIRSTLOGIN BOOLEAN DEFAULT TRUE)
+...
+CREATE MEMORY TABLE PUBLIC.TUSER_ROLE(ID_USER_ROLE INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 0) NOT NULL PRIMARY KEY,ID_ROLENAME INTEGER,USER_ VARCHAR(50),CONSTRAINT FK_TUSER FOREIGN KEY(USER_) REFERENCES PUBLIC.TUSER(USER_),CONSTRAINT FK_TROLE FOREIGN KEY(ID_ROLENAME) REFERENCES PUBLIC.TROLE(ID_ROLENAME))
+ALTER TABLE PUBLIC.TUSER_ROLE ALTER COLUMN ID_USER_ROLE RESTART WITH 1
+...
+CREATE MEMORY TABLE PUBLIC.TUSER_PREFERENCE(ID_USER_PREFERENCE INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 0) NOT NULL PRIMARY KEY,PREFERENCE_NAME VARCHAR(150),USER_LOGIN VARCHAR(150),PREFERENCE_VALUE VARCHAR(16777216))
+ALTER TABLE PUBLIC.TUSER_PREFERENCE ALTER COLUMN ID_USER_PREFERENCE RESTART WITH 1
+...
+INSERT INTO TUSER VALUES('demo','demouser','demo','demo',NULL,'44460713B',NULL,NULL,NULL)
+...
+INSERT INTO TUSER_ROLE VALUES(0,0,'demo')
+...
+INSERT INTO TSERVER_PERMISSION VALUES(0,'com.ontimize.jee.common.services.user.IUserInformationService/getUserInformation')
+...
+INSERT INTO TUSER_PREFERENCE VALUES(0,'user_preference','demo','Iw0KI1R1ZSBNYXkgMTYgMTI6NTc6MDYgQ0VTVCAyMDE3DQpkZW1vX2FwcF9zdGF0dXNfYmFyX3Zpc2libGU9eWVzDQpkZW1vX2FkanVzdF90cmVlX3NwYWNlPXRydWUNCmRlbW9fYXBwX3dpbmRvd19zdGF0ZT0wDQpkZW1vX3RhYmxlX2NvbmZfc29ydF9maWx0ZXJfZm9ybUN1c3RvbWVyLnhtbF9DdXN0b21lclNlcnZpY2UuY3VzdG9tZXJfVEVTVD1udWxsO251bGw7U1VSTkFNRVw9OThcOjF8SURcPTc1XDoyfE5BTUVcPTk5XDozfENVU1RPTUVSVFlQRUlEXD0wXDo0fENVU1RPTUVSSURcPTEyNVw6NXxBRERSRVNTXD0xMjNcOjZ8UEhPTkVcPTEyMVw6N3xTVEFSVERBVEVcPTEzNlw6OHxMT05HSVRVREVcPTExNlw6OXxMQVRJVFVERVw9MTEzXDoxMHxFTUFJTFw9MTcwXDoxMnw7QkFTRTY0ck8wQUJYTnlBQk5xWVhaaExuVjBhV3d1U0dGemFIUmhZbXhsRTdzUEpTRks1TGdEQUFKR0FBcHNiMkZrUm1GamRHOXlTUUFKZEdoeVpYTm9iMnhrZUhBL1FBQUFBQUFBQ0hjSUFBQUFDd0FBQUFCNA0KZGVtb190YWJsZV9jb25mX3NvcnRfZmlsdGVyX2NvbmZpZ3VyYXRpb25zX2Zvcm1DdXN0b21lci54bWxfQ3VzdG9tZXJTZXJ2aWNlLmN1c3RvbWVyPVRFU1QNCmRlbW9fdGFibGVfY29udHJvbF9wYW5lbF9mb3JtQWNjb3VudHMtZGV0YWlsLnhtbF9Nb3ZlbWVudFNlcnZpY2UubW92ZW1lbnQ9Z3JvdXB0YWJsZWtleTtkZWZhdWx0Y2hhcnRidXR0b247ZXhjZWxleHBvcnRidXR0b247c3Vtcm93YnV0dG9uO2NhbGN1bGVkY29sc2J1dHRvbjtwcmludGluZ2J1dHRvbjtmaWx0ZXJzYXZlYnV0dG9uO3Zpc2libGVjb2xzYnV0dG9uO2h0bWxleHBvcnRidXR0b247Y29weWJ1dHRvbjtncm91cHRhYmxla2V5O2luc2VydGJ1dHRvbjtyZWZyZXNoYnV0dG9uDQpkZW1vX2Zvcm1CcmFuY2hlcy1kZXRhaWwueG1sPTg4MDs1MDU7LTExNTA7MzY5DQpkZW1vX2RldGFpbF9kaWFsb2dfc2l6ZV9wb3NpdGlvbl9mb3JtQ3VzdG9tZXIueG1sX0N1c3RvbWVyU2VydmljZS5jdXN0b21lcj03NDk7MzUwOy0xOTA1OzM5MQ0KZGVtb19hcHBfdG9vbGJhcl9sb2NhdGlvbj1Ob3J0aA0KZGVtb19hcHBfd2luZG93X3Bvc2l0aW9uPS0xNTgwOzExDQpkZW1vX2FwcF93aW5kb3dfc2l6ZT0xNTg0OzEwNDQNCmRlbW9fZm9ybUVtcGxveWVlcy1kZXRhaWwueG1sPTExMTY7NzM5OzYxMDsxOTUNCmRlbW9fZm9ybUFjY291bnRzLWRldGFpbC54bWw9OTE1OzUwMDstMTE1MDszNjkNCg==')
+...
+INSERT INTO TROLE_SERVER_PERMISSION VALUES(0,0,0)
+...

Testing

In order to call the REST API of the application, we must first log in using the Keycloak authentication user interface, capture the returned token, and then provide it in the authentication header of the http request.

To test this functionality we will use the Swagger tool deployed with the application, but we need to change the authentication settings on the OpenAPI declaration file.

Modify openapi-rest.yml

In the openapi-rest.yml we need to change the security settings to use OAuth2, replacing the previous BasicAuth properties (More information in this link and in this link):

openapi-rest.yml

components:
+  ...
+  securitySchemes:
+    OAuth2:
+      type: oauth2
+      flows:
+        implicit:
+          authorizationUrl: http://localhost:8082/realms/demo/protocol/openid-connect/auth
+          scopes: {}
+security:
+  - OAuth2: []
+...

Once we have built and launched the project, we can access to the application opening a web browser and going to http://localhost:33333):

keycloak_swagger_1.png

We must open the authorization dialog by clicking on the Authorize button, provide the client and click on the Authorize button.

keycloak_swagger_2.png

If there is not exists a previous Keycloak session, a new tab will be opened requesting then credentials to login.

keycloak_swagger_3.png

Once the login process has been completed, it will return to the authorization dialog, showing the result of the authorization process.

keycloak_swagger_4.png

Now, we can close the authorization dialog and test the API.

keycloak_swagger_5.png

diff --git a/v3/systems/ldap.html b/v3/systems/ldap.html new file mode 100644 index 0000000..dcf8424 --- /dev/null +++ b/v3/systems/ldap.html @@ -0,0 +1,12 @@ + LDAP Security | Ontimize Boot Skip to main content Link Menu Expand (external link) Document Search Copy Copied
Theme mode icon

LDAP Security

Introduction

The Lightweight Directory Access Protocol (LDAP) is an open protocol for accessing a company’s information services. Typically, this protocol is used to provide all company users with an easy way to use all services that require access credentials with a single username and password.

Steps

Database

Add a new user

With the database started, we create a new user with the same username that we have registered in the domain. When we try to login we need to use the password of the domain, not the password that inserts into the database. Then, we need to bind this new user with an existing role.

INSERT INTO TUSER (USER_, PASSWORD, NAME, SURNAME, EMAIL, NIF, USERBLOCKED, LASTPASSWORDUPDATE, FIRSTLOGIN) VALUES('domain.username', 'somepassword', 'Name', 'Surname', 'Email', 'Nif', NULL, NULL, NULL);
INSERT INTO TUSER_ROLE (ID_ROLENAME,USER_) VALUES (0,'domain.username');

Modify application.yml

Add LDAP properties

In the application.yml we need to change the ontimize security mode to ldap and add the following properties (More information in this link):

application.yml

ontimize:
+   security:
+      mode: ldap
+      ldap: 
+         active: true 
+         host: 10.0.0.1
+         port: 389
+         loginType: simple
+         binddn: ou=XXXX,dc=YYY,dc=ZZZ
+         basedn: dc=MMMM,dc,NNN
+         domain: yourdomain.com
+         ssl: false

If you activate SSL with ssl: true, you must have the SSL certificate added in a certificate store, such as cacerts, the store that has the virtual machine of the java version that is running the application. You can use applications to import SSL certificates, such as KeyStore Explorer.

diff --git a/v3/systems/mail/index.html b/v3/systems/mail/index.html new file mode 100644 index 0000000..0c8785c --- /dev/null +++ b/v3/systems/mail/index.html @@ -0,0 +1,138 @@ + Mail System | Ontimize Boot Skip to main content Link Menu Expand (external link) Document Search Copy Copied
Theme mode icon

Mail System

Introduction

Ontimize Boot is a framework that allows you to simplify the configuration of a project made with Ontimize EE, in a fast and efficient way. The email system allows you to send mail from the server with a simple configuration.

Prerequisites

There are 2 options to follow this tutorial, clone the repository with the initial state and follow the tutorial step by step, or download the final example and see which files are new and which have been updated.

Initial project

/$ git clone https://github.com/ontimize/ontimize-examples
+/ontimize-examples$ cd ontimize-examples
+/ontimize-examples$ git checkout boot-mail-initial
+

Final example

/$ git clone https://github.com/ontimize/ontimize-examples
+/ontimize-examples$ cd ontimize-examples
+/ontimize-examples$ git checkout boot-mail
+

Configuring email service with Ontimize Boot

In this complete tutorial, we are going to create a backend for an application from scratch, including the database with different tables, configuring the server, creating the necessary DAO files and implementing the service. At the end of the tutorial, we will even be testing that our mailing system is fully operational and functional.

DB configuration

If the configuration table does not exist in the DB, it can be created with the following command:

Sentencia SQL (HSQL)

CREATE TABLE TSETTING(ID_SETTING INTEGER GENERATED BY DEFAULT AS IDENTITY NOT NULL PRIMARY KEY,SETTING_KEY LONGVARCHAR,SETTING_VALUE LONGVARCHAR,SETTING_COMMENTLONGVARCHAR);

We fill in this table with the data that applies to each specific mail server, in this example, we will use the following:

SETTING_KEY SETTING_VALUE SETTING_COMMENT
mail_host localhost Server host
mail_port 2525 Email server port
mail_protocol smtp Mailing protocol
mail_user my.mail@example.com User for sending
mail_password my_password Mail server password
mail_encoding UTF-8 Encoding of mails
mail_properties mail.smtp.auth:true; mail.smtp.starttls.enable:true; Mail properties

Sentencia SQL (HSQL)

INSERT INTO TSETTING (SETTING_KEY, SETTING_VALUE, SETTING_COMMENT) VALUES('mail_host', 'localhost', 'Server host');
+INSERT INTO TSETTING (SETTING_KEY, SETTING_VALUE, SETTING_COMMENT) VALUES('mail_port', '2525', 'Email server port');
+INSERT INTO TSETTING (SETTING_KEY, SETTING_VALUE, SETTING_COMMENT) VALUES('mail_protocol', 'smtp', 'Mailing protocol');
+INSERT INTO TSETTING (SETTING_KEY, SETTING_VALUE, SETTING_COMMENT) VALUES('mail_user', 'my.mail@example.com', 'User for sending');
+INSERT INTO TSETTING (SETTING_KEY, SETTING_VALUE, SETTING_COMMENT) VALUES('mail_password', 'my_password', 'Mail server password');
+INSERT INTO TSETTING (SETTING_KEY, SETTING_VALUE, SETTING_COMMENT) VALUES('mail_encoding', 'UTF-8', 'Encoding of mails');
+INSERT INTO TSETTING (SETTING_KEY, SETTING_VALUE, SETTING_COMMENT) VALUES('mail_properties', 'mail.smtp.auth:true;mail.smtp.starttls.enable:true;', 'Mail properties');

The implementation interface contains multiple methods, to which we must give permissions, if our application has permissions:

Sentencia SQL (HSQL)

INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.server.services.mail.IMailServiceServer/sendMail');
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.jee.server.services.mail.IMailServiceServer/sendMailWithoutAttach');
+INSERT INTO TROLE_SERVER_PERMISSION (ID_ROLENAME, ID_SERVER_PERMISSION) VALUES((SELECT ID_ROLENAME FROM TROLE WHERE ROLENAME='admin'), (SELECT ID_SERVER_PERMISSION FROM TSERVER_PERMISSION WHERE PERMISSION_NAME='com.ontimize.jee.server.services.mail.IMailServiceServer/sendMail'));
+INSERT INTO TROLE_SERVER_PERMISSION (ID_ROLENAME, ID_SERVER_PERMISSION) VALUES((SELECT ID_ROLENAME FROM TROLE WHERE ROLENAME='admin'), (SELECT ID_SERVER_PERMISSION FROM TSERVER_PERMISSION WHERE PERMISSION_NAME='com.ontimize.jee.server.services.mail.IMailServiceServer/sendMailWithoutAttach'));

Adding dependencies

Now we need to add the correct dependency in the correct pom.xml:

...
+<dependencies>
+...	
+  <dependency>
+    <groupId>org.springframework.boot</groupId>
+    <artifactId>spring-boot-starter-mail</artifactId>
+  </dependency>
+...
+</dependencies>
+...

Server Configuration

To configure this service, a new configuration fragment shall be added to the application.yml file.

ontimize:
+   mail:
+      ref-repository: OCSettingsDao
+      filter-column-name: SETTING_KEY
+      value-column-name: SETTING_VALUE
+      query-id: default
+      filter-column-value-encoding: mail_encoding
+      filter-column-value-host: mail_host
+      filter-column-value-port: mail_port
+      filter-column-value-protocol: mail_protocol
+      filter-column-value-user: mail_user
+      filter-column-value-password: mail_password
+      filter-column-value-java-mail-properties: mail_properties
+      engine: default

This configuration indicates the keys and values to be stored in the database. The database table is the one corresponding to the bean described in the refRepository: OCSettingsDao attribute (in this case, OCSettingsDao), which can be seen in the table TSETTING attribute (for this example, TSETTING) of the *.xml configuration file of the bean (OCSettingsDao.xml). The keys would be stored in the SETTING_KEY column, the values in the SETTING_VALUE column and the rest of the attributes map the keys that exist in the database.

In addition, the packet that will be scanned to look for the implementation of the email service is indicated.

Creation of DAO files

Let’s create a DAO (Data Access Object) in the projectwiki-model module to use as a model of this database table. The DAO is composed by 2 files, a file with extension *.xml and a *.java file.

In our *.xml file we will indicate the database table for which DAO belongs, the data source from which we collect the information (e.g. the database connection that contains this table) and the schema to which the table belongs.

OCSettingsDao.xml

<?xml version="1.0" encoding="UTF-8"?>
+<JdbcEntitySetup
+    xmlns="http://www.ontimize.com/schema/jdbc"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://www.ontimize.com/schema/jdbc http://www.ontimize.com/schema/jdbc/ontimize-jdbc-dao.xsd"
+    catalog="" schema="${mainschema}" table="TSETTING"
+    datasource="mainDataSource" sqlhandler="dbSQLStatementHandler">
+    <DeleteKeys>
+        <Column>ID_SETTING</Column>
+    </DeleteKeys>
+    <UpdateKeys>
+        <Column>ID_SETTING</Column>
+    </UpdateKeys>
+    <GeneratedKey>ID_SETTING</GeneratedKey>
+</JdbcEntitySetup>

In the *.java file we indicate that it is a repository whose name will be OCSettingsDao, through the annotation @Repository. With the annotation @Lazy, we will indicate that the load is delayed until it is completely necessary (improving in that way the performance), and the annotation @ConfigurationFile allows us to configure this DAO using the XML file and an additional file where some common characteristics to several DAOs can be stored. like the scheme to which they belong.

OCSettingsDao.java

package com.ontimize.projectwiki.model.core.dao;
+
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Repository;
+
+import com.ontimize.jee.server.dao.common.ConfigurationFile;
+import com.ontimize.jee.server.dao.jdbc.OntimizeJdbcDaoSupport;
+
+@Repository("OCSettingsDao")
+@Lazy
+@ConfigurationFile(configurationFile = "dao/OCSettingsDao.xml", configurationFilePlaceholder = "dao/placeholders.properties")
+public class OCSettingsDao extends OntimizeJdbcDaoSupport {
+
+  public OCSettingsDao() {
+    super();
+  }
+
+}

Implementation in an existing service

To use this service in another service (e.g. to send a mail when a new record is created), just add a variable of type com.ontimize.jee.common.services.mail.IMailService and annotate it with @Autowired.

For space reasons, the entire files are not included, only the code snippets related to the tutorial. The … in the code snippets indicate that there may be unrelated code before or after them.

...
+import com.ontimize.jee.common.services.mail.IMailService;
+...
+@Service("CandidateService")
+@Lazy
+public class CandidateService implements ICandidateService {
+...
+@Autowired
+private IMailService mailService;
+ ...
+@Override
+public EntityResult candidateInsert(Map<String, Object> attrMap) throws OntimizeJEERuntimeException {
+	EntityResult toRet = this.daoHelper.insert(this.candidateDao, attrMap);
+
+	if ((toRet.getCode() != EntityResult.OPERATION_WRONG)) {
+
+		Runnable runnable = () -> {
+
+		List<String> receiverList = new ArrayList<String>();
+		receiverList.add("receiver@example.com");
+		StringBuilder builder = new StringBuilder();
+		builder.append("Created new user.");
+		try {
+			this.mailService.sendMailWithoutAttach("my.mail@example.com", receiverList, "New candidate",
+				builder.toString());
+		} catch (OntimizeJEEException e) {
+	}
+	};
+			
+  DelegatingSecurityContextRunnable wrappedRunnable = new DelegatingSecurityContextRunnable(runnable);
+	  new Thread(wrappedRunnable).start();
+  }
+
+return toRet;
+}
+ ...
+  

Checking the sending of mails

In order to check that the created service is indeed sending mails, we will use an external service called FakeSMTP, is a free Fake SMTP Server with GUI for testing emails in applications easily.

To do this, we enter this link and clone the repository it indicates into the workspace where we have our project.

We launch the DB and the server. Next, open a console and move to the path where FakeSMTP was downloaded:

...\FakeSMTP> mvn package-Dmaven.test.skip
+...\FakeSMTP> cd target
+...\FakeSMTP\target> java -jar fakeSMTP-2.1-SNAPSHOT.jar -s -p 2525
Command Meaning 34
fakeSMTP-VERSION.jar Downloaded version.  
-s Launch the server.  
- p 2525 Launch the application on the port indicated.  

Now we can use an application like Postman to execute different REST requests to our project.

Use REST request

The requests contains the following structure: localhost:33333/candidates/candidate

Element Meaning
localhost:33333 Indicates the host
/candidates Indicates the service to be queried
/candidate Indicates the DAO that will access that service

The request types can only be GET, POST, PUT, DELETE.

Below are examples of request for candidates (CANDIDATES).

The authorization used for these requests is authorization of the type BASIC.

In both cases, the access must be done with a user and password example:

    User: demo
+Password: demouser
+
Request type Query URL Service method Body request
POST insert localhost:33333/candidates/candidate candidateInsert Example below

Body request:

{
+    "data": {
+        "PHONE": "555-444-8888",
+        "BIRTHDAY": 788224700000,
+        "SURNAME": "Wilson",
+        "EMAIL": "wwiilsoon@example.org",
+        "SPECIALTIES": "C#",
+        "NAME": "William",
+        "DNI": "88643946Z"
+    },
+    "sqltypes": {
+        "SPECIALTIES": 12,
+        "LINKEDIN": 12,
+        "PHONE": 12,
+        "EXPERIENCE_LEVEL": 4,
+        "STATUS": 4,
+        "EMAIL": 12,
+        "WAGE_LEVEL": 2,
+        "DNI": 12,
+        "ID": 4,
+        "ORIGIN": 4,
+        "EDUCATION": 4,
+        "COMMENT": 12,
+        "PROFILE": 4,
+        "SURNAME": 12,
+        "NAME": 12,
+        "BIRTHDAY": 91
+    }
+}
+  
diff --git a/v3/systems/multitenant/by-properties.html b/v3/systems/multitenant/by-properties.html new file mode 100644 index 0000000..fb26630 --- /dev/null +++ b/v3/systems/multitenant/by-properties.html @@ -0,0 +1,135 @@ + Using the application properties | Ontimize Boot Skip to main content Link Menu Expand (external link) Document Search Copy Copied
Theme mode icon

Multitenant System using the application properties

Introduction

Ontimize allows you to provide the tenants in the application properties. This is useful when the application will manage a fixed list of tenants.

Prerequisites

There are 2 options to follow this tutorial, clone the repository with the initial state and follow the tutorial step by step, or download the final example and see which files are new and which have been updated.

Initial project

/$ git clone https://github.com/ontimize/ontimize-examples
+/ontimize-examples$ cd ontimize-examples
+/ontimize-examples$ git checkout boot-multitenant-by-properties-initial
+

Final example

/$ git clone https://github.com/ontimize/ontimize-examples
+/ontimize-examples$ cd ontimize-examples
+/ontimize-examples$ git checkout boot-multitenant-by-properties
+

To simplify the code being written, three dots (…) may appear in some parts of the code. This indicates that there may be previous code before and after those dots.

Steps

We will use the existing database for the first tenant and add a new second database for the second tenant.

Deploy a second database

In the pom.xml of the model module, we need to add the configuration to enable the deployment of a second database:

pom.xml

...
+  <profiles>
+    ...
+    <profile>
+      <id>run_database</id>
+      ...
+      <build>
+        <plugins>
+          ...
+          <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-antrun-plugin</artifactId>
+            ...
+            <executions>
+              <execution>
+                <id>configure_database</id>
+                ...
+                <configuration>
+                  <target>
+                    ...
+                    <copy tofile="${hsqldatabase.path}/templateDB1.script" file="${hsqldatabase.path}/templateDB.txt" />
+                  </target>
+                </configuration>
+              </execution>
+            </executions>
+          </plugin>
+          <plugin>
+            <groupId>org.codehaus.mojo</groupId>
+            <artifactId>exec-maven-plugin</artifactId>
+            ...
+            <configuration>
+              ...
+              <arguments>
+                ...
+                <argument>-database.1</argument>
+                <argument>${hsqldatabase.path}/templateDB1</argument>
+                <argument>-dbname.1</argument>
+                <argument>templateDB1</argument>
+              </arguments>
+            </configuration>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+    ...
+  </profiles>
+...

Enable the multitenant system

In the application.yml we need to disable the current datasource, enable the multitenant system and add the settings for each tenant (More information in this link):

application.yml

ontimize:
+   ...
+   jdbc:
+      datasource:
+         enabled: false
+   ...
+   multitenant:
+      enabled: true
+      configuration:
+         tenants:
+            tenant1:
+               driver-class: org.hsqldb.jdbcDriver
+               jdbc-url: jdbc:hsqldb:hsql://localhost:9013/templateDB
+               username: SA
+               password:
+            tenant2:
+               driver-class: org.hsqldb.jdbcDriver
+               jdbc-url: jdbc:hsqldb:hsql://localhost:9013/templateDB1
+               username: SA
+               password:
+...
+spring:
+   ...
+#   datasource:
+#      driver-class-name: org.hsqldb.jdbcDriver
+#      jdbc-url: jdbc:hsqldb:hsql://localhost:9013/templateDB
+#      username: SA
+#      password:
+#      initial-size: 10
+#      test-on-borrow: true
+...

Update the data access objects

The multitenant system provides its own datasource and the DAOs must use it, so we need set the datasource property to tenantDatasource.

UserDao.xml and RoleDao.xml

<?xml version="1.0" encoding="UTF-8"?>
+<JdbcEntitySetup
+    ...
+    datasource="tenantDataSource"
+...

Testing

To test this functionality we will use the Swagger tool deployed with the application, but we must provide the tenant on the API requests. For this we need to add the X-Tenant parameter on the OpenAPI declaration files.

Modify the OpenAPI declaration files

In the openapi-rest.yml file we need to add a new parameter to provide the tenant and in the User.yml file we need to add a reference to this parameter on each method:

openapi-rest.yml

components:
+  ...
+  parameters:
+    TenantId:
+      in: header
+      name: X-Tenant
+      required: true
+      schema:
+        type: string
+      examples:
+        Tenant 1:
+          value: tenant1
+        Tenant 2:
+          value: tenant2
+      x-ignore: true
+...

User.yml

default:
+  post:
+    ...
+    parameters:
+      - $ref: '../openapi-rest.yml#/components/parameters/TenantId'
+  ...
+  get:
+    ...
+    parameters:
+      ...
+      - $ref: '../openapi-rest.yml#/components/parameters/TenantId'
+  ...
+  put:
+    ...
+    parameters:
+      - $ref: '../openapi-rest.yml#/components/parameters/TenantId'
+  ...
+  delete:
+    ...
+    parameters:
+      - $ref: '../openapi-rest.yml#/components/parameters/TenantId'
+...
+search:
+  post:
+    ...
+    parameters:
+      - $ref: '../openapi-rest.yml#/components/parameters/TenantId'
+...
+login:
+  post:
+    ...
+    parameters:
+      - $ref: '../openapi-rest.yml#/components/parameters/TenantId'
+...

Once we have built and launched the project, we can access to the application by opening a web browser and navigating to http://localhost:33333):

multitenant_swagger_1.png

We must open the authorization dialog by clicking on the Authorize button, provide the credentials and click on the Authorize button.

multitenant_swagger_2.png

Now, we can close the authorization dialog and test the API by providing the dessired tenant using the new parameter.

multitenant_swagger_3.png

diff --git a/v3/systems/multitenant/by-table.html b/v3/systems/multitenant/by-table.html new file mode 100644 index 0000000..08c4b12 --- /dev/null +++ b/v3/systems/multitenant/by-table.html @@ -0,0 +1,239 @@ + Using a table on a database | Ontimize Boot Skip to main content Link Menu Expand (external link) Document Search Copy Copied
Theme mode icon

Multitenant System using a table on a database

Introduction

Ontimize allows you to provide the tenants using a table on a database. This is useful when the application will manage a dynamic list of tenants.

Prerequisites

There are 2 options to follow this tutorial, clone the repository with the initial state and follow the tutorial step by step, or download the final example and see which files are new and which have been updated.

Initial project

/$ git clone https://github.com/ontimize/ontimize-examples
+/ontimize-examples$ cd ontimize-examples
+/ontimize-examples$ git checkout boot-multitenant-by-table-initial
+

Final example

/$ git clone https://github.com/ontimize/ontimize-examples
+/ontimize-examples$ cd ontimize-examples
+/ontimize-examples$ git checkout boot-multitenant-by-table
+

To simplify the code being written, three dots (…) may appear in some parts of the code. This indicates that there may be previous code before and after those dots.

Steps

We will use the existing database for the first tenant, add a new second database for the second tenant and a database to store the tenants table.

Add the script to create the main database and the tenants table

We need a separate database to store a table containing the tenants. This table must provide a column for each tenant property (More information in this link):

templateDB_Main.txt

SET DATABASE UNIQUE NAME HSQLDB687727E49B
+SET DATABASE GC 0
+SET DATABASE DEFAULT RESULT MEMORY ROWS 0
+SET DATABASE EVENT LOG LEVEL 0
+SET DATABASE TRANSACTION CONTROL LOCKS
+SET DATABASE DEFAULT ISOLATION LEVEL READ COMMITTED
+SET DATABASE TRANSACTION ROLLBACK ON CONFLICT TRUE
+SET DATABASE TEXT TABLE DEFAULTS ''
+SET DATABASE SQL NAMES FALSE
+SET DATABASE SQL REFERENCES FALSE
+SET DATABASE SQL SIZE TRUE
+SET DATABASE SQL TYPES FALSE
+SET DATABASE SQL TDC DELETE TRUE
+SET DATABASE SQL TDC UPDATE TRUE
+SET DATABASE SQL TRANSLATE TTI TYPES TRUE
+SET DATABASE SQL TRANSLATE TTI TYPES TRUE
+SET DATABASE SQL CONCAT NULLS TRUE
+SET DATABASE SQL UNIQUE NULLS TRUE
+SET DATABASE SQL CONVERT TRUNCATE TRUE
+SET DATABASE SQL AVG SCALE 0
+SET DATABASE SQL DOUBLE NAN TRUE
+SET FILES WRITE DELAY 500 MILLIS
+SET FILES BACKUP INCREMENT TRUE
+SET FILES CACHE SIZE 10000
+SET FILES CACHE ROWS 50000
+SET FILES SCALE 32
+SET FILES LOB SCALE 32
+SET FILES DEFRAG 0
+SET FILES NIO TRUE
+SET FILES NIO SIZE 256
+SET FILES LOG TRUE
+SET FILES LOG SIZE 50
+CREATE USER SA PASSWORD DIGEST 'd41d8cd98f00b204e9800998ecf8427e'
+ALTER USER SA SET LOCAL TRUE
+CREATE SCHEMA PUBLIC AUTHORIZATION DBA
+SET SCHEMA PUBLIC
+CREATE MEMORY TABLE PUBLIC.TENANTS(TENANT_ID VARCHAR(50) NOT NULL PRIMARY KEY,DRIVER_CLASS VARCHAR(50) NOT NULL,JDBC_URL VARCHAR(100) NOT NULL,USERNAME VARCHAR(50),PASSWORD VARCHAR(50))
+SET DATABASE DEFAULT INITIAL SCHEMA PUBLIC
+GRANT USAGE ON DOMAIN INFORMATION_SCHEMA.SQL_IDENTIFIER TO PUBLIC
+GRANT USAGE ON DOMAIN INFORMATION_SCHEMA.YES_OR_NO TO PUBLIC
+GRANT USAGE ON DOMAIN INFORMATION_SCHEMA.TIME_STAMP TO PUBLIC
+GRANT USAGE ON DOMAIN INFORMATION_SCHEMA.CARDINAL_NUMBER TO PUBLIC
+GRANT USAGE ON DOMAIN INFORMATION_SCHEMA.CHARACTER_DATA TO PUBLIC
+GRANT DBA TO SA
+SET SCHEMA SYSTEM_LOBS
+INSERT INTO BLOCKS VALUES(0,2147483647,0)
+SET SCHEMA PUBLIC

Deploy the main database and the tenants

In the pom.xml of the model module, we need to replace the old configuration with the below to deploy the new databases:

pom.xml

...
+  <profiles>
+    ...
+    <profile>
+      <id>run_database</id>
+      ...
+      <build>
+        <plugins>
+          ...
+          <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-antrun-plugin</artifactId>
+            ...
+            <executions>
+              <execution>
+                <id>configure_database</id>
+                ...
+                <configuration>
+                  <target>
+                    <available file="${hsqldatabase.path}/templateDB_Main.script" property="database.exist" />
+                    <echo message="${hsqldatabase.path}/templateDB_Main.script" />
+                    <copy tofile="${hsqldatabase.path}/templateDB_Main.script" file="${hsqldatabase.path}/templateDB_Main.txt" />
+
+                    <available file="${hsqldatabase.path}/templateDB1.script" property="database.exist" />
+                    <echo message="${hsqldatabase.path}/templateDB1.script" />
+                    <copy tofile="${hsqldatabase.path}/templateDB1.script" file="${hsqldatabase.path}/templateDB.txt" />
+
+                    <available file="${hsqldatabase.path}/templateDB2.script" property="database.exist" />
+                    <echo message="${hsqldatabase.path}/templateDB2.script" />
+                    <copy tofile="${hsqldatabase.path}/templateDB2.script" file="${hsqldatabase.path}/templateDB.txt" />
+                  </target>
+                </configuration>
+              </execution>
+            </executions>
+          </plugin>
+          <plugin>
+            <groupId>org.codehaus.mojo</groupId>
+            <artifactId>exec-maven-plugin</artifactId>
+            ...
+            <configuration>
+              <arguments>
+                <argument>-port</argument>
+                <argument>9013</argument>
+
+                <argument>-database.0</argument>
+                <argument>${hsqldatabase.path}/templateDB_Main</argument>
+                <argument>-dbname.0</argument>
+                <argument>templateDB_Main</argument>
+
+                <argument>-database.1</argument>
+                <argument>${hsqldatabase.path}/templateDB1</argument>
+                <argument>-dbname.1</argument>
+                <argument>templateDB1</argument>
+
+                <argument>-database.2</argument>
+                <argument>${hsqldatabase.path}/templateDB2</argument>
+                <argument>-dbname.2</argument>
+                <argument>templateDB2</argument>
+              </arguments>
+            </configuration>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+    ...
+  </profiles>
+...

Add the data access object for the tenants table

TenantDao.java

package com.ontimize.projectwiki.model.core.dao;
+
+import com.ontimize.jee.server.dao.jdbc.OntimizeJdbcDaoSupport;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Repository;
+
+import com.ontimize.jee.server.dao.common.ConfigurationFile;
+
+@Lazy
+@Repository(value = "TenantDao")
+@ConfigurationFile(
+        configurationFile = "dao/TenantDao.xml",
+        configurationFilePlaceholder = "dao/placeholders.properties")
+public class TenantDao extends OntimizeJdbcDaoSupport {
+	public static final String ID = "tenant_id";
+	public static final String DRIVER_CLASS = "driver_class";
+	public static final String JDBC_URL = "jdbc_url";
+	public static final String USERNAME = "username";
+	public static final String PASSWORD = "password";
+}

TenantDao.xml

<?xml version="1.0" encoding="UTF-8"?>
+<JdbcEntitySetup
+    xmlns="http://www.ontimize.com/schema/jdbc"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://www.ontimize.com/schema/jdbc http://www.ontimize.com/schema/jdbc/ontimize-jdbc-dao.xsd"
+    catalog="" schema="${mainschema}" table="tenants"
+    datasource="mainDataSource" sqlhandler="dbSQLStatementHandler">
+    <DeleteKeys>
+        <Column>tenant_id</Column>
+    </DeleteKeys>
+    <UpdateKeys>
+        <Column>tenant_id</Column>
+    </UpdateKeys>
+    <Queries>
+        <Query id="default">
+            <Sentence>
+                <![CDATA[
+                    SELECT #COLUMNS#
+                    FROM
+                        ${mainschema}.tenants
+                    #WHERE#
+                ]]>
+            </Sentence>
+        </Query>
+    </Queries>
+</JdbcEntitySetup>

Enable the multitenant system

In the application.yml we need to enable the multitenant system and add the settings for the tenant repository (More information in this link):

application.yml

ontimize:
+   ...
+   multitenant:
+      enabled: true
+      configuration:
+         tenant-repository: TenantDao
+         query-id: default
+         tenant-id-column: TENANT_ID
+         driver-class-column: DRIVER_CLASS
+         jdbc-url-column: JDBC_URL
+         username-column: USERNAME
+         password-column: PASSWORD
+...
+spring:
+  ...
+  datasource:
+    driver-class-name: org.hsqldb.jdbcDriver
+    jdbc-url: jdbc:hsqldb:hsql://localhost:9013/templateDB_Main
+    username: SA
+    password:
+    initial-size: 10
+    test-on-borrow: true
+...

Configure the tenants properties on the tenants table

templateDB_Main.txt

...
+INSERT INTO TENANTS VALUES('tenant1','org.hsqldb.jdbcDriver','jdbc:hsqldb:hsql://localhost:9013/templateDB1','SA',NULL)
+INSERT INTO TENANTS VALUES('tenant2','org.hsqldb.jdbcDriver','jdbc:hsqldb:hsql://localhost:9013/templateDB2','SA',NULL)

Update the data access objects

The multitenant system provides its own datasource and the DAOs must use it, so we need set the datasource property to tenantDatasource.

The tenants table is stored on the main database, you should not modify the TenantDao.xml file.

UserDao.xml and RoleDao.xml

<?xml version="1.0" encoding="UTF-8"?>
+<JdbcEntitySetup
+    ...
+    datasource="tenantDataSource"
+...

Testing

To test this functionality we will use the Swagger tool deployed with the application, but we must provide the tenant on the API requests. For this we need to add the X-Tenant parameter on the OpenAPI declaration files.

Modify the OpenAPI declaration files

In the openapi-rest.yml file we need to add a new parameter to provide the tenant and in the User.yml file we need to add a reference to this parameter on each method:

openapi-rest.yml

components:
+  ...
+  parameters:
+    TenantId:
+      in: header
+      name: X-Tenant
+      required: true
+      schema:
+        type: string
+      examples:
+        Tenant 1:
+          value: tenant1
+        Tenant 2:
+          value: tenant2
+      x-ignore: true
+...

User.yml

default:
+  post:
+    ...
+    parameters:
+      - $ref: '../openapi-rest.yml#/components/parameters/TenantId'
+  ...
+  get:
+    ...
+    parameters:
+      ...
+      - $ref: '../openapi-rest.yml#/components/parameters/TenantId'
+  ...
+  put:
+    ...
+    parameters:
+      - $ref: '../openapi-rest.yml#/components/parameters/TenantId'
+  ...
+  delete:
+    ...
+    parameters:
+      - $ref: '../openapi-rest.yml#/components/parameters/TenantId'
+...
+search:
+  post:
+    ...
+    parameters:
+      - $ref: '../openapi-rest.yml#/components/parameters/TenantId'
+...
+login:
+  post:
+    ...
+    parameters:
+      - $ref: '../openapi-rest.yml#/components/parameters/TenantId'
+...

Once we have built and launched the project, we can access to the application by opening a web browser and navigating to http://localhost:33333):

multitenant_swagger_1.png

We must open the authorization dialog by clicking on the Authorize button, provide the credentials and click on the Authorize button.

multitenant_swagger_2.png

Now, we can close the authorization dialog and test the API by providing the dessired tenant using the new parameter.

multitenant_swagger_3.png

diff --git a/v3/systems/multitenant/index.html b/v3/systems/multitenant/index.html new file mode 100644 index 0000000..94e8b92 --- /dev/null +++ b/v3/systems/multitenant/index.html @@ -0,0 +1 @@ + Multitenant System | Ontimize Boot Skip to main content Link Menu Expand (external link) Document Search Copy Copied
Theme mode icon

Multitenant System

This module works only for Ontimize Boot version 3.15.0 or above. Actual release version: Ontimize Boot

Introduction

Multitenant is a software architecture in which a single instance of software runs on a server and provides to groups of users (AKA tenant) a dedicated share of the instance, isolating their data and configurations from the other groups.

Ontimize allows to provide the list of tenants using two methods:

Using the application properties

The list of tenans are declared using the application properties. You can find more information at this link.

Using a table on a database

The list of tenans are declared using a table on a database. You can find more information at this link.

diff --git a/v3/systems/openapi/index.html b/v3/systems/openapi/index.html new file mode 100644 index 0000000..a72fab4 --- /dev/null +++ b/v3/systems/openapi/index.html @@ -0,0 +1 @@ + OpenAPI System | Ontimize Boot Skip to main content Link Menu Expand (external link) Document Search Copy Copied
Theme mode icon

OpenAPI System

This module works only for Ontimize Boot version 3.2.0 or above. Actual release version: Ontimize Boot

Introduction

The OpenAPI specification, originally known as the Swagger specification, is a specification for machine-readable interface files for describing, producing, consuming, and displaying RESTful web services. It started as part of the Swagger framework, and became a separate project in 2016, overseen by the OpenAPI Initiative, an open source collaborative project of the Linux Foundation. Using Swagger or other tools you can generate code, documentation and test cases from an interface file.

Among the available tools, there is a utility called OpenAPI Generator that allows you to generate, from the interface files, the API code for different platforms and programming languages, since it has specific libraries for each of them.

OpenAPI Generator has been integrated into Ontimize along with a library that allows to generate code following the Ontimize guidelines. This code will consist of a set of interfaces that must be implemented in the application.

Setting up

Enabling the OpenAPI system

To enable this functionality, we must create the marker file marker-ws-ontimize-openapi-generator in the src/main/ontimize folder. This file should only exist and be empty.

Customizing the API generation

We can customize the API generation by setting the following properties on the pom.xml.

  • ontimize.openapi.generator.maven.plugin
Attribute Values Meaning Default
auth String Adds authorization headers when fetching the swagger definitions remotely None
importMappings String A map of classes and the import that should be used for that class None
inputSpec String Location of the OpenAPI specification, as URL or file ${project.basedir}/src/main/resources/public/restapi/openapi-rest.yml
modelPackageName String The package to use for the generated model classes com.ontimize.model
packageName String The package to use for the generated api classes com.ontimize.api
useBeanValidation true, false Use BeanValidation API annotations false

Integrating the Swagger User Interface

Optionally, we can integrate the Swagger User Interface on our project by setting the following properties on the pom.xml.

  • ontimize.openapi.swagger-ui
Attribute Values Meaning Default
apiUrl String Location of the OpenAPI specification /restapi/openapi-rest.yml
enabled true, false Enables the Swagger User Interface false
path String The path to deploy the Swagger User Interface ${project.build.directory}/classes/public/swagger-ui

Summary of the specific attributes for Ontimize

In addition to the standard specification of OpenAPI, Ontimize provides some attributes to add support for its own REST controllers.

Operations

Attribute Values Meaning
x-hasparentpath true, false When the class that implements the generated interface has a path as prefix, this option prevents the prefix from being concatenated to the path on the generated controller
x-restcontroller orestcontroller, dmsrestcontroller, oexportrestcontroller, remoteconfigurationrestcontroller The generated interface will be compatible with the indicated REST controller of Ontimize. The class that implements this interface must extend the indicated REST controller
x-throws String A comma separated list of exceptions that the controller may throw

Schemes

Attribute Values Meaning
x-extends true, false Allows lists to add elements that extend the indicated class
x-iswildcard true, false A wildcard is used as the data type of the parameter
x-super true, false Allows lists to add elements that inherit from the indicated class
diff --git a/v3/systems/openapi/ontimize-controllers.html b/v3/systems/openapi/ontimize-controllers.html new file mode 100644 index 0000000..7d4c3d4 --- /dev/null +++ b/v3/systems/openapi/ontimize-controllers.html @@ -0,0 +1,587 @@ + Ontimize controllers | Ontimize Boot Skip to main content Link Menu Expand (external link) Document Search Copy Copied
Theme mode icon

OpenAPI System using Ontimize REST controllers

Introduction

Ontimize OpenAPI Generator allows you to generate, from the interface files, the API code for Ontimize REST controllers.

Prerequisites

There are 2 options to follow this tutorial, clone the repository with the initial state and follow the tutorial step by step, or download the final example and see which files are new and which have been updated.

Initial project

/$ git clone https://github.com/ontimize/ontimize-examples
+/ontimize-examples$ cd ontimize-examples
+/ontimize-examples$ git checkout boot-openapi-ontimize-controllers-initial
+

Final example

/$ git clone https://github.com/ontimize/ontimize-examples
+/ontimize-examples$ cd ontimize-examples
+/ontimize-examples$ git checkout boot-openapi-ontimize-controllers
+

To simplify the code being written, three dots (…) may appear in some parts of the code. This indicates that there may be previous code before and after those dots.

Steps

Add the OpenAPI module

We will add a new module to our project that will contain the API definition. Also this module will generate the Java interfaces that later we need to implement in our REST controllers.

openapi_module_1.png

openapi_module_2.png

Add the dependencies to the project

In the main pom.xml we need to add the new module and the Swagger dependencies:

pom.xml

...
+  <properties>
+    ...
+    <swagger-annotations.version>1.6.2</swagger-annotations.version>
+  </properties>
+
+  <dependencyManagement>
+    <dependencies>
+      ...
+      <dependency>
+        <groupId>com.ontimize</groupId>
+        <artifactId>projectwiki-openapi</artifactId>
+        <version>1.0.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
+        <groupId>io.swagger</groupId>
+        <artifactId>swagger-annotations</artifactId>
+        <version>${swagger-annotations.version}</version>
+      </dependency>
+    </dependencies>
+  </dependencyManagement>
+...
+  <modules>
+    <module>projectwiki-api</module>
+    <module>projectwiki-openapi</module>
+    <module>projectwiki-model</module>
+    <module>projectwiki-ws</module>
+    <module>projectwiki-boot</module>
+  </modules>
+...

Add the dependencies to the OpenAPI module

In the pom.xml of the OpenAPI module we need to add the following dependencies:

pom.xml

...
+  <dependencies>
+    ...
+    <dependency>
+      <groupId>com.ontimize.jee</groupId>
+      <artifactId>ontimize-jee-server-rest</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>io.swagger</groupId>
+      <artifactId>swagger-annotations</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>javax.annotation</groupId>
+      <artifactId>javax.annotation-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework.boot</groupId>
+      <artifactId>spring-boot-starter-validation</artifactId>
+    </dependency>
+  </dependencies>
+...

Add the API definition

Following the OpenAPI specification we will create the definition for the test controller (More information in this link):

openapi-rest.yml

openapi: 3.0.3
+info:
+  title: projectwiki API
+  version: '1.0'
+  description: The projectwiki API
+servers:
+  - url: '/'
+    description: Localhost
+
+paths:
+  /users/user:
+    post:
+      tags:
+        - Users
+      summary: Inserts a user.
+      description: >
+        This resource represents a user in the system.
+      x-restcontroller: orestcontroller
+      requestBody:
+        required: true
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/InsertParameter'
+            examples:
+              Laura Bugle:
+                value:
+                  data:
+                    USER_: 'laura'
+                    PASSWORD: '1432'
+                    NAME: 'Laura'
+                    SURNAME: 'Bugle'
+                    EMAIL: 'laurabugle@gmail.com'
+                    NIF: '11111111H'
+                    USERBLOCKED: '2016-09-19T12:00:00Z'
+                    LASTPASSWORDUPDATE: '2021-06-01T12:00:00'
+                    FIRSTLOGIN: true
+                  sqltypes:
+                    USER_: 12
+                    PASSWORD: 12
+                    NAME: 12
+                    SURNAME: 12
+                    EMAIL: 12
+                    NIF: 12
+                    USERBLOCKED: 93
+                    LASTPASSWORDUPDATE: 93
+                    FIRSTLOGIN: 16
+      responses:
+        '200':
+          $ref: '#/components/responses/EntityResult'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        default:
+          $ref: '#/components/responses/Unexpected'
+
+    get:
+      tags:
+        - Users
+      summary: Returns a list of users.
+      description: >
+        This resource represents a list of users in the system.
+      x-restcontroller: orestcontroller
+      parameters:
+        - in: query
+          name: filter
+          description: Filter
+          schema:
+            type: string
+          required: false
+          examples:
+            user_:
+              value: 'USER_=laura'
+            password:
+              value: 'PASSWORD=1432'
+            name:
+              value: 'NAME=Laura'
+            surname:
+              value: 'SURNAME=Bugle'
+            email:
+              value: 'EMAIL=laurabugle@gmail.com'
+            nif:
+              value: 'NIF=11111111H'
+        - in: query
+          name: columns
+          description: Columns
+          required: false
+          schema:
+            type: string
+            example: USER_,PASSWORD,NAME,SURNAME,EMAIL,NIF,USERBLOCKED,LASTPASSWORDUPDATE,FIRSTLOGIN
+      responses:
+        '200':
+          $ref: '#/components/responses/EntityResult'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        default:
+          $ref: '#/components/responses/Unexpected'
+
+    put:
+      tags:
+        - Users
+      summary: Updates a user.
+      description: >
+        This resource represents a user in the system.
+      x-restcontroller: orestcontroller
+      requestBody:
+        required: true
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/UpdateParameter'
+            examples:
+              pasword:
+                value:
+                  data:
+                    PASSWORD: 'mT765HkqjY_34:76l'
+                  filter:
+                    USER_: 'laura'
+                  sqltypes:
+                    USER_: 12
+              email:
+                value:
+                  data:
+                    EMAIL: 'laura.bugle@gmail.com'
+                  filter:
+                    USER_: 'laura'
+                  sqltypes:
+                    USER_: 12
+      responses:
+        '200':
+          $ref: '#/components/responses/EntityResult'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        default:
+          $ref: '#/components/responses/Unexpected'
+
+    delete:
+      tags:
+        - Users
+      summary: Deletes a user.
+      description: >
+        This resource represents a user in the system.
+      x-restcontroller: orestcontroller
+      requestBody:
+        required: true
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/DeleteParameter'
+            examples:
+              userid:
+                value:
+                  filter:
+                    USER_: 'laura'
+                  sqltypes:
+                    USER_: 12
+      responses:
+        '200':
+          $ref: '#/components/responses/EntityResult'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        default:
+          $ref: '#/components/responses/Unexpected'
+
+  /users/user/search:
+    post:
+      tags:
+        - Users
+      summary: Searches and returns a list of users.
+      description: >
+        This resource represents a list of users in the system.
+      x-restcontroller: orestcontroller
+      requestBody:
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/QueryParameter'
+            examples:
+              surname:
+                value:
+                  filter:
+                    SURNAME: 'Bugle'
+                  columns:
+                    - USER_
+                    - PASSWORD
+                    - NAME
+                    - SURNAME
+                    - EMAIL
+                    - NIF
+                    - USERBLOCKED
+                    - LASTPASSWORDUPDATE
+                    - FIRSTLOGIN
+                  sqltypes:
+                    SURNAME: 12
+      responses:
+        '200':
+          $ref: '#/components/responses/EntityResult'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        default:
+          $ref: '#/components/responses/Unexpected'
+
+  /users/login:
+    post:
+      operationId: login
+      tags:
+        - Users
+      summary: Validates the current session.
+      description: >
+        This resource represents a session in the system.
+      x-hasparentpath: true
+      responses:
+        '200':
+          $ref: '#/components/responses/EntityResult'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        default:
+          $ref: '#/components/responses/Unexpected'
+
+components:
+  responses:
+    EntityResult:
+      description: OK
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/EntityResult'
+    BadRequest:
+      description: Bad request
+    NotFound:
+      description: Not found
+    Unauthorized:
+      description: Unauthorized
+    Unexpected:
+      description: Unexpected error
+
+  schemas:
+    DeleteParameter:
+      type: object
+      properties:
+        filter:
+          description: Filter
+          type: object
+          additionalProperties:
+            type: string
+        sqltypes:
+          description: SQL types
+          type: object
+          additionalProperties:
+            type: string
+    EntityResult:
+      type: object
+      properties:
+        type:
+          description: Type
+          type: integer
+        code:
+          description: Code
+          type: integer
+        message:
+          description: Message
+          type: string
+        details:
+          description: Details
+          type: string
+        messageParameter:
+          description: Message parameter
+          type: array
+          items:
+            type: object
+        compressionLevel:
+          description: Compression level
+          type: integer
+        compressionThreshold:
+          description: Compression threshold
+          type: integer
+        columnsSQLTypes:
+          description: Columns SQL types
+          type: object
+          additionalProperties:
+            type: integer
+        operationId:
+          description: Operation Id
+          type: string
+    InsertParameter:
+      type: object
+      properties:
+        data:
+          description: Data
+          type: object
+          additionalProperties:
+            type: string
+        sqltypes:
+          description: SQL types
+          type: object
+          additionalProperties:
+            type: string
+    QueryParameter:
+      type: object
+      properties:
+        filter:
+          description: Filter
+          type: object
+          additionalProperties:
+            type: string
+        columns:
+          description: Columns
+          type: array
+          items:
+            type: string
+        sqltypes:
+          description: SQL types
+          type: object
+          additionalProperties:
+            type: string
+    UpdateParameter:
+      type: object
+      properties:
+        data:
+          description: Data
+          type: object
+          additionalProperties:
+            type: string
+        filter:
+          description: Filter
+          type: object
+          additionalProperties:
+            type: string
+        sqltypes:
+          description: SQL types
+          type: object
+          additionalProperties:
+            type: string
+
+  securitySchemes:
+    BasicAuth:
+      type: http
+      scheme: basic
+
+security:
+  - BasicAuth: []

Configure the OpenAPI system

This functionality can be enabled by creating the marker file marker-ws-ontimize-openapi-generator in the src/main/ontimize folder on the OpenAPI module. This file should only exist and be empty.

To comply with the project structure, we will generate the interfaces and the models in the package com.ontimize.projectwiki.openapi.core. Also, we will enable the bean validation functionality.

We can configure these functionalities adding the following properties it in the pom.xml file of the OpenAPI module (More information in this link).

pom.xml

...
+  <properties>
+    ...
+    <ontimize.openapi.generator.maven.plugin.packageName>com.ontimize.projectwiki.openapi.core.service</ontimize.openapi.generator.maven.plugin.packageName>
+    <ontimize.openapi.generator.maven.plugin.modelPackageName>com.ontimize.projectwiki.openapi.core.dto</ontimize.openapi.generator.maven.plugin.modelPackageName>
+    <ontimize.openapi.generator.maven.plugin.useBeanValidation>true</ontimize.openapi.generator.maven.plugin.useBeanValidation>
+  </properties>
+...

Generate the interfaces

Now, we need to build the project to generate the interfaces and models, these interfaces will be placed in the target folder of the OpenAPI module.

IUsersApi.java

package com.ontimize.projectwiki.openapi.core.service;
+
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.validation.annotation.Validated;
+import javax.validation.Valid;
+import javax.validation.constraints.*;
+
+@Validated
+public interface IUsersApi {
+	/**
+	* Deletes a user.
+	* This resource represents a user in the system.
+	* @param name (required)
+	* @param deleteParameter (required)
+	* @return com.ontimize.jee.common.dto.EntityResult
+	*
+	* This interface must be implemented on orestcontroller based classes.
+	* Path: /users/user
+	*/
+
+	public ResponseEntity<com.ontimize.jee.common.dto.EntityResult> delete(String name, com.ontimize.jee.server.rest.DeleteParameter deleteParameter);
+
+	/**
+	* Inserts a user.
+	* This resource represents a user in the system.
+	* @param name (required)
+	* @param insertParameter (required)
+	* @return com.ontimize.jee.common.dto.EntityResult
+	*
+	* This interface must be implemented on orestcontroller based classes.
+	* Path: /users/user
+	*/
+
+	public ResponseEntity<com.ontimize.jee.common.dto.EntityResult> insert(String name, com.ontimize.jee.server.rest.InsertParameter insertParameter);
+
+	/**
+	* Validates the current session.
+	* This resource represents a session in the system.
+	* @return com.ontimize.jee.common.dto.EntityResult
+	*
+	*/
+	@RequestMapping(path = "/login", method = RequestMethod.POST,
+		produces = { "application/json" })
+	public ResponseEntity<com.ontimize.jee.common.dto.EntityResult> login();
+
+	/**
+	* Returns a list of users.
+	* This resource represents a list of users in the system.
+	* @param name (required)
+	* @param filter Filter (optional)
+	* @param columns Columns (optional)
+	* @return com.ontimize.jee.common.dto.EntityResult
+	*
+	* This interface must be implemented on orestcontroller based classes.
+	* Path: /users/user
+	*/
+
+	public ResponseEntity<com.ontimize.jee.common.dto.EntityResult> query(String name, String filter, String columns);
+
+	/**
+	* Searches and returns a list of users.
+	* This resource represents a list of users in the system.
+	* @param name (required)
+	* @param queryParameter (optional)
+	* @return com.ontimize.jee.common.dto.EntityResult
+	*
+	* This interface must be implemented on orestcontroller based classes.
+	* Path: /users/user/search
+	*/
+
+	public ResponseEntity<com.ontimize.jee.common.dto.EntityResult> query(String name, com.ontimize.jee.server.rest.QueryParameter queryParameter) throws Exception;
+
+	/**
+	* Updates a user.
+	* This resource represents a user in the system.
+	* @param name (required)
+	* @param updateParameter (required)
+	* @return com.ontimize.jee.common.dto.EntityResult
+	*
+	* This interface must be implemented on orestcontroller based classes.
+	* Path: /users/user
+	*/
+
+	public ResponseEntity<com.ontimize.jee.common.dto.EntityResult> update(String name, com.ontimize.jee.server.rest.UpdateParameter updateParameter);
+}

Implements the generated interfaces on the web services module

Once the interfaces have been generated, we need to add the OpenAPI module dependency to the web services module and implement the interface on the REST controller.

The request mapping annotations are declared on the generated interface and should not be declared again on the controller.

pom.xml

...
+  <dependencies>
+    <dependency>
+      <groupId>com.ontimize</groupId>
+      <artifactId>projectwiki-openapi</artifactId>
+    </dependency>
+    ...
+  <dependencies>
+...

UserRestController.java

package com.ontimize.projectwiki.ws.core.rest;
+
+
+import com.ontimize.projectwiki.openapi.core.service.IUsersApi;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+//import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.RequestMapping;
+//import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.ontimize.projectwiki.api.core.service.IUserService;
+import com.ontimize.jee.common.dto.EntityResult;
+import com.ontimize.jee.server.rest.ORestController;
+
+@RestController
+@RequestMapping("/users")
+public class UserRestController extends ORestController<IUserService> implements IUsersApi {
+
+	@Autowired
+	private IUserService userSrv;
+
+	@Override
+	public IUserService getService() {
+		return this.userSrv;
+	}
+
+	/* @RequestMapping(
+		value = "/login",
+		method = RequestMethod.POST,
+		produces = MediaType.APPLICATION_JSON_VALUE) */
+	@Override
+	public ResponseEntity<EntityResult> login() {
+		return new ResponseEntity<>(HttpStatus.OK);
+	}
+
+}

Testing

To test this functionality we will use the Swagger tool provided by Ontimize.

Enable the Swagger User Interface

To enable the Swagger UI we will add the following property it in the pom.xml file of the OpenAPI module (More information in this link).

pom.xml

...
+  <properties>
+    ...
+    <ontimize.openapi.swagger-ui.enabled>true</ontimize.openapi.swagger-ui.enabled>
+  </properties>
+...

Redirect to the Swagger User Interface (Optional)

Now, we will add a custom index.html that will redirect to the Swagger UI when we open the application in the browser.

<!doctype html>
+<html>
+  <head>
+    <meta charset="utf-8">
+    <title>projectwiki</title>
+    <link rel="icon" type="image/x-icon" href="favicon.ico">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <script type="application/javascript">
+        location.href = location.origin + "/swagger-ui/index.html";
+     </script>
+  </head>
+  <body>
+
+  </body>
+</html>

Allow to access to the API specification and to the Swagger User Interface

The API specification and the Swagger UI must be accesible withouth authentication. To do this, we must provide them as static resources and exclude them from the list of protected paths.

application.yml

...
+ontimize:
+   ...
+   security:
+      ...
+      ignore-paths: '/index.html,/restapi/**,/swagger-ui/**'
+      ...
+spring:
+   ...
+   resources:
+      ...
+      static-locations: classpath:/public/
+...

Once the changes has been applied, we must built and run the project, then we can access to the application by opening a web browser and navigating to http://localhost:33333):

openapi_ontimize_rest_swagger_1.png

We must open the authorization dialog by clicking on the Authorize button, provide the credentials, click on the Authorize and the Close button.

openapi_ontimize_rest_swagger_2.png

Now, we will insert a new user on the users table, to do this we will expand the insert section, click on the Try it out and the Execute buttons.

openapi_ontimize_rest_swagger_3.png

The Swagger UI will make the request to the API and will show that the operation was completed successfully.

openapi_ontimize_rest_swagger_4.png

After the insertion, we will request the user info, to do this we will expand the query section, click on the Try it out and the Execute buttons.

openapi_ontimize_rest_swagger_5.png

The Swagger UI will make the request to the API and will show the user info.

openapi_ontimize_rest_swagger_6.png

diff --git a/v3/systems/openapi/standard-controllers.html b/v3/systems/openapi/standard-controllers.html new file mode 100644 index 0000000..e8d63d4 --- /dev/null +++ b/v3/systems/openapi/standard-controllers.html @@ -0,0 +1,342 @@ + Standard controllers | Ontimize Boot Skip to main content Link Menu Expand (external link) Document Search Copy Copied
Theme mode icon

OpenAPI System using standard REST controllers

Introduction

Ontimize OpenAPI Generator allows you to generate, from the interface files, the API code for standard REST controllers.

Prerequisites

There are 2 options to follow this tutorial, clone the repository with the initial state and follow the tutorial step by step, or download the final example and see which files are new and which have been updated.

Initial project

/$ git clone https://github.com/ontimize/ontimize-examples
+/ontimize-examples$ cd ontimize-examples
+/ontimize-examples$ git checkout boot-openapi-standard-controllers-initial
+

Final example

/$ git clone https://github.com/ontimize/ontimize-examples
+/ontimize-examples$ cd ontimize-examples
+/ontimize-examples$ git checkout boot-openapi-standard-controllers
+

To simplify the code being written, three dots (…) may appear in some parts of the code. This indicates that there may be previous code before and after those dots.

Steps

Add the OpenAPI module

We will add a new module to our project that will contain the API definition. Also this module will generate the Java interfaces that later we need to implement in our REST controllers.

openapi_module_1.png

openapi_module_2.png

Add the dependencies to the project

In the main pom.xml we need to add the new module and the Swagger dependencies:

pom.xml

...
+  <properties>
+    ...
+    <swagger-annotations.version>1.6.2</swagger-annotations.version>
+  </properties>
+
+  <dependencyManagement>
+    <dependencies>
+      ...
+      <dependency>
+        <groupId>com.ontimize</groupId>
+        <artifactId>projectwiki-openapi</artifactId>
+        <version>1.0.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
+        <groupId>io.swagger</groupId>
+        <artifactId>swagger-annotations</artifactId>
+        <version>${swagger-annotations.version}</version>
+      </dependency>
+    </dependencies>
+  </dependencyManagement>
+...
+  <modules>
+    <module>projectwiki-api</module>
+    <module>projectwiki-openapi</module>
+    <module>projectwiki-model</module>
+    <module>projectwiki-ws</module>
+    <module>projectwiki-boot</module>
+  </modules>
+...

Add the dependencies to the OpenAPI module

In the pom.xml of the OpenAPI module we need to add the following dependencies:

pom.xml

...
+  <dependencies>
+    ...
+    <dependency>
+      <groupId>com.ontimize.jee</groupId>
+      <artifactId>ontimize-jee-server-rest</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>io.swagger</groupId>
+      <artifactId>swagger-annotations</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>javax.annotation</groupId>
+      <artifactId>javax.annotation-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework.boot</groupId>
+      <artifactId>spring-boot-starter-validation</artifactId>
+    </dependency>
+  </dependencies>
+...

Add the API definition

Following the OpenAPI specification we will create the definition for the test controller (More information in this link):

openapi-rest.yml

openapi: 3.0.3
+info:
+  title: projectwiki API
+  version: '1.0'
+  description: The projectwiki API
+servers:
+  - url: '/'
+    description: Localhost
+
+paths:
+  /test/test:
+    get:
+      operationId: testRest
+      tags:
+        - Test
+      summary: Test
+      description: >
+        Develop purposes only.
+      responses:
+        '200':
+          description: OK
+          content:
+            text/plain:
+              schema:
+                type: string
+        '400':
+          description: Bad request
+        '401':
+          description: Not found
+        '404':
+          description: Unauthorized
+        default:
+          description: Unexpected error
+    post:
+      operationId: postTest
+      tags:
+        - Test
+      summary: POST Test
+      description: >
+        Develop purposes only.
+      x-codegen-request-body-name: person
+      requestBody:
+        required: true
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/Person'
+            examples:
+              Laura Bugle:
+                value:
+                  name: 'Laura'
+                  surname: 'Bugle'
+      responses:
+        '200':
+          description: OK
+          content:
+            text/plain:
+              schema:
+                type: string
+        '400':
+          description: Bad request
+        '401':
+          description: Not found
+        '404':
+          description: Unauthorized
+        default:
+          description: Unexpected error
+
+components:
+  schemas:
+    Person:
+      type: object
+      properties:
+        name:
+          description: Name
+          type: string
+        surname:
+          description: Surname
+          type: string
+
+  securitySchemes:
+    BasicAuth:
+      type: http
+      scheme: basic
+
+security:
+  - BasicAuth: []

Configure the OpenAPI system

This functionality can be enabled by creating the marker file marker-ws-ontimize-openapi-generator in the src/main/ontimize folder on the OpenAPI module. This file should only exist and be empty.

To comply with the project structure, we will generate the interfaces and the models in the package com.ontimize.projectwiki.openapi.core. Also, we will enable the bean validation functionality.

We can configure these functionalities adding the following properties it in the pom.xml file of the OpenAPI module (More information in this link).

pom.xml

...
+  <properties>
+    ...
+    <ontimize.openapi.generator.maven.plugin.packageName>com.ontimize.projectwiki.openapi.core.service</ontimize.openapi.generator.maven.plugin.packageName>
+    <ontimize.openapi.generator.maven.plugin.modelPackageName>com.ontimize.projectwiki.openapi.core.dto</ontimize.openapi.generator.maven.plugin.modelPackageName>
+    <ontimize.openapi.generator.maven.plugin.useBeanValidation>true</ontimize.openapi.generator.maven.plugin.useBeanValidation>
+  </properties>
+...

Generate the interfaces

Now, we need to build the project to generate the interfaces and models, these interfaces will be placed in the target folder of the OpenAPI module.

ITestApi.java

package com.ontimize.projectwiki.openapi.core.service;
+
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.validation.annotation.Validated;
+import javax.validation.Valid;
+import javax.validation.constraints.*;
+
+@Validated
+public interface ITestApi {
+	/**
+	* POST Test
+	* Develop purposes only.
+	* @param person (required)
+	* @return String
+	*
+	*/
+	@RequestMapping(path = "/test/test", method = RequestMethod.POST,
+		consumes = { "application/json" },
+		produces = { "text/plain" })
+	public ResponseEntity<String> postTest(@Valid @RequestBody com.ontimize.projectwiki.openapi.core.dto.Person person);
+
+	/**
+	* Test
+	* Develop purposes only.
+	* @return String
+	*
+	*/
+	@RequestMapping(path = "/test/test", method = RequestMethod.GET,
+		produces = { "text/plain" })
+	public ResponseEntity<String> testRest();
+}

Person.java

package com.ontimize.projectwiki.openapi.core.dto;
+
+import java.util.Objects;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import javax.validation.Valid;
+import javax.validation.constraints.*;
+
+/**
+ * Person
+ */
+@javax.annotation.Generated(value = "com.ontimize.openapi.ServerCodegen", date = "2024-04-09T11:09:49.679913+02:00[Europe/Madrid]")
+public class Person   {
+  private String name;
+
+  private String surname;
+
+  public Person name(String name) {
+    this.name = name;
+    return this;
+  }
+
+  /**
+   * Name
+   * @return name
+  */
+  @ApiModelProperty(value = "Name")
+
+
+  public String getName() {
+    return name;
+  }
+
+  public void setName(String name) {
+    this.name = name;
+  }
+
+  public Person surname(String surname) {
+    this.surname = surname;
+    return this;
+  }
+
+  /**
+   * Surname
+   * @return surname
+  */
+  @ApiModelProperty(value = "Surname")
+
+
+  public String getSurname() {
+    return surname;
+  }
+
+  public void setSurname(String surname) {
+    this.surname = surname;
+  }
+
+
+  @Override
+  public boolean equals(Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+    Person person = (Person) o;
+    return Objects.equals(this.name, person.name) &&
+        Objects.equals(this.surname, person.surname);
+  }
+
+  @Override
+  public int hashCode() {
+    return Objects.hash(name, surname);
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append("class Person {\n");
+
+    sb.append("    name: ").append(toIndentedString(name)).append("\n");
+    sb.append("    surname: ").append(toIndentedString(surname)).append("\n");
+    sb.append("}");
+    return sb.toString();
+  }
+
+  /**
+   * Convert the given object to string with each line indented by 4 spaces
+   * (except the first line).
+   */
+  private String toIndentedString(Object o) {
+    if (o == null) {
+      return "null";
+    }
+    return o.toString().replace("\n", "\n    ");
+  }
+}

Implements the generated interfaces on the web services module

Once the interfaces have been generated, we need to add the OpenAPI module dependency to the web services module and implement the interface on the REST controller.

The request mapping annotations are declared on the generated interface and should not be declared again on the controller.

pom.xml

...
+  <dependencies>
+    <dependency>
+      <groupId>com.ontimize</groupId>
+      <artifactId>projectwiki-openapi</artifactId>
+    </dependency>
+    ...
+  <dependencies>
+...

TestRestController.java

package com.ontimize.projectwiki.ws.core.rest;
+
+import com.ontimize.projectwiki.openapi.core.dto.Person;
+import com.ontimize.projectwiki.openapi.core.service.ITestApi;
+import org.springframework.http.HttpStatus;
+//import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+//import org.springframework.web.bind.annotation.RequestMapping;
+//import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+//@RequestMapping("/test")
+public class TestRestController implements ITestApi {
+
+	@Override
+	public ResponseEntity<String> postTest(Person person) {
+		return new ResponseEntity<>(String.format("Hi %s!", person.getName()), HttpStatus.OK);
+	}
+
+	//@RequestMapping(value = "/test", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
+	@Override
+	public ResponseEntity<String> testRest() {
+		return new ResponseEntity<>("It Works!", HttpStatus.OK);
+	}
+
+}

Testing

To test this functionality we will use the Swagger tool provided by Ontimize.

Enable the Swagger User Interface

To enable the Swagger UI we will add the following property it in the pom.xml file of the OpenAPI module (More information in this link).

pom.xml

...
+  <properties>
+    ...
+    <ontimize.openapi.swagger-ui.enabled>true</ontimize.openapi.swagger-ui.enabled>
+  </properties>
+...

Redirect to the Swagger User Interface (Optional)

Now, we will add a custom index.html that will redirect to the Swagger UI when we open the application in the browser.

<!doctype html>
+<html>
+  <head>
+    <meta charset="utf-8">
+    <title>projectwiki</title>
+    <link rel="icon" type="image/x-icon" href="favicon.ico">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <script type="application/javascript">
+        location.href = location.origin + "/swagger-ui/index.html";
+     </script>
+  </head>
+  <body>
+
+  </body>
+</html>

Allow to access to the API specification and to the Swagger User Interface

The API specification and the Swagger UI must be accesible withouth authentication. To do this, we must provide them as static resources and exclude them from the list of protected paths.

application.yml

...
+ontimize:
+   ...
+   security:
+      ...
+      ignore-paths: '/index.html,/restapi/**,/swagger-ui/**'
+      ...
+spring:
+   ...
+   resources:
+      ...
+      static-locations: classpath:/public/
+...

Once the changes has been applied, we must built and run the project, then we can access to the application by opening a web browser and navigating to http://localhost:33333):

openapi_standard_rest_swagger_1.png

We must open the authorization dialog by clicking on the Authorize button, provide the credentials and click on the Authorize button.

openapi_standard_rest_swagger_2.png

Now, we must close the authorization dialog, expand the POST section, click on the Try it out and the Execute buttons.

openapi_standard_rest_swagger_3.png

The Swagger UI will make the request to the API and will show the response message.

openapi_ontimize_rest_swagger_4.png

diff --git a/v3/systems/preferences/index.html b/v3/systems/preferences/index.html new file mode 100644 index 0000000..a1dcc1a --- /dev/null +++ b/v3/systems/preferences/index.html @@ -0,0 +1,49 @@ + Preferences System | Ontimize Boot Skip to main content Link Menu Expand (external link) Document Search Copy Copied
Theme mode icon

Preferences System

This module works only for Ontimize Boot version 3.9.0 or above. Actual release version: Ontimize Boot

Introduction

The Ontimize preferences allow you to save the settings that are stored in the localstorage (window size, tables preferences, graphics, or reports) into the database.

Prerequisites

You can follow this tutorial using your own application, although for this example we will use an application created using the archetype that can be found on this page and with a REST service.

There are 2 options to follow this tutorial, clone the repository with the initial state and follow the tutorial step by step, or download the final example and see which files are new and which have been updated.

Initial project

/$ git clone https://github.com/ontimize/ontimize-examples
+/ontimize-examples$ cd ontimize-examples
+/ontimize-examples$ git checkout boot-preferences-initial
+

Final example

/$ git clone https://github.com/ontimize/ontimize-examples
+/ontimize-examples$ cd ontimize-examples
+/ontimize-examples$ git checkout boot-preferences
+

To simplify the code being written, three dots (…) may appear in some parts of the code. This indicates that there may be previous code before and after those dots.

Steps

Database

Configurations Table

With the database started, we create the new table that will store the configuration preferences information.

CREATE TABLE TCONFIGS ( ID_CONFIG INTEGER NOT NULL IDENTITY, USER_CONFIG VARCHAR(255), TYPE_CONFIG VARCHAR(255), COMPONENTS VARCHAR(16777216));

Server

Configuration Dao

A specific DAO will be created for the table in the Preferences system, and it will implement a interface.

ConfigsDao.java

package com.ontimize.projectwiki.model.core.dao;
+
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Repository;
+
+import com.ontimize.jee.server.dao.common.ConfigurationFile;
+import com.ontimize.jee.server.dao.jdbc.OntimizeJdbcDaoSupport;
+
+@Lazy
+@Repository(value = "ConfigsDao")
+@ConfigurationFile(
+	configurationFile = "dao/ConfigsDao.xml",
+	configurationFilePlaceholder = "dao/placeholders.properties")
+public class ConfigsDao extends OntimizeJdbcDaoSupport {
+
+	public static final String ID   	  = "ID_CONFIG";
+	public static final String USER 	  = "USER_CONFIG";
+	public static final String TYPE  	  = "TYPE_CONFIG";
+	public static final String COMPONENTS = "COMPONENTS";
+
+}

ConfigsDao.xml

<?xml version="1.0" encoding="UTF-8"?>
+<JdbcEntitySetup
+    xmlns="http://www.ontimize.com/schema/jdbc"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://www.ontimize.com/schema/jdbc http://www.ontimize.com/schema/jdbc/ontimize-jdbc-dao.xsd"
+    catalog="" schema="${mainschema}" table="TCONFIGS"
+    datasource="mainDataSource" sqlhandler="dbSQLStatementHandler">
+    <DeleteKeys>
+        <Column>ID_CONFIG</Column>
+    </DeleteKeys>
+    <UpdateKeys>
+        <Column>ID_CONFIG</Column>
+    </UpdateKeys>
+</JdbcEntitySetup>

Add parameters to Application YML

As has already been explained previously (in this link) we add the following parameters to the application.yml to define the name of the DAO of the preferences system and to activate autoconfiguration.

application.yml

ontimize:
+   save-config: true
+   save-config-dao: ConfigsDao

Testing the preferences system

Once the preferences system is already configured and the server and the database are running, we will follow the next steps:

Add preferences to database

To add or modify preferences to the database, we will execute the following REST Request: http://localhost:33333/configuration/preferences

The type of the request is POST.

Element Meaning
localhost:33333 Indicates the host
/configuration Indicates the service
/preferences Indicates the type of configuration that you’re going to save. You can write the name you want.

The body of the request needs to have the following structure:

{
+  "user":"demo",
+  "components":{
+    "lang":"es",
+    ...
+    "theme":{"primary":"#242424","accent":"#ffcc00","href":"ontimize-black-yellow.css","href_dark":"ontimize-black-yellow-dark.css","isDefault":true,"isDark":false},
+  }
+}

By default the request will create a new entry in the database. If it already exists, it will be modified.

Query preferences

To query preferences of the database, we will execute the following REST Request: http://localhost:33333/configuration/preferences?user=demo

The type of the request is GET.

Element Meaning
localhost:33333 Indicates the host.
/configuration Indicates the service to be queried.
/preferences Indicates the type of configuration that will be queried.
?user=demo Indicates the user.
diff --git a/v3/systems/reports/index.html b/v3/systems/reports/index.html new file mode 100644 index 0000000..634bbb8 --- /dev/null +++ b/v3/systems/reports/index.html @@ -0,0 +1 @@ + Reports | Ontimize Boot Skip to main content Link Menu Expand (external link) Document Search Copy Copied
Theme mode icon

Reports

Introduction

The module Ontimize Jee Report is a set of reporting tools based in OntimizeBoot.

Reports implements reporting with:

Report store

The Report Store system will allow you to store, manage and export all kinds of reports designed and implemented via the JasperReports API. This module will let you use your Ontimize application data as data sources for your reports, allowing you to fully customize its layout with tables, charts, graphs… and also visualize, export, print and download your reports. You can find more information at this link

Report on-demand

Allow the final users of the applications developed with Ontimize to define, view and store reports from any table available in the application. This visual tool will allow users to define parameters of the report such as title, subtitle, columns to display, differents styles options, sorting, grouping and data aggregate functions of the report. With these parameters and the data of the table, this component will dynamically generate the report and present it to the user. In addition, all these settings are stored automatically in database by Ontimize services. You can find more information at this link

diff --git a/v3/systems/reports/report-on-demand.html b/v3/systems/reports/report-on-demand.html new file mode 100644 index 0000000..277980c --- /dev/null +++ b/v3/systems/reports/report-on-demand.html @@ -0,0 +1,102 @@ + Report On Demand | Ontimize Boot Skip to main content Link Menu Expand (external link) Document Search Copy Copied
Theme mode icon

Report On Demand

This module works only for Ontimize Boot version 3.9.0 or above. Actual release version: Ontimize Boot

Prerequisites

You can follow this tutorial using your own application, although for this example we will use an application created using the archetype that can be found on this page and with a REST service.

Clone the repository with the initial state and follow the tutorial step by step.

Initial project

/$ git clone https://github.com/ontimize/ontimize-examples
+/ontimize-examples$ cd ontimize-examples
+/ontimize-examples$ git checkout boot-report-initial
+

Final example

/$ git clone https://github.com/ontimize/ontimize-examples
+/ontimize-examples$ cd ontimize-examples
+/ontimize-examples$ git checkout boot-report
+

To simplify the code being written, three dots (…) may appear in some parts of the code. This indicates that there may be previous code before and after those dots.

In the first step we will learn how to configure the reports system with the database engine. If you want to use the file system engine you can jump to this section.

Steps

Database

Report Tables

With the database started, we create the new tables that will store the reports information. We’re going to need to create two different tables, one for the report itself and one for the report custom parameters.

CREATE TABLE PREFERENCES(ID INTEGER NOT NULL PRIMARY KEY,NAME VARCHAR(255),DESCRIPTION VARCHAR(255),PREFERENCES VARCHAR(5000),ENTITY VARCHAR(100), TYPE BIT)

Server

Add Ontimize Report dependencies

projectwiki-boot/pom.xml

...
+<dependencies>
+	...
+	<dependency>
+		<groupId>com.ontimize.boot</groupId>
+		<artifactId>ontimize-boot-starter-report</artifactId>
+	</dependency>
+	...
+</dependencies>
+...

projectwiki-model/pom.xml

...
+<dependencies>
+	...
+	<dependency>
+		<groupId>com.ontimize.jee.report</groupId>
+		<artifactId>ontimize-jee-report-server</artifactId>
+	</dependency>
+	...
+</dependencies>
+...

Add Preferences DAOs

A specific DAO will be created for each of both tables in the system, and each of them will implement a different interface.

PreferencesDao.xml

<?xml version="1.0" encoding="UTF-8"?>
+<JdbcEntitySetup
+ xmlns="http://www.ontimize.com/schema/jdbc"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.ontimize.com/schema/jdbc http://www.ontimize.com/schema/jdbc/ontimize-jdbc-dao.xsd"
+ catalog="" schema="${mainschema}" table="PREFERENCES"
+ datasource="mainDataSource" sqlhandler="dbSQLStatementHandler">
+ <DeleteKeys>
+  <Column>ID</Column>
+ </DeleteKeys>
+ <UpdateKeys>
+  <Column>ID</Column>
+ </UpdateKeys>
+ <GeneratedKey>ID</GeneratedKey>
+</JdbcEntitySetup>

PreferencesDao.java

package com.imatia.qsallcomponents.model.dao;
+
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Repository;
+
+import com.ontimize.jee.server.dao.IPreferencesDao;
+import com.ontimize.jee.server.dao.common.ConfigurationFile;
+import com.ontimize.jee.server.dao.jdbc.OntimizeJdbcDaoSupport;
+
+@Lazy
+@Repository(value = "PreferencesDao")
+@ConfigurationFile(configurationFile = "base-dao/PreferencesDao.xml", configurationFilePlaceholder = "base-dao/placeholders.properties")
+public class PreferencesDao extends OntimizeJdbcDaoSupport implements IPreferencesDao {
+
+    public static final String ATTR_ID = "ID";
+    public static final String ATTR_NAME = "NAME";
+    public static final String ATTR_DESCRIPTION = "DESCRIPTION";
+    public static final String ATTR_PREFERENCES = "PREFERENCES";
+    public static final String ATTR_TYPE = "TYPE";
+
+}

Modify application.yml

The application.yml file will be modified to enable the reports module, indicate the report engine type it will use and, if needed, the path where the report files will be stored. In this link you have information about the configuration of the reports system in the application.yml file.

The enable property must be set to true and the engine type must be specified in the engine property before the server is started.

You can only choose ONE of the two options listed below.

application.yml

For database engine

ontimize:
+   report:
+      enable: true
+      engine: database

For file system engine

ontimize:
+   report:
+      enable: true
+      engine: file
+      base-path: C:/applications/projectwiki/reports

Testing the reports system

Once the reports system is already configured and the server and the database are running, we will follow the next steps:

Generate report

  • URL: http://localhost:33333/dynamicjasper/report
  • HTTP Method: POST
  • Authorization: User: demo, Password: demouser
  • Body: JSON
Element Meaning
localhost:33333 Indicates the host
/dynamicjasper Indicates the service to be queried
/report Indicates the method of the service that is going to be executed

Body request:

{
+      "title": "Report on demand",
+      "groups": [],
+      "entity": "customer",
+      "service": "Customer",
+      "vertical": true,
+      "functions": [{"columnName":"", "type":"TOTAL"}, {"columnName":"CUSTOMERTYPEID", "type":"SUM"}],
+      "style": { "columnName":true, "grid":false, "rowNumber":false},
+      "subtitle": "Example",
+      "columns": [
+              {"id": "NAME", "name": "Nombre", "columnStyle": {"width": 50, "alignment": "left"}},
+              {"id": "CUSTOMERTYPEID", "name": "ID", "columnStyle": {"width": 80, "alignment": "left"}}, {"id": "STARTDATE", "name": "Date", "columnStyle": {"width": 60, "alignment": "left"}}],
+      "orderBy": []
+}
+  

Save preferences

Allows to save the configuration of a report in the database to do it again quickly

  • URL: http://localhost:33333/preferences/save
  • HTTP Method: POST
  • Authorization: Basic Auth with parameters User: demo, Password: demouser
  • Body: JSON
Element Meaning
localhost:33333 Indicates the host
/preferences Indicates the service to be queried
/save Indicates the method of the service that is going to be executed

Body request:

{
+    "name":"PreferencesExample",
+    "description":"PreferencesDescription",
+    "entity": "customer",
+    "service": "Customer",
+    "type":"REPORT",
+    "params": {
+      "title": "Report on demand",
+      "groups": [],
+      "entity": "customer",
+      "service": "Customer",
+      "vertical": true,
+      "functions": [{"columnName":"", "type":"TOTAL"}, {"columnName":"CUSTOMERTYPEID", "type":"SUM"}],
+      "style": { "columnName":true, "grid":false, "rowNumber":false},
+      "subtitle": "Example",
+      "columns": [
+              {"id": "NAME", "name": "Nombre", "columnStyle": {"width": 50, "alignment": "left"}},
+              {"id": "CUSTOMERTYPEID", "name": "ID", "columnStyle": {"width": 80, "alignment": "left"}}, {"id": "STARTDATE", "name": "Date", "columnStyle": {"width": 60, "alignment": "left"}}],
+      "orderBy": []
+    }
+}

Get preferences

Execute the following request: http://localhost:33333/preferences/preferences?entity=ENTITY&service=SERVICE&type=REPORT.

Element Meaning
localhost:33333 Indicates the host
/preferences Indicates the service to be queried
/preferences Indicates the method of the service that is going to be executed
?entity=ENTITY ENTITY indicates the entity to filter the preferences
&service=SERVICE SERVICE indicates the service to filter the preferences
&type=REPORT Indicates the type to filter the preferences

The authorization used for these requests is authorization of the type BASIC.

In all three cases cases, the access must be done with a user and password example:

    User: demo
+Password: demouser
+

Visualize report document

When you run the above request, in the body of the response you will find the key file, whose value is a Base 64 that contains the format and data of the report template. Copy it and go to this page to convert the Base 64 into a PDF file.

diff --git a/v3/systems/reports/report-store.html b/v3/systems/reports/report-store.html new file mode 100644 index 0000000..a3feaa1 --- /dev/null +++ b/v3/systems/reports/report-store.html @@ -0,0 +1,108 @@ + Report Store | Ontimize Boot Skip to main content Link Menu Expand (external link) Document Search Copy Copied
Theme mode icon

Report Store

This module works only for Ontimize Boot version 3.7.0 or above. Actual release version: Ontimize Boot

Introduction

The Report Store system will allow you to store, manage and export all kinds of reports designed and implemented via the JasperReports API. This module will let you use your Ontimize application data as data sources for your reports, allowing you to fully customize its layout with tables, charts, graphs… and also visualize, export, print and download your reports.

Previous concepts

  • Report: It is the generic representation of a report. One report can have one or multiple custom report parameters, or have none.
  • Main report file: The file containing all the information regarding the report layout, along with the data sources, connections and other configuration directives. Written in .jrxml format.
  • Report parameter: It is the generic representation of a custom report parameter. They are used for defining filters, implementing pagination, or even specifying the report data source.

Prerequisites

You can follow this tutorial using your own application, although for this example we will use an application created using the archetype that can be found on this page and with a REST service.

There are 2 options to follow this tutorial, clone the repository with the initial state and follow the tutorial step by step, or download the final example and see which files are new and which have been updated.

Initial project

/$ git clone https://github.com/ontimize/ontimize-examples
+/ontimize-examples$ cd ontimize-examples
+/ontimize-examples$ git checkout boot-report-initial
+

Final example

/$ git clone https://github.com/ontimize/ontimize-examples
+/ontimize-examples$ cd ontimize-examples
+/ontimize-examples$ git checkout boot-report
+

To simplify the code being written, three dots (…) may appear in some parts of the code. This indicates that there may be previous code before and after those dots.

In the first step we will learn how to configure the reports system with the database engine. If you want to use the file system engine you can jump to this section.

Steps

Database

Report Tables

With the database started, we create the new tables that will store the reports information. We’re going to need to create two different tables, one for the report itself and one for the report custom parameters.

CREATE TABLE REPORTS(ID INTEGER IDENTITY NOT NULL PRIMARY KEY, UUID VARCHAR(255) NOT NULL, NAME VARCHAR(255), DESCRIPTION VARCHAR(255), REPORT_TYPE VARCHAR(255), MAIN_REPORT_FILENAME VARCHAR(255) NOT NULL, ZIP VARBINARY(16777216), COMPILED VARBINARY(16777216));
+CREATE TABLE REPORT_PARAMETERS(ID INTEGER IDENTITY NOT NULL PRIMARY KEY, REPORT_ID INTEGER NOT NULL, NAME VARCHAR(255), DESCRIPTION VARCHAR(255), NESTED_TYPE VARCHAR(255), VALUE_CLASS VARCHAR(255));

Once the tables have been created, we add the foreign key

ALTER TABLE REPORT_PARAMETERS ADD CONSTRAINT REPORT_PARAMETERS_FK FOREIGN KEY(REPORT_ID) REFERENCES REPORTS(ID);

Server

Add Ontimize Report dependencies

projectwiki-boot/pom.xml

...
+<dependencies>
+	...
+	<dependency>
+		<groupId>com.ontimize.boot</groupId>
+		<artifactId>ontimize-boot-starter-report</artifactId>
+	</dependency>
+	...
+</dependencies>
+...

projectwiki-model/pom.xml

...
+<dependencies>
+	...
+	<dependency>
+		<groupId>com.ontimize.jee.report</groupId>
+		<artifactId>ontimize-jee-report-server</artifactId>
+	</dependency>
+	...
+</dependencies>
+...

Add Report DAOs

A specific DAO will be created for each of both tables in the reports system, and each of them will implement a different interface.

ReportDao.xml

<?xml version="1.0" encoding="UTF-8"?>
+<JdbcEntitySetup xmlns="http://www.ontimize.com/schema/jdbc"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://www.ontimize.com/schema/jdbc http://www.ontimize.com/schema/jdbc/ontimize-jdbc-dao.xsd"
+	table="REPORTS" datasource="mainDataSource" sqlhandler="dbSQLStatementHandler">
+	<DeleteKeys>
+		<Column>ID</Column>
+	</DeleteKeys>
+	<UpdateKeys>
+		<Column>ID</Column>
+	</UpdateKeys>
+	<GeneratedKey>ID</GeneratedKey>
+</JdbcEntitySetup>

ReportParameterDao.xml

<?xml version="1.0" encoding="UTF-8"?>
+<JdbcEntitySetup xmlns="http://www.ontimize.com/schema/jdbc"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://www.ontimize.com/schema/jdbc http://www.ontimize.com/schema/jdbc/ontimize-jdbc-dao.xsd"
+	table="REPORT_PARAMETERS" datasource="mainDataSource" sqlhandler="dbSQLStatementHandler">
+	<DeleteKeys>
+		<Column>ID</Column>
+	</DeleteKeys>
+	<UpdateKeys>
+		<Column>ID</Column>
+	</UpdateKeys>
+	<GeneratedKey>ID</GeneratedKey>
+</JdbcEntitySetup>

ReportDao.java

package com.ontimize.projectwiki.model.core.dao;
+
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Repository;
+
+import com.ontimize.jee.server.dao.common.ConfigurationFile;
+import com.ontimize.jee.server.dao.jdbc.OntimizeJdbcDaoSupport;
+import com.ontimize.jee.server.services.reportstore.dao.IReportDao;
+
+@Lazy
+@Repository(value = "ReportDao")
+@ConfigurationFile(configurationFile = "dao/ReportDao.xml", configurationFilePlaceholder = "dao/placeholders.properties")
+public class ReportDao extends OntimizeJdbcDaoSupport implements IReportDao {
+
+	public static final String	ATTR_ID					= "ID";
+	public static final String	ATTR_NAME				= "NAME";
+	public static final String	ATTR_DESCRIPTION			= "DESCRIPTION";
+	public static final String	ATTR_REPORT_TYPE			= "REPORT_TYPE";
+	public static final String	ATTR_MAIN_REPORT_FILENAME	        = "MAIN_REPORT_FILENAME";
+	public static final String	ATTR_ZIP				= "ZIP";
+	public static final String	ATTR_COMPILED				= "COMPILED";
+
+	public ReportDao() {
+		super();
+	}
+}

ReportParameterDao.java

package com.ontimize.projectwiki.model.core.dao;
+
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Repository;
+
+import com.ontimize.jee.server.dao.common.ConfigurationFile;
+import com.ontimize.jee.server.dao.jdbc.OntimizeJdbcDaoSupport;
+import com.ontimize.jee.server.services.reportstore.dao.IReportParameterDao;
+
+@Lazy
+@Repository(value = "ReportParameterDao")
+@ConfigurationFile(configurationFile = "dao/ReportParameterDao.xml", configurationFilePlaceholder = "dao/placeholders.properties")
+public class ReportParameterDao extends OntimizeJdbcDaoSupport implements IReportParameterDao {
+
+	public static final String	ATTR_ID					= "ID";
+	public static final String	ATTR_REPORT_ID				= "REPORT_ID";
+	public static final String	ATTR_NAME				= "NAME";
+	public static final String	ATTR_DESCRIPTION			= "DESCRIPTION";
+	public static final String	ATTR_NESTED_TYPE			= "NESTED_TYPE";
+	public static final String	ATTR_VALUE_CLASS			= "VALUE_CLASS";
+
+	public ReportParameterDao() {
+		super();
+	}
+}

Modify application.yml

The application.yml file will be modified to enable the reports module, indicate the report engine type it will use and, if needed, the path where the report files will be stored. In this link you have information about the configuration of the reports system in the application.yml file.

The enable property must be set to true and the engine type must be specified in the engine property before the server is started.

You can only choose ONE of the two options listed below.

application.yml

For database engine

ontimize:
+   report:
+      enable: true
+      engine: database

For file system engine

ontimize:
+   report:
+      enable: true
+      engine: file
+      base-path: C:/applications/projectwiki/reports

Testing the reports system

Once the reports system is already configured and the server and the database are running, we will follow the next steps:

Create report template

In order to create our own report templates, it is recommended to use Jaspersoft Studio. You can download it from this link.

In this tutorial we will provide you a report template for candidates, but if you want more information about how to create and customize a template, check this tutorial.

Our template is located in the main folder of the project, it is called candidates.zip.

Do not unzip the compressed file because the request explained below requires it compressed.

Add report to the reports system

To add the template we will have to execute the following POST REST request: http://localhost:33333/reportstore/addReport

Element Meaning
localhost:33333 Indicates the host
/reportstore Indicates the service to be queried
/addReport Indicates the method of the service that is going to be executed

With the Postman program, you will have to add a body of type form-data in which you will have to add the following values:

key type value Description
data text {“name”:”x”,”type”:”x”,”description”:”x”} Indicates the name, type and description of the template
file file candidates.zip You have to indicate the path of the candidates.zip file

Generate report

When you run the above request, if the value of the engine set in the application.yml is filesystem, you have to copy the uuid that comes in the response data and execute the following request: http://localhost:33333/reportstore/fillReport/{{UUID}}.

Element Meaning
localhost:33333 Indicates the host
/reportstore Indicates the service to be queried
/fillReport Indicates the method of the service that is going to be executed
{{UUID}} Indicates the uuid that you receives of the previous request

But if the value of the engine set in the application.yml is database, you have to execute the following GET REST request to know the uuid of the report template: http://localhost:33333/reportstore/listReports.

Element Meaning
localhost:33333 Indicates the host
/reportstore Indicates the service to be queried
/listReports Indicates the method of the service that is going to be executed

Example POST Request

URL: http://localhost:33333/reportstore/fillReport/fd656189-2158-4e84-ac5c-8379960fddbd
Body:
{
  “params”: “”,
  “filter”: {}
}

The authorization used for these requests is authorization of the type BASIC.

In both cases, the access must be done with a user and password example:

    User: demo
+Password: demouser
+

Visualize report document

When you run the above request, in the body of the response you will find the key file, whose value is a Base 64 that contains the format and data of the report template. Copy it and go to this page to convert the Base 64 into a PDF file.

diff --git a/v3/systems/sdms/index.html b/v3/systems/sdms/index.html new file mode 100644 index 0000000..7f18262 --- /dev/null +++ b/v3/systems/sdms/index.html @@ -0,0 +1,186 @@ + SDMS System | Ontimize Boot Skip to main content Link Menu Expand (external link) Document Search Copy Copied
Theme mode icon

SDMS System

This module works only for Ontimize Boot version 3.11.0 or above. Actual release version: Ontimize Boot

Introduction

The Storage Document Management System (SDMS) is a system that allows you to manage documents related to an entity in your project. Ontimize Boot provides a DMS that allows to store files in external services according to the engine set in its configuration.

Previous concepts

  • Workspace: Represents the base folder where the documents for an entity will be stored.

Prerequisites

You can follow this tutorial using your own application, although for this example we will use an application created using the archetype that can be found on this page and with a REST service.

There are 2 options to follow this tutorial, clone the repository with the initial state and follow the tutorial step by step, or download the final example and see which files are new and which have been updated.

Initial project

/$ git clone https://github.com/ontimize/ontimize-examples 
+/ontimize-examples$ cd ontimize-examples
+/ontimize-examples$ git checkout boot-sdms-initial
+

Final example

/$ git clone https://github.com/ontimize/ontimize-examples 
+/ontimize-examples$ cd ontimize-examples
+/ontimize-examples$ git checkout boot-sdms
+

To simplify the code being written, three dots (…) may appear in some parts of the code. This indicates that there may be previous code before and after those dots.

Steps

Server

Add SDMS dependencies

/pom.xml

...
+<dependencies>
+  ...
+  <dependency>
+    <groupId>com.ontimize.jee.sdms</groupId>
+    <artifactId>ontimize-jee-sdms-common</artifactId>
+  </dependency>
+  ...
+</dependencies>
+...

ws/pom.xml

...
+<dependencies>
+  ...
+    <dependency>
+        <groupId>com.ontimize.jee.sdms</groupId>
+        <artifactId>ontimize-jee-sdms-rest</artifactId>
+    </dependency>
+  ...
+</dependencies>
+...

model/pom.xml

...
+<dependencies>
+...
+  <dependency>
+    <groupId>com.ontimize.jee.sdms</groupId>
+    <artifactId>ontimize-jee-sdms-server</artifactId>
+  </dependency>
+
+  <dependency>
+    <groupId>com.ontimize.jee.sdms</groupId>
+    <artifactId>ontimize-jee-sdms-event</artifactId>
+  </dependency>
+...
+</dependencies>
+...

boot/pom.xml

...
+<dependencies>
+...
+  <dependency>
+    <groupId>com.ontimize.boot</groupId>
+    <artifactId>ontimize-boot-starter-sdms</artifactId>
+  </dependency>
+...
+</dependencies>
+...

Modify application.yml

The application.yml file will be modified the engine to be used by the SDMS, for this example we will set up the S3 engine. Information on the configuration of the SDMS system in the application.yml file can be found at this link.

Currently only the S3 engine using the Amazon AWS S3 service API is available.

application.yml

ontimize:
+  sdms:
+    engine: s3
+    s3:
+      access-key: ${S3_ACCESS_KEY}
+      secret-key: ${S3_SECRET_KEY}
+      bucket: ${S3_BUCKET}
+      region: ${S3_REGION}

Modify the entity service to add the methods of the SDMS service

All methods available by the SDMS service will be added to the service interface of our entity. Our method names are constructed with the name of the entity followed by the SDMS method name.
The SDMS methods available are:

  • SdmsFindById: It allows us to retrieve the information of an SDMS element by its ID (Base64 encrypted id).
  • SdmsFind: It allows us to retrieve the information of several elements of the SDMS from a filter.
  • SdmsDownloadById: It allows us to download an SDMS document by its ID (Base64 encrypted id)
  • SdmsDownload: It allows us to download several SDMS documents from a filter.
  • SdmsUpload: It allows us to upload a document to the SDMS.
  • SdmsCreate: It allows us to create an SDMS element in the system.
  • SdmsUpdate: It allows us to update an SDMS element in the system.
  • SdmsCopy: It allows us to copy an SDMS element in the system to another space in the SDMS.
  • SdmsMove: It allows us to move an SDMS element in the system to another space in the SDMS.
  • SdmsDeleteById: It allows us to delete an SDMS element in the system by its ID (Base64 encrypted id).
  • SdmsDelete: It allows us to delete several SDMS elements in the system from a filter.

ICandidateService.java

...
+import com.ontimize.jee.sdms.common.dto.OSdmsRestDataDto;
+import org.springframework.web.multipart.MultipartFile;
+import java.io.Serializable;
+...
+
+public interface ICandidateService {
+
+...
+
+EntityResult candidateSdmsFindById( Serializable id, OSdmsRestDataDto data );
+EntityResult candidateSdmsFind( OSdmsRestDataDto data );
+EntityResult candidateSdmsDownloadById( Serializable id, OSdmsRestDataDto data );
+EntityResult candidateSdmsDownload( OSdmsRestDataDto data );
+EntityResult candidateSdmsUpload(OSdmsRestDataDto data, MultipartFile file );
+EntityResult candidateSdmsCreate( OSdmsRestDataDto data );
+EntityResult candidateSdmsUpdate( OSdmsRestDataDto data );
+EntityResult candidateSdmsCopy( OSdmsRestDataDto data );
+EntityResult candidateSdmsMove( OSdmsRestDataDto data );
+EntityResult candidateSdmsDeleteById( Serializable id, OSdmsRestDataDto data );
+EntityResult candidateSdmsDelete( OSdmsRestDataDto data );
+
+...
+}

Now in the implementation of the service we implement the methods with the help of the IOSdmsService component of the SDMS system and by calling the corresponding method.
We will also establish the workspace where the entity will store and manage the files. We will do this via the OSdmsWorkspace annotation which admits 2 parameters:

  • name: Sets the name of the workspace. If this parameter is not set, the value will be default.
  • value: Sets the path to the workspace, and can be set to variable between braces.

The annotation can be set at class level by enabling the workspace for all SDMS methods, and/or at method level by setting its scope to the annotated method. It can also be set as many workspaces as required.

CandidateService.java

...
+
+import com.ontimize.jee.sdms.common.dto.OSdmsRestDataDto;
+import com.ontimize.jee.sdms.common.workspace.annotation.OSdmsWorkspace;
+import com.ontimize.jee.sdms.server.service.IOSdmsService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.multipart.MultipartFile;
+
+...
+
+@OSdmsWorkspace( "candidate/doc/{id}" )
+@OSdmsWorkspace( name = "all", value = "candidate/doc" )
+...
+public class CandidateService implements ICandidateService {
+
+  ...
+
+  @Autowired
+  private IOSdmsService oSdmsService;
+
+  ...
+
+  @Override
+  public EntityResult candidateSdmsFind( final OSdmsRestDataDto data ) {
+  	return this.oSdmsService.find( data );
+  }
+
+@OSdmsWorkspace( name = "images", value = "candidate/img/{id}" )
+  @Override
+  public EntityResult candidateSdmsDownloadById( final Serializable id, final OSdmsRestDataDto data ) {
+  	return this.oSdmsService.downloadById( id, data );
+  }
+
+  @Override
+  public EntityResult candidateSdmsDownload( final OSdmsRestDataDto data ) {
+  	return this.oSdmsService.download( data );
+  }
+
+  @Override
+  public EntityResult candidateSdmsUpload(final OSdmsRestDataDto data, final MultipartFile file ) {
+  	return this.oSdmsService.upload( data, file );
+  }
+
+  @Override
+  public EntityResult candidateSdmsCreate( final OSdmsRestDataDto data ) {
+  	return this.oSdmsService.create( data );
+  }
+
+  @Override
+  public EntityResult candidateSdmsUpdate( final OSdmsRestDataDto data ) {
+  	return this.oSdmsService.update( data );
+  }
+
+  @Override
+  public EntityResult candidateSdmsCopy( final OSdmsRestDataDto data ) {
+  	return this.oSdmsService.copy( data );
+  }
+
+  @Override
+  public EntityResult candidateSdmsMove( final OSdmsRestDataDto data ) {
+  	return this.oSdmsService.move( data );
+  }
+
+  @Override
+  public EntityResult candidateSdmsDeleteById( final Serializable id, final OSdmsRestDataDto data ) {
+  	return this.oSdmsService.deleteById( id, data );
+  }
+
+  @Override
+  public EntityResult candidateSdmsDelete( final OSdmsRestDataDto data ) {
+  	return this.oSdmsService.delete( data );
+  }
+
+  ...
+
+}

Modify the entity Rest controller

We modify the Rest controller of our entity so that instead of inheriting from the ORestController class, it inherits from the OSdmsRestController class. This class adds all the endpoints of the ORestController class and the SDMS endpoints, linking them with the corresponding SDMS methods that we have established in the service of our entity.

ICandidateService.java

...
+
+import com.imatia.platform.hr.api.core.service.ICandidateService;
+import com.ontimize.jee.sdms.rest.controller.OSdmsRestController;
+
+...
+
+public class CandidateRestController extends OSdmsRestController<ICandidateService> {
+
+...
+}

Endpoints

The endpoints set by the OSdmsRestController are the following:

If the workspace is not sent in an http request, the SDMS will set the default workspace as the active workspace. But if the default workspace has variables, you will need to pass it the workspace with the variable values to access the workspace.

Find by ID

This endpoint maps the request to the SdmsFindById method of the SDMS service.

The id of the requested document is passed in Base64 encrypted in the url and the data parameter is added with the workspace information in JSON format.

The data value must be encoded with percent-encoding to be read correctly.

GET: /candidates/candidate/sdms/find/id/Y2FuZGlkYXRlLzEvZmlsZS0wOC50eHQ=
+Content-Type: multipart/form-data
+Content-Disposition: form-data; name="data"; {"filter": { "workspace": "default", "data": {"id": 1}}}

Find

This endpoint maps the request to the SdmsFind method of the SDMS service.

The id of the requested document is passed in Base64 encrypted in the url and the data parameter is added with the workspace information in JSON format.

POST: /candidates/candidate/sdms/find/id
+Content-Type: application/json
+Body: {"filter": { "workspace": "default", "data": {"id": 1}, "id": ["Y2FuZGlkYXRlLzEvZmlsZS0wMS50eHQ=", "Y2FuZGlkYXRlLzEvZmlsZS0wMi50eHQ="]}}

Download by ID

This endpoint maps the request to the SdmsDownloadById method of the SDMS service.

The id of the requested document is passed in Base64 encrypted in the url and the data parameter is added with the workspace information in JSON format.

The data value must be encoded with percent-encoding to be read correctly.

GET: /candidates/candidate/sdms/download/id/Y2FuZGlkYXRlLzEvZmlsZS0wOC50eHQ=
+Content-Type: multipart/form-data
+Content-Disposition: form-data; name="data"; {"filter": { "workspace": "default", "data": {"id": 1}}}

Download

This endpoint maps the request to the SdmsDownload method of the SDMS service.

The id of the requested document is passed in Base64 encrypted in the url and the data parameter is added with the workspace information in JSON format.

POST: /candidates/candidate/sdms/download/id
+Content-Type: application/json
+Body: {"filter": { "workspace": "default", "data": {"id": 1}, "id": ["Y2FuZGlkYXRlLzEvZmlsZS0wMS50eHQ=", "Y2FuZGlkYXRlLzEvZmlsZS0wMi50eHQ="]}}

Upload

This endpoint maps the request to the SdmsUpload method of the SDMS service.

The data parameter is added with the workspace information in JSON format.

The data value must be encoded with percent-encoding to be read correctly.

POST: /candidates/candidate/sdms/upload
+Content-Type: multipart/form-data
+Content-Disposition: form-data; name="file"; filename="/C:/cv.pdf"
+Content-Disposition: form-data; name="data"; {"filter": { "workspace": "default", "data": {"id": 1}}, "data": {"id": "Y2FuZGlkYXRlLzEvZmlsZS0wMS50eHQ"}}

Create

This endpoint maps the request to the SdmsCreate method of the SDMS service.

POST: /candidates/candidate/sdms/create
+Content-Type: application/json
+Body: {"filter": { "workspace": "default", "data": {"id": 1}}, "data": {"id": "Y2FuZGlkYXRlLzEvZmlsZS0wMi50eHQ="}}

Update

This endpoint maps the request to the SdmsUpdate method of the SDMS service.

PUT: /candidates/candidate/sdms/update
+Content-Type: application/json
+Body: {"filter": { "workspace": "default", "data": {"id": 1}, "id": "Y2FuZGlkYXRlLzEvZmlsZS0wMS50eHQ="}, "data": {"id": "Y2FuZGlkYXRlLzEvZmlsZS0wMi50eHQ="}}

Copy

This endpoint maps the request to the SdmsCopy method of the SDMS service.

PUT: /candidates/candidate/sdms/copy
+Content-Type: application/json
+Body: {"filter": { "workspace": "default", "data": {"id": 1}, "id": "Y2FuZGlkYXRlLzEvZmlsZS0wMS50eHQ="}, "data": {"id": "Y2FuZGlkYXRlLzEvZmlsZS0wMi50eHQ="}}

Move

This endpoint maps the request to the SdmsMove method of the SDMS service.

PUT: /candidates/candidate/sdms/move
+Content-Type: application/json
+Body: {"filter": { "workspace": "default", "data": {"id": 1}, "id": "Y2FuZGlkYXRlLzEvZmlsZS0wMS50eHQ="}, "data": {"id": "Y2FuZGlkYXRlLzEvZmlsZS0wMi50eHQ="}}

Delete by ID

This endpoint maps the request to the SdmsDeleteById method of the SDMS service.

The id of the requested document is passed in Base64 encrypted in the url and the data parameter is added with the workspace information in JSON format.

The data value must be encoded with percent-encoding to be read correctly.

DELETE: /candidates/candidate/sdms/delete/id/Y2FuZGlkYXRlLzEvZmlsZS0wOC50eHQ=
+Content-Type: multipart/form-data
+Content-Disposition: form-data; name="data"; {"filter": { "workspace": "default", "data": {"id": 1}}}

Delete

This endpoint maps the request to the SdmsDelete method of the SDMS service.

The id of the requested document is passed in Base64 encrypted in the url and the data parameter is added with the workspace information in JSON format.

DELETE: /candidates/candidate/sdms/delete/id
+Content-Type: application/json
+Body: {"filter": { "workspace": "default", "data": {"id": 1}, "id": ["Y2FuZGlkYXRlLzEvZmlsZS0wMS50eHQ=", "Y2FuZGlkYXRlLzEvZmlsZS0wMi50eHQ="]}}

Request Parameters

The data parameter of the SDMS system always goes to the “filter” and “data” sections.

The “filter” section contains the parameters related to the selection of elements of the SDMS. Here you will always find the information related to the workspace you want to use.

In the “data” section are the parameters related to the information to be sent to the SDMS.

The rest of the parameters that can be sent in each of the sections will depend on the engine used.

Possible parameters in the S3 engine

  • Filter
    • workspace: The name of the workspace to use.
      example: "workspace": "default"

    • data: The variables values of the workspace.
      example: "data": "{"id": "ID-1"}" | "data": "{"id": 1}" | "data": "{"id": [1, 2, 3]}"

    • id: The S3 key of the document encoded in Base64 (several can be in an array).
      example: "id": "Y2FuZGlkYXRlLzEvZmlsZS0wMS50eHQ=" | "id": ["Y2FuZGlkYXRlLzEvZmlsZS0wMS50eHQ=", "Y2FuZGlkYXRlLzEvZmlsZS0wMi50eHQ="]

    • key: The S3 key of the document (several can be in an array).
      example: "key": "candidate/1/file-01.txt" | "key": ["candidate/1/file-01.txt", "candidate/1/file-02.txt"]

    • prefix: The S3 prefix of the document (several can be in an array).
      example: "prefix": "candidate/1/folder-1" | "prefix": ["candidate/1/folder-1", "candidate/1/folder-2"]

    • fileName: The S3 name of the document (several can be in an array).
      example: "fileName": "file-01.txt" | "fileName": ["file-01.txt", "file-02.txt"]

    • maxKeys: The maximum number of S3 documents to return.
      example: "maxKeys": 10

    • delimiter: The delimiter to use in the S3 documents search.
      example: "delimiter": "/"

    • marker: The marker to use in the S3 documents search.
      example: "marker": "candidate/1/file-01.txt"

  • Data
    • id: The S3 key of the document encoded in Base64.
      example: "id": "Y2FuZGlkYXRlLzEvZmlsZS0wMS50eHQ="

    • key: The S3 key of the document.
      example: "key": "candidate/1/file-01.txt"

    • prefix: The S3 prefix of the document.
      example: "prefix": "/folder-1"

    • fileName: The S3 name of the document.
      example: "fileName": "file-01.txt"

    • currentPrefix: The current S3 prefix of the document.
      example: "currentPrefix": "candidate/1/folder-1"

diff --git a/v3/systems/security/index.html b/v3/systems/security/index.html new file mode 100644 index 0000000..702ae3e --- /dev/null +++ b/v3/systems/security/index.html @@ -0,0 +1,73 @@ + Security System | Ontimize Boot Skip to main content Link Menu Expand (external link) Document Search Copy Copied
Theme mode icon

Security System

Introduction

Ontimize security allows you to set permissions to each role that you assign to a specific user, so that different users can access (or not) the project services and methods.

Prerequisites

You can follow this tutorial using your own application, although for this example we will use an application created using the archetype that can be found on this page and with a REST service.

There are 2 options to follow this tutorial, clone the repository with the initial state and follow the tutorial step by step, or download the final example and see which files are new and which have been updated.

Initial project

/$ git clone https://github.com/ontimize/ontimize-examples 
+/ontimize-examples$ cd ontimize-examples
+/ontimize-examples$ git checkout boot-security-initial
+

Final example

/$ git clone https://github.com/ontimize/ontimize-examples 
+/ontimize-examples$ cd ontimize-examples
+/ontimize-examples$ git checkout boot-security
+

To simplify the code being written, three dots (…) may appear in some parts of the code. This indicates that there may be previous code before and after those dots.

Steps

Add new profile and user

We will add the following elements to the database:

  • New user
INSERT INTO TUSER VALUES('candidate','candidate','candidate','candidate',NULL,'99999999R',NULL,'2020-07-03 11:50:40.665000',NULL)
  • New user role
INSERT INTO TROLE VALUES(1,'candidate','<?xml version="1.0" encoding="UTF-8"?><security></security>')
  • Relationship between the new user and the new role
INSERT INTO TUSER_ROLE VALUES(1,1,'candidate')

Modify the service to add security

In the projectwiki-boot module we will add the annotation @EnableAspectJAutoProxy(proxyTargetClass = false) to the ServerApplication.java class and to each service method the @Secured({ PermissionsProviderSecured.SECURED }) annotation.

ServerApplication.java

package com.ontimize.projectwiki;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.context.annotation.EnableAspectJAutoProxy;
+
+
+@SpringBootApplication
+@EnableAspectJAutoProxy(proxyTargetClass = false)
+public class ServerApplication {
+
+	public static void main(String[] args) {
+		SpringApplication.run(ServerApplication.class, args);
+	}
+
+}

CustomerService.java

package com.ontimize.projectwiki.model.core.service;
+
+. . .
+import org.springframework.security.access.annotation.Secured;
+
+
+. . . 
+import com.ontimize.jee.common.security.PermissionsProviderSecured;
+
+. . .
+
+public class CandidateService implements ICandidateService {
+
+. . .
+
+	@Override
+	@Secured({ PermissionsProviderSecured.SECURED })
+	public EntityResult candidateQuery(Map<String, Object> keyMap, List<String> attrList)
+			throws OntimizeJEERuntimeException {
+		return this.daoHelper.query(this.candidateDao, keyMap, attrList);
+	}
+
+	@Override
+	@Secured({ PermissionsProviderSecured.SECURED })
+	@Transactional(rollbackFor = Exception.class)
+	public EntityResult candidateInsert(Map<String, Object> attrMap) throws OntimizeJEERuntimeException {
+		return this.daoHelper.insert(this.candidateDao, attrMap);
+	}
+
+	@Override
+	@Secured({ PermissionsProviderSecured.SECURED })
+	@Transactional(rollbackFor = Exception.class)
+	public EntityResult candidateUpdate(Map<String, Object> attrMap, Map<String, Object> keyMap)
+			throws OntimizeJEERuntimeException {
+		return this.daoHelper.update(this.candidateDao, attrMap, keyMap);
+	}
+
+	@Override
+	@Secured({ PermissionsProviderSecured.SECURED })
+	public EntityResult candidateDelete(Map<String, Object> keyMap) throws OntimizeJEERuntimeException {
+		return this.daoHelper.delete(this.candidateDao, keyMap);
+	}
+	
+}

Add permissions for methods

Once the methods have been noted, it is necessary to add the interface of the service and the method that we have noted to the table of the DB that stores those elements and to the table that indicates the methods for which the role has permission.

INSERT INTO TSERVER_PERMISSION VALUES('com.ontimize.projectwiki.api.core.service.ICandidateService/candidateQuery')
+INSERT INTO TSERVER_PERMISSION VALUES('com.ontimize.projectwiki.api.core.service.ICandidateService/candidateInsert')
+INSERT INTO TSERVER_PERMISSION VALUES('com.ontimize.projectwiki.api.core.service.ICandidateService/candidateUpdate')
+INSERT INTO TSERVER_PERMISSION VALUES('com.ontimize.projectwiki.api.core.service.ICandidateService/candidateDelete')
+
+INSERT INTO TROLE_SERVER_PERMISSION VALUES(0,1)
+INSERT INTO TROLE_SERVER_PERMISSION VALUES(0,2)
+INSERT INTO TROLE_SERVER_PERMISSION VALUES(0,3)
+INSERT INTO TROLE_SERVER_PERMISSION VALUES(0,4)

If we try to make requests through Postman to the service of CandidateService, changing the authentication by the user candidate and password candidate, it will give an error, since the user candidate does not belong to the role admin which is the only role that has permissions to make these queries.

diff --git a/v3/tutorial/exercise1.html b/v3/tutorial/exercise1.html new file mode 100644 index 0000000..1cb5843 --- /dev/null +++ b/v3/tutorial/exercise1.html @@ -0,0 +1,2 @@ + Preparing base project | Ontimize Boot Skip to main content Link Menu Expand (external link) Document Search Copy Copied
Theme mode icon

Preparando el proyecto base

Prerrequisitos

Para poder desarrollar este tutorial, debemos tener instalados en nuestro ordenador los elementos que se detallan en la página de prerrequisitos

¿Qué es Ontimize Boot?

Ontimize Boot es un framework que permite simplificar la configuración de un proyecto hecho con Ontimize EE, de una forma rápida y eficiente, reduciendo la necesidad de utilizar un Tomcat externo y centralizando toda la configuración de la aplicación en un solo fichero *.yml.

Crea una aplicación a partir del arquetipo

  • Para crear una aplicación a través el arquetipo, abrimos una terminal en nuestro equipo, en la ruta donde queramos ubicar el proyecto y ejecutamos el siguiente comando de Maven:

      mvn archetype:generate -DgroupId=com.ontimize -DartifactId=hr -Dversion=1.0.0-SNAPSHOT -Dpackage=com.ontimize.hr -DarchetypeGroupId=com.ontimize -DarchetypeArtifactId=ontimize-boot-backend-archetype -DarchetypeVersion=1.0.11 -DinteractiveMode=false
    +

Comprueba que la version del parámetro -DarchetypeVersion es la última versión disponible, en este caso, la versión: Ontimize Boot Archetype

Importar como un proyecto Maven

Abrimos nuestro IDE (en este caso, utilizaremos IntelliJ) y le damos a la opción de abrir un nuevo proyecto, seleccionamos la carpeta en la misma ruta donde hemos ejecutado el comando de Maven, luego la carpeta hr (la carpeta del proyecto es la misma que el valor del atributo -DartifactId del comando Maven)

tutorial_1.png

Una vez que la importación haya sido completada, el proyecto está listo para empezar a desarrollar la aplicación.

tutorial_2.png

Próximo tutorial arrow_forward

diff --git a/v3/tutorial/exercise10.html b/v3/tutorial/exercise10.html new file mode 100644 index 0000000..7381e17 --- /dev/null +++ b/v3/tutorial/exercise10.html @@ -0,0 +1,89 @@ + Use of complex queries | Ontimize Boot Skip to main content Link Menu Expand (external link) Document Search Copy Copied
Theme mode icon

Uso de consultas complejas

Introducción

En este ejercicio se modificarán los ficheros *.xml de los DAO para hacer consultas más complejas contra otras tablas de la base de datos.

Modificar el DAO para añadir una consulta compleja

Actualizaremos el DAO de OfferCandidatesDao para agregarle nueva información en el *.xml. En este caso, tratará de añadir una nueva consulta que refleje las otras tablas que se usan desde este DAO para relacionar las ofertas, los candidatos y el estado. Como esta tabla solo contiene identificadores, nuestra nueva consulta permitirá conocer todos los datos y no únicamente sus identificadores.

tutorial_12.png

En el fichero *.xml, agregaremos una nueva etiqueta Queries en el que añadiremos las nuevas consultas mediante la etiqueta Query. En dicha consulta, podremos indicarle la consulta a ejecutar a través de la etiqueta Sentence. Como queremos utilizar las columnas y condiciones que nos indiquen a través de la petición, usaremos los marcadores #COLUMNS# y #WHERE#. La utilización de la etiqueta AmbiguousColumn indicará cuáles son las columnas ambiguas (en este caso, la columna DESCRIPTION de OFFER_CANDIDATE_STATUS y OFFER, usando el nombre de DESC_STATUS para OFFER_CANDIDATE_STATUS). En caso de que queramos modificar la consulta que se realiza por defecto, el identificador de la etiqueta sería defaultQuery id="default". Como queremos mantener la consulta por defecto, pondremos otro identificador.

OfferCandidatesDao.xml

<?xml version="1.0" encoding="UTF-8"?>
+<JdbcEntitySetup
+        xmlns="http://www.ontimize.com/schema/jdbc"
+        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+        xsi:schemaLocation="http://www.ontimize.com/schema/jdbc http://www.ontimize.com/schema/jdbc/ontimize-jdbc-dao.xsd"
+        catalog="" schema="${mainschema}" table="OFFER_CANDIDATES"
+        datasource="mainDataSource" sqlhandler="dbSQLStatementHandler">
+    <DeleteKeys>
+        <Column>ID</Column>
+    </DeleteKeys>
+    <UpdateKeys>
+        <Column>ID</Column>
+    </UpdateKeys>
+    <GeneratedKey>ID</GeneratedKey>
+
+    <Queries>
+        <Query id="details">
+            <AmbiguousColumns>
+                <AmbiguousColumn name="DESC_STATUS" prefix="OS"
+                                 databaseName="DESCRIPTION"/>
+                <AmbiguousColumn name="OFF_STATUS" prefix="OCS"
+                                 databaseName="DESCRIPTION"/>
+            </AmbiguousColumns>
+            <Sentence>
+                <![CDATA[
+                     SELECT
+                      #COLUMNS#
+                     FROM
+                      PUBLIC.OFFER_CANDIDATES OC
+                     INNER JOIN PUBLIC.OFFER O ON
+                      OC.OFFER_ID = O.ID
+                     INNER JOIN PUBLIC.CANDIDATE C ON
+                      OC.CANDIDATE_ID = C.ID
+                     INNER JOIN PUBLIC.OFFER_STATUS OS ON
+                      O.OFFER_STATUS = OS.ID
+                     INNER JOIN PUBLIC.OFFER_CANDIDATE_STATUS OCS ON
+                      O.OFFER_STATUS = OCS.ID
+                     #WHERE#
+                ]]>
+            </Sentence>
+        </Query>
+    </Queries>
+</JdbcEntitySetup>

En el fichero java, añadiremos una nueva constante, que tendrá el mismo valor que el nombre del identificador que hemos establecido para la consulta.

OfferCandidatesDao.java

package com.ontimize.hr.model.core.dao;
+
+import com.ontimize.jee.server.dao.common.ConfigurationFile;
+import com.ontimize.jee.server.dao.jdbc.OntimizeJdbcDaoSupport;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Repository;
+
+@Repository("OfferCandidatesDao")
+@Lazy
+@ConfigurationFile(configurationFile = "dao/OfferCandidatesDao.xml", configurationFilePlaceholder = "dao/placeholders.properties")
+public class OfferCandidatesDao extends OntimizeJdbcDaoSupport {
+
+    public static final String ATTR_ID = "ID";
+    public static final String ATTR_OFFER_ID = "OFFER_ID";
+    public static final String ATTR_CANDIDATE_ID = "CANDIDATE_ID";
+    public static final String ATTR_OFFER_CANDIDATE_STATUS = "OFFER_CANDIDATE_STATUS";
+    public static final String QUERY_OFFER_DETAILS = "details";
+
+}

Modificar la interfaz y el servicio para añadir el nuevo método

Actualizaremos la interfaz IOfferService para añadir el nuevo método que realizará la consulta. En caso de ser la consulta por defecto, no sería necesario hacer ninguno de los pasos indicados a continuación.

Para simplificar el código que se está escribiendo, pueden aparecer tres puntos (…) en algunas partes del código. Esto indica que puede haber código anterior antes y después de esos puntos.

IOfferService.java

...
+
+public interface IOfferService {
+
+    ...
+
+    // OFFER CANDIDATES
+    ...
+
+    EntityResult offerCandidateDetailsQuery(Map<String, Object> keyMap, List<String> attrList) throws OntimizeJEERuntimeException;
+
+    // OFFER CANDIDATES STATUS
+    ...
+}

En el servicio, implementamos el nuevo método de la interfaz, utilizando el daoHelper para crear la consulta, pero añadiendo un nuevo parámetro a continuación de la lista de columnas a consultar, que será el identificador de la consulta que hemos creado en el DAO (y que hemos asociado a una constante en el fichero java correspondiente).

OfferService.java

...
+
+@Service("OfferService")
+@Lazy
+public class OfferService implements IOfferService {
+
+    ...
+
+    @Override
+    public EntityResult offerCandidateDetailsQuery(Map<String, Object> keyMap, List<String> attrList)
+            throws OntimizeJEERuntimeException {
+        return this.daoHelper.query(this.offerCandidatesDao, keyMap, attrList, OfferCandidatesDao.QUERY_OFFER_DETAILS);
+    }
+
+    ...
+}

Podemos probar esta nueva consulta con la ayuda de Postman

arrow_back Tutorial anterior Próximo tutorial arrow_forward

diff --git a/v3/tutorial/exercise11.html b/v3/tutorial/exercise11.html new file mode 100644 index 0000000..ad77fec --- /dev/null +++ b/v3/tutorial/exercise11.html @@ -0,0 +1,197 @@ + Use server permission | Ontimize Boot Skip to main content Link Menu Expand (external link) Document Search Copy Copied
Theme mode icon

Uso de permisos en el servidor

Introducción

En este ejercicio proveeremos de una capa de permisos al backend, permitiendo que los métodos que elijamos solo puedan ser ejecutados por determinados roles de usuario. En este ejercicio, crearemos un nuevo usuario que esté asociado a un nuevo rol, pero que no pueda ejecutar ninguna de las peticiones asociadas al servicio de Offers.

Añadir nuevo perfil y usuario

Añadiremos los siguientes elementos a la BD:

Código SQL

-- Añadimos un nuevo usuario
+INSERT INTO TUSER VALUES('candidate','candidate','candidate','candidate',NULL,'99999999R',NULL,'2020-07-03 11:50:40.665000',NULL)
+-- Añadimos un nuevo rol de usuario
+INSERT INTO TROLE VALUES(1,'candidate','<?xml version="1.0" encoding="UTF-8"?><security></security>')
+-- Indicamos la relación entre el nuevo usuario y el nuevo rol
+INSERT INTO TUSER_ROLE VALUES(1,1,'candidate')

Modificar el servicio para añadir seguridad

En el módulo boot añadiremos la anotación @EnableAspectJAutoProxy(proxyTargetClass = false) a la clase ServerApplicaction.java y añadiremos a cada método del servicio la anotación @Secured({ PermissionsProviderSecured.SECURED })

ServerApplication.java

package com.ontimize.hr;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.context.annotation.EnableAspectJAutoProxy;
+
+@EnableAspectJAutoProxy(proxyTargetClass = false)
+@SpringBootApplication
+public class ServerApplication {
+
+    public static void main(String[] args) {
+        SpringApplication.run(ServerApplication.class, args);
+    }
+}

OfferService.java

package com.ontimize.hr.model.core.service;
+
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.security.access.annotation.Secured;
+import org.springframework.stereotype.Service;
+
+import com.ontimize.hr.api.core.service.IOfferService;
+import com.ontimize.hr.model.core.dao.OfferCandidateStatusDao;
+import com.ontimize.hr.model.core.dao.OfferCandidatesDao;
+import com.ontimize.hr.model.core.dao.OfferDao;
+import com.ontimize.hr.model.core.dao.OfferStatusDao;
+import com.ontimize.jee.common.dto.EntityResult;
+import com.ontimize.jee.common.exceptions.OntimizeJEERuntimeException;
+import com.ontimize.jee.common.security.PermissionsProviderSecured;
+import com.ontimize.jee.server.dao.DefaultOntimizeDaoHelper;
+
+@Service("OfferService")
+@Lazy
+public class OfferService implements IOfferService {
+
+    @Autowired
+    private OfferDao offerDao;
+    @Autowired
+    private OfferStatusDao offerStatusDao;
+    @Autowired
+    private OfferCandidatesDao offerCandidatesDao;
+    @Autowired
+    private OfferCandidateStatusDao offerCandidateStatusDao;
+    @Autowired
+    private DefaultOntimizeDaoHelper daoHelper;
+
+    @Override
+    @Secured({PermissionsProviderSecured.SECURED})
+    public EntityResult offerQuery(Map<String, Object> keyMap, List<String> attrList)
+            throws OntimizeJEERuntimeException {
+        return this.daoHelper.query(this.offerDao, keyMap, attrList);
+    }
+
+    @Override
+    @Secured({PermissionsProviderSecured.SECURED})
+    public EntityResult offerInsert(Map<String, Object> attrMap) throws OntimizeJEERuntimeException {
+        return this.daoHelper.insert(this.offerDao, attrMap);
+    }
+
+    @Override
+    @Secured({PermissionsProviderSecured.SECURED})
+    public EntityResult offerUpdate(Map<String, Object> attrMap, Map<String, Object> keyMap)
+            throws OntimizeJEERuntimeException {
+        return this.daoHelper.update(this.offerDao, attrMap, keyMap);
+    }
+
+    @Override
+    @Secured({PermissionsProviderSecured.SECURED})
+    public EntityResult offerDelete(Map<String, Object> keyMap) throws OntimizeJEERuntimeException {
+        return this.daoHelper.delete(this.offerDao, keyMap);
+    }
+
+    @Override
+    @Secured({PermissionsProviderSecured.SECURED})
+    public EntityResult offerStatusQuery(Map<String, Object> keyMap, List<String> attrList)
+            throws OntimizeJEERuntimeException {
+        return this.daoHelper.query(this.offerStatusDao, keyMap, attrList);
+    }
+
+    @Override
+    @Secured({PermissionsProviderSecured.SECURED})
+    public EntityResult offerStatusInsert(Map<String, Object> attrMap) throws OntimizeJEERuntimeException {
+        return this.daoHelper.insert(this.offerStatusDao, attrMap);
+    }
+
+    @Override
+    @Secured({PermissionsProviderSecured.SECURED})
+    public EntityResult offerStatusUpdate(Map<String, Object> attrMap, Map<String, Object> keyMap)
+            throws OntimizeJEERuntimeException {
+        return this.daoHelper.update(this.offerStatusDao, attrMap, keyMap);
+    }
+
+    @Override
+    @Secured({PermissionsProviderSecured.SECURED})
+    public EntityResult offerStatusDelete(Map<String, Object> keyMap) throws OntimizeJEERuntimeException {
+        return this.daoHelper.delete(this.offerStatusDao, keyMap);
+    }
+
+    @Override
+    @Secured({PermissionsProviderSecured.SECURED})
+    public EntityResult offerCandidateQuery(Map<String, Object> keyMap, List<String> attrList)
+            throws OntimizeJEERuntimeException {
+        return this.daoHelper.query(this.offerCandidatesDao, keyMap, attrList);
+    }
+
+    @Override
+    @Secured({PermissionsProviderSecured.SECURED})
+    public EntityResult offerCandidateDetailsQuery(Map<String, Object> keyMap, List<String> attrList)
+            throws OntimizeJEERuntimeException {
+        return this.daoHelper.query(this.offerCandidatesDao, keyMap, attrList, OfferCandidatesDao.QUERY_OFFER_DETAILS);
+    }
+
+    @Override
+    @Secured({PermissionsProviderSecured.SECURED})
+    public EntityResult offerCandidateInsert(Map<String, Object> attrMap) throws OntimizeJEERuntimeException {
+        return this.daoHelper.insert(this.offerCandidatesDao, attrMap);
+    }
+
+    @Override
+    @Secured({PermissionsProviderSecured.SECURED})
+    public EntityResult offerCandidateUpdate(Map<String, Object> attrMap, Map<String, Object> keyMap)
+            throws OntimizeJEERuntimeException {
+        return this.daoHelper.update(this.offerCandidatesDao, attrMap, keyMap);
+    }
+
+    @Override
+    @Secured({PermissionsProviderSecured.SECURED})
+    public EntityResult offerCandidateDelete(Map<String, Object> keyMap) throws OntimizeJEERuntimeException {
+        return this.daoHelper.delete(this.offerCandidatesDao, keyMap);
+    }
+
+    @Override
+    @Secured({PermissionsProviderSecured.SECURED})
+    public EntityResult offerCandidateStatusQuery(Map<String, Object> keyMap, List<String> attrList)
+            throws OntimizeJEERuntimeException {
+        return this.daoHelper.query(this.offerCandidateStatusDao, keyMap, attrList);
+    }
+
+    @Override
+    @Secured({PermissionsProviderSecured.SECURED})
+    public EntityResult offerCandidateStatusInsert(Map<String, Object> attrMap) throws OntimizeJEERuntimeException {
+        return this.daoHelper.insert(this.offerCandidateStatusDao, attrMap);
+    }
+
+    @Override
+    @Secured({PermissionsProviderSecured.SECURED})
+    public EntityResult offerCandidateStatusUpdate(Map<String, Object> attrMap, Map<String, Object> keyMap)
+            throws OntimizeJEERuntimeException {
+        return this.daoHelper.update(this.offerCandidateStatusDao, attrMap, keyMap);
+    }
+
+    @Override
+    @Secured({PermissionsProviderSecured.SECURED})
+    public EntityResult offerCandidateStatusDelete(Map<String, Object> keyMap) throws OntimizeJEERuntimeException {
+        return this.daoHelper.delete(this.offerCandidateStatusDao, keyMap);
+    }
+}

Añadir los permisos para los métodos

Una vez anotados los métodos, es necesario añadir el servicio y el método que hemos anotado a la tabla de la BD que almacena dichos elementos y a la tabla que indica los métodos para los cuales el rol tiene permiso.

Código SQL

INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.hr.api.core.service.IOfferService/offerQuery')
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.hr.api.core.service.IOfferService/offerInsert')
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.hr.api.core.service.IOfferService/offerUpdate')
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.hr.api.core.service.IOfferService/offerDelete')
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.hr.api.core.service.IOfferService/offerStatusQuery')
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.hr.api.core.service.IOfferService/offerStatusInsert')
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.hr.api.core.service.IOfferService/offerStatusUpdate')
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.hr.api.core.service.IOfferService/offerStatusDelete')
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.hr.api.core.service.IOfferService/offerCandidateQuery')
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.hr.api.core.service.IOfferService/offerCandidateDetailsQuery')
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.hr.api.core.service.IOfferService/offerCandidateInsert')
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.hr.api.core.service.IOfferService/offerCandidateUpdate')
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.hr.api.core.service.IOfferService/offerCandidateDelete')
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.hr.api.core.service.IOfferService/offerCandidateStatusQuery')
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.hr.api.core.service.IOfferService/offerCandidateStatusInsert')
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.hr.api.core.service.IOfferService/offerCandidateStatusUpdate')
+INSERT INTO TSERVER_PERMISSION (PERMISSION_NAME) VALUES('com.ontimize.hr.api.core.service.IOfferService/offerCandidateStatusDelete')
+INSERT INTO TROLE_SERVER_PERMISSION (ID_ROLENAME,ID_SERVER_PERMISSION) VALUES(0,1)
+INSERT INTO TROLE_SERVER_PERMISSION (ID_ROLENAME,ID_SERVER_PERMISSION) VALUES(0,2)
+INSERT INTO TROLE_SERVER_PERMISSION (ID_ROLENAME,ID_SERVER_PERMISSION) VALUES(0,3)
+INSERT INTO TROLE_SERVER_PERMISSION (ID_ROLENAME,ID_SERVER_PERMISSION) VALUES(0,4)
+INSERT INTO TROLE_SERVER_PERMISSION (ID_ROLENAME,ID_SERVER_PERMISSION) VALUES(0,5)
+INSERT INTO TROLE_SERVER_PERMISSION (ID_ROLENAME,ID_SERVER_PERMISSION) VALUES(0,6)
+INSERT INTO TROLE_SERVER_PERMISSION (ID_ROLENAME,ID_SERVER_PERMISSION) VALUES(0,7)
+INSERT INTO TROLE_SERVER_PERMISSION (ID_ROLENAME,ID_SERVER_PERMISSION) VALUES(0,8)
+INSERT INTO TROLE_SERVER_PERMISSION (ID_ROLENAME,ID_SERVER_PERMISSION) VALUES(0,9)
+INSERT INTO TROLE_SERVER_PERMISSION (ID_ROLENAME,ID_SERVER_PERMISSION) VALUES(0,10)
+INSERT INTO TROLE_SERVER_PERMISSION (ID_ROLENAME,ID_SERVER_PERMISSION) VALUES(0,11)
+INSERT INTO TROLE_SERVER_PERMISSION (ID_ROLENAME,ID_SERVER_PERMISSION) VALUES(0,12)
+INSERT INTO TROLE_SERVER_PERMISSION (ID_ROLENAME,ID_SERVER_PERMISSION) VALUES(0,13)
+INSERT INTO TROLE_SERVER_PERMISSION (ID_ROLENAME,ID_SERVER_PERMISSION) VALUES(0,14)
+INSERT INTO TROLE_SERVER_PERMISSION (ID_ROLENAME,ID_SERVER_PERMISSION) VALUES(0,15)
+INSERT INTO TROLE_SERVER_PERMISSION (ID_ROLENAME,ID_SERVER_PERMISSION) VALUES(0,16)
+INSERT INTO TROLE_SERVER_PERMISSION (ID_ROLENAME,ID_SERVER_PERMISSION) VALUES(0,17)

Si tratamos de realizar mediante Postman peticiones en el servicio de OfferService cambiando la autenticación por el usuario candidate y contraseña candidate, dará un error, ya que el usuario candidate no pertenece al rol admin que es el único rol que tiene permisos para realizar esas consultas.

arrow_back Tutorial anterior

diff --git a/v3/tutorial/exercise2.html b/v3/tutorial/exercise2.html new file mode 100644 index 0000000..bf0ab99 --- /dev/null +++ b/v3/tutorial/exercise2.html @@ -0,0 +1 @@ + Structure of an Ontimize Boot application | Ontimize Boot Skip to main content Link Menu Expand (external link) Document Search Copy Copied
Theme mode icon

Estructura de una aplicación Ontimize Boot

Estructura

Esta sección explicará la estructura de una aplicación basada en Ontimize Boot.

  • hr-api: este módulo contiene las interfaces relacionadas con los servicios invocados por los controladores REST. Los servicios implementan todos los métodos declarados en sus interfaces.
  • hr-boot: este módulo contiene el lanzador principal de la aplicación y un fichero de configuración *.yml, que se utiliza para configurar la aplicación, conexión, base de datos, parámetros de lanzamiento, seguridad…
  • hr-model: este módulo contiene la base de datos en HSQLDB, los archivos del DAO de la aplicación (ambos, tanto *.xml como *.java) y la implementación de los servicios cuyas interfaces están definidas en el módulo hr-api.
  • hr-ws: este módulo contiene los controladores REST para los servicios implementados en el módulo hr-model.

arrow_back Tutorial anterior Próximo tutorial arrow_forward

diff --git a/v3/tutorial/exercise3.html b/v3/tutorial/exercise3.html new file mode 100644 index 0000000..2e500df --- /dev/null +++ b/v3/tutorial/exercise3.html @@ -0,0 +1,127 @@ + Understanding the application.yml file | Ontimize Boot Skip to main content Link Menu Expand (external link) Document Search Copy Copied
Theme mode icon

Entendiendo el fichero application.yml

Introducción

Un fichero YAML, de extensión *.yml ó *.yaml, es un fichero con una interpretación sencilla en el que podemos escribir pares de datos de manera adecuada mediante combinaciones de listas, mapas y datos simples. Otra de las características más importantes de estos ficheros es la indentación. Es importante escribir estos elementos indentados correctamente, dado que de estar mal indentado, no se podrá parsear correctamente.

Descripción del fichero application.yml

application.yml

endpoints:
+   api:
+      # Endpoints de Spring Boot activos
+      enabled: true
+logging:
+   level:
+      # Nivel de log por defecto del servidro establecido al nivel de INFO
+      root: info
+ontimize:
+   corsfilter:
+      # Habilitado los filtros de CORS
+      enabled: true
+   globalcors:
+      # Configuración global de CORS
+      cors-configurations:
+         '[/**]':
+            # Permitir diferentes orígenes
+            allowed-origins: "*"
+            # Permitir cabeceras
+            allowed-headers: "*"
+            # Cabeceras expuestas
+            exposed-headers: ["X-Auth-Token","Content-disposition","X-Requested-With"]
+            # Métodos HTTP permitidos
+            allowed-methods:
+            - GET
+            - POST
+            - PUT
+            - OPTIONS
+            - DELETE
+   jdbc:
+      # Convención de nombre de columnas
+      name-convention: upper
+      # Handler de SQL
+      sqlhandler: hsqldb
+      sql-condition-processor:
+         # Uso de mayúsculas
+         uppper-string: true
+         # Comparación de cadenas en caso de condición LIKE en mayúscula
+         upper-like: true
+   security:
+      # Modo de seguridad por defecto
+      mode: default
+      # Configuración de la contraseña del token de JWT. DEBE Cambiarse.
+      jwt:
+         password: cH4nG3_M3** # ← CHANGE THIS VALUE
+      # Rutas a ignorar la seguridad
+      ignore-paths: /app/**
+      # Configurar las columnas del rol de usuario
+      role-information-service:
+         # Repositorio que almacenan los roles
+         role-repository: UserRoleDao
+         # Nombre de la columna que tiene el nombre del rol
+         role-name-column: ROLENAME
+         # Identificador de la query para la consulta de permisos en el servidor
+         server-permission-query-id: serverPermissions
+         # Nombre de la columna que contiene el nombre del permiso
+         server-permission-name-column: PERMISSION_NAME
+         # Identificador de la query para la consulta de permisos en el cliente
+         client-permission-query-id: clientPermissions
+         # Nombre de la columna que contiene los permisos del cliente
+         client-permission-column: XMLCLIENTPERMISSION
+      # Información sobre el usuario
+      user-information-service:
+         #Repositorio que almacena los usuarios de la aplicación
+         user-repository: UserDao
+         # Nombre de la columna con el nombre de usuario
+         user-login-column: USER_
+         # Nombre de la columnas con la contraseña
+         user-password-column: PASSWORD
+         # Indentificador de la query para iniciar sesión
+         query-id: login
+         # Otras columnas de consulta
+         other-data:
+            - NAME
+            - SURNAME
+            - EMAIL
+            - NIF
+            - USERBLOCKED
+            - LASTPASSWORDUPDATE
+            - FIRSTLOGIN
+      #Información sobre el repositorio que enlaza usuarios y roles
+      user-role-information-service:
+         # Nombre del repositorio
+         user-role-repository: UserRoleDao
+         # Identificador de la consulta
+         query-id: userRole
+         # Columna que almacena al usuario
+         role-login-column: USER_
+         # Columna que almacena el nombre del rol
+         role-name-column: ROLENAME
+server:
+   # Puerto del servidor
+   port: 33333
+   tomcat:
+      # Codificación de la URI
+      uri-encoding: UTF-8
+   compression:
+      # Habilitar la compresión de datos
+      enabled: true
+      # Tipos mime
+      mime-types: application/json, application/xml
+spring:
+   # Origen de los datos (Conexión con la DB)
+   datasource:
+      #Driver del JDBC
+      driver-class-name: org.hsqldb.jdbcDriver
+      # URL de conexión
+      jdbc-url: jdbc:hsqldb:hsql://localhost:9013/templateDB
+      # Nombre de usuario de la BD
+      username: SA
+      # Contraseña del usuario de la BD
+      password:
+      # Tamaño inicial
+      initial-size: 10
+      # Validación
+      test-on-borrow: true
+   main:
+      # Eliminar el banner de inicio en la consola
+      banner-mode: 'off'
+   session:
+      # Almacenar la sesión en spring
+      store-type: none
+   autoconfigure:
+      #Elimina los ficheros de autoconfiguración de Spring Boot
+      exclude: |
+         org.springframework.boot.autoconfigure.security.SecurityAutoConfiguration, org.springframework.boot.actuate.autoconfigure.ManagementWebSecurityAutoConfiguration, org.springframework.boot.autoconfigure.security.FallbackWebSecurityAutoConfiguration
+        

arrow_back Tutorial anterior Próximo tutorial arrow_forward

diff --git a/v3/tutorial/exercise4.html b/v3/tutorial/exercise4.html new file mode 100644 index 0000000..e61c6de --- /dev/null +++ b/v3/tutorial/exercise4.html @@ -0,0 +1,239 @@ + Creating DAO, Service and Controller | Ontimize Boot Skip to main content Link Menu Expand (external link) Document Search Copy Copied
Theme mode icon

Crear el DAO, Servicio y Controlador

Introducción

En este tutorial vamos a crear un backend para una aplicación de recursos humanos desde cero, incluyendo la base de datos. La interfaz no se realizará en este tutorial. Al final de este curso, como repaso, se recomienda crear una interfaz adecuada para esta aplicación con Ontimize Web, utilizando el tutorial de Ontimize Web de esta wiki. Este ejercicio está centrado en la creación desde cero de una tabla de base de datos, DAO, servicio y controlador para que puedan ser consumidos a través de una petición REST.

Lanzar la base de datos

Para lanzar la base de datos, es necesario hacer un “Maven Install” en el proyecto, para que cree un fichero *.jar con el contenido del módulo hr-model y el lanzador de la base de datos pueda ser ejecutado por un lanzador Maven. Para hacer esto, clic derecho sobre el icono de Maven 1, clic en “Execute Maven goal2 y escribimos el comando mvn install 3. El recuadro rojo tiene que indicar Project, lo que indica que este comando se ejecutará a nivel del proyecto base y sobre cada uno de los módulos.

tutorial_3.png

La salida de la consola de comandos debe mostrar un BUILD SUCCESS.

tutorial_4.png

Una vez completada la instalación de Maven del proyecto padre, podremos crear un lanzador Maven para la base de datos. Clic derecho sobre el desplegable de los lanzadores 1 (en este caso, sobre el icono ▾) y selecionamos Edit Configurations…. En esta ventana, clic en Add New Configuration 2, seleccionamos configuración de Maven y rellenamos los datos como aparecen a continuación:

  • Name: Run database (el nombre del lanzador)
  • Run: exec:java (la instrucción Maven que se ejecutará)
  • Working directory: hr-model (el módulo que ejecutará la instrucción)
  • Profiles: run_database (el perfil que se añadirá a la ejecución de la instrucción)

tutorial_5.png

Una vez terminado podemos darle a OK para guardar el lanzador y ya lo tendremos disponible de forma rápida en la parte de los lanzadores. Haciendo clic en el nombre del lanzador, podremos ejecutar la base de datos. En el futuro, cuando tengamos más lanzadores, podremos utilizar el menú desplegable para elegir que queremos ejecutar. Por el momento, lanzaremos la base de datos, dándole al botón de inicio 1.

tutorial_6.png

La base de datos que se lanza tiene los siguientes parámetros de conexión:

Parámetros de conexión

Host: localhost
Port: 9013
Database: templateDB
User: SA
Password: <vacía>
JDBC URL: jdbc:hsqldb:hsql://localhost:9013/templateDB

Método de lanzamiento alternativo

Se puede lanzar también si abrimos la ventana de “Execute Maven goal”, especificamos el módulo sobre el que tenemos que ejecutar el comando Maven (en este caso, hr-model) y ejecutamos:

mvn exec:java -Prun_database

tutorial_7.png

Crear una tabla de candidatos

Creamos la tabla de candidatos para nuestra aplicación de recursos humanos. Esta tabla contendrá múltiples columnas que serán clave foránea de otras tablas, como puedan ser las columnas de STATUS u ORIGIN.

Este es el código SQL para la creación de la tabla.

Código SQL

CREATE TABLE CANDIDATE (
+    ID INTEGER IDENTITY PRIMARY KEY,
+    PHOTO VARBINARY(16777216) NULL,
+    NAME NVARCHAR(255) NULL,
+    SURNAME NVARCHAR(255) NULL,
+    BIRTHDAY DATE NULL,
+    DNI NVARCHAR(255) NULL,
+    PHONE NVARCHAR(255) NULL,
+    EMAIL NVARCHAR(255) NULL,
+    EDUCATION INTEGER NULL,
+    SPECIALTIES NVARCHAR(255) NULL,
+    STATUS INTEGER NULL,
+    ORIGIN INTEGER NULL,
+    WAGE_LEVEL NUMERIC NULL,
+    EXPERIENCE_LEVEL INTEGER NULL,
+    PROFILE INTEGER NULL,
+    COMMENT NVARCHAR(255) NULL,
+    LINKEDIN NVARCHAR(255) NULL
+);

Insertaremos datos de prueba sólo en aquellas columnas que sean de tipo alfanumérico (recordemos que los elementos numéricos estarán enlazados como claves de otras tablas). Para realizar esta tarea podemos utilizar una herramienta de administración de bases de datos como por ejemplo DBeaver.

Código SQL

INSERT INTO CANDIDATE (PHOTO,NAME,SURNAME,BIRTHDAY,DNI,PHONE,EMAIL,EDUCATION,SPECIALTIES,STATUS,ORIGIN,WAGE_LEVEL,EXPERIENCE_LEVEL,PROFILE,COMMENT,LINKEDIN) VALUES (
+NULL, 'Nonnah', 'Baden', '1994-12-24', '71958681F', '591-646-5605', 'nbaden0@plala.or.jp', NULL, 'Erlang', NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO CANDIDATE (PHOTO,NAME,SURNAME,BIRTHDAY,DNI,PHONE,EMAIL,EDUCATION,SPECIALTIES,STATUS,ORIGIN,WAGE_LEVEL,EXPERIENCE_LEVEL,PROFILE,COMMENT,LINKEDIN) VALUES (
+NULL, 'Claiborn', 'Shawell', '1989-08-01', '28224678K', '909-780-3858', 'cshawell1@chron.com', NULL, 'JavaFX', NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO CANDIDATE (PHOTO,NAME,SURNAME,BIRTHDAY,DNI,PHONE,EMAIL,EDUCATION,SPECIALTIES,STATUS,ORIGIN,WAGE_LEVEL,EXPERIENCE_LEVEL,PROFILE,COMMENT,LINKEDIN) VALUES (
+NULL, 'Anne-marie', 'Frampton', '1985-12-17', '48230973L', '466-225-8193', 'aframpton2@addtoany.com', NULL, 'Matlab', NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO CANDIDATE (PHOTO,NAME,SURNAME,BIRTHDAY,DNI,PHONE,EMAIL,EDUCATION,SPECIALTIES,STATUS,ORIGIN,WAGE_LEVEL,EXPERIENCE_LEVEL,PROFILE,COMMENT,LINKEDIN) VALUES (
+NULL, 'Aron', 'Wiseman', '1981-09-08', '75760366E', '969-405-2922', 'awiseman3@google.com.br', NULL, 'Compliance', NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO CANDIDATE (PHOTO,NAME,SURNAME,BIRTHDAY,DNI,PHONE,EMAIL,EDUCATION,SPECIALTIES,STATUS,ORIGIN,WAGE_LEVEL,EXPERIENCE_LEVEL,PROFILE,COMMENT,LINKEDIN) VALUES (
+NULL, 'Hyatt', 'Faircley', '1977-05-25', '14709704P', '375-972-2164', 'hfaircley4@sbwire.com', NULL, 'Haskell', NULL, NULL, '45000', NULL, NULL, 'nulla pede ullamcorper augue a suscipit nulla elit ac nulla', NULL);
+INSERT INTO CANDIDATE (PHOTO,NAME,SURNAME,BIRTHDAY,DNI,PHONE,EMAIL,EDUCATION,SPECIALTIES,STATUS,ORIGIN,WAGE_LEVEL,EXPERIENCE_LEVEL,PROFILE,COMMENT,LINKEDIN) VALUES (
+NULL, 'Daune', 'Woolham', '1978-06-21', '50472212T', '675-891-2878', 'dwoolham5@stanford.edu', NULL, 'React', NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO CANDIDATE (PHOTO,NAME,SURNAME,BIRTHDAY,DNI,PHONE,EMAIL,EDUCATION,SPECIALTIES,STATUS,ORIGIN,WAGE_LEVEL,EXPERIENCE_LEVEL,PROFILE,COMMENT,LINKEDIN) VALUES (
+NULL, 'Kaila', 'Earwicker', '1988-04-26', '90445706T', '642-759-7346', 'kearwicker6@sogou.com', NULL, 'HTML5', NULL, NULL, '23000', NULL, NULL, 'ut ultrices vel augue vestibulum ante ipsum primis in faucibus', NULL);
+INSERT INTO CANDIDATE (PHOTO,NAME,SURNAME,BIRTHDAY,DNI,PHONE,EMAIL,EDUCATION,SPECIALTIES,STATUS,ORIGIN,WAGE_LEVEL,EXPERIENCE_LEVEL,PROFILE,COMMENT,LINKEDIN) VALUES (
+NULL, 'Felisha', 'Rahl', '1990-05-28', '76140170G', '712-914-9094', 'frahl7@ox.ac.uk', NULL, 'Docker', NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO CANDIDATE (PHOTO,NAME,SURNAME,BIRTHDAY,DNI,PHONE,EMAIL,EDUCATION,SPECIALTIES,STATUS,ORIGIN,WAGE_LEVEL,EXPERIENCE_LEVEL,PROFILE,COMMENT,LINKEDIN) VALUES (
+NULL, 'Charla', 'Note', '1981-11-27', '41685146S', '284-789-0755', 'cnote8@cafepress.com', NULL, 'MS Office', NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO CANDIDATE (PHOTO,NAME,SURNAME,BIRTHDAY,DNI,PHONE,EMAIL,EDUCATION,SPECIALTIES,STATUS,ORIGIN,WAGE_LEVEL,EXPERIENCE_LEVEL,PROFILE,COMMENT,LINKEDIN) VALUES (
+NULL, 'Candie', 'Ibert', '1978-09-24', '00273718H', '299-578-6249', 'cibert9@apple.com', NULL, 'Taxation', NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO CANDIDATE (PHOTO,NAME,SURNAME,BIRTHDAY,DNI,PHONE,EMAIL,EDUCATION,SPECIALTIES,STATUS,ORIGIN,WAGE_LEVEL,EXPERIENCE_LEVEL,PROFILE,COMMENT,LINKEDIN) VALUES (
+NULL, 'Kelcy', 'Lathleiffure', '1991-04-19', '73696168M', '890-133-5541', 'klathleiffurea@miibeian.gov.cn', NULL, 'Ruby', NULL, NULL, '33500', NULL, NULL, 'nulla sed accumsan felis ut at dolor quis odio consequat', NULL);
+INSERT INTO CANDIDATE (PHOTO,NAME,SURNAME,BIRTHDAY,DNI,PHONE,EMAIL,EDUCATION,SPECIALTIES,STATUS,ORIGIN,WAGE_LEVEL,EXPERIENCE_LEVEL,PROFILE,COMMENT,LINKEDIN) VALUES (
+NULL, 'Kaleena', 'Jonk', '1994-09-28', '76619635B', '956-957-8235', 'kjonkb@e-recht24.de', NULL, 'Design', NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO CANDIDATE (PHOTO,NAME,SURNAME,BIRTHDAY,DNI,PHONE,EMAIL,EDUCATION,SPECIALTIES,STATUS,ORIGIN,WAGE_LEVEL,EXPERIENCE_LEVEL,PROFILE,COMMENT,LINKEDIN) VALUES (
+NULL, 'Tami', 'Scorton', '1977-09-25', '12571372D', '599-466-8570', 'tscortonc@photobucket.com', NULL, 'Compliance', NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO CANDIDATE (PHOTO,NAME,SURNAME,BIRTHDAY,DNI,PHONE,EMAIL,EDUCATION,SPECIALTIES,STATUS,ORIGIN,WAGE_LEVEL,EXPERIENCE_LEVEL,PROFILE,COMMENT,LINKEDIN) VALUES (
+NULL, 'Davin', 'Frowde', '1984-03-06', '96529753H', '396-303-0612', 'dfrowded@webs.com', NULL, 'React', NULL, NULL, '22000', NULL, NULL, 'porta volutpat erat quisque erat eros viverra eget congue eget semper', NULL);
+INSERT INTO CANDIDATE (PHOTO,NAME,SURNAME,BIRTHDAY,DNI,PHONE,EMAIL,EDUCATION,SPECIALTIES,STATUS,ORIGIN,WAGE_LEVEL,EXPERIENCE_LEVEL,PROFILE,COMMENT,LINKEDIN) VALUES (
+NULL, 'Kial', 'Titlow', '1980-05-06', '27680562Q', '591-499-8814', 'ktitlowe@telegraph.co.uk', NULL, 'HTML5', NULL, NULL, NULL, NULL, NULL, NULL, NULL);

Creación de los ficheros DAO

Ahora que tenemos una tabla con datos de prueba en la base de datos, vamos a crear un DAO (Data Access Object) en el módulo de hr-model para que sirva como modelo de esta tabla de la base de datos. Los DAO están compuestos por 2 ficheros: un fichero con extensión *.xml y un fichero *.java.

En nuestro fichero *.xml indicaremos la tabla de la base de datos, desde donde recogemos la información, para la cual hacemos el DAO y el esquema al que pertenece la tabla.

CandidateDao.xml

<?xml version="1.0" encoding="UTF-8"?>
+<JdbcEntitySetup
+        xmlns="http://www.ontimize.com/schema/jdbc"
+        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+        xsi:schemaLocation="http://www.ontimize.com/schema/jdbc http://www.ontimize.com/schema/jdbc/ontimize-jdbc-dao.xsd"
+        catalog="" schema="${mainschema}" table="CANDIDATE"
+        datasource="mainDataSource" sqlhandler="dbSQLStatementHandler">
+    <DeleteKeys>
+        <Column>ID</Column>
+    </DeleteKeys>
+    <UpdateKeys>
+        <Column>ID</Column>
+    </UpdateKeys>
+    <GeneratedKey>ID</GeneratedKey>
+</JdbcEntitySetup>

En el fichero *.java indicamos que se trata de un repositorio cuyo nombre será CandidateDao, mediante la anotación @Repository. Con la anotación @Lazy, indicaremos que la carga se retrase hasta que sea completamente necesaria (mejorando de esa manera el rendimiento), y la anotación @ConfigurationFile nos permite configurar este DAO usando el fichero *.xml y un fichero adicional donde pueden almacenarse algunas características comunes a varios DAO, como el esquema al que pertenecen.

CandidateDao.java

package com.ontimize.hr.model.core.dao;
+
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Repository;
+
+import com.ontimize.jee.server.dao.common.ConfigurationFile;
+import com.ontimize.jee.server.dao.jdbc.OntimizeJdbcDaoSupport;
+
+@Repository("CandidateDao")
+@Lazy
+@ConfigurationFile(configurationFile = "dao/CandidateDao.xml", configurationFilePlaceholder = "dao/placeholders.properties")
+public class CandidateDao extends OntimizeJdbcDaoSupport {
+
+    public static final String ATTR_ID = "ID";
+    public static final String ATTR_PHOTO = "PHOTO";
+    public static final String ATTR_NAME = "NAME";
+    public static final String ATTR_SURNAME = "SURNAME";
+    public static final String ATTR_BIRTHDAY = "BIRTHDAY";
+    public static final String ATTR_DNI = "DNI";
+    public static final String ATTR_PHONE = "PHONE";
+    public static final String ATTR_EMAIL = "EMAIL";
+    public static final String ATTR_EDUCATION = "EDUCATION";
+    public static final String ATTR_SPECIALTIES = "SPECIALTIES";
+    public static final String ATTR_STATUS = "STATUS";
+    public static final String ATTR_ORIGIN = "ORIGIN";
+    public static final String ATTR_WAGE_LEVEL = "WAGE_LEVEL";
+    public static final String ATTR_EXPERIENCE_LEVEL = "EXPERIENCE_LEVEL";
+    public static final String ATTR_PROFILE = "PROFILE";
+    public static final String ATTR_COMMENT = "COMMENT";
+    public static final String ATTR_LINKEDIN = "LINKEDIN";
+}

Creación de la interfaz del servicio

Con el DAO preparado, es necesario crear una interfaz pública para que sea implementada por un servicio. Esta interfaz estará en el módulo hr-api, la cual tendrá, de momento, los métodos CRUD (Create, Read, Update, Delete) básicos para el DAO que se ha creado. Estos métodos tendrán una raíz común que decidiremos según el DAO al que pertenezcan (en este caso, candidate) y un sufijo que dependerá de la acción que se vaya a realizar (Query, Insert, Update, Delete).

ICandidateService.java

package com.ontimize.hr.api.core.service;
+
+import com.ontimize.jee.common.dto.EntityResult;
+import com.ontimize.jee.common.exceptions.OntimizeJEERuntimeException;
+
+import java.util.List;
+import java.util.Map;
+
+public interface ICandidateService {
+
+    // CANDIDATE
+    EntityResult candidateQuery(Map<String, Object> keyMap, List<String> attrList) throws OntimizeJEERuntimeException;
+
+    EntityResult candidateInsert(Map<String, Object> attrMap) throws OntimizeJEERuntimeException;
+
+    EntityResult candidateUpdate(Map<String, Object> attrMap, Map<String, Object> keyMap) throws OntimizeJEERuntimeException;
+
+    EntityResult candidateDelete(Map<String, Object> keyMap) throws OntimizeJEERuntimeException;
+}

Creación del servicio

A continuación, debemos crear un servicio que implemente la interfaz que hemos creado. En este caso, estará ubicada en hr-model, dentro del paquete service. Esta clase tendrá la anotación @Service con el valor Candidate, para indicar que se trata del servicio de candidatos, y la anotación @Lazy, que permite que los servicios se inicien cuando son requeridos y no durante el arranque. Para el empleo de los DAO, deberán llevar la anotación @Autowired, que permite que los DAO se enlacen correctamente a las variables donde las hemos definido, evitando el uso de métodos getter y setter.

CandidateService.java

package com.ontimize.hr.model.core.service;
+
+import com.ontimize.hr.api.core.service.ICandidateService;
+import com.ontimize.hr.model.core.dao.CandidateDao;
+import com.ontimize.jee.common.dto.EntityResult;
+import com.ontimize.jee.common.exceptions.OntimizeJEERuntimeException;
+import com.ontimize.jee.server.dao.DefaultOntimizeDaoHelper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+@Service("CandidateService")
+@Lazy
+public class CandidateService implements ICandidateService {
+
+    @Autowired
+    private CandidateDao candidateDao;
+    @Autowired
+    private DefaultOntimizeDaoHelper daoHelper;
+
+    @Override
+    public EntityResult candidateQuery(Map<String, Object> keyMap, List<String> attrList)
+            throws OntimizeJEERuntimeException {
+        return this.daoHelper.query(this.candidateDao, keyMap, attrList);
+    }
+
+    @Override
+    public EntityResult candidateInsert(Map<String, Object> attrMap) throws OntimizeJEERuntimeException {
+        return this.daoHelper.insert(this.candidateDao, attrMap);
+    }
+
+    @Override
+    public EntityResult candidateUpdate(Map<String, Object> attrMap, Map<String, Object> keyMap)
+            throws OntimizeJEERuntimeException {
+        return this.daoHelper.update(this.candidateDao, attrMap, keyMap);
+    }
+
+    @Override
+    public EntityResult candidateDelete(Map<String, Object> keyMap) throws OntimizeJEERuntimeException {
+        return this.daoHelper.delete(this.candidateDao, keyMap);
+    }
+
+}

Creación del controlador

Una vez tengamos el DAO creado, su interfaz y el servicio que implemente dicha interfaz, crearemos el controlador REST para que responda a las peticiones que reciba el servidor. Los controladores se ubicarán en el módulo hr-ws.

La anotación @RestController indica que esta clase trabaja como un controlador, que responderá a las peticiones cuya URL tenga el path indicado en la anotación @RequestMapping (en este caso, candidates).

CandidateRestController.java

package com.ontimize.hr.ws.core.rest;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.ontimize.hr.api.core.service.ICandidateService;
+import com.ontimize.jee.server.rest.ORestController;
+
+@RestController
+@RequestMapping("/candidates")
+public class CandidateRestController extends ORestController<ICandidateService> {
+
+    @Autowired
+    private ICandidateService candidateService;
+
+    @Override
+    public ICandidateService getService() {
+        return this.candidateService;
+    }
+}

Ahora ya podemos utilizar una aplicación como Postman para ejecutar diferentes peticiones REST a nuestro proyecto.

Lanzar la Aplicación

Para lanzar la aplicación, tenemos 2 formas diferentes de hacerlo, la primera mediante Maven y la segunda a través del código de la aplicación (recomendado).

Maven

Abrimos nuevamente la ventana de Edit Configurations… y añadimos una configuración nueva.

tutorial_8.png

Para lanzar la aplicación, procederemos de la misma forma que para lanzar la base de datos.

Método de lanzamiento alternativo

Se puede lanzar también si abrimos la ventana de “Execute Maven goal”, especificamos el módulo sobre el que tenemos que ejecutar el comando Maven (en este caso, hr-boot) y ejecutamos:

mvn spring-boot:run

tutorial_9.png

Código de la aplicación (Recomendado)

Buscamos la clase ServerApplication.java que se encuentra dentro del módulo hr-boot y en el método main hacemos clic en el triángulo verde y a continuación, clic en Debug ‘ServerAplplicat….main(). Esto permitirá lanzar el código en modo Debug, útil para seguir las instrucciones que se van ejecutando para poder detectar la solución de posibles errores que se produzcan.

Launch in debug

Usar las peticiones REST

Las peticiones contienen la siguiente estructura:

localhost:33333/candidates/candidate

Elemento Significado
localhost:33333 Indica el host
/candidates Indica el controlador que se va a consultar
/candidate Indica el método de la interfaz del controlador al que accederá ese servicio (este método está implementado en el servicio, y no tiene los sufijos Query, Insert, Update, Delete)

Los tipos de peticiones sólo pueden ser: GET, POST, PUT, DELETE.

A continuación, se muestran ejemplos de peticiones para los candidatos (CANDIDATES).

La autorización que se usa para estas peticiones es de tipo BASIC, cuyas credenciales son demo como usuario y demouser como contraseña.

Tipo petición Tipo de consulta Petición Método del servicio Cuerpo petición
GET query localhost:33333/candidates/candidate?columns=ID,NAME,SURNAME candidateQuery No tiene cuerpo de petición porque es de tipo GET
POST query localhost:33333/candidates/candidate/search candidateQuery
{
+    "filter": {
+     "ID": 0
+    },
+    "columns": ["ID","NAME","SURNAME","BIRTHDAY","DNI","PHONE","EMAIL","EDUCATION",
+                "SPECIALTIES","STATUS","ORIGIN","WAGE_LEVEL","EXPERIENCE_LEVEL",
+                "PROFILE","COMMENT","LINKEDIN"]
+}
insert localhost:33333/candidates/candidate candidateInsert
{
+    "data": {
+        "PHONE": "555-444-8888",
+        "BIRTHDAY": 788224700000,
+        "SURNAME": "Wilson",
+        "EMAIL": "wwiilsoon@example.org",
+        "SPECIALTIES": "C#",
+        "NAME": "William",
+        "DNI": "88643946Z"
+    },
+    "sqltypes": {
+        "SPECIALTIES": 12,
+        "LINKEDIN": 12,
+        "PHONE": 12,
+        "EXPERIENCE_LEVEL": 4,
+        "STATUS": 4,
+        "EMAIL": 12,
+        "WAGE_LEVEL": 2,
+        "DNI": 12,
+        "ID": 4,
+        "ORIGIN": 4,
+        "EDUCATION": 4,
+        "COMMENT": 12,
+        "PROFILE": 4,
+        "SURNAME": 12,
+        "NAME": 12,
+        "BIRTHDAY": 91
+    }
+}
PUT update localhost:33333/candidates/candidate candidateUpdate
{
+ "filter" :{
+  "ID" :15
+ },
+    "data": {
+        "EMAIL": "wwilson@example.org"
+    },
+    "sqltypes": {
+        "SPECIALTIES": 12,
+        "LINKEDIN": 12,
+        "PHONE": 12,
+        "EXPERIENCE_LEVEL": 4,
+        "STATUS": 4,
+        "EMAIL": 12,
+        "WAGE_LEVEL": 2,
+        "DNI": 12,
+        "ID": 4,
+        "ORIGIN": 4,
+        "EDUCATION": 4,
+        "COMMENT": 12,
+        "PROFILE": 4,
+        "SURNAME": 12,
+        "NAME": 12,
+        "BIRTHDAY": 91
+    }
+}
DELETE delete localhost:33333/candidates/candidate candidateDelete
{
+    "filter": {
+        "ID": 15
+    }
+}

arrow_back Tutorial anterior Próximo tutorial arrow_forward

diff --git a/v3/tutorial/exercise5.html b/v3/tutorial/exercise5.html new file mode 100644 index 0000000..c5abd5d --- /dev/null +++ b/v3/tutorial/exercise5.html @@ -0,0 +1,379 @@ + Master Data Management | Ontimize Boot Skip to main content Link Menu Expand (external link) Document Search Copy Copied
Theme mode icon

Servicio de maestros

Introducción

Un servicio de maestros permite tener centralizados en un único servicio aquellos elementos que nos sirvan para identificar otros, por ejemplo, para un candidato, la procedencia de ese candidato, si ha sido por medio de un reclutador, de un empleado, a través de Linkedin… Estas tablas serán elementos que puedan repetirse en múltiples registros y nos interesa saber que elementos tienen para poder gestionarlos. Crearemos un servicio llamado MasterService, que contenga todos los DAO que puedan pertenecer a esta categoría.

Estableciendo los DAO

Si comprobamos la tabla de CANDIDATE de la base de datos, observamos que hay varias columnas que pueden ser factibles para ser una tabla de maestros que estén asociados a este nuevo servicio.

tutorial_10.png

Crearemos la tablas asociadas a esos datos. Las tablas contendrán una estructura de 2 columnas, un identificador y una descripción.

Código SQL

CREATE TABLE EDUCATION (ID INTEGER IDENTITY PRIMARY KEY NOT NULL, DESCRIPTION NVARCHAR(255) NOT NULL);
+CREATE TABLE STATUS(ID INTEGER IDENTITY PRIMARY KEY NOT NULL, DESCRIPTION NVARCHAR(255) NOT NULL);
+CREATE TABLE ORIGIN (ID INTEGER IDENTITY PRIMARY KEY NOT NULL, DESCRIPTION NVARCHAR(255) NOT NULL);
+CREATE TABLE EXPERIENCE_LEVEL (ID INTEGER IDENTITY PRIMARY KEY NOT NULL, DESCRIPTION NVARCHAR(255) NOT NULL);
+CREATE TABLE PROFILE (ID INTEGER IDENTITY PRIMARY KEY NOT NULL, DESCRIPTION NVARCHAR(255) NOT NULL);

Añadiremos claves foráneas a la tabla de CANDIDATE asociando sus columnas con las nuevas tablas.

Código SQL

ALTER TABLE CANDIDATE ADD CONSTRAINT CANDIDATE_FK_EDUCATION FOREIGN KEY (EDUCATION) REFERENCES EDUCATION(ID);
+ALTER TABLE CANDIDATE ADD CONSTRAINT CANDIDATE_FK_STATUS FOREIGN KEY (STATUS) REFERENCES STATUS(ID);
+ALTER TABLE CANDIDATE ADD CONSTRAINT CANDIDATE_FK_ORIGIN FOREIGN KEY (ORIGIN) REFERENCES ORIGIN(ID);
+ALTER TABLE CANDIDATE ADD CONSTRAINT CANDIDATE_FK_EXPERIENCE_LEVEL FOREIGN KEY (EXPERIENCE_LEVEL) REFERENCES EXPERIENCE_LEVEL(ID);
+ALTER TABLE CANDIDATE ADD CONSTRAINT CANDIDATE_FK_PROFILE FOREIGN KEY (PROFILE) REFERENCES PROFILE(ID);

Insertamos un registro en cada una de ellas, para que puedan tener datos.

Código SQL

INSERT INTO EDUCATION (DESCRIPTION) VALUES ('Degree in Computer Science');
+INSERT INTO STATUS (DESCRIPTION) VALUES ('Available');
+INSERT INTO ORIGIN (DESCRIPTION) VALUES ('Recruiter');
+INSERT INTO EXPERIENCE_LEVEL (DESCRIPTION) VALUES ('Junior');
+INSERT INTO PROFILE (DESCRIPTION) VALUES ('Technician');

Ahora se crearán los DAO correspondientes a esas tablas, tanto los elementos las clases en Java como los ficheros *.xml

EducationDao.xml

<?xml version="1.0" encoding="UTF-8"?>
+<JdbcEntitySetup
+        xmlns="http://www.ontimize.com/schema/jdbc"
+        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+        xsi:schemaLocation="http://www.ontimize.com/schema/jdbc http://www.ontimize.com/schema/jdbc/ontimize-jdbc-dao.xsd"
+        catalog="" schema="${mainschema}" table="EDUCATION"
+        datasource="mainDataSource" sqlhandler="dbSQLStatementHandler">
+    <DeleteKeys>
+        <Column>ID</Column>
+    </DeleteKeys>
+    <UpdateKeys>
+        <Column>ID</Column>
+    </UpdateKeys>
+    <GeneratedKey>ID</GeneratedKey>
+</JdbcEntitySetup>

EducationDao.java

package com.ontimize.hr.model.core.dao;
+
+import com.ontimize.jee.server.dao.common.ConfigurationFile;
+import com.ontimize.jee.server.dao.jdbc.OntimizeJdbcDaoSupport;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Repository;
+
+@Repository("EducationDao")
+@Lazy
+@ConfigurationFile(configurationFile = "dao/EducationDao.xml", configurationFilePlaceholder = "dao/placeholders.properties")
+public class EducationDao extends OntimizeJdbcDaoSupport {
+
+    public static final String ATTR_ID = "ID";
+    public static final String ATTR_DESCRIPTION = "DESCRIPTION";
+}

ExperienceLevelDao.xml

<?xml version="1.0" encoding="UTF-8"?>
+<JdbcEntitySetup
+        xmlns="http://www.ontimize.com/schema/jdbc"
+        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+        xsi:schemaLocation="http://www.ontimize.com/schema/jdbc http://www.ontimize.com/schema/jdbc/ontimize-jdbc-dao.xsd"
+        catalog="" schema="${mainschema}" table="EXPERIENCE_LEVEL"
+        datasource="mainDataSource" sqlhandler="dbSQLStatementHandler">
+    <DeleteKeys>
+        <Column>ID</Column>
+    </DeleteKeys>
+    <UpdateKeys>
+        <Column>ID</Column>
+    </UpdateKeys>
+    <GeneratedKey>ID</GeneratedKey>
+</JdbcEntitySetup>

ExperienceLevelDao.java

package com.ontimize.hr.model.core.dao;
+
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Repository;
+
+import com.ontimize.jee.server.dao.common.ConfigurationFile;
+import com.ontimize.jee.server.dao.jdbc.OntimizeJdbcDaoSupport;
+
+@Repository("ExperienceLevelDao")
+@Lazy
+@ConfigurationFile(configurationFile = "dao/ExperienceLevelDao.xml", configurationFilePlaceholder = "dao/placeholders.properties")
+public class ExperienceLevelDao  extends OntimizeJdbcDaoSupport{
+
+    public static final String ATTR_ID = "ID";
+    public static final String ATTR_DESCRIPTION = "DESCRIPTION";
+}

OriginDao.xml

<?xml version="1.0" encoding="UTF-8"?>
+<JdbcEntitySetup
+        xmlns="http://www.ontimize.com/schema/jdbc"
+        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+        xsi:schemaLocation="http://www.ontimize.com/schema/jdbc http://www.ontimize.com/schema/jdbc/ontimize-jdbc-dao.xsd"
+        catalog="" schema="${mainschema}" table="ORIGIN"
+        datasource="mainDataSource" sqlhandler="dbSQLStatementHandler">
+    <DeleteKeys>
+        <Column>ID</Column>
+    </DeleteKeys>
+    <UpdateKeys>
+        <Column>ID</Column>
+    </UpdateKeys>
+    <GeneratedKey>ID</GeneratedKey>
+</JdbcEntitySetup>

OriginDao.java

package com.ontimize.hr.model.core.dao;
+
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Repository;
+
+import com.ontimize.jee.server.dao.common.ConfigurationFile;
+import com.ontimize.jee.server.dao.jdbc.OntimizeJdbcDaoSupport;
+
+@Repository("OriginDao")
+@Lazy
+@ConfigurationFile(configurationFile = "dao/OriginDao.xml", configurationFilePlaceholder = "dao/placeholders.properties")
+public class OriginDao  extends OntimizeJdbcDaoSupport{
+
+    public static final String ATTR_ID = "ID";
+    public static final String ATTR_DESCRIPTION = "DESCRIPTION";
+}

ProfileDao.xml

<?xml version="1.0" encoding="UTF-8"?>
+<JdbcEntitySetup
+        xmlns="http://www.ontimize.com/schema/jdbc"
+        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+        xsi:schemaLocation="http://www.ontimize.com/schema/jdbc http://www.ontimize.com/schema/jdbc/ontimize-jdbc-dao.xsd"
+        catalog="" schema="${mainschema}" table="PROFILE"
+        datasource="mainDataSource" sqlhandler="dbSQLStatementHandler">
+    <DeleteKeys>
+       <Column>ID</Column>
+    </DeleteKeys>
+    <UpdateKeys>
+        <Column>ID</Column>
+    </UpdateKeys>
+    <GeneratedKey>ID</GeneratedKey>
+</JdbcEntitySetup>

ProfileDao.java

package com.ontimize.hr.model.core.dao;
+
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Repository;
+
+import com.ontimize.jee.server.dao.common.ConfigurationFile;
+import com.ontimize.jee.server.dao.jdbc.OntimizeJdbcDaoSupport;
+
+@Repository("ProfileDao")
+@Lazy
+@ConfigurationFile(configurationFile = "dao/ProfileDao.xml", configurationFilePlaceholder = "dao/placeholders.properties")
+public class ProfileDao  extends OntimizeJdbcDaoSupport{
+
+    public static final String ATTR_ID = "ID";
+    public static final String ATTR_DESCRIPTION = "DESCRIPTION";
+}

StatusDao.xml

<?xml version="1.0" encoding="UTF-8"?>
+<JdbcEntitySetup
+        xmlns="http://www.ontimize.com/schema/jdbc"
+        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+        xsi:schemaLocation="http://www.ontimize.com/schema/jdbc http://www.ontimize.com/schema/jdbc/ontimize-jdbc-dao.xsd"
+        catalog="" schema="${mainschema}" table="STATUS"
+        datasource="mainDataSource" sqlhandler="dbSQLStatementHandler">
+    <DeleteKeys>
+        <Column>ID</Column>
+    </DeleteKeys>
+    <UpdateKeys>
+        <Column>ID</Column>
+    </UpdateKeys>
+    <GeneratedKey>ID</GeneratedKey>
+</JdbcEntitySetup>

StatusDao.java

package com.ontimize.hr.model.core.dao;
+
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Repository;
+
+import com.ontimize.jee.server.dao.common.ConfigurationFile;
+import com.ontimize.jee.server.dao.jdbc.OntimizeJdbcDaoSupport;
+
+@Repository("StatusDao")
+@Lazy
+@ConfigurationFile(configurationFile = "dao/StatusDao.xml", configurationFilePlaceholder = "dao/placeholders.properties")
+public class StatusDao  extends OntimizeJdbcDaoSupport{
+
+    public static final String ATTR_ID = "ID";
+    public static final String ATTR_DESCRIPTION = "DESCRIPTION";
+}

Crear la interfaz del servicio de maestros

Crearemos una interfaz para el servicio de maestros, pensando en que se usarán los DAO creados en el punto anterior.

IMasterService.java

package com.ontimize.hr.api.core.service;
+
+import com.ontimize.jee.common.dto.EntityResult;
+import com.ontimize.jee.common.exceptions.OntimizeJEERuntimeException;
+
+import java.util.List;
+import java.util.Map;
+
+public interface IMasterService {
+
+    // EDUCATION
+    EntityResult educationQuery(Map<String, Object> keyMap, List<String> attrList) throws OntimizeJEERuntimeException;
+
+    EntityResult educationInsert(Map<String, Object> attrMap) throws OntimizeJEERuntimeException;
+
+    EntityResult educationUpdate(Map<String, Object> attrMap, Map<String, Object> keyMap) throws OntimizeJEERuntimeException;
+
+    EntityResult educationDelete(Map<String, Object> keyMap) throws OntimizeJEERuntimeException;
+
+    // EXPERIENCE_LEVEL
+    EntityResult experienceLevelQuery(Map<String, Object> keyMap, List<String> attrList) throws OntimizeJEERuntimeException;
+
+    EntityResult experienceLevelInsert(Map<String, Object> attrMap) throws OntimizeJEERuntimeException;
+
+    EntityResult experienceLevelUpdate(Map<String, Object> attrMap, Map<String, Object> keyMap) throws OntimizeJEERuntimeException;
+
+    EntityResult experienceLevelDelete(Map<String, Object> keyMap) throws OntimizeJEERuntimeException;
+
+    // ORIGIN
+    EntityResult originQuery(Map<String, Object> keyMap, List<String> attrList) throws OntimizeJEERuntimeException;
+
+    EntityResult originInsert(Map<String, Object> attrMap) throws OntimizeJEERuntimeException;
+
+    EntityResult originUpdate(Map<String, Object> attrMap, Map<String, Object> keyMap) throws OntimizeJEERuntimeException;
+
+    EntityResult originDelete(Map<String, Object> keyMap) throws OntimizeJEERuntimeException;
+
+    // PROFILE
+    EntityResult profileQuery(Map<String, Object> keyMap, List<String> attrList) throws OntimizeJEERuntimeException;
+
+    EntityResult profileInsert(Map<String, Object> attrMap) throws OntimizeJEERuntimeException;
+
+    EntityResult profileUpdate(Map<String, Object> attrMap, Map<String, Object> keyMap) throws OntimizeJEERuntimeException;
+
+    EntityResult profileDelete(Map<String, Object> keyMap) throws OntimizeJEERuntimeException;
+
+    // STATUS
+    EntityResult statusQuery(Map<String, Object> keyMap, List<String> attrList) throws OntimizeJEERuntimeException;
+
+    EntityResult statusInsert(Map<String, Object> attrMap) throws OntimizeJEERuntimeException;
+
+    EntityResult statusUpdate(Map<String, Object> attrMap, Map<String, Object> keyMap) throws OntimizeJEERuntimeException;
+
+    EntityResult statusDelete(Map<String, Object> keyMap) throws OntimizeJEERuntimeException;
+
+}

Creación del servicio de maestros

De la misma manera que hemos creado el servicio para CandidateService, vamos a crear el servicio para MasterService, que implementará la recién creada interfaz IMasterService. Es necesario anotarlo con @Service (cuyo valor será MasterService) y con @Lazy

MasterService.java

package com.ontimize.hr.model.core.service;
+
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Service;
+
+import com.ontimize.hr.api.core.service.IMasterService;
+import com.ontimize.hr.model.core.dao.EducationDao;
+import com.ontimize.hr.model.core.dao.ExperienceLevelDao;
+import com.ontimize.hr.model.core.dao.OriginDao;
+import com.ontimize.hr.model.core.dao.ProfileDao;
+import com.ontimize.hr.model.core.dao.StatusDao;
+import com.ontimize.jee.common.dto.EntityResult;
+import com.ontimize.jee.common.exceptions.OntimizeJEERuntimeException;
+import com.ontimize.jee.server.dao.DefaultOntimizeDaoHelper;
+
+@Service("MasterService")
+@Lazy
+public class MasterService implements IMasterService {
+
+    @Autowired
+    private EducationDao educationDao;
+    @Autowired
+    private ExperienceLevelDao experienceLevelDao;
+    @Autowired
+    private OriginDao originDao;
+    @Autowired
+    private ProfileDao profileDao;
+    @Autowired
+    private StatusDao statusDao;
+    @Autowired
+    private DefaultOntimizeDaoHelper daoHelper;
+
+    @Override
+    public EntityResult educationQuery(Map<String, Object> keyMap, List<String> attrList)
+            throws OntimizeJEERuntimeException {
+        return this.daoHelper.query(this.educationDao, keyMap, attrList);
+    }
+
+    @Override
+    public EntityResult educationInsert(Map<String, Object> attrMap) throws OntimizeJEERuntimeException {
+        return this.daoHelper.insert(this.educationDao, attrMap);
+    }
+
+    @Override
+    public EntityResult educationUpdate(Map<String, Object> attrMap, Map<String, Object> keyMap)
+            throws OntimizeJEERuntimeException {
+        return this.daoHelper.update(this.educationDao, attrMap, keyMap);
+    }
+
+    @Override
+    public EntityResult educationDelete(Map<String, Object> keyMap) throws OntimizeJEERuntimeException {
+        return this.daoHelper.delete(this.educationDao, keyMap);
+    }
+
+    @Override
+    public EntityResult experienceLevelQuery(Map<String, Object> keyMap, List<String> attrList)
+            throws OntimizeJEERuntimeException {
+        return this.daoHelper.query(this.experienceLevelDao, keyMap, attrList);
+    }
+
+    @Override
+    public EntityResult experienceLevelInsert(Map<String, Object> attrMap) throws OntimizeJEERuntimeException {
+        return this.daoHelper.insert(this.experienceLevelDao, attrMap);
+    }
+
+    @Override
+    public EntityResult experienceLevelUpdate(Map<String, Object> attrMap, Map<String, Object> keyMap)
+            throws OntimizeJEERuntimeException {
+        return this.daoHelper.update(this.experienceLevelDao, attrMap, keyMap);
+    }
+
+    @Override
+    public EntityResult experienceLevelDelete(Map<String, Object> keyMap) throws OntimizeJEERuntimeException {
+        return this.daoHelper.delete(this.experienceLevelDao, keyMap);
+    }
+
+    @Override
+    public EntityResult originQuery(Map<String, Object> keyMap, List<String> attrList)
+            throws OntimizeJEERuntimeException {
+        return this.daoHelper.query(this.originDao, keyMap, attrList);
+    }
+
+    @Override
+    public EntityResult originInsert(Map<String, Object> attrMap) throws OntimizeJEERuntimeException {
+        return this.daoHelper.insert(this.originDao, attrMap);
+    }
+
+    @Override
+    public EntityResult originUpdate(Map<String, Object> attrMap, Map<String, Object> keyMap)
+            throws OntimizeJEERuntimeException {
+        return this.daoHelper.update(this.originDao, attrMap, keyMap);
+    }
+
+    @Override
+    public EntityResult originDelete(Map<String, Object> keyMap) throws OntimizeJEERuntimeException {
+        return this.daoHelper.delete(this.originDao, keyMap);
+    }
+
+    @Override
+    public EntityResult profileQuery(Map<String, Object> keyMap, List<String> attrList)
+            throws OntimizeJEERuntimeException {
+        return this.daoHelper.query(this.profileDao, keyMap, attrList);
+    }
+
+    @Override
+    public EntityResult profileInsert(Map<String, Object> attrMap) throws OntimizeJEERuntimeException {
+        return this.daoHelper.insert(this.profileDao, attrMap);
+    }
+
+    @Override
+    public EntityResult profileUpdate(Map<String, Object> attrMap, Map<String, Object> keyMap)
+            throws OntimizeJEERuntimeException {
+        return this.daoHelper.update(this.profileDao, attrMap, keyMap);
+    }
+
+    @Override
+    public EntityResult profileDelete(Map<String, Object> keyMap) throws OntimizeJEERuntimeException {
+        return this.daoHelper.delete(this.profileDao, keyMap);
+    }
+
+    @Override
+    public EntityResult statusQuery(Map<String, Object> keyMap, List<String> attrList)
+            throws OntimizeJEERuntimeException {
+        return this.daoHelper.query(this.statusDao, keyMap, attrList);
+    }
+
+    @Override
+    public EntityResult statusInsert(Map<String, Object> attrMap) throws OntimizeJEERuntimeException {
+        return this.daoHelper.insert(this.statusDao, attrMap);
+    }
+
+    @Override
+    public EntityResult statusUpdate(Map<String, Object> attrMap, Map<String, Object> keyMap)
+            throws OntimizeJEERuntimeException {
+        return this.daoHelper.update(this.statusDao, attrMap, keyMap);
+    }
+
+    @Override
+    public EntityResult statusDelete(Map<String, Object> keyMap) throws OntimizeJEERuntimeException {
+        return this.daoHelper.delete(this.statusDao, keyMap);
+    }
+
+}

Creación del controlador de maestros

Ahora crearemos el controlador REST para el servicio de maestros. Tenemos que crear una clase nueva que extienda de ORestController, cuyo tipo de dato será la interfaz creada para el servicio, IMasterService. Esta clase contendrá las anotaciones @RestController, que indicará que esta clase servirá de controlador REST y @RequestMapping("/master") que establecerá la url del controlador.

MasterRestController

package com.ontimize.hr.ws.core.rest;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.ontimize.hr.api.core.service.IMasterService;
+import com.ontimize.jee.server.rest.ORestController;
+
+@RestController
+@RequestMapping("/master")
+public class MasterRestController extends ORestController<IMasterService> {
+
+    @Autowired
+    private IMasterService masterService;
+
+    @Override
+    public IMasterService getService() {
+        return this.masterService;
+    }
+
+}

Arrancamos la aplicación y ya podemos hacer nuevas peticiones desde Postman.

arrow_back Tutorial anterior Próximo tutorial arrow_forward

diff --git a/v3/tutorial/exercise6.html b/v3/tutorial/exercise6.html new file mode 100644 index 0000000..6c136a1 --- /dev/null +++ b/v3/tutorial/exercise6.html @@ -0,0 +1 @@ + Understanding the EntityResult | Ontimize Boot Skip to main content Link Menu Expand (external link) Document Search Copy Copied
Theme mode icon

Entendiendo el EntityResult

Introducción

En este ejercicio veremos la estructura con la que devuelve Ontimize Boot la respuesta de las peticiones que se le hagan, y como podemos nosotros trabajar con ella, además de los diferentes métodos que tiene para obtener y manejar la información.

EntityResult

El EntityResult es una interfaz actualmente implementada por la clase EntityResultMapImpl que además implementa la interfaz Map, permitiendo almacenar el resultado de las consultas generadas contra la base de datos.

tutorial_11.png

Según la imagen superior, podemos comprobar que esta representación es un mapa de claves-valores, siendo las claves las columnas que ha consultado/obtenido de la BD y los valores una lista con los datos de todos los registros que ha obtenido en dicha consulta. La posición de los elementos dentro de la lista, indica los valores de los registros que se han obtenido. De esta manera, todos los elementos situados en la posición 0 de la lista corresponderán al primer registro que se ha devuelto desde la BD, los valores en la posición 1, los del registro número 2 y así sucesivamente.

Métodos propios

Además de los métodos heredados de la clase Hashtable, la clase EntityResult cuenta también con sus propios métodos:

Método Descripción
int calculateRecordNumber() Devuelve el número de registros que contiene el EntityResult. Si el resultado es 0, significa que el EntityResult está vacío y no ha traído registros de la BD
Map getRecordValues(int i) Devuelve un Hashmap con el registro en la posición i que se le ha pasado por parámetro. Como clave tendrá el nombre de la columna y como valor tendrá el valor de dicho registro para esa columna
int getRecordIndex(Map kv) Devuelve el índice del registro que cumpla las condiciones establecidas por el HashMap pasado como parámetro
addRecord(Map data) Añade el HashMap pasado como parámetro al EntityResult como último valor. En caso de querer insertarlo en una posición específica, se indicará la posición como segundo parámetro. Para que el EntityResult sea correcto, necesita que todos las listas que contengan sean del mismo tamaño, por lo que si queremos añadir una columna cuyo valor sea null al EntityResult, nuestro Hashmap tiene que contener como clave la columna que tendrá valor null y como valor una instancia del objeto NullValue. Esto es debido a que los Hashmap no pueden tener elementos null como valor.
addRecord(Map data, int s)
setCode(int operationCode)

Establece el código de operación del EntityResult. Cuando un EntityResult llega al servidor, puede tener 3 códigos de operación:

  • OPERATION_SUCCESSFUL: La operación ha sido realizada de manera correcta
  • OPERATION_SUCCESSFUL_SHOW_MESSAGE: La operación ha sido realizada de manera correcta, y contiene un mensaje específico
  • OPERATION_WRONG: La operación ha sido incorrecta y ha dado un error
int getCode()

Devuelve el código de la operación:

  • OPERATION_SUCCESSFUL: 0
  • OPERATION_SUCCESSFUL_SHOW_MESSAGE: 2
  • OPERATION_WRONG: 1
setMessage(String message) Añade un mensaje al EntityResult
String getMessage() Recupera el mensaje que contenga el EntityResult

arrow_back Tutorial anterior Próximo tutorial arrow_forward

diff --git a/v3/tutorial/exercise7.html b/v3/tutorial/exercise7.html new file mode 100644 index 0000000..74dc3d1 --- /dev/null +++ b/v3/tutorial/exercise7.html @@ -0,0 +1,166 @@ + CRUD operations, transactions | Ontimize Boot Skip to main content Link Menu Expand (external link) Document Search Copy Copied
Theme mode icon

Modificación de operaciones CRUD básicas, transacciones

Introducción

Hasta ahora, solo hemos realizado operaciones CRUD básicas en nuestra aplicación, pero podemos modificar esos métodos básicos para permitir funcionamientos más avanzados, como puede ser, guardar nuevos valores en las tablas de maestros asociados cuando insertamos un candidato nuevo o, actualizamos uno ya existente. Todo ello, empleando las transacciones, y evitando que se guarden datos en caso de que ocurra un fallo.

Modificar los métodos de CandidateService

Para simplificar el código que se está escribiendo, pueden aparecer tres puntos (…) en algunas partes del código. Esto indica que puede haber código anterior antes y después de esos puntos.

En este caso, añadimos la referencia al servicio de maestros anotándolo con @Autowired. Luego, modificamos los métodos insert y update para que eliminen todos aquellos elementos contenidos en el mapa que recibe la petición como parámetro.

Estos elementos eliminados quedarán almacenados en un mapa para comprobar si es necesario añadirlos a sus correspondientes tablas, o si por el contrario ya existen. De no existir previamente, se insertarán en la tabla correspondiente y recuperaremos el identificador que nos devuelve después de dicha inserción. De existir, obtenemos su identificador.

Sea cual sea el caso, sustituiremos el valor que tenía por sus identificadores. Añadimos de nuevo los elementos eliminados a los elementos previos de la petición y continuamos con la ejecución del método.

Tanto en el método insert como el método update están marcados con la anotación @Transactional(rollbackFor = Exception.class) que indica que, en caso de que dentro del método se genere alguna excepción del tipo Exception.class, hará un rollback y no guardará ninguno de los elementos que se hayan insertado en ese método.

CandidateService.java

package com.ontimize.hr.model.core.service;
+
+...
+
+@Service("CandidateService")
+@Lazy
+public class CandidateService implements ICandidateService {
+
+    ...
+
+    /**
+     * It stores the master service. When you mark it with the @Autowired notation,
+     * it links automatically without using any setter
+     */
+    @Autowired
+    private MasterService masterService;
+
+    ...
+
+    /**
+     * This method adds a new candidate. It removes from the parameters those items
+     * not directly belonging to the table of candidates in case of that are of the
+     * {@link String} type. Look for the identifier of this data in case that they
+     * exist or adds them to the corresponding tables, and associates them with the
+     * correct identifier. Then add these new elements to the list of applicant's
+     * items and performs the insert of a new candidate
+     *
+     * @param attrMap A {@link Map} containing the data of the new candidate to be
+     *                inserted.
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public EntityResult candidateInsert(Map<String, Object> attrMap) throws OntimizeJEERuntimeException {
+        Map<String, Object> nonCandidateData = removeNonRelatedData(attrMap, CandidateDao.ATTR_EDUCATION,
+                CandidateDao.ATTR_EXPERIENCE_LEVEL, CandidateDao.ATTR_ORIGIN, CandidateDao.ATTR_PROFILE,
+                CandidateDao.ATTR_STATUS);
+        this.insertNonRelatedData(nonCandidateData);
+        attrMap.putAll(nonCandidateData);
+        return this.daoHelper.insert(this.candidateDao, attrMap);
+    }
+
+    /**
+     * This method updates a candidate. It removes from the parameters those items
+     * not directly belonging to the table of candidates in case of that are of the
+     * {@link String} type. Look for the identifier of this data in case that they
+     * exist or adds them to the corresponding tables, and associates them with the
+     * correct identifier. Then add these new elements to the list of applicant's
+     * items and performs the update of a candidate
+     *
+     * @param attrMap A {@link Map} containing the data of the candidate to be
+     *                updated.
+     * @param keyMap  A {@link Map} containing the identification of the candidate to be
+     *                updated.
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public EntityResult candidateUpdate(Map<String, Object> attrMap, Map<String, Object> keyMap)
+            throws OntimizeJEERuntimeException {
+        Map<String, Object> nonCandidateData = removeNonRelatedData(attrMap, CandidateDao.ATTR_EDUCATION,
+                CandidateDao.ATTR_EXPERIENCE_LEVEL, CandidateDao.ATTR_ORIGIN, CandidateDao.ATTR_PROFILE,
+                CandidateDao.ATTR_STATUS);
+        this.insertNonRelatedData(nonCandidateData);
+        attrMap.putAll(nonCandidateData);
+        return this.daoHelper.update(this.candidateDao, attrMap, keyMap);
+    }
+
+    ...
+
+    /**
+     * It removes from a map all the keys and values of the map that match those
+     * keys in their following parameters and returns a map with the extracted keys
+     * and values
+     *
+     * @param attrMap       A {@link Map} with all keys
+     * @param attrToExclude Multiple {@link String} that can be found as key of
+     *                      {@code attrMap}
+     * @return A {@link Map} with all of the keys and values removed from
+     * {@code attrMap}
+     */
+    private Map<String, Object> removeNonRelatedData(Map<String, Object> attrMap, String... attrToExclude) {
+        HashMap<String, Object> data = new HashMap<String, Object>();
+        for (String attr : attrToExclude) {
+            if (attrMap.containsKey(attr) && attrMap.get(attr) instanceof String) {
+                data.put(attr, attrMap.remove(attr));
+            }
+        }
+        return data;
+    }
+
+    /**
+     * Checks if the data stored in the map passed by parameter exists in the
+     * database table corresponding to the {@link MasterService} service. If so, it
+     * replaces the value with the corresponding identifier. In case it does not
+     * exist, it stores that value and substitutes the element's value in the map
+     * with its identifier
+     *
+     * @param nonCandidateData Values to be inserted in the tables managed by the
+     *                         {@link MasterService}
+     */
+    private void insertNonRelatedData(Map<String, Object> nonCandidateData) {
+        for (Map.Entry<String, Object> entry : nonCandidateData.entrySet()) {
+            Map<String, Object> data = new HashMap<String, Object>();
+            List<String> attr = new ArrayList<String>();
+            EntityResult toret, query;
+            switch (entry.getKey()) {
+                case CandidateDao.ATTR_EDUCATION:
+                    data.put(EducationDao.ATTR_DESCRIPTION, entry.getValue());
+                    attr.add(EducationDao.ATTR_ID);
+                    query = this.masterService.educationQuery(data, attr);
+                    if (query.calculateRecordNumber() > 0) {
+                        entry.setValue(query.getRecordValues(0).get(EducationDao.ATTR_ID));
+                    } else {
+                        toret = this.masterService.educationInsert(data);
+                        entry.setValue(toret.get(EducationDao.ATTR_ID));
+                    }
+                    break;
+                case CandidateDao.ATTR_EXPERIENCE_LEVEL:
+                    data.put(ExperienceLevelDao.ATTR_DESCRIPTION, entry.getValue());
+                    attr.add(ExperienceLevelDao.ATTR_ID);
+                    query = this.masterService.experienceLevelQuery(data, attr);
+                    if (query.calculateRecordNumber() > 0) {
+                        entry.setValue(query.getRecordValues(0).get(ExperienceLevelDao.ATTR_ID));
+                    } else {
+                        toret = this.masterService.experienceLevelInsert(data);
+                        entry.setValue(toret.get(ExperienceLevelDao.ATTR_ID));
+                    }
+                    break;
+                case CandidateDao.ATTR_ORIGIN:
+                    data.put(OriginDao.ATTR_DESCRIPTION, entry.getValue());
+                    attr.add(OriginDao.ATTR_ID);
+                    query = this.masterService.originQuery(data, attr);
+                    if (query.calculateRecordNumber() > 0) {
+                        entry.setValue(query.getRecordValues(0).get(OriginDao.ATTR_ID));
+                    } else {
+                        toret = this.masterService.originInsert(data);
+                        entry.setValue(toret.get(OriginDao.ATTR_ID));
+                    }
+                    break;
+                case CandidateDao.ATTR_PROFILE:
+                    data.put(ProfileDao.ATTR_DESCRIPTION, entry.getValue());
+                    attr.add(ProfileDao.ATTR_ID);
+                    query = this.masterService.profileQuery(data, attr);
+                    if (query.calculateRecordNumber() > 0) {
+                        entry.setValue(query.getRecordValues(0).get(ProfileDao.ATTR_ID));
+                    } else {
+                        toret = this.masterService.profileInsert(data);
+                        entry.setValue(toret.get(ProfileDao.ATTR_ID));
+                    }
+                    break;
+                case CandidateDao.ATTR_STATUS:
+                    data.put(StatusDao.ATTR_DESCRIPTION, entry.getValue());
+                    attr.add(StatusDao.ATTR_ID);
+                    query = this.masterService.statusQuery(data, attr);
+                    if (query.calculateRecordNumber() > 0) {
+                        entry.setValue(query.getRecordValues(0).get(StatusDao.ATTR_ID));
+                    } else {
+                        toret = this.masterService.statusInsert(data);
+                        entry.setValue(toret.get(StatusDao.ATTR_ID));
+                    }
+                    break;
+                default:
+                    break;
+            }
+        }
+    }
+}

arrow_back Tutorial anterior Próximo tutorial arrow_forward

diff --git a/v3/tutorial/exercise8.html b/v3/tutorial/exercise8.html new file mode 100644 index 0000000..21c3177 --- /dev/null +++ b/v3/tutorial/exercise8.html @@ -0,0 +1,364 @@ + Adding new services | Ontimize Boot Skip to main content Link Menu Expand (external link) Document Search Copy Copied
Theme mode icon

Añadir nuevos servicios

Introducción

En esta parte de la aplicación añadiremos nuevas tablas, DAO, servicios y controladores para nuestra aplicación de recursos humanos. Permitiremos gestionar ofertas de trabajo y añadir a ellas a los diferentes candidatos.

Creación de las tablas en la BD

Crearemos las tablas en la BD necesarias para esta nueva funcionalidad:

Código SQL

CREATE TABLE OFFER_STATUS (ID INTEGER PRIMARY KEY NOT NULL IDENTITY, DESCRIPTION VARCHAR(255) NOT NULL);
+CREATE TABLE OFFER_CANDIDATE_STATUS (ID INTEGER PRIMARY KEY NOT NULL IDENTITY, DESCRIPTION VARCHAR(255) NOT NULL);
+CREATE TABLE OFFER (ID INTEGER PRIMARY KEY  NOT NULL IDENTITY, ACRONYM VARCHAR(255), DESCRIPTION VARCHAR(1000), APPLICANT VARCHAR(255), OFFER_STATUS INTEGER, CREATION_DATE DATE, START_DATE DATE, END_DATE DATE);
+CREATE TABLE OFFER_CANDIDATES (ID INTEGER PRIMARY KEY NOT NULL IDENTITY, OFFER_ID INTEGER NOT NULL, CANDIDATE_ID INTEGER NOT NULL, OFFER_CANDIDATE_STATUS INTEGER);

Añadimos las claves foráneas:

Código SQL

ALTER TABLE OFFER ADD CONSTRAINT OFFER_FK_OFFER_STATUS FOREIGN KEY (OFFER_STATUS) REFERENCES OFFER_STATUS(ID);
+ALTER TABLE OFFER_CANDIDATES ADD CONSTRAINT OFFER_CANDIDATES_FK_CANDIDATES FOREIGN KEY (CANDIDATE_ID) REFERENCES CANDIDATE(ID);
+ALTER TABLE OFFER_CANDIDATES ADD CONSTRAINT OFFER_CANDIDATES_FK_OFFER FOREIGN KEY (OFFER_ID) REFERENCES OFFER(ID);
+ALTER TABLE OFFER_CANDIDATES ADD CONSTRAINT OFFER_CANDIDATES_FK_OFFER_CANDIDATES_STATUS FOREIGN KEY (OFFER_CANDIDATE_STATUS) REFERENCES OFFER_CANDIDATE_STATUS(ID);

Rellenaremos las tablas con un mínimo de datos:

Código SQL

INSERT INTO OFFER_STATUS (DESCRIPTION) VALUES('PENDING');
+INSERT INTO OFFER_CANDIDATE_STATUS (DESCRIPTION) VALUES('INTERVIEW');
+INSERT INTO OFFER
+(ACRONYM, DESCRIPTION, APPLICANT, OFFER_STATUS, CREATION_DATE, START_DATE, END_DATE)
+VALUES('Digital Twin', 'Two new Java developers should be incorporated. The salary range is between 20k€ and 30k€. The location is in Vigo full time.', 'Janna Tirte', 0, '2020-01-01', '2020-02-07', NULL);
+INSERT INTO OFFER
+(ACRONYM, DESCRIPTION, APPLICANT, OFFER_STATUS, CREATION_DATE, START_DATE, END_DATE)
+VALUES('Exotic language programmer', 'We are looking for a talented Programmer to create secure and functional code.
+You may have to provide quality coding solutions both for simple applications and complex information or operating systems.
+The ideal candidate will have a passion for technology and software building.
+Attention to detail and an analytical mind are essential qualities for a successful career in programming.', 'Richard Stallman', 0, '2019-12-01', '2019-12-15', NULL);
+INSERT INTO OFFER
+(ACRONYM, DESCRIPTION, APPLICANT, OFFER_STATUS, CREATION_DATE, START_DATE, END_DATE)
+VALUES('HR Manager', 'We are looking for an experienced leader for our project management office focused on Project Management activities within our service delivery center to join our team in our Atlanta office. This role is integral to achieve accurate project management and process standardization throughout the organization. The major priority for the successful candidate will be to lead a team of project managers across a large portfolio of projects. Projects range from small enhancements, large-scale technology implementations, and daily operational activities.', 'Harry May', 0, '2020-01-01', '2020-01-07', NULL);
+INSERT INTO OFFER
+(ACRONYM, DESCRIPTION, APPLICANT, OFFER_STATUS, CREATION_DATE, START_DATE, END_DATE)
+VALUES('Software developer', 'Works under the direction and supervision of application managers and project managers to help build the next generation of global financial data systems to support the client’s front office, middle office processes and back-office risk, finance, compliance reporting, regulatory reporting, and capital markets and banking needs.', 'Tanya Howard', 0, '2020-01-01', '2020-01-02', NULL);
+INSERT INTO OFFER
+(ACRONYM, DESCRIPTION, APPLICANT, OFFER_STATUS, CREATION_DATE, START_DATE, END_DATE)
+VALUES('UI developer', 'The ideal candidate will be responsible for developing user interfaces and controls that achieve maximum usability for our enterprise application and our customers.', 'Francis Harris', 0, '2019-12-01', '2019-12-24', NULL);
+INSERT INTO OFFER
+(ACRONYM, DESCRIPTION, APPLICANT, OFFER_STATUS, CREATION_DATE, START_DATE, END_DATE)
+VALUES('Entry level management', 'With the addition of various new clients requesting that we expand our services to new markets, we have an urgent need for a passionate individual that we can train, support, and groom to accept a role as a Manager within our firm.
+
+To ensure your success, we offer training that encompasses all facets of our business operations. You’ll experience hands on training provided by seasoned professionals in each department, primarily:
+
+Promotional Marketing
+Customer Service
+Consumer Relations
+Business Administration
+Recruiting and Talent Acquisition', 'Joy Boyd', 0, '2019-11-01', '2019-11-06', NULL);
+INSERT INTO OFFER
+(ACRONYM, DESCRIPTION, APPLICANT, OFFER_STATUS, CREATION_DATE, START_DATE, END_DATE)
+VALUES('PHP developer', 'Responsible for all requests for data processing services including, preparation of specifications, development and maintenance of computer programs, job control language and operational documentation. Assists productions systems group. Interfaces with other departments to determine user needs.', 'Rebecca Bowman', 0, '2020-01-01', '2020-01-06', NULL);
+INSERT INTO OFFER
+(ACRONYM, DESCRIPTION, APPLICANT, OFFER_STATUS, CREATION_DATE, START_DATE, END_DATE)
+VALUES('Security engineer', 'This position is open within the Security Engineering teams, which has full end-to-end ownership of security tools that allows for strong security prevention, detection and response capabilities. Our mission is to ensure cyber infrastructure is in line with industry standards by performing day-to-day system administration, product selection for new tools, deployment, configuration, maintenance, and support and license management.', 'Harry Gardner', 0, '2020-01-01', '2020-01-16', NULL);
+INSERT INTO OFFER
+(ACRONYM, DESCRIPTION, APPLICANT, OFFER_STATUS, CREATION_DATE, START_DATE, END_DATE)
+VALUES('Project Manager', 'Performs a variety of duties associated with the development and production of the aircraft maintenance manuals, wiring diagram manuals and other associated documents. Utilize an automated publishing system to download, import, and distribute manual data.Individual will incorporate vendor revisions and Delta engineering documents into a Delta customized manual and coordinate the publishing of the same. Additional responsibilities may include continuous improvement of revision processes, training and point person for data issues. The Project Leader may also be responsible for review and distribution of Aircraft Maintenance Alerts (AMAs), company policy & procedures, bulletins, vendor access, and other technical information.', 'Erika Torres', 0, '2020-01-01', '2020-01-15', NULL);
+INSERT INTO OFFER
+(ACRONYM, DESCRIPTION, APPLICANT, OFFER_STATUS, CREATION_DATE, START_DATE, END_DATE)
+VALUES('Istari support', 'Will provide administrative and logistical support to members of the executive team and may support other as needed. Must display professionalism and a strong work ethic while fostering a work environment that is positive, optimistic and collaborative. Position requires excellent administrative, communication, organizational and time management skills paired with flexibility, integrity and the ability to work independently. Must have Balrog fighting proficiency.', 'Eru Iúvatar', 0, '2020-01-01', '2020-01-06', NULL);
+INSERT INTO OFFER_CANDIDATES (ID, OFFER_ID, CANDIDATE_ID, OFFER_CANDIDATE_STATUS) VALUES(0, 0, 0, 0);
+INSERT INTO OFFER_CANDIDATES (ID, OFFER_ID, CANDIDATE_ID, OFFER_CANDIDATE_STATUS) VALUES(1, 0, 3, 0);
+INSERT INTO OFFER_CANDIDATES (ID, OFFER_ID, CANDIDATE_ID, OFFER_CANDIDATE_STATUS) VALUES(2, 0, 8, 0);
+INSERT INTO OFFER_CANDIDATES (ID, OFFER_ID, CANDIDATE_ID, OFFER_CANDIDATE_STATUS) VALUES(3, 0, 12, 0);

Creación de los DAO

Crearemos los DAO asociados a las tablas recién añadidas a la BD.

OfferCandidatesDao.xml

<?xml version="1.0" encoding="UTF-8"?>
+<JdbcEntitySetup
+        xmlns="http://www.ontimize.com/schema/jdbc"
+        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+        xsi:schemaLocation="http://www.ontimize.com/schema/jdbc http://www.ontimize.com/schema/jdbc/ontimize-jdbc-dao.xsd"
+        catalog="" schema="${mainschema}" table="OFFER_CANDIDATES"
+        datasource="mainDataSource" sqlhandler="dbSQLStatementHandler">
+    <DeleteKeys>
+        <Column>ID</Column>
+    </DeleteKeys>
+    <UpdateKeys>
+        <Column>ID</Column>
+    </UpdateKeys>
+    <GeneratedKey>ID</GeneratedKey>
+</JdbcEntitySetup>

OfferCandidateStatusDao.xml

<?xml version="1.0" encoding="UTF-8"?>
+<JdbcEntitySetup
+        xmlns="http://www.ontimize.com/schema/jdbc"
+        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+        xsi:schemaLocation="http://www.ontimize.com/schema/jdbc http://www.ontimize.com/schema/jdbc/ontimize-jdbc-dao.xsd"
+        catalog="" schema="${mainschema}" table="OFFER_CANDIDATE_STATUS"
+        datasource="mainDataSource" sqlhandler="dbSQLStatementHandler">
+    <DeleteKeys>
+        <Column>ID</Column>
+    </DeleteKeys>
+    <UpdateKeys>
+        <Column>ID</Column>
+    </UpdateKeys>
+    <GeneratedKey>ID</GeneratedKey>
+</JdbcEntitySetup>

OfferDao.xml

<?xml version="1.0" encoding="UTF-8"?>
+<JdbcEntitySetup
+        xmlns="http://www.ontimize.com/schema/jdbc"
+        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+        xsi:schemaLocation="http://www.ontimize.com/schema/jdbc http://www.ontimize.com/schema/jdbc/ontimize-jdbc-dao.xsd"
+        catalog="" schema="${mainschema}" table="OFFER"
+        datasource="mainDataSource" sqlhandler="dbSQLStatementHandler">
+    <DeleteKeys>
+        <Column>ID</Column>
+    </DeleteKeys>
+    <UpdateKeys>
+        <Column>ID</Column>
+    </UpdateKeys>
+    <GeneratedKey>ID</GeneratedKey>
+</JdbcEntitySetup>

OfferStatusDao.xml

<?xml version="1.0" encoding="UTF-8"?>
+<JdbcEntitySetup
+        xmlns="http://www.ontimize.com/schema/jdbc"
+        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+        xsi:schemaLocation="http://www.ontimize.com/schema/jdbc http://www.ontimize.com/schema/jdbc/ontimize-jdbc-dao.xsd"
+        catalog="" schema="${mainschema}" table="OFFER_STATUS"
+        datasource="mainDataSource" sqlhandler="dbSQLStatementHandler">
+    <DeleteKeys>
+        <Column>ID</Column>
+    </DeleteKeys>
+    <UpdateKeys>
+        <Column>ID</Column>
+    </UpdateKeys>
+    <GeneratedKey>ID</GeneratedKey>
+</JdbcEntitySetup>

OfferCandidatesDao.java

package com.ontimize.hr.model.core.dao;
+
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Repository;
+
+import com.ontimize.jee.server.dao.common.ConfigurationFile;
+import com.ontimize.jee.server.dao.jdbc.OntimizeJdbcDaoSupport;
+
+@Repository("OfferCandidatesDao")
+@Lazy
+@ConfigurationFile(configurationFile = "dao/OfferCandidatesDao.xml", configurationFilePlaceholder = "dao/placeholders.properties")
+public class OfferCandidatesDao extends OntimizeJdbcDaoSupport {
+
+    public static final String ATTR_ID ="ID";
+    public static final String ATTR_OFFER_ID ="OFFER_ID";
+    public static final String ATTR_CANDIDATE_ID ="CANDIDATE_ID";
+    public static final String ATTR_OFFER_CANDIDATE_STATUS ="OFFER_CANDIDATE_STATUS";
+
+}

OfferCandidateStatusDao.java

package com.ontimize.hr.model.core.dao;
+
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Repository;
+
+import com.ontimize.jee.server.dao.common.ConfigurationFile;
+import com.ontimize.jee.server.dao.jdbc.OntimizeJdbcDaoSupport;
+
+@Repository("OfferCandidateStatusDao")
+@Lazy
+@ConfigurationFile(configurationFile = "dao/OfferCandidateStatusDao.xml", configurationFilePlaceholder = "dao/placeholders.properties")
+public class OfferCandidateStatusDao extends OntimizeJdbcDaoSupport {
+
+    public static final String ATTR_ID ="ID";
+    public static final String ATTR_DESCRIPTION ="DESCRIPTION";
+
+}

OfferDao.java

package com.ontimize.hr.model.core.dao;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Repository;
+
+import com.ontimize.jee.server.dao.common.ConfigurationFile;
+import com.ontimize.jee.server.dao.jdbc.OntimizeJdbcDaoSupport;
+
+@Repository("OfferDao")
+@Lazy
+@ConfigurationFile(configurationFile = "dao/OfferDao.xml", configurationFilePlaceholder = "dao/placeholders.properties")
+public class OfferDao extends OntimizeJdbcDaoSupport {
+
+    public static final String ATTR_ID = "ID";
+    public static final String ATTR_ACRONYM = "ACRONYM";
+    public static final String ATTR_DESCRIPTION = "DESCRIPTION";
+    public static final String ATTR_APPLICANT = "APPLICANT";
+    public static final String ATTR_OFFER_STATUS = "OFFER_STATUS";
+    public static final String ATTR_CREATION_DATE = "CREATION_DATE";
+    public static final String ATTR_START_DATE = "START_DATE";
+    public static final String ATTR_END_DATE = "END_DATE";
+
+}

OfferStatusDao.java

package com.ontimize.hr.model.core.dao;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Repository;
+
+import com.ontimize.jee.server.dao.common.ConfigurationFile;
+import com.ontimize.jee.server.dao.jdbc.OntimizeJdbcDaoSupport;
+
+@Repository("OfferStatusDao")
+@Lazy
+@ConfigurationFile(configurationFile = "dao/OfferStatusDao.xml", configurationFilePlaceholder = "dao/placeholders.properties")
+public class OfferStatusDao extends OntimizeJdbcDaoSupport {
+
+    public static final String ATTR_ID ="ID";
+    public static final String ATTR_DESCRIPTION ="DESCRIPTION";
+
+}

Creación de la interfaz del servicio

Creamos la interfaz del servicio de ofertas para el cual hemos creado los DAO.

IOfferService.java

package com.ontimize.hr.api.core.service;
+
+import java.util.List;
+import java.util.Map;
+
+import com.ontimize.jee.common.dto.EntityResult;
+import com.ontimize.jee.common.exceptions.OntimizeJEERuntimeException;
+
+public interface IOfferService {
+
+    // OFFER
+    EntityResult offerQuery(Map<String, Object> keyMap, List<String> attrList) throws OntimizeJEERuntimeException;
+
+    EntityResult offerInsert(Map<String, Object> attrMap) throws OntimizeJEERuntimeException;
+
+    EntityResult offerUpdate(Map<String, Object> attrMap, Map<String, Object> keyMap) throws OntimizeJEERuntimeException;
+
+    EntityResult offerDelete(Map<String, Object> keyMap) throws OntimizeJEERuntimeException;
+
+    // OFFER STATUS
+    EntityResult offerStatusQuery(Map<String, Object> keyMap, List<String> attrList) throws OntimizeJEERuntimeException;
+
+    EntityResult offerStatusInsert(Map<String, Object> attrMap) throws OntimizeJEERuntimeException;
+
+    EntityResult offerStatusUpdate(Map<String, Object> attrMap, Map<String, Object> keyMap) throws OntimizeJEERuntimeException;
+
+    EntityResult offerStatusDelete(Map<String, Object> keyMap) throws OntimizeJEERuntimeException;
+
+    // OFFER CANDIDATES
+    EntityResult offerCandidateQuery(Map<String, Object> keyMap, List<String> attrList) throws OntimizeJEERuntimeException;
+
+    EntityResult offerCandidateInsert(Map<String, Object> attrMap) throws OntimizeJEERuntimeException;
+
+    EntityResult offerCandidateUpdate(Map<String, Object> attrMap, Map<String, Object> keyMap) throws OntimizeJEERuntimeException;
+
+    EntityResult offerCandidateDelete(Map<String, Object> keyMap) throws OntimizeJEERuntimeException;
+
+    // OFFER CANDIDATES STATUS
+    EntityResult offerCandidateStatusQuery(Map<String, Object> keyMap, List<String> attrList) throws OntimizeJEERuntimeException;
+
+    EntityResult offerCandidateStatusInsert(Map<String, Object> attrMap) throws OntimizeJEERuntimeException;
+
+    EntityResult offerCandidateStatusUpdate(Map<String, Object> attrMap, Map<String, Object> keyMap) throws OntimizeJEERuntimeException;
+
+    EntityResult offerCandidateStatusDelete(Map<String, Object> keyMap) throws OntimizeJEERuntimeException;
+}

Creación del servicio

Creamos una clase como servicio e implementamos la interfaz anterior.

OfferService.java

package com.ontimize.hr.model.core.service;
+
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Service;
+
+
+import com.ontimize.hr.api.core.service.IOfferService;
+import com.ontimize.hr.model.core.dao.OfferCandidateStatusDao;
+import com.ontimize.hr.model.core.dao.OfferCandidatesDao;
+import com.ontimize.hr.model.core.dao.OfferDao;
+import com.ontimize.hr.model.core.dao.OfferStatusDao;
+import com.ontimize.jee.common.dto.EntityResult;
+import com.ontimize.jee.common.exceptions.OntimizeJEERuntimeException;
+import com.ontimize.jee.server.dao.DefaultOntimizeDaoHelper;
+
+@Service("OfferService")
+@Lazy
+public class OfferService implements IOfferService {
+
+    @Autowired
+    private OfferDao offerDao;
+    @Autowired
+    private OfferStatusDao offerStatusDao;
+    @Autowired
+    private OfferCandidatesDao offerCandidatesDao;
+    @Autowired
+    private OfferCandidateStatusDao offerCandidateStatusDao;
+    @Autowired
+    private DefaultOntimizeDaoHelper daoHelper;
+
+    @Override
+    public EntityResult offerQuery(Map<String, Object> keyMap, List<String> attrList)
+            throws OntimizeJEERuntimeException {
+        return this.daoHelper.query(this.offerDao, keyMap, attrList);
+    }
+
+    @Override
+    public EntityResult offerInsert(Map<String, Object> attrMap) throws OntimizeJEERuntimeException {
+        return this.daoHelper.insert(this.offerDao, attrMap);
+    }
+
+    @Override
+    public EntityResult offerUpdate(Map<String, Object> attrMap, Map<String, Object> keyMap)
+            throws OntimizeJEERuntimeException {
+        return this.daoHelper.update(this.offerDao, attrMap, keyMap);
+    }
+
+    @Override
+    public EntityResult offerDelete(Map<String, Object> keyMap) throws OntimizeJEERuntimeException {
+        return this.daoHelper.delete(this.offerDao, keyMap);
+    }
+
+    @Override
+    public EntityResult offerStatusQuery(Map<String, Object> keyMap, List<String> attrList)
+            throws OntimizeJEERuntimeException {
+        return this.daoHelper.query(this.offerStatusDao, keyMap, attrList);
+    }
+
+    @Override
+    public EntityResult offerStatusInsert(Map<String, Object> attrMap) throws OntimizeJEERuntimeException {
+        return this.daoHelper.insert(this.offerStatusDao, attrMap);
+    }
+
+    @Override
+    public EntityResult offerStatusUpdate(Map<String, Object> attrMap, Map<String, Object> keyMap)
+            throws OntimizeJEERuntimeException {
+        return this.daoHelper.update(this.offerStatusDao, attrMap, keyMap);
+    }
+
+    @Override
+    public EntityResult offerStatusDelete(Map<String, Object> keyMap) throws OntimizeJEERuntimeException {
+        return this.daoHelper.delete(this.offerStatusDao, keyMap);
+    }
+
+    @Override
+    public EntityResult offerCandidateQuery(Map<String, Object> keyMap, List<String> attrList)
+            throws OntimizeJEERuntimeException {
+        return this.daoHelper.query(this.offerCandidatesDao, keyMap, attrList);
+    }
+
+    @Override
+    public EntityResult offerCandidateInsert(Map<String, Object> attrMap) throws OntimizeJEERuntimeException {
+        return this.daoHelper.insert(this.offerCandidatesDao, attrMap);
+    }
+
+    @Override
+    public EntityResult offerCandidateUpdate(Map<String, Object> attrMap, Map<String, Object> keyMap)
+            throws OntimizeJEERuntimeException {
+        return this.daoHelper.update(this.offerCandidatesDao, attrMap, keyMap);
+    }
+
+    @Override
+    public EntityResult offerCandidateDelete(Map<String, Object> keyMap) throws OntimizeJEERuntimeException {
+        return this.daoHelper.delete(this.offerCandidatesDao, keyMap);
+    }
+
+    @Override
+    public EntityResult offerCandidateStatusQuery(Map<String, Object> keyMap, List<String> attrList)
+            throws OntimizeJEERuntimeException {
+        return this.daoHelper.query(this.offerCandidateStatusDao, keyMap, attrList);
+    }
+
+    @Override
+    public EntityResult offerCandidateStatusInsert(Map<String, Object> attrMap) throws OntimizeJEERuntimeException {
+        return this.daoHelper.insert(this.offerCandidateStatusDao, attrMap);
+    }
+
+    @Override
+    public EntityResult offerCandidateStatusUpdate(Map<String, Object> attrMap, Map<String, Object> keyMap)
+            throws OntimizeJEERuntimeException {
+        return this.daoHelper.update(this.offerCandidateStatusDao, attrMap, keyMap);
+    }
+
+    @Override
+    public EntityResult offerCandidateStatusDelete(Map<String, Object> keyMap) throws OntimizeJEERuntimeException {
+        return this.daoHelper.delete(this.offerCandidateStatusDao, keyMap);
+    }
+}

Creación del controlador

Esta clase servirá para responder a las peticiones REST del servicio OfferService.

OfferRestController.java

package com.ontimize.hr.ws.core.rest;
+
+import com.ontimize.hr.api.core.service.IOfferService;
+import com.ontimize.jee.server.rest.ORestController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("/offers")
+public class OfferRestController extends ORestController<IOfferService> {
+
+    @Autowired
+    private IOfferService offerService;
+
+    @Override
+    public IOfferService getService() {
+        return this.offerService;
+    }
+}

arrow_back Tutorial anterior Próximo tutorial arrow_forward

diff --git a/v3/tutorial/exercise9.html b/v3/tutorial/exercise9.html new file mode 100644 index 0000000..8a24405 --- /dev/null +++ b/v3/tutorial/exercise9.html @@ -0,0 +1,145 @@ + Use of Basic Expression and new methods | Ontimize Boot Skip to main content Link Menu Expand (external link) Document Search Copy Copied
Theme mode icon

Uso de BasicExpression y nuevos métodos

Introducción

Es este ejercicio modificaremos el servicio de ofertas. En la primera parte, filtraremos las peticiones mediante el uso de BasicExpression en la propia petición REST. En la siguiente parte, haremos nuevos métodos para que filtren los datos con BasicExpression.

¿Qué es una BasicExpression?

Una BasicExpression sirve para filtrar las peticiones de una manera compleja que delimite la respuesta dentro de unas condiciones. Las BasicExpression se componen de dos operandos (derecho e izquierdo) y un operador. El operando izquierdo puede contener el nombre de una columna u otra BasicExpression, el operando derecho puede contener un valor u otra BasicExpression y un operador que indicará la relación entre ellos. De tal manera que se puede crear una BasicExpression, que de manera resumida, filtre la petición mediante esta condición:

  • START_DATE >= 2020-01-01: En este caso, el operando izquierdo es el valor de la columna, START_DATE, el operando derecho es el valor de dicha columna y el operador es el símbolo >= . De esta manera, obligaremos a que la condición de la consulta sea que devuelva todos los registros cuya fecha de inicio sea superior o igual al 1 de Enero del 2020.
  • (START_DATE >= 2020-01-01) AND (END_DATE <= 2020-06-30): En este caso existe una BasicExpression cuyo operando izquierdo es BasicExpression, el operando derecho es otra BasicExpression y el operador es el símbolo AND.

BasicExpression en el cuerpo de una petición REST

Una BasicExpression en la petición REST se escribe en el filter de esta misma petición, indicando que es una BasicExpression a través de la anotación @basic_expression, y dentro de ella, lop para el operando izquierdo, op para el operador, y rop para el operando derecho. Si queremos usar múltiples BasicExpression, basta con anidar dentro de cada operando una BasicExpression nueva. Crearemos algunas peticiones en Postman para usar las BasicExpression.

Tipo de petición Petición Cuerpo petición
POST localhost:33333/offers/offer/search
{
+    "filter": {
+        "@basic_expression": {
+            "lop": "START_DATE",
+            "op": ">=",
+            "rop": "2020-01-15"
+        }
+    },
+    "columns": [
+        "ID",
+        "DESCRIPTION",
+        "OFFER_STATUS",
+        "END_DATE",
+        "APPLICANT",
+        "ACRONYM",
+        "CREATION_DATE",
+        "START_DATE"
+    ],
+    "sqltypes":{
+        "START_DATE": 91
+    }
+}
POST localhost:33333/offers/offer/search
{
+    "filter": {
+        "@basic_expression": {
+            "lop": {
+                "lop": "START_DATE",
+                "op": ">=",
+                "rop": "2019-06-01"
+            },
+            "op": "AND",
+            "rop": {
+                "lop": "START_DATE",
+                "op": "<",
+                "rop": "2020-01-01"
+            }
+        }
+    },
+    "columns": [
+        "ID",
+        "DESCRIPTION",
+        "OFFER_STATUS",
+        "END_DATE",
+        "APPLICANT",
+        "ACRONYM",
+        "CREATION_DATE",
+        "START_DATE"
+    ],
+    "sqltypes":{
+        "START_DATE": 91
+    }
+}

BasicExpression en el método de una petición REST

En caso de que queramos crear un método nuevo que podamos invocar desde una URL específica, sin tener que añadir nosotros una BasicExpression en el cuerpo de una petición REST. En este caso, crearemos dos nuevos métodos dentro del controlador REST de las ofertas. Uno que envíe todas las ofertas del presente año y otro que, pasado en la URL un parámetro, nos devuelva las ofertas de ese año en concreto.

La anotacion @RequestMapping permite indicar la ruta para la que responderá este método, junto con el tipo de petición que se haga e indicar el tipo de respuesta a devolver.

En las condiciones de la consulta, para indicar que el valor es una BasicExpression, tenemos que añadir, como clave EXPRESSION_KEY_UNIQUE_IDENTIFIER, o lo que es lo mismo, SQLStatementBuilder.ExtendedSQLConditionValuesProcessor.EXPRESSION_KEY, una constante que contiene la cadena anterior.

OfferRestController.java

OfferRestController.java
+package com.ontimize.hr.ws.core.rest;
+
+import java.util.Calendar;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.MediaType;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.ontimize.hr.api.core.service.IOfferService;
+import com.ontimize.hr.model.core.dao.OfferDao;
+import com.ontimize.jee.common.db.SQLStatementBuilder;
+import com.ontimize.jee.common.db.SQLStatementBuilder.BasicExpression;
+import com.ontimize.jee.common.db.SQLStatementBuilder.BasicField;
+import com.ontimize.jee.common.db.SQLStatementBuilder.BasicOperator;
+import com.ontimize.jee.common.dto.EntityResult;
+import com.ontimize.jee.common.dto.EntityResultMapImpl;
+import com.ontimize.jee.server.rest.ORestController;
+
+@RestController
+@RequestMapping("/offers")
+public class OfferRestController extends ORestController<IOfferService> {
+
+    @Autowired
+    private IOfferService offerService;
+
+    @Override
+    public IOfferService getService() {
+        return this.offerService;
+    }
+
+    @RequestMapping(value = "currentOffers/search", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
+    public EntityResult currentOffersSearch(@RequestBody Map<String, Object> req) {
+        try {
+            List<String> columns = (List<String>) req.get("columns");
+            Map<String, Object> key = new HashMap<String, Object>();
+            key.put(SQLStatementBuilder.ExtendedSQLConditionValuesProcessor.EXPRESSION_KEY,
+                    searchBetween(OfferDao.ATTR_START_DATE));
+            return offerService.offerQuery(key, columns);
+        } catch (Exception e) {
+            e.printStackTrace();
+            EntityResult res = new EntityResultMapImpl();
+            res.setCode(EntityResult.OPERATION_WRONG);
+            return res;
+        }
+    }
+
+    @RequestMapping(value = "yearOffers/search", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
+    public EntityResult yearOffersSearch(@RequestBody Map<String, Object> req) {
+        try {
+            List<String> columns = (List<String>) req.get("columns");
+            Map<String, Object> filter = (Map<String, Object>) req.get("filter");
+            int year = (int) filter.get("YEAR");
+            Map<String, Object> key = new HashMap<String, Object>();
+            key.put(SQLStatementBuilder.ExtendedSQLConditionValuesProcessor.EXPRESSION_KEY,
+                    searchBetweenWithYear(OfferDao.ATTR_START_DATE, year));
+            return offerService.offerQuery(key, columns);
+        } catch (Exception e) {
+            e.printStackTrace();
+            EntityResult res = new EntityResultMapImpl();
+            res.setCode(EntityResult.OPERATION_WRONG);
+            return res;
+        }
+    }
+
+    private BasicExpression searchBetween(String param) {
+
+        Calendar cal = Calendar.getInstance();
+        int currentYear = cal.get(Calendar.YEAR);
+
+        return this.searchBetweenWithYear(param, currentYear);
+    }
+
+    private BasicExpression searchBetweenWithYear(String param, int year) {
+
+        Calendar cal = Calendar.getInstance();
+        cal.set(year, 0, 1);
+        Date startDate = cal.getTime();
+        cal.set(year + 1, 0, 1);
+        Date endDate = cal.getTime();
+
+        BasicField field = new BasicField(param);
+        BasicExpression bexp1 = new BasicExpression(field, BasicOperator.MORE_EQUAL_OP, startDate);
+        BasicExpression bexp2 = new BasicExpression(field, BasicOperator.LESS_OP, endDate);
+        return new BasicExpression(bexp1, BasicOperator.AND_OP, bexp2);
+    }
+
+}

arrow_back Tutorial anterior Próximo tutorial arrow_forward

diff --git a/v3/tutorial/index.html b/v3/tutorial/index.html new file mode 100644 index 0000000..7bcd461 --- /dev/null +++ b/v3/tutorial/index.html @@ -0,0 +1 @@ + Tutorial | Ontimize Boot Skip to main content Link Menu Expand (external link) Document Search Copy Copied
Theme mode icon

Ontimize Boot Tutorial

This section contains a tutorial that will guide us through the creation of a backend for a simple Human Resources application, in which we will see concepts such as the structure of an Ontimize Boot application, DAO’s, services, controllers, requests, Entity Results, transactions, Basic Expression, complex queries and permissions.

These tutorials are written in Spanish.

diff --git a/v3/versions/index.html b/v3/versions/index.html new file mode 100644 index 0000000..677436a --- /dev/null +++ b/v3/versions/index.html @@ -0,0 +1 @@ + Versions | Ontimize Boot Skip to main content Link Menu Expand (external link) Document Search Copy Copied
Theme mode icon

Ontimize Versions

The purpose of this page is to indicate the latest versions of Ontimize Boot projects published in Maven Central.

  • Ontimize Boot
  • Ontimize Boot Parent
  • Ontimize EE
  • Ontimize EE DMS
  • Ontimize EE Report
  • Ontimize OpenApi Generator
  • Ontimize EE DMS
  • Ontimize Boot Archetype

3.X.X - Ontimize Boot

Ontimize Boot Ontimize Boot Parent Ontimize EE Ontimize EE DMS Ontimize EE SMDS Ontimize EE Report Ontimize OpenAPI Generator
3.15.1 3.15.1 5.12.1 3.2.0 1.3.1 3.4.0 1.2.0
3.15.0 3.15.0 5.12.0
3.14.0 3.14.0 5.11.0 3.1.0 1.0.4
3.13.0 3.13.0 5.10.0 3.3.0
3.12.0 3.12.0 5.9.0 1.0.2
3.11.0 3.11.0 5.8.0 1.0.0 3.2.0
3.10.1 3.10.1 5.7.0 - 1.0.1
3.10.0 3.10.0 5.7.0-SNAPSHOT
3.9.0 3.9.0 5.6.0
3.8.1 3.8.1 5.5.0 3.1.0
3.8.0 3.8.0
3.7.0 3.7.0
3.6.0 3.6.0 3.0.0
3.5.0 3.5.0
3.4.0 3.4.0
3.3.0 3.3.0 3.0.0-SNAPSHOT
3.2.0 3.2.0
3.1.0 - 5.4.0 - -

Ontimize Boot Archetype

Ontimize Boot Archetype Ontimize Boot
1.0.11 3.14.0
1.0.10 3.13.0
1.0.9 3.12.0
1.0.8 3.10.1
1.0.7
1.0.6 3.9.0
1.0.5
1.0.4
1.0.3
1.0.2 3.8.1
1.0.1 3.1.0
1.0.0