/*** Typography ***/
/* FONTS */
/* COLORS */
.auth-page {
  position: relative;
  height: 100%;
  min-height: 100%;
}
.auth-page__background {
  background-size: 100% 100% !important;
  background-position: center center !important;
  background-repeat: no-repeat;
  height: 100%;
  width: 100%;
  position: absolute;
}
.auth-page__background:after {
  content: "";
  position: absolute;
  width: 100%;
  min-height: 100vh;
  height: 100%;
  background: rgba(0, 0, 0, 0.4);
}
.auth-page__logo {
  position: absolute;
  top: 15px;
  left: 10px;
  margin: 0;
  padding: 0;
  max-width: 150px;
}

.login-panel {
  width: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: relative;
  background: #ffffff;
  padding: 35px 30px;
  border-radius: 20px;
}
.login-panel__header {
  text-align: center;
}
.login-panel__header svg.clipboard-check {
  stroke: #46b51d;
  width: 80px;
  height: 80px;
  margin-bottom: 15px;
}
.login-panel__header svg.check {
  fill: #46b51d;
  width: 80px;
  height: 80px;
  margin-bottom: 15px;
}
.login-panel__header h3 {
  width: 100%;
  text-align: center;
  color: #4d4f5c;
  font-family: "AvenirLTStd", sans-serif;
  font-size: calc(1.275rem + 0.3vw);
  font-weight: 700;
}
@media (min-width: 1200px) {
  .login-panel__header h3 {
    font-size: 1.5rem;
  }
}
.login-panel__header p {
  margin: 20px 0;
  text-align: center;
  color: #4d4f5c;
  font-family: "AvenirLTStd", sans-serif;
  font-size: 1rem;
  font-weight: 400;
}
.login-panel__form .form-floating {
  position: relative;
}
.login-panel__form--password-icon {
  position: absolute;
  top: 15px;
  right: 15px;
}
.login-panel__form--password-icon svg {
  width: 20px;
  height: 20px;
  cursor: pointer;
  stroke: #343434;
}
.login-panel__form > a, .login-panel__form button {
  margin: 10px 0;
  display: inline-block;
  text-align: center;
  width: 100%;
}
/*# sourceURL=D:/Dev/Mvogue/Novo/LogicCloud/LogicCloud/_source/LogicCloud/src/sass/_base/_variables.scss */
/*# sourceURL=D:/Dev/Mvogue/Novo/LogicCloud/LogicCloud/_source/LogicCloud/src/sass/_components/_authentication-pages.scss */
/*# sourceURL=index.scss */
/*# sourceURL=D:/Dev/Mvogue/Novo/LogicCloud/LogicCloud/_source/LogicCloud/node_modules/rfs/scss.scss */
/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkQ6L0Rldi9Ndm9ndWUvTm92by9Mb2dpY0Nsb3VkL0xvZ2ljQ2xvdWQvX3NvdXJjZS9Mb2dpY0Nsb3VkL3NyYy9zYXNzL19iYXNlL192YXJpYWJsZXMuc2NzcyIsIkQ6L0Rldi9Ndm9ndWUvTm92by9Mb2dpY0Nsb3VkL0xvZ2ljQ2xvdWQvX3NvdXJjZS9Mb2dpY0Nsb3VkL3NyYy9zYXNzL19jb21wb25lbnRzL19hdXRoZW50aWNhdGlvbi1wYWdlcy5zY3NzIiwiaW5kZXguc2NzcyIsIkQ6L0Rldi9Ndm9ndWUvTm92by9Mb2dpY0Nsb3VkL0xvZ2ljQ2xvdWQvX3NvdXJjZS9Mb2dpY0Nsb3VkL25vZGVfbW9kdWxlcy9yZnMvc2Nzcy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFDLG1CQUFBO0FBcUZELFVBQUE7QUFnQ0EsV0FBQTtBQ3BIQTtFQUNJLGtCQUFBO0VBQ0EsWUFBQTtFQUNBLGdCQUFBO0FDR0o7QURESTtFQUNJLHFDQUFBO0VBQ0EsNkNBQUE7RUFDQSw0QkFBQTtFQUNBLFlBQUE7RUFDQSxXQUFBO0VBQ0Esa0JBQUE7QUNHUjtBRERRO0VBQ0ksV0FBQTtFQUNBLGtCQUFBO0VBQ0EsV0FBQTtFQUNBLGlCQUFBO0VBQ0EsWUFBQTtFQUNBLDhCQUFBO0FDR1o7QURDSTtFQUNJLGtCQUFBO0VBQ0EsU0FBQTtFQUNBLFVBQUE7RUFDQSxTQUFBO0VBQ0EsVUFBQTtFQUNBLGdCQUFBO0FDQ1I7O0FER0E7RUFDSSxXQUFBO0VBQ0EsYUFBQTtFQUNBLHNCQUFBO0VBQ0EsdUJBQUE7RUFDQSxrQkFBQTtFQUNBLG1CRDhFSTtFQzdFSixrQkFBQTtFQUNBLG1CQUFBO0FDQUo7QURFSTtFQUNJLGtCQUFBO0FDQVI7QURHWTtFQUNJLGVEMEVOO0VDekVNLFdBQUE7RUFDQSxZQUFBO0VBQ0EsbUJBQUE7QUNEaEI7QURJWTtFQUNJLGFEbUVOO0VDbEVNLFdBQUE7RUFDQSxZQUFBO0VBQ0EsbUJBQUE7QUNGaEI7QURNUTtFQUNJLFdBQUE7RUFDQSxrQkFBQTtFQUNBLGNEYUU7RUNaRixzQ0QzRHdCO0VHMlI1QixpQ0FBQTtFRjlOSSxnQkRyRG9CO0FFaURoQztBQ3NFSTtFRnhFSTtJRTJPQSxpQkFBQTtFRHJPTjtBQUNGO0FERVE7RUFDSSxjQUFBO0VBQ0Esa0JBQUE7RUFDQSxjRElFO0VDSEYsc0NEcEV3QjtFR3VSOUIsZUFMSTtFRjVNRSxnQkRqRW9CO0FFaUVoQztBRE9RO0VBQ0ksa0JBQUE7QUNMWjtBRFFRO0VBQ0ksa0JBQUE7RUFDQSxTQUFBO0VBQ0EsV0FBQTtBQ05aO0FEUVk7RUFDSSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGVBQUE7RUFDQSxlRDlDWTtBRXdDNUI7QURVUTtFQUNJLGNBQUE7RUFDQSxxQkFBQTtFQUNBLGtCQUFBO0VBQ0EsV0FBQTtBQ1JaIiwiZmlsZSI6ImluZGV4LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyLvu78vKioqIFR5cG9ncmFwaHkgKioqLyBcclxuXHJcbi8vUmVzcG9uc2l2ZSBmb250IHNpemVcclxuQGltcG9ydCBcIn5yZnMvc2Nzc1wiO1xyXG5cclxuLy9Cb290c3RyYXAgZW5hYmxlIHJlc3BvbnNpdmUgZm9udC1zaXplXHJcbiRlbmFibGUtcmVzcG9uc2l2ZS1mb250LXNpemVzOiB0cnVlO1xyXG5cclxuJGZvbnQtZmFtaWx5LS1wcmltYXJ5ICAgICAgICAgICA6ICAgJ0F2ZW5pckxUU3RkJywgc2Fucy1zZXJpZjtcclxuJGZvbnQtZmFtaWx5LS1zZWNvbmRhcnkgICAgICAgICA6ICAgJ0F2ZW5pcicsIHNhbnMtc2VyaWY7XHJcblxyXG4vLyRmb250LXdlaWdodC0tZXh0cmEtbGlnaHQgICA6ICAgMjAwO1xyXG4kZm9udC13ZWlnaHQtLWxpZ2h0ICAgICAgICAgOiAgIDMwMDtcclxuJGZvbnQtd2VpZ2h0LS1yZWd1bGFyICAgICAgIDogICA0MDA7XHJcbiRmb250LXdlaWdodC0tbWVkaXVtICAgICAgICA6ICAgNTAwO1xyXG4kZm9udC13ZWlnaHQtLXNlbWlib2xkICAgICAgOiAgIDYwMDtcclxuJGZvbnQtd2VpZ2h0LS1ib2xkICAgICAgICAgIDogICA3MDA7XHJcbiRmb250LXdlaWdodC0tZXh0cmEtYm9sZCAgICA6ICAgODAwO1xyXG4kZm9udC13ZWlnaHQtLWJsYWNrICAgICAgICAgOiAgIDkwMDtcclxuXHJcbi8vIEZvbnQgZGVmaW5pdGlvbnNcclxuJGZvbnQteHh4eC1sYXJnZSAgICAgICAgICAgIDogICA3MnB4O1xyXG4kZm9udC14eHgtbGFyZ2UgICAgICAgICAgICAgOiAgIDYwcHg7XHJcbiRmb250LXh4LWxhcmdlICAgICAgICAgICAgICA6ICAgNDhweDtcclxuJGZvbnQteC1sYXJnZSAgICAgICAgICAgICAgIDogICA0MHB4O1xyXG4kZm9udC1sYXJnZSAgICAgICAgICAgICAgICAgOiAgIDM2cHg7XHJcbiRmb250LXh4eC1iaWcgICAgICAgICAgICAgICA6ICAgMzJweDtcclxuJGZvbnQteHgtYmlnICAgICAgICAgICAgICAgIDogICAzMHB4O1xyXG4kZm9udC14LWJpZyAgICAgICAgICAgICAgICAgOiAgIDI0cHg7XHJcbiRmb250LWJpZyAgICAgICAgICAgICAgICAgICA6ICAgMjBweDtcclxuJGZvbnQtbWVkaXVtICAgICAgICAgICAgICAgIDogICAxOHB4O1xyXG4kZm9udC1yZWd1bGFyICAgICAgICAgICAgICAgOiAgIDE2cHg7XHJcbiRmb250LXNtYWxsICAgICAgICAgICAgICAgICA6ICAgMTRweDtcclxuJGZvbnQteC1zbWFsbCAgICAgICAgICAgICAgIDogICAxMnB4O1xyXG4kZm9udC14eC1zbWFsbCAgICAgICAgICAgICAgOiAgIDExcHg7XHJcbiRmb250LXh4eC1zbWFsbCAgICAgICAgICAgICA6ICAgMTBweDtcclxuJGZvbnQteHh4eC1zbWFsbCAgICAgICAgICAgIDogICA5cHg7XHJcblxyXG5cclxuLy8gTmV3IGNvbG9yc1xyXG4kZGVlcC1zcGFjZS1yb3lhbCAgICAgICA6ICAgIzIyMkQ4NDtcclxuJGludGVyZ2FsYWN0aWMgICAgICAgICAgOiAgICMxQzFGNjA7XHJcblxyXG4kY2hhbWJyYXktYmx1ZSAgICAgICAgICA6ICAgIzM5NDI5MTtcclxuJGRvZGdlLWJsdWUgICAgICAgICAgICAgOiAgICMwQjZFRkM7XHJcbiRyZWdhbC1ibHVlICAgICAgICAgICAgIDogICAjNkM3NUIxO1xyXG4kbGlnaHQtcmVnYWwtYmx1ZSAgICAgICA6ICAgI0U4RThGMztcclxuJGZhZGVkLWJsdWUgICAgICAgICAgICAgOiAgICM2Yzc0YjI7XHJcbiRkb2N0b3IgICAgICAgICAgICAgICAgIDogICAjZjlmOWY5O1xyXG4kbG9nYW4gICAgICAgICAgICAgICAgICA6ICAgI0IxQjRDRjtcclxuJGxpZ2h0LWxvZ2FuICAgICAgICAgICAgOiAgICM5QzlDQjI7XHJcblxyXG4kZGFya2VzdC1ncmV5ICAgICAgICAgICA6ICAgIzM0MzQzNDtcclxuJHNpbHZlciAgICAgICAgICAgICAgICAgOiAgICNCOUI5Qjk7XHJcbiRsaWdodC1pcm9uICAgICAgICAgICAgIDogICAjZjBmMGY3O1xyXG4kYWxhYmFzdGVyLXJvY2sgICAgICAgICA6ICAgI2Y5ZjlmOTtcclxuJGxpZ2h0LWdyZXkgICAgICAgICAgICAgOiAgICNjZWQ0ZGE7XHJcbiRhdGhlbnMtZ3JleSAgICAgICAgICAgIDogICAjRTNFNEVGO1xyXG4kbGF2ZW5kZXItZ3JleSAgICAgICAgICA6ICAgI2UxZTFlZjtcclxuJGJyaWdodC1zdGFyICAgICAgICAgICAgOiAgICNERUUyRTY7XHJcbiRzbm93Zmxha2UgICAgICAgICAgICAgIDogICAjZjBmMGYwO1xyXG4kdGhlcm1hbC1wb29sICAgICAgICAgICA6ICAgIzU3OTU4NDtcclxuJHNpbHZlcmJhY2sgICAgICAgICAgICAgOiAgICNjYmNiY2I7XHJcbiRjYXZlcm5vdXMgICAgICAgICAgICAgIDogICAjNTI1MjUyO1xyXG4kZHVzdHktZ3JleSAgICAgICAgICAgICA6ICAgI2NkY2RkMDtcclxuJGZhcnNpZ2h0ZWQgICAgICAgICAgICAgOiAgICNFNUU1RUU7XHJcbiRmcm9zdHkgICAgICAgICAgICAgICAgIDogICAjOTQ5NEI1O1xyXG4kdGluICAgICAgICAgICAgICAgICAgICA6ICAgI0JFQkVCRTtcclxuJHBpbmstb2NlYW4gICAgICAgICAgICAgOiAgICNFQTg3ODc7XHJcbiRhbWVyaWNhbi1zaWx2ZXIgICAgICAgIDogICAjQ0ZDRkNGO1xyXG4kZXJyb3IgICAgICAgICAgICAgICAgICA6ICAgI2RjMzU0NTtcclxuJGFsZXJ0ICAgICAgICAgICAgICAgICAgOiAgICNGMkM4MjA7XHJcbiRza3ktYmx1ZSAgICAgICAgICAgICAgIDogICAjMGQ2ZWZkO1xyXG5cclxuJHByaW1hcnkgICAgICAgICAgICAgICAgOiAgICRkb2RnZS1ibHVlOyAgXHJcbiRzZWNvbmRhcnkgICAgICAgICAgICAgIDogICAkaW50ZXJnYWxhY3RpYztcclxuXHJcblxyXG4vLyBUT0RPIC0gcmVtb3ZlIGFsbCBsZWdhY3kgdmFyaWFibGVzXHJcbiRsaWdodC1ibGFjazogIzRkNGY1YztcclxuXHJcbiRjb2xvcl90aXRsZTogJGxpZ2h0LWJsYWNrO1xyXG4kY29sb3Jfc3VidGl0bGU6ICRkYXJrZXN0LWdyZXk7XHJcbi8vICRjb2xvcl9zdWJ0aXRsZTojODE4MTgxO1xyXG5cclxuLyogRk9OVFMgKi9cclxuJGZvbnRmYW1pbHk6ICRmb250LWZhbWlseS0tcHJpbWFyeTtcclxuXHJcbiRmb250Ym9sZDogJGZvbnQtd2VpZ2h0LS1ib2xkO1xyXG4kZm9udHNlbWlib2xkOiAkZm9udC13ZWlnaHQtLXNlbWlib2xkO1xyXG4kZm9udG1lZGl1bTogJGZvbnQtd2VpZ2h0LS1zZW1pYm9sZDtcclxuJGZvbnRyZWd1bGFyOiAkZm9udC13ZWlnaHQtLXJlZ3VsYXI7XHJcbiRmb250bGlnaHQ6ICRmb250LXdlaWdodC0tbGlnaHQ7XHJcblxyXG4kc2l6ZTQwOiAyLjUwMGVtO1xyXG4kc2l6ZTM1OiAyLjE4OGVtO1xyXG4kc2l6ZTMwOiAxLjg3NWVtO1xyXG4kc2l6ZTI4OiAxLjc1ZW07XHJcbiRzaXplMjY6IDEuNjI1ZW07XHJcbiRzaXplMjU6IDEuNTYzZW07XHJcbiRzaXplMjQ6IDEuNWVtO1xyXG4kc2l6ZTIzOiAxLjQzOGVtO1xyXG4kc2l6ZTIyOiAxLjM3NWVtO1xyXG4kc2l6ZTIxOiAxLjMxM2VtO1xyXG4kc2l6ZTIwOiAxLjI1cmVtO1xyXG4kc2l6ZTE5OiAxLjE4OGVtO1xyXG4kc2l6ZTE4OiAxLjEyNWVtO1xyXG4kc2l6ZTE3OiAxLjA2M2VtO1xyXG4kc2l6ZTE2OiAxZW07XHJcbiRzaXplMTU6IDAuOTM4ZW07XHJcbiRzaXplMTQ6IDAuODc1ZW07XHJcbiRzaXplMTM6IDAuODEzZW07XHJcbiRzaXplMTI6IDAuNzVlbTtcclxuJHNpemUxMTogMC42ODhlbTtcclxuJHNpemUxMDogMC42MjVlbTtcclxuJHNpemU5OiAwLjU2M2VtO1xyXG5cclxuLyogQ09MT1JTICovXHJcbiR3aGl0ZTogI2ZmZmZmZjtcclxuJGJsYWNrOiAjMDAwO1xyXG5cclxuJGdyZXk6ICM1ZjVmNWY7XHJcblxyXG4kc3VjY2VzczogIzQ2YjUxZDtcclxuJHN1Y2Nlc3MtbGlnaHQ6ICM4Y2NlNDY7XHJcbiRhbGVydDogI2ZmYjQyNztcclxuJGFsZXJ0LWxpZ2h0OiAjZmZkNTAxO1xyXG4kd2FybmluZzogI2M2MmIyYjtcclxuJHdhcm5pbmctbGlnaHQ6ICNjNjJiMmJkYjtcclxuJGV4dHJlbWV3YXJuaW5nOiAjZTAzMDEwO1xyXG4kZGFya2VzdGdyZXk6ICRkYXJrZXN0LWdyZXk7XHJcbiRibHVlcGFuZWw6ICMyMDJkOGE7XHJcbiRibHVldGV4dDogIzgwODZiYTtcclxuJGZhZGVkYmx1ZTogJGZhZGVkLWJsdWU7XHJcbiRkdXNrOiAjNDM0MjVkO1xyXG4kYmx1ZS16b2RpYWM6ICMxMjE1NTc7XHJcblxyXG5cclxuXHJcbiIsIu+7v1xyXG4uYXV0aC1wYWdlIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIG1pbi1oZWlnaHQ6IDEwMCU7XHJcblxyXG4gICAgJl9fYmFja2dyb3VuZCB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiAxMDAlIDEwMCUgIWltcG9ydGFudDtcclxuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG5cclxuICAgICAgICAmOmFmdGVyIHtcclxuICAgICAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgbWluLWhlaWdodDogMTAwdmg7XHJcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjQpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmX19sb2dvIHtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgdG9wOiAxNXB4O1xyXG4gICAgICAgIGxlZnQ6IDEwcHg7XHJcbiAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgbWF4LXdpZHRoOiAxNTBweDtcclxuICAgIH1cclxufVxyXG5cclxuLmxvZ2luLXBhbmVsIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcclxuICAgIHBhZGRpbmc6IDM1cHggMzBweDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XHJcblxyXG4gICAgJl9faGVhZGVyIHtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblxyXG4gICAgICAgIHN2ZyB7XHJcbiAgICAgICAgICAgICYuY2xpcGJvYXJkLWNoZWNrIHtcclxuICAgICAgICAgICAgICAgIHN0cm9rZTogJHN1Y2Nlc3M7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogODBweDtcclxuICAgICAgICAgICAgICAgIGhlaWdodDogODBweDtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICYuY2hlY2sge1xyXG4gICAgICAgICAgICAgICAgZmlsbDogJHN1Y2Nlc3M7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogODBweDtcclxuICAgICAgICAgICAgICAgIGhlaWdodDogODBweDtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGgzIHtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICAgICAgY29sb3I6ICRjb2xvcl90aXRsZTtcclxuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS0tcHJpbWFyeTtcclxuICAgICAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKCRmb250LXgtYmlnKTtcclxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC0tYm9sZDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHAge1xyXG4gICAgICAgICAgICBtYXJnaW46IDIwcHggMDtcclxuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgICAgICBjb2xvcjogJGNvbG9yX3RpdGxlO1xyXG4gICAgICAgICAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LS1wcmltYXJ5O1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoJGZvbnQtcmVndWxhcik7XHJcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtLXJlZ3VsYXI7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICZfX2Zvcm0ge1xyXG5cclxuXHJcbiAgICAgICAgLmZvcm0tZmxvYXRpbmcge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLS1wYXNzd29yZC1pY29uIHtcclxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICB0b3A6IDE1cHg7XHJcbiAgICAgICAgICAgIHJpZ2h0OiAxNXB4O1xyXG5cclxuICAgICAgICAgICAgc3ZnIHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAyMHB4O1xyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHB4O1xyXG4gICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICAgICAgICAgICAgc3Ryb2tlOiAkZGFya2VzdC1ncmV5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICA+IGEsIGJ1dHRvbiB7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMTBweCAwO1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiIsIi8qKiogVHlwb2dyYXBoeSAqKiovXG4vKiBGT05UUyAqL1xuLyogQ09MT1JTICovXG4uYXV0aC1wYWdlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDEwMCU7XG59XG4uYXV0aC1wYWdlX19iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1zaXplOiAxMDAlIDEwMCUgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlciAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG4uYXV0aC1wYWdlX19iYWNrZ3JvdW5kOmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTAwJTtcbiAgbWluLWhlaWdodDogMTAwdmg7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjQpO1xufVxuLmF1dGgtcGFnZV9fbG9nbyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxNXB4O1xuICBsZWZ0OiAxMHB4O1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIG1heC13aWR0aDogMTUwcHg7XG59XG5cbi5sb2dpbi1wYW5lbCB7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICBwYWRkaW5nOiAzNXB4IDMwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDIwcHg7XG59XG4ubG9naW4tcGFuZWxfX2hlYWRlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5sb2dpbi1wYW5lbF9faGVhZGVyIHN2Zy5jbGlwYm9hcmQtY2hlY2sge1xuICBzdHJva2U6ICM0NmI1MWQ7XG4gIHdpZHRoOiA4MHB4O1xuICBoZWlnaHQ6IDgwcHg7XG4gIG1hcmdpbi1ib3R0b206IDE1cHg7XG59XG4ubG9naW4tcGFuZWxfX2hlYWRlciBzdmcuY2hlY2sge1xuICBmaWxsOiAjNDZiNTFkO1xuICB3aWR0aDogODBweDtcbiAgaGVpZ2h0OiA4MHB4O1xuICBtYXJnaW4tYm90dG9tOiAxNXB4O1xufVxuLmxvZ2luLXBhbmVsX19oZWFkZXIgaDMge1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogIzRkNGY1YztcbiAgZm9udC1mYW1pbHk6IFwiQXZlbmlyTFRTdGRcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiBjYWxjKDEuMjc1cmVtICsgMC4zdncpO1xuICBmb250LXdlaWdodDogNzAwO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAubG9naW4tcGFuZWxfX2hlYWRlciBoMyB7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gIH1cbn1cbi5sb2dpbi1wYW5lbF9faGVhZGVyIHAge1xuICBtYXJnaW46IDIwcHggMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogIzRkNGY1YztcbiAgZm9udC1mYW1pbHk6IFwiQXZlbmlyTFRTdGRcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBmb250LXdlaWdodDogNDAwO1xufVxuLmxvZ2luLXBhbmVsX19mb3JtIC5mb3JtLWZsb2F0aW5nIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmxvZ2luLXBhbmVsX19mb3JtLS1wYXNzd29yZC1pY29uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDE1cHg7XG4gIHJpZ2h0OiAxNXB4O1xufVxuLmxvZ2luLXBhbmVsX19mb3JtLS1wYXNzd29yZC1pY29uIHN2ZyB7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgc3Ryb2tlOiAjMzQzNDM0O1xufVxuLmxvZ2luLXBhbmVsX19mb3JtID4gYSwgLmxvZ2luLXBhbmVsX19mb3JtIGJ1dHRvbiB7XG4gIG1hcmdpbjogMTBweCAwO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG59IiwiLy8gc3R5bGVsaW50LWRpc2FibGUgc2Nzcy9kaW1lbnNpb24tbm8tbm9uLW51bWVyaWMtdmFsdWVzXG5cbi8vIFNDU1MgUkZTIG1peGluXG4vL1xuLy8gQXV0b21hdGVkIHJlc3BvbnNpdmUgdmFsdWVzIGZvciBmb250IHNpemVzLCBwYWRkaW5ncywgbWFyZ2lucyBhbmQgbXVjaCBtb3JlXG4vL1xuLy8gTGljZW5zZWQgdW5kZXIgTUlUIChodHRwczovL2dpdGh1Yi5jb20vdHdicy9yZnMvYmxvYi9tYWluL0xJQ0VOU0UpXG5cbi8vIENvbmZpZ3VyYXRpb25cblxuLy8gQmFzZSB2YWx1ZVxuJHJmcy1iYXNlLXZhbHVlOiAxLjI1cmVtICFkZWZhdWx0O1xuJHJmcy11bml0OiByZW0gIWRlZmF1bHQ7XG5cbkBpZiAkcmZzLXVuaXQgIT0gcmVtIGFuZCAkcmZzLXVuaXQgIT0gcHgge1xuICBAZXJyb3IgXCJgI3skcmZzLXVuaXR9YCBpcyBub3QgYSB2YWxpZCB1bml0IGZvciAkcmZzLXVuaXQuIFVzZSBgcHhgIG9yIGByZW1gLlwiO1xufVxuXG4vLyBCcmVha3BvaW50IGF0IHdoZXJlIHZhbHVlcyBzdGFydCBkZWNyZWFzaW5nIGlmIHNjcmVlbiB3aWR0aCBpcyBzbWFsbGVyXG4kcmZzLWJyZWFrcG9pbnQ6IDEyMDBweCAhZGVmYXVsdDtcbiRyZnMtYnJlYWtwb2ludC11bml0OiBweCAhZGVmYXVsdDtcblxuQGlmICRyZnMtYnJlYWtwb2ludC11bml0ICE9IHB4IGFuZCAkcmZzLWJyZWFrcG9pbnQtdW5pdCAhPSBlbSBhbmQgJHJmcy1icmVha3BvaW50LXVuaXQgIT0gcmVtIHtcbiAgQGVycm9yIFwiYCN7JHJmcy1icmVha3BvaW50LXVuaXR9YCBpcyBub3QgYSB2YWxpZCB1bml0IGZvciAkcmZzLWJyZWFrcG9pbnQtdW5pdC4gVXNlIGBweGAsIGBlbWAgb3IgYHJlbWAuXCI7XG59XG5cbi8vIFJlc2l6ZSB2YWx1ZXMgYmFzZWQgb24gc2NyZWVuIGhlaWdodCBhbmQgd2lkdGhcbiRyZnMtdHdvLWRpbWVuc2lvbmFsOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8gRmFjdG9yIG9mIGRlY3JlYXNlXG4kcmZzLWZhY3RvcjogMTAgIWRlZmF1bHQ7XG5cbkBpZiB0eXBlLW9mKCRyZnMtZmFjdG9yKSAhPSBudW1iZXIgb3IgJHJmcy1mYWN0b3IgPD0gMSB7XG4gIEBlcnJvciBcImAjeyRyZnMtZmFjdG9yfWAgaXMgbm90IGEgdmFsaWQgICRyZnMtZmFjdG9yLCBpdCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAxLlwiO1xufVxuXG4vLyBNb2RlLiBQb3NzaWJpbGl0aWVzOiBcIm1pbi1tZWRpYS1xdWVyeVwiLCBcIm1heC1tZWRpYS1xdWVyeVwiXG4kcmZzLW1vZGU6IG1pbi1tZWRpYS1xdWVyeSAhZGVmYXVsdDtcblxuLy8gR2VuZXJhdGUgZW5hYmxlIG9yIGRpc2FibGUgY2xhc3Nlcy4gUG9zc2liaWxpdGllczogZmFsc2UsIFwiZW5hYmxlXCIgb3IgXCJkaXNhYmxlXCJcbiRyZnMtY2xhc3M6IGZhbHNlICFkZWZhdWx0O1xuXG4vLyAxIHJlbSA9ICRyZnMtcmVtLXZhbHVlIHB4XG4kcmZzLXJlbS12YWx1ZTogMTYgIWRlZmF1bHQ7XG5cbi8vIFNhZmFyaSBpZnJhbWUgcmVzaXplIGJ1ZzogaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvcmZzL2lzc3Vlcy8xNFxuJHJmcy1zYWZhcmktaWZyYW1lLXJlc2l6ZS1idWctZml4OiBmYWxzZSAhZGVmYXVsdDtcblxuLy8gRGlzYWJsZSBSRlMgYnkgc2V0dGluZyAkZW5hYmxlLXJmcyB0byBmYWxzZVxuJGVuYWJsZS1yZnM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vIENhY2hlICRyZnMtYmFzZS12YWx1ZSB1bml0XG4kcmZzLWJhc2UtdmFsdWUtdW5pdDogdW5pdCgkcmZzLWJhc2UtdmFsdWUpO1xuXG5AZnVuY3Rpb24gZGl2aWRlKCRkaXZpZGVuZCwgJGRpdmlzb3IsICRwcmVjaXNpb246IDEwKSB7XG4gICRzaWduOiBpZigkZGl2aWRlbmQgPiAwIGFuZCAkZGl2aXNvciA+IDAgb3IgJGRpdmlkZW5kIDwgMCBhbmQgJGRpdmlzb3IgPCAwLCAxLCAtMSk7XG4gICRkaXZpZGVuZDogYWJzKCRkaXZpZGVuZCk7XG4gICRkaXZpc29yOiBhYnMoJGRpdmlzb3IpO1xuICBAaWYgJGRpdmlkZW5kID09IDAge1xuICAgIEByZXR1cm4gMDtcbiAgfVxuICBAaWYgJGRpdmlzb3IgPT0gMCB7XG4gICAgQGVycm9yIFwiQ2Fubm90IGRpdmlkZSBieSAwXCI7XG4gIH1cbiAgJHJlbWFpbmRlcjogJGRpdmlkZW5kO1xuICAkcmVzdWx0OiAwO1xuICAkZmFjdG9yOiAxMDtcbiAgQHdoaWxlICgkcmVtYWluZGVyID4gMCBhbmQgJHByZWNpc2lvbiA+PSAwKSB7XG4gICAgJHF1b3RpZW50OiAwO1xuICAgIEB3aGlsZSAoJHJlbWFpbmRlciA+PSAkZGl2aXNvcikge1xuICAgICAgJHJlbWFpbmRlcjogJHJlbWFpbmRlciAtICRkaXZpc29yO1xuICAgICAgJHF1b3RpZW50OiAkcXVvdGllbnQgKyAxO1xuICAgIH1cbiAgICAkcmVzdWx0OiAkcmVzdWx0ICogMTAgKyAkcXVvdGllbnQ7XG4gICAgJGZhY3RvcjogJGZhY3RvciAqIC4xO1xuICAgICRyZW1haW5kZXI6ICRyZW1haW5kZXIgKiAxMDtcbiAgICAkcHJlY2lzaW9uOiAkcHJlY2lzaW9uIC0gMTtcbiAgICBAaWYgKCRwcmVjaXNpb24gPCAwIGFuZCAkcmVtYWluZGVyID49ICRkaXZpc29yICogNSkge1xuICAgICAgJHJlc3VsdDogJHJlc3VsdCArIDE7XG4gICAgfVxuICB9XG4gICRyZXN1bHQ6ICRyZXN1bHQgKiAkZmFjdG9yICogJHNpZ247XG4gICRkaXZpZGVuZC11bml0OiB1bml0KCRkaXZpZGVuZCk7XG4gICRkaXZpc29yLXVuaXQ6IHVuaXQoJGRpdmlzb3IpO1xuICAkdW5pdC1tYXA6IChcbiAgICBcInB4XCI6IDFweCxcbiAgICBcInJlbVwiOiAxcmVtLFxuICAgIFwiZW1cIjogMWVtLFxuICAgIFwiJVwiOiAxJVxuICApO1xuICBAaWYgKCRkaXZpZGVuZC11bml0ICE9ICRkaXZpc29yLXVuaXQgYW5kIG1hcC1oYXMta2V5KCR1bml0LW1hcCwgJGRpdmlkZW5kLXVuaXQpKSB7XG4gICAgJHJlc3VsdDogJHJlc3VsdCAqIG1hcC1nZXQoJHVuaXQtbWFwLCAkZGl2aWRlbmQtdW5pdCk7XG4gIH1cbiAgQHJldHVybiAkcmVzdWx0O1xufVxuXG4vLyBSZW1vdmUgcHgtdW5pdCBmcm9tICRyZnMtYmFzZS12YWx1ZSBmb3IgY2FsY3VsYXRpb25zXG5AaWYgJHJmcy1iYXNlLXZhbHVlLXVuaXQgPT0gcHgge1xuICAkcmZzLWJhc2UtdmFsdWU6IGRpdmlkZSgkcmZzLWJhc2UtdmFsdWUsICRyZnMtYmFzZS12YWx1ZSAqIDAgKyAxKTtcbn1cbkBlbHNlIGlmICRyZnMtYmFzZS12YWx1ZS11bml0ID09IHJlbSB7XG4gICRyZnMtYmFzZS12YWx1ZTogZGl2aWRlKCRyZnMtYmFzZS12YWx1ZSwgZGl2aWRlKCRyZnMtYmFzZS12YWx1ZSAqIDAgKyAxLCAkcmZzLXJlbS12YWx1ZSkpO1xufVxuXG4vLyBDYWNoZSAkcmZzLWJyZWFrcG9pbnQgdW5pdCB0byBwcmV2ZW50IG11bHRpcGxlIGNhbGxzXG4kcmZzLWJyZWFrcG9pbnQtdW5pdC1jYWNoZTogdW5pdCgkcmZzLWJyZWFrcG9pbnQpO1xuXG4vLyBSZW1vdmUgdW5pdCBmcm9tICRyZnMtYnJlYWtwb2ludCBmb3IgY2FsY3VsYXRpb25zXG5AaWYgJHJmcy1icmVha3BvaW50LXVuaXQtY2FjaGUgPT0gcHgge1xuICAkcmZzLWJyZWFrcG9pbnQ6IGRpdmlkZSgkcmZzLWJyZWFrcG9pbnQsICRyZnMtYnJlYWtwb2ludCAqIDAgKyAxKTtcbn1cbkBlbHNlIGlmICRyZnMtYnJlYWtwb2ludC11bml0LWNhY2hlID09IHJlbSBvciAkcmZzLWJyZWFrcG9pbnQtdW5pdC1jYWNoZSA9PSBcImVtXCIge1xuICAkcmZzLWJyZWFrcG9pbnQ6IGRpdmlkZSgkcmZzLWJyZWFrcG9pbnQsIGRpdmlkZSgkcmZzLWJyZWFrcG9pbnQgKiAwICsgMSwgJHJmcy1yZW0tdmFsdWUpKTtcbn1cblxuLy8gQ2FsY3VsYXRlIHRoZSBtZWRpYSBxdWVyeSB2YWx1ZVxuJHJmcy1tcS12YWx1ZTogaWYoJHJmcy1icmVha3BvaW50LXVuaXQgPT0gcHgsICN7JHJmcy1icmVha3BvaW50fXB4LCAje2RpdmlkZSgkcmZzLWJyZWFrcG9pbnQsICRyZnMtcmVtLXZhbHVlKX0jeyRyZnMtYnJlYWtwb2ludC11bml0fSk7XG4kcmZzLW1xLXByb3BlcnR5LXdpZHRoOiBpZigkcmZzLW1vZGUgPT0gbWF4LW1lZGlhLXF1ZXJ5LCBtYXgtd2lkdGgsIG1pbi13aWR0aCk7XG4kcmZzLW1xLXByb3BlcnR5LWhlaWdodDogaWYoJHJmcy1tb2RlID09IG1heC1tZWRpYS1xdWVyeSwgbWF4LWhlaWdodCwgbWluLWhlaWdodCk7XG5cbi8vIEludGVybmFsIG1peGluIHVzZWQgdG8gZGV0ZXJtaW5lIHdoaWNoIG1lZGlhIHF1ZXJ5IG5lZWRzIHRvIGJlIHVzZWRcbkBtaXhpbiBfcmZzLW1lZGlhLXF1ZXJ5IHtcbiAgQGlmICRyZnMtdHdvLWRpbWVuc2lvbmFsIHtcbiAgICBAaWYgJHJmcy1tb2RlID09IG1heC1tZWRpYS1xdWVyeSB7XG4gICAgICBAbWVkaWEgKCN7JHJmcy1tcS1wcm9wZXJ0eS13aWR0aH06ICN7JHJmcy1tcS12YWx1ZX0pLCAoI3skcmZzLW1xLXByb3BlcnR5LWhlaWdodH06ICN7JHJmcy1tcS12YWx1ZX0pIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBtZWRpYSAoI3skcmZzLW1xLXByb3BlcnR5LXdpZHRofTogI3skcmZzLW1xLXZhbHVlfSkgYW5kICgjeyRyZnMtbXEtcHJvcGVydHktaGVpZ2h0fTogI3skcmZzLW1xLXZhbHVlfSkge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBtZWRpYSAoI3skcmZzLW1xLXByb3BlcnR5LXdpZHRofTogI3skcmZzLW1xLXZhbHVlfSkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vIEludGVybmFsIG1peGluIHRoYXQgYWRkcyBkaXNhYmxlIGNsYXNzZXMgdG8gdGhlIHNlbGVjdG9yIGlmIG5lZWRlZC5cbkBtaXhpbiBfcmZzLXJ1bGUge1xuICBAaWYgJHJmcy1jbGFzcyA9PSBkaXNhYmxlIGFuZCAkcmZzLW1vZGUgPT0gbWF4LW1lZGlhLXF1ZXJ5IHtcbiAgICAvLyBBZGRpbmcgYW4gZXh0cmEgY2xhc3MgaW5jcmVhc2VzIHNwZWNpZmljaXR5LCB3aGljaCBwcmV2ZW50cyB0aGUgbWVkaWEgcXVlcnkgdG8gb3ZlcnJpZGUgdGhlIHByb3BlcnR5XG4gICAgJixcbiAgICAuZGlzYWJsZS1yZnMgJixcbiAgICAmLmRpc2FibGUtcmZzIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkcmZzLWNsYXNzID09IGVuYWJsZSBhbmQgJHJmcy1tb2RlID09IG1pbi1tZWRpYS1xdWVyeSB7XG4gICAgLmVuYWJsZS1yZnMgJixcbiAgICAmLmVuYWJsZS1yZnMge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBJbnRlcm5hbCBtaXhpbiB0aGF0IGFkZHMgZW5hYmxlIGNsYXNzZXMgdG8gdGhlIHNlbGVjdG9yIGlmIG5lZWRlZC5cbkBtaXhpbiBfcmZzLW1lZGlhLXF1ZXJ5LXJ1bGUge1xuXG4gIEBpZiAkcmZzLWNsYXNzID09IGVuYWJsZSB7XG4gICAgQGlmICRyZnMtbW9kZSA9PSBtaW4tbWVkaWEtcXVlcnkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgX3Jmcy1tZWRpYS1xdWVyeSAoKSB7XG4gICAgICAuZW5hYmxlLXJmcyAmLFxuICAgICAgJi5lbmFibGUtcmZzIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAaWYgJHJmcy1jbGFzcyA9PSBkaXNhYmxlIGFuZCAkcmZzLW1vZGUgPT0gbWluLW1lZGlhLXF1ZXJ5IHtcbiAgICAgIC5kaXNhYmxlLXJmcyAmLFxuICAgICAgJi5kaXNhYmxlLXJmcyB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgICBAaW5jbHVkZSBfcmZzLW1lZGlhLXF1ZXJ5ICgpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLyBIZWxwZXIgZnVuY3Rpb24gdG8gZ2V0IHRoZSBmb3JtYXR0ZWQgbm9uLXJlc3BvbnNpdmUgdmFsdWVcbkBmdW5jdGlvbiByZnMtdmFsdWUoJHZhbHVlcykge1xuICAvLyBDb252ZXJ0IHRvIGxpc3RcbiAgJHZhbHVlczogaWYodHlwZS1vZigkdmFsdWVzKSAhPSBsaXN0LCAoJHZhbHVlcywpLCAkdmFsdWVzKTtcblxuICAkdmFsOiBcIlwiO1xuXG4gIC8vIExvb3Agb3ZlciBlYWNoIHZhbHVlIGFuZCBjYWxjdWxhdGUgdmFsdWVcbiAgQGVhY2ggJHZhbHVlIGluICR2YWx1ZXMge1xuICAgIEBpZiAkdmFsdWUgPT0gMCB7XG4gICAgICAkdmFsOiAkdmFsICsgXCIgMFwiO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAvLyBDYWNoZSAkdmFsdWUgdW5pdFxuICAgICAgJHVuaXQ6IGlmKHR5cGUtb2YoJHZhbHVlKSA9PSBcIm51bWJlclwiLCB1bml0KCR2YWx1ZSksIGZhbHNlKTtcblxuICAgICAgQGlmICR1bml0ID09IHB4IHtcbiAgICAgICAgLy8gQ29udmVydCB0byByZW0gaWYgbmVlZGVkXG4gICAgICAgICR2YWw6ICR2YWwgKyBcIiBcIiArIGlmKCRyZnMtdW5pdCA9PSByZW0sICN7ZGl2aWRlKCR2YWx1ZSwgJHZhbHVlICogMCArICRyZnMtcmVtLXZhbHVlKX1yZW0sICR2YWx1ZSk7XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiAkdW5pdCA9PSByZW0ge1xuICAgICAgICAvLyBDb252ZXJ0IHRvIHB4IGlmIG5lZWRlZFxuICAgICAgICAkdmFsOiAkdmFsICsgXCIgXCIgKyBpZigkcmZzLXVuaXQgPT0gcHgsICN7ZGl2aWRlKCR2YWx1ZSwgJHZhbHVlICogMCArIDEpICogJHJmcy1yZW0tdmFsdWV9cHgsICR2YWx1ZSk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgLy8gSWYgJHZhbHVlIGlzbid0IGEgbnVtYmVyIChsaWtlIGluaGVyaXQpIG9yICR2YWx1ZSBoYXMgYSB1bml0IChub3QgcHggb3IgcmVtLCBsaWtlIDEuNWVtKSBvciAkIGlzIDAsIGp1c3QgcHJpbnQgdGhlIHZhbHVlXG4gICAgICAgICR2YWw6ICR2YWwgKyBcIiBcIiArICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBSZW1vdmUgZmlyc3Qgc3BhY2VcbiAgQHJldHVybiB1bnF1b3RlKHN0ci1zbGljZSgkdmFsLCAyKSk7XG59XG5cbi8vIEhlbHBlciBmdW5jdGlvbiB0byBnZXQgdGhlIHJlc3BvbnNpdmUgdmFsdWUgY2FsY3VsYXRlZCBieSBSRlNcbkBmdW5jdGlvbiByZnMtZmx1aWQtdmFsdWUoJHZhbHVlcykge1xuICAvLyBDb252ZXJ0IHRvIGxpc3RcbiAgJHZhbHVlczogaWYodHlwZS1vZigkdmFsdWVzKSAhPSBsaXN0LCAoJHZhbHVlcywpLCAkdmFsdWVzKTtcblxuICAkdmFsOiBcIlwiO1xuXG4gIC8vIExvb3Agb3ZlciBlYWNoIHZhbHVlIGFuZCBjYWxjdWxhdGUgdmFsdWVcbiAgQGVhY2ggJHZhbHVlIGluICR2YWx1ZXMge1xuICAgIEBpZiAkdmFsdWUgPT0gMCB7XG4gICAgICAkdmFsOiAkdmFsICsgXCIgMFwiO1xuICAgIH0gQGVsc2Uge1xuICAgICAgLy8gQ2FjaGUgJHZhbHVlIHVuaXRcbiAgICAgICR1bml0OiBpZih0eXBlLW9mKCR2YWx1ZSkgPT0gXCJudW1iZXJcIiwgdW5pdCgkdmFsdWUpLCBmYWxzZSk7XG5cbiAgICAgIC8vIElmICR2YWx1ZSBpc24ndCBhIG51bWJlciAobGlrZSBpbmhlcml0KSBvciAkdmFsdWUgaGFzIGEgdW5pdCAobm90IHB4IG9yIHJlbSwgbGlrZSAxLjVlbSkgb3IgJCBpcyAwLCBqdXN0IHByaW50IHRoZSB2YWx1ZVxuICAgICAgQGlmIG5vdCAkdW5pdCBvciAkdW5pdCAhPSBweCBhbmQgJHVuaXQgIT0gcmVtIHtcbiAgICAgICAgJHZhbDogJHZhbCArIFwiIFwiICsgJHZhbHVlO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIC8vIFJlbW92ZSB1bml0IGZyb20gJHZhbHVlIGZvciBjYWxjdWxhdGlvbnNcbiAgICAgICAgJHZhbHVlOiBkaXZpZGUoJHZhbHVlLCAkdmFsdWUgKiAwICsgaWYoJHVuaXQgPT0gcHgsIDEsIGRpdmlkZSgxLCAkcmZzLXJlbS12YWx1ZSkpKTtcblxuICAgICAgICAvLyBPbmx5IGFkZCB0aGUgbWVkaWEgcXVlcnkgaWYgdGhlIHZhbHVlIGlzIGdyZWF0ZXIgdGhhbiB0aGUgbWluaW11bSB2YWx1ZVxuICAgICAgICBAaWYgYWJzKCR2YWx1ZSkgPD0gJHJmcy1iYXNlLXZhbHVlIG9yIG5vdCAkZW5hYmxlLXJmcyB7XG4gICAgICAgICAgJHZhbDogJHZhbCArIFwiIFwiICsgaWYoJHJmcy11bml0ID09IHJlbSwgI3tkaXZpZGUoJHZhbHVlLCAkcmZzLXJlbS12YWx1ZSl9cmVtLCAjeyR2YWx1ZX1weCk7XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgIC8vIENhbGN1bGF0ZSB0aGUgbWluaW11bSB2YWx1ZVxuICAgICAgICAgICR2YWx1ZS1taW46ICRyZnMtYmFzZS12YWx1ZSArIGRpdmlkZShhYnMoJHZhbHVlKSAtICRyZnMtYmFzZS12YWx1ZSwgJHJmcy1mYWN0b3IpO1xuXG4gICAgICAgICAgLy8gQ2FsY3VsYXRlIGRpZmZlcmVuY2UgYmV0d2VlbiAkdmFsdWUgYW5kIHRoZSBtaW5pbXVtIHZhbHVlXG4gICAgICAgICAgJHZhbHVlLWRpZmY6IGFicygkdmFsdWUpIC0gJHZhbHVlLW1pbjtcblxuICAgICAgICAgIC8vIEJhc2UgdmFsdWUgZm9ybWF0dGluZ1xuICAgICAgICAgICRtaW4td2lkdGg6IGlmKCRyZnMtdW5pdCA9PSByZW0sICN7ZGl2aWRlKCR2YWx1ZS1taW4sICRyZnMtcmVtLXZhbHVlKX1yZW0sICN7JHZhbHVlLW1pbn1weCk7XG5cbiAgICAgICAgICAvLyBVc2UgbmVnYXRpdmUgdmFsdWUgaWYgbmVlZGVkXG4gICAgICAgICAgJG1pbi13aWR0aDogaWYoJHZhbHVlIDwgMCwgLSRtaW4td2lkdGgsICRtaW4td2lkdGgpO1xuXG4gICAgICAgICAgLy8gVXNlIGB2bWluYCBpZiB0d28tZGltZW5zaW9uYWwgaXMgZW5hYmxlZFxuICAgICAgICAgICR2YXJpYWJsZS11bml0OiBpZigkcmZzLXR3by1kaW1lbnNpb25hbCwgdm1pbiwgdncpO1xuXG4gICAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSB2YXJpYWJsZSB3aWR0aCBiZXR3ZWVuIDAgYW5kICRyZnMtYnJlYWtwb2ludFxuICAgICAgICAgICR2YXJpYWJsZS13aWR0aDogI3tkaXZpZGUoJHZhbHVlLWRpZmYgKiAxMDAsICRyZnMtYnJlYWtwb2ludCl9I3skdmFyaWFibGUtdW5pdH07XG5cbiAgICAgICAgICAvLyBSZXR1cm4gdGhlIGNhbGN1bGF0ZWQgdmFsdWVcbiAgICAgICAgICAkdmFsOiAkdmFsICsgXCIgY2FsYyhcIiArICRtaW4td2lkdGggKyBpZigkdmFsdWUgPCAwLCBcIiAtIFwiLCBcIiArIFwiKSArICR2YXJpYWJsZS13aWR0aCArIFwiKVwiO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUmVtb3ZlIGZpcnN0IHNwYWNlXG4gIEByZXR1cm4gdW5xdW90ZShzdHItc2xpY2UoJHZhbCwgMikpO1xufVxuXG4vLyBSRlMgbWl4aW5cbkBtaXhpbiByZnMoJHZhbHVlcywgJHByb3BlcnR5OiBmb250LXNpemUpIHtcbiAgQGlmICR2YWx1ZXMgIT0gbnVsbCB7XG4gICAgJHZhbDogcmZzLXZhbHVlKCR2YWx1ZXMpO1xuICAgICRmbHVpZC12YWw6IHJmcy1mbHVpZC12YWx1ZSgkdmFsdWVzKTtcblxuICAgIC8vIERvIG5vdCBwcmludCB0aGUgbWVkaWEgcXVlcnkgaWYgcmVzcG9uc2l2ZSAmIG5vbi1yZXNwb25zaXZlIHZhbHVlcyBhcmUgdGhlIHNhbWVcbiAgICBAaWYgJHZhbCA9PSAkZmx1aWQtdmFsIHtcbiAgICAgICN7JHByb3BlcnR5fTogJHZhbDtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGluY2x1ZGUgX3Jmcy1ydWxlICgpIHtcbiAgICAgICAgI3skcHJvcGVydHl9OiBpZigkcmZzLW1vZGUgPT0gbWF4LW1lZGlhLXF1ZXJ5LCAkdmFsLCAkZmx1aWQtdmFsKTtcblxuICAgICAgICAvLyBJbmNsdWRlIHNhZmFyaSBpZnJhbWUgcmVzaXplIGZpeCBpZiBuZWVkZWRcbiAgICAgICAgbWluLXdpZHRoOiBpZigkcmZzLXNhZmFyaS1pZnJhbWUtcmVzaXplLWJ1Zy1maXgsICgwICogMXZ3KSwgbnVsbCk7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIF9yZnMtbWVkaWEtcXVlcnktcnVsZSAoKSB7XG4gICAgICAgICN7JHByb3BlcnR5fTogaWYoJHJmcy1tb2RlID09IG1heC1tZWRpYS1xdWVyeSwgJGZsdWlkLXZhbCwgJHZhbCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIFNob3J0aGFuZCBoZWxwZXIgbWl4aW5zXG5AbWl4aW4gZm9udC1zaXplKCR2YWx1ZSkge1xuICBAaW5jbHVkZSByZnMoJHZhbHVlKTtcbn1cblxuQG1peGluIHBhZGRpbmcoJHZhbHVlKSB7XG4gIEBpbmNsdWRlIHJmcygkdmFsdWUsIHBhZGRpbmcpO1xufVxuXG5AbWl4aW4gcGFkZGluZy10b3AoJHZhbHVlKSB7XG4gIEBpbmNsdWRlIHJmcygkdmFsdWUsIHBhZGRpbmctdG9wKTtcbn1cblxuQG1peGluIHBhZGRpbmctcmlnaHQoJHZhbHVlKSB7XG4gIEBpbmNsdWRlIHJmcygkdmFsdWUsIHBhZGRpbmctcmlnaHQpO1xufVxuXG5AbWl4aW4gcGFkZGluZy1ib3R0b20oJHZhbHVlKSB7XG4gIEBpbmNsdWRlIHJmcygkdmFsdWUsIHBhZGRpbmctYm90dG9tKTtcbn1cblxuQG1peGluIHBhZGRpbmctbGVmdCgkdmFsdWUpIHtcbiAgQGluY2x1ZGUgcmZzKCR2YWx1ZSwgcGFkZGluZy1sZWZ0KTtcbn1cblxuQG1peGluIG1hcmdpbigkdmFsdWUpIHtcbiAgQGluY2x1ZGUgcmZzKCR2YWx1ZSwgbWFyZ2luKTtcbn1cblxuQG1peGluIG1hcmdpbi10b3AoJHZhbHVlKSB7XG4gIEBpbmNsdWRlIHJmcygkdmFsdWUsIG1hcmdpbi10b3ApO1xufVxuXG5AbWl4aW4gbWFyZ2luLXJpZ2h0KCR2YWx1ZSkge1xuICBAaW5jbHVkZSByZnMoJHZhbHVlLCBtYXJnaW4tcmlnaHQpO1xufVxuXG5AbWl4aW4gbWFyZ2luLWJvdHRvbSgkdmFsdWUpIHtcbiAgQGluY2x1ZGUgcmZzKCR2YWx1ZSwgbWFyZ2luLWJvdHRvbSk7XG59XG5cbkBtaXhpbiBtYXJnaW4tbGVmdCgkdmFsdWUpIHtcbiAgQGluY2x1ZGUgcmZzKCR2YWx1ZSwgbWFyZ2luLWxlZnQpO1xufVxuIl19 */