/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/addon/addon-item3.vue?vue&type=style&index=0&id=c99e6da0&scoped=true&lang=css ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/

.addon-price-area[data-v-c99e6da0] {
  font-weight: bold;
}

/*!*****************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/js/frontend/components/autocomplete-project.css ***!
  \*****************************************************************************************************************************************************************************************************************************************/
.project-search .search-list > div span:first-of-type {
  font-size: 0.7em;
}

.project-search .search-list > div img {
  grid-row: span 2;
  width: 75px;
  height: 42px;
}

.project-for-addon .autocomplete input, .project-bind-for-addon .autocomplete input {
  border: 1px solid var(--list-border-color);
}

/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/cart/project-for-addon.vue?vue&type=style&index=0&id=349c63bd&lang=css ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/

.project-for-addon  input {
  border: 1px solid #ccc;
}

/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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;
}


/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJvbnRlbmRfYWRkb25fc2hvdy5jc3MiLCJtYXBwaW5ncyI6Ijs7OztBQWdLQTtFQUNFLGlCQUFpQjtBQUNuQjs7Ozs7QUNsS0E7RUFDRSxnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxnQkFBZ0I7RUFDaEIsV0FBVztFQUNYLFlBQVk7QUFDZDs7QUFFQTtFQUNFLDBDQUEwQztBQUM1Qzs7Ozs7O0FDNEVBO0VBQ0Usc0JBQXNCO0FBQ3hCOzs7Ozs7QUMxQkE7RUFDRSx3QkFBd0I7RUFDeEIscUJBQXFCO0FBQ3ZCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vYXNzZXRzL2pzL2Zyb250ZW5kL2NvbXBvbmVudHMvYWRkb24vYWRkb24taXRlbTMudnVlIiwid2VicGFjazovLy8uL2Fzc2V0cy9qcy9mcm9udGVuZC9jb21wb25lbnRzL2F1dG9jb21wbGV0ZS1wcm9qZWN0LmNzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvZnJvbnRlbmQvY29tcG9uZW50cy9jYXJ0L3Byb2plY3QtZm9yLWFkZG9uLnZ1ZSIsIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvZnJvbnRlbmQvY29tcG9uZW50cy9wcm9qZWN0L3Byb2plY3Qtc2xpZGVzLnZ1ZSJdLCJzb3VyY2VzQ29udGVudCI6WyI8c2NyaXB0IHNldHVwPlxuaW1wb3J0IHt1c2VJMThufSBmcm9tIFwidnVlLWkxOG5cIjtcbmltcG9ydCB7IEZvcm1hdHRlciB9IGZyb20gXCIuLi8uLi8uLi90b29scy9pMThuL2Zvcm1hdHRlclwiO1xuaW1wb3J0IHtjb21wdXRlZCwgaW5qZWN0fSBmcm9tIFwidnVlXCI7XG5pbXBvcnQgbGlnaHRlbkNvbG9yIGZyb20gXCIuLi8uLi8uLi90b29scy9saWdodGVuQ29sb3JcIjtcbmltcG9ydCBBZGRCdXR0b24gZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvY2FydC9hZGQtYnV0dG9uLnZ1ZVwiO1xuaW1wb3J0IGdldENvbnRyYXN0IGZyb20gXCIuLi8uLi8uLi90b29scy9nZXRDb250cmFzdFwiO1xuXG5jb25zdCB7IHQgfSA9IHVzZUkxOG4oKVxuXG5jb25zdCBlbWl0ID0gZGVmaW5lRW1pdHMoWydwcm9qZWN0LXJlcXVpcmVkJywgJ3Byb2plY3QtYmluZC1yZXF1aXJlZCcsICdub3QtYWxsb3dlZCddKVxuXG5jb25zdCBwcm9wcyA9IGRlZmluZVByb3BzKHtcbiAgaXRlbToge1xuICAgIHR5cGU6IE9iamVjdCxcbiAgICByZXF1aXJlZDogdHJ1ZVxuICB9LFxuICBjYXRlZ29yeToge1xuICAgIHR5cGU6IFtPYmplY3QsIG51bGxdLFxuICAgIHJlcXVpcmVkOiBmYWxzZVxuICB9LFxuICBjdXJyZW5jeToge1xuICAgIHR5cGU6IFN0cmluZyxcbiAgICBkZWZhdWx0OiAnUExOJ1xuICB9LFxuICBwcmljZUFyZWFEZXBlbmRlbnQ6IHtcbiAgICB0eXBlOiBCb29sZWFuLFxuICAgIGRlZmF1bHQ6IGZhbHNlXG4gIH0sXG4gIGNhcnRIYXNQcm9qZWN0OiB7XG4gICAgdHlwZTogQm9vbGVhbixcbiAgICBkZWZhdWx0OiBmYWxzZVxuICB9XG59KVxuXG5jb25zdCByb3V0ZSA9IGluamVjdCgncm91dGUnKVxuXG5jb25zdCBmb3JtYXR0ZXIgPSBuZXcgRm9ybWF0dGVyKEFwcEdsb2JhbC5sb2NhbGUpXG5cbmNvbnN0IGJhY2tncm91bmRDb2xvciA9IGNvbXB1dGVkKCgpID0+IHtcbiAgaWYgKHByb3BzLml0ZW0uY29sb3IgIT09ICcnKSB7XG4gICAgbGV0IHN0eWxlID0ge307XG4gICAgc3R5bGUuYmFja2dyb3VuZENvbG9yID0gcHJvcHMuaXRlbS5jb2xvclxuICAgIHN0eWxlLmNvbG9yID0gZ2V0Q29udHJhc3QocHJvcHMuaXRlbS5jb2xvciwgJyNmZmYnKSA8IDIgPyAnIzAwMCcgOiAnI2ZmZidcbiAgICBzdHlsZS5maWxsID0gc3R5bGUuc3Ryb2tlID0gc3R5bGUuY29sb3JcblxuICAgIHN0eWxlLmJhY2tncm91bmRDb2xvciA9IGxpZ2h0ZW5Db2xvcihwcm9wcy5pdGVtLmNvbG9yLCAyMClcbiAgICByZXR1cm4gc3R5bGVcbiAgfVxuXG4gIGlmIChwcm9wcy5jYXRlZ29yeSkge1xuICAgIGxldCBzdHlsZSA9IHt9O1xuICAgIHN0eWxlLmJhY2tncm91bmRDb2xvciA9IHByb3BzLmNhdGVnb3J5LmNvbG9yXG4gICAgc3R5bGUuY29sb3IgPSBnZXRDb250cmFzdChwcm9wcy5jYXRlZ29yeS5jb2xvciwgJyNmZmYnKSA8IDIgPyAnIzAwMCcgOiAnI2ZmZidcbiAgICBzdHlsZS5maWxsID0gc3R5bGUuc3Ryb2tlID0gc3R5bGUuY29sb3JcblxuICAgIHN0eWxlLmJhY2tncm91bmRDb2xvciA9IGxpZ2h0ZW5Db2xvcihwcm9wcy5jYXRlZ29yeS5jb2xvciwgMjApXG4gICAgcmV0dXJuIHN0eWxlXG4gIH1cblxuICByZXR1cm4ge31cbn0pXG5cbmNvbnN0IGN1cnJlbnRQcmljZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgaWYgKHByb3BzLml0ZW0ucHJpY2VfcGVyX21ldGVyICE9PSBudWxsICYmIHByb3BzLml0ZW0ucHJpY2VfcGVyX21ldGVyICE9PSAnJykge1xuICAgIHJldHVybiBwcm9wcy5pdGVtLnByaWNlX3Blcl9tZXRlclxuICB9XG5cbiAgcmV0dXJuIHBhcnNlRmxvYXQocHJvcHMuaXRlbS5wcmljZV93aXRoX3Byb2plY3QgPiAwICYmIHByb3BzLml0ZW0ucHJpY2Vfd2l0aF9wcm9qZWN0IDwgcHJvcHMuaXRlbS5jdXJyZW50X3ByaWNlID8gcHJvcHMuaXRlbS5wcmljZV93aXRoX3Byb2plY3QgOiBwcm9wcy5pdGVtLnByaWNlKVxufSlcblxuZnVuY3Rpb24gZ2V0Q29sb3IoY29sb3IpIHtcbiAgcmV0dXJuIHN0eWxlXG59XG5cbmZ1bmN0aW9uIHByb2plY3RSZXF1aXJlZCgpIHtcbiAgZW1pdCgncHJvamVjdC1yZXF1aXJlZCcpXG59XG5cbmZ1bmN0aW9uIHByb2plY3RCaW5kUmVxdWlyZWQoKSB7XG4gIGVtaXQoJ3Byb2plY3QtYmluZC1yZXF1aXJlZCcpXG59XG5cbmZ1bmN0aW9uIG5vdEFsbG93ZWQoZGF0YSkge1xuICBlbWl0KCdub3QtYWxsb3dlZCcpXG59XG5cbmZ1bmN0aW9uIGFkZGVkVG9DYXJ0KCkge1xuICB3aW5kb3cubG9jYXRpb24gPSByb3V0ZS5jYXJ0XG59XG48L3NjcmlwdD5cblxuPHRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwidy1mdWxsIG1kOnctWzM1MHB4XSBzaHJpbmstMCBtZDpyb3VuZGVkLXhsIG92ZXJmbG93LWhpZGRlblwiIDpzdHlsZT1cImJhY2tncm91bmRDb2xvclwiPlxuICAgIDxkaXYgY2xhc3M9XCJyZWxhdGl2ZSBmbGV4IGp1c3RpZnktY2VudGVyIGl0ZW1zLWNlbnRlclwiID5cbiAgICAgIDxpbWcgY2xhc3M9XCJibG9jayB3LWZ1bGwgbWQ6dy1bMzUwcHhdIG1heC1oLVszNjBweF1cIiA6c3Jjc2V0PVwiaXRlbS5zcmNzZXRfc3F1YXJlXCIgOnNyYz1cIml0ZW0udGVtcEltYWdlID8gaXRlbS50ZW1wSW1hZ2UgOiBpdGVtLnRodW1iMzAwXCIgYWx0PVwiXCIgbG9hZGluZz1cImxhenlcIj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibWQ6ZmxleCBmbGV4LWNvbCBnYXAtNCBwLTZcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LVszMHB4XSBtZDp0ZXh0LVszMnB4XSBmb250LWJvbGQgbGVhZGluZy10aWdodFwiPnt7IGl0ZW0ubmFtZSB9fTwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInRleHQtWzE1cHhdXCI+e3sgaXRlbS50aXRsZSB9fTwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInRleHQtWzExcHhdIG9wYWNpdHktNDBcIiB2LWlmPVwiaXRlbS5hdmFpbGFiaWxpdHkgPiAtMVwiPlxuICAgICAgICA8dGVtcGxhdGUgdi1pZj1cIml0ZW0uYXZhaWxhYmlsaXR5ID4gMFwiPlxuICAgICAgICAgIHt7IHQoJ2FkZG9uLmF2YWlsYWJpbGl0eScsIHsgYXZhaWxhYmlsaXR5OiBpdGVtLmF2YWlsYWJpbGl0eSB9LCBpdGVtLmF2YWlsYWJpbGl0eSkgfX1cbiAgICAgICAgPC90ZW1wbGF0ZT5cbiAgICAgICAgPHRlbXBsYXRlIHYtZWxzZT5cbiAgICAgICAgICB7eyB0KCdhdmFpbGFibGVfaW1tZWRpYXRlbHknKSB9fVxuICAgICAgICA8L3RlbXBsYXRlPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJmb250LWV4dHJhYm9sZCB0ZXh0LVsyMnB4XSB0ZXh0LXJpZ2h0XCIgdi1pZj1cIiFpdGVtLmhpZGVfcHJpY2VcIj5cbiAgICAgICAgPHRlbXBsYXRlIHYtaWY9XCJpdGVtLnByaWNlX2tpbmQgPT09IDRcIj5cbiAgICAgICAgICA8c3BhbiB2LWlmPVwiY2FydEhhc1Byb2plY3RcIj5cbiAgICAgICAgICAgIHt7IGZvcm1hdHRlci5mb3JtYXRDdXJyZW5jeShpdGVtLmN1cnJlbnRfcHJpY2UsIGN1cnJlbmN5KSB9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiB2LWVsc2U+e3sgdCgnYWRkb24ucHJpY2VfZGVwZW5kZW50JykgfX08L3NwYW4+XG4gICAgICAgIDwvdGVtcGxhdGU+XG4gICAgICAgIDxzcGFuIHYtZWxzZS1pZj1cInByaWNlQXJlYURlcGVuZGVudFwiPlxuICAgICAgICAgIDx0ZW1wbGF0ZSB2LWlmPVwiaXRlbS5wcmljZV9wZXJfbWV0ZXIgIT09ICcnXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvbnQtbm9ybWFsIHRleHQtWzE0cHhdXCIgdi1odG1sPVwiaXRlbS5wcmljZV9wZXJfbWV0ZXJcIj48L3NwYW4+XG4gICAgICAgICAgPC90ZW1wbGF0ZT5cbiAgICAgICAgICA8dGVtcGxhdGUgdi1lbHNlPlxuICAgICAgICAgICAgPHNwYW4gdi1pZj1cIml0ZW0ucHJpY2VfcHJlZml4XCI+e3sgaXRlbS5wcmljZV9wcmVmaXggfX08L3NwYW4+XG4gICAgICAgICAgICB7eyBmb3JtYXR0ZXIuZm9ybWF0Q3VycmVuY3koaXRlbS5jdXJyZW50X3ByaWNlLCBjdXJyZW5jeSkgfX1cbiAgICAgICAgICAgIDxzcGFuIHYtaWY9XCJpdGVtLnByaWNlX3N1ZmZpeFwiPnt7IGl0ZW0ucHJpY2Vfc3VmZml4IH19PC9zcGFuPlxuICAgICAgICAgIDwvdGVtcGxhdGU+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHNwYW4gdi1lbHNlLWlmPVwiaXRlbS5wcmljZV9raW5kID09PSAzICYmIChpdGVtLnVybCAhPT0gJycgJiYgaXRlbS51cmwgIT09IG51bGwpXCI+XG4gICAgICAgICAgPHRlbXBsYXRlIHYtaWY9XCJpdGVtLnVybF9jYXB0aW9uICE9PSAnJ1wiPnt7IGl0ZW0udXJsX2NhcHRpb24gfX08L3RlbXBsYXRlPlxuICAgICAgICAgIDx0ZW1wbGF0ZSB2LWVsc2U+e3sgdCgnYWRkb24uc2VlJykgfX08L3RlbXBsYXRlPlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxzcGFuIHYtZWxzZS1pZj1cImN1cnJlbnRQcmljZSA9PT0gMFwiPlxuICAgICAgICAgIHt7IHQoJ2FkZG9uLnByaWNlX2ZyZWUnKSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPGRpdj57eyBmb3JtYXR0ZXIuZm9ybWF0Q3VycmVuY3koaXRlbS5jdXJyZW50X3ByaWNlLCBjdXJyZW5jeSkgfX08L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBnYXAtNCBpdGVtcy1jZW50ZXIganVzdGlmeS1lbmRcIiB2LWlmPVwiaXRlbS5wcmljZV93aXRoX3Byb2plY3QgPiAwICYmIGl0ZW0ucHJpY2Vfd2l0aF9wcm9qZWN0IDwgaXRlbS5jdXJyZW50X3ByaWNlXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtWzEzcHhdIGZvbnQtbm9ybWFsXCI+e3sgdCgnYWRkb24ucHJpY2Vfd2l0aF9wcm9qZWN0JykgfX08L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm9wYWNpdHktNTBcIj57eyBmb3JtYXR0ZXIuZm9ybWF0Q3VycmVuY3koaXRlbS5wcmljZV93aXRoX3Byb2plY3QsIGN1cnJlbmN5KSB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyXCIgdi1pZj1cIml0ZW0uc2hvd19hZGRfdG9fY2FydFwiPlxuICAgICAgICA8YSA6aHJlZj1cIml0ZW0udXJsXCIgY2xhc3M9XCJyb3VuZGVkLWJ1dHRvblwiIHYtaWY9XCJpdGVtLnByaWNlX2tpbmQgPT09IDMgJiYgKGl0ZW0udXJsICE9PSAnJyAmJiBpdGVtLnVybCAhPT0gbnVsbClcIj5cbiAgICAgICAgICB7eyBpdGVtLnVybF9jYXB0aW9uICE9PSAnJyA/IGl0ZW0udXJsX2NhcHRpb24gOiB0KCdhZGRvbi5zZWUnKSB9fVxuICAgICAgICA8L2E+XG4gICAgICAgIDxhZGQtYnV0dG9uIGNsYXNzPVwicm91bmRlZC1idXR0b25cIiB2LWVsc2VcbiAgICAgICAgICAgICAgICAgICAgOmlkPVwiaXRlbS5pZFwiIDpjb250ZXh0PVwiM1wiIDpuYW1lPVwiaXRlbS5uYW1lXCIgOmNhcnQtdXJsPVwicm91dGUuY2FydFwiIDp1cmw9XCJyb3V0ZS5jYXJ0X2FkZF9pdGVtXCIgOnR5cGU9XCIzXCJcbiAgICAgICAgICAgICAgICAgICAgOnByaWNlPVwiY3VycmVudFByaWNlXCIgY2F0ZWdvcnk9XCJhZGRvblwiXG4gICAgICAgICAgICAgICAgICAgIDpjdXJyZW5jeT1cImN1cnJlbmN5XCJcbiAgICAgICAgICAgICAgICAgICAgQHByb2plY3QtcmVxdWlyZWQ9XCJwcm9qZWN0UmVxdWlyZWRcIiBAcHJvamVjdC1iaW5kLXJlcXVpcmVkPVwicHJvamVjdEJpbmRSZXF1aXJlZFwiIEBhZGRlZD1cImFkZGVkVG9DYXJ0XCIgQG5vdC1hbGxvd2VkPVwibm90QWxsb3dlZFwiXG4gICAgICAgID5cbiAgICAgICAgICA8c2xvdCBuYW1lPVwiYnV0dG9uLWxhYmVsXCI+emFtYXdpYW08L3Nsb3Q+XG4gICAgICAgIDwvYWRkLWJ1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvdGVtcGxhdGU+XG5cbjxzdHlsZSBzY29wZWQ+XG4uYWRkb24tcHJpY2UtYXJlYSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuPC9zdHlsZT4iLCIucHJvamVjdC1zZWFyY2ggLnNlYXJjaC1saXN0ID4gZGl2IHNwYW46Zmlyc3Qtb2YtdHlwZSB7XG4gIGZvbnQtc2l6ZTogMC43ZW07XG59XG5cbi5wcm9qZWN0LXNlYXJjaCAuc2VhcmNoLWxpc3QgPiBkaXYgaW1nIHtcbiAgZ3JpZC1yb3c6IHNwYW4gMjtcbiAgd2lkdGg6IDc1cHg7XG4gIGhlaWdodDogNDJweDtcbn1cblxuLnByb2plY3QtZm9yLWFkZG9uIC5hdXRvY29tcGxldGUgaW5wdXQsIC5wcm9qZWN0LWJpbmQtZm9yLWFkZG9uIC5hdXRvY29tcGxldGUgaW5wdXQge1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1saXN0LWJvcmRlci1jb2xvcik7XG59XG4iLCI8c2NyaXB0IHNldHVwPlxuaW1wb3J0IFwiLi4vLi4vY29tcG9uZW50cy9hdXRvY29tcGxldGUtcHJvamVjdC5jc3NcIlxuXG5pbXBvcnQgQXV0b2NvbXBsZXRlIGZyb20gXCIuLi8uLi9jb21wb25lbnRzL2F1dG9jb21wbGV0ZS52dWVcIjtcbmltcG9ydCB2Q2xpY2tPdXRzaWRlIGZyb20gXCIuLi8uLi9kaXJlY3RpdmVzL2NsaWNrLW91dHNpZGVcIjtcbmltcG9ydCB7b25Nb3VudGVkLCBvblVubW91bnRlZH0gZnJvbSBcInZ1ZVwiO1xuaW1wb3J0IGF4aW9zIGZyb20gXCJheGlvc1wiO1xuaW1wb3J0IHt1c2VJMThufSBmcm9tIFwidnVlLWkxOG5cIjtcblxuY29uc3QgeyB0IH0gPSB1c2VJMThuKClcblxuXG5jb25zdCBlbWl0ID0gZGVmaW5lRW1pdHMoWydjbG9zZScsICdzZWxlY3RlZCddKVxuXG5jb25zdCBwcm9wcyA9IGRlZmluZVByb3BzKHtcbiAgaXRlbToge1xuICAgIHR5cGU6IE9iamVjdCxcbiAgICByZXF1aXJlZDogdHJ1ZVxuICB9LFxuICB0eXBlOiB7IC8vIHR5cCBkb2Rhd2FuZWdvIHByb2R1a3QsIGRsYSBrdMOzcmVnbyBkb3Bhc293dWplbXkgcHJvamVrdFxuICAgIHR5cGU6IE51bWJlcixcbiAgICByZXF1aXJlZDogdHJ1ZVxuICB9LFxuICBhdXRvY29tcGxldGVVcmw6IHtcbiAgICB0eXBlOiBTdHJpbmcsXG4gICAgcmVxdWlyZWQ6IHRydWVcbiAgfSxcbiAgYWRkVXJsOiB7XG4gICAgdHlwZTogU3RyaW5nLFxuICAgIHJlcXVpcmVkOiB0cnVlXG4gIH1cbn0pXG5cbmZ1bmN0aW9uIGNsb3NlKCkge1xuICBlbWl0KCdjbG9zZScpXG59XG5cbmZ1bmN0aW9uIHNlbGVjdGVkKGl0ZW0pIHtcbiAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGFcbiAgZm9ybURhdGEuc2V0KCdwcm9qZWN0X2lkJywgaXRlbS5pZClcbiAgZm9ybURhdGEuc2V0KCd0eXBlJywgcHJvcHMudHlwZSlcbiAgZm9ybURhdGEuc2V0KCdpdGVtX2lkJywgcHJvcHMuaXRlbS5pZClcblxuICBheGlvcy5wb3N0KHByb3BzLmFkZFVybCwgZm9ybURhdGEpXG4gICAgLnRoZW4ocmVzcG9uc2UgPT4gcmVzcG9uc2UuZGF0YSlcbiAgICAudGhlbihkYXRhID0+IHtcbiAgICAgIGVtaXQoJ3NlbGVjdGVkJywgeyBkYXRhOiBkYXRhLCBwcm9qZWN0OiBpdGVtIH0pXG4gICAgfSlcbn1cblxuZnVuY3Rpb24ga2V5RXZlbnQoZSkge1xuICBpZiAoZS5rZXkgPT09ICdFc2NhcGUnKSB7XG4gICAgY2xvc2UoKVxuICB9XG59XG5cbm9uTW91bnRlZCgoKSA9PiB7XG4gIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleXVwJywga2V5RXZlbnQpXG5cbn0pXG5cbm9uVW5tb3VudGVkKCgpID0+IHtcbiAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5dXAnLCBrZXlFdmVudClcbn0pXG48L3NjcmlwdD5cblxuPHRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwicHJvamVjdC1mb3ItYWRkb24gb3ZlcmxheSB6LVsxMDMwXVwiPlxuICAgIDxkaXYgY2xhc3M9XCJwb3B1cCBmbGV4IGZsZXgtY29sIGZsZXgtd3JhcCBnYXAtNiB3LWZ1bGwgaC1kdmggbWF4LXctWzQ1MHB4XSBtZDpoLWF1dG8gbWQ6cm91bmRlZC14bCBtZHRleHQtWzIwcHhdXCIgdi1jbGljay1vdXRzaWRlPVwiY2xvc2VcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTQgcmlnaHQtNCBjdXJzb3ItcG9pbnRlciBob3ZlcjpmaWxsLXBpbmstNTAwXCIgQGNsaWNrLnByZXZlbnQ9XCJjbG9zZVwiPlxuICAgICAgICA8c3ZnIGNsYXNzPVwiaC1bMjhweF1cIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAzMjAgNTEyXCI+XG4gICAgICAgICAgPHBhdGggZD1cIk0zMTUuMyA0MTEuM2MtNi4yNTMgNi4yNTMtMTYuMzcgNi4yNTMtMjIuNjMgMEwxNjAgMjc4LjZsLTEzMi43IDEzMi43Yy02LjI1MyA2LjI1My0xNi4zNyA2LjI1My0yMi42MyAwYy02LjI1My02LjI1My02LjI1My0xNi4zNyAwLTIyLjYzTDEzNy40IDI1Nkw0LjY5IDEyMy4zYy02LjI1My02LjI1My02LjI1My0xNi4zNyAwLTIyLjYzYzYuMjUzLTYuMjUzIDE2LjM3LTYuMjUzIDIyLjYzIDBMMTYwIDIzMy40bDEzMi43LTEzMi43YzYuMjUzLTYuMjUzIDE2LjM3LTYuMjUzIDIyLjYzIDBjNi4yNTMgNi4yNTMgNi4yNTMgMTYuMzcgMCAyMi42M0wxODIuNiAyNTZsMTMyLjcgMTMyLjdDMzIxLjYgMzk0LjkgMzIxLjYgNDA1LjEgMzE1LjMgNDExLjN6XCIvPlxuICAgICAgICA8L3N2Zz5cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPnt7ICR0KCdhZGRvbi5hZGRpbmdfdG9fY2FydCcpIH19PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgdGV4dC1waW5rLTUwMCBmb250LWJvbGRcIiB2LWh0bWw9XCJpdGVtLm5hbWVcIj48L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPnt7ICR0KCdhZGRvbi53aGljaF9wcm9qZWN0JykgfX08L2Rpdj5cblxuICAgICAgPGF1dG9jb21wbGV0ZSBjbGFzcz1cInByb2plY3Qtc2VhcmNoXCIgQHNlbGVjdGVkPVwic2VsZWN0ZWRcIiA6cGxhY2Vob2xkZXI9XCIkdCgnYWRkb24uYXV0b2NvbXBsZXRlX3BsYWNlaG9sZGVyJylcIiA6c2hvdy1kZXNjcmlwdGlvbj1cInRydWVcIiA6dXJsPVwiYXV0b2NvbXBsZXRlVXJsXCIgOm1pbi1sZW5ndGg9XCIyXCIgaW5wdXQtY2xhc3M9XCJ3LWZ1bGwgcHgtNCBweS0yIHJvdW5kZWQtbGdcIiA6YXV0b2ZvY3VzPVwidHJ1ZVwiPlxuICAgICAgICA8dGVtcGxhdGUgI2ljb24+XG4gICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCA1MTIgNTEyXCI+PHBhdGggZD1cIk01MDkuNyA0OTguM2wtMTQ5LjItMTQ5LjJDMzk0LjggMzEyLjEgNDE1LjEgMjYyLjYgNDE1LjEgMjA4YzAtMTE0LjktOTMuMTMtMjA4LTIwOC0yMDhTLS4wMDAyIDkzLjEzLS4wMDAyIDIwOFM5My4xMiA0MTYgMjA3LjEgNDE2YzU0LjU1IDAgMTA0LjEtMjEuMTcgMTQxLjItNTUuNTRsMTQ5LjIgMTQ5LjJDNDk5LjkgNTExLjIgNTAxLjkgNTEyIDUwMy4xIDUxMnM0LjA5NC0uNzgxMyA1LjY1Ni0yLjM0NEM1MTIuOCA1MDYuNSA1MTIuOCA1MDEuNSA1MDkuNyA0OTguM3pNMjA3LjEgNDAwYy0xMDUuOSAwLTE5Mi04Ni4xMy0xOTItMTkyczg2LjEzLTE5MiAxOTItMTkyczE5MiA4Ni4xMyAxOTIgMTkyUzMxMy45IDQwMCAyMDcuMSA0MDB6XCIvPjwvc3ZnPlxuICAgICAgICA8L3RlbXBsYXRlPlxuICAgICAgPC9hdXRvY29tcGxldGU+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC90ZW1wbGF0ZT5cblxuPHN0eWxlPlxuLnByb2plY3QtZm9yLWFkZG9uICBpbnB1dCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG59XG48L3N0eWxlPiIsIjxzY3JpcHQgc2V0dXA+XG5pbXBvcnQge2luamVjdCwgcmVmfSBmcm9tIFwidnVlXCI7XG5pbXBvcnQge3VzZUltYWdlfSBmcm9tIFwiQC9qcy9jb21wb3NhYmxlcy91c2VJbWFnZVwiO1xuaW1wb3J0IHt1c2VBc3BlY3RSYXRpb30gZnJvbSBcIkAvanMvY29tcG9zYWJsZXMvdXNlQXNwZWN0UmF0aW9cIjtcblxuY29uc3QgcHJvcHMgPSBkZWZpbmVQcm9wcyh7XG4gIGltYWdlczoge1xuICAgIHR5cGU6IE9iamVjdCxcbiAgICByZXF1aXJlZDogdHJ1ZVxuICB9LFxuICBtaXJyb3JlZDoge1xuICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgZGVmYXVsdDogZmFsc2VcbiAgfVxufSlcblxuY29uc3QgYW1hem9uQ29uZmlnID0gaW5qZWN0KCdhbWF6b24nKVxuY29uc3QgeyBnZXRUaHVtYiwgZ2V0Q29udGVudDogZ2V0SW1hZ2VDb250ZW50IH0gPSB1c2VJbWFnZShhbWF6b25Db25maWcuaW1hZ2VfY2xvdWRmcm9udF9lbmRwb2ludCwgYW1hem9uQ29uZmlnLnMzX2J1Y2tldF9uYW1lKVxuY29uc3Qgdmlld3BvcnQgPSByZWYobnVsbClcblxuZnVuY3Rpb24gc2Nyb2xsTmV4dCgpIHtcbiAgY29uc3Qgd2lkdGggPSB2aWV3cG9ydC52YWx1ZS5jbGllbnRXaWR0aFxuICBjb25zdCBzY3JvbGxQb3MgPSB2aWV3cG9ydC52YWx1ZS5zY3JvbGxMZWZ0XG4gIGNvbnN0IG5leHRTY3JvbGxQb3MgPSBzY3JvbGxQb3MgKyB3aWR0aFxuICB2aWV3cG9ydC52YWx1ZS5zY3JvbGxUbyh7XG4gICAgbGVmdDogbmV4dFNjcm9sbFBvcywgYmVoYXZpb3I6ICdzbW9vdGgnXG4gIH0pXG59XG5cbmZ1bmN0aW9uIHNjcm9sbFByZXYoKSB7XG4gIGNvbnN0IHdpZHRoID0gdmlld3BvcnQudmFsdWUuY2xpZW50V2lkdGhcbiAgY29uc3Qgc2Nyb2xsUG9zID0gdmlld3BvcnQudmFsdWUuc2Nyb2xsTGVmdFxuICBjb25zdCBuZXh0U2Nyb2xsUG9zID0gc2Nyb2xsUG9zIC0gd2lkdGhcbiAgdmlld3BvcnQudmFsdWUuc2Nyb2xsVG8oe1xuICAgIGxlZnQ6IG5leHRTY3JvbGxQb3MsIGJlaGF2aW9yOiAnc21vb3RoJ1xuICB9KVxufVxuPC9zY3JpcHQ+XG5cbjx0ZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cInJlbGF0aXZlIHNlbGVjdC1ub25lXCI+XG4gICAgPGRpdiBjbGFzcz1cIm1kOnctWzM1MHB4XSBncm91cC1bLmxhcmdlXTp3LWZ1bGwgZ3JvdXAtWy5sYXJnZV06bWF4LXctWzE2MDBweF0gZmxleCBmbGV4LW5vd3JhcCBvdmVyZmxvdy14LWF1dG8gc25hcC14IHNuYXAtbWFuZGF0b3J5IHNjcm9sbC1zbW9vdGggbm8tc2Nyb2xsYmFyXCIgcmVmPVwidmlld3BvcnRcIj5cbiAgICAgIDx0ZW1wbGF0ZSB2LWZvcj1cImltYWdlIGluIGltYWdlc1sncHJvamVjdF92aWV3J11cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1ub25lIHNuYXAtY2VudGVyIGJhc2lzLWZ1bGxcIj5cbiAgICAgICAgICA8aW1nIGNsYXNzPVwibWQ6dy1bMzUwcHhdIG1kOmgtWzIxOHB4XSBncm91cC1bLmxhcmdlXTp3LWF1dG8gbWQ6Z3JvdXAtWy5sYXJnZV06aC1hdXRvIHNtOnJvdW5kZWQtbGdcIiA6Y2xhc3M9XCJ7ICdzY2FsZS14LVstMV0nOiBtaXJyb3JlZCB9XCJcbiAgICAgICAgICAgICAgIDpzcmM9XCJnZXRUaHVtYih7IHBhdGg6IGltYWdlLnBhdGgsIHdpZHRoOiAzNTAsIGhlaWdodDogdXNlQXNwZWN0UmF0aW8oeyB3aWR0aDogMzUwLCByYXRpbzogMTYvOSB9KSwgbWlycm9yOiBtaXJyb3JlZCwgZWZmZWN0OiBpbWFnZS50eXBlID09PSAncHJvamVjdF92aWV3JyA/ICdjb3ZlcicgOiAnaW5zaWRlJyB9KVwiXG4gICAgICAgICAgICAgICBhbHQ9XCJcIlxuICAgICAgICAgICAgICAgOnNyY3NldD1cImltYWdlLnNyY3NldFwiXG4gICAgICAgICAgICAgICBsb2FkaW5nPVwibGF6eVwiXG4gICAgICAgICAgICAgICBkcmFnZ2FibGU9XCJmYWxzZVwiXG4gICAgICAgICAgPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImhpZGRlbiBtZDpibG9jayBhYnNvbHV0ZSB0b3AtMS8yIHJpZ2h0LTIgdy1bMzBweF0gaC1bMzBweF0gYmctZ3JheS03MDAgcm91bmRlZC1mdWxsIGhvdmVyOmJnLWJsYWNrXCIgQGNsaWNrLnByZXZlbnQuc3RvcD1cInNjcm9sbE5leHRcIiB2LWlmPVwiaW1hZ2VzLnByb2plY3Rfdmlldy5sZW5ndGggPiAxXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiYWJzb2x1dGUgdG9wLTEvMiBsZWZ0LTEvMiAtdHJhbnNsYXRlLXgtWzZweF0gLXRyYW5zbGF0ZS15LTEvMiB3LVsxMHB4XSBoLVsxMHB4XSAtcm90YXRlLVsxMzVkZWddIGJvcmRlci1sLTIgYm9yZGVyLWItMiBib3JkZXItd2hpdGVcIj48L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiaGlkZGVuIG1kOmJsb2NrIGFic29sdXRlIHRvcC0xLzIgbGVmdC0yIHctWzMwcHhdIGgtWzMwcHhdIGJnLWdyYXktNzAwIHJvdW5kZWQtZnVsbCBob3ZlcjpiZy1ibGFja1wiIEBjbGljay5wcmV2ZW50LnN0b3A9XCJzY3JvbGxQcmV2XCIgdi1pZj1cImltYWdlcy5wcm9qZWN0X3ZpZXcubGVuZ3RoID4gMVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImFic29sdXRlIHRvcC0xLzIgbGVmdC0xLzIgLXRyYW5zbGF0ZS14LVs0cHhdIC10cmFuc2xhdGUteS0xLzIgdy1bMTBweF0gaC1bMTBweF0gcm90YXRlLVs0NWRlZ10gYm9yZGVyLWwtMiBib3JkZXItYi0yIGJvcmRlci13aGl0ZVwiPjwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvdGVtcGxhdGU+XG5cbjxzdHlsZSBzY29wZWQ+XG4ubm8tc2Nyb2xsYmFyIHtcbiAgLW1zLW92ZXJmbG93LXN0eWxlOiBub25lO1xuICBzY3JvbGxiYXItd2lkdGg6IG5vbmU7XG59XG48L3N0eWxlPlxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9*/