/*!*****************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/@symfony/webpack-encore/node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./assets/css/frontend/search.css ***!
  \*****************************************************************************************************************************************************************************************************************/
.project-listing {
  margin-top: 2rem;
}

/*!***********************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/@symfony/webpack-encore/node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./assets/js/frontend/components/form/multiselect2/multiselect2.css ***!
  \***********************************************************************************************************************************************************************************************************************************/
.multiselect2 {
  display: block;
  position: relative;
  width: 100%;
  min-height: 40px;
  box-sizing: content-box;
  -ms-touch-action: manipulation;
  touch-action: manipulation;
  text-align: left;
  font-family: inherit;
  font-size: 16px;
}

.multiselect2-arrow {
  position: absolute;
  width: 40px;
  height: 38px;
  right: 1px;
  top: 1px;
  padding: 4px 8px;
  text-align: center;
  transition: transform .2s ease;
  line-height: 16px;
  box-sizing: border-box;
  display: block;
  margin: 0;
  text-decoration: none;
  cursor: pointer;
}

.multiselect2-arrow:before {
  position: relative;
  right: 0;
  top: 65%;
  color: #999;
  margin-top: 4px;
  border-color: #999 transparent transparent;
  border-style: solid;
  border-width: 5px 5px 0;
  content: "";
}

.multiselect2-tags {
  min-height: 40px;
  display: block;
  padding: 8px 40px 0 8px;
  border-radius: 5px;
  border: 1px solid #e2e2e2;
  box-sizing: border-box;
  background-color: #f3f3f3;
  font-size: 14px;
}

.multiselect2.active .multiselect2-tags {
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}

.multiselect2.active.above .multiselect2-tags {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}

.multiselect2-select {
  display: none;
  position: absolute;
  background: #fff;
  width: 100%;
  overflow: auto;
  box-sizing: border-box;
  border: 1px solid #e8e8e8;
  border-bottom-left-radius: 5px;
  border-bottom-right-radius: 5px;
  border-top: none;
  border-bottom: 1px solid #e8e8e8;
  z-index: 100;
}

.multiselect2.above .multiselect2-select {
  bottom: 100%;
  border-top: 1px solid #e8e8e8;
  border-bottom: none;
  border-top-left-radius: 5px;
  border-top-right-radius: 5px;
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}

.multiselect2.active .multiselect2-select {
  display: block;
}

.multiselect2-select > ul {
  display: inline-block;
  list-style: none;
  padding: 0;
  margin: 0;
  min-width: 100%;
  vertical-align: top;
  list-style: none;
}

.multiselect2-select > ul li {
  display: block;
}

.multiselect2-select > ul li a {
  display: block;
  padding: 12px;
  box-sizing: border-box;
  min-height: 40px;
  line-height: 16px;
  text-decoration: none;
  text-transform: none;
  vertical-align: middle;
  position: relative;
  cursor: pointer;
  white-space: nowrap;
  color: #333;
}

.multiselect2.active .multiselect2-arrow {
  transform: rotate(180deg);
}

.multiselect2-select > ul li.selected a {
  font-weight: bold;
  background-color: #f4f4f4;
}

.multiselect2-select > ul li a:hover {
  background-color: #eee;
}

.multiselect2-placeholder {
  color: #888;
}

.multiselect2-tags .tag {
  position: relative;
  display: inline-block;
  padding: 4px 26px 4px 10px;
  border-radius: 5px;
  margin-right: 10px;
  color: #fff;
  line-height: 1;
  background: #ca1d61;
  margin-bottom: 5px;
  white-space: nowrap;
  overflow: hidden;
  max-width: 100%;
  text-overflow: ellipsis;
}

.multiselect2-tags .tag-icon {
  cursor: pointer;
  margin-left: 7px;
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  font-weight: 700;
  font-style: normal;
  width: 22px;
  text-align: center;
  line-height: 22px;
  transition: all .2s ease;
  border-radius: 5px;
}

.multiselect2-tags .tag-icon:after {
  content: "\D7";
}

.multiselect2-tags .tag-icon:hover {
  background: #fff;
  color: #ca1c61;
}

/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/@symfony/webpack-encore/node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./assets/js/frontend/components/form/multiselect2/multiselect2.vue?vue&type=style&index=0&id=721107b0&scoped=true&lang=css ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/


/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/@symfony/webpack-encore/node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./assets/js/frontend/components/project/project-slides.vue?vue&type=style&index=0&id=3a7aa6a0&scoped=true&lang=css ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/

.no-scrollbar[data-v-3a7aa6a0] {
  -ms-overflow-style: none;
  scrollbar-width: none;
}

/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/@symfony/webpack-encore/node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./assets/js/frontend/components/project/project.vue?vue&type=style&index=0&id=36a42722&scoped=true&lang=css ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/

.project[data-v-36a42722] {
  --symbol-bg-color: #d9308a;
  --symbol-color: #fff;
  --area-bg-color: #351c4f;
  --area-color: #fff;
  --counters-color: #999;
}


/*# sourceMappingURL=data:application/json;charset=utf-8;base64,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O0VBQzFCLG9CQUFvQjtFQUNwQix3QkFBd0I7RUFDeEIsa0JBQWtCO0VBQ2xCLHNCQUFzQjtBQUN4QiIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL2Fzc2V0cy9jc3MvZnJvbnRlbmQvc2VhcmNoLmNzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvZnJvbnRlbmQvY29tcG9uZW50cy9mb3JtL211bHRpc2VsZWN0Mi9tdWx0aXNlbGVjdDIuY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9qcy9mcm9udGVuZC9jb21wb25lbnRzL3Byb2plY3QvcHJvamVjdC1zbGlkZXMudnVlIiwid2VicGFjazovLy8uL2Fzc2V0cy9qcy9mcm9udGVuZC9jb21wb25lbnRzL3Byb2plY3QvcHJvamVjdC52dWUiXSwic291cmNlc0NvbnRlbnQiOlsiLnByb2plY3QtbGlzdGluZyB7XG4gIG1hcmdpbi10b3A6IDJyZW07XG59XG4iLCIubXVsdGlzZWxlY3QyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDQwcHg7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAtbXMtdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG4gIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiAxNnB4O1xufVxuXG4ubXVsdGlzZWxlY3QyLWFycm93IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogNDBweDtcbiAgaGVpZ2h0OiAzOHB4O1xuICByaWdodDogMXB4O1xuICB0b3A6IDFweDtcbiAgcGFkZGluZzogNHB4IDhweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjJzIGVhc2U7XG4gIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLm11bHRpc2VsZWN0Mi1hcnJvdzpiZWZvcmUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHJpZ2h0OiAwO1xuICB0b3A6IDY1JTtcbiAgY29sb3I6ICM5OTk7XG4gIG1hcmdpbi10b3A6IDRweDtcbiAgYm9yZGVyLWNvbG9yOiAjOTk5IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDVweCA1cHggMDtcbiAgY29udGVudDogXCJcIjtcbn1cblxuLm11bHRpc2VsZWN0Mi10YWdzIHtcbiAgbWluLWhlaWdodDogNDBweDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDhweCA0MHB4IDAgOHB4O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlMmUyZTI7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmM2YzZjM7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLm11bHRpc2VsZWN0Mi5hY3RpdmUgLm11bHRpc2VsZWN0Mi10YWdzIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG59XG5cbi5tdWx0aXNlbGVjdDIuYWN0aXZlLmFib3ZlIC5tdWx0aXNlbGVjdDItdGFncyB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xufVxuXG4ubXVsdGlzZWxlY3QyLXNlbGVjdCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93OiBhdXRvO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZThlOGU4O1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA1cHg7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA1cHg7XG4gIGJvcmRlci10b3A6IG5vbmU7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZThlOGU4O1xuICB6LWluZGV4OiAxMDA7XG59XG5cbi5tdWx0aXNlbGVjdDIuYWJvdmUgLm11bHRpc2VsZWN0Mi1zZWxlY3Qge1xuICBib3R0b206IDEwMCU7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZThlOGU4O1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA1cHg7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA1cHg7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xufVxuXG4ubXVsdGlzZWxlY3QyLmFjdGl2ZSAubXVsdGlzZWxlY3QyLXNlbGVjdCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4ubXVsdGlzZWxlY3QyLXNlbGVjdCA+IHVsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIG1pbi13aWR0aDogMTAwJTtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxuLm11bHRpc2VsZWN0Mi1zZWxlY3QgPiB1bCBsaSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4ubXVsdGlzZWxlY3QyLXNlbGVjdCA+IHVsIGxpIGEge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogMTJweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgbWluLWhlaWdodDogNDBweDtcbiAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBjb2xvcjogIzMzMztcbn1cblxuLm11bHRpc2VsZWN0Mi5hY3RpdmUgLm11bHRpc2VsZWN0Mi1hcnJvdyB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG59XG5cbi5tdWx0aXNlbGVjdDItc2VsZWN0ID4gdWwgbGkuc2VsZWN0ZWQgYSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjRmNGY0O1xufVxuXG4ubXVsdGlzZWxlY3QyLXNlbGVjdCA+IHVsIGxpIGE6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xufVxuXG4ubXVsdGlzZWxlY3QyLXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICM4ODg7XG59XG5cbi5tdWx0aXNlbGVjdDItdGFncyAudGFnIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDRweCAyNnB4IDRweCAxMHB4O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIG1hcmdpbi1yaWdodDogMTBweDtcbiAgY29sb3I6ICNmZmY7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBiYWNrZ3JvdW5kOiAjY2ExZDYxO1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG1heC13aWR0aDogMTAwJTtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG5cbi5tdWx0aXNlbGVjdDItdGFncyAudGFnLWljb24ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG1hcmdpbi1sZWZ0OiA3cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDA7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBmb250LXdlaWdodDogNzAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIHdpZHRoOiAyMnB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGxpbmUtaGVpZ2h0OiAyMnB4O1xuICB0cmFuc2l0aW9uOiBhbGwgLjJzIGVhc2U7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbn1cblxuLm11bHRpc2VsZWN0Mi10YWdzIC50YWctaWNvbjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXFxEN1wiO1xufVxuXG4ubXVsdGlzZWxlY3QyLXRhZ3MgLnRhZy1pY29uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgY29sb3I6ICNjYTFjNjE7XG59XG4iLCI8c2NyaXB0IHNldHVwPlxuaW1wb3J0IHtpbmplY3QsIHJlZn0gZnJvbSBcInZ1ZVwiO1xuaW1wb3J0IHt1c2VJbWFnZX0gZnJvbSBcIkAvanMvY29tcG9zYWJsZXMvdXNlSW1hZ2VcIjtcbmltcG9ydCB7dXNlQXNwZWN0UmF0aW99IGZyb20gXCJAL2pzL2NvbXBvc2FibGVzL3VzZUFzcGVjdFJhdGlvXCI7XG5cbmNvbnN0IHByb3BzID0gZGVmaW5lUHJvcHMoe1xuICBpbWFnZXM6IHtcbiAgICB0eXBlOiBPYmplY3QsXG4gICAgcmVxdWlyZWQ6IHRydWVcbiAgfSxcbiAgbWlycm9yZWQ6IHtcbiAgICB0eXBlOiBCb29sZWFuLFxuICAgIGRlZmF1bHQ6IGZhbHNlXG4gIH1cbn0pXG5cbmNvbnN0IGFtYXpvbkNvbmZpZyA9IGluamVjdCgnYW1hem9uJylcbmNvbnN0IHsgZ2V0VGh1bWIsIGdldENvbnRlbnQ6IGdldEltYWdlQ29udGVudCB9ID0gdXNlSW1hZ2UoYW1hem9uQ29uZmlnLmltYWdlX2Nsb3VkZnJvbnRfZW5kcG9pbnQsIGFtYXpvbkNvbmZpZy5zM19idWNrZXRfbmFtZSlcbmNvbnN0IHZpZXdwb3J0ID0gcmVmKG51bGwpXG5cbmZ1bmN0aW9uIHNjcm9sbE5leHQoKSB7XG4gIGNvbnN0IHdpZHRoID0gdmlld3BvcnQudmFsdWUuY2xpZW50V2lkdGhcbiAgY29uc3Qgc2Nyb2xsUG9zID0gdmlld3BvcnQudmFsdWUuc2Nyb2xsTGVmdFxuICBjb25zdCBuZXh0U2Nyb2xsUG9zID0gc2Nyb2xsUG9zICsgd2lkdGhcbiAgdmlld3BvcnQudmFsdWUuc2Nyb2xsVG8oe1xuICAgIGxlZnQ6IG5leHRTY3JvbGxQb3MsIGJlaGF2aW9yOiAnc21vb3RoJ1xuICB9KVxufVxuXG5mdW5jdGlvbiBzY3JvbGxQcmV2KCkge1xuICBjb25zdCB3aWR0aCA9IHZpZXdwb3J0LnZhbHVlLmNsaWVudFdpZHRoXG4gIGNvbnN0IHNjcm9sbFBvcyA9IHZpZXdwb3J0LnZhbHVlLnNjcm9sbExlZnRcbiAgY29uc3QgbmV4dFNjcm9sbFBvcyA9IHNjcm9sbFBvcyAtIHdpZHRoXG4gIHZpZXdwb3J0LnZhbHVlLnNjcm9sbFRvKHtcbiAgICBsZWZ0OiBuZXh0U2Nyb2xsUG9zLCBiZWhhdmlvcjogJ3Ntb290aCdcbiAgfSlcbn1cbjwvc2NyaXB0PlxuXG48dGVtcGxhdGU+XG4gIDxkaXYgY2xhc3M9XCJyZWxhdGl2ZSBzZWxlY3Qtbm9uZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJtZDp3LVszNTBweF0gZ3JvdXAtWy5sYXJnZV06dy1mdWxsIGdyb3VwLVsubGFyZ2VdOm1heC13LVsxNjAwcHhdIGZsZXggZmxleC1ub3dyYXAgb3ZlcmZsb3cteC1hdXRvIHNuYXAteCBzbmFwLW1hbmRhdG9yeSBzY3JvbGwtc21vb3RoIG5vLXNjcm9sbGJhclwiIHJlZj1cInZpZXdwb3J0XCI+XG4gICAgICA8dGVtcGxhdGUgdi1mb3I9XCJpbWFnZSBpbiBpbWFnZXNbJ3Byb2plY3RfdmlldyddXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtbm9uZSBzbmFwLWNlbnRlciBiYXNpcy1mdWxsXCI+XG4gICAgICAgICAgPGltZyBjbGFzcz1cIm1kOnctWzM1MHB4XSBtZDpoLVsyMThweF0gZ3JvdXAtWy5sYXJnZV06dy1hdXRvIG1kOmdyb3VwLVsubGFyZ2VdOmgtYXV0byBzbTpyb3VuZGVkLWxnXCIgOmNsYXNzPVwieyAnc2NhbGUteC1bLTFdJzogbWlycm9yZWQgfVwiXG4gICAgICAgICAgICAgICA6c3JjPVwiZ2V0VGh1bWIoeyBwYXRoOiBpbWFnZS5wYXRoLCB3aWR0aDogMzUwLCBoZWlnaHQ6IHVzZUFzcGVjdFJhdGlvKHsgd2lkdGg6IDM1MCwgcmF0aW86IDE2LzkgfSksIG1pcnJvcjogbWlycm9yZWQsIGVmZmVjdDogaW1hZ2UudHlwZSA9PT0gJ3Byb2plY3RfdmlldycgPyAnY292ZXInIDogJ2luc2lkZScgfSlcIlxuICAgICAgICAgICAgICAgYWx0PVwiXCJcbiAgICAgICAgICAgICAgIDpzcmNzZXQ9XCJpbWFnZS5zcmNzZXRcIlxuICAgICAgICAgICAgICAgbG9hZGluZz1cImxhenlcIlxuICAgICAgICAgICAgICAgZHJhZ2dhYmxlPVwiZmFsc2VcIlxuICAgICAgICAgID5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L3RlbXBsYXRlPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJoaWRkZW4gbWQ6YmxvY2sgYWJzb2x1dGUgdG9wLTEvMiByaWdodC0yIHctWzMwcHhdIGgtWzMwcHhdIGJnLWdyYXktNzAwIHJvdW5kZWQtZnVsbCBob3ZlcjpiZy1ibGFja1wiIEBjbGljay5wcmV2ZW50LnN0b3A9XCJzY3JvbGxOZXh0XCIgdi1pZj1cImltYWdlcy5wcm9qZWN0X3ZpZXcubGVuZ3RoID4gMVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImFic29sdXRlIHRvcC0xLzIgbGVmdC0xLzIgLXRyYW5zbGF0ZS14LVs2cHhdIC10cmFuc2xhdGUteS0xLzIgdy1bMTBweF0gaC1bMTBweF0gLXJvdGF0ZS1bMTM1ZGVnXSBib3JkZXItbC0yIGJvcmRlci1iLTIgYm9yZGVyLXdoaXRlXCI+PC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImhpZGRlbiBtZDpibG9jayBhYnNvbHV0ZSB0b3AtMS8yIGxlZnQtMiB3LVszMHB4XSBoLVszMHB4XSBiZy1ncmF5LTcwMCByb3VuZGVkLWZ1bGwgaG92ZXI6YmctYmxhY2tcIiBAY2xpY2sucHJldmVudC5zdG9wPVwic2Nyb2xsUHJldlwiIHYtaWY9XCJpbWFnZXMucHJvamVjdF92aWV3Lmxlbmd0aCA+IDFcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJhYnNvbHV0ZSB0b3AtMS8yIGxlZnQtMS8yIC10cmFuc2xhdGUteC1bNHB4XSAtdHJhbnNsYXRlLXktMS8yIHctWzEwcHhdIGgtWzEwcHhdIHJvdGF0ZS1bNDVkZWddIGJvcmRlci1sLTIgYm9yZGVyLWItMiBib3JkZXItd2hpdGVcIj48L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L3RlbXBsYXRlPlxuXG48c3R5bGUgc2NvcGVkPlxuLm5vLXNjcm9sbGJhciB7XG4gIC1tcy1vdmVyZmxvdy1zdHlsZTogbm9uZTtcbiAgc2Nyb2xsYmFyLXdpZHRoOiBub25lO1xufVxuPC9zdHlsZT5cbiIsIjxzY3JpcHQgc2V0dXA+XG5cbmltcG9ydCB7Y29tcHV0ZWQsIGluamVjdCwgcmVmLCB3YXRjaH0gZnJvbSBcInZ1ZVwiO1xuaW1wb3J0IHt1c2VJMThufSBmcm9tIFwidnVlLWkxOG5cIjtcbmltcG9ydCBQcm9qZWN0U2xpZGVzIGZyb20gXCIuL3Byb2plY3Qtc2xpZGVzLnZ1ZVwiO1xuaW1wb3J0IHt1c2VQcm9qZWN0fSBmcm9tIFwiQC9qcy9jb21wb3NhYmxlcy91c2VQcm9qZWN0XCI7XG5pbXBvcnQge0ljb259IGZyb20gXCJAaWNvbmlmeS92dWVcIlxuaW1wb3J0IHt1c2VJbWFnZX0gZnJvbSBcIkAvanMvY29tcG9zYWJsZXMvdXNlSW1hZ2VcIjtcbmltcG9ydCBGYXZvcml0ZXMgZnJvbSBcIkAvanMvZnJvbnRlbmQvY29tcG9uZW50cy9mYXZvcml0ZXMvZmF2b3JpdGVzLnZ1ZVwiO1xuaW1wb3J0IHtGb3JtYXR0ZXJ9IGZyb20gXCJAL2pzL3Rvb2xzL2kxOG4vZm9ybWF0dGVyXCI7XG5cbmNvbnN0IHsgdCB9ID0gdXNlSTE4bigpXG5cbmNvbnN0IGVtaXQgPSBkZWZpbmVFbWl0cyhbJ2VudGVyLXByb2plY3QnLCAndXBkYXRlRmF2b3JpdGVzJ10pXG5cbmNvbnN0IHByb3BzID0gZGVmaW5lUHJvcHMoe1xuICBwcm9qZWN0OiB7XG4gICAgdHlwZTogT2JqZWN0LFxuICAgIHJlcXVpcmVkOiB0cnVlXG4gIH0sXG4gIGNvbmZpZzoge1xuICAgIHR5cGU6IE9iamVjdCxcbiAgICBkZWZhdWx0OiBBcHBHbG9iYWwuY29uZmlnXG4gIH0sXG4gIG1pcnJvcjoge1xuICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgZGVmYXVsdDogZmFsc2VcbiAgfSxcbiAgc2hvd1JpYmJvbnM6IHtcbiAgICB0eXBlOiBCb29sZWFuLFxuICAgIGRlZmF1bHQ6IHRydWVcbiAgfSxcbiAgc2hvd1RpdGxlczoge1xuICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgZGVmYXVsdDogdHJ1ZVxuICB9LFxuICBzaG93Q29zdDoge1xuICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgZGVmYXVsdDogdHJ1ZVxuICB9LFxuICBzaG93RmF2b3JpdGVzOiB7XG4gICAgdHlwZTogQm9vbGVhbixcbiAgICBkZWZhdWx0OiBmYWxzZVxuICB9LFxuICBzaG93VmFyaWFudEZlYXR1cmVzOiB7XG4gICAgdHlwZTogQm9vbGVhbixcbiAgICBkZWZhdWx0OiBmYWxzZVxuICB9LFxuICBsYWJlbHM6IHtcbiAgICB0eXBlOiBPYmplY3QsXG4gICAgZGVmYXVsdDoge1xuICAgICAgbmV3OiAnTm93b8WbxIcnLFxuICAgICAgcmVjb21tZW5kZWQ6ICdQb2xlY2FuZSdcbiAgICB9XG4gIH0sXG4gIHVuaXRzOiB7XG4gICAgdHlwZTogT2JqZWN0LFxuICAgIGRlZmF1bHQ6IHtcbiAgICAgICdtMic6ICdtPHN1cD4yPC9zdXA+J1xuICAgIH1cbiAgfSxcbiAgY3VycmVuY3k6IHtcbiAgICB0eXBlOiBTdHJpbmcsXG4gICAgZGVmYXVsdDogJ1BMTidcbiAgfSxcbiAgaXNQYXJ0bmVyOiB7XG4gICAgdHlwZTogQm9vbGVhbixcbiAgICBkZWZhdWx0OiBmYWxzZVxuICB9LFxuICB2aWV3OiB7XG4gICAgdHlwZTogU3RyaW5nLFxuICAgIGRlZmF1bHQ6ICdzbWFsbCdcbiAgfSxcbiAgZmxvb3JzOiB7XG4gICAgdHlwZTogT2JqZWN0LFxuICAgIGRlZmF1bHQ6IHt9XG4gIH0sXG4gIGZhdm9yaXRlczoge1xuICAgIHR5cGU6IEFycmF5LFxuICAgIGRlZmF1bHQ6IFtdXG4gIH0sXG59KVxuXG5jb25zdCBzZWxlY3RlZEZsb29yID0gcmVmKDEpXG5cbmNvbnN0IF9wcm9qZWN0ID0gcmVmKHByb3BzLnByb2plY3QpXG5cbndhdGNoKFxuICAgICgpID0+IHByb3BzLnByb2plY3QsXG4gICAgKG4pID0+IHtcbiAgICAgIF9wcm9qZWN0LnZhbHVlID0gblxuICAgIH1cbilcblxuY29uc3QgYW1hem9uQ29uZmlnID0gaW5qZWN0KCdhbWF6b24nKVxuY29uc3QgeyBpc1ZhcmlhbnQsIGFyZWEsIGNvc3RFc3RpbWF0ZVRvdGFsLCBpc1dpdGhDb25zdHJ1Y3Rpb24sIGlzSW5GYXZvcml0ZXMgfSA9IHVzZVByb2plY3QoX3Byb2plY3QsIHByb3BzLmNvbmZpZylcbmNvbnN0IHsgZ2V0VGh1bWIsIGdldFNyY1NldCwgZ2V0Q29udGVudDogZ2V0SW1hZ2VDb250ZW50IH0gPSB1c2VJbWFnZShhbWF6b25Db25maWcuaW1hZ2VfY2xvdWRmcm9udF9lbmRwb2ludCwgYW1hem9uQ29uZmlnLnMzX2J1Y2tldF9uYW1lKVxuXG5jb25zdCBudW1iZXJGb3JtYXR0ZXIgPSBuZXcgSW50bC5OdW1iZXJGb3JtYXQoQXBwR2xvYmFsLmxvY2FsZSk7XG5cbmNvbnN0IG5hbWVDc3NDbGFzcyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgaWYgKGlzV2l0aENvbnN0cnVjdGlvbi52YWx1ZSkge1xuICAgIHJldHVybiAnYmctbGltZS0yMDAgdGV4dC1zdG9uZS03MDAnXG4gIH1cbiAgZWxzZSB7XG4gICAgcmV0dXJuICdiZy1waW5rLTUwMCdcbiAgfVxufSlcblxuY29uc3QgaW1hZ2VzID0gY29tcHV0ZWQoKCkgPT4ge1xuICBsZXQgcHJvamVjdEltYWdlcyA9IFtdXG4gIHByb3BzLnByb2plY3QuaW1hZ2VzLmZvckVhY2goaW1hZ2UgPT4ge1xuICAgIGlmIChwcm9qZWN0SW1hZ2VzW2ltYWdlLnR5cGVdID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHByb2plY3RJbWFnZXNbaW1hZ2UudHlwZV0gPSBbXVxuICAgIH1cbiAgICBwcm9qZWN0SW1hZ2VzW2ltYWdlLnR5cGVdLnB1c2goaW1hZ2UpXG4gIH0pXG4gIHJldHVybiBwcm9qZWN0SW1hZ2VzXG59KVxuXG5jb25zdCBzdG9ja0Rpc2NvdW50ID0gY29tcHV0ZWQoKCkgPT4ge1xuICBpZiAocHJvcHMucHJvamVjdC5zdG9jay5pZCAhPT0gbnVsbCkge1xuICAgIGlmIChwcm9wcy5pc1BhcnRuZXIpIHtcbiAgICAgIHJldHVybiBwcm9wcy5wcm9qZWN0LnN0b2NrLnBhcnRuZXJfZGlzY291bnRcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICByZXR1cm4gcHJvcHMucHJvamVjdC5zdG9jay5kaXNjb3VudFxuICAgIH1cbiAgfVxuICByZXR1cm4gMFxufSlcblxuY29uc3QgcHJvamVjdGlvbnMgPSBjb21wdXRlZCgoKSA9PiB7XG4gIHJldHVybiBwcm9wcy5wcm9qZWN0LmltYWdlcy5maWx0ZXIoaW1hZ2UgPT4gaW1hZ2UudHlwZSA9PT0gJ3Byb2plY3RfcHJvamVjdGlvbicgJiYgIWltYWdlLm1pcnJvcmVkKS5zb3J0KChhLCBiKSA9PiB7XG4gICAgcmV0dXJuIGEuZmxvb3IgPCBiLmZsb29yID8gLTEgOiAoYS5mbG9vciA+IGIuZmxvb3IgPyAxIDogMClcbiAgfSlcbn0pXG5cbmZ1bmN0aW9uIHByaWNlVGV4dChwcmljZSkge1xuICBsZXQgZm9ybWF0dGVyID0gbmV3IEludGwuTnVtYmVyRm9ybWF0KCdwbC1QTCcsIHtcbiAgICBzdHlsZTogJ2N1cnJlbmN5JyxcbiAgICBjdXJyZW5jeTogcHJvcHMuY3VycmVuY3lcbiAgfSk7XG5cbiAgcmV0dXJuIGZvcm1hdHRlci5mb3JtYXQocHJpY2UpO1xufVxuXG5mdW5jdGlvbiBjbGljaygpIHtcbiAgZW1pdCgnZW50ZXItcHJvamVjdCcsIHByb3BzLnByb2plY3QpXG59XG5cbmZ1bmN0aW9uIHByb2plY3RDc3MoKSB7XG4gIHN3aXRjaCAocHJvcHMudmlldykge1xuICAgIGNhc2UgJ2xhcmdlJzpcbiAgICAgIHJldHVybiAnbGFyZ2UnXG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiAnc21hbGwnXG4gIH1cbn1cblxuZnVuY3Rpb24gc3dpdGNoRmxvb3IoZmxvb3IpIHtcbiAgc2VsZWN0ZWRGbG9vci52YWx1ZSA9IHBhcnNlSW50KGZsb29yKVxufVxuXG5mdW5jdGlvbiB1cGRhdGVGYXZvcml0ZXMoKSB7XG4gIGVtaXQoJ3VwZGF0ZUZhdm9yaXRlcycpXG59XG48L3NjcmlwdD5cblxuPHRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXdyYXAganVzdGlmeS1jZW50ZXIgcHJvamVjdCBncm91cCByZWxhdGl2ZSB0ZXh0LWluaGVyaXQgbWQ6dy1bMzUwcHhdIGdyb3VwLVsubGFyZ2VdOmgtYXV0byBncm91cC1bLmxhcmdlXTptZDpoLWF1dG8gZ3JvdXAtWy5sYXJnZV06dy1mdWxsIGdyb3VwLVsubGFyZ2VdOm1heC13LVsxNjAwcHhdXCIgOmNsYXNzPVwicHJvamVjdENzc1wiPlxuICAgIDxhIGNsYXNzPVwiYmxvY2sgZGVjb3JhdGlvbi0wIHRleHQtWyMyRDJEMkZdIGdyb3VwLVsubGFyZ2VdOmxnOnctMS8yIGdyb3VwLVsubGFyZ2VdOnhsOnctNS8xMlwiIDpocmVmPVwicHJvamVjdC51cmxcIiBAY2xpY2sucHJldmVudD1cImNsaWNrXCIgZGF0YS1nYS1hY3Rpb249XCJwcm9kdWN0LWNsaWNrLWltcHJlc3Npb25cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJyZWxhdGl2ZVwiPlxuICAgICAgICA8cHJvamVjdC1zbGlkZXMgOmltYWdlcz1cImltYWdlc1wiIDptaXJyb3JlZD1cInByb2plY3Quc3RvY2sgPyBCb29sZWFuKHByb2plY3Quc3RvY2subWlycm9yKSA6IGZhbHNlXCI+PC9wcm9qZWN0LXNsaWRlcz5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWJzb2x1dGUgdG9wLTIgbGVmdC0yIGZsZXggZmxleC1jb2wgZ2FwLTIgdGV4dC1bMTFweF0gdXBwZXJjYXNlXCIgdi1pZj1cInNob3dSaWJib25zXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggcHgtMiBweS0wLjUgdGV4dC1ibGFjayBmb250LWJvbGQgbGFiZWwgbmV3IGJnLXB1cnBsZS0zMDAgdGV4dC1jZW50ZXIgcm91bmRlZC1tZCBqdXN0aWZ5LWNlbnRlciBpdGVtcy1jZW50ZXIgZ2FwLTFcIiB2LWlmPVwicHJvamVjdC5zdG9ja19pZCAhPT0gbnVsbCAmJiBzdG9ja0Rpc2NvdW50ID4gMFwiPlxuICAgICAgICAgICAgPHN2ZyBjbGFzcz1cInNpemUtWzE2cHhdXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgNTAgNTBcIj5cbiAgICAgICAgICAgICAgPHBhdGggZD1cIk0gMjguNjI1IDIgQyAyOC4yODUxNTYgMi4wMDM5MDYgMjcuOTQxNDA2IDIuMDE5NTMxIDI3LjU5Mzc1IDIuMDYyNSBDIDI2LjkwMjM0NCAyLjE1MjM0NCAyNi4xNDQ1MzEgMi4zODY3MTkgMjUuNTYyNSAyLjk2ODc1IEwgMi44NDM3NSAyNS42ODc1IEMgMS43MjI2NTYgMjYuODA4NTk0IDEuNzIyNjU2IDI4LjY2MDE1NiAyLjg0Mzc1IDI5Ljc4MTI1IEwgMjAuMjE4NzUgNDcuMTU2MjUgQyAyMS4zMzk4NDQgNDguMjc3MzQ0IDIzLjE5MTQwNiA0OC4yNzczNDQgMjQuMzEyNSA0Ny4xNTYyNSBMIDQ3LjAzMTI1IDI0LjQzNzUgQyA0Ny42MDkzNzUgMjMuODU5Mzc1IDQ3Ljg0NzY1NiAyMy4wOTM3NSA0Ny45Mzc1IDIyLjQwNjI1IEMgNDguMDI3MzQ0IDIxLjcxODc1IDQ4IDIxLjAzOTA2MyA0OCAyMC4zNzUgTCA0OCA1LjUgQyA0OCAzLjU3ODEyNSA0Ni40MjE4NzUgMiA0NC41IDIgTCAyOS42MjUgMiBDIDI5LjMwMDc4MSAyIDI4Ljk2NDg0NCAxLjk5NjA5NCAyOC42MjUgMiBaIE0gMjguNjU2MjUgNCBDIDI4Ljk0OTIxOSAzLjk5MjE4OCAyOS4yODUxNTYgNCAyOS42MjUgNCBMIDQ0LjUgNCBDIDQ1LjMzOTg0NCA0IDQ2IDQuNjYwMTU2IDQ2IDUuNSBMIDQ2IDIwLjM3NSBDIDQ2IDIxLjA3MDMxMyA0NS45OTYwOTQgMjEuNjk5MjE5IDQ1LjkzNzUgMjIuMTU2MjUgQyA0NS44Nzg5MDYgMjIuNjEzMjgxIDQ1Ljc4NTE1NiAyMi44Mzk4NDQgNDUuNjI1IDIzIEwgMjIuOTA2MjUgNDUuNzUgQyAyMi41NTA3ODEgNDYuMTA1NDY5IDIxLjk4MDQ2OSA0Ni4xMDU0NjkgMjEuNjI1IDQ1Ljc1IEwgMjEuNSA0NS41OTM3NSBMIDQuMjUgMjguMzc1IEMgMy44OTQ1MzEgMjguMDE5NTMxIDMuODk0NTMxIDI3LjQ0OTIxOSA0LjI1IDI3LjA5Mzc1IEwgMjcgNC4zNzUgQyAyNy4xNTYyNSA0LjIxODc1IDI3LjQxNDA2MyA0LjEyMTA5NCAyNy44NzUgNC4wNjI1IEMgMjguMTA1NDY5IDQuMDMxMjUgMjguMzYzMjgxIDQuMDA3ODEzIDI4LjY1NjI1IDQgWiBNIDM5IDcgQyAzNi44MDA3ODEgNyAzNSA4LjgwMDc4MSAzNSAxMSBDIDM1IDEzLjE5OTIxOSAzNi44MDA3ODEgMTUgMzkgMTUgQyA0MS4xOTkyMTkgMTUgNDMgMTMuMTk5MjE5IDQzIDExIEMgNDMgOC44MDA3ODEgNDEuMTk5MjE5IDcgMzkgNyBaIE0gMzkgOSBDIDQwLjExNzE4OCA5IDQxIDkuODgyODEzIDQxIDExIEMgNDEgMTIuMTE3MTg4IDQwLjExNzE4OCAxMyAzOSAxMyBDIDM3Ljg4MjgxMyAxMyAzNyAxMi4xMTcxODggMzcgMTEgQyAzNyA5Ljg4MjgxMyAzNy44ODI4MTMgOSAzOSA5IFpcIj48L3BhdGg+XG4gICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgIHt7IHQoJ3Byb2plY3Qub3V0bGV0X2Rpc2NvdW50JywgeyBkaXNjb3VudDogc3RvY2tEaXNjb3VudCB9KSB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDx0ZW1wbGF0ZSB2LWVsc2U+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmxvY2sgcHgtMiBweS1bMnB4XSB0ZXh0LWJsYWNrIGZvbnQtYm9sZCBsYWJlbCBuZXcgYmctbGltZS0yMDAgdGV4dC1jZW50ZXIgcm91bmRlZC1tZFwiIHYtaWY9XCJpc1dpdGhDb25zdHJ1Y3Rpb25cIj57eyB0KCdwcm9qZWN0LndpdGhfY29uc3RydWN0aW9uJykgfX08L2Rpdj5cbiAgICAgICAgICAgIDx0ZW1wbGF0ZSB2LWVsc2U+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJibG9jayBweC0yIHB5LVsycHhdIHRleHQtYmxhY2sgZm9udC1ib2xkIGxhYmVsIG5ldyBiZy1waW5rLTUwMCB0ZXh0LXdoaXRlIHRleHQtY2VudGVyIHJvdW5kZWQtbWRcIiB2LWlmPVwiQm9vbGVhbihwcm9qZWN0LmlzX25ldylcIj57eyB0KCdwcm9qZWN0Lm5ldycpIH19PC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJibG9jayBweC0yIHB5LVsycHhdIHRleHQtd2hpdGUgbGFiZWwgcmVjb21tZW5kZWQgYmctYmx1ZS00MDAgZm9udC1ib2xkIHRleHQtY2VudGVyIHJvdW5kZWQtbWRcIiB2LWlmPVwiQm9vbGVhbihwcm9qZWN0LmlzX3JlY29tbWVuZGVkKSAmJiAhKEJvb2xlYW4ocHJvamVjdC5pc19uZXcpKVwiPnt7IHQoJ3Byb2plY3QucmVjb21tZW5kZWQnKSB9fTwvZGl2PlxuICAgICAgICAgICAgPC90ZW1wbGF0ZT5cbiAgICAgICAgICA8L3RlbXBsYXRlPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWJzb2x1dGUgYm90dG9tLTIgbGVmdC0yIGZsZXhcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicHktMSBweC0zIHRleHQtWy0tc3ltYm9sLWNvbG9yXSBmb250LWJvbGQgcm91bmRlZC1tZFwiIDpjbGFzcz1cIm5hbWVDc3NDbGFzc1wiIHYtaHRtbD1cImAke3Byb2plY3Quc3ltYm9sfSR7IGlzVmFyaWFudCA/ICcgJyArIHByb2plY3QuY29kZSA6ICcnIH1gXCI+PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxmYXZvcml0ZXMgY2xhc3M9XCJhYnNvbHV0ZSB0b3AtMiByaWdodC0yXCIgdHlwZT1cInByb2plY3RcIiA6aWQ9XCJwcm9qZWN0LmlkX3ByaW1hcnlcIiA6dmFsdWU9XCJpc0luRmF2b3JpdGVzKGZhdm9yaXRlcylcIiBAdXBkYXRlPVwidXBkYXRlRmF2b3JpdGVzXCIgdi1pZj1cInNob3dGYXZvcml0ZXNcIiAvPlxuICAgICAgPC9kaXY+XG5cbjwhLS0gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LW5vd3JhcCBpdGVtcy1zdHJldGNoIG15LVs1cHhdIG14LWF1dG8gYmctWyYjNDU7JiM0NTtwcm9qZWN0LWluZm8tYmctY29sb3JdIHRleHQtWyYjNDU7JiM0NTtwcm9qZWN0LWluZm8tY29sb3JdIHJvdW5kZWQtWzNweF0gb3ZlcmZsb3ctaGlkZGVuIHRleHQtWzE0cHhdIG1heC1oLVszN3B4XVwiPi0tPlxuPCEtLSAgICAgICAgPGRpdiBjbGFzcz1cIm5hbWUgbWF4LXctWzE0MHB4XSBweS0yIHB4LTMgdGV4dC1bJiM0NTsmIzQ1O3N5bWJvbC1jb2xvcl0gZm9udC1ib2xkIG92ZXJmbG93LWhpZGRlblwiIDpjbGFzcz1cIm5hbWVDc3NDbGFzc1wiIHYtaHRtbD1cImAke3Byb2plY3Quc3ltYm9sfSR7IGlzVmFyaWFudCA/ICcgJyArIHByb2plY3QuY29kZSA6ICcnIH1gXCI+PC9kaXY+LS0+XG48IS0tICAgICAgICA8ZGl2IGNsYXNzPVwiYXJlYSBwLTIgYmctWyYjNDU7JiM0NTthcmVhLWJnLWNvbG9yXSB0ZXh0LVsmIzQ1OyYjNDU7YXJlYS1jb2xvcl0gdGV4dC1yaWdodFwiPi0tPlxuPCEtLSAgICAgICAgICB7eyBhcmVhIH19LS0+XG48IS0tICAgICAgICAgIDx0ZW1wbGF0ZSB2LWlmPVwicHJvamVjdC5nYXJhZ2VfYXJlYSA+IDBcIj4rIHt7IE1hdGgucm91bmQocHJvamVjdC5nYXJhZ2VfYXJlYSkgfX08L3RlbXBsYXRlPi0tPlxuPCEtLSAgICAgICAgICB7eyB1bml0cy5tMiB9fS0tPlxuPCEtLSAgICAgICAgPC9kaXY+LS0+XG48IS0tICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXdyYXAganVzdGlmeS1lbmQgaXRlbXMtY2VudGVyIG15LTAgbWwtYXV0byBtci0wIHB4LTQgcHktMiBnYXAtMVwiIHYtaWY9XCJzaG93Q29zdCAmJiBwcm9qZWN0LmNvc3RfZXN0aW1hdGVfdG90YWxcIiB2LWh0bWw9XCJjb3N0RXN0aW1hdGVUb3RhbFwiPjwvZGl2Pi0tPlxuPCEtLSAgICAgIDwvZGl2Pi0tPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LW5vd3JhcCBpdGVtcy1zdHJldGNoIG1kOm15LVs1cHhdIGJnLXN0b25lLTEwMCBtZDpyb3VuZGVkLWxnIHRleHQtWzE0cHhdIGZvbnQtc2VtaWJvbGRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIHAtMlwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMVwiIHRpdGxlPVwicG93aWVyemNobmlhIHXFvHl0a293YVwiPlxuICAgICAgICAgICAgPEljb24gaWNvbj1cIm1hdGVyaWFsLXN5bWJvbHMtbGlnaHQ6aG9tZS1vdXRsaW5lLXJvdW5kZWRcIiBjbGFzcz1cInNpemUtNlwiIC8+XG4gICAgICAgICAgICB7eyBhcmVhIH19IHt7IHVuaXRzLm0yIH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0xXCIgdGl0bGU9XCJwb3dpZXJ6Y2huaWEgZ2FyYcW8dVwiIHYtaWY9XCJwcm9qZWN0LmdhcmFnZV9hcmVhID4gMFwiPlxuICAgICAgICAgICAgK1xuICAgICAgICAgICAgPEljb24gaWNvbj1cIm1hdGVyaWFsLXN5bWJvbHMtbGlnaHQ6Z2FyYWdlLWNoZWNrLW91dGxpbmUtcm91bmRlZFwiIGNsYXNzPVwic2l6ZS02XCIgLz5cbiAgICAgICAgICAgIHt7IE1hdGgucm91bmQocHJvamVjdC5nYXJhZ2VfYXJlYSkgfX1cbiAgICAgICAgICAgIHt7IHVuaXRzLm0yIH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXdyYXAganVzdGlmeS1lbmQgaXRlbXMtY2VudGVyIG15LTAgbWwtYXV0byBtci0wIHB4LTQgcHktMiBnYXAtMVwiIHYtaWY9XCJzaG93Q29zdCAmJiBwcm9qZWN0LmNvc3RfZXN0aW1hdGVfdG90YWxcIj5cbiAgICAgICAgICA8c3BhbiB2LWh0bWw9XCJjb3N0RXN0aW1hdGVUb3RhbFwiPjwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggcC0yIHRleHQtWzEzcHhdIGdhcC00IHRleHQtWy0tY291bnRlcnMtY29sb3JdXCIgdi1pZj1cInByb2plY3QudmFyaWFudHNfY291bnQgPiAwIHx8IHByb2plY3QucmVhbGl6YXRpb25zX2NvdW50ID4gMCB8fCBwcm9qZWN0LmNvbW1lbnRzX2NvdW50ID4gMFwiPlxuICAgICAgICA8ZGl2IHYtaWY9XCJwYXJzZUludChwcm9qZWN0LnZhcmlhbnRzX2NvdW50KVwiPnt7IHQoJ3Byb2plY3QudmFyaWFudHMnKSB9fTogPGI+e3sgcHJvamVjdC52YXJpYW50c19jb3VudCB9fTwvYj48L2Rpdj5cbiAgICAgICAgPGRpdiB2LWlmPVwicGFyc2VJbnQocHJvamVjdC5yZWFsaXphdGlvbnNfY291bnQpXCI+e3sgdCgncHJvamVjdC5yZWFsaXphdGlvbnMnKSB9fTogPGI+e3sgcHJvamVjdC5yZWFsaXphdGlvbnNfY291bnQgfX08L2I+PC9kaXY+XG4gICAgICAgIDxkaXYgdi1pZj1cInBhcnNlSW50KHByb2plY3QuY29tbWVudHNfY291bnQpXCI+e3sgdCgncHJvamVjdC5jb21tZW50cycpIH19OiA8Yj57eyBwcm9qZWN0LmNvbW1lbnRzX2NvdW50IH19PC9iPjwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZSB0ZXh0LVsxM3B4XSBwLTJcIiB2LWlmPVwic2hvd1RpdGxlc1wiPnt7IHByb2plY3QudGl0bGUgfX08L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTIgcC0yIHRleHQtWzEzcHhdXCIgdi1pZj1cInZpZXcgPT09ICdkZXRhaWwnXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktYmV0d2VlblwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaXJzdC1sZXR0ZXI6bG93ZXJjYXNlXCI+e3sgdCgnc2VhcmNoLmZvb3RwcmludF9hcmVhJykgfX08L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9udC1zZW1pYm9sZFwiPnt7IE1hdGgucm91bmQocHJvamVjdC5mb290cHJpbnRfYXJlYSwgMikgfX0ge3sgdW5pdHMubTIgfX08L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktYmV0d2VlblwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaXJzdC1sZXR0ZXI6bG93ZXJjYXNlXCI+e3sgdCgnc2VhcmNoLm1pbl9wbG90X3NpemVzJykgfX08L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9udC1zZW1pYm9sZFwiPnt7IG51bWJlckZvcm1hdHRlci5mb3JtYXQocHJvamVjdC5sb3Rfd2lkdGgpIH19IHgge3sgbnVtYmVyRm9ybWF0dGVyLmZvcm1hdChwcm9qZWN0LmxvdF9sZW5ndGgpIH19IHt7IHVuaXRzLm0gfX08L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktYmV0d2VlblwiPlxuICAgICAgICAgIDxkaXY+e3sgdCgnc2VhcmNoLnJvb2ZfYW5nbGUnKSB9fTwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb250LXNlbWlib2xkXCI+e3sgcHJvamVjdC5yb29mX2FuZ2xlIH19JmRlZzs8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiB2LWlmPVwic2hvd1ZhcmlhbnRGZWF0dXJlcyAmJiBwcm9qZWN0LnZhcmlhbnRfZmVhdHVyZXNcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9udC1zZW1pYm9sZFwiIHYtZm9yPVwiZWwgaW4gcHJvamVjdC52YXJpYW50X2ZlYXR1cmVzLmFkZGVkXCI+KyB7eyBlbC50ZXh0IH19PC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZvbnQtc2VtaWJvbGRcIiB2LWZvcj1cImVsIGluIHByb2plY3QudmFyaWFudF9mZWF0dXJlcy5yZW1vdmVkXCI+LSB7eyBlbC50ZXh0IH19PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9hPlxuXG4gICAgPGRpdiBjbGFzcz1cInJlbGF0aXZlIGZsZXggZmxleC13cmFwIGZsZXgtY29sIGp1c3RpZnktc3RhcnQgZ3JvdXAtWy5sYXJnZV06bGc6dy0xLzIgcHktNCBsZzpweC00XCIgdi1pZj1cInZpZXcgPT09ICdsYXJnZSdcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJhYnNvbHV0ZSB0b3AtNCByaWdodC00IGZsZXggbWwtYXV0byBtci0wIGp1c3RpZnktZW5kIGdhcC0yXCI+XG4gICAgICAgIDx0ZW1wbGF0ZSB2LWZvcj1cInByb2plY3Rpb24gaW4gcHJvamVjdGlvbnNcIj5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYmxvY2sgdGV4dC13aGl0ZSByb3VuZGVkLWxnIGJvcmRlci0wIHB4LTMgcHktMiBjdXJzb3ItcG9pbnRlclwiXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIEBjbGljaz1cInN3aXRjaEZsb29yKHByb2plY3Rpb24uZmxvb3IpXCJcbiAgICAgICAgICAgICAgICAgIDpjbGFzcz1cInsgJ2JnLXBpbmstNTAwJzogcGFyc2VJbnQocHJvamVjdGlvbi5mbG9vcikgPT09IHNlbGVjdGVkRmxvb3IsICdiZy1ncmF5LTMwMCc6IHBhcnNlSW50KHByb2plY3Rpb24uZmxvb3IpICE9PSBzZWxlY3RlZEZsb29yIH1cIlxuICAgICAgICAgID57eyBmbG9vcnNbcHJvamVjdGlvbi5mbG9vcl0gfX08L2J1dHRvbj5cbiAgICAgICAgPC90ZW1wbGF0ZT5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8dGVtcGxhdGUgdi1mb3I9XCJwcm9qZWN0aW9uIGluIHByb2plY3Rpb25zXCI+XG4gICAgICAgIDx0ZW1wbGF0ZSB2LWlmPVwicGFyc2VJbnQocHJvamVjdGlvbi5mbG9vcikgPT09IHNlbGVjdGVkRmxvb3JcIj5cbiAgICAgICAgICA8dGVtcGxhdGUgdi1pZj1cInByb2plY3Rpb24uY29udGVudFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImgtZnVsbCAqOmgtZnVsbCAqOnctYXV0byBtYXgtaC1bNTQ1cHhdIG0tYXV0b1wiIHYtaHRtbD1cImdldEltYWdlQ29udGVudChwcm9qZWN0aW9uLmNvbnRlbnQpXCI+PC9kaXY+XG4gICAgICAgICAgPC90ZW1wbGF0ZT5cbiAgICAgICAgICA8cGljdHVyZSBjbGFzcz1cIm14LWF1dG9cIiB2LWVsc2U+XG4gICAgICAgICAgICA8aW1nIGNsYXNzPVwidy1mdWxsIGgtYXV0byBtYXgtdy1bNTQ1cHhdIG1heC1oLVs1NDVweF1cIiA6c3JjPVwiZ2V0VGh1bWIoeyBwYXRoOiBwcm9qZWN0aW9uLnBhdGgsIHdpZHRoOiA1NDUsIGhlaWdodDogNTYwLCBtaXJyb3I6ICBtaXJyb3IsIGVmZmVjdDogJ291dHNpZGUnIH0pXCIgbG9hZGluZz1cImxhenlcIiA6YWx0PVwicHJvamVjdGlvbi5mbG9vciA+IDEgPyB0KCdzZWFyY2guZmxvb3JfdmlldycpIDogdCgnc2VhcmNoLmdyb3VuZF9mbG9vcl92aWV3JylcIj5cbiAgICAgICAgICA8L3BpY3R1cmU+XG4gICAgICAgIDwvdGVtcGxhdGU+XG4gICAgICA8L3RlbXBsYXRlPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvdGVtcGxhdGU+XG5cbjxzdHlsZSBzY29wZWQ+XG4ucHJvamVjdCB7XG4gIC0tc3ltYm9sLWJnLWNvbG9yOiAjZDkzMDhhO1xuICAtLXN5bWJvbC1jb2xvcjogI2ZmZjtcbiAgLS1hcmVhLWJnLWNvbG9yOiAjMzUxYzRmO1xuICAtLWFyZWEtY29sb3I6ICNmZmY7XG4gIC0tY291bnRlcnMtY29sb3I6ICM5OTk7XG59XG48L3N0eWxlPlxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9*/