UNPKG

@diplodoc/transform

Version:

A simple transformer of text in YFM (Yandex Flavored Markdown) to HTML

4 lines 84.3 kB
{ "version": 3, "sources": ["../../src/scss/home/runner/work/transform/transform/src/scss/_common.scss", "../../src/scss/home/runner/work/transform/transform/src/scss/_lists.scss", "../../src/scss/%3Cinput%20css%20V4IxZl%3E", "../../src/scss/home/runner/work/transform/transform/src/scss/private.scss", "../../src/scss/home/runner/work/transform/transform/src/scss/brand.scss", "../../src/scss/home/runner/work/transform/transform/src/scss/_anchor.scss", "../../src/scss/home/runner/work/transform/transform/src/scss/_highlight.scss", "../../src/scss/home/runner/work/transform/transform/src/scss/_code.scss"], "sourcesContent": ["/* stylelint-disable declaration-no-important */\n\n@use 'private';\n@use 'brand';\n@use 'lists';\n\n@mixin removeMarginForEdgeChildren {\n & > *:first-child {\n margin-top: 0;\n }\n\n & > *:last-child {\n margin-bottom: 0;\n }\n}\n\n.yfm {\n @include private.private-brand();\n @include brand.brand();\n\n font-family: var(--yfm-font-family-sans);\n font-size: var(--yfm-font-size, 15px);\n line-height: var(--yfm-font-line-height, 20px);\n word-wrap: break-word;\n color: var(--yfm-color-text);\n tab-size: var(--yfm-tab-size, inherit);\n\n --yfm-font-family-monospace: 'Menlo', 'Monaco', 'Consolas', 'Ubuntu Mono', 'Liberation Mono',\n 'DejaVu Sans Mono', 'Courier New', 'Courier', monospace;\n --yfm-font-family-sans: 'Segoe UI', arial, helvetica, sans-serif, 'Apple Color Emoji',\n 'Segoe UI Emoji', 'Segoe UI Symbol';\n\n * {\n box-sizing: border-box;\n }\n\n & > *:not(h2):not(h3):not(h4):not(h5):not(h6):first-child {\n margin-top: 0 !important;\n }\n\n & > *:last-child {\n margin-bottom: 0 !important;\n }\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n margin-bottom: 15px;\n font-weight: 500;\n }\n\n h1 {\n font-size: var(--yfm-font-size-h1, 32px);\n line-height: var(--yfm-font-line-height-h1, 40px);\n }\n\n h2 {\n font-size: var(--yfm-font-size-h2, 24px);\n line-height: var(--yfm-font-line-height-h2, 28px);\n }\n\n h3 {\n font-size: var(--yfm-font-size-h3, 20px);\n line-height: var(--yfm-font-line-height-h3, 24px);\n }\n\n h4 {\n font-size: var(--yfm-font-size-h4, 17px);\n line-height: var(--yfm-font-line-height-h4, 24px);\n }\n\n h5 {\n font-size: var(--yfm-font-size-h5, 15px);\n line-height: var(--yfm-font-line-height-h5, 20px);\n }\n\n h6 {\n font-size: var(--yfm-font-size-h6, 13px);\n line-height: var(--yfm-font-line-height-h6, 18px);\n }\n\n a {\n background-color: transparent;\n color: var(--yfm-color-link);\n text-decoration: none;\n\n &:hover,\n &:active {\n color: var(--yfm-color-link-hover);\n }\n\n &:not([href]) {\n color: inherit;\n }\n }\n\n strong {\n font-weight: 700;\n }\n\n img,\n svg {\n box-sizing: content-box;\n max-width: 100%;\n max-height: fit-content;\n border: none;\n vertical-align: middle;\n\n &[align='right'] {\n padding-left: 20px;\n }\n\n &[align='left'] {\n padding-right: 20px;\n }\n }\n\n .mermaid svg[id*='mermaid'] {\n max-height: none;\n }\n\n img {\n object-fit: contain;\n background-color: var(--yfm-color-base);\n }\n\n svg {\n height: auto;\n }\n\n img + small {\n display: block;\n }\n\n p,\n blockquote,\n ul,\n ol,\n dl,\n table,\n pre {\n margin-block: var(--yfm-text-block-margin-block, 0 15px);\n margin-inline: var(--yfm-text-block-margin-inline, 0);\n }\n\n ul,\n ol,\n dl {\n & pre {\n margin-top: 15px;\n }\n }\n\n code,\n kbd,\n pre {\n font-family: var(--yfm-font-family-monospace);\n font-size: 1em;\n font-feature-settings: normal;\n }\n\n input {\n margin: 0;\n overflow: visible;\n\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n\n &[type='checkbox'] {\n position: relative;\n top: 1px;\n\n box-sizing: border-box;\n padding: 0;\n }\n }\n\n table {\n color: var(--yfm-color-table);\n\n display: inline-block;\n max-width: 100%;\n width: auto;\n overflow: auto;\n position: relative;\n z-index: 1;\n\n box-sizing: border-box;\n border: 1px solid var(--yfm-color-border);\n border-radius: 8px;\n border-collapse: collapse;\n border-spacing: 0;\n background: var(--yfm-color-base);\n\n thead,\n tr:nth-child(2n) {\n background-color: var(--yfm-color-table-row-background);\n }\n\n tr:first-child {\n td,\n th {\n border-top: none;\n }\n }\n\n tr:last-child {\n td,\n th {\n border-bottom: none;\n }\n }\n\n th,\n td {\n padding: 10px 20px;\n overflow: hidden;\n text-overflow: ellipsis;\n border: 1px solid var(--yfm-color-border);\n\n @include removeMarginForEdgeChildren();\n }\n\n td {\n vertical-align: top;\n white-space: normal;\n }\n\n th {\n font-weight: 500;\n text-align: left;\n }\n\n tr td:first-child,\n tr th:first-child {\n border-left: none;\n }\n tr td:last-child,\n tr th:last-child {\n border-right: none;\n }\n }\n\n hr {\n box-sizing: content-box;\n height: 0.25em;\n padding: 0;\n margin: 1.5em 0;\n overflow: hidden;\n\n background-color: var(--yfm-color-border);\n border: none;\n\n &::before {\n content: '';\n display: table;\n }\n\n &::after {\n content: '';\n display: table;\n clear: both;\n }\n }\n\n blockquote {\n position: relative;\n padding-left: 12px;\n border-left: 3px solid var(--yfm-color-accent);\n\n @include removeMarginForEdgeChildren();\n }\n\n dl {\n padding: 0;\n\n @include removeMarginForEdgeChildren();\n\n dt {\n margin-bottom: 5px;\n font-size: 1em;\n font-weight: 500;\n }\n\n dd {\n margin-bottom: 15px;\n padding: 0 15px;\n }\n }\n\n dd {\n margin-left: 0;\n }\n\n ul,\n ol {\n padding-left: 2.2em;\n }\n\n ul ul:last-child,\n ul ol:last-child,\n ol ol:last-child,\n ol ul:last-child {\n margin-top: 0;\n margin-bottom: 0;\n }\n\n li {\n word-wrap: break-word;\n }\n\n li:first-child,\n li + li {\n margin-block: var(--yfm-list-item-margin-block, 0.33em 0);\n }\n\n li {\n p,\n blockquote {\n margin-block: var(--yfm-list-text-margin-block, 0 15px);\n }\n\n > p:only-of-type,\n > blockquote:only-of-type,\n > p:first-child:has(+ ul),\n > p:first-child:has(+ ol) {\n margin-block: var(--yfm-list-text-only-margin-block, 0);\n }\n\n > p:last-child {\n margin-block: var(--yfm-list-text-last-margin-block, 0);\n }\n }\n\n code {\n padding: 0.1em 0.4em 0.15em;\n background-color: var(--yfm-color-inline-code-background);\n border-radius: 4px;\n font-size: 0.875em;\n white-space: pre-wrap;\n color: var(--yfm-color-inline-code);\n tab-size: var(--yfm-tab-size-code, inherit);\n }\n\n a code {\n color: inherit;\n }\n\n pre {\n word-wrap: normal;\n }\n\n table code {\n white-space: nowrap;\n }\n\n pre * code {\n display: inline;\n padding: 0;\n margin: 0;\n overflow: visible;\n word-wrap: normal;\n background-color: transparent;\n border: 0;\n color: var(--yfm-color-text);\n }\n\n pre > code {\n display: block;\n padding: 16px;\n overflow: auto;\n\n background-color: var(--yfm-color-code-background);\n color: var(--yfm-color-text);\n\n white-space: pre;\n\n .yfm-line-number {\n display: inline-block;\n padding-right: 1em;\n color: var(--yfm-color-line-numbers, #666);\n user-select: none;\n }\n }\n\n sup,\n sub {\n line-height: 0;\n }\n\n /*\n Hides element visually, but leaves it visible for search crawlers and screen readers\n\n https://www.a11yproject.com/posts/2013-01-11-how-to-hide-content/\n https://hugogiraudel.com/2016/10/13/css-hide-and-seek/\n */\n .visually-hidden {\n position: absolute;\n\n overflow: hidden;\n clip: rect(0 0 0 0);\n\n width: 1px;\n height: 1px;\n margin: -1px;\n\n padding: 0;\n\n white-space: nowrap;\n\n border: 0;\n\n clip-path: inset(100%);\n user-select: none;\n }\n}\n", "@use 'sass:list';\n@use 'sass:string';\n\n@function get-counter-ident($depth) {\n $ident: hier-list-item;\n\n @for $i from 0 to $depth {\n $ident: sub-#{$ident};\n }\n\n @return $ident;\n}\n\n@function get-selector($depth) {\n $selector: ol;\n\n @for $i from 0 to $depth {\n $selector: '#{$selector} > li > ol';\n }\n\n @return $selector;\n}\n\n@function get-marker-content($idents) {\n $length: list.length($idents);\n $content: '';\n\n @for $i from 1 through $length {\n @if $i > 1 {\n $content: '#{$content} \".\"';\n }\n\n $content: '#{$content} counter(#{list.nth($idents, $i)})';\n }\n\n @return #{$content} '. ';\n}\n\n@mixin hier-list($max-depth) {\n $ident-path: ();\n\n @for $i from 0 through $max-depth {\n $ident: get-counter-ident($i);\n $ident-path: list.append($ident-path, $ident);\n\n & #{get-selector($i)} {\n --hier-list-start: 0;\n counter-reset: #{$ident} var(--hier-list-start);\n\n & > li {\n counter-increment: $ident;\n\n &::marker {\n content: get-marker-content($ident-path);\n }\n }\n }\n }\n}\n\n.yfm {\n @include hier-list(5);\n\n &.yfm_no-list-reset ol,\n ol.yfm_no-list-reset,\n .yfm_no-list-reset ol {\n counter-reset: list-item;\n\n & li {\n counter-increment: unset;\n\n &::marker {\n content: unset;\n }\n }\n }\n}\n", "/* stylelint-disable declaration-no-important */\n.yfm ol {\n --hier-list-start: 0;\n counter-reset: hier-list-item var(--hier-list-start);\n}\n.yfm ol > li {\n counter-increment: hier-list-item;\n}\n.yfm ol > li::marker {\n content: counter(hier-list-item) \". \";\n}\n.yfm ol > li > ol {\n --hier-list-start: 0;\n counter-reset: sub-hier-list-item var(--hier-list-start);\n}\n.yfm ol > li > ol > li {\n counter-increment: sub-hier-list-item;\n}\n.yfm ol > li > ol > li::marker {\n content: counter(hier-list-item) \".\" counter(sub-hier-list-item) \". \";\n}\n.yfm ol > li > ol > li > ol {\n --hier-list-start: 0;\n counter-reset: sub-sub-hier-list-item var(--hier-list-start);\n}\n.yfm ol > li > ol > li > ol > li {\n counter-increment: sub-sub-hier-list-item;\n}\n.yfm ol > li > ol > li > ol > li::marker {\n content: counter(hier-list-item) \".\" counter(sub-hier-list-item) \".\" counter(sub-sub-hier-list-item) \". \";\n}\n.yfm ol > li > ol > li > ol > li > ol {\n --hier-list-start: 0;\n counter-reset: sub-sub-sub-hier-list-item var(--hier-list-start);\n}\n.yfm ol > li > ol > li > ol > li > ol > li {\n counter-increment: sub-sub-sub-hier-list-item;\n}\n.yfm ol > li > ol > li > ol > li > ol > li::marker {\n content: counter(hier-list-item) \".\" counter(sub-hier-list-item) \".\" counter(sub-sub-hier-list-item) \".\" counter(sub-sub-sub-hier-list-item) \". \";\n}\n.yfm ol > li > ol > li > ol > li > ol > li > ol {\n --hier-list-start: 0;\n counter-reset: sub-sub-sub-sub-hier-list-item var(--hier-list-start);\n}\n.yfm ol > li > ol > li > ol > li > ol > li > ol > li {\n counter-increment: sub-sub-sub-sub-hier-list-item;\n}\n.yfm ol > li > ol > li > ol > li > ol > li > ol > li::marker {\n content: counter(hier-list-item) \".\" counter(sub-hier-list-item) \".\" counter(sub-sub-hier-list-item) \".\" counter(sub-sub-sub-hier-list-item) \".\" counter(sub-sub-sub-sub-hier-list-item) \". \";\n}\n.yfm ol > li > ol > li > ol > li > ol > li > ol > li > ol {\n --hier-list-start: 0;\n counter-reset: sub-sub-sub-sub-sub-hier-list-item var(--hier-list-start);\n}\n.yfm ol > li > ol > li > ol > li > ol > li > ol > li > ol > li {\n counter-increment: sub-sub-sub-sub-sub-hier-list-item;\n}\n.yfm ol > li > ol > li > ol > li > ol > li > ol > li > ol > li::marker {\n content: counter(hier-list-item) \".\" counter(sub-hier-list-item) \".\" counter(sub-sub-hier-list-item) \".\" counter(sub-sub-sub-hier-list-item) \".\" counter(sub-sub-sub-sub-hier-list-item) \".\" counter(sub-sub-sub-sub-sub-hier-list-item) \". \";\n}\n.yfm.yfm_no-list-reset ol,\n.yfm ol.yfm_no-list-reset,\n.yfm .yfm_no-list-reset ol {\n counter-reset: list-item;\n}\n.yfm.yfm_no-list-reset ol li,\n.yfm ol.yfm_no-list-reset li,\n.yfm .yfm_no-list-reset ol li {\n counter-increment: unset;\n}\n.yfm.yfm_no-list-reset ol li::marker,\n.yfm ol.yfm_no-list-reset li::marker,\n.yfm .yfm_no-list-reset ol li::marker {\n content: unset;\n}\n\n.yfm {\n --yfm-color-text-private: rgba(0, 0, 0, 0.7);\n --yfm-color-link-private: #027bf3;\n --yfm-color-link-hover-private: #004080;\n --yfm-color-base-private: #ffffff;\n --yfm-color-table-private: #333;\n --yfm-color-border-private: rgba(0, 0, 0, 0.07);\n --yfm-color-table-row-background-private: rgba(0, 0, 0, 0.02);\n --yfm-color-table-row-header-background-private: rgba(247, 247, 247, 1);\n --yfm-color-accent-private: #027bf3;\n --yfm-color-inline-code-private: rgba(59, 96, 128, 1);\n --yfm-color-inline-code-background-private: rgba(107, 132, 153, 0.12);\n --yfm-color-code-background-private: rgba(107, 132, 153, 0.12);\n --yfm-color-code-background-hovered-private: rgba(107, 132, 153, 0.2);\n --yfm-color-hljs-background-private: rgba(107, 132, 153, 0.12);\n --yfm-color-hljs-subst-private: #444;\n --yfm-color-hljs-comment-private: #888888;\n --yfm-color-hljs-deletion-private: #880000;\n --yfm-color-hljs-section-private: #880000;\n --yfm-color-hljs-pseudo-private: #bc6060;\n --yfm-color-hljs-literal-private: #78a960;\n --yfm-color-hljs-addition-private: #397300;\n --yfm-color-hljs-meta-private: #1f7199;\n --yfm-color-hljs-meta-string-private: #4d99bf;\n --yfm-color-note-tip-private: #56bd67;\n --yfm-color-note-tip-background-private: rgba(63, 201, 46, 0.1);\n --yfm-color-note-warning-private: #f19518;\n --yfm-color-note-warning-background-private: rgba(255, 136, 0, 0.15);\n --yfm-color-note-important-private: #ff4645;\n --yfm-color-note-important-background-private: rgba(235, 50, 38, 0.08);\n --yfm-color-note-info-private: #027bf3;\n --yfm-color-note-info-background-private: rgba(2, 123, 243, 0.08);\n --yfm-color-term-title-private: #027bf3;\n --yfm-color-term-title-hover-private: #004080;\n --yfm-color-term-dfn-background-private: rgb(255, 255, 255);\n --yfm-color-term-dfn-shadow-private: rgba(0, 0, 0, 0.15);\n --yfm-color-term-dfn-presudo-shadow-private: rgb(229, 229, 229);\n --yfm-color-modal-content-private: rgb(255, 255, 255);\n --yfm-color-modal-actions-hover-private: rgba(0, 0, 0, 0.05);\n --yfm-color-modal-wide-content-private: rgba(0, 0, 0, 0.85);\n --yfm-color-modal-wide-content-overlay-private: rgb(0, 0, 0);\n --yfm-color-base: var(--yfm-color-base-private);\n --yfm-color-text: var(--yfm-color-text-private);\n --yfm-color-link: var(--yfm-color-link-private);\n --yfm-color-link-hover: var(--yfm-color-link-hover-private);\n --yfm-color-table: var(--yfm-color-table-private);\n --yfm-color-table-row-background: var(--yfm-color-table-row-background-private);\n --yfm-color-table-row-header-background: var(--yfm-color-table-row-header-background-private);\n --yfm-color-border: var(--yfm-color-border-private);\n --yfm-color-accent: var(--yfm-color-accent-private);\n --yfm-color-inline-code: var(--yfm-color-inline-code-private);\n --yfm-color-inline-code-background: var(--yfm-color-inline-code-background-private);\n --yfm-color-code-background: var(--yfm-color-code-background-private);\n --yfm-color-code-hovered-background: var(--yfm-color-code-hovered-background-private);\n --yfm-color-hljs-background: var(--yfm-color-hljs-background-private);\n --yfm-color-hljs-subst: var(--yfm-color-hljs-subst-private);\n --yfm-color-hljs-comment: var(--yfm-color-hljs-comment-private);\n --yfm-color-hljs-deletion: var(--yfm-color-hljs-deletion-private);\n --yfm-color-hljs-section: var(--yfm-color-hljs-section-private);\n --yfm-color-hljs-pseudo: var(--yfm-color-hljs-pseudo-private);\n --yfm-color-hljs-literal: var(--yfm-color-hljs-literal-private);\n --yfm-color-hljs-addition: var(--yfm-color-hljs-addition-private);\n --yfm-color-hljs-meta: var(--yfm-color-hljs-meta-private);\n --yfm-color-hljs-meta-string: var(--yfm-color-hljs-meta-string-private);\n --yfm-color-note-tip: var(--yfm-color-note-tip-private);\n --yfm-color-note-tip-background: var(--yfm-color-note-tip-background-private);\n --yfm-color-note-warning: var(--yfm-color-note-warning-private);\n --yfm-color-note-warning-background: var(--yfm-color-note-warning-background-private);\n --yfm-color-note-important: var(--yfm-color-note-important-private);\n --yfm-color-note-important-background: var(--yfm-color-note-important-background-private);\n --yfm-color-note-info: var(--yfm-color-note-info-private);\n --yfm-color-note-info-background: var(--yfm-color-note-info-background-private);\n --yfm-color-term-title: var(--yfm-color-term-title-private);\n --yfm-color-term-title-hover: var(--yfm-color-term-title-hover-private);\n --yfm-color-term-dfn-background: var(--yfm-color-term-dfn-background-private);\n --yfm-color-term-dfn-shadow: var(--yfm-color-term-dfn-shadow-private);\n --yfm-color-term-dfn-pseudo-shadow: var(--yfm-color-term-dfn-presudo-shadow-private);\n --yfm-color-modal-content: var(--yfm-color-modal-content-private);\n --yfm-color-modal-actions-hover: var(--yfm-color-modal-actions-hover-private);\n --yfm-color-modal-wide-content: var(--yfm-color-modal-wide-content-private);\n --yfm-color-modal-wide-content-overlay: var(--yfm-color-modal-wide-content-overlay-private);\n font-family: var(--yfm-font-family-sans);\n font-size: var(--yfm-font-size, 15px);\n line-height: var(--yfm-font-line-height, 20px);\n word-wrap: break-word;\n color: var(--yfm-color-text);\n tab-size: var(--yfm-tab-size, inherit);\n --yfm-font-family-monospace: \"Menlo\", \"Monaco\", \"Consolas\", \"Ubuntu Mono\", \"Liberation Mono\",\n \"DejaVu Sans Mono\", \"Courier New\", \"Courier\", monospace;\n --yfm-font-family-sans: \"Segoe UI\", arial, helvetica, sans-serif, \"Apple Color Emoji\",\n \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n /*\n Hides element visually, but leaves it visible for search crawlers and screen readers\n\n https://www.a11yproject.com/posts/2013-01-11-how-to-hide-content/\n https://hugogiraudel.com/2016/10/13/css-hide-and-seek/\n */\n}\n.yfm * {\n box-sizing: border-box;\n}\n.yfm > *:not(h2):not(h3):not(h4):not(h5):not(h6):first-child {\n margin-top: 0 !important;\n}\n.yfm > *:last-child {\n margin-bottom: 0 !important;\n}\n.yfm h1,\n.yfm h2,\n.yfm h3,\n.yfm h4,\n.yfm h5,\n.yfm h6 {\n margin-bottom: 15px;\n font-weight: 500;\n}\n.yfm h1 {\n font-size: var(--yfm-font-size-h1, 32px);\n line-height: var(--yfm-font-line-height-h1, 40px);\n}\n.yfm h2 {\n font-size: var(--yfm-font-size-h2, 24px);\n line-height: var(--yfm-font-line-height-h2, 28px);\n}\n.yfm h3 {\n font-size: var(--yfm-font-size-h3, 20px);\n line-height: var(--yfm-font-line-height-h3, 24px);\n}\n.yfm h4 {\n font-size: var(--yfm-font-size-h4, 17px);\n line-height: var(--yfm-font-line-height-h4, 24px);\n}\n.yfm h5 {\n font-size: var(--yfm-font-size-h5, 15px);\n line-height: var(--yfm-font-line-height-h5, 20px);\n}\n.yfm h6 {\n font-size: var(--yfm-font-size-h6, 13px);\n line-height: var(--yfm-font-line-height-h6, 18px);\n}\n.yfm a {\n background-color: transparent;\n color: var(--yfm-color-link);\n text-decoration: none;\n}\n.yfm a:hover, .yfm a:active {\n color: var(--yfm-color-link-hover);\n}\n.yfm a:not([href]) {\n color: inherit;\n}\n.yfm strong {\n font-weight: 700;\n}\n.yfm img,\n.yfm svg {\n box-sizing: content-box;\n max-width: 100%;\n max-height: fit-content;\n border: none;\n vertical-align: middle;\n}\n.yfm img[align=right],\n.yfm svg[align=right] {\n padding-left: 20px;\n}\n.yfm img[align=left],\n.yfm svg[align=left] {\n padding-right: 20px;\n}\n.yfm .mermaid svg[id*=mermaid] {\n max-height: none;\n}\n.yfm img {\n object-fit: contain;\n background-color: var(--yfm-color-base);\n}\n.yfm svg {\n height: auto;\n}\n.yfm img + small {\n display: block;\n}\n.yfm p,\n.yfm blockquote,\n.yfm ul,\n.yfm ol,\n.yfm dl,\n.yfm table,\n.yfm pre {\n margin-block: var(--yfm-text-block-margin-block, 0 15px);\n margin-inline: var(--yfm-text-block-margin-inline, 0);\n}\n.yfm ul pre,\n.yfm ol pre,\n.yfm dl pre {\n margin-top: 15px;\n}\n.yfm code,\n.yfm kbd,\n.yfm pre {\n font-family: var(--yfm-font-family-monospace);\n font-size: 1em;\n font-feature-settings: normal;\n}\n.yfm input {\n margin: 0;\n overflow: visible;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n.yfm input[type=checkbox] {\n position: relative;\n top: 1px;\n box-sizing: border-box;\n padding: 0;\n}\n.yfm table {\n color: var(--yfm-color-table);\n display: inline-block;\n max-width: 100%;\n width: auto;\n overflow: auto;\n position: relative;\n z-index: 1;\n box-sizing: border-box;\n border: 1px solid var(--yfm-color-border);\n border-radius: 8px;\n border-collapse: collapse;\n border-spacing: 0;\n background: var(--yfm-color-base);\n}\n.yfm table thead,\n.yfm table tr:nth-child(2n) {\n background-color: var(--yfm-color-table-row-background);\n}\n.yfm table tr:first-child td,\n.yfm table tr:first-child th {\n border-top: none;\n}\n.yfm table tr:last-child td,\n.yfm table tr:last-child th {\n border-bottom: none;\n}\n.yfm table th,\n.yfm table td {\n padding: 10px 20px;\n overflow: hidden;\n text-overflow: ellipsis;\n border: 1px solid var(--yfm-color-border);\n}\n.yfm table th > *:first-child,\n.yfm table td > *:first-child {\n margin-top: 0;\n}\n.yfm table th > *:last-child,\n.yfm table td > *:last-child {\n margin-bottom: 0;\n}\n.yfm table td {\n vertical-align: top;\n white-space: normal;\n}\n.yfm table th {\n font-weight: 500;\n text-align: left;\n}\n.yfm table tr td:first-child,\n.yfm table tr th:first-child {\n border-left: none;\n}\n.yfm table tr td:last-child,\n.yfm table tr th:last-child {\n border-right: none;\n}\n.yfm hr {\n box-sizing: content-box;\n height: 0.25em;\n padding: 0;\n margin: 1.5em 0;\n overflow: hidden;\n background-color: var(--yfm-color-border);\n border: none;\n}\n.yfm hr::before {\n content: \"\";\n display: table;\n}\n.yfm hr::after {\n content: \"\";\n display: table;\n clear: both;\n}\n.yfm blockquote {\n position: relative;\n padding-left: 12px;\n border-left: 3px solid var(--yfm-color-accent);\n}\n.yfm blockquote > *:first-child {\n margin-top: 0;\n}\n.yfm blockquote > *:last-child {\n margin-bottom: 0;\n}\n.yfm dl {\n padding: 0;\n}\n.yfm dl > *:first-child {\n margin-top: 0;\n}\n.yfm dl > *:last-child {\n margin-bottom: 0;\n}\n.yfm dl dt {\n margin-bottom: 5px;\n font-size: 1em;\n font-weight: 500;\n}\n.yfm dl dd {\n margin-bottom: 15px;\n padding: 0 15px;\n}\n.yfm dd {\n margin-left: 0;\n}\n.yfm ul,\n.yfm ol {\n padding-left: 2.2em;\n}\n.yfm ul ul:last-child,\n.yfm ul ol:last-child,\n.yfm ol ol:last-child,\n.yfm ol ul:last-child {\n margin-top: 0;\n margin-bottom: 0;\n}\n.yfm li {\n word-wrap: break-word;\n}\n.yfm li:first-child,\n.yfm li + li {\n margin-block: var(--yfm-list-item-margin-block, 0.33em 0);\n}\n.yfm li p,\n.yfm li blockquote {\n margin-block: var(--yfm-list-text-margin-block, 0 15px);\n}\n.yfm li > p:only-of-type,\n.yfm li > blockquote:only-of-type,\n.yfm li > p:first-child:has(+ ul),\n.yfm li > p:first-child:has(+ ol) {\n margin-block: var(--yfm-list-text-only-margin-block, 0);\n}\n.yfm li > p:last-child {\n margin-block: var(--yfm-list-text-last-margin-block, 0);\n}\n.yfm code {\n padding: 0.1em 0.4em 0.15em;\n background-color: var(--yfm-color-inline-code-background);\n border-radius: 4px;\n font-size: 0.875em;\n white-space: pre-wrap;\n color: var(--yfm-color-inline-code);\n tab-size: var(--yfm-tab-size-code, inherit);\n}\n.yfm a code {\n color: inherit;\n}\n.yfm pre {\n word-wrap: normal;\n}\n.yfm table code {\n white-space: nowrap;\n}\n.yfm pre * code {\n display: inline;\n padding: 0;\n margin: 0;\n overflow: visible;\n word-wrap: normal;\n background-color: transparent;\n border: 0;\n color: var(--yfm-color-text);\n}\n.yfm pre > code {\n display: block;\n padding: 16px;\n overflow: auto;\n background-color: var(--yfm-color-code-background);\n color: var(--yfm-color-text);\n white-space: pre;\n}\n.yfm pre > code .yfm-line-number {\n display: inline-block;\n padding-right: 1em;\n color: var(--yfm-color-line-numbers, #666);\n user-select: none;\n}\n.yfm sup,\n.yfm sub {\n line-height: 0;\n}\n.yfm .visually-hidden {\n position: absolute;\n overflow: hidden;\n clip: rect(0 0 0 0);\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n white-space: nowrap;\n border: 0;\n clip-path: inset(100%);\n user-select: none;\n}\n\n.yfm h1 .yfm-clipboard-anchor,\n.yfm h2 .yfm-clipboard-anchor,\n.yfm h3 .yfm-clipboard-anchor,\n.yfm h4 .yfm-clipboard-anchor,\n.yfm h5 .yfm-clipboard-anchor,\n.yfm h6 .yfm-clipboard-anchor {\n background: none;\n color: var(--yfm-color-link);\n border: none;\n padding: 0;\n font: inherit;\n cursor: pointer;\n}\n.yfm h1 .yfm-clipboard-anchor:hover,\n.yfm h2 .yfm-clipboard-anchor:hover,\n.yfm h3 .yfm-clipboard-anchor:hover,\n.yfm h4 .yfm-clipboard-anchor:hover,\n.yfm h5 .yfm-clipboard-anchor:hover,\n.yfm h6 .yfm-clipboard-anchor:hover {\n color: var(--yfm-color-link-hover);\n}\n.yfm h1 .yfm-anchor,\n.yfm h1 .yfm-clipboard-anchor,\n.yfm h2 .yfm-anchor,\n.yfm h2 .yfm-clipboard-anchor,\n.yfm h3 .yfm-anchor,\n.yfm h3 .yfm-clipboard-anchor,\n.yfm h4 .yfm-anchor,\n.yfm h4 .yfm-clipboard-anchor,\n.yfm h5 .yfm-anchor,\n.yfm h5 .yfm-clipboard-anchor,\n.yfm h6 .yfm-anchor,\n.yfm h6 .yfm-clipboard-anchor {\n display: inline-block;\n width: 24px;\n padding-right: 4px;\n margin-left: -24px;\n float: left;\n text-align: center;\n font-size: 18px;\n}\n.yfm h1 .yfm-anchor:focus::before,\n.yfm h1 .yfm-clipboard-anchor:focus::before,\n.yfm h2 .yfm-anchor:focus::before,\n.yfm h2 .yfm-clipboard-anchor:focus::before,\n.yfm h3 .yfm-anchor:focus::before,\n.yfm h3 .yfm-clipboard-anchor:focus::before,\n.yfm h4 .yfm-anchor:focus::before,\n.yfm h4 .yfm-clipboard-anchor:focus::before,\n.yfm h5 .yfm-anchor:focus::before,\n.yfm h5 .yfm-clipboard-anchor:focus::before,\n.yfm h6 .yfm-anchor:focus::before,\n.yfm h6 .yfm-clipboard-anchor:focus::before {\n opacity: 1;\n}\n.yfm h1 .yfm-anchor::before,\n.yfm h1 .yfm-clipboard-anchor::before,\n.yfm h2 .yfm-anchor::before,\n.yfm h2 .yfm-clipboard-anchor::before,\n.yfm h3 .yfm-anchor::before,\n.yfm h3 .yfm-clipboard-anchor::before,\n.yfm h4 .yfm-anchor::before,\n.yfm h4 .yfm-clipboard-anchor::before,\n.yfm h5 .yfm-anchor::before,\n.yfm h5 .yfm-clipboard-anchor::before,\n.yfm h6 .yfm-anchor::before,\n.yfm h6 .yfm-clipboard-anchor::before {\n content: \"#\";\n opacity: 0;\n}\n.yfm h1:hover .yfm-anchor::before,\n.yfm h1:hover .yfm-clipboard-anchor::before,\n.yfm h2:hover .yfm-anchor::before,\n.yfm h2:hover .yfm-clipboard-anchor::before,\n.yfm h3:hover .yfm-anchor::before,\n.yfm h3:hover .yfm-clipboard-anchor::before,\n.yfm h4:hover .yfm-anchor::before,\n.yfm h4:hover .yfm-clipboard-anchor::before,\n.yfm h5:hover .yfm-anchor::before,\n.yfm h5:hover .yfm-clipboard-anchor::before,\n.yfm h6:hover .yfm-anchor::before,\n.yfm h6:hover .yfm-clipboard-anchor::before {\n opacity: 1;\n}\n.yfm table h1 .yfm-anchor,\n.yfm table h1 .yfm-clipboard-anchor,\n.yfm table h2 .yfm-anchor,\n.yfm table h2 .yfm-clipboard-anchor,\n.yfm table h3 .yfm-anchor,\n.yfm table h3 .yfm-clipboard-anchor,\n.yfm table h4 .yfm-anchor,\n.yfm table h4 .yfm-clipboard-anchor,\n.yfm table h5 .yfm-anchor,\n.yfm table h5 .yfm-clipboard-anchor,\n.yfm table h6 .yfm-anchor,\n.yfm table h6 .yfm-clipboard-anchor {\n width: 1em;\n margin-left: -1em;\n padding-right: 0;\n}\n.yfm .yfm-tabs .yfm-anchor::before,\n.yfm .yfm-tabs .yfm-clipboard-anchor::before {\n position: absolute;\n padding-right: 2px;\n}\n\n.yfm .hljs {\n display: block;\n overflow-x: auto;\n padding: 16px;\n background: var(--yfm-color-hljs-background);\n}\n.yfm .hljs,\n.yfm .hljs-subst {\n color: var(--yfm-color-hljs-subst);\n}\n.yfm .hljs-comment {\n color: var(--yfm-color-hljs-comment);\n}\n.yfm .hljs-keyword,\n.yfm .hljs-attribute,\n.yfm .hljs-selector-tag,\n.yfm .hljs-meta-keyword,\n.yfm .hljs-doctag,\n.yfm .hljs-name {\n font-weight: bold;\n}\n.yfm .hljs-type,\n.yfm .hljs-string,\n.yfm .hljs-number,\n.yfm .hljs-selector-id,\n.yfm .hljs-selector-class,\n.yfm .hljs-quote,\n.yfm .hljs-template-tag,\n.yfm .hljs-deletion {\n color: var(--yfm-color-hljs-deletion);\n}\n.yfm .hljs-title,\n.yfm .hljs-section {\n color: var(--yfm-color-hljs-section);\n font-weight: bold;\n}\n.yfm .hljs-regexp,\n.yfm .hljs-symbol,\n.yfm .hljs-variable,\n.yfm .hljs-template-variable,\n.yfm .hljs-link,\n.yfm .hljs-selector-attr,\n.yfm .hljs-selector-pseudo {\n color: var(--yfm-color-hljs-pseudo);\n}\n.yfm .hljs-literal {\n color: var(--yfm-color-hljs-literal);\n}\n.yfm .hljs-built_in,\n.yfm .hljs-bullet,\n.yfm .hljs-code,\n.yfm .hljs-addition {\n color: var(--yfm-color-hljs-addition);\n}\n.yfm .hljs-meta {\n color: var(--yfm-color-hljs-meta);\n}\n.yfm .hljs-meta-string {\n color: var(--yfm-color-hljs-meta-string);\n}\n.yfm .hljs-emphasis {\n font-style: italic;\n}\n.yfm .hljs-strong {\n font-weight: bold;\n}\n\n.yfm-clipboard {\n position: relative;\n}\n.yfm-clipboard .yfm-clipboard-button {\n min-width: 20px;\n min-height: 20px;\n}\n.yfm-clipboard:hover .yfm-clipboard-button {\n opacity: 1;\n}\n.yfm-clipboard > pre {\n border-radius: 10px;\n overflow: hidden;\n}\n.yfm-clipboard-button {\n position: absolute;\n top: 16px;\n right: 16px;\n z-index: 1;\n opacity: 0;\n background: none;\n color: inherit;\n border: none;\n padding: 0;\n font: inherit;\n cursor: pointer;\n}\n.yfm-clipboard-button:focus {\n opacity: 1;\n}\n.yfm-clipboard-icon {\n pointer-events: none;\n}\n.yfm-clipboard-inline-code {\n transition: 0.3s;\n}\n.yfm-clipboard-inline-code:hover {\n cursor: pointer;\n background-color: var(--yfm-color-code-background-hovered-private);\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvdHJhbnNmb3JtL3RyYW5zZm9ybS9zcmMvc2NzcyIsInNvdXJjZXMiOlsiX2NvbW1vbi5zY3NzIiwiX2xpc3RzLnNjc3MiLCJwcml2YXRlLnNjc3MiLCJicmFuZC5zY3NzIiwiX2FuY2hvci5zY3NzIiwiX2hpZ2hsaWdodC5zY3NzIiwiX2NvZGUuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQzZDUTtFQUNJO0VBQ0E7O0FBRUE7RUFDSSxtQkFSQTs7QUFVQTtFQUNJOztBQVJaO0VBQ0k7RUFDQTs7QUFFQTtFQUNJLG1CQVJBOztBQVVBO0VBQ0k7O0FBUlo7RUFDSTtFQUNBOztBQUVBO0VBQ0ksbUJBUkE7O0FBVUE7RUFDSTs7QUFSWjtFQUNJO0VBQ0E7O0FBRUE7RUFDSSxtQkFSQTs7QUFVQTtFQUNJOztBQVJaO0VBQ0k7RUFDQTs7QUFFQTtFQUNJLG1CQVJBOztBQVVBO0VBQ0k7O0FBUlo7RUFDSTtFQUNBOztBQUVBO0VBQ0ksbUJBUkE7O0FBVUE7RUFDSTs7QUFVaEI7QUFBQTtBQUFBO0VBR0k7O0FBRUE7QUFBQTtBQUFBO0VBQ0k7O0FBRUE7QUFBQTtBQUFBO0VBQ0k7OztBRHhEaEI7RUVmSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQzVDQTtFQUVBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUVBO0VBRUE7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFSDdCQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtBQUFBO0VBRUE7QUFBQTtBQTZXQTtBQUFBOztBQUFBO0FBQUE7QUFBQTs7QUExV0E7RUFDSTs7QUFHSjtFQUNJOztBQUdKO0VBQ0k7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBTUk7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7O0FBR0o7RUFDSTtFQUNBOztBQUdKO0VBQ0k7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7O0FBR0o7RUFDSTtFQUNBOztBQUdKO0VBQ0k7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7QUFFQTtFQUVJOztBQUdKO0VBQ0k7O0FBSVI7RUFDSTs7QUFHSjtBQUFBO0VBRUk7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtBQUFBO0VBQ0k7O0FBR0o7QUFBQTtFQUNJOztBQUlSO0VBQ0k7O0FBR0o7RUFDSTtFQUNBOztBQUdKO0VBQ0k7O0FBR0o7RUFDSTs7QUFHSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQU9JO0VBQ0E7O0FBTUE7QUFBQTtBQUFBO0VBQ0k7O0FBSVI7QUFBQTtBQUFBO0VBR0k7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUVBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFFQTtFQUNBOztBQUlSO0VBQ0k7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7QUFBQTtFQUVJOztBQUlBO0FBQUE7RUFFSTs7QUFLSjtBQUFBO0VBRUk7O0FBSVI7QUFBQTtFQUVJO0VBQ0E7RUFDQTtFQUNBOztBQXZOUjtBQUFBO0VBQ0k7O0FBR0o7QUFBQTtFQUNJOztBQXVOQTtFQUNJO0VBQ0E7O0FBR0o7RUFDSTtFQUNBOztBQUdKO0FBQUE7RUFFSTs7QUFFSjtBQUFBO0VBRUk7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7O0FBelFKO0VBQ0k7O0FBR0o7RUFDSTs7QUF5UUo7RUFDSTs7QUEvUUo7RUFDSTs7QUFHSjtFQUNJOztBQThRQTtFQUNJO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7O0FBSVI7RUFDSTs7QUFHSjtBQUFBO0VBRUk7O0FBR0o7QUFBQTtBQUFBO0FBQUE7RUFJSTtFQUNBOztBQUdKO0VBQ0k7O0FBR0o7QUFBQTtFQUVJOztBQUlBO0FBQUE7RUFFSTs7QUFHSjtBQUFBO0FBQUE7QUFBQTtFQUlJOztBQUdKO0VBQ0k7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJOztBQUdKO0VBQ0k7O0FBR0o7RUFDSTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBRUE7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFJUjtBQUFBO0VBRUk7O0FBU0o7RUFDSTtFQUVBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFFQTtFQUVBO0VBRUE7RUFFQTtFQUNBOzs7QUkxWkE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBRUk7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQUNJOztBQUlSO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQUVJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBOztBQUdJO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQUNJOztBQUlSO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQUNJO0VBQ0E7O0FBS0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBRUk7O0FBWUo7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBRUk7RUFDQTtFQUNBOztBQU1SO0FBQUE7RUFFSTtFQUNBOzs7QUN2RVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtBQUFBO0VBRUk7O0FBR0o7RUFDSTs7QUFHSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFNSTs7QUFHSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBUUk7O0FBR0o7QUFBQTtFQUVJO0VBQ0E7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFPSTs7QUFHSjtFQUNJOztBQUdKO0FBQUE7QUFBQTtBQUFBO0VBSUk7O0FBR0o7RUFDSTs7QUFHSjtFQUNJOztBQUdKO0VBQ0k7O0FBR0o7RUFDSTs7O0FDNUVKO0VBQ0k7O0FBRUE7RUFDSTtFQUNBOztBQUlBO0VBQ0k7O0FBSVI7RUFDSTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUdBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJOztBQUlSO0VBQ0k7O0FBR0o7RUFDSTs7QUFFQTtFQUNJO0VBQ0EiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBzdHlsZWxpbnQtZGlzYWJsZSBkZWNsYXJhdGlvbi1uby1pbXBvcnRhbnQgKi9cblxuQHVzZSAncHJpdmF0ZSc7XG5AdXNlICdicmFuZCc7XG5AdXNlICdsaXN0cyc7XG5cbkBtaXhpbiByZW1vdmVNYXJnaW5Gb3JFZGdlQ2hpbGRyZW4ge1xuICAgICYgPiAqOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG5cbiAgICAmID4gKjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG59XG5cbi55Zm0ge1xuICAgIEBpbmNsdWRlIHByaXZhdGUucHJpdmF0ZS1icmFuZCgpO1xuICAgIEBpbmNsdWRlIGJyYW5kLmJyYW5kKCk7XG5cbiAgICBmb250LWZhbWlseTogdmFyKC0teWZtLWZvbnQtZmFtaWx5LXNhbnMpO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0teWZtLWZvbnQtc2l6ZSwgMTVweCk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLXlmbS1mb250LWxpbmUtaGVpZ2h0LCAyMHB4KTtcbiAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgY29sb3I6IHZhcigtLXlmbS1jb2xvci10ZXh0KTtcbiAgICB0YWItc2l6ZTogdmFyKC0teWZtLXRhYi1zaXplLCBpbmhlcml0KTtcblxuICAgIC0teWZtLWZvbnQtZmFtaWx5LW1vbm9zcGFjZTogJ01lbmxvJywgJ01vbmFjbycsICdDb25zb2xhcycsICdVYnVudHUgTW9ubycsICdMaWJlcmF0aW9uIE1vbm8nLFxuICAgICAgICAnRGVqYVZ1IFNhbnMgTW9ubycsICdDb3VyaWVyIE5ldycsICdDb3VyaWVyJywgbW9ub3NwYWNlO1xuICAgIC0teWZtLWZvbnQtZmFtaWx5LXNhbnM6ICdTZWdvZSBVSScsIGFyaWFsLCBoZWx2ZXRpY2EsIHNhbnMtc2VyaWYsICdBcHBsZSBDb2xvciBFbW9qaScsXG4gICAgICAgICdTZWdvZSBVSSBFbW9qaScsICdTZWdvZSBVSSBTeW1ib2wnO1xuXG4gICAgKiB7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgfVxuXG4gICAgJiA+ICo6bm90KGgyKTpub3QoaDMpOm5vdChoNCk6bm90KGg1KTpub3QoaDYpOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICYgPiAqOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgaDEsXG4gICAgaDIsXG4gICAgaDMsXG4gICAgaDQsXG4gICAgaDUsXG4gICAgaDYge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgIH1cblxuICAgIGgxIHtcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS15Zm0tZm9udC1zaXplLWgxLCAzMnB4KTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHZhcigtLXlmbS1mb250LWxpbmUtaGVpZ2h0LWgxLCA0MHB4KTtcbiAgICB9XG5cbiAgICBoMiB7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0teWZtLWZvbnQtc2l6ZS1oMiwgMjRweCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS15Zm0tZm9udC1saW5lLWhlaWdodC1oMiwgMjhweCk7XG4gICAgfVxuXG4gICAgaDMge1xuICAgICAgICBmb250LXNpemU6IHZhcigtLXlmbS1mb250LXNpemUtaDMsIDIwcHgpO1xuICAgICAgICBsaW5lLWhlaWdodDogdmFyKC0teWZtLWZvbnQtbGluZS1oZWlnaHQtaDMsIDI0cHgpO1xuICAgIH1cblxuICAgIGg0IHtcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS15Zm0tZm9udC1zaXplLWg0LCAxN3B4KTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHZhcigtLXlmbS1mb250LWxpbmUtaGVpZ2h0LWg0LCAyNHB4KTtcbiAgICB9XG5cbiAgICBoNSB7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0teWZtLWZvbnQtc2l6ZS1oNSwgMTVweCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS15Zm0tZm9udC1saW5lLWhlaWdodC1oNSwgMjBweCk7XG4gICAgfVxuXG4gICAgaDYge1xuICAgICAgICBmb250LXNpemU6IHZhcigtLXlmbS1mb250LXNpemUtaDYsIDEzcHgpO1xuICAgICAgICBsaW5lLWhlaWdodDogdmFyKC0teWZtLWZvbnQtbGluZS1oZWlnaHQtaDYsIDE4cHgpO1xuICAgIH1cblxuICAgIGEge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IHZhcigtLXlmbS1jb2xvci1saW5rKTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS15Zm0tY29sb3ItbGluay1ob3Zlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmOm5vdChbaHJlZl0pIHtcbiAgICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc3Ryb25nIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB9XG5cbiAgICBpbWcsXG4gICAgc3ZnIHtcbiAgICAgICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgbWF4LWhlaWdodDogZml0LWNvbnRlbnQ7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAmW2FsaWduPSdyaWdodCddIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMjBweDtcbiAgICAgICAgfVxuXG4gICAgICAgICZbYWxpZ249J2xlZnQnXSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm1lcm1haWQgc3ZnW2lkKj0nbWVybWFpZCddIHtcbiAgICAgICAgbWF4LWhlaWdodDogbm9uZTtcbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS15Zm0tY29sb3ItYmFzZSk7XG4gICAgfVxuXG4gICAgc3ZnIHtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cblxuICAgIGltZyArIHNtYWxsIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgcCxcbiAgICBibG9ja3F1b3RlLFxuICAgIHVsLFxuICAgIG9sLFxuICAgIGRsLFxuICAgIHRhYmxlLFxuICAgIHByZSB7XG4gICAgICAgIG1hcmdpbi1ibG9jazogdmFyKC0teWZtLXRleHQtYmxvY2stbWFyZ2luLWJsb2NrLCAwIDE1cHgpO1xuICAgICAgICBtYXJnaW4taW5saW5lOiB2YXIoLS15Zm0tdGV4dC1ibG9jay1tYXJnaW4taW5saW5lLCAwKTtcbiAgICB9XG5cbiAgICB1bCxcbiAgICBvbCxcbiAgICBkbCB7XG4gICAgICAgICYgcHJlIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDE1cHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb2RlLFxuICAgIGtiZCxcbiAgICBwcmUge1xuICAgICAgICBmb250LWZhbWlseTogdmFyKC0teWZtLWZvbnQtZmFtaWx5LW1vbm9zcGFjZSk7XG4gICAgICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgICAgICBmb250LWZlYXR1cmUtc2V0dGluZ3M6IG5vcm1hbDtcbiAgICB9XG5cbiAgICBpbnB1dCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG5cbiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG5cbiAgICAgICAgJlt0eXBlPSdjaGVja2JveCddIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHRvcDogMXB4O1xuXG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHRhYmxlIHtcbiAgICAgICAgY29sb3I6IHZhcigtLXlmbS1jb2xvci10YWJsZSk7XG5cbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAxO1xuXG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXlmbS1jb2xvci1ib3JkZXIpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgICAgIGJvcmRlci1zcGFjaW5nOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS15Zm0tY29sb3ItYmFzZSk7XG5cbiAgICAgICAgdGhlYWQsXG4gICAgICAgIHRyOm50aC1jaGlsZCgybikge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0teWZtLWNvbG9yLXRhYmxlLXJvdy1iYWNrZ3JvdW5kKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRyOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIHRkLFxuICAgICAgICAgICAgdGgge1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0cjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIHRkLFxuICAgICAgICAgICAgdGgge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMTBweCAyMHB4O1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0teWZtLWNvbG9yLWJvcmRlcik7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHJlbW92ZU1hcmdpbkZvckVkZ2VDaGlsZHJlbigpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGQge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgICAgIH1cblxuICAgICAgICB0aCB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRyIHRkOmZpcnN0LWNoaWxkLFxuICAgICAgICB0ciB0aDpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICAgICAgfVxuICAgICAgICB0ciB0ZDpsYXN0LWNoaWxkLFxuICAgICAgICB0ciB0aDpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGhyIHtcbiAgICAgICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gICAgICAgIGhlaWdodDogMC4yNWVtO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDEuNWVtIDA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0teWZtLWNvbG9yLWJvcmRlcik7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGJsb2NrcXVvdGUge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMTJweDtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCB2YXIoLS15Zm0tY29sb3ItYWNjZW50KTtcblxuICAgICAgICBAaW5jbHVkZSByZW1vdmVNYXJnaW5Gb3JFZGdlQ2hpbGRyZW4oKTtcbiAgICB9XG5cbiAgICBkbCB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgQGluY2x1ZGUgcmVtb3ZlTWFyZ2luRm9yRWRnZUNoaWxkcmVuKCk7XG5cbiAgICAgICAgZHQge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgICAgICAgICAgZm9udC1zaXplOiAxZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICB9XG5cbiAgICAgICAgZGQge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMTVweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGRkIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgfVxuXG4gICAgdWwsXG4gICAgb2wge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDIuMmVtO1xuICAgIH1cblxuICAgIHVsIHVsOmxhc3QtY2hpbGQsXG4gICAgdWwgb2w6bGFzdC1jaGlsZCxcbiAgICBvbCBvbDpsYXN0LWNoaWxkLFxuICAgIG9sIHVsOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgIGxpIHtcbiAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICAgIH1cblxuICAgIGxpOmZpcnN0LWNoaWxkLFxuICAgIGxpICsgbGkge1xuICAgICAgICBtYXJnaW4tYmxvY2s6IHZhcigtLXlmbS1saXN0LWl0ZW0tbWFyZ2luLWJsb2NrLCAwLjMzZW0gMCk7XG4gICAgfVxuXG4gICAgbGkge1xuICAgICAgICBwLFxuICAgICAgICBibG9ja3F1b3RlIHtcbiAgICAgICAgICAgIG1hcmdpbi1ibG9jazogdmFyKC0teWZtLWxpc3QtdGV4dC1tYXJnaW4tYmxvY2ssIDAgMTVweCk7XG4gICAgICAgIH1cblxuICAgICAgICA+IHA6b25seS1vZi10eXBlLFxuICAgICAgICA+IGJsb2NrcXVvdGU6b25seS1vZi10eXBlLFxuICAgICAgICA+IHA6Zmlyc3QtY2hpbGQ6aGFzKCsgdWwpLFxuICAgICAgICA+IHA6Zmlyc3QtY2hpbGQ6aGFzKCsgb2wpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ibG9jazogdmFyKC0teWZtLWxpc3QtdGV4dC1vbmx5LW1hcmdpbi1ibG9jaywgMCk7XG4gICAgICAgIH1cblxuICAgICAgICA+IHA6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tYmxvY2s6IHZhcigtLXlmbS1saXN0LXRleHQtbGFzdC1tYXJnaW4tYmxvY2ssIDApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29kZSB7XG4gICAgICAgIHBhZGRpbmc6IDAuMWVtIDAuNGVtIDAuMTVlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0teWZtLWNvbG9yLWlubGluZS1jb2RlLWJhY2tncm91bmQpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44NzVlbTtcbiAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICAgICAgICBjb2xvcjogdmFyKC0teWZtLWNvbG9yLWlubGluZS1jb2RlKTtcbiAgICAgICAgdGFiLXNpemU6IHZhcigtLXlmbS10YWItc2l6ZS1jb2RlLCBpbmhlcml0KTtcbiAgICB9XG5cbiAgICBhIGNvZGUge1xuICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICB9XG5cbiAgICBwcmUge1xuICAgICAgICB3b3JkLXdyYXA6IG5vcm1hbDtcbiAgICB9XG5cbiAgICB0YWJsZSBjb2RlIHtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB9XG5cbiAgICBwcmUgKiBjb2RlIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgICB3b3JkLXdyYXA6IG5vcm1hbDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgY29sb3I6IHZhcigtLXlmbS1jb2xvci10ZXh0KTtcbiAgICB9XG5cbiAgICBwcmUgPiBjb2RlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXlmbS1jb2xvci1jb2RlLWJhY2tncm91bmQpO1xuICAgICAgICBjb2xvcjogdmFyKC0teWZtLWNvbG9yLXRleHQpO1xuXG4gICAgICAgIHdoaXRlLXNwYWNlOiBwcmU7XG5cbiAgICAgICAgLnlmbS1saW5lLW51bWJlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxZW07XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0teWZtLWNvbG9yLWxpbmUtbnVtYmVycywgIzY2Nik7XG4gICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHN1cCxcbiAgICBzdWIge1xuICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICB9XG5cbiAgICAvKlxuICAgICAgICBIaWRlcyBlbGVtZW50IHZpc3VhbGx5LCBidXQgbGVhdmVzIGl0IHZpc2libGUgZm9yIHNlYXJjaCBjcmF3bGVycyBhbmQgc2NyZWVuIHJlYWRlcnNcblxuICAgICAgICBodHRwczovL3d3dy5hMTF5cHJvamVjdC5jb20vcG9zdHMvMjAxMy0wMS0xMS1ob3ctdG8taGlkZS1jb250ZW50L1xuICAgICAgICBodHRwczovL2h1Z29naXJhdWRlbC5jb20vMjAxNi8xMC8xMy9jc3MtaGlkZS1hbmQtc2Vlay9cbiAgICAqL1xuICAgIC52aXN1YWxseS1oaWRkZW4ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcblxuICAgICAgICB3aWR0aDogMXB4O1xuICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgbWFyZ2luOiAtMXB4O1xuXG4gICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgICAgICBib3JkZXI6IDA7XG5cbiAgICAgICAgY2xpcC1wYXRoOiBpbnNldCgxMDAlKTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgfVxufVxuIiwiQHVzZSAnc2FzczpsaXN0JztcbkB1c2UgJ3Nhc3M6c3RyaW5nJztcblxuQGZ1bmN0aW9uIGdldC1jb3VudGVyLWlkZW50KCRkZXB0aCkge1xuICAgICRpZGVudDogaGllci1saXN0LWl0ZW07XG5cbiAgICBAZm9yICRpIGZyb20gMCB0byAkZGVwdGgge1xuICAgICAgICAkaWRlbnQ6IHN1Yi0jeyRpZGVudH07XG4gICAgfVxuXG4gICAgQHJldHVybiAkaWRlbnQ7XG59XG5cbkBmdW5jdGlvbiBnZXQtc2VsZWN0b3IoJGRlcHRoKSB7XG4gICAgJHNlbGVjdG9yOiBvbDtcblxuICAgIEBmb3IgJGkgZnJvbSAwIHRvICRkZXB0aCB7XG4gICAgICAgICRzZWxlY3RvcjogJyN7JHNlbGVjdG9yfSA+IGxpID4gb2wnO1xuICAgIH1cblxuICAgIEByZXR1cm4gJHNlbGVjdG9yO1xufVxuXG5AZnVuY3Rpb24gZ2V0LW1hcmtlci1jb250ZW50KCRpZGVudHMpIHtcbiAgICAkbGVuZ3RoOiBsaXN0Lmxlbmd0aCgkaWRlbnRzKTtcbiAgICAkY29udGVudDogJyc7XG5cbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICBAaWYgJGkgPiAxIHtcbiAgICAgICAgICAgICRjb250ZW50OiAnI3skY29udGVudH0gXCIuXCInO1xuICAgICAgICB9XG5cbiAgICAgICAgJGNvbnRlbnQ6ICcjeyRjb250ZW50fSBjb3VudGVyKCN7bGlzdC5udGgoJGlkZW50cywgJGkpfSknO1xuICAgIH1cblxuICAgIEByZXR1cm4gI3skY29udGVudH0gJy4gJztcbn1cblxuQG1peGluIGhpZXItbGlzdCgkbWF4LWRlcHRoKSB7XG4gICAgJGlkZW50LXBhdGg6ICgpO1xuXG4gICAgQGZvciAkaSBmcm9tIDAgdGhyb3VnaCAkbWF4LWRlcHRoIHtcbiAgICAgICAgJGlkZW50OiBnZXQtY291bnRlci1pZGVudCgkaSk7XG4gICAgICAgICRpZGVudC1wYXRoOiBsaXN0LmFwcGVuZCgkaWRlbnQtcGF0aCwgJGlkZW50KTtcblxuICAgICAgICAmICN7Z2V0LXNlbGVjdG9yKCRpKX0ge1xuICAgICAgICAgICAgLS1oaWVyLWxpc3Qtc3RhcnQ6IDA7XG4gICAgICAgICAgICBjb3VudGVyLXJlc2V0OiAjeyRpZGVudH0gdmFyKC0taGllci1saXN0LXN0YXJ0KTtcblxuICAgICAgICAgICAgJiA+IGxpIHtcbiAgICAgICAgICAgICAgICBjb3VudGVyLWluY3JlbWVudDogJGlkZW50O1xuXG4gICAgICAgICAgICAgICAgJjo6bWFya2VyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogZ2V0LW1hcmtlci1jb250ZW50KCRpZGVudC1wYXRoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi55Zm0ge1xuICAgIEBpbmNsdWRlIGhpZXItbGlzdCg1KTtcblxuICAgICYueWZtX25vLWxpc3QtcmVzZXQgb2wsXG4gICAgb2wueWZtX25vLWxpc3QtcmVzZXQsXG4gICAgLnlmbV9uby1saXN0LXJlc2V0IG9sIHtcbiAgICAgICAgY291bnRlci1yZXNldDogbGlzdC1pdGVtO1xuXG4gICAgICAgICYgbGkge1xuICAgICAgICAgICAgY291bnRlci1pbmNyZW1lbnQ6IHVuc2V0O1xuXG4gICAgICAgICAgICAmOjptYXJrZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHVuc2V0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVx