/*----------------- Novi css chatbota -------------------*/

/*
  VAŽNO:
  Ovaj CSS je scopean tako da ne mijenja globalne Bootstrap klase aplikacije.
  Izbjegavati globalne selektore kao:
  .modal, .modal-content, .modal-header, .btn-success, .btn-primary,
  .bg-primary, .text-primary, body, *, .hidden
*/

/* Ako je potrebno zbog layouta */
.layout-main-wrapper {
  z-index: initial !important;
}

/* Launcher */
#chatbot-launcher {
  position: fixed;
  bottom: 100px;
  right: 20px;
  width: 85px;
  height: 85px;
  /*background-color: var(--app-color-primary);*/
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  z-index: 1000;
  transition: transform 0.3s;
  /*box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);*/
  overflow: hidden;
}

#chatbot-launcher img {
  /*width: 75%;*/
  /*height: 75%;*/
  object-fit: contain;
}

#chatbot-launcher:hover {
  transform: scale(1.1);
}

.notification-dot {
  position: absolute;
  top: 0;
  right: 0;
  width: 15px;
  height: 15px;
  background-color: red;
  border-radius: 50%;
  border: 2px solid white;
}

/* Balončić početne poruke iznad ikone */
#chatbot-bubble,
.chatbot-bubble {
  position: fixed;
  right: 20px;
  bottom: 190px;
  max-width: 280px;
  background: #ffffff;
  color: #222;
  padding: 10px 14px;
  border-radius: 12px;
  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.25);
  z-index: 1001;
  font-size: 14px;
  line-height: 1.35;
  max-height: 350px;
}

#chatbot-bubble::after,
.chatbot-bubble::after {
  content: "";
  position: absolute;
  bottom: -8px;
  right: 26px;
  border-width: 8px 8px 0 8px;
  border-style: solid;
  border-color: #ffffff transparent transparent transparent;
  filter: drop-shadow(0 -1px 1px rgba(0, 0, 0, 0.1));
}

/* Bounce animation */
@keyframes bounce {
  0%, 20%, 50%, 80%, 100% {
    transform: translateY(0);
  }

  40% {
    transform: translateY(-20px);
  }

  60% {
    transform: translateY(-10px);
  }
}

#chatbot-launcher.bounce,
.bounce {
  animation: bounce 2s infinite;
}

/* Backdrop za chatbot prozor */
#chat-backdrop {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background-color: rgba(0, 0, 0, 0.5);
  z-index: 998;
}

/* Glavni chat container */
#chat-container {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 600px;
  max-width: 90vw;
  height: 700px;
  max-height: 85vh;
  margin-top: 0;
  border-radius: 10px;
  background-color: rgba(0, 0, 0, 0.85);
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.5);
  display: flex;
  flex-direction: column;
  z-index: 999;
}

/* Chat header */
#chat-header {
  color: #fff;
  padding: 10px 15px;
  border-top-left-radius: 10px;
  border-top-right-radius: 10px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 1rem;
  font-weight: bold;
}

#chat-header button,
#chat-container .navbar-buttons-mobile button {
  border: none;
  background: none;
  color: #fff;
  font-size: 16px;
  cursor: pointer;
}

/* Suggested questions */
#suggested-questions-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

#chat-container .example-question,
#floating-questions .example-question,
.foi-chatbot-modal .example-question {
  background-color: var(--app-color-primary);
  color: white;
  border: none;
  padding: 10px 15px;
  border-radius: 10px;
  font-size: 15px;
  cursor: pointer;
  text-align: left;
  transition: background-color 0.2s;
  width: 100%;
  margin-bottom: 5px;
}

#chat-container .example-question:hover,
#floating-questions .example-question:hover,
.foi-chatbot-modal .example-question:hover {
  background-color: var(--app-color-primary-hover);
}

#floating-questions .example-question-float {
  padding: 10px;
  text-align: center;
}

/* Chat window */
#chat-window {
  flex-grow: 1;
  overflow-y: auto;
  padding: 20px 10px 10px;
  background-color: #000;
}

#chat-window .message {
  display: flex;
  align-items: flex-start;
  margin-bottom: 10px;
}

#chat-window .message.user {
  flex-direction: row-reverse;
  text-align: right;
}

#chat-window .message.bot {
  text-align: left;
}

#chat-window .message .icon {
  margin: 0 10px;
  font-size: 20px;
}

#chat-window .message .text {
  max-width: 70%;
  padding: 10px;
  border-radius: 10px;
  background-color: #f1f1f1;
  font-size: 14px;
  line-height: 1.5;
}

#chat-window .message.user .text {
  background-color: var(--app-color-primary) !important;
  color: #fff;
}

#chat-window .bot-message,
#chat-container .bot-message {
  background: none;
  color: #fff;
  padding: 10px;
}

#chat-window .user-message,
#chat-container .user-message {
  background: none !important;
  color: #fff !important;
}

#chat-container .robot-icon {
  color: #fff !important;
}

/* Chat input */
#chat-input {
  display: flex;
  padding: 10px;
  border-top: 1px solid #555;
}

#chat-input input {
  flex: 1;
  border: 1px solid #ddd;
  border-radius: 5px;
  padding: 10px;
}

#chat-input button {
  margin-left: 5px;
  border: none;
  padding: 10px 15px;
  background-color: var(--app-color-primary);
  color: #fff;
  border-radius: 5px;
  cursor: pointer;
}

#chat-input button i {
  font-size: 16px;
}

/* Recording */
#chat-recording {
  background-color: #000;
}

/* Question section */
#question-section {
  width: 500px;
  height: 600px;
  border: 1px solid #222;
  border-radius: 10px;
  background-color: rgba(0, 0, 0, 0.9);
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
  display: flex;
  color: #fff;
  flex-direction: column;
  z-index: 1000;
}

/* Chatbot modal only */
#foiChatbotModal {
  z-index: 1055 !important;
}

.foi-chatbot-modal .modal-header {
  background: var(--app-color-primary) !important;
  border-bottom: 0 !important;
}

.foi-chatbot-modal .modal-content {
  background-color: black;
  color: white;
  opacity: 1 !important;
}

.foi-chatbot-modal .modal-body {
  color: white;
}

.foi-chatbot-modal .modal-content .close {
  color: #fff;
  opacity: 1;
}

.foi-chatbot-modal .question-div-modal {
  padding: 0 !important;
}

.foi-chatbot-modal .question-div-modal a {
  color: #fff !important;
}

.foi-chatbot-modal .question-div-inner {
  border-radius: 8px;
  padding: 10px;
  font-weight: bold;
  white-space: normal;
  word-wrap: break-word;
  display: block;
}

.foi-chatbot-modal .question-div {
  background: #000;
  border: none;
  cursor: pointer;
  font-weight: bold;
  justify-content: center;
  align-items: start;
  border-radius: 8px;
  opacity: 1;
  margin-bottom: 10px;
  padding: 10px;
}

.foi-chatbot-modal .question-div a {
  color: white !important;
  text-decoration: none;
  white-space: normal;
  word-wrap: break-word;
  display: block;
}

.foi-chatbot-modal .question-div a:hover {
  text-decoration: none;
  background: linear-gradient(45deg, var(--app-color-primary), var(--app-color-primary-hover));
}

/* Image modal only */
#imageModal {
  z-index: 1055 !important;
}

#imageModal .modal-header {
  background: var(--app-color-primary) !important;
  border-bottom: 0 !important;
}

#imageModal .modal-content {
  background-color: #000;
  color: #fff;
  border: 1px solid #444;
  opacity: 1 !important;
}

#imageModal .modal-body {
  padding: 0;
}

#imageModal .btn-close-white,
#imageModal .close {
  padding: 0.5rem;
  margin: 0;
  font-size: 0.8rem;
  color: #fff;
  opacity: 1;
}

/* Button focus samo za chatbot */
#chat-container .btn.focus,
#chat-container .btn:focus,
.foi-chatbot-modal .btn.focus,
.foi-chatbot-modal .btn:focus,
#imageModal .btn.focus,
#imageModal .btn:focus {
  box-shadow: none !important;
}

/* Bootstrap helper klase samo unutar chatbota */
#chat-container .bg-primary,
.foi-chatbot-modal .bg-primary {
  background: var(--app-color-primary) !important;
  border: none;
  color: white;
  padding: 10px 20px;
  font-size: 16px;
  border-radius: 5px;
  cursor: auto;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

#chat-container .text-primary,
.foi-chatbot-modal .text-primary {
  color: var(--app-color-primary) !important;
}

#chat-container .btn-primary-main,
.foi-chatbot-modal .btn-primary-main {
  background: var(--app-color-primary);
  border: none;
  color: white;
  padding: 10px 20px;
  font-size: 16px;
  border-radius: 5px;
  cursor: pointer;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

#chat-container .btn-primary:hover,
.foi-chatbot-modal .btn-primary:hover {
  background: #015d71 !important;
  transform: scale(1.0);
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
}

/* Focus effect samo unutar chatbota */
#chat-container .btn-primary:focus,
.foi-chatbot-modal .btn-primary:focus {
  background: var(--app-color-primary) !important;
  outline: none;
  box-shadow: 0 0 10px rgba(0, 106, 141, 0.8);
}

#chat-container .btn-success,
.foi-chatbot-modal .btn-success {
  background-color: var(--app-color-primary) !important;
  border-color: var(--app-color-primary) !important;
}

#chat-container .send-btn,
.foi-chatbot-modal .send-btn {
  background-color: var(--app-color-primary) !important;
  border: 0;
}

#chat-container .btn-switch.on > .switched-off,
#chat-container .btn-switch.off > .switched-on {
  display: none;
}

/* Floating questions */
#floating-questions .floating-div {
  position: absolute;
  width: 300px;
  height: 150px;
  background: var(--app-color-primary);
  border: none;
  color: white;
  cursor: pointer;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  font-size: 18px;
  font-weight: bold;
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 15px;
  animation: float 80s linear infinite;
  box-sizing: border-box;
  opacity: 0.9;
}

@keyframes float {
  0% {
    transform: translate(0, 0);
  }

  25% {
    transform: translate(calc(50vw - 300px), calc(50vh - 50px));
  }

  50% {
    transform: translate(calc(-50vw + 300px), calc(50vh - 50px));
  }

  75% {
    transform: translate(calc(50vw - 300px), calc(-50vh + 50px));
  }

  100% {
    transform: translate(0, 0);
  }
}

/* Video background, ako se koristi samo uz chatbot stranicu */
#video-background {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: -1;
}

/* Chat-specific utility */
#chat-container .hidden,
#floating-questions.hidden,
#chat-backdrop.hidden,
#chatbot-bubble.hidden,
.current-user.hidden,
.current-user-location.hidden {
  display: none !important;
}

#chat-container .fade-out,
#chatbot-bubble.fade-out {
  opacity: 0;
  transition: opacity 1s ease-out;
}

/* Scrollbar only inside chat */
#chat-container ::-webkit-scrollbar,
.foi-chatbot-modal .modal-body::-webkit-scrollbar {
  width: 12px;
}

#chat-container ::-webkit-scrollbar-track,
.foi-chatbot-modal .modal-body::-webkit-scrollbar-track {
  background-color: #e3f1f4;
  border-radius: 10px;
  box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.1);
}

#chat-container ::-webkit-scrollbar-thumb,
.foi-chatbot-modal .modal-body::-webkit-scrollbar-thumb {
  background-color: var(--app-color-primary);
  border-radius: 10px;
  border: 2px solid #e3f1f4;
}

#chat-container ::-webkit-scrollbar-thumb:hover,
.foi-chatbot-modal .modal-body::-webkit-scrollbar-thumb:hover {
  background-color: #005366;
}

#chat-container,
#chat-container *,
.foi-chatbot-modal,
.foi-chatbot-modal * {
  scrollbar-width: thin;
  scrollbar-color: var(--app-color-primary) #e3f1f4;
}

/* Chat bubble */
#chat-container .chat-bubble {
  padding: 16px 28px;
  border-radius: 10px 10px 10px 2px;
  display: inline-block;
}

/* Typing animation */
#chat-container .typing {
  align-items: center;
  display: flex;
  justify-content: center;
  height: 25px;
}

#chat-container .typing .dot {
  animation: mercuryTypingAnimation 1.8s infinite ease-in-out;
  border-radius: 50%;
  height: 7px;
  margin-right: 4px;
  vertical-align: middle;
  width: 7px;
  display: inline-block;
  background-color: var(--app-color-primary) !important;
  opacity: 0.6;
}

#chat-container .typing .dot:nth-child(1) {
  animation-delay: 200ms;
}

#chat-container .typing .dot:nth-child(2) {
  animation-delay: 300ms;
}

#chat-container .typing .dot:nth-child(3) {
  animation-delay: 400ms;
}

#chat-container .typing .dot:last-child {
  margin-right: 0;
}

@keyframes mercuryTypingAnimation {
  0%, 60%, 100% {
    transform: translateY(0);
    opacity: 0.6;
  }

  30% {
    transform: translateY(-7px);
    opacity: 1;
  }
}

/* Word break only inside chat */
#chat-container .word-break-all {
  word-break: break-all;
}

/* Thumbnails */
#chat-container .chat-thumbnail {
  transition: transform 0.2s ease;
  border: 1px solid rgba(255, 255, 255, 0.2);
}

#chat-container .chat-thumbnail:hover {
  transform: scale(1.05);
  border-color: var(--app-color-primary);
}

/* Drupal / Olivero specific block, ako se koristi */
#block-olivero-sub-theme-foichatbot {
  position: absolute;
}

#block-olivero-sub-theme-foichatbot .contextual {
  display: none;
}

/* Light Theme */
.light-theme #chat-container {
  background-color: #ffffff;
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.1);
}

.light-theme #chat-window,
.light-theme #chat-recording {
  background-color: #ffffff;
}

.light-theme #chat-input {
  background-color: #ffffff;
  border-top: 1px solid #eee;
}

.light-theme #chat-container .bot-message,
.light-theme #chat-input input {
  background-color: #f9f9f9;
  color: #333;
  border: 1px solid #ddd;
}

.light-theme #chat-container .bot-message,
.light-theme #chat-container .user-message,
.light-theme #chat-container .text {
  color: #333 !important;
}

.light-theme #chat-container .robot-icon,
.light-theme #chat-container .message.bot .icon i,
.light-theme #chat-container .message.user .icon i,
.light-theme #chat-container .fa-sparkles {
  color: var(--app-color-primary) !important;
}

.light-theme #chat-container .fa-sparkles::before {
  content: "" !important;
  display: inline-block;
  width: 1.5rem;
  height: 1.5rem;
  background-image: url(/build/images/chatbot_foi.fd217589.png);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  vertical-align: middle;
}

.light-theme #chat-header {
  border-bottom: 1px solid rgba(0, 0, 0, 0.05);
}

.light-theme .foi-chatbot-modal .modal-content {
  background-color: #ffffff;
  color: #333;
}

.light-theme .foi-chatbot-modal .question-div {
  background: #f9f9f9;
  border: 1px solid #ddd;
}

.light-theme .foi-chatbot-modal .question-div a {
  color: #333 !important;
  white-space: normal;
  word-wrap: break-word;
  display: block;
}

.light-theme #chat-header,
.light-theme #chat-header button {
  color: #fff !important;
}

.light-theme .foi-chatbot-modal .modal-header h5,
.light-theme .foi-chatbot-modal .modal-header .modal-title,
.light-theme .foi-chatbot-modal .modal-header {
  color: #ffffff !important;
}

.light-theme .foi-chatbot-modal .modal-content .close {
  filter: invert(1) grayscale(100%) brightness(200%);
}

.light-theme .foi-chatbot-modal .question-div-inner:hover {
  color: #fff !important;
}

.background-dark-green-500 {
  background: var(--app-color-primary);
}

/* Responsive */
@media (max-width: 768px) {
  #chatbot-bubble,
  .chatbot-bubble {
    right: 16px;
    bottom: 106px;
    max-width: 80vw;
    font-size: 15px;
  }

  #chatbot-bubble::after,
  .chatbot-bubble::after {
    right: 22px;
  }

  #chatbot-launcher {
    bottom: 20px;
  }

  body .accessibility-trigger.aioa_bottom_right button {
    left: 30px !important;
    right: 0;
  }

  #chat-container {
    top: 0 !important;
    left: 0 !important;
    transform: none !important;
    bottom: 0 !important;
    right: 0 !important;
    width: 100% !important;
    height: 100dvh !important;
    max-width: none !important;
    max-height: none !important;
    border-radius: 0 !important;
    margin-top: 0;
    padding-top: 0;
    padding-bottom: 0;
  }

  #chat-header {
    border-radius: 0 !important;
    display: flex !important;
    padding: 10px 15px;
  }

  #chat-input {
    border-radius: 0 !important;
  }

  #question-section {
    width: 100%;
    height: 100%;
    padding-top: 3rem;
    z-index: 8;
  }
}



@media (max-width: 389px) {
  #chat-container {
    padding-bottom: 12dvh !important;
  }
}

@media (max-width: 600px) {
  #chat-container .about-us-header {
    font-size: 2.2rem;
  }
}

@media (min-width: 768px) and (max-width: 1010px) {
  #chat-container {
    width: 85%;
    margin: 20px auto 0;
  }
}

/*
  Ove klase su prije bile globalne:
  .logo, .navbar-brand-large, .navbar-brand-mobile
  Ako ti stvarno trebaju za chatbot, dodaj wrapper ispred njih.
*/
@media (max-width: 768px) {
  #chat-container .logo {
    display: none;
  }
}

@media (max-width: 991px) {
  #chat-container .navbar-brand-large {
    display: none !important;
  }

  #chat-container .navbar-brand-mobile {
    display: flex !important;
  }
}

/*---------- End of Novi css chatbota -------------------*/

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vY2hhdGJvdC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMERBQTBEOztBQUUxRDs7Ozs7O0NBTUM7O0FBRUQsaUNBQWlDO0FBQ2pDO0VBQ0UsMkJBQTJCO0FBQzdCOztBQUVBLGFBQWE7QUFDYjtFQUNFLGVBQWU7RUFDZixhQUFhO0VBQ2IsV0FBVztFQUNYLFdBQVc7RUFDWCxZQUFZO0VBQ1osOENBQThDO0VBQzlDLGtCQUFrQjtFQUNsQixhQUFhO0VBQ2IsdUJBQXVCO0VBQ3ZCLG1CQUFtQjtFQUNuQixlQUFlO0VBQ2YsYUFBYTtFQUNiLDBCQUEwQjtFQUMxQiw2Q0FBNkM7RUFDN0MsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0UsY0FBYztFQUNkLGVBQWU7RUFDZixtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSxxQkFBcUI7QUFDdkI7O0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIsTUFBTTtFQUNOLFFBQVE7RUFDUixXQUFXO0VBQ1gsWUFBWTtFQUNaLHFCQUFxQjtFQUNyQixrQkFBa0I7RUFDbEIsdUJBQXVCO0FBQ3pCOztBQUVBLHdDQUF3QztBQUN4Qzs7RUFFRSxlQUFlO0VBQ2YsV0FBVztFQUNYLGFBQWE7RUFDYixnQkFBZ0I7RUFDaEIsbUJBQW1CO0VBQ25CLFdBQVc7RUFDWCxrQkFBa0I7RUFDbEIsbUJBQW1CO0VBQ25CLDBDQUEwQztFQUMxQyxhQUFhO0VBQ2IsZUFBZTtFQUNmLGlCQUFpQjtFQUNqQixpQkFBaUI7QUFDbkI7O0FBRUE7O0VBRUUsV0FBVztFQUNYLGtCQUFrQjtFQUNsQixZQUFZO0VBQ1osV0FBVztFQUNYLDJCQUEyQjtFQUMzQixtQkFBbUI7RUFDbkIseURBQXlEO0VBQ3pELGtEQUFrRDtBQUNwRDs7QUFFQSxxQkFBcUI7QUFDckI7RUFDRTtJQUNFLHdCQUF3QjtFQUMxQjs7RUFFQTtJQUNFLDRCQUE0QjtFQUM5Qjs7RUFFQTtJQUNFLDRCQUE0QjtFQUM5QjtBQUNGOztBQUVBOztFQUVFLDZCQUE2QjtB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QUVBO0VBQ0U7SUFDRSx3QkFBd0I7RUFDMUI7O0VBRUE7SUFDRSx3QkFBd0I7RUFDMUI7QUFDRjs7QUFFQSwwREFBMEQsQyIsImZpbGUiOiJjaGF0Ym90LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qLS0tLS0tLS0tLS0tLS0tLS0gTm92aSBjc3MgY2hhdGJvdGEgLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8qXG4gIFZBxb1OTzpcbiAgT3ZhaiBDU1MgamUgc2NvcGVhbiB0YWtvIGRhIG5lIG1pamVuamEgZ2xvYmFsbmUgQm9vdHN0cmFwIGtsYXNlIGFwbGlrYWNpamUuXG4gIEl6YmplZ2F2YXRpIGdsb2JhbG5lIHNlbGVrdG9yZSBrYW86XG4gIC5tb2RhbCwgLm1vZGFsLWNvbnRlbnQsIC5tb2RhbC1oZWFkZXIsIC5idG4tc3VjY2VzcywgLmJ0bi1wcmltYXJ5LFxuICAuYmctcHJpbWFyeSwgLnRleHQtcHJpbWFyeSwgYm9keSwgKiwgLmhpZGRlblxuKi9cblxuLyogQWtvIGplIHBvdHJlYm5vIHpib2cgbGF5b3V0YSAqL1xuLmxheW91dC1tYWluLXdyYXBwZXIge1xuICB6LWluZGV4OiBpbml0aWFsICFpbXBvcnRhbnQ7XG59XG5cbi8qIExhdW5jaGVyICovXG4jY2hhdGJvdC1sYXVuY2hlciB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgYm90dG9tOiAxMDBweDtcbiAgcmlnaHQ6IDIwcHg7XG4gIHdpZHRoOiA4NXB4O1xuICBoZWlnaHQ6IDg1cHg7XG4gIC8qYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYXBwLWNvbG9yLXByaW1hcnkpOyovXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgei1pbmRleDogMTAwMDtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3M7XG4gIC8qYm94LXNoYWRvdzogMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMyk7Ki9cbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuI2NoYXRib3QtbGF1bmNoZXIgaW1nIHtcbiAgLyp3aWR0aDogNzUlOyovXG4gIC8qaGVpZ2h0OiA3NSU7Ki9cbiAgb2JqZWN0LWZpdDogY29udGFpbjtcbn1cblxuI2NoYXRib3QtbGF1bmNoZXI6aG92ZXIge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG59XG5cbi5ub3RpZmljYXRpb24tZG90IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICB3aWR0aDogMTVweDtcbiAgaGVpZ2h0OiAxNXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYm9yZGVyOiAycHggc29saWQgd2hpdGU7XG59XG5cbi8qIEJhbG9uxI1pxIcgcG/EjWV0bmUgcG9ydWtlIGl6bmFkIGlrb25lICovXG4jY2hhdGJvdC1idWJibGUsXG4uY2hhdGJvdC1idWJibGUge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHJpZ2h0OiAyMHB4O1xuICBib3R0b206IDE5MHB4O1xuICBtYXgtd2lkdGg6IDI4MHB4O1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICBjb2xvcjogIzIyMjtcbiAgcGFkZGluZzogMTBweCAxNHB4O1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBib3gtc2hhZG93OiAwIDhweCAxOHB4IHJnYmEoMCwgMCwgMCwgMC4yNSk7XG4gIHotaW5kZXg6IDEwMDE7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDEuMzU7XG4gIG1heC1oZWlnaHQ6IDM1MHB4O1xufVxuXG4jY2hhdGJvdC1idWJibGU6OmFmdGVyLFxuLmNoYXRib3QtYnViYmxlOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAtOHB4O1xuICByaWdodDogMjZweDtcbiAgYm9yZGVyLXdpZHRoOiA4cHggOHB4IDAgOHB4O1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6ICNmZmZmZmYgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIGZpbHRlcjogZHJvcC1zaGFkb3coMCAtMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMSkpO1xufVxuXG4vKiBCb3VuY2UgYW5pbWF0aW9uICovXG5Aa2V5ZnJhbWVzIGJvdW5jZSB7XG4gIDAlLCAyMCUsIDUwJSwgODAlLCAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIH1cblxuICA0MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjBweCk7XG4gIH1cblxuICA2MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTBweCk7XG4gIH1cbn1cblxuI2NoYXRib3QtbGF1bmNoZXIuYm91bmNlLFxuLmJvdW5jZSB7XG4gIGFuaW1hdGlvbjogYm91bmNlIDJzIGluZmluaXRlO1xufVxuXG4vKiBCYWNrZHJvcCB6YSBjaGF0Ym90IHByb3pvciAqL1xuI2NoYXQtYmFja2Ryb3Age1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMHZ3O1xuICBoZWlnaHQ6IDEwMHZoO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gIHotaW5kZXg6IDk5ODtcbn1cblxuLyogR2xhdm5pIGNoYXQgY29udGFpbmVyICovXG4jY2hhdC1jb250YWluZXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICB3aWR0aDogNjAwcHg7XG4gIG1heC13aWR0aDogOTB2dztcbiAgaGVpZ2h0OiA3MDBweDtcbiAgbWF4LWhlaWdodDogODV2aDtcbiAgbWFyZ2luLXRvcDogMDtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg1KTtcbiAgYm94LXNoYWRvdzogMCA4cHggMTZweCByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHotaW5kZXg6IDk5OTtcbn1cblxuLyogQ2hhdCBoZWFkZXIgKi9cbiNjaGF0LWhlYWRlciB7XG4gIGNvbG9yOiAjZmZmO1xuICBwYWRkaW5nOiAxMHB4IDE1cHg7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDEwcHg7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAxMHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbiNjaGF0LWhlYWRlciBidXR0b24sXG4jY2hhdC1jb250YWluZXIgLm5hdmJhci1idXR0b25zLW1vYmlsZSBidXR0b24ge1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGNvbG9yOiAjZmZmO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLyogU3VnZ2VzdGVkIHF1ZXN0aW9ucyAqL1xuI3N1Z2dlc3RlZC1xdWVzdGlvbnMtbGlzdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMTBweDtcbn1cblxuI2NoYXQtY29udGFpbmVyIC5leGFtcGxlLXF1ZXN0aW9uLFxuI2Zsb2F0aW5nLXF1ZXN0aW9ucyAuZXhhbXBsZS1xdWVzdGlvbixcbi5mb2ktY2hhdGJvdC1tb2RhbCAuZXhhbXBsZS1xdWVzdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWFwcC1jb2xvci1wcmltYXJ5KTtcbiAgY29sb3I6IHdoaXRlO1xuICBib3JkZXI6IG5vbmU7XG4gIHBhZGRpbmc6IDEwcHggMTVweDtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4ycztcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbn1cblxuI2NoYXQtY29udGFpbmVyIC5leGFtcGxlLXF1ZXN0aW9uOmhvdmVyLFxuI2Zsb2F0aW5nLXF1ZXN0aW9ucyAuZXhhbXBsZS1xdWVzdGlvbjpob3Zlcixcbi5mb2ktY2hhdGJvdC1tb2RhbCAuZXhhbXBsZS1xdWVzdGlvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWFwcC1jb2xvci1wcmltYXJ5LWhvdmVyKTtcbn1cblxuI2Zsb2F0aW5nLXF1ZXN0aW9ucyAuZXhhbXBsZS1xdWVzdGlvbi1mbG9hdCB7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLyogQ2hhdCB3aW5kb3cgKi9cbiNjaGF0LXdpbmRvdyB7XG4gIGZsZXgtZ3JvdzogMTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgcGFkZGluZzogMjBweCAxMHB4IDEwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XG59XG5cbiNjaGF0LXdpbmRvdyAubWVzc2FnZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuXG4jY2hhdC13aW5kb3cgLm1lc3NhZ2UudXNlciB7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbiNjaGF0LXdpbmRvdyAubWVzc2FnZS5ib3Qge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4jY2hhdC13aW5kb3cgLm1lc3NhZ2UgLmljb24ge1xuICBtYXJnaW46IDAgMTBweDtcbiAgZm9udC1zaXplOiAyMHB4O1xufVxuXG4jY2hhdC13aW5kb3cgLm1lc3NhZ2UgLnRleHQge1xuICBtYXgtd2lkdGg6IDcwJTtcbiAgcGFkZGluZzogMTBweDtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjFmMTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMS41O1xufVxuXG4jY2hhdC13aW5kb3cgLm1lc3NhZ2UudXNlciAudGV4dCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWFwcC1jb2xvci1wcmltYXJ5KSAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZjtcbn1cblxuI2NoYXQtd2luZG93IC5ib3QtbWVzc2FnZSxcbiNjaGF0LWNvbnRhaW5lciAuYm90LW1lc3NhZ2Uge1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBjb2xvcjogI2ZmZjtcbiAgcGFkZGluZzogMTBweDtcbn1cblxuI2NoYXQtd2luZG93IC51c2VyLW1lc3NhZ2UsXG4jY2hhdC1jb250YWluZXIgLnVzZXItbWVzc2FnZSB7XG4gIGJhY2tncm91bmQ6IG5vbmUgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmYgIWltcG9ydGFudDtcbn1cblxuI2NoYXQtY29udGFpbmVyIC5yb2JvdC1pY29uIHtcbiAgY29sb3I6ICNmZmYgIWltcG9ydGFudDtcbn1cblxuLyogQ2hhdCBpbnB1dCAqL1xuI2NoYXQtaW5wdXQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBwYWRkaW5nOiAxMHB4O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgIzU1NTtcbn1cblxuI2NoYXQtaW5wdXQgaW5wdXQge1xuICBmbGV4OiAxO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIHBhZGRpbmc6IDEwcHg7XG59XG5cbiNjaGF0LWlucHV0IGJ1dHRvbiB7XG4gIG1hcmdpbi1sZWZ0OiA1cHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgcGFkZGluZzogMTBweCAxNXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1hcHAtY29sb3ItcHJpbWFyeSk7XG4gIGNvbG9yOiAjZmZmO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuI2NoYXQtaW5wdXQgYnV0dG9uIGkge1xuICBmb250LXNpemU6IDE2cHg7XG59XG5cbi8qIFJlY29yZGluZyAqL1xuI2NoYXQtcmVjb3JkaW5nIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbn1cblxuLyogUXVlc3Rpb24gc2VjdGlvbiAqL1xuI3F1ZXN0aW9uLXNlY3Rpb24ge1xuICB3aWR0aDogNTAwcHg7XG4gIGhlaWdodDogNjAwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMyMjI7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45KTtcbiAgYm94LXNoYWRvdzogMCA0cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgZGlzcGxheTogZmxleDtcbiAgY29sb3I6ICNmZmY7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHotaW5kZXg6IDEwMDA7XG59XG5cbi8qIENoYXRib3QgbW9kYWwgb25seSAqL1xuI2ZvaUNoYXRib3RNb2RhbCB7XG4gIHotaW5kZXg6IDEwNTUgIWltcG9ydGFudDtcbn1cblxuLmZvaS1jaGF0Ym90LW1vZGFsIC5tb2RhbC1oZWFkZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1hcHAtY29sb3ItcHJpbWFyeSkgIWltcG9ydGFudDtcbiAgYm9yZGVyLWJvdHRvbTogMCAhaW1wb3J0YW50O1xufVxuXG4uZm9pLWNoYXRib3QtbW9kYWwgLm1vZGFsLWNvbnRlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbiAgY29sb3I6IHdoaXRlO1xuICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG59XG5cbi5mb2ktY2hhdGJvdC1tb2RhbCAubW9kYWwtYm9keSB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cblxuLmZvaS1jaGF0Ym90LW1vZGFsIC5tb2RhbC1jb250ZW50IC5jbG9zZSB7XG4gIGNvbG9yOiAjZmZmO1xuICBvcGFjaXR5OiAxO1xufVxuXG4uZm9pLWNoYXRib3QtbW9kYWwgLnF1ZXN0aW9uLWRpdi1tb2RhbCB7XG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbn1cblxuLmZvaS1jaGF0Ym90LW1vZGFsIC5xdWVzdGlvbi1kaXYtbW9kYWwgYSB7XG4gIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7XG59XG5cbi5mb2ktY2hhdGJvdC1tb2RhbCAucXVlc3Rpb24tZGl2LWlubmVyIHtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBwYWRkaW5nOiAxMHB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmZvaS1jaGF0Ym90LW1vZGFsIC5xdWVzdGlvbi1kaXYge1xuICBiYWNrZ3JvdW5kOiAjMDAwO1xuICBib3JkZXI6IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogc3RhcnQ7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgb3BhY2l0eTogMTtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgcGFkZGluZzogMTBweDtcbn1cblxuLmZvaS1jaGF0Ym90LW1vZGFsIC5xdWVzdGlvbi1kaXYgYSB7XG4gIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5mb2ktY2hhdGJvdC1tb2RhbCAucXVlc3Rpb24tZGl2IGE6aG92ZXIge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg0NWRlZywgdmFyKC0tYXBwLWNvbG9yLXByaW1hcnkpLCB2YXIoLS1hcHAtY29sb3ItcHJpbWFyeS1ob3ZlcikpO1xufVxuXG4vKiBJbWFnZSBtb2RhbCBvbmx5ICovXG4jaW1hZ2VNb2RhbCB7XG4gIHotaW5kZXg6IDEwNTUgIWltcG9ydGFudDtcbn1cblxuI2ltYWdlTW9kYWwgLm1vZGFsLWhlYWRlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWFwcC1jb2xvci1wcmltYXJ5KSAhaW1wb3J0YW50O1xuICBib3JkZXItYm90dG9tOiAwICFpbXBvcnRhbnQ7XG59XG5cbiNpbWFnZU1vZGFsIC5tb2RhbC1jb250ZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbiAgY29sb3I6ICNmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICM0NDQ7XG4gIG9wYWNpdHk6IDEgIWltcG9ydGFudDtcbn1cblxuI2ltYWdlTW9kYWwgLm1vZGFsLWJvZHkge1xuICBwYWRkaW5nOiAwO1xufVxuXG4jaW1hZ2VNb2RhbCAuYnRuLWNsb3NlLXdoaXRlLFxuI2ltYWdlTW9kYWwgLmNsb3NlIHtcbiAgcGFkZGluZzogMC41cmVtO1xuICBtYXJnaW46IDA7XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xuICBjb2xvcjogI2ZmZjtcbiAgb3BhY2l0eTogMTtcbn1cblxuLyogQnV0dG9uIGZvY3VzIHNhbW8gemEgY2hhdGJvdCAqL1xuI2NoYXQtY29udGFpbmVyIC5idG4uZm9jdXMsXG4jY2hhdC1jb250YWluZXIgLmJ0bjpmb2N1cyxcbi5mb2ktY2hhdGJvdC1tb2RhbCAuYnRuLmZvY3VzLFxuLmZvaS1jaGF0Ym90LW1vZGFsIC5idG46Zm9jdXMsXG4jaW1hZ2VNb2RhbCAuYnRuLmZvY3VzLFxuI2ltYWdlTW9kYWwgLmJ0bjpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLyogQm9vdHN0cmFwIGhlbHBlciBrbGFzZSBzYW1vIHVudXRhciBjaGF0Ym90YSAqL1xuI2NoYXQtY29udGFpbmVyIC5iZy1wcmltYXJ5LFxuLmZvaS1jaGF0Ym90LW1vZGFsIC5iZy1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYXBwLWNvbG9yLXByaW1hcnkpICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgY29sb3I6IHdoaXRlO1xuICBwYWRkaW5nOiAxMHB4IDIwcHg7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBjdXJzb3I6IGF1dG87XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2UsIGJveC1zaGFkb3cgMC4ycyBlYXNlO1xufVxuXG4jY2hhdC1jb250YWluZXIgLnRleHQtcHJpbWFyeSxcbi5mb2ktY2hhdGJvdC1tb2RhbCAudGV4dC1wcmltYXJ5IHtcbiAgY29sb3I6IHZhcigtLWFwcC1jb2xvci1wcmltYXJ5KSAhaW1wb3J0YW50O1xufVxuXG4jY2hhdC1jb250YWluZXIgLmJ0bi1wcmltYXJ5LW1haW4sXG4uZm9pLWNoYXRib3QtbW9kYWwgLmJ0bi1wcmltYXJ5LW1haW4ge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1hcHAtY29sb3ItcHJpbWFyeSk7XG4gIGJvcmRlcjogbm9uZTtcbiAgY29sb3I6IHdoaXRlO1xuICBwYWRkaW5nOiAxMHB4IDIwcHg7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2UsIGJveC1zaGFkb3cgMC4ycyBlYXNlO1xufVxuXG4jY2hhdC1jb250YWluZXIgLmJ0bi1wcmltYXJ5OmhvdmVyLFxuLmZvaS1jaGF0Ym90LW1vZGFsIC5idG4tcHJpbWFyeTpob3ZlciB7XG4gIGJhY2tncm91bmQ6ICMwMTVkNzEgIWltcG9ydGFudDtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjApO1xuICBib3gtc2hhZG93OiAwIDRweCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbn1cblxuLyogRm9jdXMgZWZmZWN0IHNhbW8gdW51dGFyIGNoYXRib3RhICovXG4jY2hhdC1jb250YWluZXIgLmJ0bi1wcmltYXJ5OmZvY3VzLFxuLmZvaS1jaGF0Ym90LW1vZGFsIC5idG4tcHJpbWFyeTpmb2N1cyB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWFwcC1jb2xvci1wcmltYXJ5KSAhaW1wb3J0YW50O1xuICBvdXRsaW5lOiBub25lO1xuICBib3gtc2hhZG93OiAwIDAgMTBweCByZ2JhKDAsIDEwNiwgMTQxLCAwLjgpO1xufVxuXG4jY2hhdC1jb250YWluZXIgLmJ0bi1zdWNjZXNzLFxuLmZvaS1jaGF0Ym90LW1vZGFsIC5idG4tc3VjY2VzcyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWFwcC1jb2xvci1wcmltYXJ5KSAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6IHZhcigtLWFwcC1jb2xvci1wcmltYXJ5KSAhaW1wb3J0YW50O1xufVxuXG4jY2hhdC1jb250YWluZXIgLnNlbmQtYnRuLFxuLmZvaS1jaGF0Ym90LW1vZGFsIC5zZW5kLWJ0biB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWFwcC1jb2xvci1wcmltYXJ5KSAhaW1wb3J0YW50O1xuICBib3JkZXI6IDA7XG59XG5cbiNjaGF0LWNvbnRhaW5lciAuYnRuLXN3aXRjaC5vbiA+IC5zd2l0Y2hlZC1vZmYsXG4jY2hhdC1jb250YWluZXIgLmJ0bi1zd2l0Y2gub2ZmID4gLnN3aXRjaGVkLW9uIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogRmxvYXRpbmcgcXVlc3Rpb25zICovXG4jZmxvYXRpbmctcXVlc3Rpb25zIC5mbG9hdGluZy1kaXYge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAzMDBweDtcbiAgaGVpZ2h0OiAxNTBweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYXBwLWNvbG9yLXByaW1hcnkpO1xuICBib3JkZXI6IG5vbmU7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlLCBib3gtc2hhZG93IDAuMnMgZWFzZTtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDE1cHg7XG4gIGFuaW1hdGlvbjogZmxvYXQgODBzIGxpbmVhciBpbmZpbml0ZTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgb3BhY2l0eTogMC45O1xufVxuXG5Aa2V5ZnJhbWVzIGZsb2F0IHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICB9XG5cbiAgMjUlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZShjYWxjKDUwdncgLSAzMDBweCksIGNhbGMoNTB2aCAtIDUwcHgpKTtcbiAgfVxuXG4gIDUwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoY2FsYygtNTB2dyArIDMwMHB4KSwgY2FsYyg1MHZoIC0gNTBweCkpO1xuICB9XG5cbiAgNzUlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZShjYWxjKDUwdncgLSAzMDBweCksIGNhbGMoLTUwdmggKyA1MHB4KSk7XG4gIH1cblxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgfVxufVxuXG4vKiBWaWRlbyBiYWNrZ3JvdW5kLCBha28gc2Uga29yaXN0aSBzYW1vIHV6IGNoYXRib3Qgc3RyYW5pY3UgKi9cbiN2aWRlby1iYWNrZ3JvdW5kIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xuICB6LWluZGV4OiAtMTtcbn1cblxuLyogQ2hhdC1zcGVjaWZpYyB1dGlsaXR5ICovXG4jY2hhdC1jb250YWluZXIgLmhpZGRlbixcbiNmbG9hdGluZy1xdWVzdGlvbnMuaGlkZGVuLFxuI2NoYXQtYmFja2Ryb3AuaGlkZGVuLFxuI2NoYXRib3QtYnViYmxlLmhpZGRlbixcbi5jdXJyZW50LXVzZXIuaGlkZGVuLFxuLmN1cnJlbnQtdXNlci1sb2NhdGlvbi5oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbiNjaGF0LWNvbnRhaW5lciAuZmFkZS1vdXQsXG4jY2hhdGJvdC1idWJibGUuZmFkZS1vdXQge1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDFzIGVhc2Utb3V0O1xufVxuXG4vKiBTY3JvbGxiYXIgb25seSBpbnNpZGUgY2hhdCAqL1xuI2NoYXQtY29udGFpbmVyIDo6LXdlYmtpdC1zY3JvbGxiYXIsXG4uZm9pLWNoYXRib3QtbW9kYWwgLm1vZGFsLWJvZHk6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgd2lkdGg6IDEycHg7XG59XG5cbiNjaGF0LWNvbnRhaW5lciA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrLFxuLmZvaS1jaGF0Ym90LW1vZGFsIC5tb2RhbC1ib2R5Ojotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlM2YxZjQ7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCA1cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuXG4jY2hhdC1jb250YWluZXIgOjotd2Via2l0LXNjcm9sbGJhci10aHVtYixcbi5mb2ktY2hhdGJvdC1tb2RhbCAubW9kYWwtYm9keTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1hcHAtY29sb3ItcHJpbWFyeSk7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIGJvcmRlcjogMnB4IHNvbGlkICNlM2YxZjQ7XG59XG5cbiNjaGF0LWNvbnRhaW5lciA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyLFxuLmZvaS1jaGF0Ym90LW1vZGFsIC5tb2RhbC1ib2R5Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDUzNjY7XG59XG5cbiNjaGF0LWNvbnRhaW5lcixcbiNjaGF0LWNvbnRhaW5lciAqLFxuLmZvaS1jaGF0Ym90LW1vZGFsLFxuLmZvaS1jaGF0Ym90LW1vZGFsICoge1xuICBzY3JvbGxiYXItd2lkdGg6IHRoaW47XG4gIHNjcm9sbGJhci1jb2xvcjogdmFyKC0tYXBwLWNvbG9yLXByaW1hcnkpICNlM2YxZjQ7XG59XG5cbi8qIENoYXQgYnViYmxlICovXG4jY2hhdC1jb250YWluZXIgLmNoYXQtYnViYmxlIHtcbiAgcGFkZGluZzogMTZweCAyOHB4O1xuICBib3JkZXItcmFkaXVzOiAxMHB4IDEwcHggMTBweCAycHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLyogVHlwaW5nIGFuaW1hdGlvbiAqL1xuI2NoYXQtY29udGFpbmVyIC50eXBpbmcge1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgaGVpZ2h0OiAyNXB4O1xufVxuXG4jY2hhdC1jb250YWluZXIgLnR5cGluZyAuZG90IHtcbiAgYW5pbWF0aW9uOiBtZXJjdXJ5VHlwaW5nQW5pbWF0aW9uIDEuOHMgaW5maW5pdGUgZWFzZS1pbi1vdXQ7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgaGVpZ2h0OiA3cHg7XG4gIG1hcmdpbi1yaWdodDogNHB4O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB3aWR0aDogN3B4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWFwcC1jb2xvci1wcmltYXJ5KSAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAwLjY7XG59XG5cbiNjaGF0LWNvbnRhaW5lciAudHlwaW5nIC5kb3Q6bnRoLWNoaWxkKDEpIHtcbiAgYW5pbWF0aW9uLWRlbGF5OiAyMDBtcztcbn1cblxuI2NoYXQtY29udGFpbmVyIC50eXBpbmcgLmRvdDpudGgtY2hpbGQoMikge1xuICBhbmltYXRpb24tZGVsYXk6IDMwMG1zO1xufVxuXG4jY2hhdC1jb250YWluZXIgLnR5cGluZyAuZG90Om50aC1jaGlsZCgzKSB7XG4gIGFuaW1hdGlvbi1kZWxheTogNDAwbXM7XG59XG5cbiNjaGF0LWNvbnRhaW5lciAudHlwaW5nIC5kb3Q6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1yaWdodDogMDtcbn1cblxuQGtleWZyYW1lcyBtZXJjdXJ5VHlwaW5nQW5pbWF0aW9uIHtcbiAgMCUsIDYwJSwgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgIG9wYWNpdHk6IDAuNjtcbiAgfVxuXG4gIDMwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC03cHgpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuLyogV29yZCBicmVhayBvbmx5IGluc2lkZSBjaGF0ICovXG4jY2hhdC1jb250YWluZXIgLndvcmQtYnJlYWstYWxsIHtcbiAgd29yZC1icmVhazogYnJlYWstYWxsO1xufVxuXG4vKiBUaHVtYm5haWxzICovXG4jY2hhdC1jb250YWluZXIgLmNoYXQtdGh1bWJuYWlsIHtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xufVxuXG4jY2hhdC1jb250YWluZXIgLmNoYXQtdGh1bWJuYWlsOmhvdmVyIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1hcHAtY29sb3ItcHJpbWFyeSk7XG59XG5cbi8qIERydXBhbCAvIE9saXZlcm8gc3BlY2lmaWMgYmxvY2ssIGFrbyBzZSBrb3Jpc3RpICovXG4jYmxvY2stb2xpdmVyby1zdWItdGhlbWUtZm9pY2hhdGJvdCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cblxuI2Jsb2NrLW9saXZlcm8tc3ViLXRoZW1lLWZvaWNoYXRib3QgLmNvbnRleHR1YWwge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiBMaWdodCBUaGVtZSAqL1xuLmxpZ2h0LXRoZW1lICNjaGF0LWNvbnRhaW5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGJveC1zaGFkb3c6IDAgOHB4IDE2cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuXG4ubGlnaHQtdGhlbWUgI2NoYXQtd2luZG93LFxuLmxpZ2h0LXRoZW1lICNjaGF0LXJlY29yZGluZyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG59XG5cbi5saWdodC10aGVtZSAjY2hhdC1pbnB1dCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZWVlO1xufVxuXG4ubGlnaHQtdGhlbWUgI2NoYXQtY29udGFpbmVyIC5ib3QtbWVzc2FnZSxcbi5saWdodC10aGVtZSAjY2hhdC1pbnB1dCBpbnB1dCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOWY5Zjk7XG4gIGNvbG9yOiAjMzMzO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xufVxuXG4ubGlnaHQtdGhlbWUgI2NoYXQtY29udGFpbmVyIC5ib3QtbWVzc2FnZSxcbi5saWdodC10aGVtZSAjY2hhdC1jb250YWluZXIgLnVzZXItbWVzc2FnZSxcbi5saWdodC10aGVtZSAjY2hhdC1jb250YWluZXIgLnRleHQge1xuICBjb2xvcjogIzMzMyAhaW1wb3J0YW50O1xufVxuXG4ubGlnaHQtdGhlbWUgI2NoYXQtY29udGFpbmVyIC5yb2JvdC1pY29uLFxuLmxpZ2h0LXRoZW1lICNjaGF0LWNvbnRhaW5lciAubWVzc2FnZS5ib3QgLmljb24gaSxcbi5saWdodC10aGVtZSAjY2hhdC1jb250YWluZXIgLm1lc3NhZ2UudXNlciAuaWNvbiBpLFxuLmxpZ2h0LXRoZW1lICNjaGF0LWNvbnRhaW5lciAuZmEtc3BhcmtsZXMge1xuICBjb2xvcjogdmFyKC0tYXBwLWNvbG9yLXByaW1hcnkpICFpbXBvcnRhbnQ7XG59XG5cbi5saWdodC10aGVtZSAjY2hhdC1jb250YWluZXIgLmZhLXNwYXJrbGVzOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiICFpbXBvcnRhbnQ7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDEuNXJlbTtcbiAgaGVpZ2h0OiAxLjVyZW07XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1nL2NoYXRib3RfZm9pLnBuZycpO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLmxpZ2h0LXRoZW1lICNjaGF0LWhlYWRlciB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMDUpO1xufVxuXG4ubGlnaHQtdGhlbWUgLmZvaS1jaGF0Ym90LW1vZGFsIC5tb2RhbC1jb250ZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgY29sb3I6ICMzMzM7XG59XG5cbi5saWdodC10aGVtZSAuZm9pLWNoYXRib3QtbW9kYWwgLnF1ZXN0aW9uLWRpdiB7XG4gIGJhY2tncm91bmQ6ICNmOWY5Zjk7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG59XG5cbi5saWdodC10aGVtZSAuZm9pLWNoYXRib3QtbW9kYWwgLnF1ZXN0aW9uLWRpdiBhIHtcbiAgY29sb3I6ICMzMzMgIWltcG9ydGFudDtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmxpZ2h0LXRoZW1lICNjaGF0LWhlYWRlcixcbi5saWdodC10aGVtZSAjY2hhdC1oZWFkZXIgYnV0dG9uIHtcbiAgY29sb3I6ICNmZmYgIWltcG9ydGFudDtcbn1cblxuLmxpZ2h0LXRoZW1lIC5mb2ktY2hhdGJvdC1tb2RhbCAubW9kYWwtaGVhZGVyIGg1LFxuLmxpZ2h0LXRoZW1lIC5mb2ktY2hhdGJvdC1tb2RhbCAubW9kYWwtaGVhZGVyIC5tb2RhbC10aXRsZSxcbi5saWdodC10aGVtZSAuZm9pLWNoYXRib3QtbW9kYWwgLm1vZGFsLWhlYWRlciB7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG5cbi5saWdodC10aGVtZSAuZm9pLWNoYXRib3QtbW9kYWwgLm1vZGFsLWNvbnRlbnQgLmNsb3NlIHtcbiAgZmlsdGVyOiBpbnZlcnQoMSkgZ3JheXNjYWxlKDEwMCUpIGJyaWdodG5lc3MoMjAwJSk7XG59XG5cbi5saWdodC10aGVtZSAuZm9pLWNoYXRib3QtbW9kYWwgLnF1ZXN0aW9uLWRpdi1pbm5lcjpob3ZlciB7XG4gIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7XG59XG5cbi5iYWNrZ3JvdW5kLWRhcmstZ3JlZW4tNTAwIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYXBwLWNvbG9yLXByaW1hcnkpO1xufVxuXG4vKiBSZXNwb25zaXZlICovXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgI2NoYXRib3QtYnViYmxlLFxuICAuY2hhdGJvdC1idWJibGUge1xuICAgIHJpZ2h0OiAxNnB4O1xuICAgIGJvdHRvbTogMTA2cHg7XG4gICAgbWF4LXdpZHRoOiA4MHZ3O1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgfVxuXG4gICNjaGF0Ym90LWJ1YmJsZTo6YWZ0ZXIsXG4gIC5jaGF0Ym90LWJ1YmJsZTo6YWZ0ZXIge1xuICAgIHJpZ2h0OiAyMnB4O1xuICB9XG5cbiAgI2NoYXRib3QtbGF1bmNoZXIge1xuICAgIGJvdHRvbTogMjBweDtcbiAgfVxuXG4gIGJvZHkgLmFjY2Vzc2liaWxpdHktdHJpZ2dlci5haW9hX2JvdHRvbV9yaWdodCBidXR0b24ge1xuICAgIGxlZnQ6IDMwcHggIWltcG9ydGFudDtcbiAgICByaWdodDogMDtcbiAgfVxuXG4gICNjaGF0LWNvbnRhaW5lciB7XG4gICAgdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgbGVmdDogMCAhaW1wb3J0YW50O1xuICAgIHRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50O1xuICAgIGJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgIHJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IDEwMGR2aCAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgIG1heC1oZWlnaHQ6IG5vbmUgIWltcG9ydGFudDtcbiAgICBib3JkZXItcmFkaXVzOiAwICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgfVxuXG4gICNjaGF0LWhlYWRlciB7XG4gICAgYm9yZGVyLXJhZGl1czogMCAhaW1wb3J0YW50O1xuICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAxMHB4IDE1cHg7XG4gIH1cblxuICAjY2hhdC1pbnB1dCB7XG4gICAgYm9yZGVyLXJhZGl1czogMCAhaW1wb3J0YW50O1xuICB9XG5cbiAgI3F1ZXN0aW9uLXNlY3Rpb24ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBwYWRkaW5nLXRvcDogM3JlbTtcbiAgICB6LWluZGV4OiA4O1xuICB9XG59XG5cblxuXG5AbWVkaWEgKG1heC13aWR0aDogMzg5cHgpIHtcbiAgI2NoYXQtY29udGFpbmVyIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTJkdmggIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgI2NoYXQtY29udGFpbmVyIC5hYm91dC11cy1oZWFkZXIge1xuICAgIGZvbnQtc2l6ZTogMi4ycmVtO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDEwMTBweCkge1xuICAjY2hhdC1jb250YWluZXIge1xuICAgIHdpZHRoOiA4NSU7XG4gICAgbWFyZ2luOiAyMHB4IGF1dG8gMDtcbiAgfVxufVxuXG4vKlxuICBPdmUga2xhc2Ugc3UgcHJpamUgYmlsZSBnbG9iYWxuZTpcbiAgLmxvZ28sIC5uYXZiYXItYnJhbmQtbGFyZ2UsIC5uYXZiYXItYnJhbmQtbW9iaWxlXG4gIEFrbyB0aSBzdHZhcm5vIHRyZWJhanUgemEgY2hhdGJvdCwgZG9kYWogd3JhcHBlciBpc3ByZWQgbmppaC5cbiovXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgI2NoYXQtY29udGFpbmVyIC5sb2dvIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA5OTFweCkge1xuICAjY2hhdC1jb250YWluZXIgLm5hdmJhci1icmFuZC1sYXJnZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG5cbiAgI2NoYXQtY29udGFpbmVyIC5uYXZiYXItYnJhbmQtbW9iaWxlIHtcbiAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLyotLS0tLS0tLS0tIEVuZCBvZiBOb3ZpIGNzcyBjaGF0Ym90YSAtLS0tLS0tLS0tLS0tLS0tLS0tKi8iXSwic291cmNlUm9vdCI6IiJ9*/