commit d3c1db15d0932be989da610d41160d918fd39831 Author: unknown Date: Mon Aug 24 08:14:45 2020 +0300 first commint diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6bd6969 --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +/dev/* +/node_modules/* +/gulp/* +gulpfile.js +package.json +package-lock.json +README.md \ No newline at end of file diff --git a/build/index.html b/build/index.html new file mode 100644 index 0000000..2f954fc --- /dev/null +++ b/build/index.html @@ -0,0 +1,632 @@ + + + + + Главная страница + + + + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
8 800 707 50 67 +
+
+
НОВОРОССИЙСК
+
Приём заказов c 11.20 до 23.00
+
+
+ + + +
+
+
+
+ + + + + + + + +
+
999
+ + + +
+
+
+
+
+
+
+
    +
  • +
  • +
  • +
+
+
+ + +
+
+ + + +
+
+
+
+ +
+
+
+
+
+

Пицца

+
+
food +
+
Охотничья
+
Охотничье колбаски, томаты, моцарелла, BBQ соус, томатный соус
+
+
25/30/35
+
От +

477

+ + + +
+
+
+
+
food +
+
Охотничья
+
Охотничье колбаски, томаты, моцарелла, BBQ соус, томатный соус
+
+
25/30/35
+
От +

477

+ + + +
+
+
+
+
food +
+
Охотничья
+
Охотничье колбаски, томаты, моцарелла, BBQ соус, томатный соус
+
+
25/30/35
+
От +

477

+ + + +
+
+
+
+
food +
+
Охотничья
+
Охотничье колбаски, томаты, моцарелла, BBQ соус, томатный соус
+
+
25/30/35
+
От +

477

+ + + +
+
+
+
+
food +
+
Охотничья
+
Охотничье колбаски, томаты, моцарелла, BBQ соус, томатный соус
+
+
25/30/35
+
От +

477

+ + + +
+
+
+
+
food +
+
Охотничья
+
Охотничье колбаски, томаты, моцарелла, BBQ соус, томатный соус
+
+
25/30/35
+
От +

477

+ + + +
+
+
+
+
food +
+
Охотничья
+
Охотничье колбаски, томаты, моцарелла, BBQ соус, томатный соус
+
+
25/30/35
+
От +

477

+ + + +
+
+
+
+
food +
+
Охотничья
+
Охотничье колбаски, томаты, моцарелла, BBQ соус, томатный соус
+
+
25/30/35
+
От +

477

+ + + +
+
+
+
+
+
+
+

Роллы

+
+
food +
+
Охотничья
+
Охотничье колбаски, томаты, моцарелла, BBQ соус, томатный соус
+
+
25/30/35
+
От +

477

+ + + +
+
+
+
+
food +
+
Охотничья
+
Охотничье колбаски, томаты, моцарелла, BBQ соус, томатный соус
+
+
25/30/35
+
От +

477

+ + + +
+
+
+
+
food +
+
Охотничья
+
Охотничье колбаски, томаты, моцарелла, BBQ соус, томатный соус
+
+
25/30/35
+
От +

477

+ + + +
+
+
+
+
food +
+
Охотничья
+
Охотничье колбаски, томаты, моцарелла, BBQ соус, томатный соус
+
+
25/30/35
+
От +

477

+ + + +
+
+
+
+
food +
+
Охотничья
+
Охотничье колбаски, томаты, моцарелла, BBQ соус, томатный соус
+
+
25/30/35
+
От +

477

+ + + +
+
+
+
+
food +
+
Охотничья
+
Охотничье колбаски, томаты, моцарелла, BBQ соус, томатный соус
+
+
25/30/35
+
От +

477

+ + + +
+
+
+
+
food +
+
Охотничья
+
Охотничье колбаски, томаты, моцарелла, BBQ соус, томатный соус
+
+
25/30/35
+
От +

477

+ + + +
+
+
+
+
food +
+
Охотничья
+
Охотничье колбаски, томаты, моцарелла, BBQ соус, томатный соус
+
+
25/30/35
+
От +

477

+ + + +
+
+
+
+
+
+
+ +
+
+ + + + + + \ No newline at end of file diff --git a/build/static/css/styles.min.css b/build/static/css/styles.min.css new file mode 100644 index 0000000..43da782 --- /dev/null +++ b/build/static/css/styles.min.css @@ -0,0 +1,1356 @@ +@charset "UTF-8"; +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ +/* Document + ========================================================================== */ +/** + * 1. Correct the line height in all browsers. + * 2. Prevent adjustments of font size after orientation changes in iOS. + */ +html { + line-height: 1.15; + /* 1 */ + -webkit-text-size-adjust: 100%; + /* 2 */ } + +/* Sections + ========================================================================== */ +/** + * Remove the margin in all browsers. + */ +body { + margin: 0; } + +/** + * Render the `main` element consistently in IE. + */ +main { + display: block; } + +/** + * Correct the font size and margin on `h1` elements within `section` and + * `article` contexts in Chrome, Firefox, and Safari. + */ +h1 { + font-size: 2em; + margin: 0.67em 0; } + +/* Grouping content + ========================================================================== */ +/** + * 1. Add the correct box sizing in Firefox. + * 2. Show the overflow in Edge and IE. + */ +hr { + -webkit-box-sizing: content-box; + box-sizing: content-box; + /* 1 */ + height: 0; + /* 1 */ + overflow: visible; + /* 2 */ } + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ +pre { + font-family: monospace, monospace; + /* 1 */ + font-size: 1em; + /* 2 */ } + +/* Text-level semantics + ========================================================================== */ +/** + * Remove the gray background on active links in IE 10. + */ +a { + background-color: transparent; } + +/** + * 1. Remove the bottom border in Chrome 57- + * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. + */ +abbr[title] { + border-bottom: none; + /* 1 */ + text-decoration: underline; + /* 2 */ + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted; + /* 2 */ } + +/** + * Add the correct font weight in Chrome, Edge, and Safari. + */ +b, +strong { + font-weight: bolder; } + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ +code, +kbd, +samp { + font-family: monospace, monospace; + /* 1 */ + font-size: 1em; + /* 2 */ } + +/** + * Add the correct font size in all browsers. + */ +small { + font-size: 80%; } + +/** + * Prevent `sub` and `sup` elements from affecting the line height in + * all browsers. + */ +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; } + +sub { + bottom: -0.25em; } + +sup { + top: -0.5em; } + +/* Embedded content + ========================================================================== */ +/** + * Remove the border on images inside links in IE 10. + */ +img { + border-style: none; } + +/* Forms + ========================================================================== */ +/** + * 1. Change the font styles in all browsers. + * 2. Remove the margin in Firefox and Safari. + */ +button, +input, +optgroup, +select, +textarea { + font-family: inherit; + /* 1 */ + font-size: 100%; + /* 1 */ + line-height: 1.15; + /* 1 */ + margin: 0; + /* 2 */ } + +/** + * Show the overflow in IE. + * 1. Show the overflow in Edge. + */ +button, +input { + /* 1 */ + overflow: visible; } + +/** + * Remove the inheritance of text transform in Edge, Firefox, and IE. + * 1. Remove the inheritance of text transform in Firefox. + */ +button, +select { + /* 1 */ + text-transform: none; } + +/** + * Correct the inability to style clickable types in iOS and Safari. + */ +button, +[type="button"], +[type="reset"], +[type="submit"] { + -webkit-appearance: button; } + +/** + * Remove the inner border and padding in Firefox. + */ +button::-moz-focus-inner, +[type="button"]::-moz-focus-inner, +[type="reset"]::-moz-focus-inner, +[type="submit"]::-moz-focus-inner { + border-style: none; + padding: 0; } + +/** + * Restore the focus styles unset by the previous rule. + */ +button:-moz-focusring, +[type="button"]:-moz-focusring, +[type="reset"]:-moz-focusring, +[type="submit"]:-moz-focusring { + outline: 1px dotted ButtonText; } + +/** + * Correct the padding in Firefox. + */ +fieldset { + padding: 0.35em 0.75em 0.625em; } + +/** + * 1. Correct the text wrapping in Edge and IE. + * 2. Correct the color inheritance from `fieldset` elements in IE. + * 3. Remove the padding so developers are not caught out when they zero out + * `fieldset` elements in all browsers. + */ +legend { + -webkit-box-sizing: border-box; + box-sizing: border-box; + /* 1 */ + color: inherit; + /* 2 */ + display: table; + /* 1 */ + max-width: 100%; + /* 1 */ + padding: 0; + /* 3 */ + white-space: normal; + /* 1 */ } + +/** + * Add the correct vertical alignment in Chrome, Firefox, and Opera. + */ +progress { + vertical-align: baseline; } + +/** + * Remove the default vertical scrollbar in IE 10+. + */ +textarea { + overflow: auto; } + +/** + * 1. Add the correct box sizing in IE 10. + * 2. Remove the padding in IE 10. + */ +[type="checkbox"], +[type="radio"] { + -webkit-box-sizing: border-box; + box-sizing: border-box; + /* 1 */ + padding: 0; + /* 2 */ } + +/** + * Correct the cursor style of increment and decrement buttons in Chrome. + */ +[type="number"]::-webkit-inner-spin-button, +[type="number"]::-webkit-outer-spin-button { + height: auto; } + +/** + * 1. Correct the odd appearance in Chrome and Safari. + * 2. Correct the outline style in Safari. + */ +[type="search"] { + -webkit-appearance: textfield; + /* 1 */ + outline-offset: -2px; + /* 2 */ } + +/** + * Remove the inner padding in Chrome and Safari on macOS. + */ +[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; } + +/** + * 1. Correct the inability to style clickable types in iOS and Safari. + * 2. Change font properties to `inherit` in Safari. + */ +::-webkit-file-upload-button { + -webkit-appearance: button; + /* 1 */ + font: inherit; + /* 2 */ } + +/* Interactive + ========================================================================== */ +/* + * Add the correct display in Edge, IE 10+, and Firefox. + */ +details { + display: block; } + +/* + * Add the correct display in all browsers. + */ +summary { + display: list-item; } + +/* Misc + ========================================================================== */ +/** + * Add the correct display in IE 10+. + */ +template { + display: none; } + +/** + * Add the correct display in IE 10. + */ +[hidden] { + display: none; } + +.glide { + position: relative; + width: 100%; + -webkit-box-sizing: border-box; + box-sizing: border-box; } + .glide * { + -webkit-box-sizing: inherit; + box-sizing: inherit; } + .glide__track { + overflow: hidden; } + .glide__slides { + position: relative; + width: 100%; + list-style: none; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; + -ms-touch-action: pan-Y; + touch-action: pan-Y; + overflow: hidden; + padding: 0; + white-space: nowrap; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + will-change: transform; } + .glide__slides--dragging { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + .glide__slide { + width: 100%; + height: 100%; + -ms-flex-negative: 0; + flex-shrink: 0; + white-space: normal; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + -webkit-touch-callout: none; + -webkit-tap-highlight-color: transparent; } + .glide__slide a { + -webkit-user-select: none; + user-select: none; + -webkit-user-drag: none; + -moz-user-select: none; + -ms-user-select: none; } + .glide__arrows { + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + .glide__bullets { + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + .glide--rtl { + direction: rtl; } + +.glide__arrow { + position: absolute; + display: block; + top: 50%; + z-index: 2; + color: white; + text-transform: uppercase; + padding: 9px 12px; + background-color: transparent; + border: 2px solid rgba(255, 255, 255, 0.5); + border-radius: 4px; + -webkit-box-shadow: 0 0.25em 0.5em 0 rgba(0, 0, 0, 0.1); + box-shadow: 0 0.25em 0.5em 0 rgba(0, 0, 0, 0.1); + text-shadow: 0 0.25em 0.5em rgba(0, 0, 0, 0.1); + opacity: 1; + cursor: pointer; + -webkit-transition: opacity 150ms ease, border 300ms ease-in-out; + -o-transition: opacity 150ms ease, border 300ms ease-in-out; + transition: opacity 150ms ease, border 300ms ease-in-out; + -webkit-transform: translateY(-50%); + -ms-transform: translateY(-50%); + transform: translateY(-50%); + line-height: 1; } + .glide__arrow:focus { + outline: none; } + .glide__arrow:hover { + border-color: white; } + .glide__arrow--left { + left: 2em; } + .glide__arrow--right { + right: 2em; } + .glide__arrow--disabled { + opacity: 0.33; } + +.glide__bullets { + position: absolute; + z-index: 2; + bottom: 2em; + left: 50%; + display: -webkit-inline-box; + display: -ms-inline-flexbox; + display: inline-flex; + list-style: none; + -webkit-transform: translateX(-50%); + -ms-transform: translateX(-50%); + transform: translateX(-50%); } + +.glide__bullet { + background-color: rgba(255, 255, 255, 0.5); + width: 9px; + height: 9px; + padding: 0; + border-radius: 50%; + border: 2px solid transparent; + -webkit-transition: all 300ms ease-in-out; + -o-transition: all 300ms ease-in-out; + transition: all 300ms ease-in-out; + cursor: pointer; + line-height: 0; + -webkit-box-shadow: 0 0.25em 0.5em 0 rgba(0, 0, 0, 0.1); + box-shadow: 0 0.25em 0.5em 0 rgba(0, 0, 0, 0.1); + margin: 0 0.25em; } + .glide__bullet:focus { + outline: none; } + .glide__bullet:hover, .glide__bullet:focus { + border: 2px solid white; + background-color: rgba(255, 255, 255, 0.5); } + .glide__bullet--active { + background-color: white; } + +.glide--swipeable { + cursor: grab; + cursor: -webkit-grab; } + +.glide--dragging { + cursor: grabbing; + cursor: -webkit-grabbing; } + +html { + font-size: 16px; + height: 100%; + font-family: 'Roboto', sans-serif; + overflow-x: hidden; } + +body { + min-height: 100vh; + scroll-behavior: smooth; + text-rendering: optimizeSpeed; + line-height: 1.5; } + +.open-modal { + overflow: hidden; } + +.popup { + display: none; + z-index: 40; + position: fixed; + top: 0; + bottom: 0; + right: 0; + left: 0; } + +.open-popup { + display: -webkit-box; + display: -ms-flexbox; + display: flex; } + +*, +*::before, +*::after { + -webkit-box-sizing: border-box; + box-sizing: border-box; } + +ul[class], +ol[class] { + list-style: none; + padding: 0; } + +body, +h1, +h2, +h3, +h4, +p, +ul[class], +ol[class], +li, +figure, +figcaption, +blockquote, +dl, +dd { + margin: 0; } + +a:not([class]) { + -webkit-text-decoration-skip: ink; + text-decoration-skip-ink: auto; } + +img { + max-width: 100%; + display: block; } + +input, +button, +textarea, +select { + font: inherit; } + +/* Удаляем все анимации и переходы для людей, которые предпочитай их не использовать */ +@media (prefers-reduced-motion: reduce) { + * { + -webkit-animation-duration: 0.01ms !important; + animation-duration: 0.01ms !important; + -webkit-animation-iteration-count: 1 !important; + animation-iteration-count: 1 !important; + -webkit-transition-duration: 0.01ms !important; + -o-transition-duration: 0.01ms !important; + transition-duration: 0.01ms !important; + scroll-behavior: auto !important; } } + +audio, +canvas, +iframe, +img, +svg, +video, +textarea { + vertical-align: middle; } + +textarea { + resize: none; } + +section { + position: relative; } + +input, +select, +button { + outline: none; } + +.wrapper { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + height: 100%; } + +.content { + -webkit-box-flex: 1; + -ms-flex: 1 0 auto; + flex: 1 0 auto; } + +.container { + margin: 0 auto; + max-width: 1600px; + width: 100%; + display: grid; + place-items: center; } + +::-webkit-scrollbar-thumb { + -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3); + background: #FF5C00; } + +::-webkit-scrollbar-track { + -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3); + background-color: #f5f5f500; } + +::-webkit-scrollbar { + width: 5px; + height: 5px; + background-color: #f5f5f500; } + +footer { + margin-top: 68px; + height: 110px; + background: #E0E0E0; + display: grid; + -ms-flex-line-pack: center; + align-content: center; } + @media only screen and (max-width: 600px) { + footer { + height: -webkit-max-content; + height: -moz-max-content; + height: max-content; } } + footer .footc { + display: grid; + grid-template-columns: 1fr 1fr 1fr; + grid-auto-flow: column; } + @media only screen and (max-width: 600px) { + footer .footc { + grid-template-columns: 1fr; + grid-auto-flow: initial; + row-gap: 20px; + text-align: -webkit-center; + padding-bottom: 30px; + padding-top: 30px; } } + footer .footc span { + font-style: normal; + font-weight: 300; + font-size: 14px; + line-height: 16px; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + /* Gray 3 */ + color: #828282; } + footer .footc .app { + display: grid; + grid-template-columns: 138px 138px; + grid-template-rows: 44px; + grid-auto-flow: column; + -webkit-column-gap: 32px; + -moz-column-gap: 32px; + column-gap: 32px; + place-self: center; } + @media only screen and (max-width: 500px) { + footer .footc .app { + grid-template-columns: 138px; + grid-template-rows: 44px 44px; + row-gap: 30px; } } + footer .footc .app .google { + background-size: cover !important; + background: url("../images/content/google.svg"); + background-repeat: no-repeat !important; } + footer .footc .app .apple { + background-size: cover !important; + background: url("../images/content/apple.svg"); + background-repeat: no-repeat !important; } + footer .footc .social { + display: grid; + grid-template-columns: 29px 29px; + grid-template-rows: 29px; + grid-auto-flow: column; + -webkit-column-gap: 19px; + -moz-column-gap: 19px; + column-gap: 19px; + place-self: end; + align-self: center; } + footer .footc .social .insta { + background-size: cover !important; + background: url("../images/content/insta.svg"); + background-repeat: no-repeat !important; } + footer .footc .social .vk { + background-size: cover !important; + background: url("../images/content/vk.svg"); + background-repeat: no-repeat !important; } + +header { + height: 96px; + background: #FFFFFF; + border-bottom: 1px solid #F0F0F0; + display: grid; } + @media only screen and (max-width: 654px) { + header { + height: 60px; } } + header .container { + display: grid; + grid-auto-columns: -webkit-max-content; + grid-auto-columns: max-content; + grid-template-columns: -webkit-max-content 1fr -webkit-max-content; + grid-template-columns: max-content 1fr max-content; + grid-auto-flow: column; + height: 100%; + place-self: center; } + @media only screen and (max-width: 654px) { + header .container { + grid-template-columns: -webkit-max-content -webkit-max-content -webkit-max-content; + grid-template-columns: max-content max-content max-content; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; } } + header .container .logos { + height: 96px; + display: grid; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + padding-left: 54px; + padding-right: 54px; + border-right: 1px solid #F0F0F0; + border-left: 1px solid #F0F0F0; } + @media only screen and (max-width: 654px) { + header .container .logos { + padding-left: 15px; + padding-right: 15px; + height: 60px; } + header .container .logos svg { + width: 30px; + height: 30px; } } + header .container .number_adress { + width: 100%; + display: grid; + grid-auto-flow: column; + place-self: center; + padding-left: 55px; + border-right: 1px solid #F0F0F0; + height: 96px; + grid-auto-rows: -webkit-max-content; + grid-auto-rows: max-content; + grid-auto-columns: -webkit-max-content; + grid-auto-columns: max-content; + place-content: space-between; + -ms-flex-line-pack: center; + align-content: center; + padding-right: 55px; } + @media only screen and (max-width: 954px) { + header .container .number_adress { + padding-left: 15px; + padding-right: 15px; } } + @media only screen and (max-width: 654px) { + header .container .number_adress { + height: 60px; } } + header .container .number_adress .number { + font-family: Roboto; + font-style: normal; + font-weight: 500; + line-height: 30px; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + /* цвет меню */ + color: #FF5C00; + text-decoration: none; } + @media (max-width: 767px) { + header .container .number_adress .number { + font-size: calc(16px + 17 * ((100vw - 320px) / 1600)); } } + @media (min-width: 767px) { + header .container .number_adress .number { + font-size: calc(16px + 10 * (100vw / 1600)); } } + @media only screen and (max-width: 654px) { + header .container .number_adress .number { + line-height: 16px; } } + header .container .number_adress .adress_block { + display: grid; + grid-auto-flow: column; + grid-auto-columns: -webkit-max-content -webkit-max-content; + grid-auto-columns: max-content max-content; + -webkit-column-gap: 21px; + -moz-column-gap: 21px; + column-gap: 21px; } + @media only screen and (max-width: 954px) { + header .container .number_adress .adress_block { + display: none; } } + header .container .number_adress .adress_block .left { + display: grid; + justify-items: self-end; + row-gap: 4px; } + header .container .number_adress .adress_block .left .title { + font-style: normal; + font-weight: normal; + font-size: 13px; + line-height: 15px; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + color: #000000; } + header .container .number_adress .adress_block .left .sub-title { + font-style: normal; + font-weight: normal; + font-size: 12px; + line-height: 14px; + /* identical to box height */ + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + text-align: right; + color: #ABABAB; } + header .container .cart { + display: grid; + padding-left: 45px; + padding-right: 45px; + grid-template-columns: -webkit-max-content -webkit-max-content; + grid-template-columns: max-content max-content; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-column-gap: 24px; + -moz-column-gap: 24px; + column-gap: 24px; } + @media only screen and (max-width: 654px) { + header .container .cart { + padding-right: 10px; + padding-left: 10px; + -webkit-column-gap: 10px; + -moz-column-gap: 10px; + column-gap: 10px; } + header .container .cart svg { + width: 15px; + height: 15px; } } + header .container .cart .priceblock { + display: grid; + grid-auto-columns: -webkit-max-content -webkit-max-content; + grid-auto-columns: max-content max-content; + grid-auto-flow: column; + -webkit-column-gap: 5px; + -moz-column-gap: 5px; + column-gap: 5px; + background: #FF5C00; + border-radius: 10px; + padding: 8px 15px; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; } + header .container .cart .priceblock .price { + font-style: normal; + font-weight: bold; + width: -webkit-max-content; + width: -moz-max-content; + width: max-content; + font-size: 16px; + line-height: 19px; + text-align: center; + color: #FFFFFF; } + header .container .cart .priceblock svg { + width: 7px; + height: 11px; } + +.container-slider { + padding-left: 50px; + padding-right: 50px; } + .container-slider .edakratia-slider { + margin-top: 24px; } + .container-slider .edakratia-slider .glide__slide img { + width: 100%; + height: 100%; + -o-object-fit: cover; + object-fit: cover; + border-radius: 25px; } + .container-slider .edakratia-slider .glide__arrows { + opacity: 0; + -webkit-transition: opacity 0.2s; + -o-transition: opacity 0.2s; + transition: opacity 0.2s; } + .container-slider .edakratia-slider .glide__arrows .glide__arrow { + border: none; + background: #333333; + border-radius: 50%; } + .container-slider .edakratia-slider .glide__arrows .glide__arrow--left { + -webkit-transform: rotate(180deg) translateY(50%); + -ms-transform: rotate(180deg) translateY(50%); + transform: rotate(180deg) translateY(50%); } + .container-slider:hover .glide__arrows { + opacity: 1; + -webkit-transition: opacity 0.3s; + -o-transition: opacity 0.3s; + transition: opacity 0.3s; } + +.menu-food { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + -webkit-column-gap: 35px; + -moz-column-gap: 35px; + column-gap: 35px; + margin-top: 40px; + place-content: center; } + @media only screen and (max-width: 600px) { + .menu-food { + display: grid; + grid-template-columns: repeat(2, -webkit-max-content); + grid-template-columns: repeat(2, max-content); } } + @media only screen and (max-width: 360px) { + .menu-food { + display: grid; + grid-template-columns: repeat(2, -webkit-max-content); + grid-template-columns: repeat(2, max-content); } } + .menu-food .block { + text-decoration: none; + display: grid; + -ms-flex-pack: distribute; + justify-content: space-around; + -ms-flex-line-pack: center; + align-content: center; + row-gap: 8px; } + @media only screen and (max-width: 1450px) { + .menu-food .block { + margin-bottom: 20px; } } + .menu-food .block:hover .cont { + border: 1px solid #FF5C00; + -webkit-transition: all 0.2s; + -o-transition: all 0.2s; + transition: all 0.2s; } + .menu-food .block:hover path { + fill: #FF5C00; + -webkit-transition: fill .4s ease; + -o-transition: fill .4s ease; + transition: fill .4s ease; } + .menu-food .block .cont { + width: 117px; + height: 112px; + border: 1px solid #BDBDBD; + -webkit-box-sizing: border-box; + box-sizing: border-box; + border-radius: 25px; + display: grid; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-transition: all 0.2s; + -o-transition: all 0.2s; + transition: all 0.2s; } + .menu-food .block .cont path { + -webkit-transition: fill .4s ease; + -o-transition: fill .4s ease; + transition: fill .4s ease; } + .menu-food .block .title { + font-style: normal; + font-weight: 300; + font-size: 16px; + line-height: 19px; + text-decoration: none; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + color: #000000; + place-self: center; } + +.foodspec h2 { + margin-top: 66px; + margin-bottom: 40px; + font-style: normal; + font-weight: 500; + font-size: 45px; + line-height: 53px; + /* identical to box height */ + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + /* цвет меню */ + color: #FF5C00; } + +.foodspec .foodlist { + display: grid; + grid-template-columns: -webkit-max-content -webkit-max-content; + grid-template-columns: max-content max-content; + -webkit-column-gap: 32px; + -moz-column-gap: 32px; + column-gap: 32px; + margin-top: 23px; } + @media only screen and (max-width: 954px) { + .foodspec .foodlist { + -webkit-column-gap: initial; + -moz-column-gap: initial; + column-gap: initial; } } + .foodspec .foodlist .food { + background: #F2F2F2; + border-radius: 25px; + padding: 32px; + display: grid; + grid-template-columns: 224px 224px 224px 224px; + row-gap: 32px; + -webkit-column-gap: 32px; + -moz-column-gap: 32px; + column-gap: 32px; } + @media only screen and (max-width: 1450px) { + .foodspec .foodlist .food { + grid-template-columns: 224px 224px 224px; } } + @media only screen and (max-width: 1220px) { + .foodspec .foodlist .food { + grid-template-columns: 224px 224px; } } + @media only screen and (max-width: 954px) { + .foodspec .foodlist .food { + grid-template-columns: 224px 224px; } } + @media only screen and (max-width: 600px) { + .foodspec .foodlist .food { + grid-template-columns: 224px; } } + .foodspec .foodlist .food .fblock { + background: #FFFFFF; + border-radius: 25px; + -webkit-transition: all ease-in-out 0.2s; + -o-transition: all ease-in-out 0.2s; + transition: all ease-in-out 0.2s; + cursor: pointer; } + .foodspec .foodlist .food .fblock:hover { + -webkit-filter: drop-shadow(2px 2px 6px rgba(0, 0, 0, 0.15)); + filter: drop-shadow(2px 2px 6px rgba(0, 0, 0, 0.15)); + -webkit-transition: all ease-in-out 0.2s; + -o-transition: all ease-in-out 0.2s; + transition: all ease-in-out 0.2s; } + .foodspec .foodlist .food .fblock .info { + padding: 20px 15px; + display: grid; + row-gap: 26px; } + .foodspec .foodlist .food .fblock .info .title { + font-family: Roboto; + font-style: normal; + font-weight: normal; + font-size: 23px; + line-height: 27px; + /* identical to box height */ + /* black */ + color: #000000; } + .foodspec .foodlist .food .fblock .info .about { + font-family: Roboto; + font-style: normal; + font-weight: 300; + font-size: 12px; + line-height: 120%; + /* or 14px */ + /* Gray 1 */ + color: #333333; } + .foodspec .foodlist .food .fblock .info .foot { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; } + .foodspec .foodlist .food .fblock .info .foot .paramblock { + display: grid; + -webkit-box-align: self-end; + -ms-flex-align: self-end; + align-items: self-end; + grid-auto-flow: column; + grid-auto-columns: -webkit-max-content; + grid-auto-columns: max-content; } + .foodspec .foodlist .food .fblock .info .foot .paramblock span { + font-style: normal; + font-weight: normal; + font-size: 12px; + line-height: 10px; + color: #000000; } + .foodspec .foodlist .food .fblock .info .foot .priceblock { + display: grid; + -webkit-column-gap: 9px; + -moz-column-gap: 9px; + column-gap: 9px; + -webkit-box-align: self-end; + -ms-flex-align: self-end; + align-items: self-end; + grid-template-columns: -webkit-max-content -webkit-max-content -webkit-max-content; + grid-template-columns: max-content max-content max-content; } + .foodspec .foodlist .food .fblock .info .foot .priceblock span { + font-style: normal; + font-weight: normal; + line-height: 10px; + font-size: 14px; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + /* black */ + color: #000000; } + .foodspec .foodlist .food .fblock .info .foot .priceblock .price { + font-weight: 500; + font-size: 25px; + color: #FF5C00; + height: 28px; } + .foodspec .foodlist .side-open { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + position: fixed !important; + margin-top: 0px !important; + z-index: 50; + left: 50%; + -webkit-transform: translateX(-50%); + -ms-transform: translateX(-50%); + transform: translateX(-50%); + width: -webkit-max-content; + width: -moz-max-content; + width: max-content; } + .foodspec .foodlist .sidebar-cart { + background: #F2F2F2; + border-radius: 25px; + padding: 22px 15px; + height: -webkit-max-content; + height: -moz-max-content; + height: max-content; + position: -webkit-sticky; + position: sticky; + margin-top: 160px; + top: 30px; } + @media only screen and (max-width: 954px) { + .foodspec .foodlist .sidebar-cart { + display: none; } } + .foodspec .foodlist .sidebar-cart .startline { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + margin-bottom: 35px; } + .foodspec .foodlist .sidebar-cart .startline .title { + font-style: normal; + font-weight: normal; + font-size: 25px; + /* цвет меню */ + color: #FF5C00; } + .foodspec .foodlist .sidebar-cart .calc-line { + display: grid; + grid-auto-flow: column; + grid-template-columns: 130px -webkit-max-content 37px; + grid-template-columns: 130px max-content 37px; + -webkit-column-gap: 30px; + -moz-column-gap: 30px; + column-gap: 30px; + padding-bottom: 43px; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; } + .foodspec .foodlist .sidebar-cart .calc-line .info { + display: grid; + row-gap: 7px; } + .foodspec .foodlist .sidebar-cart .calc-line .info .title { + font-style: normal; + font-weight: 300; + font-size: 14px; + line-height: 16px; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + /* black */ + color: #000000; } + .foodspec .foodlist .sidebar-cart .calc-line .info .about-mini { + font-style: normal; + font-weight: 300; + font-size: 12px; + line-height: 14px; + /* identical to box height */ + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + /* Gray 3 */ + color: #828282; } + .foodspec .foodlist .sidebar-cart .calc-line .setting { + display: grid; + grid-auto-flow: column; + grid-auto-columns: -webkit-max-content; + grid-auto-columns: max-content; + -webkit-column-gap: 13px; + -moz-column-gap: 13px; + column-gap: 13px; } + .foodspec .foodlist .sidebar-cart .calc-line .setting .minus { + -ms-flex-item-align: self-start; + align-self: self-start; } + .foodspec .foodlist .sidebar-cart .calc-line .setting .plus { + -ms-flex-item-align: self-start; + align-self: self-start; } + .foodspec .foodlist .sidebar-cart .calc-line .setting .qulvo { + -ms-flex-item-align: self-start; + align-self: self-start; + width: -webkit-max-content; + width: -moz-max-content; + width: max-content; + font-style: normal; + font-weight: 500; + font-size: 15px; + /* identical to box height */ + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + /* black */ + color: #000000; } + .foodspec .foodlist .sidebar-cart .calc-line .priceview .price { + font-weight: 500; + font-size: 15px; + line-height: 18px; + color: #000000; } + .foodspec .foodlist .sidebar-cart .calc-line .priceview svg { + width: 7px; + height: 11px; } + .foodspec .foodlist .sidebar-cart .calc-line .priceview svg path { + fill: #000000; } + .foodspec .foodlist .sidebar-cart .calc-line:nth-last-of-type(1n) { + position: relative; } + .foodspec .foodlist .sidebar-cart .calc-line:nth-last-of-type(1n)::after { + content: ''; + position: absolute; + left: 0; + right: 0; + height: 1px; + background: #BDBDBD; + bottom: 22px; } + .foodspec .foodlist .sidebar-cart .deliv { + grid-template-columns: 130px 37px; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; } + .foodspec .foodlist .sidebar-cart .deliv .title, + .foodspec .foodlist .sidebar-cart .deliv path, + .foodspec .foodlist .sidebar-cart .deliv .price { + color: #FF5C00 !important; + fill: #FF5C00 !important; } + .foodspec .foodlist .sidebar-cart .itogo { + display: grid; + grid-auto-flow: column; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; } + .foodspec .foodlist .sidebar-cart .itogo .left { + display: grid; + row-gap: 10px; } + .foodspec .foodlist .sidebar-cart .itogo .left span { + font-style: normal; + font-weight: 300; + font-size: 14px; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + color: #828282; } + .foodspec .foodlist .sidebar-cart .itogo .left .line { + display: grid; + grid-auto-flow: column; + -webkit-column-gap: 12px; + -moz-column-gap: 12px; + column-gap: 12px; } + .foodspec .foodlist .sidebar-cart .itogo .left .line .time { + font-style: normal; + font-weight: 300; + font-size: 14px; + line-height: 16px; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + color: #FF5C00; } + .foodspec .foodlist .sidebar-cart .itogo .right { + display: grid; + row-gap: 10px; } + .foodspec .foodlist .sidebar-cart .itogo .right span { + font-style: normal; + font-weight: 300; + font-size: 14px; + line-height: 16px; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + color: #828282; + justify-self: flex-end; } + .foodspec .foodlist .sidebar-cart .itogo .right .line { + display: grid; + grid-auto-flow: column; + -webkit-column-gap: 12px; + -moz-column-gap: 12px; + column-gap: 12px; } + .foodspec .foodlist .sidebar-cart .itogo .right .line #itog { + font-style: normal; + font-weight: bold; + font-size: 18px; + line-height: 0px; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + text-align: right; + color: #FF5C00; } + .foodspec .foodlist .sidebar-cart .itogo .right .line svg { + width: 7px; + height: 11px; + -ms-flex-item-align: end; + align-self: end; } + .foodspec .foodlist .sidebar-cart .submit { + margin-top: 35px; + background: #FF5C00; + border-radius: 10px; + height: 40px; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + font-style: normal; + font-weight: normal; + font-size: 20px; + line-height: 23px; + display: flex; + align-items: center; + /* белый цвет текста */ + color: #FFFFFF; } + +/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0eWxlcy5jc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvbm9ybWFsaXplLmNzcy9ub3JtYWxpemUuY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BnbGlkZWpzL2dsaWRlL3NyYy9hc3NldHMvc2Fzcy9nbGlkZS5jb3JlLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvQGdsaWRlanMvZ2xpZGUvc3JjL2Fzc2V0cy9zYXNzL2dsaWRlLnRoZW1lLnNjc3MiLCJzdHlsZXMuc2NzcyIsInV0aWxzL3ZhcnMuc2NzcyIsIm1vZHVsZXMvZm9vdGVyL2Zvb3Rlci5zY3NzIiwidXRpbHMvbWl4aW5zLnNjc3MiLCJtb2R1bGVzL2hlYWRlci9oZWFkZXIuc2NzcyIsIm1vZHVsZXMvZ2xpZGUvZ2xpZGUuc2NzcyIsIm1vZHVsZXMvbWVudS1mb29kL21lbnUtZm9vZC5zY3NzIiwibW9kdWxlcy9mb29kbGlzdC9mb29kbGlzdC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGdCQUFnQjtBQ0FoQiwyRUFBQTtBQUVBOytFREMrRTtBQ0UvRTs7O0VERUU7QUNHRjtFQUNFLGlCQUFpQjtFQUFFLE1BQUE7RUFDbkIsOEJBQThCO0VBQUUsTUFBQSxFQUFPOztBQUd6QzsrRURBK0U7QUNHL0U7O0VEQUU7QUNJRjtFQUNFLFNBQVMsRUFBQTs7QUFHWDs7RURGRTtBQ01GO0VBQ0UsY0FBYyxFQUFBOztBQUdoQjs7O0VESEU7QUNRRjtFQUNFLGNBQWM7RUFDZCxnQkFBZ0IsRUFBQTs7QUFHbEI7K0VEUCtFO0FDVS9FOzs7RURORTtBQ1dGO0VBQ0UsK0JBQXVCO1VBQXZCLHVCQUF1QjtFQUFFLE1BQUE7RUFDekIsU0FBUztFQUFFLE1BQUE7RUFDWCxpQkFBaUI7RUFBRSxNQUFBLEVBQU87O0FBRzVCOzs7RURMRTtBQ1VGO0VBQ0UsaUNBQWlDO0VBQUUsTUFBQTtFQUNuQyxjQUFjO0VBQUUsTUFBQSxFQUFPOztBQUd6QjsrRURQK0U7QUNVL0U7O0VEUEU7QUNX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dCBcIlVURi04XCI7XG4vKiEgbm9ybWFsaXplLmNzcyB2OC4wLjEgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovXG4vKiBEb2N1bWVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgbGluZSBoZWlnaHQgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gUHJldmVudCBhZGp1c3RtZW50cyBvZiBmb250IHNpemUgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlcyBpbiBpT1MuXG4gKi9cbmh0bWwge1xuICBsaW5lLWhlaWdodDogMS4xNTtcbiAgLyogMSAqL1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC8qIDIgKi8gfVxuXG4vKiBTZWN0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogUmVtb3ZlIHRoZSBtYXJnaW4gaW4gYWxsIGJyb3dzZXJzLlxuICovXG5ib2R5IHtcbiAgbWFyZ2luOiAwOyB9XG5cbi8qKlxuICogUmVuZGVyIHRoZSBgbWFpbmAgZWxlbWVudCBjb25zaXN0ZW50bHkgaW4gSUUuXG4gKi9cbm1haW4ge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGZvbnQgc2l6ZSBhbmQgbWFyZ2luIG9uIGBoMWAgZWxlbWVudHMgd2l0aGluIGBzZWN0aW9uYCBhbmRcbiAqIGBhcnRpY2xlYCBjb250ZXh0cyBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBTYWZhcmkuXG4gKi9cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7IH1cblxuLyogR3JvdXBpbmcgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gRmlyZWZveC5cbiAqIDIuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxuICovXG5ociB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAvKiAxICovXG4gIGhlaWdodDogMDtcbiAgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xucHJlIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtO1xuICAvKiAyICovIH1cblxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIG9uIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAqL1xuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbi8qKlxuICogMS4gUmVtb3ZlIHRoZSBib3R0b20gYm9yZGVyIGluIENocm9tZSA1Ny1cbiAqIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXG4gKi9cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgLyogMSAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgLyogMiAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4gKi9cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZGVyOyB9XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuY29kZSxcbmtiZCxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlOyB9XG5cbi8qKlxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluXG4gKiBhbGwgYnJvd3NlcnMuXG4gKi9cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IH1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtOyB9XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtOyB9XG5cbi8qIEVtYmVkZGVkIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFJlbW92ZSB0aGUgYm9yZGVyIG9uIGltYWdlcyBpbnNpZGUgbGlua3MgaW4gSUUgMTAuXG4gKi9cbmltZyB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTsgfVxuXG4vKiBGb3Jtc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogMS4gQ2hhbmdlIHRoZSBmb250IHN0eWxlcyBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXG4gKi9cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAvKiAxICovXG4gIGZvbnQtc2l6ZTogMTAwJTtcbiAgLyogMSAqL1xuICBsaW5lLWhlaWdodDogMS4xNTtcbiAgLyogMSAqL1xuICBtYXJnaW46IDA7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAqIFNob3cgdGhlIG92ZXJmbG93IGluIElFLlxuICogMS4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cbiAqL1xuYnV0dG9uLFxuaW5wdXQge1xuICAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlOyB9XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gKiAxLiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3guXG4gKi9cbmJ1dHRvbixcbnNlbGVjdCB7XG4gIC8qIDEgKi9cbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7IH1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICovXG5idXR0b24sXG5bdHlwZT1cImJ1dHRvblwiXSxcblt0eXBlPVwicmVzZXRcIl0sXG5bdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyB9XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJidXR0b25cIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInJlc2V0XCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJzdWJtaXRcIl06Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7IH1cblxuLyoqXG4gKiBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG4gKi9cbmJ1dHRvbjotbW96LWZvY3VzcmluZyxcblt0eXBlPVwiYnV0dG9uXCJdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJyZXNldFwiXTotbW96LWZvY3VzcmluZyxcblt0eXBlPVwic3VibWl0XCJdOi1tb3otZm9jdXNyaW5nIHtcbiAgb3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0OyB9XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5maWVsZHNldCB7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjc1ZW0gMC42MjVlbTsgfVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXG4gKiAyLiBDb3JyZWN0IHRoZSBjb2xvciBpbmhlcml0YW5jZSBmcm9tIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gSUUuXG4gKiAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gKiAgICBgZmllbGRzZXRgIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cbiAqL1xubGVnZW5kIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLyogMSAqL1xuICBjb2xvcjogaW5oZXJpdDtcbiAgLyogMiAqL1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgLyogMSAqL1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIC8qIDEgKi9cbiAgcGFkZGluZzogMDtcbiAgLyogMyAqL1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAvKiAxICovIH1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgdmVydGljYWwgYWxpZ25tZW50IGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICovXG5wcm9ncmVzcyB7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgfVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgMTArLlxuICovXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvOyB9XG5cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gSUUgMTAuXG4gKiAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAuXG4gKi9cblt0eXBlPVwiY2hlY2tib3hcIl0sXG5bdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLyogMSAqL1xuICBwYWRkaW5nOiAwO1xuICAvKiAyICovIH1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBjdXJzb3Igc3R5bGUgb2YgaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgYnV0dG9ucyBpbiBDaHJvbWUuXG4gKi9cblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87IH1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cbiAqIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxuICovXG5bdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuICAvKiAxICovXG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xuICAvKiAyICovIH1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIHBhZGRpbmcgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXG4gKi9cblt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyB9XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAqIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cbiAqL1xuOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICAvKiAxICovXG4gIGZvbnQ6IGluaGVyaXQ7XG4gIC8qIDIgKi8gfVxuXG4vKiBJbnRlcmFjdGl2ZVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBFZGdlLCBJRSAxMCssIGFuZCBGaXJlZm94LlxuICovXG5kZXRhaWxzIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGFsbCBicm93c2Vycy5cbiAqL1xuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTsgfVxuXG4vKiBNaXNjXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMCsuXG4gKi9cbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwLlxuICovXG5baGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLmdsaWRlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuICAuZ2xpZGUgKiB7XG4gICAgYm94LXNpemluZzogaW5oZXJpdDsgfVxuICAuZ2xpZGVfX3RyYWNrIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5nbGlkZV9fc2xpZGVzIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcbiAgICB0b3VjaC1hY3Rpb246IHBhbi1ZO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogMDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsgfVxuICAgIC5nbGlkZV9fc2xpZGVzLS1kcmFnZ2luZyB7XG4gICAgICB1c2VyLXNlbGVjdDogbm9uZTsgfVxuICAuZ2xpZGVfX3NsaWRlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7XG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAgIC5nbGlkZV9fc2xpZGUgYSB7XG4gICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgIC13ZWJraXQtdXNlci1kcmFnOiBub25lO1xuICAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTsgfVxuICAuZ2xpZGVfX2Fycm93cyB7XG4gICAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xuICAgIHVzZXItc2VsZWN0OiBub25lOyB9XG4gIC5nbGlkZV9fYnVsbGV0cyB7XG4gICAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xuICAgIHVzZXItc2VsZWN0OiBub25lOyB9XG4gIC5nbGlkZS0tcnRsIHtcbiAgICBkaXJlY3Rpb246IHJ0bDsgfVxuXG4uZ2xpZGVfX2Fycm93IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgdG9wOiA1MCU7XG4gIHotaW5kZXg6IDI7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgcGFkZGluZzogOXB4IDEycHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDJweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYm94LXNoYWRvdzogMCAwLjI1ZW0gMC41ZW0gMCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIHRleHQtc2hhZG93OiAwIDAuMjVlbSAwLjVlbSByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIG9wYWNpdHk6IDE7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcyBlYXNlLCBib3JkZXIgMzAwbXMgZWFzZS1pbi1vdXQ7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgbGluZS1oZWlnaHQ6IDE7IH1cbiAgLmdsaWRlX19hcnJvdzpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTsgfVxuICAuZ2xpZGVfX2Fycm93OmhvdmVyIHtcbiAgICBib3JkZXItY29sb3I6IHdoaXRlOyB9XG4gIC5nbGlkZV9fYXJyb3ctLWxlZnQge1xuICAgIGxlZnQ6IDJlbTsgfVxuICAuZ2xpZGVfX2Fycm93LS1yaWdodCB7XG4gICAgcmlnaHQ6IDJlbTsgfVxuICAuZ2xpZGVfX2Fycm93LS1kaXNhYmxlZCB7XG4gICAgb3BhY2l0eTogMC4zMzsgfVxuXG4uZ2xpZGVfX2J1bGxldHMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDI7XG4gIGJvdHRvbTogMmVtO1xuICBsZWZ0OiA1MCU7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBsaXN0LXN0eWxlOiBub25lO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7IH1cblxuLmdsaWRlX19idWxsZXQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG4gIHdpZHRoOiA5cHg7XG4gIGhlaWdodDogOXB4O1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICB0cmFuc2l0aW9uOiBhbGwgMzAwbXMgZWFzZS1pbi1vdXQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIGJveC1zaGFkb3c6IDAgMC4yNWVtIDAuNWVtIDAgcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBtYXJnaW46IDAgMC4yNWVtOyB9XG4gIC5nbGlkZV9fYnVsbGV0OmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lOyB9XG4gIC5nbGlkZV9fYnVsbGV0OmhvdmVyLCAuZ2xpZGVfX2J1bGxldDpmb2N1cyB7XG4gICAgYm9yZGVyOiAycHggc29saWQgd2hpdGU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpOyB9XG4gIC5nbGlkZV9fYnVsbGV0LS1hY3RpdmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOyB9XG5cbi5nbGlkZS0tc3dpcGVhYmxlIHtcbiAgY3Vyc29yOiBncmFiO1xuICBjdXJzb3I6IC1tb3otZ3JhYjtcbiAgY3Vyc29yOiAtd2Via2l0LWdyYWI7IH1cblxuLmdsaWRlLS1kcmFnZ2luZyB7XG4gIGN1cnNvcjogZ3JhYmJpbmc7XG4gIGN1cnNvcjogLW1vei1ncmFiYmluZztcbiAgY3Vyc29yOiAtd2Via2l0LWdyYWJiaW5nOyB9XG5cbmh0bWwge1xuICBmb250LXNpemU6IDE2cHg7XG4gIGhlaWdodDogMTAwJTtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nLCBzYW5zLXNlcmlmO1xuICBvdmVyZmxvdy14OiBoaWRkZW47IH1cblxuYm9keSB7XG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDtcbiAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplU3BlZWQ7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7IH1cblxuLm9wZW4tbW9kYWwge1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi5wb3B1cCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHotaW5kZXg6IDQwO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICByaWdodDogMDtcbiAgbGVmdDogMDsgfVxuXG4ub3Blbi1wb3B1cCB7XG4gIGRpc3BsYXk6IGZsZXg7IH1cblxuKixcbio6OmJlZm9yZSxcbio6OmFmdGVyIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuXG51bFtjbGFzc10sXG5vbFtjbGFzc10ge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwOyB9XG5cbmJvZHksXG5oMSxcbmgyLFxuaDMsXG5oNCxcbnAsXG51bFtjbGFzc10sXG5vbFtjbGFzc10sXG5saSxcbmZpZ3VyZSxcbmZpZ2NhcHRpb24sXG5ibG9ja3F1b3RlLFxuZGwsXG5kZCB7XG4gIG1hcmdpbjogMDsgfVxuXG5hOm5vdChbY2xhc3NdKSB7XG4gIHRleHQtZGVjb3JhdGlvbi1za2lwLWluazogYXV0bzsgfVxuXG5pbWcge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbmlucHV0LFxuYnV0dG9uLFxudGV4dGFyZWEsXG5zZWxlY3Qge1xuICBmb250OiBpbmhlcml0OyB9XG5cbi8qINCj0LTQsNC70Y/QtdC8INCy0YHQtSDQsNC90LjQvNCw0YbQuNC4INC4INC/0LXRgNC10YXQvtC00Ysg0LTQu9GPINC70Y7QtNC10LksINC60L7RgtC+0YDRi9C1INC/0YDQtdC00L/QvtGH0LjRgtCw0Lkg0LjRhSDQvdC1INC40YHQv9C+0LvRjNC30L7QstCw0YLRjCAqL1xuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgKiB7XG4gICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjAxbXMgIWltcG9ydGFudDtcbiAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAxICFpbXBvcnRhbnQ7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4wMW1zICFpbXBvcnRhbnQ7XG4gICAgc2Nyb2xsLWJlaGF2aW9yOiBhdXRvICFpbXBvcnRhbnQ7IH0gfVxuXG5hdWRpbyxcbmNhbnZhcyxcbmlmcmFtZSxcbmltZyxcbnN2ZyxcbnZpZGVvLFxudGV4dGFyZWEge1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG5cbnRleHRhcmVhIHtcbiAgcmVzaXplOiBub25lOyB9XG5cbnNlY3Rpb24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuaW5wdXQsXG5zZWxlY3QsXG5idXR0b24ge1xuICBvdXRsaW5lOiBub25lOyB9XG5cbi53cmFwcGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgaGVpZ2h0OiAxMDAlOyB9XG5cbi5jb250ZW50IHtcbiAgZmxleDogMSAwIGF1dG87IH1cblxuLmNvbnRhaW5lciB7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBtYXgtd2lkdGg6IDE2MDBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIHBsYWNlLWl0ZW1zOiBjZW50ZXI7IH1cblxuOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAwIDZweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG4gIGJhY2tncm91bmQ6ICNGRjVDMDA7IH1cblxuOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAwIDZweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjUwMDsgfVxuXG46Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgd2lkdGg6IDVweDtcbiAgaGVpZ2h0OiA1cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjUwMDsgfVxuXG5mb290ZXIge1xuICBtYXJnaW4tdG9wOiA2OHB4O1xuICBoZWlnaHQ6IDExMHB4O1xuICBiYWNrZ3JvdW5kOiAjRTBFMEUwO1xuICBkaXNwbGF5OiBncmlkO1xuICBhbGlnbi1jb250ZW50OiBjZW50ZXI7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuICAgIGZvb3RlciB7XG4gICAgICBoZWlnaHQ6IG1heC1jb250ZW50OyB9IH1cbiAgZm9vdGVyIC5mb290YyB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnIgMWZyO1xuICAgIGdyaWQtYXV0by1mbG93OiBjb2x1bW47IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gICAgICBmb290ZXIgLmZvb3RjIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgICAgIGdyaWQtYXV0by1mbG93OiBpbml0aWFsO1xuICAgICAgICByb3ctZ2FwOiAyMHB4O1xuICAgICAgICB0ZXh0LWFsaWduOiAtd2Via2l0LWNlbnRlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDMwcHg7XG4gICAgICAgIHBhZGRpbmctdG9wOiAzMHB4OyB9IH1cbiAgICBmb290ZXIgLmZvb3RjIHNwYW4ge1xuICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAvKiBHcmF5IDMgKi9cbiAgICAgIGNvbG9yOiAjODI4MjgyOyB9XG4gICAgZm9vdGVyIC5mb290YyAuYXBwIHtcbiAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDEzOHB4IDEzOHB4O1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiA0NHB4O1xuICAgICAgZ3JpZC1hdXRvLWZsb3c6IGNvbHVtbjtcbiAgICAgIGNvbHVtbi1nYXA6IDMycHg7XG4gICAgICBwbGFjZS1zZWxmOiBjZW50ZXI7IH1cbiAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTAwcHgpIHtcbiAgICAgICAgZm9vdGVyIC5mb290YyAuYXBwIHtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDEzOHB4O1xuICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogNDRweCA0NHB4O1xuICAgICAgICAgIHJvdy1nYXA6IDMwcHg7IH0gfVxuICAgICAgZm9vdGVyIC5mb290YyAuYXBwIC5nb29nbGUge1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyICFpbXBvcnRhbnQ7XG4gICAgICAgIGJhY2tncm91bmQ6IHVybChcIi4uL2ltYWdlcy9jb250ZW50L2dvb2dsZS5zdmdcIik7XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQgIWltcG9ydGFudDsgfVxuICAgICAgZm9vdGVyIC5mb290YyAuYXBwIC5hcHBsZSB7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXIgIWltcG9ydGFudDtcbiAgICAgICAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1hZ2VzL2NvbnRlbnQvYXBwbGUuc3ZnXCIpO1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0ICFpbXBvcnRhbnQ7IH1cbiAgICBmb290ZXIgLmZvb3RjIC5zb2NpYWwge1xuICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMjlweCAyOXB4O1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAyOXB4O1xuICAgICAgZ3JpZC1hdXRvLWZsb3c6IGNvbHVtbjtcbiAgICAgIGNvbHVtbi1nYXA6IDE5cHg7XG4gICAgICBwbGFjZS1zZWxmOiBlbmQ7XG4gICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7IH1cbiAgICAgIGZvb3RlciAuZm9vdGMgLnNvY2lhbCAuaW5zdGEge1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyICFpbXBvcnRhbnQ7XG4gICAgICAgIGJhY2tncm91bmQ6IHVybChcIi4uL2ltYWdlcy9jb250ZW50L2luc3RhLnN2Z1wiKTtcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCAhaW1wb3J0YW50OyB9XG4gICAgICBmb290ZXIgLmZvb3RjIC5zb2NpYWwgLnZrIHtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlciAhaW1wb3J0YW50O1xuICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWFnZXMvY29udGVudC92ay5zdmdcIik7XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQgIWltcG9ydGFudDsgfVxuXG5oZWFkZXIge1xuICBoZWlnaHQ6IDk2cHg7XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjRjBGMEYwO1xuICBkaXNwbGF5OiBncmlkOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjU0cHgpIHtcbiAgICBoZWFkZXIge1xuICAgICAgaGVpZ2h0OiA2MHB4OyB9IH1cbiAgaGVhZGVyIC5jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC1hdXRvLWNvbHVtbnM6IG1heC1jb250ZW50O1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWF4LWNvbnRlbnQgMWZyIG1heC1jb250ZW50O1xuICAgIGdyaWQtYXV0by1mbG93OiBjb2x1bW47XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHBsYWNlLXNlbGY6IGNlbnRlcjsgfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjU0cHgpIHtcbiAgICAgIGhlYWRlciAuY29udGFpbmVyIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtYXgtY29udGVudCBtYXgtY29udGVudCBtYXgtY29udGVudDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH0gfVxuICAgIGhlYWRlciAuY29udGFpbmVyIC5sb2dvcyB7XG4gICAgICBoZWlnaHQ6IDk2cHg7XG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIHBhZGRpbmctbGVmdDogNTRweDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDU0cHg7XG4gICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjRjBGMEYwO1xuICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjRjBGMEYwOyB9XG4gICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY1NHB4KSB7XG4gICAgICAgIGhlYWRlciAuY29udGFpbmVyIC5sb2dvcyB7XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAxNXB4O1xuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG4gICAgICAgICAgaGVpZ2h0OiA2MHB4OyB9XG4gICAgICAgICAgaGVhZGVyIC5jb250YWluZXIgLmxvZ29zIHN2ZyB7XG4gICAgICAgICAgICB3aWR0aDogMzBweDtcbiAgICAgICAgICAgIGhlaWdodDogMzBweDsgfSB9XG4gICAgaGVhZGVyIC5jb250YWluZXIgLm51bWJlcl9hZHJlc3Mge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgZ3JpZC1hdXRvLWZsb3c6IGNvbHVtbjtcbiAgICAgIHBsYWNlLXNlbGY6IGNlbnRlcjtcbiAgICAgIHBhZGRpbmctbGVmdDogNTVweDtcbiAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNGMEYwRjA7XG4gICAgICBoZWlnaHQ6IDk2cHg7XG4gICAgICBncmlkLWF1dG8tcm93czogbWF4LWNvbnRlbnQ7XG4gICAgICBncmlkLWF1dG8tY29sdW1uczogbWF4LWNvbnRlbnQ7XG4gICAgICBwbGFjZS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgYWxpZ24tY29udGVudDogY2VudGVyO1xuICAgICAgcGFkZGluZy1yaWdodDogNTVweDsgfVxuICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5NTRweCkge1xuICAgICAgICBoZWFkZXIgLmNvbnRhaW5lciAubnVtYmVyX2FkcmVzcyB7XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAxNXB4O1xuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDE1cHg7IH0gfVxuICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NTRweCkge1xuICAgICAgICBoZWFkZXIgLmNvbnRhaW5lciAubnVtYmVyX2FkcmVzcyB7XG4gICAgICAgICAgaGVpZ2h0OiA2MHB4OyB9IH1cbiAgICAgIGhlYWRlciAuY29udGFpbmVyIC5udW1iZXJfYWRyZXNzIC5udW1iZXIge1xuICAgICAgICBmb250LWZhbWlseTogUm9ib3RvO1xuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAvKiDRhtCy0LXRgiDQvNC10L3RjiAqL1xuICAgICAgICBjb2xvcjogI0ZGNUMwMDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgICAgICAgIGhlYWRlciAuY29udGFpbmVyIC5udW1iZXJfYWRyZXNzIC5udW1iZXIge1xuICAgICAgICAgICAgZm9udC1zaXplOiBjYWxjKDE2cHggKyAxNyAqICgoMTAwdncgLSAzMjBweCkgLyAxNjAwKSk7IH0gfVxuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogNzY3cHgpIHtcbiAgICAgICAgICBoZWFkZXIgLmNvbnRhaW5lciAubnVtYmVyX2FkcmVzcyAubnVtYmVyIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogY2FsYygxNnB4ICsgMTAgKiAoMTAwdncgLyAxNjAwKSk7IH0gfVxuICAgICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY1NHB4KSB7XG4gICAgICAgICAgaGVhZGVyIC5jb250YWluZXIgLm51bWJlcl9hZHJlc3MgLm51bWJlciB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMTZweDsgfSB9XG4gICAgICBoZWFkZXIgLmNvbnRhaW5lciAubnVtYmVyX2FkcmVzcyAuYWRyZXNzX2Jsb2NrIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC1hdXRvLWZsb3c6IGNvbHVtbjtcbiAgICAgICAgZ3JpZC1hdXRvLWNvbHVtbnM6IG1heC1jb250ZW50IG1heC1jb250ZW50O1xuICAgICAgICBjb2x1bW4tZ2FwOiAyMXB4OyB9XG4gICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTU0cHgpIHtcbiAgICAgICAgICBoZWFkZXIgLmNvbnRhaW5lciAubnVtYmVyX2FkcmVzcyAuYWRyZXNzX2Jsb2NrIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAgICAgICBoZWFkZXIgLmNvbnRhaW5lciAubnVtYmVyX2FkcmVzcyAuYWRyZXNzX2Jsb2NrIC5sZWZ0IHtcbiAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgIGp1c3RpZnktaXRlbXM6IHNlbGYtZW5kO1xuICAgICAgICAgIHJvdy1nYXA6IDRweDsgfVxuICAgICAgICAgIGhlYWRlciAuY29udGFpbmVyIC5udW1iZXJfYWRyZXNzIC5hZHJlc3NfYmxvY2sgLmxlZnQgLnRpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMTVweDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgY29sb3I6ICMwMDAwMDA7IH1cbiAgICAgICAgICBoZWFkZXIgLmNvbnRhaW5lciAubnVtYmVyX2FkcmVzcyAuYWRyZXNzX2Jsb2NrIC5sZWZ0IC5zdWItdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxNHB4O1xuICAgICAgICAgICAgLyogaWRlbnRpY2FsIHRvIGJveCBoZWlnaHQgKi9cbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICBjb2xvcjogI0FCQUJBQjsgfVxuICAgIGhlYWRlciAuY29udGFpbmVyIC5jYXJ0IHtcbiAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDQ1cHg7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiA0NXB4O1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtYXgtY29udGVudCBtYXgtY29udGVudDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBjb2x1bW4tZ2FwOiAyNHB4OyB9XG4gICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY1NHB4KSB7XG4gICAgICAgIGhlYWRlciAuY29udGFpbmVyIC5jYXJ0IHtcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICAgICAgICBjb2x1bW4tZ2FwOiAxMHB4OyB9XG4gICAgICAgICAgaGVhZGVyIC5jb250YWluZXIgLmNhcnQgc3ZnIHtcbiAgICAgICAgICAgIHdpZHRoOiAxNXB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAxNXB4OyB9IH1cbiAgICAgIGhlYWRlciAuY29udGFpbmVyIC5jYXJ0IC5wcmljZWJsb2NrIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC1hdXRvLWNvbHVtbnM6IG1heC1jb250ZW50IG1heC1jb250ZW50O1xuICAgICAgICBncmlkLWF1dG8tZmxvdzogY29sdW1uO1xuICAgICAgICBjb2x1bW4tZ2FwOiA1cHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICNGRjVDMDA7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgICAgIHBhZGRpbmc6IDhweCAxNXB4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gICAgICAgIGhlYWRlciAuY29udGFpbmVyIC5jYXJ0IC5wcmljZWJsb2NrIC5wcmljZSB7XG4gICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgIHdpZHRoOiBtYXgtY29udGVudDtcbiAgICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDE5cHg7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgIGNvbG9yOiAjRkZGRkZGOyB9XG4gICAgICAgIGhlYWRlciAuY29udGFpbmVyIC5jYXJ0IC5wcmljZWJsb2NrIHN2ZyB7XG4gICAgICAgICAgd2lkdGg6IDdweDtcbiAgICAgICAgICBoZWlnaHQ6IDExcHg7IH1cblxuLmNvbnRhaW5lci1zbGlkZXIge1xuICBwYWRkaW5nLWxlZnQ6IDUwcHg7XG4gIHBhZGRpbmctcmlnaHQ6IDUwcHg7IH1cbiAgLmNvbnRhaW5lci1zbGlkZXIgLmVkYWtyYXRpYS1zbGlkZXIge1xuICAgIG1hcmdpbi10b3A6IDI0cHg7IH1cbiAgICAuY29udGFpbmVyLXNsaWRlciAuZWRha3JhdGlhLXNsaWRlciAuZ2xpZGVfX3NsaWRlIGltZyB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgYm9yZGVyLXJhZGl1czogMjVweDsgfVxuICAgIC5jb250YWluZXItc2xpZGVyIC5lZGFrcmF0aWEtc2xpZGVyIC5nbGlkZV9fYXJyb3dzIHtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnM7IH1cbiAgICAgIC5jb250YWluZXItc2xpZGVyIC5lZGFrcmF0aWEtc2xpZGVyIC5nbGlkZV9fYXJyb3dzIC5nbGlkZV9fYXJyb3cge1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQ6ICMzMzMzMzM7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsgfVxuICAgICAgLmNvbnRhaW5lci1zbGlkZXIgLmVkYWtyYXRpYS1zbGlkZXIgLmdsaWRlX19hcnJvd3MgLmdsaWRlX19hcnJvdy0tbGVmdCB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZykgdHJhbnNsYXRlWSg1MCUpOyB9XG4gIC5jb250YWluZXItc2xpZGVyOmhvdmVyIC5nbGlkZV9fYXJyb3dzIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zczsgfVxuXG4ubWVudS1mb29kIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBjb2x1bW4tZ2FwOiAzNXB4O1xuICBtYXJnaW4tdG9wOiA0MHB4O1xuICBwbGFjZS1jb250ZW50OiBjZW50ZXI7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuICAgIC5tZW51LWZvb2Qge1xuICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIG1heC1jb250ZW50KTsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzYwcHgpIHtcbiAgICAubWVudS1mb29kIHtcbiAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBtYXgtY29udGVudCk7IH0gfVxuICAubWVudS1mb29kIC5ibG9jayB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG4gICAgYWxpZ24tY29udGVudDogY2VudGVyO1xuICAgIHJvdy1nYXA6IDhweDsgfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTQ1MHB4KSB7XG4gICAgICAubWVudS1mb29kIC5ibG9jayB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7IH0gfVxuICAgIC5tZW51LWZvb2QgLmJsb2NrOmhvdmVyIC5jb250IHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNGRjVDMDA7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4yczsgfVxuICAgIC5tZW51LWZvb2QgLmJsb2NrOmhvdmVyIHBhdGgge1xuICAgICAgZmlsbDogI0ZGNUMwMDtcbiAgICAgIHRyYW5zaXRpb246IGZpbGwgLjRzIGVhc2U7IH1cbiAgICAubWVudS1mb29kIC5ibG9jayAuY29udCB7XG4gICAgICB3aWR0aDogMTE3cHg7XG4gICAgICBoZWlnaHQ6IDExMnB4O1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI0JEQkRCRDtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICBib3JkZXItcmFkaXVzOiAyNXB4O1xuICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzOyB9XG4gICAgICAubWVudS1mb29kIC5ibG9jayAuY29udCBwYXRoIHtcbiAgICAgICAgdHJhbnNpdGlvbjogZmlsbCAuNHMgZWFzZTsgfVxuICAgIC5tZW51LWZvb2QgLmJsb2NrIC50aXRsZSB7XG4gICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDE5cHg7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGNvbG9yOiAjMDAwMDAwO1xuICAgICAgcGxhY2Utc2VsZjogY2VudGVyOyB9XG5cbi5mb29kc3BlYyBoMiB7XG4gIG1hcmdpbi10b3A6IDY2cHg7XG4gIG1hcmdpbi1ib3R0b206IDQwcHg7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgZm9udC1zaXplOiA0NXB4O1xuICBsaW5lLWhlaWdodDogNTNweDtcbiAgLyogaWRlbnRpY2FsIHRvIGJveCBoZWlnaHQgKi9cbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgLyog0YbQstC10YIg0LzQtdC90Y4gKi9cbiAgY29sb3I6ICNGRjVDMDA7IH1cblxuLmZvb2RzcGVjIC5mb29kbGlzdCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWF4LWNvbnRlbnQgbWF4LWNvbnRlbnQ7XG4gIGNvbHVtbi1nYXA6IDMycHg7XG4gIG1hcmdpbi10b3A6IDIzcHg7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5NTRweCkge1xuICAgIC5mb29kc3BlYyAuZm9vZGxpc3Qge1xuICAgICAgY29sdW1uLWdhcDogaW5pdGlhbDsgfSB9XG4gIC5mb29kc3BlYyAuZm9vZGxpc3QgLmZvb2Qge1xuICAgIGJhY2tncm91bmQ6ICNGMkYyRjI7XG4gICAgYm9yZGVyLXJhZGl1czogMjVweDtcbiAgICBwYWRkaW5nOiAzMnB4O1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyMjRweCAyMjRweCAyMjRweCAyMjRweDtcbiAgICByb3ctZ2FwOiAzMnB4O1xuICAgIGNvbHVtbi1nYXA6IDMycHg7IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDE0NTBweCkge1xuICAgICAgLmZvb2RzcGVjIC5mb29kbGlzdCAuZm9vZCB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMjI0cHggMjI0cHggMjI0cHg7IH0gfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTIyMHB4KSB7XG4gICAgICAuZm9vZHNwZWMgLmZvb2RsaXN0IC5mb29kIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyMjRweCAyMjRweDsgfSB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5NTRweCkge1xuICAgICAgLmZvb2RzcGVjIC5mb29kbGlzdCAuZm9vZCB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMjI0cHggMjI0cHg7IH0gfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgICAgIC5mb29kc3BlYyAuZm9vZGxpc3QgLmZvb2Qge1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDIyNHB4OyB9IH1cbiAgICAuZm9vZHNwZWMgLmZvb2RsaXN0IC5mb29kIC5mYmxvY2sge1xuICAgICAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDI1cHg7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgZWFzZS1pbi1vdXQgMC4ycztcbiAgICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICAgICAgLmZvb2RzcGVjIC5mb29kbGlzdCAuZm9vZCAuZmJsb2NrOmhvdmVyIHtcbiAgICAgICAgZmlsdGVyOiBkcm9wLXNoYWRvdygycHggMnB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMTUpKTtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIGVhc2UtaW4tb3V0IDAuMnM7IH1cbiAgICAgIC5mb29kc3BlYyAuZm9vZGxpc3QgLmZvb2QgLmZibG9jayAuaW5mbyB7XG4gICAgICAgIHBhZGRpbmc6IDIwcHggMTVweDtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgcm93LWdhcDogMjZweDsgfVxuICAgICAgICAuZm9vZHNwZWMgLmZvb2RsaXN0IC5mb29kIC5mYmxvY2sgLmluZm8gLnRpdGxlIHtcbiAgICAgICAgICBmb250LWZhbWlseTogUm9ib3RvO1xuICAgICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMjNweDtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMjdweDtcbiAgICAgICAgICAvKiBpZGVudGljYWwgdG8gYm94IGhlaWdodCAqL1xuICAgICAgICAgIC8qIGJsYWNrICovXG4gICAgICAgICAgY29sb3I6ICMwMDAwMDA7IH1cbiAgICAgICAgLmZvb2RzcGVjIC5mb29kbGlzdCAuZm9vZCAuZmJsb2NrIC5pbmZvIC5hYm91dCB7XG4gICAgICAgICAgZm9udC1mYW1pbHk6IFJvYm90bztcbiAgICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDEyMCU7XG4gICAgICAgICAgLyogb3IgMTRweCAqL1xuICAgICAgICAgIC8qIEdyYXkgMSAqL1xuICAgICAgICAgIGNvbG9yOiAjMzMzMzMzOyB9XG4gICAgICAgIC5mb29kc3BlYyAuZm9vZGxpc3QgLmZvb2QgLmZibG9jayAuaW5mbyAuZm9vdCB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH1cbiAgICAgICAgICAuZm9vZHNwZWMgLmZvb2RsaXN0IC5mb29kIC5mYmxvY2sgLmluZm8gLmZvb3QgLnBhcmFtYmxvY2sge1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBzZWxmLWVuZDtcbiAgICAgICAgICAgIGdyaWQtYXV0by1mbG93OiBjb2x1bW47XG4gICAgICAgICAgICBncmlkLWF1dG8tY29sdW1uczogbWF4LWNvbnRlbnQ7IH1cbiAgICAgICAgICAgIC5mb29kc3BlYyAuZm9vZGxpc3QgLmZvb2QgLmZibG9jayAuaW5mbyAuZm9vdCAucGFyYW1ibG9jayBzcGFuIHtcbiAgICAgICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxMHB4O1xuICAgICAgICAgICAgICBjb2xvcjogIzAwMDAwMDsgfVxuICAgICAgICAgIC5mb29kc3BlYyAuZm9vZGxpc3QgLmZvb2QgLmZibG9jayAuaW5mbyAuZm9vdCAucHJpY2VibG9jayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgY29sdW1uLWdhcDogOXB4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IHNlbGYtZW5kO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtYXgtY29udGVudCBtYXgtY29udGVudCBtYXgtY29udGVudDsgfVxuICAgICAgICAgICAgLmZvb2RzcGVjIC5mb29kbGlzdCAuZm9vZCAuZmJsb2NrIC5pbmZvIC5mb290IC5wcmljZWJsb2NrIHNwYW4ge1xuICAgICAgICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxMHB4O1xuICAgICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgIC8qIGJsYWNrICovXG4gICAgICAgICAgICAgIGNvbG9yOiAjMDAwMDAwOyB9XG4gICAgICAgICAgICAuZm9vZHNwZWMgLmZvb2RsaXN0IC5mb29kIC5mYmxvY2sgLmluZm8gLmZvb3QgLnByaWNlYmxvY2sgLnByaWNlIHtcbiAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAyNXB4O1xuICAgICAgICAgICAgICBjb2xvcjogI0ZGNUMwMDtcbiAgICAgICAgICAgICAgaGVpZ2h0OiAyOHB4OyB9XG4gIC5mb29kc3BlYyAuZm9vZGxpc3QgLnNpZGUtb3BlbiB7XG4gICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgcG9zaXRpb246IGZpeGVkICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXRvcDogMHB4ICFpbXBvcnRhbnQ7XG4gICAgei1pbmRleDogNTA7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICB3aWR0aDogbWF4LWNvbnRlbnQ7IH1cbiAgLmZvb2RzcGVjIC5mb29kbGlzdCAuc2lkZWJhci1jYXJ0IHtcbiAgICBiYWNrZ3JvdW5kOiAjRjJGMkYyO1xuICAgIGJvcmRlci1yYWRpdXM6IDI1cHg7XG4gICAgcGFkZGluZzogMjJweCAxNXB4O1xuICAgIGhlaWdodDogbWF4LWNvbnRlbnQ7XG4gICAgcG9zaXRpb246IC13ZWJraXQtc3RpY2t5O1xuICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgbWFyZ2luLXRvcDogMTYwcHg7XG4gICAgdG9wOiAzMHB4OyB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5NTRweCkge1xuICAgICAgLmZvb2RzcGVjIC5mb29kbGlzdCAuc2lkZWJhci1jYXJ0IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gICAgLmZvb2RzcGVjIC5mb29kbGlzdCAuc2lkZWJhci1jYXJ0IC5zdGFydGxpbmUge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMzVweDsgfVxuICAgICAgLmZvb2RzcGVjIC5mb29kbGlzdCAuc2lkZWJhci1jYXJ0IC5zdGFydGxpbmUgLnRpdGxlIHtcbiAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICBmb250LXNpemU6IDI1cHg7XG4gICAgICAgIC8qINGG0LLQtdGCINC80LXQvdGOICovXG4gICAgICAgIGNvbG9yOiAjRkY1QzAwOyB9XG4gICAgLmZvb2RzcGVjIC5mb29kbGlzdCAuc2lkZWJhci1jYXJ0IC5jYWxjLWxpbmUge1xuICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgIGdyaWQtYXV0by1mbG93OiBjb2x1bW47XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDEzMHB4IG1heC1jb250ZW50IDM3cHg7XG4gICAgICBjb2x1bW4tZ2FwOiAzMHB4O1xuICAgICAgcGFkZGluZy1ib3R0b206IDQzcHg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH1cbiAgICAgIC5mb29kc3BlYyAuZm9vZGxpc3QgLnNpZGViYXItY2FydCAuY2FsYy1saW5lIC5pbmZvIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgcm93LWdhcDogN3B4OyB9XG4gICAgICAgIC5mb29kc3BlYyAuZm9vZGxpc3QgLnNpZGViYXItY2FydCAuY2FsYy1saW5lIC5pbmZvIC50aXRsZSB7XG4gICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAvKiBibGFjayAqL1xuICAgICAgICAgIGNvbG9yOiAjMDAwMDAwOyB9XG4gICAgICAgIC5mb29kc3BlYyAuZm9vZGxpc3QgLnNpZGViYXItY2FydCAuY2FsYy1saW5lIC5pbmZvIC5hYm91dC1taW5pIHtcbiAgICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDE0cHg7XG4gICAgICAgICAgLyogaWRlbnRpY2FsIHRvIGJveCBoZWlnaHQgKi9cbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgLyogR3JheSAzICovXG4gICAgICAgICAgY29sb3I6ICM4MjgyODI7IH1cbiAgICAgIC5mb29kc3BlYyAuZm9vZGxpc3QgLnNpZGViYXItY2FydCAuY2FsYy1saW5lIC5zZXR0aW5nIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC1hdXRvLWZsb3c6IGNvbHVtbjtcbiAgICAgICAgZ3JpZC1hdXRvLWNvbHVtbnM6IG1heC1jb250ZW50O1xuICAgICAgICBjb2x1bW4tZ2FwOiAxM3B4OyB9XG4gICAgICAgIC5mb29kc3BlYyAuZm9vZGxpc3QgLnNpZGViYXItY2FydCAuY2FsYy1saW5lIC5zZXR0aW5nIC5taW51cyB7XG4gICAgICAgICAgYWxpZ24tc2VsZjogc2VsZi1zdGFydDsgfVxuICAgICAgICAuZm9vZHNwZWMgLmZvb2RsaXN0IC5zaWRlYmFyLWNhcnQgLmNhbGMtbGluZSAuc2V0dGluZyAucGx1cyB7XG4gICAgICAgICAgYWxpZ24tc2VsZjogc2VsZi1zdGFydDsgfVxuICAgICAgICAuZm9vZHNwZWMgLmZvb2RsaXN0IC5zaWRlYmFyLWNhcnQgLmNhbGMtbGluZSAuc2V0dGluZyAucXVsdm8ge1xuICAgICAgICAgIGFsaWduLXNlbGY6IHNlbGYtc3RhcnQ7XG4gICAgICAgICAgd2lkdGg6IG1heC1jb250ZW50O1xuICAgICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICAgICAgICAvKiBpZGVudGljYWwgdG8gYm94IGhlaWdodCAqL1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAvKiBibGFjayAqL1xuICAgICAgICAgIGNvbG9yOiAjMDAwMDAwOyB9XG4gICAgICAuZm9vZHNwZWMgLmZvb2RsaXN0IC5zaWRlYmFyLWNhcnQgLmNhbGMtbGluZSAucHJpY2V2aWV3IC5wcmljZSB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gICAgICAgIGNvbG9yOiAjMDAwMDAwOyB9XG4gICAgICAuZm9vZHNwZWMgLmZvb2RsaXN0IC5zaWRlYmFyLWNhcnQgLmNhbGMtbGluZSAucHJpY2V2aWV3IHN2ZyB7XG4gICAgICAgIHdpZHRoOiA3cHg7XG4gICAgICAgIGhlaWdodDogMTFweDsgfVxuICAgICAgLmZvb2RzcGVjIC5mb29kbGlzdCAuc2lkZWJhci1jYXJ0IC5jYWxjLWxpbmUgLnByaWNldmlldyBzdmcgcGF0aCB7XG4gICAgICAgIGZpbGw6ICMwMDAwMDA7IH1cbiAgICAgIC5mb29kc3BlYyAuZm9vZGxpc3QgLnNpZGViYXItY2FydCAuY2FsYy1saW5lOm50aC1sYXN0LW9mLXR5cGUoMW4pIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgICAgIC5mb29kc3BlYyAuZm9vZGxpc3QgLnNpZGViYXItY2FydCAuY2FsYy1saW5lOm50aC1sYXN0LW9mLXR5cGUoMW4pOjphZnRlciB7XG4gICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgICAgYmFja2dyb3VuZDogI0JEQkRCRDtcbiAgICAgICAgICBib3R0b206IDIycHg7IH1cbiAgICAuZm9vZHNwZWMgLmZvb2RsaXN0IC5zaWRlYmFyLWNhcnQgLmRlbGl2IHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMTMwcHggMzdweDtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfVxuICAgICAgLmZvb2RzcGVjIC5mb29kbGlzdCAuc2lkZWJhci1jYXJ0IC5kZWxpdiAudGl0bGUsXG4gICAgICAuZm9vZHNwZWMgLmZvb2RsaXN0IC5zaWRlYmFyLWNhcnQgLmRlbGl2IHBhdGgsXG4gICAgICAuZm9vZHNwZWMgLmZvb2RsaXN0IC5zaWRlYmFyLWNhcnQgLmRlbGl2IC5wcmljZSB7XG4gICAgICAgIGNvbG9yOiAjRkY1QzAwICFpbXBvcnRhbnQ7XG4gICAgICAgIGZpbGw6ICNGRjVDMDAgIWltcG9ydGFudDsgfVxuICAgIC5mb29kc3BlYyAuZm9vZGxpc3QgLnNpZGViYXItY2FydCAuaXRvZ28ge1xuICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgIGdyaWQtYXV0by1mbG93OiBjb2x1bW47XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH1cbiAgICAgIC5mb29kc3BlYyAuZm9vZGxpc3QgLnNpZGViYXItY2FydCAuaXRvZ28gLmxlZnQge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICByb3ctZ2FwOiAxMHB4OyB9XG4gICAgICAgIC5mb29kc3BlYyAuZm9vZGxpc3QgLnNpZGViYXItY2FydCAuaXRvZ28gLmxlZnQgc3BhbiB7XG4gICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICBjb2xvcjogIzgyODI4MjsgfVxuICAgICAgICAuZm9vZHNwZWMgLmZvb2RsaXN0IC5zaWRlYmFyLWNhcnQgLml0b2dvIC5sZWZ0IC5saW5lIHtcbiAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgIGdyaWQtYXV0by1mbG93OiBjb2x1bW47XG4gICAgICAgICAgY29sdW1uLWdhcDogMTJweDsgfVxuICAgICAgICAgIC5mb29kc3BlYyAuZm9vZGxpc3QgLnNpZGViYXItY2FydCAuaXRvZ28gLmxlZnQgLmxpbmUgLnRpbWUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBjb2xvcjogI0ZGNUMwMDsgfVxuICAgICAgLmZvb2RzcGVjIC5mb29kbGlzdCAuc2lkZWJhci1jYXJ0IC5pdG9nbyAucmlnaHQge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICByb3ctZ2FwOiAxMHB4OyB9XG4gICAgICAgIC5mb29kc3BlYyAuZm9vZGxpc3QgLnNpZGViYXItY2FydCAuaXRvZ28gLnJpZ2h0IHNwYW4ge1xuICAgICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgY29sb3I6ICM4MjgyODI7XG4gICAgICAgICAganVzdGlmeS1zZWxmOiBmbGV4LWVuZDsgfVxuICAgICAgICAuZm9vZHNwZWMgLmZvb2RsaXN0IC5zaWRlYmFyLWNhcnQgLml0b2dvIC5yaWdodCAubGluZSB7XG4gICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICBncmlkLWF1dG8tZmxvdzogY29sdW1uO1xuICAgICAgICAgIGNvbHVtbi1nYXA6IDEycHg7IH1cbiAgICAgICAgICAuZm9vZHNwZWMgLmZvb2RsaXN0IC5zaWRlYmFyLWNhcnQgLml0b2dvIC5yaWdodCAubGluZSAjaXRvZyB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwcHg7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgY29sb3I6ICNGRjVDMDA7IH1cbiAgICAgICAgICAuZm9vZHNwZWMgLmZvb2RsaXN0IC5zaWRlYmFyLWNhcnQgLml0b2dvIC5yaWdodCAubGluZSBzdmcge1xuICAgICAgICAgICAgd2lkdGg6IDdweDtcbiAgICAgICAgICAgIGhlaWdodDogMTFweDtcbiAgICAgICAgICAgIGFsaWduLXNlbGY6IGVuZDsgfVxuICAgIC5mb29kc3BlYyAuZm9vZGxpc3QgLnNpZGViYXItY2FydCAuc3VibWl0IHtcbiAgICAgIG1hcmdpbi10b3A6IDM1cHg7XG4gICAgICBiYWNrZ3JvdW5kOiAjRkY1QzAwO1xuICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICAgIGhlaWdodDogNDBweDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDIzcHg7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIC8qINCx0LXQu9GL0Lkg0YbQstC10YIg0YLQtdC60YHRgtCwICovXG4gICAgICBjb2xvcjogI0ZGRkZGRjsgfVxuIiwiLyohIG5vcm1hbGl6ZS5jc3MgdjguMC4xIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuXG4vKiBEb2N1bWVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluIGlPUy5cbiAqL1xuXG5odG1sIHtcbiAgbGluZS1oZWlnaHQ6IDEuMTU7IC8qIDEgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG59XG5cbi8qIFNlY3Rpb25zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgbWFyZ2luIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xufVxuXG4vKipcbiAqIFJlbmRlciB0aGUgYG1haW5gIGVsZW1lbnQgY29uc2lzdGVudGx5IGluIElFLlxuICovXG5cbm1haW4ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBmb250IHNpemUgYW5kIG1hcmdpbiBvbiBgaDFgIGVsZW1lbnRzIHdpdGhpbiBgc2VjdGlvbmAgYW5kXG4gKiBgYXJ0aWNsZWAgY29udGV4dHMgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgU2FmYXJpLlxuICovXG5cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7XG59XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gRmlyZWZveC5cbiAqIDIuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxuICovXG5cbmhyIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7IC8qIDEgKi9cbiAgaGVpZ2h0OiAwOyAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlOyAvKiAyICovXG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5wcmUge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07IC8qIDIgKi9cbn1cblxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgb24gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICovXG5cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLyoqXG4gKiAxLiBSZW1vdmUgdGhlIGJvdHRvbSBib3JkZXIgaW4gQ2hyb21lIDU3LVxuICogMi4gQWRkIHRoZSBjb3JyZWN0IHRleHQgZGVjb3JhdGlvbiBpbiBDaHJvbWUsIEVkZ2UsIElFLCBPcGVyYSwgYW5kIFNhZmFyaS5cbiAqL1xuXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7IC8qIDEgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IC8qIDIgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkOyAvKiAyICovXG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cbiAqL1xuXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmNvZGUsXG5rYmQsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbn1cblxuLyoqXG4gKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBlbGVtZW50cyBmcm9tIGFmZmVjdGluZyB0aGUgbGluZSBoZWlnaHQgaW5cbiAqIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07XG59XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtO1xufVxuXG4vKiBFbWJlZGRlZCBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgYm9yZGVyIG9uIGltYWdlcyBpbnNpZGUgbGlua3MgaW4gSUUgMTAuXG4gKi9cblxuaW1nIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xufVxuXG4vKiBGb3Jtc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBDaGFuZ2UgdGhlIGZvbnQgc3R5bGVzIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIFJlbW92ZSB0aGUgbWFyZ2luIGluIEZpcmVmb3ggYW5kIFNhZmFyaS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBmb250LWZhbWlseTogaW5oZXJpdDsgLyogMSAqL1xuICBmb250LXNpemU6IDEwMCU7IC8qIDEgKi9cbiAgbGluZS1oZWlnaHQ6IDEuMTU7IC8qIDEgKi9cbiAgbWFyZ2luOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogU2hvdyB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gKiAxLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlLlxuICovXG5cbmJ1dHRvbixcbmlucHV0IHsgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEVkZ2UsIEZpcmVmb3gsIGFuZCBJRS5cbiAqIDEuIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRmlyZWZveC5cbiAqL1xuXG5idXR0b24sXG5zZWxlY3QgeyAvKiAxICovXG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKi9cblxuYnV0dG9uLFxuW3R5cGU9XCJidXR0b25cIl0sXG5bdHlwZT1cInJlc2V0XCJdLFxuW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIGJvcmRlciBhbmQgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwiYnV0dG9uXCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJyZXNldFwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwic3VibWl0XCJdOjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwO1xufVxuXG4vKipcbiAqIFJlc3RvcmUgdGhlIGZvY3VzIHN0eWxlcyB1bnNldCBieSB0aGUgcHJldmlvdXMgcnVsZS5cbiAqL1xuXG5idXR0b246LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cImJ1dHRvblwiXTotbW96LWZvY3VzcmluZyxcblt0eXBlPVwicmVzZXRcIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInN1Ym1pdFwiXTotbW96LWZvY3VzcmluZyB7XG4gIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBwYWRkaW5nIGluIEZpcmVmb3guXG4gKi9cblxuZmllbGRzZXQge1xuICBwYWRkaW5nOiAwLjM1ZW0gMC43NWVtIDAuNjI1ZW07XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgdGV4dCB3cmFwcGluZyBpbiBFZGdlIGFuZCBJRS5cbiAqIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cbiAqIDMuIFJlbW92ZSB0aGUgcGFkZGluZyBzbyBkZXZlbG9wZXJzIGFyZSBub3QgY2F1Z2h0IG91dCB3aGVuIHRoZXkgemVybyBvdXRcbiAqICAgIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmxlZ2VuZCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgY29sb3I6IGluaGVyaXQ7IC8qIDIgKi9cbiAgZGlzcGxheTogdGFibGU7IC8qIDEgKi9cbiAgbWF4LXdpZHRoOiAxMDAlOyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDMgKi9cbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDsgLyogMSAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gKi9cblxucHJvZ3Jlc3Mge1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSAxMCsuXG4gKi9cblxudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBJRSAxMC5cbiAqIDIuIFJlbW92ZSB0aGUgcGFkZGluZyBpbiBJRSAxMC5cbiAqL1xuXG5bdHlwZT1cImNoZWNrYm94XCJdLFxuW3R5cGU9XCJyYWRpb1wiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cbiAqL1xuXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIG9kZCBhcHBlYXJhbmNlIGluIENocm9tZSBhbmQgU2FmYXJpLlxuICogMi4gQ29ycmVjdCB0aGUgb3V0bGluZSBzdHlsZSBpbiBTYWZhcmkuXG4gKi9cblxuW3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xuICBvdXRsaW5lLW9mZnNldDogLTJweDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBtYWNPUy5cbiAqL1xuXG5bdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICogMi4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gU2FmYXJpLlxuICovXG5cbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMSAqL1xuICBmb250OiBpbmhlcml0OyAvKiAyICovXG59XG5cbi8qIEludGVyYWN0aXZlXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUgMTArLCBhbmQgRmlyZWZveC5cbiAqL1xuXG5kZXRhaWxzIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTtcbn1cblxuLyogTWlzY1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMCsuXG4gKi9cblxudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwLlxuICovXG5cbltoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbiIsIkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjtcclxuXHJcbi4jeyRnbGlkZS1jbGFzc30ge1xyXG4gICR0aGlzOiAmO1xyXG5cclxuICAkc2U6ICRnbGlkZS1lbGVtZW50LXNlcGFyYXRvcjtcclxuICAkc206ICRnbGlkZS1tb2RpZmllci1zZXBhcmF0b3I7XHJcblxyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB3aWR0aDogMTAwJTtcclxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG5cclxuICAqIHtcclxuICAgIGJveC1zaXppbmc6IGluaGVyaXQ7XHJcbiAgfVxyXG5cclxuICAmI3skc2V9dHJhY2sge1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICB9XHJcblxyXG4gICYjeyRzZX1zbGlkZXMge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBsaXN0LXN0eWxlOiBub25lO1xyXG4gICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xyXG4gICAgdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcclxuICAgIHRvdWNoLWFjdGlvbjogcGFuLVk7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC13cmFwOiBub3dyYXA7XHJcbiAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xyXG5cclxuICAgICYjeyRnbGlkZS1tb2RpZmllci1zZXBhcmF0b3J9ZHJhZ2dpbmcge1xyXG4gICAgICB1c2VyLXNlbGVjdDogbm9uZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYjeyRzZX1zbGlkZSB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIGZsZXgtc2hyaW5rOiAwO1xyXG4gICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcclxuICAgIHVzZXItc2VsZWN0OiBub25lO1xyXG4gICAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xyXG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcclxuXHJcbiAgICBhIHtcclxuICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgICAgIC13ZWJraXQtdXNlci1kcmFnOiBub25lO1xyXG4gICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xyXG4gICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmI3skc2V9YXJyb3dzIHtcclxuICAgIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcclxuICAgIHVzZXItc2VsZWN0OiBub25lO1xyXG4gIH1cclxuXHJcbiAgJiN7JHNlfWJ1bGxldHMge1xyXG4gICAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xyXG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgfVxyXG5cclxuICAmI3skc219cnRsIHtcclxuICAgIGRpcmVjdGlvbjogcnRsO1xyXG4gIH1cclxufVxyXG4iLCJAaW1wb3J0ICd2YXJpYWJsZXMnO1xyXG5cclxuLiN7JGdsaWRlLWNsYXNzfSB7XHJcbiAgJHRoaXM6ICY7XHJcblxyXG4gICRzZTogJGdsaWRlLWVsZW1lbnQtc2VwYXJhdG9yO1xyXG4gICRzbTogJGdsaWRlLW1vZGlmaWVyLXNlcGFyYXRvcjtcclxuXHJcbiAgJiN7JHNlfWFycm93IHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgdG9wOiA1MCU7XHJcbiAgICB6LWluZGV4OiAyO1xyXG4gICAgY29sb3I6IHdoaXRlO1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgIHBhZGRpbmc6IDlweCAxMnB4O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICBib3JkZXI6IDJweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XHJcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XHJcbiAgICBib3gtc2hhZG93OiAwIDAuMjVlbSAwLjVlbSAwIHJnYmEoMCwgMCwgMCwgMC4xKTtcclxuICAgIHRleHQtc2hhZG93OiAwIDAuMjVlbSAwLjVlbSByZ2JhKDAsIDAsIDAsIDAuMSk7XHJcbiAgICBvcGFjaXR5OiAxO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcyBlYXNlLCBib3JkZXIgMzAwbXMgZWFzZS1pbi1vdXQ7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XHJcbiAgICBsaW5lLWhlaWdodDogMTtcclxuXHJcbiAgICAmOmZvY3VzIHsgb3V0bGluZTogbm9uZTsgfVxyXG4gICAgJjpob3ZlciB7IGJvcmRlci1jb2xvcjogd2hpdGU7IH1cclxuXHJcbiAgICAmI3skc219bGVmdCB7XHJcbiAgICAgIGxlZnQ6IDJlbTtcclxuICAgIH1cclxuXHJcbiAgICAmI3skc219cmlnaHQge1xyXG4gICAgICByaWdodDogMmVtO1xyXG4gICAgfVxyXG5cclxuICAgICYjeyRzbX1kaXNhYmxlZCB7XHJcbiAgICAgIG9wYWNpdHk6IDAuMzM7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmI3skc2V9YnVsbGV0cyB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB6LWluZGV4OiAyO1xyXG4gICAgYm90dG9tOiAyZW07XHJcbiAgICBsZWZ0OiA1MCU7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcclxuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XHJcbiAgfVxyXG5cclxuICAmI3skc2V9YnVsbGV0IHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcclxuICAgIHdpZHRoOiA5cHg7XHJcbiAgICBoZWlnaHQ6IDlweDtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICBib3JkZXI6IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcclxuICAgIHRyYW5zaXRpb246IGFsbCAzMDBtcyBlYXNlLWluLW91dDtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIGxpbmUtaGVpZ2h0OiAwO1xyXG4gICAgYm94LXNoYWRvdzogMCAwLjI1ZW0gMC41ZW0gMCByZ2JhKDAsIDAsIDAsIDAuMSk7XHJcbiAgICBtYXJnaW46IDAgMC4yNWVtO1xyXG5cclxuICAgICY6Zm9jdXMge1xyXG4gICAgICBvdXRsaW5lOiBub25lO1xyXG4gICAgfVxyXG5cclxuICAgICY6aG92ZXIsXHJcbiAgICAmOmZvY3VzIHtcclxuICAgICAgYm9yZGVyOiAycHggc29saWQgd2hpdGU7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcclxuICAgIH1cclxuXHJcbiAgICAmI3skc219YWN0aXZlIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmI3skc219c3dpcGVhYmxlIHtcclxuICAgIGN1cnNvcjogZ3JhYjtcclxuICAgIGN1cnNvcjogLW1vei1ncmFiO1xyXG4gICAgY3Vyc29yOiAtd2Via2l0LWdyYWI7XHJcbiAgfVxyXG5cclxuICAmI3skc219ZHJhZ2dpbmcge1xyXG4gICAgY3Vyc29yOiBncmFiYmluZztcclxuICAgIGN1cnNvcjogLW1vei1ncmFiYmluZztcclxuICAgIGN1cnNvcjogLXdlYmtpdC1ncmFiYmluZztcclxuICB9XHJcbn1cclxuIiwiQGltcG9ydCBcInV0aWxzL2xpYnNcIjtcbkBpbXBvcnQgXCJ1dGlscy92YXJzXCI7XG5AaW1wb3J0IFwidXRpbHMvbWl4aW5zXCI7XG5AaW1wb3J0IFwidXRpbHMvZm9udHNcIjtcbkBpbXBvcnQgXCJub2RlX21vZHVsZXMvQGdsaWRlanMvZ2xpZGUvc3JjL2Fzc2V0cy9zYXNzL2dsaWRlLmNvcmVcIjtcbkBpbXBvcnQgXCJub2RlX21vZHVsZXMvQGdsaWRlanMvZ2xpZGUvc3JjL2Fzc2V0cy9zYXNzL2dsaWRlLnRoZW1lXCI7XG5odG1sIHtcbiAgICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZm9udC1mYW1pbHk6ICdSb2JvdG8nLCBzYW5zLXNlcmlmO1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cblxuYm9keSB7XG4gICAgbWluLWhlaWdodDogMTAwdmg7XG4gICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7XG4gICAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplU3BlZWQ7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbn1cblxuLm9wZW4tbW9kYWwge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5wb3B1cCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICB6LWluZGV4OiA0MDtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICByaWdodDogMDtcbiAgICBsZWZ0OiAwO1xufVxuXG4ub3Blbi1wb3B1cCB7XG4gICAgZGlzcGxheTogZmxleDtcbn1cblxuKixcbio6OmJlZm9yZSxcbio6OmFmdGVyIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG51bFtjbGFzc10sXG5vbFtjbGFzc10ge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcbn1cblxuYm9keSxcbmgxLFxuaDIsXG5oMyxcbmg0LFxucCxcbnVsW2NsYXNzXSxcbm9sW2NsYXNzXSxcbmxpLFxuZmlndXJlLFxuZmlnY2FwdGlvbixcbmJsb2NrcXVvdGUsXG5kbCxcbmRkIHtcbiAgICBtYXJnaW46IDA7XG59XG5cbmE6bm90KFtjbGFzc10pIHtcbiAgICB0ZXh0LWRlY29yYXRpb24tc2tpcC1pbms6IGF1dG87XG59XG5cbmltZyB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG5pbnB1dCxcbmJ1dHRvbixcbnRleHRhcmVhLFxuc2VsZWN0IHtcbiAgICBmb250OiBpbmhlcml0O1xufVxuXG5cbi8qINCj0LTQsNC70Y/QtdC8INCy0YHQtSDQsNC90LjQvNCw0YbQuNC4INC4INC/0LXRgNC10YXQvtC00Ysg0LTQu9GPINC70Y7QtNC10LksINC60L7RgtC+0YDRi9C1INC/0YDQtdC00L/QvtGH0LjRgtCw0Lkg0LjRhSDQvdC1INC40YHQv9C+0LvRjNC30L7QstCw0YLRjCAqL1xuXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgICoge1xuICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDAuMDFtcyAhaW1wb3J0YW50O1xuICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAxICFpbXBvcnRhbnQ7XG4gICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMDFtcyAhaW1wb3J0YW50O1xuICAgICAgICBzY3JvbGwtYmVoYXZpb3I6IGF1dG8gIWltcG9ydGFudDtcbiAgICB9XG59XG5cbmF1ZGlvLFxuY2FudmFzLFxuaWZyYW1lLFxuaW1nLFxuc3ZnLFxudmlkZW8sXG50ZXh0YXJlYSB7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxudGV4dGFyZWEge1xuICAgIHJlc2l6ZTogbm9uZTtcbn1cblxuc2VjdGlvbiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG5pbnB1dCxcbnNlbGVjdCxcbmJ1dHRvbiB7XG4gICAgb3V0bGluZTogbm9uZTtcbn1cblxuLndyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5jb250ZW50IHtcbiAgICBmbGV4OiAxIDAgYXV0bztcbn1cblxuLmNvbnRhaW5lciB7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgbWF4LXdpZHRoOiAkY29udGVudC1zaXplO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbn1cblxuOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IHJnYmEoMCwgMCwgMCwgLjMpO1xuICAgIGJhY2tncm91bmQ6ICNGRjVDMDA7XG59XG5cbjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xuICAgIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAwIDZweCByZ2JhKDAsIDAsIDAsIC4zKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1MDA7XG59XG5cbjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgIHdpZHRoOiA1cHg7XG4gICAgaGVpZ2h0OiA1cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTAwO1xufVxuXG4vL9Cc0L7QtNGD0LvQuFxuQGltcG9ydCBcIm1vZHVsZXMvbW9kdWxlc1wiOyIsIi8vIENvbG9yc1xuJEhlYWRsaW5lOiAjNDczOTU5O1xuJFRleHQ6ICM2QzVGNzg7XG4kV2hpdGU6ICNGRkZGRkY7XG4kQWNjZW50OiAjRTYzMjQ3O1xuJEFjY2VudDI6ICMwNUM5QkQ7XG4kQkc6ICNGRkY4RTk7XG4kTGlnaHQ6ICNFNkU1RTU7XG4vLyBTaXplc1xuJGJhc2UtZm9udC1zaXplOiAxNnB4O1xuJGJyZWFrcG9pbnRzOiAoIFwicGhvbmVcIjogNDAwcHgsIFwicGhvbmUtd2lkZVwiOiA0ODBweCwgXCJwaGFibGV0XCI6IDU2MHB4LCBcInRhYmxldC1zbWFsbFwiOiA2NDBweCwgXCJ0YWJsZXRcIjogNzY4cHgsIFwidGFibGV0LXdpZGVcIjogMTAyNHB4LCBcImRlc2t0b3BcIjogMTI0OHB4LCBcImRlc2t0b3Atd2lkZVwiOiAxNDQwcHgpO1xuJGNvbnRlbnQtc2l6ZTogMTYwMHB4O1xuJG1heFdpZHRoOiAxNjAwO1xuLy8gRm9udHMiLCJmb290ZXIge1xyXG4gICAgbWFyZ2luLXRvcDogNjhweDtcclxuICAgIGhlaWdodDogMTEwcHg7XHJcbiAgICBiYWNrZ3JvdW5kOiAjRTBFMEUwO1xyXG4gICAgZGlzcGxheTogZ3JpZDtcclxuICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcclxuICAgICAgICBoZWlnaHQ6IG1heC1jb250ZW50O1xyXG4gICAgfVxyXG4gICAgLmZvb3RjIHtcclxuICAgICAgICBkaXNwbGF5OiBncmlkO1xyXG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmciAxZnI7XHJcbiAgICAgICAgZ3JpZC1hdXRvLWZsb3c6IGNvbHVtbjtcclxuICAgICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XHJcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xyXG4gICAgICAgICAgICBncmlkLWF1dG8tZmxvdzogaW5pdGlhbDtcclxuICAgICAgICAgICAgcm93LWdhcDogMjBweDtcclxuICAgICAgICAgICAgdGV4dC1hbGlnbjogLXdlYmtpdC1jZW50ZXI7XHJcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzMHB4O1xyXG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMzBweDtcclxuICAgICAgICB9XHJcbiAgICAgICAgc3BhbiB7XHJcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMTZweDtcclxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICAgICAgLyogR3JheSAzICovXHJcbiAgICAgICAgICAgIGNvbG9yOiAjODI4MjgyO1xyXG4gICAgICAgIH1cclxuICAgICAgICAuYXBwIHtcclxuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcclxuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxMzhweCAxMzhweDtcclxuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiA0NHB4O1xyXG4gICAgICAgICAgICBncmlkLWF1dG8tZmxvdzogY29sdW1uO1xyXG4gICAgICAgICAgICBjb2x1bW4tZ2FwOiAzMnB4O1xyXG4gICAgICAgICAgICBwbGFjZS1zZWxmOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTAwcHgpIHtcclxuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMTM4cHg7XHJcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDQ0cHggNDRweDtcclxuICAgICAgICAgICAgICAgIHJvdy1nYXA6IDMwcHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLmdvb2dsZSB7XHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBiZyhcImdvb2dsZS5zdmdcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLmFwcGxlIHtcclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJnKFwiYXBwbGUuc3ZnXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5zb2NpYWwge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xyXG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDI5cHggMjlweDtcclxuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAyOXB4O1xyXG4gICAgICAgICAgICBncmlkLWF1dG8tZmxvdzogY29sdW1uO1xyXG4gICAgICAgICAgICBjb2x1bW4tZ2FwOiAxOXB4O1xyXG4gICAgICAgICAgICBwbGFjZS1zZWxmOiBlbmQ7XHJcbiAgICAgICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcclxuICAgICAgICAgICAgLmluc3RhIHtcclxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJnKFwiaW5zdGEuc3ZnXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC52ayB7XHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBiZyhcInZrLnN2Z1wiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufSIsIkBtaXhpbiBzaXplKCRhLCAkYjogJGEpIHtcbiAgICB3aWR0aDogJGE7XG4gICAgaGVpZ2h0OiAkYjtcbn1cblxuQG1peGluIGJnICgkYmcpIHtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1hZ2VzL2NvbnRlbnQvI3skYmd9XCIpO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQgIWltcG9ydGFudDtcbn1cblxuQG1peGluIGFmb250KCRwY1NpemUsXG4kbW9iU2l6ZSkge1xuICAgICRhZGRTaXplOiAkcGNTaXplIC0gJG1vYlNpemU7XG4gICAgJGFkZE1vYnNpemU6ICRhZGRTaXplICsgJGFkZFNpemUgKiAwLjc7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAgIGZvbnQtc2l6ZTogY2FsYygjeyRtb2JTaXplICsgcHh9ICsgI3skYWRkTW9ic2l6ZX0gKiAoKDEwMHZ3IC0gMzIwcHgpIC8gI3skbWF4V2lkdGh9KSk7XG4gICAgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA3NjdweCkge1xuICAgICAgICBmb250LXNpemU6IGNhbGMoI3skbW9iU2l6ZSArIHB4fSArICN7JGFkZFNpemV9ICogKDEwMHZ3IC8gI3skbWF4V2lkdGh9KSk7XG4gICAgfVxufVxuIiwiaGVhZGVyIHtcbiAgICBoZWlnaHQ6IDk2cHg7XG4gICAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0YwRjBGMDtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjU0cHgpIHtcbiAgICAgICAgaGVpZ2h0OiA2MHB4O1xuICAgIH1cbiAgICAuY29udGFpbmVyIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC1hdXRvLWNvbHVtbnM6IG1heC1jb250ZW50O1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1heC1jb250ZW50IDFmciBtYXgtY29udGVudDtcbiAgICAgICAgZ3JpZC1hdXRvLWZsb3c6IGNvbHVtbjtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwbGFjZS1zZWxmOiBjZW50ZXI7XG4gICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjU0cHgpIHtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWF4LWNvbnRlbnQgbWF4LWNvbnRlbnQgbWF4LWNvbnRlbnQ7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuICAgICAgICAubG9nb3Mge1xuICAgICAgICAgICAgaGVpZ2h0OiA5NnB4O1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDU0cHg7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiA1NHB4O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI0YwRjBGMDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI0YwRjBGMDtcbiAgICAgICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjU0cHgpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMTVweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDYwcHg7XG4gICAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDMwcHg7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMzBweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLm51bWJlcl9hZHJlc3Mge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC1hdXRvLWZsb3c6IGNvbHVtbjtcbiAgICAgICAgICAgIHBsYWNlLXNlbGY6IGNlbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogNTVweDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNGMEYwRjA7XG4gICAgICAgICAgICBoZWlnaHQ6IDk2cHg7XG4gICAgICAgICAgICBncmlkLWF1dG8tcm93czogbWF4LWNvbnRlbnQ7XG4gICAgICAgICAgICBncmlkLWF1dG8tY29sdW1uczogbWF4LWNvbnRlbnQ7XG4gICAgICAgICAgICBwbGFjZS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24tY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogNTVweDtcbiAgICAgICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTU0cHgpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMTVweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjU0cHgpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDYwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAubnVtYmVyIHtcbiAgICAgICAgICAgICAgICBmb250LWZhbWlseTogUm9ib3RvO1xuICAgICAgICAgICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAvKiDRhtCy0LXRgiDQvNC10L3RjiAqL1xuICAgICAgICAgICAgICAgIGNvbG9yOiAjRkY1QzAwO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBhZm9udCgyNiwgMTYpO1xuICAgICAgICAgICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjU0cHgpIHtcbiAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLmFkcmVzc19ibG9jayB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgICAgICBncmlkLWF1dG8tZmxvdzogY29sdW1uO1xuICAgICAgICAgICAgICAgIGdyaWQtYXV0by1jb2x1bW5zOiBtYXgtY29udGVudCBtYXgtY29udGVudDtcbiAgICAgICAgICAgICAgICBjb2x1bW4tZ2FwOiAyMXB4O1xuICAgICAgICAgICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTU0cHgpIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLmxlZnQge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5LWl0ZW1zOiBzZWxmLWVuZDtcbiAgICAgICAgICAgICAgICAgICAgcm93LWdhcDogNHB4O1xuICAgICAgICAgICAgICAgICAgICAudGl0bGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxNXB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogIzAwMDAwMDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAuc3ViLXRpdGxlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMTRweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8qIGlkZW50aWNhbCB0byBib3ggaGVpZ2h0ICovXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICNBQkFCQUI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLnJpZ2h0IHt9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLmNhcnQge1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogNDVweDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDQ1cHg7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1heC1jb250ZW50IG1heC1jb250ZW50O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGNvbHVtbi1nYXA6IDI0cHg7XG4gICAgICAgICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY1NHB4KSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgICAgICAgICAgICAgY29sdW1uLWdhcDogMTBweDtcbiAgICAgICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVweDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5wcmljZWJsb2NrIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgICAgIGdyaWQtYXV0by1jb2x1bW5zOiBtYXgtY29udGVudCBtYXgtY29udGVudDtcbiAgICAgICAgICAgICAgICBncmlkLWF1dG8tZmxvdzogY29sdW1uO1xuICAgICAgICAgICAgICAgIGNvbHVtbi1nYXA6IDVweDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjRkY1QzAwO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogOHB4IDE1cHg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogbWF4LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE5cHg7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICNGRkZGRkY7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA3cHg7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTFweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59IiwiLmNvbnRhaW5lci1zbGlkZXIge1xyXG4gICAgcGFkZGluZy1sZWZ0OiA1MHB4O1xyXG4gICAgcGFkZGluZy1yaWdodDogNTBweDtcclxuICAgIC5lZGFrcmF0aWEtc2xpZGVyIHtcclxuICAgICAgICBtYXJnaW4tdG9wOiAyNHB4O1xyXG4gICAgICAgIC5nbGlkZV9fc2xpZGUge1xyXG4gICAgICAgICAgICAvLyBoZWlnaHQ6IDI2NHB4O1xyXG4gICAgICAgICAgICBpbWcge1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcclxuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDI1cHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLmdsaWRlX19hcnJvd3Mge1xyXG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xyXG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnM7XHJcbiAgICAgICAgICAgIC5nbGlkZV9fYXJyb3cge1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogIzMzMzMzMztcclxuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAuZ2xpZGVfX2Fycm93LS1sZWZ0IHtcclxuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZykgdHJhbnNsYXRlWSg1MCUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgICAgLmdsaWRlX19hcnJvd3Mge1xyXG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3M7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59IiwiLm1lbnUtZm9vZCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICAgIGNvbHVtbi1nYXA6IDM1cHg7XHJcbiAgICBtYXJnaW4tdG9wOiA0MHB4O1xyXG4gICAgcGxhY2UtY29udGVudDogY2VudGVyO1xyXG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xyXG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XHJcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWF4LWNvbnRlbnQpO1xyXG4gICAgfVxyXG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzNjBweCkge1xyXG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XHJcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWF4LWNvbnRlbnQpO1xyXG4gICAgfVxyXG4gICAgLmJsb2NrIHtcclxuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcclxuICAgICAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgICAgcm93LWdhcDogOHB4O1xyXG4gICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTQ1MHB4KSB7XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICAuY29udCB7XHJcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjRkY1QzAwO1xyXG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcGF0aCB7XHJcbiAgICAgICAgICAgICAgICBmaWxsOiAjRkY1QzAwO1xyXG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogZmlsbCAuNHMgZWFzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAuY29udCB7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMTdweDtcclxuICAgICAgICAgICAgaGVpZ2h0OiAxMTJweDtcclxuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI0JEQkRCRDtcclxuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjVweDtcclxuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcclxuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzO1xyXG4gICAgICAgICAgICBwYXRoIHtcclxuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGZpbGwgLjRzIGVhc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLnRpdGxlIHtcclxuICAgICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogMzAwO1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxOXB4O1xyXG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIGNvbG9yOiAjMDAwMDAwO1xyXG4gICAgICAgICAgICBwbGFjZS1zZWxmOiBjZW50ZXI7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59IiwiLmZvb2RzcGVjIHtcclxuICAgIGgyIHtcclxuICAgICAgICBtYXJnaW4tdG9wOiA2NnB4O1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7XHJcbiAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgICAgICAgZm9udC1zaXplOiA0NXB4O1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiA1M3B4O1xyXG4gICAgICAgIC8qIGlkZW50aWNhbCB0byBib3ggaGVpZ2h0ICovXHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIC8qINGG0LLQtdGCINC80LXQvdGOICovXHJcbiAgICAgICAgY29sb3I6ICNGRjVDMDA7XHJcbiAgICB9XHJcbiAgICAuZm9vZGxpc3Qge1xyXG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XHJcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtYXgtY29udGVudCBtYXgtY29udGVudDtcclxuICAgICAgICBjb2x1bW4tZ2FwOiAzMnB4O1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDIzcHg7XHJcbiAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5NTRweCkge1xyXG4gICAgICAgICAgICBjb2x1bW4tZ2FwOiBpbml0aWFsO1xyXG4gICAgICAgIH1cclxuICAgICAgICAuZm9vZCB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNGMkYyRjI7XHJcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDI1cHg7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDMycHg7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XHJcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMjI0cHggMjI0cHggMjI0cHggMjI0cHg7XHJcbiAgICAgICAgICAgIHJvdy1nYXA6IDMycHg7XHJcbiAgICAgICAgICAgIGNvbHVtbi1nYXA6IDMycHg7XHJcbiAgICAgICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTQ1MHB4KSB7XHJcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDIyNHB4IDIyNHB4IDIyNHB4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTIyMHB4KSB7XHJcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDIyNHB4IDIyNHB4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTU0cHgpIHtcclxuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMjI0cHggMjI0cHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xyXG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyMjRweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAuZmJsb2NrIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNGRkZGRkY7XHJcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAyNXB4O1xyXG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIGVhc2UtaW4tb3V0IDAuMnM7XHJcbiAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDJweCAycHggNnB4IHJnYmEoMCwgMCwgMCwgMC4xNSkpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCBlYXNlLWluLW91dCAwLjJzO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLmluZm8ge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDIwcHggMTVweDtcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xyXG4gICAgICAgICAgICAgICAgICAgIHJvdy1nYXA6IDI2cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgLnRpdGxlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6IFJvYm90bztcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDIzcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyN3B4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvKiBpZGVudGljYWwgdG8gYm94IGhlaWdodCAqL1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvKiBibGFjayAqL1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogIzAwMDAwMDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgLmFib3V0IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6IFJvYm90bztcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogMzAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxMjAlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvKiBvciAxNHB4ICovXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8qIEdyYXkgMSAqL1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogIzMzMzMzMztcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgLmZvb3Qge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5wYXJhbWJsb2NrIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogc2VsZi1lbmQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLWF1dG8tZmxvdzogY29sdW1uO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZC1hdXRvLWNvbHVtbnM6IG1heC1jb250ZW50O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3BhbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjMDAwMDAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5wcmljZWJsb2NrIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW4tZ2FwOiA5cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogc2VsZi1lbmQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1heC1jb250ZW50IG1heC1jb250ZW50IG1heC1jb250ZW50O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3BhbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBibGFjayAqL1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjMDAwMDAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnByaWNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNTAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMjVweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogI0ZGNUMwMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDI4cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLnNpZGUtb3BlbiB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXghaW1wb3J0YW50O1xyXG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwcHghaW1wb3J0YW50O1xyXG4gICAgICAgICAgICB6LWluZGV4OiA1MDtcclxuICAgICAgICAgICAgbGVmdDogNTAlO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XHJcbiAgICAgICAgICAgIHdpZHRoOiBtYXgtY29udGVudDtcclxuICAgICAgICB9XHJcbiAgICAgICAgLnNpZGViYXItY2FydCB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNGMkYyRjI7XHJcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDI1cHg7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDIycHggMTVweDtcclxuICAgICAgICAgICAgaGVpZ2h0OiBtYXgtY29udGVudDtcclxuICAgICAgICAgICAgcG9zaXRpb246IC13ZWJraXQtc3RpY2t5O1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xyXG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxNjBweDtcclxuICAgICAgICAgICAgdG9wOiAzMHB4O1xyXG4gICAgICAgICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk1NHB4KSB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5zdGFydGxpbmUge1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMzVweDtcclxuICAgICAgICAgICAgICAgIC50aXRsZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAyNXB4O1xyXG4gICAgICAgICAgICAgICAgICAgIC8qINGG0LLQtdGCINC80LXQvdGOICovXHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICNGRjVDMDA7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLmNhbGMtbGluZSB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xyXG4gICAgICAgICAgICAgICAgZ3JpZC1hdXRvLWZsb3c6IGNvbHVtbjtcclxuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMTMwcHggbWF4LWNvbnRlbnQgMzdweDtcclxuICAgICAgICAgICAgICAgIGNvbHVtbi1nYXA6IDMwcHg7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogNDNweDtcclxuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgICAgICAgICAgICAgIC5pbmZvIHtcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xyXG4gICAgICAgICAgICAgICAgICAgIHJvdy1nYXA6IDdweDtcclxuICAgICAgICAgICAgICAgICAgICAudGl0bGUge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE2cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8qIGJsYWNrICovXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjMDAwMDAwO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAuYWJvdXQtbWluaSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMTRweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLyogaWRlbnRpY2FsIHRvIGJveCBoZWlnaHQgKi9cclxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLyogR3JheSAzICovXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjODI4MjgyO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC5zZXR0aW5nIHtcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xyXG4gICAgICAgICAgICAgICAgICAgIGdyaWQtYXV0by1mbG93OiBjb2x1bW47XHJcbiAgICAgICAgICAgICAgICAgICAgZ3JpZC1hdXRvLWNvbHVtbnM6IG1heC1jb250ZW50O1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbHVtbi1nYXA6IDEzcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgLm1pbnVzIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ24tc2VsZjogc2VsZi1zdGFydDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgLnBsdXMge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlnbi1zZWxmOiBzZWxmLXN0YXJ0O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAucXVsdm8ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlnbi1zZWxmOiBzZWxmLXN0YXJ0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogbWF4LWNvbnRlbnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNXB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvKiBpZGVudGljYWwgdG8gYm94IGhlaWdodCAqL1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvKiBibGFjayAqL1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogIzAwMDAwMDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAucHJpY2V2aWV3IHtcclxuICAgICAgICAgICAgICAgICAgICAucHJpY2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNTAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDE1cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxOHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogIzAwMDAwMDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgc3ZnIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDdweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMXB4O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBzdmcgcGF0aCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw6ICMwMDAwMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgJjpudGgtbGFzdC1vZi10eXBlKDFuKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMXB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjQkRCREJEO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBib3R0b206IDIycHg7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5kZWxpdiB7XHJcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDEzMHB4IDM3cHg7XHJcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICAgICAgICAgICAgICAudGl0bGUsXHJcbiAgICAgICAgICAgICAgICBwYXRoLFxyXG4gICAgICAgICAgICAgICAgLnByaWNlIHtcclxuICAgICAgICAgICAgICAgICAgICBjb2xvcjogI0ZGNUMwMCAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICAgICAgICAgIGZpbGw6ICNGRjVDMDAgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAuaXRvZ28ge1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcclxuICAgICAgICAgICAgICAgIGdyaWQtYXV0by1mbG93OiBjb2x1bW47XHJcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICAgICAgICAgICAgICAubGVmdCB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcclxuICAgICAgICAgICAgICAgICAgICByb3ctZ2FwOiAxMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgIHNwYW4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICM4MjgyODI7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIC5saW5lIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZC1hdXRvLWZsb3c6IGNvbHVtbjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uLWdhcDogMTJweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLnRpbWUge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxNnB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogI0ZGNUMwMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC5yaWdodCB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcclxuICAgICAgICAgICAgICAgICAgICByb3ctZ2FwOiAxMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgIHNwYW4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE2cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjODI4MjgyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5LXNlbGY6IGZsZXgtZW5kO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAubGluZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtYXV0by1mbG93OiBjb2x1bW47XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbi1nYXA6IDEycHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICNpdG9nIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxOHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDBweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogI0ZGNUMwMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdmcge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDdweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTFweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduLXNlbGY6IGVuZDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAuc3VibWl0IHtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDM1cHg7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjRkY1QzAwO1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcclxuICAgICAgICAgICAgICAgIGhlaWdodDogNDBweDtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAyMHB4O1xyXG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIzcHg7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgIC8qINCx0LXQu9GL0Lkg0YbQstC10YIg0YLQtdC60YHRgtCwICovXHJcbiAgICAgICAgICAgICAgICBjb2xvcjogI0ZGRkZGRjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufSJdfQ== */ diff --git a/build/static/images/content/1.png b/build/static/images/content/1.png new file mode 100644 index 0000000..28b1455 Binary files /dev/null and b/build/static/images/content/1.png differ diff --git a/build/static/images/content/2.png b/build/static/images/content/2.png new file mode 100644 index 0000000..6c78a9f Binary files /dev/null and b/build/static/images/content/2.png differ diff --git a/build/static/images/content/3.png b/build/static/images/content/3.png new file mode 100644 index 0000000..37d8d48 Binary files /dev/null and b/build/static/images/content/3.png differ diff --git a/build/static/images/content/apple.svg b/build/static/images/content/apple.svg new file mode 100644 index 0000000..e64596e --- /dev/null +++ b/build/static/images/content/apple.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/build/static/images/content/google.svg b/build/static/images/content/google.svg new file mode 100644 index 0000000..4f25ff4 --- /dev/null +++ b/build/static/images/content/google.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/build/static/images/content/insta.svg b/build/static/images/content/insta.svg new file mode 100644 index 0000000..41d8d39 --- /dev/null +++ b/build/static/images/content/insta.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/static/images/content/pizza.png b/build/static/images/content/pizza.png new file mode 100644 index 0000000..1c7a705 Binary files /dev/null and b/build/static/images/content/pizza.png differ diff --git a/build/static/images/content/vk.svg b/build/static/images/content/vk.svg new file mode 100644 index 0000000..77711df --- /dev/null +++ b/build/static/images/content/vk.svg @@ -0,0 +1,4 @@ + + + + diff --git a/build/static/js/jquery-3.3.1.min.js b/build/static/js/jquery-3.3.1.min.js new file mode 100644 index 0000000..39a42c0 --- /dev/null +++ b/build/static/js/jquery-3.3.1.min.js @@ -0,0 +1,4047 @@ +"use strict"; + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +/*! jQuery v3.3.1 | (c) JS Foundation and other contributors | jquery.org/license */ +!function (e, t) { + "use strict"; + + "object" == (typeof module === "undefined" ? "undefined" : _typeof(module)) && "object" == _typeof(module.exports) ? module.exports = e.document ? t(e, !0) : function (e) { + if (!e.document) throw new Error("jQuery requires a window with a document"); + return t(e); + } : t(e); +}("undefined" != typeof window ? window : void 0, function (e, t) { + "use strict"; + + var n = [], + r = e.document, + i = Object.getPrototypeOf, + o = n.slice, + a = n.concat, + s = n.push, + u = n.indexOf, + l = {}, + c = l.toString, + f = l.hasOwnProperty, + p = f.toString, + d = p.call(Object), + h = {}, + g = function e(t) { + return "function" == typeof t && "number" != typeof t.nodeType; + }, + y = function e(t) { + return null != t && t === t.window; + }, + v = { + type: !0, + src: !0, + noModule: !0 + }; + + function m(e, t, n) { + var i, + o = (t = t || r).createElement("script"); + if (o.text = e, n) for (i in v) { + n[i] && (o[i] = n[i]); + } + t.head.appendChild(o).parentNode.removeChild(o); + } + + function x(e) { + return null == e ? e + "" : "object" == _typeof(e) || "function" == typeof e ? l[c.call(e)] || "object" : _typeof(e); + } + + var b = "3.3.1", + w = function w(e, t) { + return new w.fn.init(e, t); + }, + T = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g; + + w.fn = w.prototype = { + jquery: "3.3.1", + constructor: w, + length: 0, + toArray: function toArray() { + return o.call(this); + }, + get: function get(e) { + return null == e ? o.call(this) : e < 0 ? this[e + this.length] : this[e]; + }, + pushStack: function pushStack(e) { + var t = w.merge(this.constructor(), e); + return t.prevObject = this, t; + }, + each: function each(e) { + return w.each(this, e); + }, + map: function map(e) { + return this.pushStack(w.map(this, function (t, n) { + return e.call(t, n, t); + })); + }, + slice: function slice() { + return this.pushStack(o.apply(this, arguments)); + }, + first: function first() { + return this.eq(0); + }, + last: function last() { + return this.eq(-1); + }, + eq: function eq(e) { + var t = this.length, + n = +e + (e < 0 ? t : 0); + return this.pushStack(n >= 0 && n < t ? [this[n]] : []); + }, + end: function end() { + return this.prevObject || this.constructor(); + }, + push: s, + sort: n.sort, + splice: n.splice + }, w.extend = w.fn.extend = function () { + var e, + t, + n, + r, + i, + o, + a = arguments[0] || {}, + s = 1, + u = arguments.length, + l = !1; + + for ("boolean" == typeof a && (l = a, a = arguments[s] || {}, s++), "object" == _typeof(a) || g(a) || (a = {}), s === u && (a = this, s--); s < u; s++) { + if (null != (e = arguments[s])) for (t in e) { + n = a[t], a !== (r = e[t]) && (l && r && (w.isPlainObject(r) || (i = Array.isArray(r))) ? (i ? (i = !1, o = n && Array.isArray(n) ? n : []) : o = n && w.isPlainObject(n) ? n : {}, a[t] = w.extend(l, o, r)) : void 0 !== r && (a[t] = r)); + } + } + + return a; + }, w.extend({ + expando: "jQuery" + ("3.3.1" + Math.random()).replace(/\D/g, ""), + isReady: !0, + error: function error(e) { + throw new Error(e); + }, + noop: function noop() {}, + isPlainObject: function isPlainObject(e) { + var t, n; + return !(!e || "[object Object]" !== c.call(e)) && (!(t = i(e)) || "function" == typeof (n = f.call(t, "constructor") && t.constructor) && p.call(n) === d); + }, + isEmptyObject: function isEmptyObject(e) { + var t; + + for (t in e) { + return !1; + } + + return !0; + }, + globalEval: function globalEval(e) { + m(e); + }, + each: function each(e, t) { + var n, + r = 0; + + if (C(e)) { + for (n = e.length; r < n; r++) { + if (!1 === t.call(e[r], r, e[r])) break; + } + } else for (r in e) { + if (!1 === t.call(e[r], r, e[r])) break; + } + + return e; + }, + trim: function trim(e) { + return null == e ? "" : (e + "").replace(T, ""); + }, + makeArray: function makeArray(e, t) { + var n = t || []; + return null != e && (C(Object(e)) ? w.merge(n, "string" == typeof e ? [e] : e) : s.call(n, e)), n; + }, + inArray: function inArray(e, t, n) { + return null == t ? -1 : u.call(t, e, n); + }, + merge: function merge(e, t) { + for (var n = +t.length, r = 0, i = e.length; r < n; r++) { + e[i++] = t[r]; + } + + return e.length = i, e; + }, + grep: function grep(e, t, n) { + for (var r, i = [], o = 0, a = e.length, s = !n; o < a; o++) { + (r = !t(e[o], o)) !== s && i.push(e[o]); + } + + return i; + }, + map: function map(e, t, n) { + var r, + i, + o = 0, + s = []; + if (C(e)) for (r = e.length; o < r; o++) { + null != (i = t(e[o], o, n)) && s.push(i); + } else for (o in e) { + null != (i = t(e[o], o, n)) && s.push(i); + } + return a.apply([], s); + }, + guid: 1, + support: h + }), "function" == typeof Symbol && (w.fn[Symbol.iterator] = n[Symbol.iterator]), w.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), function (e, t) { + l["[object " + t + "]"] = t.toLowerCase(); + }); + + function C(e) { + var t = !!e && "length" in e && e.length, + n = x(e); + return !g(e) && !y(e) && ("array" === n || 0 === t || "number" == typeof t && t > 0 && t - 1 in e); + } + + var E = function (e) { + var t, + n, + r, + i, + o, + a, + s, + u, + l, + c, + f, + p, + d, + h, + g, + y, + v, + m, + x, + b = "sizzle" + 1 * new Date(), + w = e.document, + T = 0, + C = 0, + E = ae(), + k = ae(), + S = ae(), + D = function D(e, t) { + return e === t && (f = !0), 0; + }, + N = {}.hasOwnProperty, + A = [], + j = A.pop, + q = A.push, + L = A.push, + H = A.slice, + O = function O(e, t) { + for (var n = 0, r = e.length; n < r; n++) { + if (e[n] === t) return n; + } + + return -1; + }, + P = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", + M = "[\\x20\\t\\r\\n\\f]", + R = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+", + I = "\\[" + M + "*(" + R + ")(?:" + M + "*([*^$|!~]?=)" + M + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + R + "))|)" + M + "*\\]", + W = ":(" + R + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + I + ")*)|.*)\\)|)", + $ = new RegExp(M + "+", "g"), + B = new RegExp("^" + M + "+|((?:^|[^\\\\])(?:\\\\.)*)" + M + "+$", "g"), + F = new RegExp("^" + M + "*," + M + "*"), + _ = new RegExp("^" + M + "*([>+~]|" + M + ")" + M + "*"), + z = new RegExp("=" + M + "*([^\\]'\"]*?)" + M + "*\\]", "g"), + X = new RegExp(W), + U = new RegExp("^" + R + "$"), + V = { + ID: new RegExp("^#(" + R + ")"), + CLASS: new RegExp("^\\.(" + R + ")"), + TAG: new RegExp("^(" + R + "|[*])"), + ATTR: new RegExp("^" + I), + PSEUDO: new RegExp("^" + W), + CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + M + "*(even|odd|(([+-]|)(\\d*)n|)" + M + "*(?:([+-]|)" + M + "*(\\d+)|))" + M + "*\\)|)", "i"), + bool: new RegExp("^(?:" + P + ")$", "i"), + needsContext: new RegExp("^" + M + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + M + "*((?:-\\d)?\\d*)" + M + "*\\)|)(?=[^-]|$)", "i") + }, + G = /^(?:input|select|textarea|button)$/i, + Y = /^h\d$/i, + Q = /^[^{]+\{\s*\[native \w/, + J = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, + K = /[+~]/, + Z = new RegExp("\\\\([\\da-f]{1,6}" + M + "?|(" + M + ")|.)", "ig"), + ee = function ee(e, t, n) { + var r = "0x" + t - 65536; + return r !== r || n ? t : r < 0 ? String.fromCharCode(r + 65536) : String.fromCharCode(r >> 10 | 55296, 1023 & r | 56320); + }, + te = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, + ne = function ne(e, t) { + return t ? "\0" === e ? "\uFFFD" : e.slice(0, -1) + "\\" + e.charCodeAt(e.length - 1).toString(16) + " " : "\\" + e; + }, + re = function re() { + p(); + }, + ie = me(function (e) { + return !0 === e.disabled && ("form" in e || "label" in e); + }, { + dir: "parentNode", + next: "legend" + }); + + try { + L.apply(A = H.call(w.childNodes), w.childNodes), A[w.childNodes.length].nodeType; + } catch (e) { + L = { + apply: A.length ? function (e, t) { + q.apply(e, H.call(t)); + } : function (e, t) { + var n = e.length, + r = 0; + + while (e[n++] = t[r++]) { + ; + } + + e.length = n - 1; + } + }; + } + + function oe(e, t, r, i) { + var o, + s, + l, + c, + f, + h, + v, + m = t && t.ownerDocument, + T = t ? t.nodeType : 9; + if (r = r || [], "string" != typeof e || !e || 1 !== T && 9 !== T && 11 !== T) return r; + + if (!i && ((t ? t.ownerDocument || t : w) !== d && p(t), t = t || d, g)) { + if (11 !== T && (f = J.exec(e))) if (o = f[1]) { + if (9 === T) { + if (!(l = t.getElementById(o))) return r; + if (l.id === o) return r.push(l), r; + } else if (m && (l = m.getElementById(o)) && x(t, l) && l.id === o) return r.push(l), r; + } else { + if (f[2]) return L.apply(r, t.getElementsByTagName(e)), r; + if ((o = f[3]) && n.getElementsByClassName && t.getElementsByClassName) return L.apply(r, t.getElementsByClassName(o)), r; + } + + if (n.qsa && !S[e + " "] && (!y || !y.test(e))) { + if (1 !== T) m = t, v = e;else if ("object" !== t.nodeName.toLowerCase()) { + (c = t.getAttribute("id")) ? c = c.replace(te, ne) : t.setAttribute("id", c = b), s = (h = a(e)).length; + + while (s--) { + h[s] = "#" + c + " " + ve(h[s]); + } + + v = h.join(","), m = K.test(e) && ge(t.parentNode) || t; + } + if (v) try { + return L.apply(r, m.querySelectorAll(v)), r; + } catch (e) {} finally { + c === b && t.removeAttribute("id"); + } + } + } + + return u(e.replace(B, "$1"), t, r, i); + } + + function ae() { + var e = []; + + function t(n, i) { + return e.push(n + " ") > r.cacheLength && delete t[e.shift()], t[n + " "] = i; + } + + return t; + } + + function se(e) { + return e[b] = !0, e; + } + + function ue(e) { + var t = d.createElement("fieldset"); + + try { + return !!e(t); + } catch (e) { + return !1; + } finally { + t.parentNode && t.parentNode.removeChild(t), t = null; + } + } + + function le(e, t) { + var n = e.split("|"), + i = n.length; + + while (i--) { + r.attrHandle[n[i]] = t; + } + } + + function ce(e, t) { + var n = t && e, + r = n && 1 === e.nodeType && 1 === t.nodeType && e.sourceIndex - t.sourceIndex; + if (r) return r; + if (n) while (n = n.nextSibling) { + if (n === t) return -1; + } + return e ? 1 : -1; + } + + function fe(e) { + return function (t) { + return "input" === t.nodeName.toLowerCase() && t.type === e; + }; + } + + function pe(e) { + return function (t) { + var n = t.nodeName.toLowerCase(); + return ("input" === n || "button" === n) && t.type === e; + }; + } + + function de(e) { + return function (t) { + return "form" in t ? t.parentNode && !1 === t.disabled ? "label" in t ? "label" in t.parentNode ? t.parentNode.disabled === e : t.disabled === e : t.isDisabled === e || t.isDisabled !== !e && ie(t) === e : t.disabled === e : "label" in t && t.disabled === e; + }; + } + + function he(e) { + return se(function (t) { + return t = +t, se(function (n, r) { + var i, + o = e([], n.length, t), + a = o.length; + + while (a--) { + n[i = o[a]] && (n[i] = !(r[i] = n[i])); + } + }); + }); + } + + function ge(e) { + return e && "undefined" != typeof e.getElementsByTagName && e; + } + + n = oe.support = {}, o = oe.isXML = function (e) { + var t = e && (e.ownerDocument || e).documentElement; + return !!t && "HTML" !== t.nodeName; + }, p = oe.setDocument = function (e) { + var t, + i, + a = e ? e.ownerDocument || e : w; + return a !== d && 9 === a.nodeType && a.documentElement ? (d = a, h = d.documentElement, g = !o(d), w !== d && (i = d.defaultView) && i.top !== i && (i.addEventListener ? i.addEventListener("unload", re, !1) : i.attachEvent && i.attachEvent("onunload", re)), n.attributes = ue(function (e) { + return e.className = "i", !e.getAttribute("className"); + }), n.getElementsByTagName = ue(function (e) { + return e.appendChild(d.createComment("")), !e.getElementsByTagName("*").length; + }), n.getElementsByClassName = Q.test(d.getElementsByClassName), n.getById = ue(function (e) { + return h.appendChild(e).id = b, !d.getElementsByName || !d.getElementsByName(b).length; + }), n.getById ? (r.filter.ID = function (e) { + var t = e.replace(Z, ee); + return function (e) { + return e.getAttribute("id") === t; + }; + }, r.find.ID = function (e, t) { + if ("undefined" != typeof t.getElementById && g) { + var n = t.getElementById(e); + return n ? [n] : []; + } + }) : (r.filter.ID = function (e) { + var t = e.replace(Z, ee); + return function (e) { + var n = "undefined" != typeof e.getAttributeNode && e.getAttributeNode("id"); + return n && n.value === t; + }; + }, r.find.ID = function (e, t) { + if ("undefined" != typeof t.getElementById && g) { + var n, + r, + i, + o = t.getElementById(e); + + if (o) { + if ((n = o.getAttributeNode("id")) && n.value === e) return [o]; + i = t.getElementsByName(e), r = 0; + + while (o = i[r++]) { + if ((n = o.getAttributeNode("id")) && n.value === e) return [o]; + } + } + + return []; + } + }), r.find.TAG = n.getElementsByTagName ? function (e, t) { + return "undefined" != typeof t.getElementsByTagName ? t.getElementsByTagName(e) : n.qsa ? t.querySelectorAll(e) : void 0; + } : function (e, t) { + var n, + r = [], + i = 0, + o = t.getElementsByTagName(e); + + if ("*" === e) { + while (n = o[i++]) { + 1 === n.nodeType && r.push(n); + } + + return r; + } + + return o; + }, r.find.CLASS = n.getElementsByClassName && function (e, t) { + if ("undefined" != typeof t.getElementsByClassName && g) return t.getElementsByClassName(e); + }, v = [], y = [], (n.qsa = Q.test(d.querySelectorAll)) && (ue(function (e) { + h.appendChild(e).innerHTML = "", e.querySelectorAll("[msallowcapture^='']").length && y.push("[*^$]=" + M + "*(?:''|\"\")"), e.querySelectorAll("[selected]").length || y.push("\\[" + M + "*(?:value|" + P + ")"), e.querySelectorAll("[id~=" + b + "-]").length || y.push("~="), e.querySelectorAll(":checked").length || y.push(":checked"), e.querySelectorAll("a#" + b + "+*").length || y.push(".#.+[+~]"); + }), ue(function (e) { + e.innerHTML = ""; + var t = d.createElement("input"); + t.setAttribute("type", "hidden"), e.appendChild(t).setAttribute("name", "D"), e.querySelectorAll("[name=d]").length && y.push("name" + M + "*[*^$|!~]?="), 2 !== e.querySelectorAll(":enabled").length && y.push(":enabled", ":disabled"), h.appendChild(e).disabled = !0, 2 !== e.querySelectorAll(":disabled").length && y.push(":enabled", ":disabled"), e.querySelectorAll("*,:x"), y.push(",.*:"); + })), (n.matchesSelector = Q.test(m = h.matches || h.webkitMatchesSelector || h.mozMatchesSelector || h.oMatchesSelector || h.msMatchesSelector)) && ue(function (e) { + n.disconnectedMatch = m.call(e, "*"), m.call(e, "[s!='']:x"), v.push("!=", W); + }), y = y.length && new RegExp(y.join("|")), v = v.length && new RegExp(v.join("|")), t = Q.test(h.compareDocumentPosition), x = t || Q.test(h.contains) ? function (e, t) { + var n = 9 === e.nodeType ? e.documentElement : e, + r = t && t.parentNode; + return e === r || !(!r || 1 !== r.nodeType || !(n.contains ? n.contains(r) : e.compareDocumentPosition && 16 & e.compareDocumentPosition(r))); + } : function (e, t) { + if (t) while (t = t.parentNode) { + if (t === e) return !0; + } + return !1; + }, D = t ? function (e, t) { + if (e === t) return f = !0, 0; + var r = !e.compareDocumentPosition - !t.compareDocumentPosition; + return r || (1 & (r = (e.ownerDocument || e) === (t.ownerDocument || t) ? e.compareDocumentPosition(t) : 1) || !n.sortDetached && t.compareDocumentPosition(e) === r ? e === d || e.ownerDocument === w && x(w, e) ? -1 : t === d || t.ownerDocument === w && x(w, t) ? 1 : c ? O(c, e) - O(c, t) : 0 : 4 & r ? -1 : 1); + } : function (e, t) { + if (e === t) return f = !0, 0; + var n, + r = 0, + i = e.parentNode, + o = t.parentNode, + a = [e], + s = [t]; + if (!i || !o) return e === d ? -1 : t === d ? 1 : i ? -1 : o ? 1 : c ? O(c, e) - O(c, t) : 0; + if (i === o) return ce(e, t); + n = e; + + while (n = n.parentNode) { + a.unshift(n); + } + + n = t; + + while (n = n.parentNode) { + s.unshift(n); + } + + while (a[r] === s[r]) { + r++; + } + + return r ? ce(a[r], s[r]) : a[r] === w ? -1 : s[r] === w ? 1 : 0; + }, d) : d; + }, oe.matches = function (e, t) { + return oe(e, null, null, t); + }, oe.matchesSelector = function (e, t) { + if ((e.ownerDocument || e) !== d && p(e), t = t.replace(z, "='$1']"), n.matchesSelector && g && !S[t + " "] && (!v || !v.test(t)) && (!y || !y.test(t))) try { + var r = m.call(e, t); + if (r || n.disconnectedMatch || e.document && 11 !== e.document.nodeType) return r; + } catch (e) {} + return oe(t, d, null, [e]).length > 0; + }, oe.contains = function (e, t) { + return (e.ownerDocument || e) !== d && p(e), x(e, t); + }, oe.attr = function (e, t) { + (e.ownerDocument || e) !== d && p(e); + var i = r.attrHandle[t.toLowerCase()], + o = i && N.call(r.attrHandle, t.toLowerCase()) ? i(e, t, !g) : void 0; + return void 0 !== o ? o : n.attributes || !g ? e.getAttribute(t) : (o = e.getAttributeNode(t)) && o.specified ? o.value : null; + }, oe.escape = function (e) { + return (e + "").replace(te, ne); + }, oe.error = function (e) { + throw new Error("Syntax error, unrecognized expression: " + e); + }, oe.uniqueSort = function (e) { + var t, + r = [], + i = 0, + o = 0; + + if (f = !n.detectDuplicates, c = !n.sortStable && e.slice(0), e.sort(D), f) { + while (t = e[o++]) { + t === e[o] && (i = r.push(o)); + } + + while (i--) { + e.splice(r[i], 1); + } + } + + return c = null, e; + }, i = oe.getText = function (e) { + var t, + n = "", + r = 0, + o = e.nodeType; + + if (o) { + if (1 === o || 9 === o || 11 === o) { + if ("string" == typeof e.textContent) return e.textContent; + + for (e = e.firstChild; e; e = e.nextSibling) { + n += i(e); + } + } else if (3 === o || 4 === o) return e.nodeValue; + } else while (t = e[r++]) { + n += i(t); + } + + return n; + }, (r = oe.selectors = { + cacheLength: 50, + createPseudo: se, + match: V, + attrHandle: {}, + find: {}, + relative: { + ">": { + dir: "parentNode", + first: !0 + }, + " ": { + dir: "parentNode" + }, + "+": { + dir: "previousSibling", + first: !0 + }, + "~": { + dir: "previousSibling" + } + }, + preFilter: { + ATTR: function ATTR(e) { + return e[1] = e[1].replace(Z, ee), e[3] = (e[3] || e[4] || e[5] || "").replace(Z, ee), "~=" === e[2] && (e[3] = " " + e[3] + " "), e.slice(0, 4); + }, + CHILD: function CHILD(e) { + return e[1] = e[1].toLowerCase(), "nth" === e[1].slice(0, 3) ? (e[3] || oe.error(e[0]), e[4] = +(e[4] ? e[5] + (e[6] || 1) : 2 * ("even" === e[3] || "odd" === e[3])), e[5] = +(e[7] + e[8] || "odd" === e[3])) : e[3] && oe.error(e[0]), e; + }, + PSEUDO: function PSEUDO(e) { + var t, + n = !e[6] && e[2]; + return V.CHILD.test(e[0]) ? null : (e[3] ? e[2] = e[4] || e[5] || "" : n && X.test(n) && (t = a(n, !0)) && (t = n.indexOf(")", n.length - t) - n.length) && (e[0] = e[0].slice(0, t), e[2] = n.slice(0, t)), e.slice(0, 3)); + } + }, + filter: { + TAG: function TAG(e) { + var t = e.replace(Z, ee).toLowerCase(); + return "*" === e ? function () { + return !0; + } : function (e) { + return e.nodeName && e.nodeName.toLowerCase() === t; + }; + }, + CLASS: function CLASS(e) { + var t = E[e + " "]; + return t || (t = new RegExp("(^|" + M + ")" + e + "(" + M + "|$)")) && E(e, function (e) { + return t.test("string" == typeof e.className && e.className || "undefined" != typeof e.getAttribute && e.getAttribute("class") || ""); + }); + }, + ATTR: function ATTR(e, t, n) { + return function (r) { + var i = oe.attr(r, e); + return null == i ? "!=" === t : !t || (i += "", "=" === t ? i === n : "!=" === t ? i !== n : "^=" === t ? n && 0 === i.indexOf(n) : "*=" === t ? n && i.indexOf(n) > -1 : "$=" === t ? n && i.slice(-n.length) === n : "~=" === t ? (" " + i.replace($, " ") + " ").indexOf(n) > -1 : "|=" === t && (i === n || i.slice(0, n.length + 1) === n + "-")); + }; + }, + CHILD: function CHILD(e, t, n, r, i) { + var o = "nth" !== e.slice(0, 3), + a = "last" !== e.slice(-4), + s = "of-type" === t; + return 1 === r && 0 === i ? function (e) { + return !!e.parentNode; + } : function (t, n, u) { + var l, + c, + f, + p, + d, + h, + g = o !== a ? "nextSibling" : "previousSibling", + y = t.parentNode, + v = s && t.nodeName.toLowerCase(), + m = !u && !s, + x = !1; + + if (y) { + if (o) { + while (g) { + p = t; + + while (p = p[g]) { + if (s ? p.nodeName.toLowerCase() === v : 1 === p.nodeType) return !1; + } + + h = g = "only" === e && !h && "nextSibling"; + } + + return !0; + } + + if (h = [a ? y.firstChild : y.lastChild], a && m) { + x = (d = (l = (c = (f = (p = y)[b] || (p[b] = {}))[p.uniqueID] || (f[p.uniqueID] = {}))[e] || [])[0] === T && l[1]) && l[2], p = d && y.childNodes[d]; + + while (p = ++d && p && p[g] || (x = d = 0) || h.pop()) { + if (1 === p.nodeType && ++x && p === t) { + c[e] = [T, d, x]; + break; + } + } + } else if (m && (x = d = (l = (c = (f = (p = t)[b] || (p[b] = {}))[p.uniqueID] || (f[p.uniqueID] = {}))[e] || [])[0] === T && l[1]), !1 === x) while (p = ++d && p && p[g] || (x = d = 0) || h.pop()) { + if ((s ? p.nodeName.toLowerCase() === v : 1 === p.nodeType) && ++x && (m && ((c = (f = p[b] || (p[b] = {}))[p.uniqueID] || (f[p.uniqueID] = {}))[e] = [T, x]), p === t)) break; + } + + return (x -= i) === r || x % r == 0 && x / r >= 0; + } + }; + }, + PSEUDO: function PSEUDO(e, t) { + var n, + i = r.pseudos[e] || r.setFilters[e.toLowerCase()] || oe.error("unsupported pseudo: " + e); + return i[b] ? i(t) : i.length > 1 ? (n = [e, e, "", t], r.setFilters.hasOwnProperty(e.toLowerCase()) ? se(function (e, n) { + var r, + o = i(e, t), + a = o.length; + + while (a--) { + e[r = O(e, o[a])] = !(n[r] = o[a]); + } + }) : function (e) { + return i(e, 0, n); + }) : i; + } + }, + pseudos: { + not: se(function (e) { + var t = [], + n = [], + r = s(e.replace(B, "$1")); + return r[b] ? se(function (e, t, n, i) { + var o, + a = r(e, null, i, []), + s = e.length; + + while (s--) { + (o = a[s]) && (e[s] = !(t[s] = o)); + } + }) : function (e, i, o) { + return t[0] = e, r(t, null, o, n), t[0] = null, !n.pop(); + }; + }), + has: se(function (e) { + return function (t) { + return oe(e, t).length > 0; + }; + }), + contains: se(function (e) { + return e = e.replace(Z, ee), function (t) { + return (t.textContent || t.innerText || i(t)).indexOf(e) > -1; + }; + }), + lang: se(function (e) { + return U.test(e || "") || oe.error("unsupported lang: " + e), e = e.replace(Z, ee).toLowerCase(), function (t) { + var n; + + do { + if (n = g ? t.lang : t.getAttribute("xml:lang") || t.getAttribute("lang")) return (n = n.toLowerCase()) === e || 0 === n.indexOf(e + "-"); + } while ((t = t.parentNode) && 1 === t.nodeType); + + return !1; + }; + }), + target: function target(t) { + var n = e.location && e.location.hash; + return n && n.slice(1) === t.id; + }, + root: function root(e) { + return e === h; + }, + focus: function focus(e) { + return e === d.activeElement && (!d.hasFocus || d.hasFocus()) && !!(e.type || e.href || ~e.tabIndex); + }, + enabled: de(!1), + disabled: de(!0), + checked: function checked(e) { + var t = e.nodeName.toLowerCase(); + return "input" === t && !!e.checked || "option" === t && !!e.selected; + }, + selected: function selected(e) { + return e.parentNode && e.parentNode.selectedIndex, !0 === e.selected; + }, + empty: function empty(e) { + for (e = e.firstChild; e; e = e.nextSibling) { + if (e.nodeType < 6) return !1; + } + + return !0; + }, + parent: function parent(e) { + return !r.pseudos.empty(e); + }, + header: function header(e) { + return Y.test(e.nodeName); + }, + input: function input(e) { + return G.test(e.nodeName); + }, + button: function button(e) { + var t = e.nodeName.toLowerCase(); + return "input" === t && "button" === e.type || "button" === t; + }, + text: function text(e) { + var t; + return "input" === e.nodeName.toLowerCase() && "text" === e.type && (null == (t = e.getAttribute("type")) || "text" === t.toLowerCase()); + }, + first: he(function () { + return [0]; + }), + last: he(function (e, t) { + return [t - 1]; + }), + eq: he(function (e, t, n) { + return [n < 0 ? n + t : n]; + }), + even: he(function (e, t) { + for (var n = 0; n < t; n += 2) { + e.push(n); + } + + return e; + }), + odd: he(function (e, t) { + for (var n = 1; n < t; n += 2) { + e.push(n); + } + + return e; + }), + lt: he(function (e, t, n) { + for (var r = n < 0 ? n + t : n; --r >= 0;) { + e.push(r); + } + + return e; + }), + gt: he(function (e, t, n) { + for (var r = n < 0 ? n + t : n; ++r < t;) { + e.push(r); + } + + return e; + }) + } + }).pseudos.nth = r.pseudos.eq; + + for (t in { + radio: !0, + checkbox: !0, + file: !0, + password: !0, + image: !0 + }) { + r.pseudos[t] = fe(t); + } + + for (t in { + submit: !0, + reset: !0 + }) { + r.pseudos[t] = pe(t); + } + + function ye() {} + + ye.prototype = r.filters = r.pseudos, r.setFilters = new ye(), a = oe.tokenize = function (e, t) { + var n, + i, + o, + a, + s, + u, + l, + c = k[e + " "]; + if (c) return t ? 0 : c.slice(0); + s = e, u = [], l = r.preFilter; + + while (s) { + n && !(i = F.exec(s)) || (i && (s = s.slice(i[0].length) || s), u.push(o = [])), n = !1, (i = _.exec(s)) && (n = i.shift(), o.push({ + value: n, + type: i[0].replace(B, " ") + }), s = s.slice(n.length)); + + for (a in r.filter) { + !(i = V[a].exec(s)) || l[a] && !(i = l[a](i)) || (n = i.shift(), o.push({ + value: n, + type: a, + matches: i + }), s = s.slice(n.length)); + } + + if (!n) break; + } + + return t ? s.length : s ? oe.error(e) : k(e, u).slice(0); + }; + + function ve(e) { + for (var t = 0, n = e.length, r = ""; t < n; t++) { + r += e[t].value; + } + + return r; + } + + function me(e, t, n) { + var r = t.dir, + i = t.next, + o = i || r, + a = n && "parentNode" === o, + s = C++; + return t.first ? function (t, n, i) { + while (t = t[r]) { + if (1 === t.nodeType || a) return e(t, n, i); + } + + return !1; + } : function (t, n, u) { + var l, + c, + f, + p = [T, s]; + + if (u) { + while (t = t[r]) { + if ((1 === t.nodeType || a) && e(t, n, u)) return !0; + } + } else while (t = t[r]) { + if (1 === t.nodeType || a) if (f = t[b] || (t[b] = {}), c = f[t.uniqueID] || (f[t.uniqueID] = {}), i && i === t.nodeName.toLowerCase()) t = t[r] || t;else { + if ((l = c[o]) && l[0] === T && l[1] === s) return p[2] = l[2]; + if (c[o] = p, p[2] = e(t, n, u)) return !0; + } + } + + return !1; + }; + } + + function xe(e) { + return e.length > 1 ? function (t, n, r) { + var i = e.length; + + while (i--) { + if (!e[i](t, n, r)) return !1; + } + + return !0; + } : e[0]; + } + + function be(e, t, n) { + for (var r = 0, i = t.length; r < i; r++) { + oe(e, t[r], n); + } + + return n; + } + + function we(e, t, n, r, i) { + for (var o, a = [], s = 0, u = e.length, l = null != t; s < u; s++) { + (o = e[s]) && (n && !n(o, r, i) || (a.push(o), l && t.push(s))); + } + + return a; + } + + function Te(e, t, n, r, i, o) { + return r && !r[b] && (r = Te(r)), i && !i[b] && (i = Te(i, o)), se(function (o, a, s, u) { + var l, + c, + f, + p = [], + d = [], + h = a.length, + g = o || be(t || "*", s.nodeType ? [s] : s, []), + y = !e || !o && t ? g : we(g, p, e, s, u), + v = n ? i || (o ? e : h || r) ? [] : a : y; + + if (n && n(y, v, s, u), r) { + l = we(v, d), r(l, [], s, u), c = l.length; + + while (c--) { + (f = l[c]) && (v[d[c]] = !(y[d[c]] = f)); + } + } + + if (o) { + if (i || e) { + if (i) { + l = [], c = v.length; + + while (c--) { + (f = v[c]) && l.push(y[c] = f); + } + + i(null, v = [], l, u); + } + + c = v.length; + + while (c--) { + (f = v[c]) && (l = i ? O(o, f) : p[c]) > -1 && (o[l] = !(a[l] = f)); + } + } + } else v = we(v === a ? v.splice(h, v.length) : v), i ? i(null, a, v, u) : L.apply(a, v); + }); + } + + function Ce(e) { + for (var t, n, i, o = e.length, a = r.relative[e[0].type], s = a || r.relative[" "], u = a ? 1 : 0, c = me(function (e) { + return e === t; + }, s, !0), f = me(function (e) { + return O(t, e) > -1; + }, s, !0), p = [function (e, n, r) { + var i = !a && (r || n !== l) || ((t = n).nodeType ? c(e, n, r) : f(e, n, r)); + return t = null, i; + }]; u < o; u++) { + if (n = r.relative[e[u].type]) p = [me(xe(p), n)];else { + if ((n = r.filter[e[u].type].apply(null, e[u].matches))[b]) { + for (i = ++u; i < o; i++) { + if (r.relative[e[i].type]) break; + } + + return Te(u > 1 && xe(p), u > 1 && ve(e.slice(0, u - 1).concat({ + value: " " === e[u - 2].type ? "*" : "" + })).replace(B, "$1"), n, u < i && Ce(e.slice(u, i)), i < o && Ce(e = e.slice(i)), i < o && ve(e)); + } + + p.push(n); + } + } + + return xe(p); + } + + function Ee(e, t) { + var n = t.length > 0, + i = e.length > 0, + o = function o(_o, a, s, u, c) { + var f, + h, + y, + v = 0, + m = "0", + x = _o && [], + b = [], + w = l, + C = _o || i && r.find.TAG("*", c), + E = T += null == w ? 1 : Math.random() || .1, + k = C.length; + + for (c && (l = a === d || a || c); m !== k && null != (f = C[m]); m++) { + if (i && f) { + h = 0, a || f.ownerDocument === d || (p(f), s = !g); + + while (y = e[h++]) { + if (y(f, a || d, s)) { + u.push(f); + break; + } + } + + c && (T = E); + } + + n && ((f = !y && f) && v--, _o && x.push(f)); + } + + if (v += m, n && m !== v) { + h = 0; + + while (y = t[h++]) { + y(x, b, a, s); + } + + if (_o) { + if (v > 0) while (m--) { + x[m] || b[m] || (b[m] = j.call(u)); + } + b = we(b); + } + + L.apply(u, b), c && !_o && b.length > 0 && v + t.length > 1 && oe.uniqueSort(u); + } + + return c && (T = E, l = w), x; + }; + + return n ? se(o) : o; + } + + return s = oe.compile = function (e, t) { + var n, + r = [], + i = [], + o = S[e + " "]; + + if (!o) { + t || (t = a(e)), n = t.length; + + while (n--) { + (o = Ce(t[n]))[b] ? r.push(o) : i.push(o); + } + + (o = S(e, Ee(i, r))).selector = e; + } + + return o; + }, u = oe.select = function (e, t, n, i) { + var o, + u, + l, + c, + f, + p = "function" == typeof e && e, + d = !i && a(e = p.selector || e); + + if (n = n || [], 1 === d.length) { + if ((u = d[0] = d[0].slice(0)).length > 2 && "ID" === (l = u[0]).type && 9 === t.nodeType && g && r.relative[u[1].type]) { + if (!(t = (r.find.ID(l.matches[0].replace(Z, ee), t) || [])[0])) return n; + p && (t = t.parentNode), e = e.slice(u.shift().value.length); + } + + o = V.needsContext.test(e) ? 0 : u.length; + + while (o--) { + if (l = u[o], r.relative[c = l.type]) break; + + if ((f = r.find[c]) && (i = f(l.matches[0].replace(Z, ee), K.test(u[0].type) && ge(t.parentNode) || t))) { + if (u.splice(o, 1), !(e = i.length && ve(u))) return L.apply(n, i), n; + break; + } + } + } + + return (p || s(e, d))(i, t, !g, n, !t || K.test(e) && ge(t.parentNode) || t), n; + }, n.sortStable = b.split("").sort(D).join("") === b, n.detectDuplicates = !!f, p(), n.sortDetached = ue(function (e) { + return 1 & e.compareDocumentPosition(d.createElement("fieldset")); + }), ue(function (e) { + return e.innerHTML = "", "#" === e.firstChild.getAttribute("href"); + }) || le("type|href|height|width", function (e, t, n) { + if (!n) return e.getAttribute(t, "type" === t.toLowerCase() ? 1 : 2); + }), n.attributes && ue(function (e) { + return e.innerHTML = "", e.firstChild.setAttribute("value", ""), "" === e.firstChild.getAttribute("value"); + }) || le("value", function (e, t, n) { + if (!n && "input" === e.nodeName.toLowerCase()) return e.defaultValue; + }), ue(function (e) { + return null == e.getAttribute("disabled"); + }) || le(P, function (e, t, n) { + var r; + if (!n) return !0 === e[t] ? t.toLowerCase() : (r = e.getAttributeNode(t)) && r.specified ? r.value : null; + }), oe; + }(e); + + w.find = E, w.expr = E.selectors, w.expr[":"] = w.expr.pseudos, w.uniqueSort = w.unique = E.uniqueSort, w.text = E.getText, w.isXMLDoc = E.isXML, w.contains = E.contains, w.escapeSelector = E.escape; + + var k = function k(e, t, n) { + var r = [], + i = void 0 !== n; + + while ((e = e[t]) && 9 !== e.nodeType) { + if (1 === e.nodeType) { + if (i && w(e).is(n)) break; + r.push(e); + } + } + + return r; + }, + S = function S(e, t) { + for (var n = []; e; e = e.nextSibling) { + 1 === e.nodeType && e !== t && n.push(e); + } + + return n; + }, + D = w.expr.match.needsContext; + + function N(e, t) { + return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase(); + } + + var A = /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i; + + function j(e, t, n) { + return g(t) ? w.grep(e, function (e, r) { + return !!t.call(e, r, e) !== n; + }) : t.nodeType ? w.grep(e, function (e) { + return e === t !== n; + }) : "string" != typeof t ? w.grep(e, function (e) { + return u.call(t, e) > -1 !== n; + }) : w.filter(t, e, n); + } + + w.filter = function (e, t, n) { + var r = t[0]; + return n && (e = ":not(" + e + ")"), 1 === t.length && 1 === r.nodeType ? w.find.matchesSelector(r, e) ? [r] : [] : w.find.matches(e, w.grep(t, function (e) { + return 1 === e.nodeType; + })); + }, w.fn.extend({ + find: function find(e) { + var t, + n, + r = this.length, + i = this; + if ("string" != typeof e) return this.pushStack(w(e).filter(function () { + for (t = 0; t < r; t++) { + if (w.contains(i[t], this)) return !0; + } + })); + + for (n = this.pushStack([]), t = 0; t < r; t++) { + w.find(e, i[t], n); + } + + return r > 1 ? w.uniqueSort(n) : n; + }, + filter: function filter(e) { + return this.pushStack(j(this, e || [], !1)); + }, + not: function not(e) { + return this.pushStack(j(this, e || [], !0)); + }, + is: function is(e) { + return !!j(this, "string" == typeof e && D.test(e) ? w(e) : e || [], !1).length; + } + }); + var q, + L = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/; + (w.fn.init = function (e, t, n) { + var i, o; + if (!e) return this; + + if (n = n || q, "string" == typeof e) { + if (!(i = "<" === e[0] && ">" === e[e.length - 1] && e.length >= 3 ? [null, e, null] : L.exec(e)) || !i[1] && t) return !t || t.jquery ? (t || n).find(e) : this.constructor(t).find(e); + + if (i[1]) { + if (t = t instanceof w ? t[0] : t, w.merge(this, w.parseHTML(i[1], t && t.nodeType ? t.ownerDocument || t : r, !0)), A.test(i[1]) && w.isPlainObject(t)) for (i in t) { + g(this[i]) ? this[i](t[i]) : this.attr(i, t[i]); + } + return this; + } + + return (o = r.getElementById(i[2])) && (this[0] = o, this.length = 1), this; + } + + return e.nodeType ? (this[0] = e, this.length = 1, this) : g(e) ? void 0 !== n.ready ? n.ready(e) : e(w) : w.makeArray(e, this); + }).prototype = w.fn, q = w(r); + var H = /^(?:parents|prev(?:Until|All))/, + O = { + children: !0, + contents: !0, + next: !0, + prev: !0 + }; + w.fn.extend({ + has: function has(e) { + var t = w(e, this), + n = t.length; + return this.filter(function () { + for (var e = 0; e < n; e++) { + if (w.contains(this, t[e])) return !0; + } + }); + }, + closest: function closest(e, t) { + var n, + r = 0, + i = this.length, + o = [], + a = "string" != typeof e && w(e); + if (!D.test(e)) for (; r < i; r++) { + for (n = this[r]; n && n !== t; n = n.parentNode) { + if (n.nodeType < 11 && (a ? a.index(n) > -1 : 1 === n.nodeType && w.find.matchesSelector(n, e))) { + o.push(n); + break; + } + } + } + return this.pushStack(o.length > 1 ? w.uniqueSort(o) : o); + }, + index: function index(e) { + return e ? "string" == typeof e ? u.call(w(e), this[0]) : u.call(this, e.jquery ? e[0] : e) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1; + }, + add: function add(e, t) { + return this.pushStack(w.uniqueSort(w.merge(this.get(), w(e, t)))); + }, + addBack: function addBack(e) { + return this.add(null == e ? this.prevObject : this.prevObject.filter(e)); + } + }); + + function P(e, t) { + while ((e = e[t]) && 1 !== e.nodeType) { + ; + } + + return e; + } + + w.each({ + parent: function parent(e) { + var t = e.parentNode; + return t && 11 !== t.nodeType ? t : null; + }, + parents: function parents(e) { + return k(e, "parentNode"); + }, + parentsUntil: function parentsUntil(e, t, n) { + return k(e, "parentNode", n); + }, + next: function next(e) { + return P(e, "nextSibling"); + }, + prev: function prev(e) { + return P(e, "previousSibling"); + }, + nextAll: function nextAll(e) { + return k(e, "nextSibling"); + }, + prevAll: function prevAll(e) { + return k(e, "previousSibling"); + }, + nextUntil: function nextUntil(e, t, n) { + return k(e, "nextSibling", n); + }, + prevUntil: function prevUntil(e, t, n) { + return k(e, "previousSibling", n); + }, + siblings: function siblings(e) { + return S((e.parentNode || {}).firstChild, e); + }, + children: function children(e) { + return S(e.firstChild); + }, + contents: function contents(e) { + return N(e, "iframe") ? e.contentDocument : (N(e, "template") && (e = e.content || e), w.merge([], e.childNodes)); + } + }, function (e, t) { + w.fn[e] = function (n, r) { + var i = w.map(this, t, n); + return "Until" !== e.slice(-5) && (r = n), r && "string" == typeof r && (i = w.filter(r, i)), this.length > 1 && (O[e] || w.uniqueSort(i), H.test(e) && i.reverse()), this.pushStack(i); + }; + }); + var M = /[^\x20\t\r\n\f]+/g; + + function R(e) { + var t = {}; + return w.each(e.match(M) || [], function (e, n) { + t[n] = !0; + }), t; + } + + w.Callbacks = function (e) { + e = "string" == typeof e ? R(e) : w.extend({}, e); + + var t, + n, + r, + i, + o = [], + a = [], + s = -1, + u = function u() { + for (i = i || e.once, r = t = !0; a.length; s = -1) { + n = a.shift(); + + while (++s < o.length) { + !1 === o[s].apply(n[0], n[1]) && e.stopOnFalse && (s = o.length, n = !1); + } + } + + e.memory || (n = !1), t = !1, i && (o = n ? [] : ""); + }, + l = { + add: function add() { + return o && (n && !t && (s = o.length - 1, a.push(n)), function t(n) { + w.each(n, function (n, r) { + g(r) ? e.unique && l.has(r) || o.push(r) : r && r.length && "string" !== x(r) && t(r); + }); + }(arguments), n && !t && u()), this; + }, + remove: function remove() { + return w.each(arguments, function (e, t) { + var n; + + while ((n = w.inArray(t, o, n)) > -1) { + o.splice(n, 1), n <= s && s--; + } + }), this; + }, + has: function has(e) { + return e ? w.inArray(e, o) > -1 : o.length > 0; + }, + empty: function empty() { + return o && (o = []), this; + }, + disable: function disable() { + return i = a = [], o = n = "", this; + }, + disabled: function disabled() { + return !o; + }, + lock: function lock() { + return i = a = [], n || t || (o = n = ""), this; + }, + locked: function locked() { + return !!i; + }, + fireWith: function fireWith(e, n) { + return i || (n = [e, (n = n || []).slice ? n.slice() : n], a.push(n), t || u()), this; + }, + fire: function fire() { + return l.fireWith(this, arguments), this; + }, + fired: function fired() { + return !!r; + } + }; + + return l; + }; + + function I(e) { + return e; + } + + function W(e) { + throw e; + } + + function $(e, t, n, r) { + var i; + + try { + e && g(i = e.promise) ? i.call(e).done(t).fail(n) : e && g(i = e.then) ? i.call(e, t, n) : t.apply(void 0, [e].slice(r)); + } catch (e) { + n.apply(void 0, [e]); + } + } + + w.extend({ + Deferred: function Deferred(t) { + var n = [["notify", "progress", w.Callbacks("memory"), w.Callbacks("memory"), 2], ["resolve", "done", w.Callbacks("once memory"), w.Callbacks("once memory"), 0, "resolved"], ["reject", "fail", w.Callbacks("once memory"), w.Callbacks("once memory"), 1, "rejected"]], + r = "pending", + i = { + state: function state() { + return r; + }, + always: function always() { + return o.done(arguments).fail(arguments), this; + }, + "catch": function _catch(e) { + return i.then(null, e); + }, + pipe: function pipe() { + var e = arguments; + return w.Deferred(function (t) { + w.each(n, function (n, r) { + var i = g(e[r[4]]) && e[r[4]]; + o[r[1]](function () { + var e = i && i.apply(this, arguments); + e && g(e.promise) ? e.promise().progress(t.notify).done(t.resolve).fail(t.reject) : t[r[0] + "With"](this, i ? [e] : arguments); + }); + }), e = null; + }).promise(); + }, + then: function then(t, r, i) { + var o = 0; + + function a(t, n, r, i) { + return function () { + var s = this, + u = arguments, + l = function l() { + var e, l; + + if (!(t < o)) { + if ((e = r.apply(s, u)) === n.promise()) throw new TypeError("Thenable self-resolution"); + l = e && ("object" == _typeof(e) || "function" == typeof e) && e.then, g(l) ? i ? l.call(e, a(o, n, I, i), a(o, n, W, i)) : (o++, l.call(e, a(o, n, I, i), a(o, n, W, i), a(o, n, I, n.notifyWith))) : (r !== I && (s = void 0, u = [e]), (i || n.resolveWith)(s, u)); + } + }, + c = i ? l : function () { + try { + l(); + } catch (e) { + w.Deferred.exceptionHook && w.Deferred.exceptionHook(e, c.stackTrace), t + 1 >= o && (r !== W && (s = void 0, u = [e]), n.rejectWith(s, u)); + } + }; + + t ? c() : (w.Deferred.getStackHook && (c.stackTrace = w.Deferred.getStackHook()), e.setTimeout(c)); + }; + } + + return w.Deferred(function (e) { + n[0][3].add(a(0, e, g(i) ? i : I, e.notifyWith)), n[1][3].add(a(0, e, g(t) ? t : I)), n[2][3].add(a(0, e, g(r) ? r : W)); + }).promise(); + }, + promise: function promise(e) { + return null != e ? w.extend(e, i) : i; + } + }, + o = {}; + return w.each(n, function (e, t) { + var a = t[2], + s = t[5]; + i[t[1]] = a.add, s && a.add(function () { + r = s; + }, n[3 - e][2].disable, n[3 - e][3].disable, n[0][2].lock, n[0][3].lock), a.add(t[3].fire), o[t[0]] = function () { + return o[t[0] + "With"](this === o ? void 0 : this, arguments), this; + }, o[t[0] + "With"] = a.fireWith; + }), i.promise(o), t && t.call(o, o), o; + }, + when: function when(e) { + var t = arguments.length, + n = t, + r = Array(n), + i = o.call(arguments), + a = w.Deferred(), + s = function s(e) { + return function (n) { + r[e] = this, i[e] = arguments.length > 1 ? o.call(arguments) : n, --t || a.resolveWith(r, i); + }; + }; + + if (t <= 1 && ($(e, a.done(s(n)).resolve, a.reject, !t), "pending" === a.state() || g(i[n] && i[n].then))) return a.then(); + + while (n--) { + $(i[n], s(n), a.reject); + } + + return a.promise(); + } + }); + var B = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; + w.Deferred.exceptionHook = function (t, n) { + e.console && e.console.warn && t && B.test(t.name) && e.console.warn("jQuery.Deferred exception: " + t.message, t.stack, n); + }, w.readyException = function (t) { + e.setTimeout(function () { + throw t; + }); + }; + var F = w.Deferred(); + w.fn.ready = function (e) { + return F.then(e)["catch"](function (e) { + w.readyException(e); + }), this; + }, w.extend({ + isReady: !1, + readyWait: 1, + ready: function ready(e) { + (!0 === e ? --w.readyWait : w.isReady) || (w.isReady = !0, !0 !== e && --w.readyWait > 0 || F.resolveWith(r, [w])); + } + }), w.ready.then = F.then; + + function _() { + r.removeEventListener("DOMContentLoaded", _), e.removeEventListener("load", _), w.ready(); + } + + "complete" === r.readyState || "loading" !== r.readyState && !r.documentElement.doScroll ? e.setTimeout(w.ready) : (r.addEventListener("DOMContentLoaded", _), e.addEventListener("load", _)); + + var z = function z(e, t, n, r, i, o, a) { + var s = 0, + u = e.length, + l = null == n; + + if ("object" === x(n)) { + i = !0; + + for (s in n) { + z(e, t, s, n[s], !0, o, a); + } + } else if (void 0 !== r && (i = !0, g(r) || (a = !0), l && (a ? (t.call(e, r), t = null) : (l = t, t = function t(e, _t2, n) { + return l.call(w(e), n); + })), t)) for (; s < u; s++) { + t(e[s], n, a ? r : r.call(e[s], s, t(e[s], n))); + } + + return i ? e : l ? t.call(e) : u ? t(e[0], n) : o; + }, + X = /^-ms-/, + U = /-([a-z])/g; + + function V(e, t) { + return t.toUpperCase(); + } + + function G(e) { + return e.replace(X, "ms-").replace(U, V); + } + + var Y = function Y(e) { + return 1 === e.nodeType || 9 === e.nodeType || !+e.nodeType; + }; + + function Q() { + this.expando = w.expando + Q.uid++; + } + + Q.uid = 1, Q.prototype = { + cache: function cache(e) { + var t = e[this.expando]; + return t || (t = {}, Y(e) && (e.nodeType ? e[this.expando] = t : Object.defineProperty(e, this.expando, { + value: t, + configurable: !0 + }))), t; + }, + set: function set(e, t, n) { + var r, + i = this.cache(e); + if ("string" == typeof t) i[G(t)] = n;else for (r in t) { + i[G(r)] = t[r]; + } + return i; + }, + get: function get(e, t) { + return void 0 === t ? this.cache(e) : e[this.expando] && e[this.expando][G(t)]; + }, + access: function access(e, t, n) { + return void 0 === t || t && "string" == typeof t && void 0 === n ? this.get(e, t) : (this.set(e, t, n), void 0 !== n ? n : t); + }, + remove: function remove(e, t) { + var n, + r = e[this.expando]; + + if (void 0 !== r) { + if (void 0 !== t) { + n = (t = Array.isArray(t) ? t.map(G) : (t = G(t)) in r ? [t] : t.match(M) || []).length; + + while (n--) { + delete r[t[n]]; + } + } + + (void 0 === t || w.isEmptyObject(r)) && (e.nodeType ? e[this.expando] = void 0 : delete e[this.expando]); + } + }, + hasData: function hasData(e) { + var t = e[this.expando]; + return void 0 !== t && !w.isEmptyObject(t); + } + }; + var J = new Q(), + K = new Q(), + Z = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, + ee = /[A-Z]/g; + + function te(e) { + return "true" === e || "false" !== e && ("null" === e ? null : e === +e + "" ? +e : Z.test(e) ? JSON.parse(e) : e); + } + + function ne(e, t, n) { + var r; + if (void 0 === n && 1 === e.nodeType) if (r = "data-" + t.replace(ee, "-$&").toLowerCase(), "string" == typeof (n = e.getAttribute(r))) { + try { + n = te(n); + } catch (e) {} + + K.set(e, t, n); + } else n = void 0; + return n; + } + + w.extend({ + hasData: function hasData(e) { + return K.hasData(e) || J.hasData(e); + }, + data: function data(e, t, n) { + return K.access(e, t, n); + }, + removeData: function removeData(e, t) { + K.remove(e, t); + }, + _data: function _data(e, t, n) { + return J.access(e, t, n); + }, + _removeData: function _removeData(e, t) { + J.remove(e, t); + } + }), w.fn.extend({ + data: function data(e, t) { + var n, + r, + i, + o = this[0], + a = o && o.attributes; + + if (void 0 === e) { + if (this.length && (i = K.get(o), 1 === o.nodeType && !J.get(o, "hasDataAttrs"))) { + n = a.length; + + while (n--) { + a[n] && 0 === (r = a[n].name).indexOf("data-") && (r = G(r.slice(5)), ne(o, r, i[r])); + } + + J.set(o, "hasDataAttrs", !0); + } + + return i; + } + + return "object" == _typeof(e) ? this.each(function () { + K.set(this, e); + }) : z(this, function (t) { + var n; + + if (o && void 0 === t) { + if (void 0 !== (n = K.get(o, e))) return n; + if (void 0 !== (n = ne(o, e))) return n; + } else this.each(function () { + K.set(this, e, t); + }); + }, null, t, arguments.length > 1, null, !0); + }, + removeData: function removeData(e) { + return this.each(function () { + K.remove(this, e); + }); + } + }), w.extend({ + queue: function queue(e, t, n) { + var r; + if (e) return t = (t || "fx") + "queue", r = J.get(e, t), n && (!r || Array.isArray(n) ? r = J.access(e, t, w.makeArray(n)) : r.push(n)), r || []; + }, + dequeue: function dequeue(e, t) { + t = t || "fx"; + + var n = w.queue(e, t), + r = n.length, + i = n.shift(), + o = w._queueHooks(e, t), + a = function a() { + w.dequeue(e, t); + }; + + "inprogress" === i && (i = n.shift(), r--), i && ("fx" === t && n.unshift("inprogress"), delete o.stop, i.call(e, a, o)), !r && o && o.empty.fire(); + }, + _queueHooks: function _queueHooks(e, t) { + var n = t + "queueHooks"; + return J.get(e, n) || J.access(e, n, { + empty: w.Callbacks("once memory").add(function () { + J.remove(e, [t + "queue", n]); + }) + }); + } + }), w.fn.extend({ + queue: function queue(e, t) { + var n = 2; + return "string" != typeof e && (t = e, e = "fx", n--), arguments.length < n ? w.queue(this[0], e) : void 0 === t ? this : this.each(function () { + var n = w.queue(this, e, t); + w._queueHooks(this, e), "fx" === e && "inprogress" !== n[0] && w.dequeue(this, e); + }); + }, + dequeue: function dequeue(e) { + return this.each(function () { + w.dequeue(this, e); + }); + }, + clearQueue: function clearQueue(e) { + return this.queue(e || "fx", []); + }, + promise: function promise(e, t) { + var n, + r = 1, + i = w.Deferred(), + o = this, + a = this.length, + s = function s() { + --r || i.resolveWith(o, [o]); + }; + + "string" != typeof e && (t = e, e = void 0), e = e || "fx"; + + while (a--) { + (n = J.get(o[a], e + "queueHooks")) && n.empty && (r++, n.empty.add(s)); + } + + return s(), i.promise(t); + } + }); + + var re = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source, + ie = new RegExp("^(?:([+-])=|)(" + re + ")([a-z%]*)$", "i"), + oe = ["Top", "Right", "Bottom", "Left"], + ae = function ae(e, t) { + return "none" === (e = t || e).style.display || "" === e.style.display && w.contains(e.ownerDocument, e) && "none" === w.css(e, "display"); + }, + se = function se(e, t, n, r) { + var i, + o, + a = {}; + + for (o in t) { + a[o] = e.style[o], e.style[o] = t[o]; + } + + i = n.apply(e, r || []); + + for (o in t) { + e.style[o] = a[o]; + } + + return i; + }; + + function ue(e, t, n, r) { + var i, + o, + a = 20, + s = r ? function () { + return r.cur(); + } : function () { + return w.css(e, t, ""); + }, + u = s(), + l = n && n[3] || (w.cssNumber[t] ? "" : "px"), + c = (w.cssNumber[t] || "px" !== l && +u) && ie.exec(w.css(e, t)); + + if (c && c[3] !== l) { + u /= 2, l = l || c[3], c = +u || 1; + + while (a--) { + w.style(e, t, c + l), (1 - o) * (1 - (o = s() / u || .5)) <= 0 && (a = 0), c /= o; + } + + c *= 2, w.style(e, t, c + l), n = n || []; + } + + return n && (c = +c || +u || 0, i = n[1] ? c + (n[1] + 1) * n[2] : +n[2], r && (r.unit = l, r.start = c, r.end = i)), i; + } + + var le = {}; + + function ce(e) { + var t, + n = e.ownerDocument, + r = e.nodeName, + i = le[r]; + return i || (t = n.body.appendChild(n.createElement(r)), i = w.css(t, "display"), t.parentNode.removeChild(t), "none" === i && (i = "block"), le[r] = i, i); + } + + function fe(e, t) { + for (var n, r, i = [], o = 0, a = e.length; o < a; o++) { + (r = e[o]).style && (n = r.style.display, t ? ("none" === n && (i[o] = J.get(r, "display") || null, i[o] || (r.style.display = "")), "" === r.style.display && ae(r) && (i[o] = ce(r))) : "none" !== n && (i[o] = "none", J.set(r, "display", n))); + } + + for (o = 0; o < a; o++) { + null != i[o] && (e[o].style.display = i[o]); + } + + return e; + } + + w.fn.extend({ + show: function show() { + return fe(this, !0); + }, + hide: function hide() { + return fe(this); + }, + toggle: function toggle(e) { + return "boolean" == typeof e ? e ? this.show() : this.hide() : this.each(function () { + ae(this) ? w(this).show() : w(this).hide(); + }); + } + }); + var pe = /^(?:checkbox|radio)$/i, + de = /<([a-z][^\/\0>\x20\t\r\n\f]+)/i, + he = /^$|^module$|\/(?:java|ecma)script/i, + ge = { + option: [1, ""], + thead: [1, "", "
"], + col: [2, "", "
"], + tr: [2, "", "
"], + td: [3, "", "
"], + _default: [0, "", ""] + }; + ge.optgroup = ge.option, ge.tbody = ge.tfoot = ge.colgroup = ge.caption = ge.thead, ge.th = ge.td; + + function ye(e, t) { + var n; + return n = "undefined" != typeof e.getElementsByTagName ? e.getElementsByTagName(t || "*") : "undefined" != typeof e.querySelectorAll ? e.querySelectorAll(t || "*") : [], void 0 === t || t && N(e, t) ? w.merge([e], n) : n; + } + + function ve(e, t) { + for (var n = 0, r = e.length; n < r; n++) { + J.set(e[n], "globalEval", !t || J.get(t[n], "globalEval")); + } + } + + var me = /<|&#?\w+;/; + + function xe(e, t, n, r, i) { + for (var o, a, s, u, l, c, f = t.createDocumentFragment(), p = [], d = 0, h = e.length; d < h; d++) { + if ((o = e[d]) || 0 === o) if ("object" === x(o)) w.merge(p, o.nodeType ? [o] : o);else if (me.test(o)) { + a = a || f.appendChild(t.createElement("div")), s = (de.exec(o) || ["", ""])[1].toLowerCase(), u = ge[s] || ge._default, a.innerHTML = u[1] + w.htmlPrefilter(o) + u[2], c = u[0]; + + while (c--) { + a = a.lastChild; + } + + w.merge(p, a.childNodes), (a = f.firstChild).textContent = ""; + } else p.push(t.createTextNode(o)); + } + + f.textContent = "", d = 0; + + while (o = p[d++]) { + if (r && w.inArray(o, r) > -1) i && i.push(o);else if (l = w.contains(o.ownerDocument, o), a = ye(f.appendChild(o), "script"), l && ve(a), n) { + c = 0; + + while (o = a[c++]) { + he.test(o.type || "") && n.push(o); + } + } + } + + return f; + } + + !function () { + var e = r.createDocumentFragment().appendChild(r.createElement("div")), + t = r.createElement("input"); + t.setAttribute("type", "radio"), t.setAttribute("checked", "checked"), t.setAttribute("name", "t"), e.appendChild(t), h.checkClone = e.cloneNode(!0).cloneNode(!0).lastChild.checked, e.innerHTML = "", h.noCloneChecked = !!e.cloneNode(!0).lastChild.defaultValue; + }(); + var be = r.documentElement, + we = /^key/, + Te = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, + Ce = /^([^.]*)(?:\.(.+)|)/; + + function Ee() { + return !0; + } + + function ke() { + return !1; + } + + function Se() { + try { + return r.activeElement; + } catch (e) {} + } + + function De(e, t, n, r, i, o) { + var a, s; + + if ("object" == _typeof(t)) { + "string" != typeof n && (r = r || n, n = void 0); + + for (s in t) { + De(e, s, n, r, t[s], o); + } + + return e; + } + + if (null == r && null == i ? (i = n, r = n = void 0) : null == i && ("string" == typeof n ? (i = r, r = void 0) : (i = r, r = n, n = void 0)), !1 === i) i = ke;else if (!i) return e; + return 1 === o && (a = i, (i = function i(e) { + return w().off(e), a.apply(this, arguments); + }).guid = a.guid || (a.guid = w.guid++)), e.each(function () { + w.event.add(this, t, i, r, n); + }); + } + + w.event = { + global: {}, + add: function add(e, t, n, r, i) { + var o, + a, + s, + u, + l, + c, + f, + p, + d, + h, + g, + y = J.get(e); + + if (y) { + n.handler && (n = (o = n).handler, i = o.selector), i && w.find.matchesSelector(be, i), n.guid || (n.guid = w.guid++), (u = y.events) || (u = y.events = {}), (a = y.handle) || (a = y.handle = function (t) { + return "undefined" != typeof w && w.event.triggered !== t.type ? w.event.dispatch.apply(e, arguments) : void 0; + }), l = (t = (t || "").match(M) || [""]).length; + + while (l--) { + d = g = (s = Ce.exec(t[l]) || [])[1], h = (s[2] || "").split(".").sort(), d && (f = w.event.special[d] || {}, d = (i ? f.delegateType : f.bindType) || d, f = w.event.special[d] || {}, c = w.extend({ + type: d, + origType: g, + data: r, + handler: n, + guid: n.guid, + selector: i, + needsContext: i && w.expr.match.needsContext.test(i), + namespace: h.join(".") + }, o), (p = u[d]) || ((p = u[d] = []).delegateCount = 0, f.setup && !1 !== f.setup.call(e, r, h, a) || e.addEventListener && e.addEventListener(d, a)), f.add && (f.add.call(e, c), c.handler.guid || (c.handler.guid = n.guid)), i ? p.splice(p.delegateCount++, 0, c) : p.push(c), w.event.global[d] = !0); + } + } + }, + remove: function remove(e, t, n, r, i) { + var o, + a, + s, + u, + l, + c, + f, + p, + d, + h, + g, + y = J.hasData(e) && J.get(e); + + if (y && (u = y.events)) { + l = (t = (t || "").match(M) || [""]).length; + + while (l--) { + if (s = Ce.exec(t[l]) || [], d = g = s[1], h = (s[2] || "").split(".").sort(), d) { + f = w.event.special[d] || {}, p = u[d = (r ? f.delegateType : f.bindType) || d] || [], s = s[2] && new RegExp("(^|\\.)" + h.join("\\.(?:.*\\.|)") + "(\\.|$)"), a = o = p.length; + + while (o--) { + c = p[o], !i && g !== c.origType || n && n.guid !== c.guid || s && !s.test(c.namespace) || r && r !== c.selector && ("**" !== r || !c.selector) || (p.splice(o, 1), c.selector && p.delegateCount--, f.remove && f.remove.call(e, c)); + } + + a && !p.length && (f.teardown && !1 !== f.teardown.call(e, h, y.handle) || w.removeEvent(e, d, y.handle), delete u[d]); + } else for (d in u) { + w.event.remove(e, d + t[l], n, r, !0); + } + } + + w.isEmptyObject(u) && J.remove(e, "handle events"); + } + }, + dispatch: function dispatch(e) { + var t = w.event.fix(e), + n, + r, + i, + o, + a, + s, + u = new Array(arguments.length), + l = (J.get(this, "events") || {})[t.type] || [], + c = w.event.special[t.type] || {}; + + for (u[0] = t, n = 1; n < arguments.length; n++) { + u[n] = arguments[n]; + } + + if (t.delegateTarget = this, !c.preDispatch || !1 !== c.preDispatch.call(this, t)) { + s = w.event.handlers.call(this, t, l), n = 0; + + while ((o = s[n++]) && !t.isPropagationStopped()) { + t.currentTarget = o.elem, r = 0; + + while ((a = o.handlers[r++]) && !t.isImmediatePropagationStopped()) { + t.rnamespace && !t.rnamespace.test(a.namespace) || (t.handleObj = a, t.data = a.data, void 0 !== (i = ((w.event.special[a.origType] || {}).handle || a.handler).apply(o.elem, u)) && !1 === (t.result = i) && (t.preventDefault(), t.stopPropagation())); + } + } + + return c.postDispatch && c.postDispatch.call(this, t), t.result; + } + }, + handlers: function handlers(e, t) { + var n, + r, + i, + o, + a, + s = [], + u = t.delegateCount, + l = e.target; + if (u && l.nodeType && !("click" === e.type && e.button >= 1)) for (; l !== this; l = l.parentNode || this) { + if (1 === l.nodeType && ("click" !== e.type || !0 !== l.disabled)) { + for (o = [], a = {}, n = 0; n < u; n++) { + void 0 === a[i = (r = t[n]).selector + " "] && (a[i] = r.needsContext ? w(i, this).index(l) > -1 : w.find(i, this, null, [l]).length), a[i] && o.push(r); + } + + o.length && s.push({ + elem: l, + handlers: o + }); + } + } + return l = this, u < t.length && s.push({ + elem: l, + handlers: t.slice(u) + }), s; + }, + addProp: function addProp(e, t) { + Object.defineProperty(w.Event.prototype, e, { + enumerable: !0, + configurable: !0, + get: g(t) ? function () { + if (this.originalEvent) return t(this.originalEvent); + } : function () { + if (this.originalEvent) return this.originalEvent[e]; + }, + set: function set(t) { + Object.defineProperty(this, e, { + enumerable: !0, + configurable: !0, + writable: !0, + value: t + }); + } + }); + }, + fix: function fix(e) { + return e[w.expando] ? e : new w.Event(e); + }, + special: { + load: { + noBubble: !0 + }, + focus: { + trigger: function trigger() { + if (this !== Se() && this.focus) return this.focus(), !1; + }, + delegateType: "focusin" + }, + blur: { + trigger: function trigger() { + if (this === Se() && this.blur) return this.blur(), !1; + }, + delegateType: "focusout" + }, + click: { + trigger: function trigger() { + if ("checkbox" === this.type && this.click && N(this, "input")) return this.click(), !1; + }, + _default: function _default(e) { + return N(e.target, "a"); + } + }, + beforeunload: { + postDispatch: function postDispatch(e) { + void 0 !== e.result && e.originalEvent && (e.originalEvent.returnValue = e.result); + } + } + } + }, w.removeEvent = function (e, t, n) { + e.removeEventListener && e.removeEventListener(t, n); + }, w.Event = function (e, t) { + if (!(this instanceof w.Event)) return new w.Event(e, t); + e && e.type ? (this.originalEvent = e, this.type = e.type, this.isDefaultPrevented = e.defaultPrevented || void 0 === e.defaultPrevented && !1 === e.returnValue ? Ee : ke, this.target = e.target && 3 === e.target.nodeType ? e.target.parentNode : e.target, this.currentTarget = e.currentTarget, this.relatedTarget = e.relatedTarget) : this.type = e, t && w.extend(this, t), this.timeStamp = e && e.timeStamp || Date.now(), this[w.expando] = !0; + }, w.Event.prototype = { + constructor: w.Event, + isDefaultPrevented: ke, + isPropagationStopped: ke, + isImmediatePropagationStopped: ke, + isSimulated: !1, + preventDefault: function preventDefault() { + var e = this.originalEvent; + this.isDefaultPrevented = Ee, e && !this.isSimulated && e.preventDefault(); + }, + stopPropagation: function stopPropagation() { + var e = this.originalEvent; + this.isPropagationStopped = Ee, e && !this.isSimulated && e.stopPropagation(); + }, + stopImmediatePropagation: function stopImmediatePropagation() { + var e = this.originalEvent; + this.isImmediatePropagationStopped = Ee, e && !this.isSimulated && e.stopImmediatePropagation(), this.stopPropagation(); + } + }, w.each({ + altKey: !0, + bubbles: !0, + cancelable: !0, + changedTouches: !0, + ctrlKey: !0, + detail: !0, + eventPhase: !0, + metaKey: !0, + pageX: !0, + pageY: !0, + shiftKey: !0, + view: !0, + "char": !0, + charCode: !0, + key: !0, + keyCode: !0, + button: !0, + buttons: !0, + clientX: !0, + clientY: !0, + offsetX: !0, + offsetY: !0, + pointerId: !0, + pointerType: !0, + screenX: !0, + screenY: !0, + targetTouches: !0, + toElement: !0, + touches: !0, + which: function which(e) { + var t = e.button; + return null == e.which && we.test(e.type) ? null != e.charCode ? e.charCode : e.keyCode : !e.which && void 0 !== t && Te.test(e.type) ? 1 & t ? 1 : 2 & t ? 3 : 4 & t ? 2 : 0 : e.which; + } + }, w.event.addProp), w.each({ + mouseenter: "mouseover", + mouseleave: "mouseout", + pointerenter: "pointerover", + pointerleave: "pointerout" + }, function (e, t) { + w.event.special[e] = { + delegateType: t, + bindType: t, + handle: function handle(e) { + var n, + r = this, + i = e.relatedTarget, + o = e.handleObj; + return i && (i === r || w.contains(r, i)) || (e.type = o.origType, n = o.handler.apply(this, arguments), e.type = t), n; + } + }; + }), w.fn.extend({ + on: function on(e, t, n, r) { + return De(this, e, t, n, r); + }, + one: function one(e, t, n, r) { + return De(this, e, t, n, r, 1); + }, + off: function off(e, t, n) { + var r, i; + if (e && e.preventDefault && e.handleObj) return r = e.handleObj, w(e.delegateTarget).off(r.namespace ? r.origType + "." + r.namespace : r.origType, r.selector, r.handler), this; + + if ("object" == _typeof(e)) { + for (i in e) { + this.off(i, t, e[i]); + } + + return this; + } + + return !1 !== t && "function" != typeof t || (n = t, t = void 0), !1 === n && (n = ke), this.each(function () { + w.event.remove(this, e, n, t); + }); + } + }); + var Ne = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi, + Ae = /\s*$/g; + + function Le(e, t) { + return N(e, "table") && N(11 !== t.nodeType ? t : t.firstChild, "tr") ? w(e).children("tbody")[0] || e : e; + } + + function He(e) { + return e.type = (null !== e.getAttribute("type")) + "/" + e.type, e; + } + + function Oe(e) { + return "true/" === (e.type || "").slice(0, 5) ? e.type = e.type.slice(5) : e.removeAttribute("type"), e; + } + + function Pe(e, t) { + var n, r, i, o, a, s, u, l; + + if (1 === t.nodeType) { + if (J.hasData(e) && (o = J.access(e), a = J.set(t, o), l = o.events)) { + delete a.handle, a.events = {}; + + for (i in l) { + for (n = 0, r = l[i].length; n < r; n++) { + w.event.add(t, i, l[i][n]); + } + } + } + + K.hasData(e) && (s = K.access(e), u = w.extend({}, s), K.set(t, u)); + } + } + + function Me(e, t) { + var n = t.nodeName.toLowerCase(); + "input" === n && pe.test(e.type) ? t.checked = e.checked : "input" !== n && "textarea" !== n || (t.defaultValue = e.defaultValue); + } + + function Re(e, t, n, r) { + t = a.apply([], t); + var i, + o, + s, + u, + l, + c, + f = 0, + p = e.length, + d = p - 1, + y = t[0], + v = g(y); + if (v || p > 1 && "string" == typeof y && !h.checkClone && je.test(y)) return e.each(function (i) { + var o = e.eq(i); + v && (t[0] = y.call(this, i, o.html())), Re(o, t, n, r); + }); + + if (p && (i = xe(t, e[0].ownerDocument, !1, e, r), o = i.firstChild, 1 === i.childNodes.length && (i = o), o || r)) { + for (u = (s = w.map(ye(i, "script"), He)).length; f < p; f++) { + l = i, f !== d && (l = w.clone(l, !0, !0), u && w.merge(s, ye(l, "script"))), n.call(e[f], l, f); + } + + if (u) for (c = s[s.length - 1].ownerDocument, w.map(s, Oe), f = 0; f < u; f++) { + l = s[f], he.test(l.type || "") && !J.access(l, "globalEval") && w.contains(c, l) && (l.src && "module" !== (l.type || "").toLowerCase() ? w._evalUrl && w._evalUrl(l.src) : m(l.textContent.replace(qe, ""), c, l)); + } + } + + return e; + } + + function Ie(e, t, n) { + for (var r, i = t ? w.filter(t, e) : e, o = 0; null != (r = i[o]); o++) { + n || 1 !== r.nodeType || w.cleanData(ye(r)), r.parentNode && (n && w.contains(r.ownerDocument, r) && ve(ye(r, "script")), r.parentNode.removeChild(r)); + } + + return e; + } + + w.extend({ + htmlPrefilter: function htmlPrefilter(e) { + return e.replace(Ne, "<$1>"); + }, + clone: function clone(e, t, n) { + var r, + i, + o, + a, + s = e.cloneNode(!0), + u = w.contains(e.ownerDocument, e); + if (!(h.noCloneChecked || 1 !== e.nodeType && 11 !== e.nodeType || w.isXMLDoc(e))) for (a = ye(s), r = 0, i = (o = ye(e)).length; r < i; r++) { + Me(o[r], a[r]); + } + if (t) if (n) for (o = o || ye(e), a = a || ye(s), r = 0, i = o.length; r < i; r++) { + Pe(o[r], a[r]); + } else Pe(e, s); + return (a = ye(s, "script")).length > 0 && ve(a, !u && ye(e, "script")), s; + }, + cleanData: function cleanData(e) { + for (var t, n, r, i = w.event.special, o = 0; void 0 !== (n = e[o]); o++) { + if (Y(n)) { + if (t = n[J.expando]) { + if (t.events) for (r in t.events) { + i[r] ? w.event.remove(n, r) : w.removeEvent(n, r, t.handle); + } + n[J.expando] = void 0; + } + + n[K.expando] && (n[K.expando] = void 0); + } + } + } + }), w.fn.extend({ + detach: function detach(e) { + return Ie(this, e, !0); + }, + remove: function remove(e) { + return Ie(this, e); + }, + text: function text(e) { + return z(this, function (e) { + return void 0 === e ? w.text(this) : this.empty().each(function () { + 1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || (this.textContent = e); + }); + }, null, e, arguments.length); + }, + append: function append() { + return Re(this, arguments, function (e) { + 1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || Le(this, e).appendChild(e); + }); + }, + prepend: function prepend() { + return Re(this, arguments, function (e) { + if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) { + var t = Le(this, e); + t.insertBefore(e, t.firstChild); + } + }); + }, + before: function before() { + return Re(this, arguments, function (e) { + this.parentNode && this.parentNode.insertBefore(e, this); + }); + }, + after: function after() { + return Re(this, arguments, function (e) { + this.parentNode && this.parentNode.insertBefore(e, this.nextSibling); + }); + }, + empty: function empty() { + for (var e, t = 0; null != (e = this[t]); t++) { + 1 === e.nodeType && (w.cleanData(ye(e, !1)), e.textContent = ""); + } + + return this; + }, + clone: function clone(e, t) { + return e = null != e && e, t = null == t ? e : t, this.map(function () { + return w.clone(this, e, t); + }); + }, + html: function html(e) { + return z(this, function (e) { + var t = this[0] || {}, + n = 0, + r = this.length; + if (void 0 === e && 1 === t.nodeType) return t.innerHTML; + + if ("string" == typeof e && !Ae.test(e) && !ge[(de.exec(e) || ["", ""])[1].toLowerCase()]) { + e = w.htmlPrefilter(e); + + try { + for (; n < r; n++) { + 1 === (t = this[n] || {}).nodeType && (w.cleanData(ye(t, !1)), t.innerHTML = e); + } + + t = 0; + } catch (e) {} + } + + t && this.empty().append(e); + }, null, e, arguments.length); + }, + replaceWith: function replaceWith() { + var e = []; + return Re(this, arguments, function (t) { + var n = this.parentNode; + w.inArray(this, e) < 0 && (w.cleanData(ye(this)), n && n.replaceChild(t, this)); + }, e); + } + }), w.each({ + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith" + }, function (e, t) { + w.fn[e] = function (e) { + for (var n, r = [], i = w(e), o = i.length - 1, a = 0; a <= o; a++) { + n = a === o ? this : this.clone(!0), w(i[a])[t](n), s.apply(r, n.get()); + } + + return this.pushStack(r); + }; + }); + + var We = new RegExp("^(" + re + ")(?!px)[a-z%]+$", "i"), + $e = function $e(t) { + var n = t.ownerDocument.defaultView; + return n && n.opener || (n = e), n.getComputedStyle(t); + }, + Be = new RegExp(oe.join("|"), "i"); + + !function () { + function t() { + if (c) { + l.style.cssText = "position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0", c.style.cssText = "position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%", be.appendChild(l).appendChild(c); + var t = e.getComputedStyle(c); + i = "1%" !== t.top, u = 12 === n(t.marginLeft), c.style.right = "60%", s = 36 === n(t.right), o = 36 === n(t.width), c.style.position = "absolute", a = 36 === c.offsetWidth || "absolute", be.removeChild(l), c = null; + } + } + + function n(e) { + return Math.round(parseFloat(e)); + } + + var i, + o, + a, + s, + u, + l = r.createElement("div"), + c = r.createElement("div"); + c.style && (c.style.backgroundClip = "content-box", c.cloneNode(!0).style.backgroundClip = "", h.clearCloneStyle = "content-box" === c.style.backgroundClip, w.extend(h, { + boxSizingReliable: function boxSizingReliable() { + return t(), o; + }, + pixelBoxStyles: function pixelBoxStyles() { + return t(), s; + }, + pixelPosition: function pixelPosition() { + return t(), i; + }, + reliableMarginLeft: function reliableMarginLeft() { + return t(), u; + }, + scrollboxSize: function scrollboxSize() { + return t(), a; + } + })); + }(); + + function Fe(e, t, n) { + var r, + i, + o, + a, + s = e.style; + return (n = n || $e(e)) && ("" !== (a = n.getPropertyValue(t) || n[t]) || w.contains(e.ownerDocument, e) || (a = w.style(e, t)), !h.pixelBoxStyles() && We.test(a) && Be.test(t) && (r = s.width, i = s.minWidth, o = s.maxWidth, s.minWidth = s.maxWidth = s.width = a, a = n.width, s.width = r, s.minWidth = i, s.maxWidth = o)), void 0 !== a ? a + "" : a; + } + + function _e(e, t) { + return { + get: function get() { + if (!e()) return (this.get = t).apply(this, arguments); + delete this.get; + } + }; + } + + var ze = /^(none|table(?!-c[ea]).+)/, + Xe = /^--/, + Ue = { + position: "absolute", + visibility: "hidden", + display: "block" + }, + Ve = { + letterSpacing: "0", + fontWeight: "400" + }, + Ge = ["Webkit", "Moz", "ms"], + Ye = r.createElement("div").style; + + function Qe(e) { + if (e in Ye) return e; + var t = e[0].toUpperCase() + e.slice(1), + n = Ge.length; + + while (n--) { + if ((e = Ge[n] + t) in Ye) return e; + } + } + + function Je(e) { + var t = w.cssProps[e]; + return t || (t = w.cssProps[e] = Qe(e) || e), t; + } + + function Ke(e, t, n) { + var r = ie.exec(t); + return r ? Math.max(0, r[2] - (n || 0)) + (r[3] || "px") : t; + } + + function Ze(e, t, n, r, i, o) { + var a = "width" === t ? 1 : 0, + s = 0, + u = 0; + if (n === (r ? "border" : "content")) return 0; + + for (; a < 4; a += 2) { + "margin" === n && (u += w.css(e, n + oe[a], !0, i)), r ? ("content" === n && (u -= w.css(e, "padding" + oe[a], !0, i)), "margin" !== n && (u -= w.css(e, "border" + oe[a] + "Width", !0, i))) : (u += w.css(e, "padding" + oe[a], !0, i), "padding" !== n ? u += w.css(e, "border" + oe[a] + "Width", !0, i) : s += w.css(e, "border" + oe[a] + "Width", !0, i)); + } + + return !r && o >= 0 && (u += Math.max(0, Math.ceil(e["offset" + t[0].toUpperCase() + t.slice(1)] - o - u - s - .5))), u; + } + + function et(e, t, n) { + var r = $e(e), + i = Fe(e, t, r), + o = "border-box" === w.css(e, "boxSizing", !1, r), + a = o; + + if (We.test(i)) { + if (!n) return i; + i = "auto"; + } + + return a = a && (h.boxSizingReliable() || i === e.style[t]), ("auto" === i || !parseFloat(i) && "inline" === w.css(e, "display", !1, r)) && (i = e["offset" + t[0].toUpperCase() + t.slice(1)], a = !0), (i = parseFloat(i) || 0) + Ze(e, t, n || (o ? "border" : "content"), a, r, i) + "px"; + } + + w.extend({ + cssHooks: { + opacity: { + get: function get(e, t) { + if (t) { + var n = Fe(e, "opacity"); + return "" === n ? "1" : n; + } + } + } + }, + cssNumber: { + animationIterationCount: !0, + columnCount: !0, + fillOpacity: !0, + flexGrow: !0, + flexShrink: !0, + fontWeight: !0, + lineHeight: !0, + opacity: !0, + order: !0, + orphans: !0, + widows: !0, + zIndex: !0, + zoom: !0 + }, + cssProps: {}, + style: function style(e, t, n, r) { + if (e && 3 !== e.nodeType && 8 !== e.nodeType && e.style) { + var i, + o, + a, + s = G(t), + u = Xe.test(t), + l = e.style; + if (u || (t = Je(s)), a = w.cssHooks[t] || w.cssHooks[s], void 0 === n) return a && "get" in a && void 0 !== (i = a.get(e, !1, r)) ? i : l[t]; + "string" == (o = _typeof(n)) && (i = ie.exec(n)) && i[1] && (n = ue(e, t, i), o = "number"), null != n && n === n && ("number" === o && (n += i && i[3] || (w.cssNumber[s] ? "" : "px")), h.clearCloneStyle || "" !== n || 0 !== t.indexOf("background") || (l[t] = "inherit"), a && "set" in a && void 0 === (n = a.set(e, n, r)) || (u ? l.setProperty(t, n) : l[t] = n)); + } + }, + css: function css(e, t, n, r) { + var i, + o, + a, + s = G(t); + return Xe.test(t) || (t = Je(s)), (a = w.cssHooks[t] || w.cssHooks[s]) && "get" in a && (i = a.get(e, !0, n)), void 0 === i && (i = Fe(e, t, r)), "normal" === i && t in Ve && (i = Ve[t]), "" === n || n ? (o = parseFloat(i), !0 === n || isFinite(o) ? o || 0 : i) : i; + } + }), w.each(["height", "width"], function (e, t) { + w.cssHooks[t] = { + get: function get(e, n, r) { + if (n) return !ze.test(w.css(e, "display")) || e.getClientRects().length && e.getBoundingClientRect().width ? et(e, t, r) : se(e, Ue, function () { + return et(e, t, r); + }); + }, + set: function set(e, n, r) { + var i, + o = $e(e), + a = "border-box" === w.css(e, "boxSizing", !1, o), + s = r && Ze(e, t, r, a, o); + return a && h.scrollboxSize() === o.position && (s -= Math.ceil(e["offset" + t[0].toUpperCase() + t.slice(1)] - parseFloat(o[t]) - Ze(e, t, "border", !1, o) - .5)), s && (i = ie.exec(n)) && "px" !== (i[3] || "px") && (e.style[t] = n, n = w.css(e, t)), Ke(e, n, s); + } + }; + }), w.cssHooks.marginLeft = _e(h.reliableMarginLeft, function (e, t) { + if (t) return (parseFloat(Fe(e, "marginLeft")) || e.getBoundingClientRect().left - se(e, { + marginLeft: 0 + }, function () { + return e.getBoundingClientRect().left; + })) + "px"; + }), w.each({ + margin: "", + padding: "", + border: "Width" + }, function (e, t) { + w.cssHooks[e + t] = { + expand: function expand(n) { + for (var r = 0, i = {}, o = "string" == typeof n ? n.split(" ") : [n]; r < 4; r++) { + i[e + oe[r] + t] = o[r] || o[r - 2] || o[0]; + } + + return i; + } + }, "margin" !== e && (w.cssHooks[e + t].set = Ke); + }), w.fn.extend({ + css: function css(e, t) { + return z(this, function (e, t, n) { + var r, + i, + o = {}, + a = 0; + + if (Array.isArray(t)) { + for (r = $e(e), i = t.length; a < i; a++) { + o[t[a]] = w.css(e, t[a], !1, r); + } + + return o; + } + + return void 0 !== n ? w.style(e, t, n) : w.css(e, t); + }, e, t, arguments.length > 1); + } + }); + + function tt(e, t, n, r, i) { + return new tt.prototype.init(e, t, n, r, i); + } + + w.Tween = tt, tt.prototype = { + constructor: tt, + init: function init(e, t, n, r, i, o) { + this.elem = e, this.prop = n, this.easing = i || w.easing._default, this.options = t, this.start = this.now = this.cur(), this.end = r, this.unit = o || (w.cssNumber[n] ? "" : "px"); + }, + cur: function cur() { + var e = tt.propHooks[this.prop]; + return e && e.get ? e.get(this) : tt.propHooks._default.get(this); + }, + run: function run(e) { + var t, + n = tt.propHooks[this.prop]; + return this.options.duration ? this.pos = t = w.easing[this.easing](e, this.options.duration * e, 0, 1, this.options.duration) : this.pos = t = e, this.now = (this.end - this.start) * t + this.start, this.options.step && this.options.step.call(this.elem, this.now, this), n && n.set ? n.set(this) : tt.propHooks._default.set(this), this; + } + }, tt.prototype.init.prototype = tt.prototype, tt.propHooks = { + _default: { + get: function get(e) { + var t; + return 1 !== e.elem.nodeType || null != e.elem[e.prop] && null == e.elem.style[e.prop] ? e.elem[e.prop] : (t = w.css(e.elem, e.prop, "")) && "auto" !== t ? t : 0; + }, + set: function set(e) { + w.fx.step[e.prop] ? w.fx.step[e.prop](e) : 1 !== e.elem.nodeType || null == e.elem.style[w.cssProps[e.prop]] && !w.cssHooks[e.prop] ? e.elem[e.prop] = e.now : w.style(e.elem, e.prop, e.now + e.unit); + } + } + }, tt.propHooks.scrollTop = tt.propHooks.scrollLeft = { + set: function set(e) { + e.elem.nodeType && e.elem.parentNode && (e.elem[e.prop] = e.now); + } + }, w.easing = { + linear: function linear(e) { + return e; + }, + swing: function swing(e) { + return .5 - Math.cos(e * Math.PI) / 2; + }, + _default: "swing" + }, w.fx = tt.prototype.init, w.fx.step = {}; + var nt, + rt, + it = /^(?:toggle|show|hide)$/, + ot = /queueHooks$/; + + function at() { + rt && (!1 === r.hidden && e.requestAnimationFrame ? e.requestAnimationFrame(at) : e.setTimeout(at, w.fx.interval), w.fx.tick()); + } + + function st() { + return e.setTimeout(function () { + nt = void 0; + }), nt = Date.now(); + } + + function ut(e, t) { + var n, + r = 0, + i = { + height: e + }; + + for (t = t ? 1 : 0; r < 4; r += 2 - t) { + i["margin" + (n = oe[r])] = i["padding" + n] = e; + } + + return t && (i.opacity = i.width = e), i; + } + + function lt(e, t, n) { + for (var r, i = (pt.tweeners[t] || []).concat(pt.tweeners["*"]), o = 0, a = i.length; o < a; o++) { + if (r = i[o].call(n, t, e)) return r; + } + } + + function ct(e, t, n) { + var r, + i, + o, + a, + s, + u, + l, + c, + f = "width" in t || "height" in t, + p = this, + d = {}, + h = e.style, + g = e.nodeType && ae(e), + y = J.get(e, "fxshow"); + n.queue || (null == (a = w._queueHooks(e, "fx")).unqueued && (a.unqueued = 0, s = a.empty.fire, a.empty.fire = function () { + a.unqueued || s(); + }), a.unqueued++, p.always(function () { + p.always(function () { + a.unqueued--, w.queue(e, "fx").length || a.empty.fire(); + }); + })); + + for (r in t) { + if (i = t[r], it.test(i)) { + if (delete t[r], o = o || "toggle" === i, i === (g ? "hide" : "show")) { + if ("show" !== i || !y || void 0 === y[r]) continue; + g = !0; + } + + d[r] = y && y[r] || w.style(e, r); + } + } + + if ((u = !w.isEmptyObject(t)) || !w.isEmptyObject(d)) { + f && 1 === e.nodeType && (n.overflow = [h.overflow, h.overflowX, h.overflowY], null == (l = y && y.display) && (l = J.get(e, "display")), "none" === (c = w.css(e, "display")) && (l ? c = l : (fe([e], !0), l = e.style.display || l, c = w.css(e, "display"), fe([e]))), ("inline" === c || "inline-block" === c && null != l) && "none" === w.css(e, "float") && (u || (p.done(function () { + h.display = l; + }), null == l && (c = h.display, l = "none" === c ? "" : c)), h.display = "inline-block")), n.overflow && (h.overflow = "hidden", p.always(function () { + h.overflow = n.overflow[0], h.overflowX = n.overflow[1], h.overflowY = n.overflow[2]; + })), u = !1; + + for (r in d) { + u || (y ? "hidden" in y && (g = y.hidden) : y = J.access(e, "fxshow", { + display: l + }), o && (y.hidden = !g), g && fe([e], !0), p.done(function () { + g || fe([e]), J.remove(e, "fxshow"); + + for (r in d) { + w.style(e, r, d[r]); + } + })), u = lt(g ? y[r] : 0, r, p), r in y || (y[r] = u.start, g && (u.end = u.start, u.start = 0)); + } + } + } + + function ft(e, t) { + var n, r, i, o, a; + + for (n in e) { + if (r = G(n), i = t[r], o = e[n], Array.isArray(o) && (i = o[1], o = e[n] = o[0]), n !== r && (e[r] = o, delete e[n]), (a = w.cssHooks[r]) && "expand" in a) { + o = a.expand(o), delete e[r]; + + for (n in o) { + n in e || (e[n] = o[n], t[n] = i); + } + } else t[r] = i; + } + } + + function pt(e, t, n) { + var r, + i, + o = 0, + a = pt.prefilters.length, + s = w.Deferred().always(function () { + delete u.elem; + }), + u = function u() { + if (i) return !1; + + for (var t = nt || st(), n = Math.max(0, l.startTime + l.duration - t), r = 1 - (n / l.duration || 0), o = 0, a = l.tweens.length; o < a; o++) { + l.tweens[o].run(r); + } + + return s.notifyWith(e, [l, r, n]), r < 1 && a ? n : (a || s.notifyWith(e, [l, 1, 0]), s.resolveWith(e, [l]), !1); + }, + l = s.promise({ + elem: e, + props: w.extend({}, t), + opts: w.extend(!0, { + specialEasing: {}, + easing: w.easing._default + }, n), + originalProperties: t, + originalOptions: n, + startTime: nt || st(), + duration: n.duration, + tweens: [], + createTween: function createTween(t, n) { + var r = w.Tween(e, l.opts, t, n, l.opts.specialEasing[t] || l.opts.easing); + return l.tweens.push(r), r; + }, + stop: function stop(t) { + var n = 0, + r = t ? l.tweens.length : 0; + if (i) return this; + + for (i = !0; n < r; n++) { + l.tweens[n].run(1); + } + + return t ? (s.notifyWith(e, [l, 1, 0]), s.resolveWith(e, [l, t])) : s.rejectWith(e, [l, t]), this; + } + }), + c = l.props; + + for (ft(c, l.opts.specialEasing); o < a; o++) { + if (r = pt.prefilters[o].call(l, e, c, l.opts)) return g(r.stop) && (w._queueHooks(l.elem, l.opts.queue).stop = r.stop.bind(r)), r; + } + + return w.map(c, lt, l), g(l.opts.start) && l.opts.start.call(e, l), l.progress(l.opts.progress).done(l.opts.done, l.opts.complete).fail(l.opts.fail).always(l.opts.always), w.fx.timer(w.extend(u, { + elem: e, + anim: l, + queue: l.opts.queue + })), l; + } + + w.Animation = w.extend(pt, { + tweeners: { + "*": [function (e, t) { + var n = this.createTween(e, t); + return ue(n.elem, e, ie.exec(t), n), n; + }] + }, + tweener: function tweener(e, t) { + g(e) ? (t = e, e = ["*"]) : e = e.match(M); + + for (var n, r = 0, i = e.length; r < i; r++) { + n = e[r], pt.tweeners[n] = pt.tweeners[n] || [], pt.tweeners[n].unshift(t); + } + }, + prefilters: [ct], + prefilter: function prefilter(e, t) { + t ? pt.prefilters.unshift(e) : pt.prefilters.push(e); + } + }), w.speed = function (e, t, n) { + var r = e && "object" == _typeof(e) ? w.extend({}, e) : { + complete: n || !n && t || g(e) && e, + duration: e, + easing: n && t || t && !g(t) && t + }; + return w.fx.off ? r.duration = 0 : "number" != typeof r.duration && (r.duration in w.fx.speeds ? r.duration = w.fx.speeds[r.duration] : r.duration = w.fx.speeds._default), null != r.queue && !0 !== r.queue || (r.queue = "fx"), r.old = r.complete, r.complete = function () { + g(r.old) && r.old.call(this), r.queue && w.dequeue(this, r.queue); + }, r; + }, w.fn.extend({ + fadeTo: function fadeTo(e, t, n, r) { + return this.filter(ae).css("opacity", 0).show().end().animate({ + opacity: t + }, e, n, r); + }, + animate: function animate(e, t, n, r) { + var i = w.isEmptyObject(e), + o = w.speed(t, n, r), + a = function a() { + var t = pt(this, w.extend({}, e), o); + (i || J.get(this, "finish")) && t.stop(!0); + }; + + return a.finish = a, i || !1 === o.queue ? this.each(a) : this.queue(o.queue, a); + }, + stop: function stop(e, t, n) { + var r = function r(e) { + var t = e.stop; + delete e.stop, t(n); + }; + + return "string" != typeof e && (n = t, t = e, e = void 0), t && !1 !== e && this.queue(e || "fx", []), this.each(function () { + var t = !0, + i = null != e && e + "queueHooks", + o = w.timers, + a = J.get(this); + if (i) a[i] && a[i].stop && r(a[i]);else for (i in a) { + a[i] && a[i].stop && ot.test(i) && r(a[i]); + } + + for (i = o.length; i--;) { + o[i].elem !== this || null != e && o[i].queue !== e || (o[i].anim.stop(n), t = !1, o.splice(i, 1)); + } + + !t && n || w.dequeue(this, e); + }); + }, + finish: function finish(e) { + return !1 !== e && (e = e || "fx"), this.each(function () { + var t, + n = J.get(this), + r = n[e + "queue"], + i = n[e + "queueHooks"], + o = w.timers, + a = r ? r.length : 0; + + for (n.finish = !0, w.queue(this, e, []), i && i.stop && i.stop.call(this, !0), t = o.length; t--;) { + o[t].elem === this && o[t].queue === e && (o[t].anim.stop(!0), o.splice(t, 1)); + } + + for (t = 0; t < a; t++) { + r[t] && r[t].finish && r[t].finish.call(this); + } + + delete n.finish; + }); + } + }), w.each(["toggle", "show", "hide"], function (e, t) { + var n = w.fn[t]; + + w.fn[t] = function (e, r, i) { + return null == e || "boolean" == typeof e ? n.apply(this, arguments) : this.animate(ut(t, !0), e, r, i); + }; + }), w.each({ + slideDown: ut("show"), + slideUp: ut("hide"), + slideToggle: ut("toggle"), + fadeIn: { + opacity: "show" + }, + fadeOut: { + opacity: "hide" + }, + fadeToggle: { + opacity: "toggle" + } + }, function (e, t) { + w.fn[e] = function (e, n, r) { + return this.animate(t, e, n, r); + }; + }), w.timers = [], w.fx.tick = function () { + var e, + t = 0, + n = w.timers; + + for (nt = Date.now(); t < n.length; t++) { + (e = n[t])() || n[t] !== e || n.splice(t--, 1); + } + + n.length || w.fx.stop(), nt = void 0; + }, w.fx.timer = function (e) { + w.timers.push(e), w.fx.start(); + }, w.fx.interval = 13, w.fx.start = function () { + rt || (rt = !0, at()); + }, w.fx.stop = function () { + rt = null; + }, w.fx.speeds = { + slow: 600, + fast: 200, + _default: 400 + }, w.fn.delay = function (t, n) { + return t = w.fx ? w.fx.speeds[t] || t : t, n = n || "fx", this.queue(n, function (n, r) { + var i = e.setTimeout(n, t); + + r.stop = function () { + e.clearTimeout(i); + }; + }); + }, function () { + var e = r.createElement("input"), + t = r.createElement("select").appendChild(r.createElement("option")); + e.type = "checkbox", h.checkOn = "" !== e.value, h.optSelected = t.selected, (e = r.createElement("input")).value = "t", e.type = "radio", h.radioValue = "t" === e.value; + }(); + var dt, + ht = w.expr.attrHandle; + w.fn.extend({ + attr: function attr(e, t) { + return z(this, w.attr, e, t, arguments.length > 1); + }, + removeAttr: function removeAttr(e) { + return this.each(function () { + w.removeAttr(this, e); + }); + } + }), w.extend({ + attr: function attr(e, t, n) { + var r, + i, + o = e.nodeType; + if (3 !== o && 8 !== o && 2 !== o) return "undefined" == typeof e.getAttribute ? w.prop(e, t, n) : (1 === o && w.isXMLDoc(e) || (i = w.attrHooks[t.toLowerCase()] || (w.expr.match.bool.test(t) ? dt : void 0)), void 0 !== n ? null === n ? void w.removeAttr(e, t) : i && "set" in i && void 0 !== (r = i.set(e, n, t)) ? r : (e.setAttribute(t, n + ""), n) : i && "get" in i && null !== (r = i.get(e, t)) ? r : null == (r = w.find.attr(e, t)) ? void 0 : r); + }, + attrHooks: { + type: { + set: function set(e, t) { + if (!h.radioValue && "radio" === t && N(e, "input")) { + var n = e.value; + return e.setAttribute("type", t), n && (e.value = n), t; + } + } + } + }, + removeAttr: function removeAttr(e, t) { + var n, + r = 0, + i = t && t.match(M); + if (i && 1 === e.nodeType) while (n = i[r++]) { + e.removeAttribute(n); + } + } + }), dt = { + set: function set(e, t, n) { + return !1 === t ? w.removeAttr(e, n) : e.setAttribute(n, n), n; + } + }, w.each(w.expr.match.bool.source.match(/\w+/g), function (e, t) { + var n = ht[t] || w.find.attr; + + ht[t] = function (e, t, r) { + var i, + o, + a = t.toLowerCase(); + return r || (o = ht[a], ht[a] = i, i = null != n(e, t, r) ? a : null, ht[a] = o), i; + }; + }); + var gt = /^(?:input|select|textarea|button)$/i, + yt = /^(?:a|area)$/i; + w.fn.extend({ + prop: function prop(e, t) { + return z(this, w.prop, e, t, arguments.length > 1); + }, + removeProp: function removeProp(e) { + return this.each(function () { + delete this[w.propFix[e] || e]; + }); + } + }), w.extend({ + prop: function prop(e, t, n) { + var r, + i, + o = e.nodeType; + if (3 !== o && 8 !== o && 2 !== o) return 1 === o && w.isXMLDoc(e) || (t = w.propFix[t] || t, i = w.propHooks[t]), void 0 !== n ? i && "set" in i && void 0 !== (r = i.set(e, n, t)) ? r : e[t] = n : i && "get" in i && null !== (r = i.get(e, t)) ? r : e[t]; + }, + propHooks: { + tabIndex: { + get: function get(e) { + var t = w.find.attr(e, "tabindex"); + return t ? parseInt(t, 10) : gt.test(e.nodeName) || yt.test(e.nodeName) && e.href ? 0 : -1; + } + } + }, + propFix: { + "for": "htmlFor", + "class": "className" + } + }), h.optSelected || (w.propHooks.selected = { + get: function get(e) { + var t = e.parentNode; + return t && t.parentNode && t.parentNode.selectedIndex, null; + }, + set: function set(e) { + var t = e.parentNode; + t && (t.selectedIndex, t.parentNode && t.parentNode.selectedIndex); + } + }), w.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function () { + w.propFix[this.toLowerCase()] = this; + }); + + function vt(e) { + return (e.match(M) || []).join(" "); + } + + function mt(e) { + return e.getAttribute && e.getAttribute("class") || ""; + } + + function xt(e) { + return Array.isArray(e) ? e : "string" == typeof e ? e.match(M) || [] : []; + } + + w.fn.extend({ + addClass: function addClass(e) { + var t, + n, + r, + i, + o, + a, + s, + u = 0; + if (g(e)) return this.each(function (t) { + w(this).addClass(e.call(this, t, mt(this))); + }); + if ((t = xt(e)).length) while (n = this[u++]) { + if (i = mt(n), r = 1 === n.nodeType && " " + vt(i) + " ") { + a = 0; + + while (o = t[a++]) { + r.indexOf(" " + o + " ") < 0 && (r += o + " "); + } + + i !== (s = vt(r)) && n.setAttribute("class", s); + } + } + return this; + }, + removeClass: function removeClass(e) { + var t, + n, + r, + i, + o, + a, + s, + u = 0; + if (g(e)) return this.each(function (t) { + w(this).removeClass(e.call(this, t, mt(this))); + }); + if (!arguments.length) return this.attr("class", ""); + if ((t = xt(e)).length) while (n = this[u++]) { + if (i = mt(n), r = 1 === n.nodeType && " " + vt(i) + " ") { + a = 0; + + while (o = t[a++]) { + while (r.indexOf(" " + o + " ") > -1) { + r = r.replace(" " + o + " ", " "); + } + } + + i !== (s = vt(r)) && n.setAttribute("class", s); + } + } + return this; + }, + toggleClass: function toggleClass(e, t) { + var n = _typeof(e), + r = "string" === n || Array.isArray(e); + + return "boolean" == typeof t && r ? t ? this.addClass(e) : this.removeClass(e) : g(e) ? this.each(function (n) { + w(this).toggleClass(e.call(this, n, mt(this), t), t); + }) : this.each(function () { + var t, i, o, a; + + if (r) { + i = 0, o = w(this), a = xt(e); + + while (t = a[i++]) { + o.hasClass(t) ? o.removeClass(t) : o.addClass(t); + } + } else void 0 !== e && "boolean" !== n || ((t = mt(this)) && J.set(this, "__className__", t), this.setAttribute && this.setAttribute("class", t || !1 === e ? "" : J.get(this, "__className__") || "")); + }); + }, + hasClass: function hasClass(e) { + var t, + n, + r = 0; + t = " " + e + " "; + + while (n = this[r++]) { + if (1 === n.nodeType && (" " + vt(mt(n)) + " ").indexOf(t) > -1) return !0; + } + + return !1; + } + }); + var bt = /\r/g; + w.fn.extend({ + val: function val(e) { + var t, + n, + r, + i = this[0]; + { + if (arguments.length) return r = g(e), this.each(function (n) { + var i; + 1 === this.nodeType && (null == (i = r ? e.call(this, n, w(this).val()) : e) ? i = "" : "number" == typeof i ? i += "" : Array.isArray(i) && (i = w.map(i, function (e) { + return null == e ? "" : e + ""; + })), (t = w.valHooks[this.type] || w.valHooks[this.nodeName.toLowerCase()]) && "set" in t && void 0 !== t.set(this, i, "value") || (this.value = i)); + }); + if (i) return (t = w.valHooks[i.type] || w.valHooks[i.nodeName.toLowerCase()]) && "get" in t && void 0 !== (n = t.get(i, "value")) ? n : "string" == typeof (n = i.value) ? n.replace(bt, "") : null == n ? "" : n; + } + } + }), w.extend({ + valHooks: { + option: { + get: function get(e) { + var t = w.find.attr(e, "value"); + return null != t ? t : vt(w.text(e)); + } + }, + select: { + get: function get(e) { + var t, + n, + r, + i = e.options, + o = e.selectedIndex, + a = "select-one" === e.type, + s = a ? null : [], + u = a ? o + 1 : i.length; + + for (r = o < 0 ? u : a ? o : 0; r < u; r++) { + if (((n = i[r]).selected || r === o) && !n.disabled && (!n.parentNode.disabled || !N(n.parentNode, "optgroup"))) { + if (t = w(n).val(), a) return t; + s.push(t); + } + } + + return s; + }, + set: function set(e, t) { + var n, + r, + i = e.options, + o = w.makeArray(t), + a = i.length; + + while (a--) { + ((r = i[a]).selected = w.inArray(w.valHooks.option.get(r), o) > -1) && (n = !0); + } + + return n || (e.selectedIndex = -1), o; + } + } + } + }), w.each(["radio", "checkbox"], function () { + w.valHooks[this] = { + set: function set(e, t) { + if (Array.isArray(t)) return e.checked = w.inArray(w(e).val(), t) > -1; + } + }, h.checkOn || (w.valHooks[this].get = function (e) { + return null === e.getAttribute("value") ? "on" : e.value; + }); + }), h.focusin = "onfocusin" in e; + + var wt = /^(?:focusinfocus|focusoutblur)$/, + Tt = function Tt(e) { + e.stopPropagation(); + }; + + w.extend(w.event, { + trigger: function trigger(t, n, i, o) { + var a, + s, + u, + l, + c, + p, + d, + h, + v = [i || r], + m = f.call(t, "type") ? t.type : t, + x = f.call(t, "namespace") ? t.namespace.split(".") : []; + + if (s = h = u = i = i || r, 3 !== i.nodeType && 8 !== i.nodeType && !wt.test(m + w.event.triggered) && (m.indexOf(".") > -1 && (m = (x = m.split(".")).shift(), x.sort()), c = m.indexOf(":") < 0 && "on" + m, t = t[w.expando] ? t : new w.Event(m, "object" == _typeof(t) && t), t.isTrigger = o ? 2 : 3, t.namespace = x.join("."), t.rnamespace = t.namespace ? new RegExp("(^|\\.)" + x.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, t.result = void 0, t.target || (t.target = i), n = null == n ? [t] : w.makeArray(n, [t]), d = w.event.special[m] || {}, o || !d.trigger || !1 !== d.trigger.apply(i, n))) { + if (!o && !d.noBubble && !y(i)) { + for (l = d.delegateType || m, wt.test(l + m) || (s = s.parentNode); s; s = s.parentNode) { + v.push(s), u = s; + } + + u === (i.ownerDocument || r) && v.push(u.defaultView || u.parentWindow || e); + } + + a = 0; + + while ((s = v[a++]) && !t.isPropagationStopped()) { + h = s, t.type = a > 1 ? l : d.bindType || m, (p = (J.get(s, "events") || {})[t.type] && J.get(s, "handle")) && p.apply(s, n), (p = c && s[c]) && p.apply && Y(s) && (t.result = p.apply(s, n), !1 === t.result && t.preventDefault()); + } + + return t.type = m, o || t.isDefaultPrevented() || d._default && !1 !== d._default.apply(v.pop(), n) || !Y(i) || c && g(i[m]) && !y(i) && ((u = i[c]) && (i[c] = null), w.event.triggered = m, t.isPropagationStopped() && h.addEventListener(m, Tt), i[m](), t.isPropagationStopped() && h.removeEventListener(m, Tt), w.event.triggered = void 0, u && (i[c] = u)), t.result; + } + }, + simulate: function simulate(e, t, n) { + var r = w.extend(new w.Event(), n, { + type: e, + isSimulated: !0 + }); + w.event.trigger(r, null, t); + } + }), w.fn.extend({ + trigger: function trigger(e, t) { + return this.each(function () { + w.event.trigger(e, t, this); + }); + }, + triggerHandler: function triggerHandler(e, t) { + var n = this[0]; + if (n) return w.event.trigger(e, t, n, !0); + } + }), h.focusin || w.each({ + focus: "focusin", + blur: "focusout" + }, function (e, t) { + var n = function n(e) { + w.event.simulate(t, e.target, w.event.fix(e)); + }; + + w.event.special[t] = { + setup: function setup() { + var r = this.ownerDocument || this, + i = J.access(r, t); + i || r.addEventListener(e, n, !0), J.access(r, t, (i || 0) + 1); + }, + teardown: function teardown() { + var r = this.ownerDocument || this, + i = J.access(r, t) - 1; + i ? J.access(r, t, i) : (r.removeEventListener(e, n, !0), J.remove(r, t)); + } + }; + }); + var Ct = e.location, + Et = Date.now(), + kt = /\?/; + + w.parseXML = function (t) { + var n; + if (!t || "string" != typeof t) return null; + + try { + n = new e.DOMParser().parseFromString(t, "text/xml"); + } catch (e) { + n = void 0; + } + + return n && !n.getElementsByTagName("parsererror").length || w.error("Invalid XML: " + t), n; + }; + + var St = /\[\]$/, + Dt = /\r?\n/g, + Nt = /^(?:submit|button|image|reset|file)$/i, + At = /^(?:input|select|textarea|keygen)/i; + + function jt(e, t, n, r) { + var i; + if (Array.isArray(t)) w.each(t, function (t, i) { + n || St.test(e) ? r(e, i) : jt(e + "[" + ("object" == _typeof(i) && null != i ? t : "") + "]", i, n, r); + });else if (n || "object" !== x(t)) r(e, t);else for (i in t) { + jt(e + "[" + i + "]", t[i], n, r); + } + } + + w.param = function (e, t) { + var n, + r = [], + i = function i(e, t) { + var n = g(t) ? t() : t; + r[r.length] = encodeURIComponent(e) + "=" + encodeURIComponent(null == n ? "" : n); + }; + + if (Array.isArray(e) || e.jquery && !w.isPlainObject(e)) w.each(e, function () { + i(this.name, this.value); + });else for (n in e) { + jt(n, e[n], t, i); + } + return r.join("&"); + }, w.fn.extend({ + serialize: function serialize() { + return w.param(this.serializeArray()); + }, + serializeArray: function serializeArray() { + return this.map(function () { + var e = w.prop(this, "elements"); + return e ? w.makeArray(e) : this; + }).filter(function () { + var e = this.type; + return this.name && !w(this).is(":disabled") && At.test(this.nodeName) && !Nt.test(e) && (this.checked || !pe.test(e)); + }).map(function (e, t) { + var n = w(this).val(); + return null == n ? null : Array.isArray(n) ? w.map(n, function (e) { + return { + name: t.name, + value: e.replace(Dt, "\r\n") + }; + }) : { + name: t.name, + value: n.replace(Dt, "\r\n") + }; + }).get(); + } + }); + var qt = /%20/g, + Lt = /#.*$/, + Ht = /([?&])_=[^&]*/, + Ot = /^(.*?):[ \t]*([^\r\n]*)$/gm, + Pt = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, + Mt = /^(?:GET|HEAD)$/, + Rt = /^\/\//, + It = {}, + Wt = {}, + $t = "*/".concat("*"), + Bt = r.createElement("a"); + Bt.href = Ct.href; + + function Ft(e) { + return function (t, n) { + "string" != typeof t && (n = t, t = "*"); + var r, + i = 0, + o = t.toLowerCase().match(M) || []; + if (g(n)) while (r = o[i++]) { + "+" === r[0] ? (r = r.slice(1) || "*", (e[r] = e[r] || []).unshift(n)) : (e[r] = e[r] || []).push(n); + } + }; + } + + function _t(e, t, n, r) { + var i = {}, + o = e === Wt; + + function a(s) { + var u; + return i[s] = !0, w.each(e[s] || [], function (e, s) { + var l = s(t, n, r); + return "string" != typeof l || o || i[l] ? o ? !(u = l) : void 0 : (t.dataTypes.unshift(l), a(l), !1); + }), u; + } + + return a(t.dataTypes[0]) || !i["*"] && a("*"); + } + + function zt(e, t) { + var n, + r, + i = w.ajaxSettings.flatOptions || {}; + + for (n in t) { + void 0 !== t[n] && ((i[n] ? e : r || (r = {}))[n] = t[n]); + } + + return r && w.extend(!0, e, r), e; + } + + function Xt(e, t, n) { + var r, + i, + o, + a, + s = e.contents, + u = e.dataTypes; + + while ("*" === u[0]) { + u.shift(), void 0 === r && (r = e.mimeType || t.getResponseHeader("Content-Type")); + } + + if (r) for (i in s) { + if (s[i] && s[i].test(r)) { + u.unshift(i); + break; + } + } + if (u[0] in n) o = u[0];else { + for (i in n) { + if (!u[0] || e.converters[i + " " + u[0]]) { + o = i; + break; + } + + a || (a = i); + } + + o = o || a; + } + if (o) return o !== u[0] && u.unshift(o), n[o]; + } + + function Ut(e, t, n, r) { + var i, + o, + a, + s, + u, + l = {}, + c = e.dataTypes.slice(); + if (c[1]) for (a in e.converters) { + l[a.toLowerCase()] = e.converters[a]; + } + o = c.shift(); + + while (o) { + if (e.responseFields[o] && (n[e.responseFields[o]] = t), !u && r && e.dataFilter && (t = e.dataFilter(t, e.dataType)), u = o, o = c.shift()) if ("*" === o) o = u;else if ("*" !== u && u !== o) { + if (!(a = l[u + " " + o] || l["* " + o])) for (i in l) { + if ((s = i.split(" "))[1] === o && (a = l[u + " " + s[0]] || l["* " + s[0]])) { + !0 === a ? a = l[i] : !0 !== l[i] && (o = s[0], c.unshift(s[1])); + break; + } + } + if (!0 !== a) if (a && e["throws"]) t = a(t);else try { + t = a(t); + } catch (e) { + return { + state: "parsererror", + error: a ? e : "No conversion from " + u + " to " + o + }; + } + } + } + + return { + state: "success", + data: t + }; + } + + w.extend({ + active: 0, + lastModified: {}, + etag: {}, + ajaxSettings: { + url: Ct.href, + type: "GET", + isLocal: Pt.test(Ct.protocol), + global: !0, + processData: !0, + async: !0, + contentType: "application/x-www-form-urlencoded; charset=UTF-8", + accepts: { + "*": $t, + text: "text/plain", + html: "text/html", + xml: "application/xml, text/xml", + json: "application/json, text/javascript" + }, + contents: { + xml: /\bxml\b/, + html: /\bhtml/, + json: /\bjson\b/ + }, + responseFields: { + xml: "responseXML", + text: "responseText", + json: "responseJSON" + }, + converters: { + "* text": String, + "text html": !0, + "text json": JSON.parse, + "text xml": w.parseXML + }, + flatOptions: { + url: !0, + context: !0 + } + }, + ajaxSetup: function ajaxSetup(e, t) { + return t ? zt(zt(e, w.ajaxSettings), t) : zt(w.ajaxSettings, e); + }, + ajaxPrefilter: Ft(It), + ajaxTransport: Ft(Wt), + ajax: function ajax(t, n) { + "object" == _typeof(t) && (n = t, t = void 0), n = n || {}; + var i, + o, + a, + s, + u, + l, + c, + f, + p, + d, + h = w.ajaxSetup({}, n), + g = h.context || h, + y = h.context && (g.nodeType || g.jquery) ? w(g) : w.event, + v = w.Deferred(), + m = w.Callbacks("once memory"), + x = h.statusCode || {}, + b = {}, + T = {}, + C = "canceled", + E = { + readyState: 0, + getResponseHeader: function getResponseHeader(e) { + var t; + + if (c) { + if (!s) { + s = {}; + + while (t = Ot.exec(a)) { + s[t[1].toLowerCase()] = t[2]; + } + } + + t = s[e.toLowerCase()]; + } + + return null == t ? null : t; + }, + getAllResponseHeaders: function getAllResponseHeaders() { + return c ? a : null; + }, + setRequestHeader: function setRequestHeader(e, t) { + return null == c && (e = T[e.toLowerCase()] = T[e.toLowerCase()] || e, b[e] = t), this; + }, + overrideMimeType: function overrideMimeType(e) { + return null == c && (h.mimeType = e), this; + }, + statusCode: function statusCode(e) { + var t; + if (e) if (c) E.always(e[E.status]);else for (t in e) { + x[t] = [x[t], e[t]]; + } + return this; + }, + abort: function abort(e) { + var t = e || C; + return i && i.abort(t), k(0, t), this; + } + }; + + if (v.promise(E), h.url = ((t || h.url || Ct.href) + "").replace(Rt, Ct.protocol + "//"), h.type = n.method || n.type || h.method || h.type, h.dataTypes = (h.dataType || "*").toLowerCase().match(M) || [""], null == h.crossDomain) { + l = r.createElement("a"); + + try { + l.href = h.url, l.href = l.href, h.crossDomain = Bt.protocol + "//" + Bt.host != l.protocol + "//" + l.host; + } catch (e) { + h.crossDomain = !0; + } + } + + if (h.data && h.processData && "string" != typeof h.data && (h.data = w.param(h.data, h.traditional)), _t(It, h, n, E), c) return E; + (f = w.event && h.global) && 0 == w.active++ && w.event.trigger("ajaxStart"), h.type = h.type.toUpperCase(), h.hasContent = !Mt.test(h.type), o = h.url.replace(Lt, ""), h.hasContent ? h.data && h.processData && 0 === (h.contentType || "").indexOf("application/x-www-form-urlencoded") && (h.data = h.data.replace(qt, "+")) : (d = h.url.slice(o.length), h.data && (h.processData || "string" == typeof h.data) && (o += (kt.test(o) ? "&" : "?") + h.data, delete h.data), !1 === h.cache && (o = o.replace(Ht, "$1"), d = (kt.test(o) ? "&" : "?") + "_=" + Et++ + d), h.url = o + d), h.ifModified && (w.lastModified[o] && E.setRequestHeader("If-Modified-Since", w.lastModified[o]), w.etag[o] && E.setRequestHeader("If-None-Match", w.etag[o])), (h.data && h.hasContent && !1 !== h.contentType || n.contentType) && E.setRequestHeader("Content-Type", h.contentType), E.setRequestHeader("Accept", h.dataTypes[0] && h.accepts[h.dataTypes[0]] ? h.accepts[h.dataTypes[0]] + ("*" !== h.dataTypes[0] ? ", " + $t + "; q=0.01" : "") : h.accepts["*"]); + + for (p in h.headers) { + E.setRequestHeader(p, h.headers[p]); + } + + if (h.beforeSend && (!1 === h.beforeSend.call(g, E, h) || c)) return E.abort(); + + if (C = "abort", m.add(h.complete), E.done(h.success), E.fail(h.error), i = _t(Wt, h, n, E)) { + if (E.readyState = 1, f && y.trigger("ajaxSend", [E, h]), c) return E; + h.async && h.timeout > 0 && (u = e.setTimeout(function () { + E.abort("timeout"); + }, h.timeout)); + + try { + c = !1, i.send(b, k); + } catch (e) { + if (c) throw e; + k(-1, e); + } + } else k(-1, "No Transport"); + + function k(t, n, r, s) { + var l, + p, + d, + b, + T, + C = n; + c || (c = !0, u && e.clearTimeout(u), i = void 0, a = s || "", E.readyState = t > 0 ? 4 : 0, l = t >= 200 && t < 300 || 304 === t, r && (b = Xt(h, E, r)), b = Ut(h, b, E, l), l ? (h.ifModified && ((T = E.getResponseHeader("Last-Modified")) && (w.lastModified[o] = T), (T = E.getResponseHeader("etag")) && (w.etag[o] = T)), 204 === t || "HEAD" === h.type ? C = "nocontent" : 304 === t ? C = "notmodified" : (C = b.state, p = b.data, l = !(d = b.error))) : (d = C, !t && C || (C = "error", t < 0 && (t = 0))), E.status = t, E.statusText = (n || C) + "", l ? v.resolveWith(g, [p, C, E]) : v.rejectWith(g, [E, C, d]), E.statusCode(x), x = void 0, f && y.trigger(l ? "ajaxSuccess" : "ajaxError", [E, h, l ? p : d]), m.fireWith(g, [E, C]), f && (y.trigger("ajaxComplete", [E, h]), --w.active || w.event.trigger("ajaxStop"))); + } + + return E; + }, + getJSON: function getJSON(e, t, n) { + return w.get(e, t, n, "json"); + }, + getScript: function getScript(e, t) { + return w.get(e, void 0, t, "script"); + } + }), w.each(["get", "post"], function (e, t) { + w[t] = function (e, n, r, i) { + return g(n) && (i = i || r, r = n, n = void 0), w.ajax(w.extend({ + url: e, + type: t, + dataType: i, + data: n, + success: r + }, w.isPlainObject(e) && e)); + }; + }), w._evalUrl = function (e) { + return w.ajax({ + url: e, + type: "GET", + dataType: "script", + cache: !0, + async: !1, + global: !1, + "throws": !0 + }); + }, w.fn.extend({ + wrapAll: function wrapAll(e) { + var t; + return this[0] && (g(e) && (e = e.call(this[0])), t = w(e, this[0].ownerDocument).eq(0).clone(!0), this[0].parentNode && t.insertBefore(this[0]), t.map(function () { + var e = this; + + while (e.firstElementChild) { + e = e.firstElementChild; + } + + return e; + }).append(this)), this; + }, + wrapInner: function wrapInner(e) { + return g(e) ? this.each(function (t) { + w(this).wrapInner(e.call(this, t)); + }) : this.each(function () { + var t = w(this), + n = t.contents(); + n.length ? n.wrapAll(e) : t.append(e); + }); + }, + wrap: function wrap(e) { + var t = g(e); + return this.each(function (n) { + w(this).wrapAll(t ? e.call(this, n) : e); + }); + }, + unwrap: function unwrap(e) { + return this.parent(e).not("body").each(function () { + w(this).replaceWith(this.childNodes); + }), this; + } + }), w.expr.pseudos.hidden = function (e) { + return !w.expr.pseudos.visible(e); + }, w.expr.pseudos.visible = function (e) { + return !!(e.offsetWidth || e.offsetHeight || e.getClientRects().length); + }, w.ajaxSettings.xhr = function () { + try { + return new e.XMLHttpRequest(); + } catch (e) {} + }; + var Vt = { + 0: 200, + 1223: 204 + }, + Gt = w.ajaxSettings.xhr(); + h.cors = !!Gt && "withCredentials" in Gt, h.ajax = Gt = !!Gt, w.ajaxTransport(function (t) { + var _n, r; + + if (h.cors || Gt && !t.crossDomain) return { + send: function send(i, o) { + var a, + s = t.xhr(); + if (s.open(t.type, t.url, t.async, t.username, t.password), t.xhrFields) for (a in t.xhrFields) { + s[a] = t.xhrFields[a]; + } + t.mimeType && s.overrideMimeType && s.overrideMimeType(t.mimeType), t.crossDomain || i["X-Requested-With"] || (i["X-Requested-With"] = "XMLHttpRequest"); + + for (a in i) { + s.setRequestHeader(a, i[a]); + } + + _n = function n(e) { + return function () { + _n && (_n = r = s.onload = s.onerror = s.onabort = s.ontimeout = s.onreadystatechange = null, "abort" === e ? s.abort() : "error" === e ? "number" != typeof s.status ? o(0, "error") : o(s.status, s.statusText) : o(Vt[s.status] || s.status, s.statusText, "text" !== (s.responseType || "text") || "string" != typeof s.responseText ? { + binary: s.response + } : { + text: s.responseText + }, s.getAllResponseHeaders())); + }; + }, s.onload = _n(), r = s.onerror = s.ontimeout = _n("error"), void 0 !== s.onabort ? s.onabort = r : s.onreadystatechange = function () { + 4 === s.readyState && e.setTimeout(function () { + _n && r(); + }); + }, _n = _n("abort"); + + try { + s.send(t.hasContent && t.data || null); + } catch (e) { + if (_n) throw e; + } + }, + abort: function abort() { + _n && _n(); + } + }; + }), w.ajaxPrefilter(function (e) { + e.crossDomain && (e.contents.script = !1); + }), w.ajaxSetup({ + accepts: { + script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" + }, + contents: { + script: /\b(?:java|ecma)script\b/ + }, + converters: { + "text script": function textScript(e) { + return w.globalEval(e), e; + } + } + }), w.ajaxPrefilter("script", function (e) { + void 0 === e.cache && (e.cache = !1), e.crossDomain && (e.type = "GET"); + }), w.ajaxTransport("script", function (e) { + if (e.crossDomain) { + var t, _n2; + + return { + send: function send(i, o) { + t = w("