theme.css 76 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386
  1. html { height: 100%; }
  2. #body-wrapper .container { padding: 2rem 0 2rem; }
  3. .header-fixed #body-wrapper { padding-top: 4rem; }
  4. .header-fixed .hero + #start > #body-wrapper { padding-top: 0; }
  5. section.section { padding-left: 1rem; padding-right: 1rem; position: relative; }
  6. .overlay-light, .overlay-dark, .overlay-light-gradient, .overlay-dark-gradient { z-index: 0; }
  7. .hero { display: -ms-flexbox; display: flex; -ms-flex-align: center; align-items: center; -ms-flex-pack: center; justify-content: center; padding-top: 6rem; padding-bottom: 7rem; background-size: cover; background-position: center; }
  8. .hero h1 { color: #242931; font-size: 4rem; }
  9. .hero h2 { color: rgba(36, 41, 49, 0.8); font-size: 2.5rem; }
  10. .hero.hero-fullscreen { min-height: 100vh; }
  11. .hero.hero-large { min-height: 500px; }
  12. .hero.hero-medium { min-height: 400px; }
  13. .hero.hero-small { min-height: 110px; }
  14. .hero.hero-tiny { min-height: 8rem; }
  15. .header-fixed .hero { background-position: 50% 0; }
  16. @media (max-width: 840px) { .hero h1 { font-size: 3rem; }
  17. .hero h2 { font-size: 1.75rem; } }
  18. @media (max-width: 600px) { .hero h1 { font-size: 2rem; }
  19. .hero h2 { font-size: 1.25rem; } }
  20. .hero.text-light h1 { color: #fff; }
  21. .hero.text-light h2 { color: rgba(255, 255, 255, 0.8); }
  22. .hero p { font-size: .9rem; font-weight: 300; }
  23. .hero #to-start { display: inline-block; position: absolute; bottom: 10px; font-size: 2rem; cursor: pointer; }
  24. .image-overlay { position: absolute; top: 0; bottom: 0; left: 0; right: 0; z-index: -1; }
  25. .overlay-light .image-overlay { background: rgba(255, 255, 255, 0.4); }
  26. .overlay-light-gradient .image-overlay { background: linear-gradient(to bottom, rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0.2)); }
  27. .overlay-dark .image-overlay { background: rgba(0, 0, 0, 0.4); }
  28. .overlay-dark-gradient .image-overlay { background: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.2)); }
  29. html { font-size: 16px; }
  30. @media screen and (min-width: 480px) { html { font-size: calc(16px + 4 * ((100vw - 480px) / 800)); } }
  31. @media screen and (min-width: 1280px) { html { font-size: 20px; } }
  32. h1, h2, h3, h4, h5, h6 { margin-top: 2rem; font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif; color: #3a414e; }
  33. h1, .h1 { font-size: 3rem; }
  34. h2, .h2 { font-size: 1.8rem; }
  35. h6, .h6 { font-weight: 400; }
  36. .title-center h1, .title-center h2 { text-align: center; }
  37. .title-h1h2 h1 { font-weight: 100; margin-bottom: 0; line-height: 1.1; }
  38. .title-h1h2 h1 strong, .title-h1h2 h1 bold { font-weight: 400; }
  39. .title-h1h2 h1 + h2 { line-height: 1.1; margin-top: 0; }
  40. .title-h1h2 h1 + h2, .title-center h1 + h2 { margin-bottom: 50px; font-weight: 700; }
  41. a:focus { outline: none !important; box-shadow: none !important; }
  42. img { max-width: 100%; }
  43. pre code, pre.xdebug-var-dump { background: #fafafa; display: block; padding: 1rem !important; line-height: 1.5; color: inherit; border-radius: 2px; overflow-x: auto; }
  44. pre code:not(.hljs) { background: #f8f8f8; }
  45. i.fa.fa-heart.pulse, i.fa.fa-heart-o.pulse { color: #920; }
  46. b, strong { font-weight: 700; }
  47. .heavy { font-weight: 700; }
  48. .light { font-weight: 200; }
  49. .text-light { color: rgba(255, 255, 255, 0.8); }
  50. .text-light h1, .text-light h2, .text-light h3, .text-light h4, .text-light h5, .text-light h6 { color: rgba(255, 255, 255, 0.9); }
  51. #error { text-align: center; position: relative; margin-top: 5rem; }
  52. #error .icon { font-size: 50px; }
  53. #messages { margin-bottom: 1rem; }
  54. #messages .icon { font-size: 1rem; }
  55. ul, ol { margin-left: 1.6rem; }
  56. ul ul, ul ol, ol ul, ol ol { margin-left: 1.6rem; }
  57. ul { list-style: disc outside; }
  58. ol { list-style: decimal outside; }
  59. .notices { margin: 1.5rem 0; }
  60. .notices p { margin: 1rem 0; }
  61. form .button-wrapper { margin-top: 0.75rem; margin-bottom: 1rem; }
  62. form span.required { color: #e85600; font-weight: 700; font-size: 1.2rem; }
  63. form .form-input[type=range] { -webkit-appearance: slider-horizontal; -moz-appearance: slider-horizontal; appearance: slider-horizontal; }
  64. form .form-input[type=range]:focus { box-shadow: none; border: none; }
  65. #grav-login > form { margin: 2rem auto 0; max-width: 350px; }
  66. #grav-login .form-label { display: none; }
  67. #grav-login .form-data { margin: 1rem 0; }
  68. #grav-login .form-input { text-align: center; }
  69. #grav-login .button-wrapper { text-align: right; }
  70. #grav-login .button-wrapper .form-data.rememberme { margin: 0; float: left; }
  71. #grav-login .button-wrapper button[type="submit"] { background: #3085EE; border-color: #227ded; color: #fff; }
  72. #grav-login .button-wrapper button[type="submit"]:focus, #grav-login .button-wrapper button[type="submit"]:hover { background: #1877ec; border-color: #1370e3; color: #fff; }
  73. #grav-login .button-wrapper button[type="submit"]:active, #grav-login .button-wrapper button[type="submit"].active { background: #1372e7; border-color: #126bd9; color: #fff; }
  74. .mobile-container { position: absolute; top: 40%; left: 0; margin: 0 auto; z-index: 2; }
  75. .mobile-logo svg { max-width: 150px; margin-top: .7rem; margin-left: 1.4rem; }
  76. .mobile-logo svg path { fill: #fff; }
  77. .mobile-menu { display: none; top: 0; right: 0; z-index: 3; }
  78. .header-fixed .mobile-menu { position: fixed; }
  79. @media (max-width: 840px) { .mobile-menu { display: block; } }
  80. .mobile-menu .button_container { position: absolute; top: 1.3rem; right: 1rem; height: 24px; width: 28px; cursor: pointer; z-index: 100; transition: opacity .25s ease, top 0.5s ease; }
  81. .mobile-menu .button_container:hover { opacity: .7; }
  82. .mobile-menu .button_container.active { position: fixed; }
  83. .mobile-menu .button_container.active .top { transform: translateY(8px) translateX(0) rotate(45deg); background: #FFF; }
  84. .mobile-menu .button_container.active .middle { opacity: 0; background: #FFF; }
  85. .mobile-menu .button_container.active .bottom { transform: translateY(-8px) translateX(0) rotate(-45deg); background: #FFF; }
  86. .mobile-menu .button_container span { background: #3085EE; border: none; height: 4px; width: 100%; position: absolute; top: 0; left: 0; transition: all .35s ease; cursor: pointer; }
  87. .mobile-menu .button_container span:nth-of-type(2) { top: 8px; }
  88. .mobile-menu .button_container span:nth-of-type(3) { top: 16px; }
  89. .overlay { position: fixed; background: #000; top: 0; left: 0; width: 100%; height: 0%; opacity: 0; visibility: hidden; transition: opacity .35s, visibility .35s, height .35s; }
  90. .overlay.open { opacity: .95; visibility: visible; height: 100%; }
  91. .overlay nav { position: relative; margin: 0 auto; text-align: center; }
  92. .overlay-menu { height: calc(100% - 90px); overflow-y: scroll; }
  93. .overlay-menu > .tree { text-align: left; }
  94. .treemenu.treemenu-root { margin: 1rem; }
  95. .treemenu li { list-style: none; margin: 0 0 1px; padding: 5px 0; line-height: 1.2rem; background: rgba(102, 113, 137, 0.1); }
  96. .treemenu li a { display: block; margin-left: 1.2rem; font-size: 1rem; }
  97. .treemenu li a:hover, .treemenu li a:focus, .treemenu li a.active { color: #3e8def !important; text-decoration: none; }
  98. .treemenu ul { margin: 0 0 0 1rem; }
  99. .treemenu .toggler { cursor: pointer; vertical-align: top; font-size: 1.1rem; line-height: 1rem; padding-left: 5px; float: left; }
  100. .treemenu .toggler:before { display: inline-block; margin-right: 2pt; }
  101. .treemenu li.tree-empty > .toggler { opacity: 0.3; cursor: default; }
  102. .treemenu li.tree-empty > .toggler:before { content: "\2022"; }
  103. .treemenu li.tree-closed > .toggler:before { content: "+"; }
  104. .treemenu li.tree-opened > .toggler:before { content: "\2212"; }
  105. .mobile-nav-open { overflow-y: hidden; }
  106. .default-animation, #header, #header .navbar-section, #header .logo svg, .modular-features.small .feature-icon i, .modular-features .feature-icon { transition: all 0.5s ease; }
  107. .pulse { animation-name: pulse_animation; animation-duration: 2000ms; transform-origin: 70% 70%; animation-iteration-count: infinite; animation-timing-function: linear; }
  108. @keyframes pulse_animation { 0% { transform: scale(1); }
  109. 30% { transform: scale(1); }
  110. 40% { transform: scale(1.08); }
  111. 50% { transform: scale(1); }
  112. 60% { transform: scale(1); }
  113. 70% { transform: scale(1.05); }
  114. 80% { transform: scale(1); }
  115. 100% { transform: scale(1); } }
  116. #header { width: 100%; height: 4rem; border-bottom: 1px solid rgba(172, 179, 194, 0.2); font-size: 0.7rem; font-weight: 700; background: #fff; color: #454d5d; }
  117. #header a { color: #454d5d; }
  118. #header .logo svg path { fill: #222; }
  119. .header-dark #header:not(.scrolled) { background: #222; color: #fff; }
  120. .header-dark #header:not(.scrolled) a { color: rgba(255, 255, 255, 0.7) !important; }
  121. .header-dark #header:not(.scrolled) a.active { color: #fff !important; }
  122. .header-dark #header:not(.scrolled) .dropmenu ul ul a { color: #454d5d !important; }
  123. .header-dark #header:not(.scrolled) .logo svg path { fill: #fff; }
  124. .header-dark.header-transparent #header:not(.scrolled) { background: rgba(0, 0, 0, 0.05); }
  125. .header-transparent #header:not(.scrolled) { background: rgba(255, 255, 255, 0.05); }
  126. #header .navbar-section { height: 4rem; }
  127. @media (max-width: 840px) { #header .navbar-section { margin-right: 2rem; } }
  128. #header .logo svg { width: 150px; display: inherit; }
  129. .header-fixed #header { position: fixed; top: 0; z-index: 2; }
  130. body.header-fixed.header-animated #header.scrolled { height: 2.3rem; }
  131. body.header-fixed.header-animated #header.scrolled .navbar-section { height: 2.3rem; }
  132. body.header-fixed.header-animated #header.scrolled .logo svg { width: 100px; }
  133. body.header-fixed.header-animated #header.scrolled ~ .mobile-menu .button_container { top: 0.5rem; }
  134. .login-status-wrapper { white-space: nowrap; }
  135. body.sticky-footer { height: 100%; min-height: 100vh; display: -ms-flexbox; display: flex; -ms-flex-direction: column; flex-direction: column; }
  136. body.sticky-footer #page-wrapper { -ms-flex: 1 0 auto; flex: 1 0 auto; }
  137. #footer { color: #acb3c2; padding: 1rem 1rem 0; text-align: center; }
  138. @media (max-width: 840px) { .dropmenu { display: none; } }
  139. .dropmenu ul { white-space: nowrap; margin: 0; display: -ms-flexbox; display: flex; }
  140. .dropmenu ul li { position: relative; margin: 0; }
  141. .dropmenu ul li a { text-decoration: none; padding: 7px 30px 7px 20px; display: block; }
  142. .dropmenu ul li a:hover, .dropmenu ul li a:focus, .dropmenu ul li a.active { color: #3085EE !important; }
  143. .dropmenu ul li a:before { content: '\f107'; font-family: 'FontAwesome'; display: inline-block; vertical-align: middle; float: right; margin-right: -20px; }
  144. .dropmenu ul li a:only-child { padding-right: 20px; }
  145. .dropmenu ul li a:only-child:before { content: ''; }
  146. .dropmenu ul li:hover > ul { display: block; visibility: visible; }
  147. .dropmenu ul ul li a:before { content: '\f105'; }
  148. .dropmenu ul ul { position: absolute; top: 100%; list-style: none; background: #fff; box-shadow: 0 3px 5px rgba(0, 0, 0, 0.1); visibility: hidden; }
  149. .dropmenu ul ul ul { position: absolute; left: 100%; top: 0; }
  150. .dropmenu > ul > li { display: inline-block; }
  151. .dropmenu.animated ul li { transition: background .7s, color 0.5s; }
  152. .dropmenu.animated ul li:hover > ul { opacity: 1; transform: translateY(0); }
  153. .dropmenu.animated ul ul { transition: transform .3s, opacity .5s; opacity: 0; transform: translateY(-10px); }
  154. /** Extra columns spacing **/
  155. .extra-spacing:not(.col-12), :not(.col12) > .e-content { padding-right: 1rem; }
  156. @media (max-width: 840px) { .extra-spacing:not(.col-12), :not(.col12) > .e-content { padding-right: 0; } }
  157. /** Breadcrumbs styling **/
  158. #breadcrumbs { padding-left: 0; display: -ms-flexbox; display: flex; -ms-flex-align: center; align-items: center; margin-top: -1rem; margin-bottom: 1rem; }
  159. #breadcrumbs i { display: none; }
  160. #breadcrumbs span, #breadcrumbs a { padding: 0 0.5rem; }
  161. #breadcrumbs span:first-child, #breadcrumbs a:first-child { padding-left: 0; }
  162. #breadcrumbs span:not(:first-child)::before, #breadcrumbs a:not(:first-child)::before { color: #e7e9ed; content: "/"; padding-right: 1rem; }
  163. /** Blog Listing **/
  164. .blog-listing .bricklayer-column { padding-left: 0px; padding-right: 25px; }
  165. .blog-listing .card { margin-bottom: 25px; border: 0; box-shadow: 0 10px 45px -9px rgba(0, 0, 0, 0.1); }
  166. .blog-listing .card-footer { text-align: right; }
  167. .blog-listing .blog-date { font-size: 13px; }
  168. /** Blog Item **/
  169. .content-title { margin-bottom: 2rem; }
  170. .content-title h2 { margin-bottom: 0.5rem; }
  171. .label { font-size: 12px; text-transform: uppercase; }
  172. /** Pagination **/
  173. ul.pagination { -ms-flex-pack: center; justify-content: center; }
  174. .prev-next { margin-top: 4rem; }
  175. /** Sidebar specific tweaks **/
  176. #sidebar ul.related-pages { box-shadow: none; padding: 0; }
  177. #sidebar ul.related-pages li { border-bottom: 1px solid #e7e9ed; }
  178. #sidebar ul.related-pages li:last-child { border-bottom: 0; }
  179. #sidebar ul.archives { list-style: none; margin-left: 0; }
  180. #sidebar ul.archives .label { vertical-align: text-top; }
  181. .modular-hero #to-start { bottom: 3.5rem; }
  182. .modular-features { text-align: center; }
  183. .modular-features.offset-box .frame-box { margin: -3rem -1.4rem 3rem; padding: 1rem 1rem; background: #fff; box-shadow: 0 0 75px 0 rgba(69, 77, 93, 0.1); }
  184. .modular-features.small .columns { margin-top: -1rem; }
  185. .modular-features.small .column:hover .feature-icon i { color: #3085EE; }
  186. .modular-features.small .feature-icon { display: block; -ms-flex-pack: left; justify-content: left; }
  187. .modular-features.small .feature-icon i { position: relative; display: inherit; font-size: 70px; margin: 0 auto 1rem; transform: none; left: auto; top: auto; color: #acb3c2; }
  188. .modular-features.small .feature-icon h6 { text-transform: none; }
  189. .modular-features .frame-box { padding: 3rem 0; }
  190. .modular-features .frame-box > p { max-width: 600px; margin-left: auto; margin-right: auto; }
  191. .modular-features .column { padding: 1rem; }
  192. .modular-features .column:hover .feature-icon { color: #acb3c2; }
  193. .modular-features .column:hover .feature-icon h6 { color: #3085EE; }
  194. .modular-features .column:hover .feature-content { color: #667189; }
  195. .modular-features .feature-icon { font-size: 130px; height: 100px; color: #e7e9ed; display: -ms-flexbox; display: flex; -ms-flex-align: center; align-items: center; -ms-flex-pack: center; justify-content: center; position: relative; margin: 1rem 0; }
  196. .modular-features .feature-icon i { position: absolute; left: 50%; top: 50%; transform: translateX(-50%) translateY(-50%); }
  197. .modular-features .feature-icon h6 { background: #fff; line-height: 1; z-index: 1; text-transform: uppercase; font-weight: 600; margin: 0; display: block; color: #667189; }
  198. .modular-features .feature-content { color: #acb3c2; }
  199. .modular-text { padding-top: 4rem; padding-bottom: 4rem; }
  200. .modular-text .columns.left { -ms-flex-direction: row-reverse; flex-direction: row-reverse; }
  201. /*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUuY3NzIiwic291cmNlcyI6WyJ0aGVtZS5zY3NzIiwic3BlY3RyZS9fdmFyaWFibGVzLnNjc3MiLCJzcGVjdHJlL19taXhpbnMuc2NzcyIsInNwZWN0cmUvbWl4aW5zL19hdmF0YXIuc2NzcyIsInNwZWN0cmUvbWl4aW5zL19idXR0b24uc2NzcyIsInNwZWN0cmUvbWl4aW5zL19jbGVhcmZpeC5zY3NzIiwic3BlY3RyZS9taXhpbnMvX2NvbG9yLnNjc3MiLCJzcGVjdHJlL21peGlucy9fbGFiZWwuc2NzcyIsInNwZWN0cmUvbWl4aW5zL19wb3NpdGlvbi5zY3NzIiwic3BlY3RyZS9taXhpbnMvX3NoYWRvdy5zY3NzIiwic3BlY3RyZS9taXhpbnMvX3RleHQuc2NzcyIsInNwZWN0cmUvbWl4aW5zL190b2FzdC5zY3NzIiwic3BlY3RyZS9taXhpbnMvX3RyYW5zaXRpb24uc2NzcyIsInRoZW1lL192YXJpYWJsZXMuc2NzcyIsInRoZW1lL19taXhpbnMuc2NzcyIsInRoZW1lL19mcmFtZXdvcmsuc2NzcyIsInRoZW1lL190eXBvZ3JhcGh5LnNjc3MiLCJ0aGVtZS9fZm9ybXMuc2NzcyIsInRoZW1lL19tb2JpbGUuc2NzcyIsInRoZW1lL19hbmltYXRpb24uc2NzcyIsInRoZW1lL19oZWFkZXIuc2NzcyIsInRoZW1lL19mb290ZXIuc2NzcyIsInRoZW1lL19tZW51LnNjc3MiLCJ0aGVtZS9fYmxvZy5zY3NzIiwidGhlbWUvX29uZXBhZ2Uuc2NzcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3JlIHZhcmlhYmxlcyBhbmQgbWl4aW5zXG5AaW1wb3J0ICdzcGVjdHJlL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICdzcGVjdHJlL21peGlucyc7XG5cbkBpbXBvcnQgJ3RoZW1lL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd0aGVtZS9taXhpbnMnO1xuQGltcG9ydCAndGhlbWUvZnJhbWV3b3JrJztcbkBpbXBvcnQgJ3RoZW1lL3R5cG9ncmFwaHknO1xuQGltcG9ydCAndGhlbWUvZm9ybXMnO1xuQGltcG9ydCAndGhlbWUvbW9iaWxlJztcbkBpbXBvcnQgJ3RoZW1lL2FuaW1hdGlvbic7XG5cbkBpbXBvcnQgJ3RoZW1lL2hlYWRlcic7XG5AaW1wb3J0ICd0aGVtZS9mb290ZXInO1xuQGltcG9ydCAndGhlbWUvbWVudSc7XG5cbi8vIEV4dHJhIFNrZWxldG9uIFN0eWxpbmdcbkBpbXBvcnQgJ3RoZW1lL2Jsb2cnO1xuQGltcG9ydCAndGhlbWUvb25lcGFnZSc7XG5cbiIsIi8vIENvcmUgdmFyaWFibGVzXG4kdmVyc2lvbjogXCIwLjUuM1wiO1xuXG4vLyBDb3JlIGZlYXR1cmVzXG4kcnRsOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8gQ29yZSBjb2xvcnNcbiRwcmltYXJ5LWNvbG9yOiAjMzA4NUVFICFkZWZhdWx0O1xuJHByaW1hcnktY29sb3ItZGFyazogZGFya2VuKCRwcmltYXJ5LWNvbG9yLCAzJSkgIWRlZmF1bHQ7XG4kcHJpbWFyeS1jb2xvci1saWdodDogbGlnaHRlbigkcHJpbWFyeS1jb2xvciwgMyUpICFkZWZhdWx0O1xuJHNlY29uZGFyeS1jb2xvcjogbGlnaHRlbigkcHJpbWFyeS1jb2xvciwgMzcuNSUpICFkZWZhdWx0O1xuJHNlY29uZGFyeS1jb2xvci1kYXJrOiBkYXJrZW4oJHNlY29uZGFyeS1jb2xvciwgMyUpICFkZWZhdWx0O1xuJHNlY29uZGFyeS1jb2xvci1saWdodDogbGlnaHRlbigkc2Vjb25kYXJ5LWNvbG9yLCAzJSkgIWRlZmF1bHQ7XG5cbi8vIEdyYXkgY29sb3JzXG4kZGFyay1jb2xvcjogIzQ1NGQ1ZCAhZGVmYXVsdDtcbiRsaWdodC1jb2xvcjogI2ZmZiAhZGVmYXVsdDtcbiRncmF5LWNvbG9yOiBsaWdodGVuKCRkYXJrLWNvbG9yLCA0MCUpICFkZWZhdWx0O1xuJGdyYXktY29sb3ItZGFyazogZGFya2VuKCRncmF5LWNvbG9yLCAyNSUpICFkZWZhdWx0O1xuJGdyYXktY29sb3ItbGlnaHQ6IGxpZ2h0ZW4oJGdyYXktY29sb3IsIDIwJSkgIWRlZmF1bHQ7XG5cbiRib3JkZXItY29sb3I6IGxpZ2h0ZW4oJGRhcmstY29sb3IsIDYwJSkgIWRlZmF1bHQ7XG4kYm9yZGVyLWNvbG9yLWRhcms6IGRhcmtlbigkYm9yZGVyLWNvbG9yLCAxMCUpICFkZWZhdWx0O1xuJGJnLWNvbG9yOiBsaWdodGVuKCRkYXJrLWNvbG9yLCA2NiUpICFkZWZhdWx0O1xuJGJnLWNvbG9yLWRhcms6IGRhcmtlbigkYmctY29sb3IsIDMlKSAhZGVmYXVsdDtcbiRiZy1jb2xvci1saWdodDogJGxpZ2h0LWNvbG9yICFkZWZhdWx0O1xuXG4vLyBDb250cm9sIGNvbG9yc1xuJHN1Y2Nlc3MtY29sb3I6ICMzMmI2NDMgIWRlZmF1bHQ7XG4kd2FybmluZy1jb2xvcjogI2ZmYjcwMCAhZGVmYXVsdDtcbiRlcnJvci1jb2xvcjogI2U4NTYwMCAhZGVmYXVsdDtcblxuLy8gT3RoZXIgY29sb3JzXG4kY29kZS1jb2xvcjogI2Q3M2U0OCAhZGVmYXVsdDtcbiRoaWdobGlnaHQtY29sb3I6ICNmZmU5YjMgIWRlZmF1bHQ7XG4kYm9keS1iZzogJGJnLWNvbG9yLWxpZ2h0ICFkZWZhdWx0O1xuJGJvZHktZm9udC1jb2xvcjogbGlnaHRlbigkZGFyay1jb2xvciwgNSUpICFkZWZhdWx0O1xuJGxpbmstY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuJGxpbmstY29sb3ItZGFyazogZGFya2VuKCRsaW5rLWNvbG9yLCAxMCUpICFkZWZhdWx0O1xuJGxpbmstY29sb3ItbGlnaHQ6IGxpZ2h0ZW4oJGxpbmstY29sb3IsIDEwJSkgIWRlZmF1bHQ7XG5cbi8vIEZvbnRzXG4vLyBDcmVkaXQ6IGh0dHBzOi8vd3d3LnNtYXNoaW5nbWFnYXppbmUuY29tLzIwMTUvMTEvdXNpbmctc3lzdGVtLXVpLWZvbnRzLXByYWN0aWNhbC1ndWlkZS9cbiRiYXNlLWZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBzeXN0ZW0tdWksIEJsaW5rTWFjU3lzdGVtRm9udCwgXCJTZWdvZSBVSVwiLCBSb2JvdG8gIWRlZmF1bHQ7XG4kbW9uby1mb250LWZhbWlseTogXCJTRiBNb25vXCIsIFwiU2Vnb2UgVUkgTW9ub1wiLCBcIlJvYm90byBNb25vXCIsIE1lbmxvLCBDb3VyaWVyLCBtb25vc3BhY2UgIWRlZmF1bHQ7XG4kZmFsbGJhY2stZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZiAhZGVmYXVsdDtcbiRjamstemgtaGFucy1mb250LWZhbWlseTogJGJhc2UtZm9udC1mYW1pbHksIFwiUGluZ0ZhbmcgU0NcIiwgXCJIaXJhZ2lubyBTYW5zIEdCXCIsIFwiTWljcm9zb2Z0IFlhSGVpXCIsICRmYWxsYmFjay1mb250LWZhbWlseSAhZGVmYXVsdDtcbiRjamstemgtaGFudC1mb250LWZhbWlseTogJGJhc2UtZm9udC1mYW1pbHksIFwiUGluZ0ZhbmcgVENcIiwgXCJIaXJhZ2lubyBTYW5zIENOU1wiLCBcIk1pY3Jvc29mdCBKaGVuZ0hlaVwiLCAkZmFsbGJhY2stZm9udC1mYW1pbHkgIWRlZmF1bHQ7XG4kY2prLWpwLWZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseSwgXCJIaXJhZ2lubyBTYW5zXCIsIFwiSGlyYWdpbm8gS2FrdSBHb3RoaWMgUHJvXCIsIFwiWXUgR290aGljXCIsIFl1R290aGljLCBNZWlyeW8sICRmYWxsYmFjay1mb250LWZhbWlseSAhZGVmYXVsdDtcbiRjamsta28tZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5LCBcIk1hbGd1biBHb3RoaWNcIiwgJGZhbGxiYWNrLWZvbnQtZmFtaWx5ICFkZWZhdWx0O1xuJGJvZHktZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5LCAkZmFsbGJhY2stZm9udC1mYW1pbHkgIWRlZmF1bHQ7XG5cbi8vIFVuaXQgc2l6ZXNcbiR1bml0LW86IC4wNXJlbSAhZGVmYXVsdDtcbiR1bml0LWg6IC4xcmVtICFkZWZhdWx0O1xuJHVuaXQtMTogLjJyZW0gIWRlZmF1bHQ7XG4kdW5pdC0yOiAuNHJlbSAhZGVmYXVsdDtcbiR1bml0LTM6IC42cmVtICFkZWZhdWx0O1xuJHVuaXQtNDogLjhyZW0gIWRlZmF1bHQ7XG4kdW5pdC01OiAxcmVtICFkZWZhdWx0O1xuJHVuaXQtNjogMS4ycmVtICFkZWZhdWx0O1xuJHVuaXQtNzogMS40cmVtICFkZWZhdWx0O1xuJHVuaXQtODogMS42cmVtICFkZWZhdWx0O1xuJHVuaXQtOTogMS44cmVtICFkZWZhdWx0O1xuJHVuaXQtMTA6IDJyZW0gIWRlZmF1bHQ7XG4kdW5pdC0xMjogMi40cmVtICFkZWZhdWx0O1xuJHVuaXQtMTY6IDMuMnJlbSAhZGVmYXVsdDtcblxuLy8gRm9udCBzaXplc1xuJGh0bWwtZm9udC1zaXplOiAyMHB4ICFkZWZhdWx0O1xuJGh0bWwtbGluZS1oZWlnaHQ6IDEuNSAhZGVmYXVsdDtcbiRmb250LXNpemU6IC44cmVtICFkZWZhdWx0O1xuJGZvbnQtc2l6ZS1zbTogLjdyZW0gIWRlZmF1bHQ7XG4kZm9udC1zaXplLWxnOiAuOXJlbSAhZGVmYXVsdDtcbiRsaW5lLWhlaWdodDogMS4ycmVtICFkZWZhdWx0O1xuXG4vLyBTaXplc1xuJGxheW91dC1zcGFjaW5nOiAkdW5pdC0yICFkZWZhdWx0O1xuJGxheW91dC1zcGFjaW5nLXNtOiAkdW5pdC0xICFkZWZhdWx0O1xuJGxheW91dC1zcGFjaW5nLWxnOiAkdW5pdC00ICFkZWZhdWx0O1xuJGJvcmRlci1yYWRpdXM6ICR1bml0LWggIWRlZmF1bHQ7XG4kYm9yZGVyLXdpZHRoOiAkdW5pdC1vICFkZWZhdWx0O1xuJGJvcmRlci13aWR0aC1sZzogJHVuaXQtaCAhZGVmYXVsdDtcbiRjb250cm9sLXNpemU6ICR1bml0LTkgIWRlZmF1bHQ7XG4kY29udHJvbC1zaXplLXNtOiAkdW5pdC03ICFkZWZhdWx0O1xuJGNvbnRyb2wtc2l6ZS1sZzogJHVuaXQtMTAgIWRlZmF1bHQ7XG4kY29udHJvbC1wYWRkaW5nLXg6ICR1bml0LTIgIWRlZmF1bHQ7XG4kY29udHJvbC1wYWRkaW5nLXgtc206ICR1bml0LTIgKiAuNzUgIWRlZmF1bHQ7XG4kY29udHJvbC1wYWRkaW5nLXgtbGc6ICR1bml0LTIgKiAxLjUgIWRlZmF1bHQ7XG4kY29udHJvbC1wYWRkaW5nLXk6ICgkY29udHJvbC1zaXplIC0gJGxpbmUtaGVpZ2h0KSAvIDIgLSAkYm9yZGVyLXdpZHRoICFkZWZhdWx0O1xuJGNvbnRyb2wtcGFkZGluZy15LXNtOiAoJGNvbnRyb2wtc2l6ZS1zbSAtICRsaW5lLWhlaWdodCkgLyAyIC0gJGJvcmRlci13aWR0aCAhZGVmYXVsdDtcbiRjb250cm9sLXBhZGRpbmcteS1sZzogKCRjb250cm9sLXNpemUtbGcgLSAkbGluZS1oZWlnaHQpIC8gMiAtICRib3JkZXItd2lkdGggIWRlZmF1bHQ7XG4kY29udHJvbC1pY29uLXNpemU6IC44cmVtICFkZWZhdWx0O1xuXG4kY29udHJvbC13aWR0aC14czogMTgwcHggIWRlZmF1bHQ7XG4kY29udHJvbC13aWR0aC1zbTogMzIwcHggIWRlZmF1bHQ7XG4kY29udHJvbC13aWR0aC1tZDogNjQwcHggIWRlZmF1bHQ7XG4kY29udHJvbC13aWR0aC1sZzogOTYwcHggIWRlZmF1bHQ7XG4kY29udHJvbC13aWR0aC14bDogMTI4MHB4ICFkZWZhdWx0O1xuXG4vLyBSZXNwb25zaXZlIGJyZWFrcG9pbnRzXG4kc2l6ZS14czogNDgwcHggIWRlZmF1bHQ7XG4kc2l6ZS1zbTogNjAwcHggIWRlZmF1bHQ7XG4kc2l6ZS1tZDogODQwcHggIWRlZmF1bHQ7XG4kc2l6ZS1sZzogOTYwcHggIWRlZmF1bHQ7XG4kc2l6ZS14bDogMTI4MHB4ICFkZWZhdWx0O1xuJHNpemUtMng6IDE0NDBweCAhZGVmYXVsdDtcblxuJHJlc3BvbnNpdmUtYnJlYWtwb2ludDogJHNpemUteHMgIWRlZmF1bHQ7XG5cbi8vIFotaW5kZXhcbiR6aW5kZXgtMDogMSAhZGVmYXVsdDtcbiR6aW5kZXgtMTogMTAwICFkZWZhdWx0O1xuJHppbmRleC0yOiAyMDAgIWRlZmF1bHQ7XG4kemluZGV4LTM6IDMwMCAhZGVmYXVsdDtcbiR6aW5kZXgtNDogNDAwICFkZWZhdWx0O1xuIiwiLy8gTWl4aW5zXG5AaW1wb3J0IFwibWl4aW5zL2F2YXRhclwiO1xuQGltcG9ydCBcIm1peGlucy9idXR0b25cIjtcbkBpbXBvcnQgXCJtaXhpbnMvY2xlYXJmaXhcIjtcbkBpbXBvcnQgXCJtaXhpbnMvY29sb3JcIjtcbkBpbXBvcnQgXCJtaXhpbnMvbGFiZWxcIjtcbkBpbXBvcnQgXCJtaXhpbnMvcG9zaXRpb25cIjtcbkBpbXBvcnQgXCJtaXhpbnMvc2hhZG93XCI7XG5AaW1wb3J0IFwibWl4aW5zL3RleHRcIjtcbkBpbXBvcnQgXCJtaXhpbnMvdG9hc3RcIjtcbkBpbXBvcnQgXCJtaXhpbnMvdHJhbnNpdGlvblwiO1xuIiwiLy8gQXZhdGFyIG1peGluXG5AbWl4aW4gYXZhdGFyLWJhc2UoJHNpemU6ICR1bml0LTgpIHtcbiAgZm9udC1zaXplOiAkc2l6ZSAvIDI7XG4gIGhlaWdodDogJHNpemU7XG4gIHdpZHRoOiAkc2l6ZTtcbn1cbiIsIi8vIEJ1dHRvbiB2YXJpYW50IG1peGluXG5AbWl4aW4gYnV0dG9uLXZhcmlhbnQoJGNvbG9yOiAkcHJpbWFyeS1jb2xvcikge1xuICBiYWNrZ3JvdW5kOiAkY29sb3I7XG4gIGJvcmRlci1jb2xvcjogZGFya2VuKCRjb2xvciwgMyUpO1xuICBjb2xvcjogJGxpZ2h0LWNvbG9yO1xuICAmOmZvY3VzIHtcbiAgICBAaW5jbHVkZSBjb250cm9sLXNoYWRvdygkY29sb3IpO1xuICB9XG4gICY6Zm9jdXMsXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IGRhcmtlbigkY29sb3IsIDIlKTtcbiAgICBib3JkZXItY29sb3I6IGRhcmtlbigkY29sb3IsIDUlKTtcbiAgICBjb2xvcjogJGxpZ2h0LWNvbG9yO1xuICB9XG4gICY6YWN0aXZlLFxuICAmLmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZDogZGFya2VuKCRjb2xvciwgNyUpO1xuICAgIGJvcmRlci1jb2xvcjogZGFya2VuKCRjb2xvciwgMTAlKTtcbiAgICBjb2xvcjogJGxpZ2h0LWNvbG9yO1xuICB9XG4gICYubG9hZGluZyB7XG4gICAgJjo6YWZ0ZXIge1xuICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJGxpZ2h0LWNvbG9yO1xuICAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICRsaWdodC1jb2xvcjtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGJ1dHRvbi1vdXRsaW5lLXZhcmlhbnQoJGNvbG9yOiAkcHJpbWFyeS1jb2xvcikge1xuICBiYWNrZ3JvdW5kOiAkbGlnaHQtY29sb3I7XG4gIGJvcmRlci1jb2xvcjogJGNvbG9yO1xuICBjb2xvcjogJGNvbG9yO1xuICAmOmZvY3VzIHtcbiAgICBAaW5jbHVkZSBjb250cm9sLXNoYWRvdygkY29sb3IpO1xuICB9XG4gICY6Zm9jdXMsXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IGxpZ2h0ZW4oJGNvbG9yLCA1MCUpO1xuICAgIGJvcmRlci1jb2xvcjogZGFya2VuKCRjb2xvciwgMiUpO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gIH1cbiAgJjphY3RpdmUsXG4gICYuYWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiBkYXJrZW4oJGNvbG9yLCA1JSk7XG4gICAgY29sb3I6ICRsaWdodC1jb2xvcjtcbiAgfVxuICAmLmxvYWRpbmcge1xuICAgICY6OmFmdGVyIHtcbiAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRjb2xvcjtcbiAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAkY29sb3I7XG4gICAgfVxuICB9XG59XG4iLCIvLyBDbGVhcmZpeCBtaXhpblxuQG1peGluIGNsZWFyZml4KCkge1xuICAmOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgfVxufVxuIiwiLy8gQmFja2dyb3VuZCBjb2xvciB1dGlsaXR5IG1peGluXG5AbWl4aW4gYmctY29sb3ItdmFyaWFudCgkbmFtZTogXCIuYmctcHJpbWFyeVwiLCAkY29sb3I6ICRwcmltYXJ5LWNvbG9yKSB7XG4gICN7JG5hbWV9IHtcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3I7XG5cbiAgICBAaWYgKGxpZ2h0bmVzcygkY29sb3IpIDwgNjApIHtcbiAgICAgIGNvbG9yOiAkbGlnaHQtY29sb3I7XG4gICAgfVxuICB9XG59XG5cbi8vIFRleHQgY29sb3IgdXRpbGl0eSBtaXhpblxuQG1peGluIHRleHQtY29sb3ItdmFyaWFudCgkbmFtZTogXCIudGV4dC1wcmltYXJ5XCIsICRjb2xvcjogJHByaW1hcnktY29sb3IpIHtcbiAgI3skbmFtZX0ge1xuICAgIGNvbG9yOiAkY29sb3I7XG4gIH1cblxuICBhI3skbmFtZX0ge1xuICAgICY6Zm9jdXMsXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogZGFya2VuKCRjb2xvciwgNSUpO1xuICAgIH1cbiAgICAmOnZpc2l0ZWQge1xuICAgICAgY29sb3I6IGxpZ2h0ZW4oJGNvbG9yLCA1JSk7XG4gICAgfVxuICB9XG59XG4iLCIvLyBMYWJlbCBiYXNlIHN0eWxlXG5AbWl4aW4gbGFiZWwtYmFzZSgpIHtcbiAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIHBhZGRpbmc6IC4xcmVtIC4ycmVtO1xufVxuXG5AbWl4aW4gbGFiZWwtdmFyaWFudCgkY29sb3I6ICRsaWdodC1jb2xvciwgJGJnLWNvbG9yOiAkcHJpbWFyeS1jb2xvcikge1xuICBiYWNrZ3JvdW5kOiAkYmctY29sb3I7XG4gIGNvbG9yOiAkY29sb3I7XG59XG4iLCIvLyBNYXJnaW4gdXRpbGl0eSBtaXhpblxuQG1peGluIG1hcmdpbi12YXJpYW50KCRpZDogMSwgJHNpemU6ICR1bml0LTEpIHtcbiAgLm0tI3skaWR9IHtcbiAgICBtYXJnaW46ICRzaXplICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWItI3skaWR9IHtcbiAgICBtYXJnaW4tYm90dG9tOiAkc2l6ZSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1sLSN7JGlkfSB7XG4gICAgbWFyZ2luLWxlZnQ6ICRzaXplICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubXItI3skaWR9IHtcbiAgICBtYXJnaW4tcmlnaHQ6ICRzaXplICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubXQtI3skaWR9IHtcbiAgICBtYXJnaW4tdG9wOiAkc2l6ZSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm14LSN7JGlkfSB7XG4gICAgbWFyZ2luLWxlZnQ6ICRzaXplICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAkc2l6ZSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm15LSN7JGlkfSB7XG4gICAgbWFyZ2luLWJvdHRvbTogJHNpemUgIWltcG9ydGFudDtcbiAgICBtYXJnaW4tdG9wOiAkc2l6ZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8vIFBhZGRpbmcgdXRpbGl0eSBtaXhpblxuQG1peGluIHBhZGRpbmctdmFyaWFudCgkaWQ6IDEsICRzaXplOiAkdW5pdC0xKSB7XG4gIC5wLSN7JGlkfSB7XG4gICAgcGFkZGluZzogJHNpemUgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5wYi0jeyRpZH0ge1xuICAgIHBhZGRpbmctYm90dG9tOiAkc2l6ZSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLnBsLSN7JGlkfSB7XG4gICAgcGFkZGluZy1sZWZ0OiAkc2l6ZSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLnByLSN7JGlkfSB7XG4gICAgcGFkZGluZy1yaWdodDogJHNpemUgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5wdC0jeyRpZH0ge1xuICAgIHBhZGRpbmctdG9wOiAkc2l6ZSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLnB4LSN7JGlkfSB7XG4gICAgcGFkZGluZy1sZWZ0OiAkc2l6ZSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctcmlnaHQ6ICRzaXplICFpbXBvcnRhbnQ7XG4gIH1cbiAgXG4gIC5weS0jeyRpZH0ge1xuICAgIHBhZGRpbmctYm90dG9tOiAkc2l6ZSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctdG9wOiAkc2l6ZSAhaW1wb3J0YW50O1xuICB9XG59XG4iLCIvLyBDb21wb25lbnQgZm9jdXMgc2hhZG93XG5AbWl4aW4gY29udHJvbC1zaGFkb3coJGNvbG9yOiAkcHJpbWFyeS1jb2xvcikge1xuICBib3gtc2hhZG93OiAwIDAgMCAuMXJlbSByZ2JhKCRjb2xvciwgLjIpO1xufVxuXG4vLyBTaGFkb3cgbWl4aW5cbkBtaXhpbiBzaGFkb3ctdmFyaWFudCgkb2Zmc2V0KSB7XG4gIGJveC1zaGFkb3c6IDAgJG9mZnNldCAoJG9mZnNldCArIC4wNXJlbSkgKiAyIHJnYmEoJGRhcmstY29sb3IsIC4zKTtcbn1cbiIsIi8vIFRleHQgRWxsaXBzaXNcbkBtaXhpbiB0ZXh0LWVsbGlwc2lzKCkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbiIsIi8vIFRvYXN0IHZhcmlhbnQgbWl4aW5cbkBtaXhpbiB0b2FzdC12YXJpYW50KCRjb2xvcjogJGRhcmstY29sb3IpIHtcbiAgYmFja2dyb3VuZDogcmdiYSgkY29sb3IsIC45KTtcbiAgYm9yZGVyLWNvbG9yOiAkY29sb3I7XG59XG4iLCIvLyBDb21wb25lbnQgdHJhbnNpdGlvblxuQG1peGluIGNvbnRyb2wtdHJhbnNpdGlvbigpIHtcbiAgdHJhbnNpdGlvbjogYWxsIC4ycyBlYXNlO1xufVxuIiwiLy8gTGF5b3V0XG4kaG9yaXotcGFkZGluZzogMXJlbTtcbiR2ZXJ0LXBhZGRpbmc6IDJyZW0gMCAycmVtO1xuXG4vLyBGb250c1xuJG1pbi1yZXNwb25zaXZlLWZvbnQtc2l6ZTogMTZweDtcbiR0aXRsZS1mb250LWZhbWlseTogJGJhc2UtZm9udC1mYW1pbHksICRmYWxsYmFjay1mb250LWZhbWlseSAhZGVmYXVsdDtcblxuLy8gSGVhZGVyXG4kaGVhZGVyLWhlaWdodC1sYXJnZTogNHJlbTtcbiRoZWFkZXItaGVpZ2h0LXNtYWxsOiAyLjNyZW07XG4kaGVhZGVyLWNvbG9yLWRhcms6ICMyMjI7XG4kaGVhZGVyLXRleHQtbGlnaHQ6ICRsaWdodC1jb2xvcjtcbiRoZWFkZXItdGV4dC1kYXJrOiBkYXJrZW4oJGRhcmstY29sb3IsIDE1JSk7XG5cbi8vIERyb3Bkb3duIE1lbnVcbiRkcm9wbWVudS1iZzogJGxpZ2h0LWNvbG9yO1xuJGRyb3BtZW51LWhvdmVyLXRleHQ6ICRwcmltYXJ5LWNvbG9yO1xuJGRyb3BtZW51LWhvcml6LXBhZGRpbmc6IDIwcHg7XG4kZHJvcG1lbnUtdmVydC1wYWRkaW5nOiA3cHg7XG4kZHJvcG1lbnUtY2hpbGQtcGFkZGluZzogMTBweDtcbiRkcm9wbWVudS1zaGFkb3c6IDAgM3B4IDVweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG5cbi8vIE1vYmlsZSBNZW51XG4kbW9iaWxlLWNvbG9yLW1haW46ICRwcmltYXJ5LWNvbG9yO1xuJG1vYmlsZS1jb2xvci1hY3RpdmU6ICNGRkY7XG4kbW9iaWxlLWNvbG9yLWxpbms6ICNGRkY7XG4kbW9iaWxlLWJ1dHRvbi1oZWlnaHQ6IDI0cHg7XG4kbW9iaWxlLWJ1dHRvbi13aWR0aDogMjhweDsiLCJAbWl4aW4gYnJlYWtwb2ludCgkcG9pbnQpIHtcbiAgQGlmICRwb2ludCA9PSAyeCB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6JHNpemUtMngpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkcG9pbnQgPT0geGwge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkc2l6ZS14bCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuXG4gIH0gQGVsc2UgaWYgJHBvaW50ID09IGxnIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJHNpemUtbGcpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkcG9pbnQgPT0gbWQge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkc2l6ZS1tZCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICRwb2ludCA9PSBzbSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRzaXplLXNtKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJHBvaW50ID09IHhzIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJHNpemUteHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSAgQGVsc2Uge1xuICAgIEB3YXJuIFwiQnJlYWtwb2ludCBtaXhpbiBzdXBwb3J0czogeHMsIHNtLCBtZCwgbGcsIHhsLCAyeFwiO1xuICB9XG59XG5cbkBtaXhpbiB2ZXJ0aWNhbC1hbGlnbigkcG9zaXRpb246IHJlbGF0aXZlKSB7XG4gIHBvc2l0aW9uOiAkcG9zaXRpb247XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG59XG5cbkBtaXhpbiBidXR0b24tcHJpbWFyeSgpIHtcbiAgYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4gIGJvcmRlci1jb2xvcjogJHByaW1hcnktY29sb3ItZGFyaztcbiAgY29sb3I6ICRsaWdodC1jb2xvcjtcbiAgJjpmb2N1cyxcbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogZGFya2VuKCRwcmltYXJ5LWNvbG9yLWRhcmssIDIlKTtcbiAgICBib3JkZXItY29sb3I6IGRhcmtlbigkcHJpbWFyeS1jb2xvci1kYXJrLCA1JSk7XG4gICAgY29sb3I6ICRsaWdodC1jb2xvcjtcbiAgfVxuICAmOmFjdGl2ZSxcbiAgJi5hY3RpdmUge1xuICAgIGJhY2tncm91bmQ6IGRhcmtlbigkcHJpbWFyeS1jb2xvci1kYXJrLCA0JSk7XG4gICAgYm9yZGVyLWNvbG9yOiBkYXJrZW4oJHByaW1hcnktY29sb3ItZGFyaywgNyUpO1xuICAgIGNvbG9yOiAkbGlnaHQtY29sb3I7XG4gIH1cbn1cblxuQGZ1bmN0aW9uIHN0cmlwLXVuaXQoJHZhbHVlKSB7XG4gIEByZXR1cm4gJHZhbHVlIC8gKCR2YWx1ZSAqIDAgKyAxKTtcbn1cblxuQG1peGluIGZsdWlkLXR5cGUoJG1pbi12dywgJG1heC12dywgJG1pbi1mb250LXNpemUsICRtYXgtZm9udC1zaXplKSB7XG4gICR1MTogdW5pdCgkbWluLXZ3KTtcbiAgJHUyOiB1bml0KCRtYXgtdncpO1xuICAkdTM6IHVuaXQoJG1pbi1mb250LXNpemUpO1xuICAkdTQ6IHVuaXQoJG1heC1mb250LXNpemUpO1xuXG4gIEBpZiAkdTEgPT0gJHUyIGFuZCAkdTEgPT0gJHUzIGFuZCAkdTEgPT0gJHU0IHtcbiAgICAmIHtcbiAgICAgIGZvbnQtc2l6ZTogJG1pbi1mb250LXNpemU7XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkbWluLXZ3KSB7XG4gICAgICAgIGZvbnQtc2l6ZTogY2FsYygjeyRtaW4tZm9udC1zaXplfSArICN7c3RyaXAtdW5pdCgkbWF4LWZvbnQtc2l6ZSAtICRtaW4tZm9udC1zaXplKX0gKiAoKDEwMHZ3IC0gI3skbWluLXZ3fSkgLyAje3N0cmlwLXVuaXQoJG1heC12dyAtICRtaW4tdncpfSkpO1xuICAgICAgfVxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJG1heC12dykge1xuICAgICAgICBmb250LXNpemU6ICRtYXgtZm9udC1zaXplO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiaHRtbCB7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuI2JvZHktd3JhcHBlciB7XG4gIC5jb250YWluZXIge1xuICAgIHBhZGRpbmc6ICR2ZXJ0LXBhZGRpbmc7XG4gIH1cblxuICAvLyBGaXhlZCBIZWFkZXIgc29sdXRpb25cbiAgLmhlYWRlci1maXhlZCAmIHtcbiAgICBwYWRkaW5nLXRvcDogJGhlYWRlci1oZWlnaHQtbGFyZ2U7XG4gIH1cbn1cblxuLmhlYWRlci1maXhlZCB7XG4gIC5oZXJvICsgI3N0YXJ0ID4gI2JvZHktd3JhcHBlciB7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gIH1cbn1cblxuc2VjdGlvbi5zZWN0aW9uIHtcbiAgcGFkZGluZy1sZWZ0OiAkaG9yaXotcGFkZGluZztcbiAgcGFkZGluZy1yaWdodDogJGhvcml6LXBhZGRpbmc7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLm92ZXJsYXktbGlnaHQsIC5vdmVybGF5LWRhcmssIC5vdmVybGF5LWxpZ2h0LWdyYWRpZW50LCAub3ZlcmxheS1kYXJrLWdyYWRpZW50IHtcbiAgei1pbmRleDogMDtcbn1cblxuLy8gSGVyb1xuLmhlcm8ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICBwYWRkaW5nLXRvcDogNnJlbTtcbiAgcGFkZGluZy1ib3R0b206IDdyZW07XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcblxuICBoMSB7XG4gICAgY29sb3I6ICRoZWFkZXItdGV4dC1kYXJrO1xuICAgIGZvbnQtc2l6ZTogNHJlbTtcbiAgfVxuXG4gIGgyIHtcbiAgICBjb2xvcjogcmdiYSgkaGVhZGVyLXRleHQtZGFyaywgMC44KTtcbiAgICBmb250LXNpemU6IDIuNXJlbTtcbiAgfVxuXG4gICYuaGVyby1mdWxsc2NyZWVuIHtcbiAgICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgfVxuXG4gICYuaGVyby1sYXJnZSB7XG4gICAgbWluLWhlaWdodDogNTAwcHg7XG4gIH1cblxuICAmLmhlcm8tbWVkaXVtIHtcbiAgICBtaW4taGVpZ2h0OiA0MDBweDtcbiAgfVxuXG4gICYuaGVyby1zbWFsbCB7XG4gICAgbWluLWhlaWdodDogMTEwcHg7XG4gIH1cblxuICAmLmhlcm8tdGlueSB7XG4gICAgbWluLWhlaWdodDogOHJlbTtcbiAgfVxuICBcbiAgLmhlYWRlci1maXhlZCAmIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgMDtcbiAgfVxuXG4gIC8vJi5wYXJhbGxheCB7XG4gIC8vICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGZpeGVkO1xuICAvL31cblxuICBAaW5jbHVkZSBicmVha3BvaW50KG1kKSB7XG4gICAgaDEge1xuICAgICAgZm9udC1zaXplOiAzcmVtO1xuICAgIH1cbiAgICBoMiB7XG4gICAgICBmb250LXNpemU6IDEuNzVyZW07XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbSkge1xuICAgIGgxIHtcbiAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICB9XG4gICAgaDIge1xuICAgICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgIH1cbiAgfVxuXG5cbiAgJi50ZXh0LWxpZ2h0IHtcbiAgICBoMSB7XG4gICAgICBjb2xvcjogJGhlYWRlci10ZXh0LWxpZ2h0O1xuICAgIH1cbiAgICBoMiB7XG4gICAgICBjb2xvcjogcmdiYSgkaGVhZGVyLXRleHQtbGlnaHQsIDAuOCk7XG4gICAgfVxuICB9XG5cbiAgcCB7XG4gICAgZm9udC1zaXplOiAuOXJlbTtcbiAgICBmb250LXdlaWdodDogMzAwO1xuICB9XG5cbiAgI3RvLXN0YXJ0IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMTBweDtcbiAgICBmb250LXNpemU6IDJyZW07XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG59XG5cbi8vIE92ZXJsYXlcbi5pbWFnZS1vdmVybGF5IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIHotaW5kZXg6IC0xO1xuXG4gIC5vdmVybGF5LWxpZ2h0ICYge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoI2ZmZiwgMC40KTtcbiAgfVxuXG4gIC5vdmVybGF5LWxpZ2h0LWdyYWRpZW50ICYge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHJnYmEoI2ZmZiwwLjUpLCByZ2JhKCNmZmYsMC4yKSk7XG4gIH1cblxuICAub3ZlcmxheS1kYXJrICYge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoIzAwMCwgMC40KTtcbiAgfVxuXG4gIC5vdmVybGF5LWRhcmstZ3JhZGllbnQgJiB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgcmdiYSgjMDAwLDAuNSksIHJnYmEoIzAwMCwwLjIpKTtcbiAgfVxufVxuXG5cblxuXG5cblxuXG5cblxuIiwiaHRtbCB7XG4gIEBpbmNsdWRlIGZsdWlkLXR5cGUoJHNpemUteHMsICRzaXplLXhsLCAkbWluLXJlc3BvbnNpdmUtZm9udC1zaXplLCAkaHRtbC1mb250LXNpemUpO1xufVxuXG4vLyBIZWFkZXIgT3ZlcnJpZGVzXG5oMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHtcbiAgbWFyZ2luLXRvcDogMnJlbTtcbiAgZm9udC1mYW1pbHk6ICR0aXRsZS1mb250LWZhbWlseTtcbiAgY29sb3I6IGRhcmtlbigkYm9keS1mb250LWNvbG9yLCAxMCUpO1xufVxuXG5oMSwgLmgxIHtcbiAgZm9udC1zaXplOiAzcmVtO1xufVxuXG5oMiwgLmgyIHtcbiAgZm9udC1zaXplOiAxLjhyZW07XG59XG5cbmg2LCAuaDYge1xuICBmb250LXdlaWdodDogNDAwO1xufVxuXG4udGl0bGUtY2VudGVyIHtcbiAgaDEsIGgyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbn1cblxuLnRpdGxlLWgxaDIge1xuICBoMSAge1xuICAgIGZvbnQtd2VpZ2h0OiAxMDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBsaW5lLWhlaWdodDogMS4xO1xuXG4gICAgc3Ryb25nLCBib2xkIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgfVxuICB9XG4gIGgxICsgaDIge1xuICAgIGxpbmUtaGVpZ2h0OiAxLjE7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxuXG59XG5cbi8vIFR5cG9ncmFwaHkgSGludHNcbi50aXRsZS1oMWgyLCAudGl0bGUtY2VudGVyIHtcbiAgaDEgKyBoMiB7XG4gICAgbWFyZ2luLWJvdHRvbTogNTBweDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICB9XG59XG5cbmE6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuaW1nIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG5cbi8vIENvZGVibG9ja3NcbnByZSBjb2RlLCBwcmUueGRlYnVnLXZhci1kdW1we1xuICBiYWNrZ3JvdW5kOiAjZmFmYWZhO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogMXJlbSAhaW1wb3J0YW50O1xuICBsaW5lLWhlaWdodDogMS41O1xuICBjb2xvcjogaW5oZXJpdDtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBvdmVyZmxvdy14OiBhdXRvO1xufVxuXG5wcmUge1xuICBjb2RlOm5vdCguaGxqcykge1xuICAgIGJhY2tncm91bmQ6ICNmOGY4Zjg7XG4gIH1cbn1cblxuLy8gSWNvbiBUd2Vha3NcbmkuZmEge1xuXG5cbiAgJi5mYS1oZWFydCwgJi5mYS1oZWFydC1vIHtcbiAgICAmLnB1bHNlIHtcbiAgICAgIGNvbG9yOiAjOTIwXG4gICAgfVxuICB9XG59XG5cbi8vIEZvbnQgV2VpZ2h0c1xuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbi5oZWF2eSB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbi5saWdodCB7XG4gIGZvbnQtd2VpZ2h0OiAyMDA7XG59XG5cbi8vIENvbG9yc1xuLnRleHQtbGlnaHQge1xuICBjb2xvcjogcmdiYSgkbGlnaHQtY29sb3IsIDAuOCk7XG5cbiAgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7XG4gICAgY29sb3I6IHJnYmEoJGxpZ2h0LWNvbG9yLCAwLjkpO1xuICB9XG59XG5cbi8vIEVycm9yIGNvbmZpZ3VyYXRpb25cbiNlcnJvciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tdG9wOiA1cmVtO1xuXG4gIC5pY29uIHtcbiAgICBmb250LXNpemU6IDUwcHg7XG4gIH1cbn1cblxuLy8gTWVzc2FnZXNcbiNtZXNzYWdlcyB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgLmljb24ge1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgfVxufVxuXG4vLyBMaXN0c1xudWwsXG5vbCB7XG4gIG1hcmdpbi1sZWZ0OiAkdW5pdC04O1xuXG4gIHVsLFxuICBvbCB7XG4gICAgbWFyZ2luLWxlZnQ6ICR1bml0LTg7XG4gIH1cbn1cblxudWwge1xuICBsaXN0LXN0eWxlOiBkaXNjIG91dHNpZGU7XG59XG5cbm9sIHtcbiAgbGlzdC1zdHlsZTogZGVjaW1hbCBvdXRzaWRlO1xufVxuXG4vLyBOb3RpY2VzXG4ubm90aWNlcyB7XG4gIG1hcmdpbjogMS41cmVtIDA7XG4gIHAge1xuICAgIG1hcmdpbjogMXJlbSAwO1xuICB9XG59XG5cbiIsImZvcm0ge1xuICAuYnV0dG9uLXdyYXBwZXIge1xuICAgIG1hcmdpbi10b3A6IDAuNzVyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgfVxuXG4gIHNwYW4ucmVxdWlyZWQge1xuICAgIGNvbG9yOiAkZXJyb3ItY29sb3I7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgfVxuXG4gIC5mb3JtLWlucHV0W3R5cGU9cmFuZ2VdIHtcbiAgICBhcHBlYXJhbmNlOiBzbGlkZXItaG9yaXpvbnRhbDtcbiAgICAmOmZvY3VzIHtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbiNncmF2LWxvZ2luIHtcblxuICA+IGZvcm0ge1xuICAgIG1hcmdpbjogMnJlbSBhdXRvIDA7XG4gICAgbWF4LXdpZHRoOiAzNTBweDtcbiAgfVxuICAuZm9ybS1sYWJlbCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAuZm9ybS1kYXRhIHtcbiAgICBtYXJnaW46IDFyZW0gMDtcbiAgfVxuICAuZm9ybS1pbnB1dCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG4gIC5idXR0b24td3JhcHBlciB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG5cbiAgICAuZm9ybS1kYXRhLnJlbWVtYmVybWUge1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgfVxuICAgIGJ1dHRvblt0eXBlPVwic3VibWl0XCJdIHtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1wcmltYXJ5O1xuICAgIH1cbiAgfVxufVxuIiwiLm1vYmlsZS1jb250YWluZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIC8vd2lkdGg6IDEwMCU7XG4gIC8vaGVpZ2h0OiAxMDAlO1xuICB0b3A6IDQwJTtcbiAgbGVmdDogMDtcbiAgbWFyZ2luOiAgMCBhdXRvO1xuICB6LWluZGV4OiAyO1xufVxuXG4ubW9iaWxlLWxvZ28ge1xuICBzdmcge1xuICAgIG1heC13aWR0aDogMTUwcHg7XG4gICAgbWFyZ2luLXRvcDogLjdyZW07XG4gICAgbWFyZ2luLWxlZnQ6IDEuNHJlbTtcblxuICAgIHBhdGgge1xuICAgICAgZmlsbDogJGxpZ2h0LWNvbG9yO1xuICAgIH1cblxuICB9XG59XG5cbi8vIEhhbWJ1cmdlciBNZW51XG4ubW9iaWxlLW1lbnUge1xuXG4gIGRpc3BsYXk6IG5vbmU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIHotaW5kZXg6IDM7XG5cbiAgLmhlYWRlci1maXhlZCAmIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KG1kKSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAuYnV0dG9uX2NvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMS4zcmVtO1xuICAgIHJpZ2h0OiAkaG9yaXotcGFkZGluZztcbiAgICBoZWlnaHQ6ICRtb2JpbGUtYnV0dG9uLWhlaWdodDtcbiAgICB3aWR0aDogJG1vYmlsZS1idXR0b24td2lkdGg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHotaW5kZXg6IDEwMDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4yNXMgZWFzZSwgdG9wIDAuNXMgZWFzZTtcblxuICAgICRiYXItb2Zmc2V0OiAkbW9iaWxlLWJ1dHRvbi1oZWlnaHQgLyAzO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBvcGFjaXR5OiAuNztcbiAgICB9XG5cbiAgICAmLmFjdGl2ZSB7XG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XG5cbiAgICAgIC50b3Age1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoJGJhci1vZmZzZXQpIHRyYW5zbGF0ZVgoMCkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJG1vYmlsZS1jb2xvci1hY3RpdmU7XG4gICAgICB9XG4gICAgICAubWlkZGxlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJG1vYmlsZS1jb2xvci1hY3RpdmU7XG4gICAgICB9XG5cbiAgICAgIC5ib3R0b20ge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLSgkYmFyLW9mZnNldCkpIHRyYW5zbGF0ZVgoMCkgcm90YXRlKC00NWRlZyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRtb2JpbGUtY29sb3ItYWN0aXZlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHNwYW4ge1xuICAgICAgYmFja2dyb3VuZDogJG1vYmlsZS1jb2xvci1tYWluO1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgaGVpZ2h0OiA0cHg7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB0cmFuc2l0aW9uOiAgYWxsIC4zNXMgZWFzZTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgJjpudGgtb2YtdHlwZSgyKSB7XG4gICAgICAgIHRvcDogJGJhci1vZmZzZXQ7XG4gICAgICB9XG5cbiAgICAgICY6bnRoLW9mLXR5cGUoMykge1xuICAgICAgICB0b3A6ICRiYXItb2Zmc2V0ICogMjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLm92ZXJsYXkge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGJhY2tncm91bmQ6ICMwMDA7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMCU7XG4gIG9wYWNpdHk6IDA7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAuMzVzLCB2aXNpYmlsaXR5IC4zNXMsIGhlaWdodCAuMzVzO1xuXG4gICYub3BlbiB7XG4gICAgb3BhY2l0eTogLjk1O1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gIH1cbiAgbmF2IHtcblxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbn1cblxuLm92ZXJsYXktbWVudSB7XG4gIGhlaWdodDogY2FsYygxMDAlIC0gOTBweCk7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcblxuICAmID4gLnRyZWUge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIH1cbn1cblxuXG4udHJlZW1lbnUge1xuXG4gICYudHJlZW1lbnUtcm9vdCB7XG4gICAgbWFyZ2luOiAxcmVtO1xuICB9XG5cbiAgbGkge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgbWFyZ2luOiAwIDAgMXB4O1xuICAgIHBhZGRpbmc6IDVweCAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjJyZW07XG5cbiAgICBiYWNrZ3JvdW5kOiByZ2JhKCRncmF5LWNvbG9yLWRhcmssMC4xKTtcblxuICAgIGEge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBtYXJnaW4tbGVmdDogMS4ycmVtO1xuICAgICAgZm9udC1zaXplOiAxcmVtO1xuXG4gICAgICAmOmhvdmVyLCAmOmZvY3VzLCAmLmFjdGl2ZSB7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvci1saWdodCAhaW1wb3J0YW50O1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdWwge1xuICAgIG1hcmdpbjogMCAwIDAgMXJlbTtcbiAgfVxuXG4gIC50b2dnbGVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICBsaW5lLWhlaWdodDogMXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgICBmbG9hdDogbGVmdDtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgbWFyZ2luLXJpZ2h0OiAycHQ7XG4gICAgfVxuICB9XG5cbiAgbGkudHJlZS1lbXB0eSAgPiAudG9nZ2xlciB7XG4gICAgb3BhY2l0eTogMC4zOyBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBcIlxcMjAyMlwiO1xuICAgIH1cbiAgfVxuXG4gIGxpLnRyZWUtY2xvc2VkID4gLnRvZ2dsZXI6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIitcIjtcbiAgfVxuXG4gIGxpLnRyZWUtb3BlbmVkID4gLnRvZ2dsZXI6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcMjIxMlwiO1xuICB9XG59XG5cbi5tb2JpbGUtbmF2LW9wZW4ge1xuICBvdmVyZmxvdy15OiBoaWRkZW47XG59XG4iLCIuZGVmYXVsdC1hbmltYXRpb24ge1xuICB0cmFuc2l0aW9uOiBhbGwgMC41cyBlYXNlO1xufVxuXG4vLyBQdWxzZSBBbmltYXRpb25cbi5wdWxzZSB7XG4gIGFuaW1hdGlvbi1uYW1lOiBwdWxzZV9hbmltYXRpb247XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMjAwMG1zO1xuICB0cmFuc2Zvcm0tb3JpZ2luOjcwJSA3MCU7XG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG59XG5cbkBrZXlmcmFtZXMgcHVsc2VfYW5pbWF0aW9uIHtcbiAgMCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9XG4gIDMwJSB7IHRyYW5zZm9ybTogc2NhbGUoMSk7IH1cbiAgNDAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjA4KTsgfVxuICA1MCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9XG4gIDYwJSB7IHRyYW5zZm9ybTogc2NhbGUoMSk7IH1cbiAgNzAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTsgfVxuICA4MCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9XG4gIDEwMCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9XG59XG4iLCIjaGVhZGVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogJGhlYWRlci1oZWlnaHQtbGFyZ2U7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKCRncmF5LWNvbG9yLCAwLjIpO1xuICBAZXh0ZW5kIC5kZWZhdWx0LWFuaW1hdGlvbjtcblxuICBmb250LXNpemU6IDAuN3JlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcblxuICBiYWNrZ3JvdW5kOiAkbGlnaHQtY29sb3I7XG4gIGNvbG9yOiAkZGFyay1jb2xvcjtcblxuICBhIHtcbiAgICBjb2xvcjogJGRhcmstY29sb3I7XG4gIH1cblxuICAubG9nbyBzdmcgcGF0aCB7XG4gICAgZmlsbDogJGhlYWRlci1jb2xvci1kYXJrO1xuICB9XG5cbiAgLmhlYWRlci1kYXJrICY6bm90KC5zY3JvbGxlZCkge1xuICAgIGJhY2tncm91bmQ6ICRoZWFkZXItY29sb3ItZGFyaztcbiAgICBjb2xvcjogJGxpZ2h0LWNvbG9yO1xuICAgIGEge1xuICAgICAgY29sb3I6IHJnYmEoJGxpZ2h0LWNvbG9yLCAwLjcpICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIGEuYWN0aXZlIHtcbiAgICAgIGNvbG9yOiAkbGlnaHQtY29sb3IgIWltcG9ydGFudDtcbiAgICB9XG4gICAgLmRyb3BtZW51IHVsIHVsIGEge1xuICAgICAgICBjb2xvcjogJGRhcmstY29sb3IgIWltcG9ydGFudDtcbiAgICB9XG4gICAgLmxvZ28gc3ZnIHBhdGgge1xuICAgICAgZmlsbDogJGxpZ2h0LWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC5oZWFkZXItZGFyay5oZWFkZXItdHJhbnNwYXJlbnQgJjpub3QoLnNjcm9sbGVkKSB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgjMDAwLCAwLjA1KTtcbiAgfVxuXG4gIC5oZWFkZXItdHJhbnNwYXJlbnQgJjpub3QoLnNjcm9sbGVkKSB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgjZmZmLCAwLjA1KTtcbiAgICAvL2JvcmRlci1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5uYXZiYXItc2VjdGlvbiB7XG4gICAgaGVpZ2h0OiAkaGVhZGVyLWhlaWdodC1sYXJnZTtcbiAgICBAZXh0ZW5kIC5kZWZhdWx0LWFuaW1hdGlvbjtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWQpIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMnJlbTtcbiAgICB9XG4gIH1cblxuICAubG9nbyBzdmcge1xuICAgIHdpZHRoOiAxNTBweDtcbiAgICBkaXNwbGF5OiBpbmhlcml0O1xuXG4gICAgQGV4dGVuZCAuZGVmYXVsdC1hbmltYXRpb247XG4gIH1cblxuICAvLyBGaXhlZCBIZWFkZXIgc29sdXRpb25cbiAgLmhlYWRlci1maXhlZCAmIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIHotaW5kZXg6IDI7XG4gIH1cbn1cblxuLy8gQW5pbWF0ZSBGaXhlZCBIZWFkZXJcbmJvZHkuaGVhZGVyLWZpeGVkLmhlYWRlci1hbmltYXRlZCB7XG4gICNoZWFkZXIuc2Nyb2xsZWQge1xuICAgIGhlaWdodDogJGhlYWRlci1oZWlnaHQtc21hbGw7XG5cbiAgICAubmF2YmFyLXNlY3Rpb24ge1xuICAgICAgaGVpZ2h0OiAkaGVhZGVyLWhlaWdodC1zbWFsbDtcbiAgICB9XG5cbiAgICAubG9nbyBzdmcge1xuICAgICAgd2lkdGg6IDEwMHB4O1xuICAgIH1cblxuICAgIH4gLm1vYmlsZS1tZW51IC5idXR0b25fY29udGFpbmVyIHtcbiAgICAgIHRvcDogMC41cmVtO1xuICAgIH1cbiAgfVxufVxuXG4ubG9naW4tc3RhdHVzLXdyYXBwZXIge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufSIsIi8vIFN0aWNreSBGb290ZXIgc29sdXRpb25cbmJvZHkuc3RpY2t5LWZvb3RlciB7XG4gIGhlaWdodDogMTAwJTtcbiAgbWluLWhlaWdodDogMTAwdmg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgI3BhZ2Utd3JhcHBlciB7XG4gICAgZmxleDogMSAwIGF1dG87XG4gIH1cbn1cblxuI2Zvb3RlciB7XG4gIGNvbG9yOiAjYWNiM2MyO1xuICBwYWRkaW5nOiAxcmVtICRob3Jpei1wYWRkaW5nIDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn0iLCIuZHJvcG1lbnUge1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWQpIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgdWwge1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgbWFyZ2luOiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICBsaSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBtYXJnaW46IDA7XG5cbiAgICAgIGEge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6ICRkcm9wbWVudS12ZXJ0LXBhZGRpbmcgKCRkcm9wbWVudS1ob3Jpei1wYWRkaW5nICsgJGRyb3BtZW51LWNoaWxkLXBhZGRpbmcpICRkcm9wbWVudS12ZXJ0LXBhZGRpbmcgJGRyb3BtZW51LWhvcml6LXBhZGRpbmc7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICY6aG92ZXIsICY6Zm9jdXMsICYuYWN0aXZlIHtcbiAgICAgICAgICBjb2xvcjogJGRyb3BtZW51LWhvdmVyLXRleHQgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICBjb250ZW50OiAnXFxmMTA3JztcbiAgICAgICAgICBmb250LWZhbWlseTogJ0ZvbnRBd2Vzb21lJztcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtICgyICokZHJvcG1lbnUtY2hpbGQtcGFkZGluZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOm9ubHktY2hpbGQge1xuICAgICAgICAgIC8vYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkZHJvcG1lbnUtaG9yaXotcGFkZGluZztcblxuICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgJiA+IHVsIHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgdWwgbGkgYTpiZWZvcmUge1xuICAgICAgY29udGVudDogJ1xcZjEwNSc7XG4gICAgfVxuXG4gICAgdWwge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAxMDAlO1xuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgIGJhY2tncm91bmQ6ICRkcm9wbWVudS1iZztcbiAgICAgIGJveC1zaGFkb3c6ICRkcm9wbWVudS1zaGFkb3c7XG4gICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG5cbiAgICAgIHVsIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiAxMDAlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gIH1cblxuICAmID4gdWwgPiBsaSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG5cbiAgLy8gQW5pbWF0aW9uIG9wdGlvbnNcbiAgJi5hbmltYXRlZCB7XG4gICAgdWwgbGkge1xuICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAuN3MsIGNvbG9yIDAuNXM7XG4gICAgfVxuXG4gICAgdWwgbGk6aG92ZXIgPiB1bCB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgIH1cblxuICAgIHVsIHVsIHtcbiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuM3MsIG9wYWNpdHkgLjVzO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTBweCk7XG4gICAgfVxuICB9XG59IiwiLyoqIEV4dHJhIGNvbHVtbnMgc3BhY2luZyAqKi9cbi5leHRyYS1zcGFjaW5nOm5vdCguY29sLTEyKSwgOm5vdCguY29sMTIpID4gLmUtY29udGVudCB7XG4gIHBhZGRpbmctcmlnaHQ6IDFyZW07XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZCkge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gIH1cbn1cblxuLyoqIEJyZWFkY3J1bWJzIHN0eWxpbmcgKiovXG4jYnJlYWRjcnVtYnMge1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1hcmdpbi10b3A6IC0xcmVtO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG5cbiAgaSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIHNwYW4sIGEge1xuICAgIHBhZGRpbmc6IDAgMC41cmVtO1xuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIH1cbiAgfVxuXG4gIHNwYW4sIGEge1xuICAgICY6bm90KDpmaXJzdC1jaGlsZCk6OmJlZm9yZSB7XG4gICAgICBjb2xvcjogI2U3ZTllZDtcbiAgICAgIGNvbnRlbnQ6IFwiL1wiO1xuICAgICAgcGFkZGluZy1yaWdodDogMXJlbTtcbiAgICB9XG4gIH1cbn1cblxuLyoqIEJsb2cgTGlzdGluZyAqKi9cbi5ibG9nLWxpc3Rpbmcge1xuXG4gIC5icmlja2xheWVyLWNvbHVtbiB7XG4gICAgcGFkZGluZy1sZWZ0OiAwcHg7XG4gICAgcGFkZGluZy1yaWdodDogMjVweDtcblxuICB9XG4gIC5jYXJkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAyNXB4O1xuICAgIGJvcmRlcjogMDtcbiAgICBib3gtc2hhZG93OiAwIDEwcHggNDVweCAtOXB4IHJnYmEoMCwwLDAsMC4xKTtcbiAgfVxuXG4gIC5jYXJkLWZvb3RlciB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIH1cblxuICAuYmxvZy1kYXRlIHtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gIH1cblxuICAubGFiZWwge1xuXG4gIH1cbn1cblxuLyoqIEJsb2cgSXRlbSAqKi9cbi5jb250ZW50LXRpdGxlIHtcbiAgbWFyZ2luLWJvdHRvbTogMnJlbTtcblxuICBoMiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICB9XG59XG5cbi5sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLyoqIFBhZ2luYXRpb24gKiovXG51bC5wYWdpbmF0aW9uIHtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5wcmV2LW5leHQge1xuICBtYXJnaW4tdG9wOiA0cmVtO1xufVxuXG4vKiogU2lkZWJhciBzcGVjaWZpYyB0d2Vha3MgKiovXG4jc2lkZWJhciB7XG5cbiAgdWwucmVsYXRlZC1wYWdlcyB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xuXG4gICAgbGkge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRib3JkZXItY29sb3I7XG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgfVxuICAgIH1cblxuICB9XG5cbiAgdWwuYXJjaGl2ZXMge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG5cbiAgICAubGFiZWwge1xuICAgICAgdmVydGljYWwtYWxpZ246IHRleHQtdG9wO1xuICAgIH1cbiAgfVxufSIsIi5tb2R1bGFyLWhlcm8ge1xuICAjdG8tc3RhcnQge1xuICAgIGJvdHRvbTogMy41cmVtO1xuICB9XG59XG5cbi5tb2R1bGFyLWZlYXR1cmVzIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICYub2Zmc2V0LWJveCB7XG4gICAgLmZyYW1lLWJveCB7XG4gICAgICBtYXJnaW46IC0zcmVtICgtMXJlbSAtICRsYXlvdXQtc3BhY2luZykgM3JlbTtcbiAgICAgIHBhZGRpbmc6IDFyZW0gMXJlbTtcbiAgICAgIGJhY2tncm91bmQ6ICRsaWdodC1jb2xvcjtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCA3NXB4IDAgcmdiYSgkZGFyay1jb2xvciwgMC4xKTtcbiAgICB9XG4gIH1cblxuICAmLnNtYWxsIHtcblxuICAgIC5jb2x1bW5zIHtcbiAgICAgIG1hcmdpbi10b3A6IC0xcmVtO1xuICAgIH1cblxuICAgIC5jb2x1bW46aG92ZXIge1xuICAgICAgLmZlYXR1cmUtaWNvbiBpIHtcbiAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5mZWF0dXJlLWljb24ge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGxlZnQ7XG5cblxuICAgICAgaSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5oZXJpdDtcbiAgICAgICAgZm9udC1zaXplOiA3MHB4O1xuICAgICAgICBtYXJnaW46IDAgYXV0byAxcmVtO1xuICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgY29sb3I6ICRncmF5LWNvbG9yO1xuICAgICAgICBAZXh0ZW5kIC5kZWZhdWx0LWFuaW1hdGlvbjtcblxuICAgICAgfVxuICAgICAgaDYge1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuZnJhbWUtYm94IHtcbiAgICBwYWRkaW5nOiAzcmVtIDA7XG5cbiAgICA+IHAge1xuICAgICAgbWF4LXdpZHRoOiA2MDBweDtcbiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIH1cbiAgfVxuXG4gIC5jb2x1bW4ge1xuICAgIHBhZGRpbmc6IDFyZW07XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIC5mZWF0dXJlLWljb24ge1xuICAgICAgICBjb2xvcjogJGdyYXktY29sb3I7XG4gICAgICAgIGg2IHtcbiAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5mZWF0dXJlLWNvbnRlbnQge1xuICAgICAgICBjb2xvcjogJGdyYXktY29sb3ItZGFyaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuZmVhdHVyZS1pY29uIHtcbiAgICBmb250LXNpemU6IDEzMHB4O1xuICAgIGhlaWdodDogMTAwcHg7XG4gICAgY29sb3I6ICRncmF5LWNvbG9yLWxpZ2h0O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luOiAxcmVtIDA7XG4gICAgQGV4dGVuZCAuZGVmYXVsdC1hbmltYXRpb247XG5cbiAgICBpIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IDUwJTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgfVxuXG4gICAgaDYge1xuICAgICAgYmFja2dyb3VuZDogJGxpZ2h0LWNvbG9yO1xuICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICB6LWluZGV4OiAxO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGNvbG9yOiAkZ3JheS1jb2xvci1kYXJrO1xuICAgIH1cbiAgfVxuXG4gIC5mZWF0dXJlLWNvbnRlbnQge1xuICAgIGNvbG9yOiAkZ3JheS1jb2xvcjtcbiAgfVxufVxuXG4ubW9kdWxhci10ZXh0IHtcbiAgcGFkZGluZy10b3A6IDRyZW07XG4gIHBhZGRpbmctYm90dG9tOiA0cmVtO1xuXG4gIC5jb2x1bW5zLmxlZnQge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgfVxufSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQWVBQSxBQUFBLElBQUksQ0FBQyxFQUNILE1BQU0sRUFBRSxJQUFJLEdBQ2I7O0FBRUQsQUFDRSxhQURXLENBQ1gsVUFBVSxDQUFDLEVBQ1QsT0FBTyxFRkpJLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxHRUt2Qjs7QUFHRCxBQUFBLGFBQWEsQ0FOZixhQUFhLENBTUssRUFDZCxXQUFXLEVGRk8sSUFBSSxHRUd2Qjs7QUFHSCxBQUNFLGFBRFcsQ0FDWCxLQUFLLEdBQUcsTUFBTSxH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 */