.compare-button.selected {
  color: #262626; }
  .compare-button.selected i:before {
    content: "\F00C"; }

#compare-footer [data-off-canvas] {
  background: black; }

#compare-footer .compare-footer-grover {
  width: 4.16667rem;
  height: 4.16667rem;
  position: fixed;
  left: 0;
  top: calc(100% - 4.16667rem);
  background: black;
  z-index: 5;
  text-align: center;
  cursor: pointer; }
  #compare-footer .compare-footer-grover i {
    font-size: 1.66667rem;
    line-height: 4.16667rem; }
  #compare-footer .compare-footer-grover span {
    vertical-align: 0.83333rem; }
  #compare-footer .compare-footer-grover:hover {
    color: white; }
  #compare-footer .compare-footer-grover.open-slidebar i:before {
    content: '\F00D'; }

#compare-footer #compare-list-footer {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  overflow-y: auto; }
  #compare-footer #compare-list-footer li:not(.no-products) {
    width: 7.08333rem;
    min-width: 7.08333rem;
    margin-right: 0.83333rem; }
    #compare-footer #compare-list-footer li:not(.no-products):last-child {
      margin-right: 0; }

#compare-footer .buttons a {
  text-transform: uppercase;
  font-weight: bold;
  margin-right: 1.66667rem; }

#modal-compare:not(.with-products) #compare-products, #modal-compare:not(.with-products) #compare-features {
  display: none;
  margin: 0 50%; }

#modal-compare.with-products .modal-dialog {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center; }

#modal-compare.with-products .modal-content {
  background: none;
  border: none;
  width: auto;
  max-width: 100%; }
  #modal-compare.with-products .modal-content .modal-content-compare {
    border-right: 0.08333rem solid #e5e5e5;
    padding-left: 1.66667rem;
    overflow-x: auto;
    background: #1c1c1c; }
    #modal-compare.with-products .modal-content .modal-content-compare #compare-products {
      background: white;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex; }
      #modal-compare.with-products .modal-content .modal-content-compare #compare-products > div {
        min-width: 16.66667rem;
        max-width: 16.66667rem;
        text-align: center;
        background: white;
        border-left: 0.08333rem solid #e5e5e5;
        border-top: 0.08333rem solid #e5e5e5; }
        #modal-compare.with-products .modal-content .modal-content-compare #compare-products > div:first-child {
          background: none;
          border: none;
          -webkit-transition: all .2s;
          transition: all .2s;
          -webkit-transition-timing-function: cubic-bezier(0.2, 0, 0.065, 0.25);
                  transition-timing-function: cubic-bezier(0.2, 0, 0.065, 0.25); }
          #modal-compare.with-products .modal-content .modal-content-compare #compare-products > div:first-child > div {
            min-width: 16.66667rem;
            -webkit-transition: all .2s;
            transition: all .2s;
            -webkit-transition-timing-function: cubic-bezier(0.2, 0, 0.065, 0.25);
                    transition-timing-function: cubic-bezier(0.2, 0, 0.065, 0.25); }
        @media (max-width: 767.98px) {
          #modal-compare.with-products .modal-content .modal-content-compare #compare-products > div {
            min-width: 12.5rem;
            max-width: 12.5rem; }
            #modal-compare.with-products .modal-content .modal-content-compare #compare-products > div:first-child > div {
              min-width: 16.66667rem; } }
      #modal-compare.with-products .modal-content .modal-content-compare #compare-products.close-titles > div:first-child {
        min-width: 0;
        max-width: 100%; }
        #modal-compare.with-products .modal-content .modal-content-compare #compare-products.close-titles > div:first-child > div {
          margin-left: -16.66667rem; }
    #modal-compare.with-products .modal-content .modal-content-compare #compare-features {
      position: relative;
      text-transform: uppercase;
      font-size: 1rem;
      color: #1c1c1c; }
      #modal-compare.with-products .modal-content .modal-content-compare #compare-features .features-toggle {
        position: absolute;
        right: 100%;
        top: 0;
        bottom: 0;
        width: 1.66667rem;
        background: #1c1c1c;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        -ms-flex-pack: distribute;
            justify-content: space-around;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        color: white;
        cursor: pointer;
        -webkit-transition: all .2s;
        transition: all .2s;
        -webkit-transition-timing-function: cubic-bezier(0.2, 0, 0.065, 0.25);
                transition-timing-function: cubic-bezier(0.2, 0, 0.065, 0.25); }
        #modal-compare.with-products .modal-content .modal-content-compare #compare-features .features-toggle:hover {
          color: #888888; }
        #modal-compare.with-products .modal-content .modal-content-compare #compare-features .features-toggle span {
          letter-spacing: 0.8em;
          -webkit-writing-mode: vertical-rl;
              -ms-writing-mode: tb-rl;
                  writing-mode: vertical-rl;
          text-orientation: upright; }
        #modal-compare.with-products .modal-content .modal-content-compare #compare-features .features-toggle i {
          font-size: 1.33333rem;
          -webkit-transition: all 0.3s ease;
          transition: all 0.3s ease; }
      #modal-compare.with-products .modal-content .modal-content-compare #compare-features .compare-features-title {
        -webkit-transition: all .2s;
        transition: all .2s;
        -webkit-transition-timing-function: cubic-bezier(0.2, 0, 0.065, 0.25);
                transition-timing-function: cubic-bezier(0.2, 0, 0.065, 0.25); }
      #modal-compare.with-products .modal-content .modal-content-compare #compare-features.close-titles .features-toggle {
        color: #888888; }
        #modal-compare.with-products .modal-content .modal-content-compare #compare-features.close-titles .features-toggle i {
          -webkit-transform: rotate(180deg);
                  transform: rotate(180deg); }
        #modal-compare.with-products .modal-content .modal-content-compare #compare-features.close-titles .features-toggle:hover {
          color: white; }
      #modal-compare.with-products .modal-content .modal-content-compare #compare-features.close-titles .compare-features-row .compare-features-title {
        margin-left: -16.66667rem;
        color: #e9e9e9; }
        @media (max-width: 767.98px) {
          #modal-compare.with-products .modal-content .modal-content-compare #compare-features.close-titles .compare-features-row .compare-features-title {
            margin-left: -12.5rem; } }
      #modal-compare.with-products .modal-content .modal-content-compare #compare-features .compare-features-row {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex; }
        #modal-compare.with-products .modal-content .modal-content-compare #compare-features .compare-features-row:nth-child(even) .compare-features-item {
          background: #e9e9e9; }
        #modal-compare.with-products .modal-content .modal-content-compare #compare-features .compare-features-row:nth-child(odd) .compare-features-item {
          background: white; }
        #modal-compare.with-products .modal-content .modal-content-compare #compare-features .compare-features-row:last-child > div:not(:first-child) {
          border-bottom: 0.08333rem solid #e5e5e5; }
        #modal-compare.with-products .modal-content .modal-content-compare #compare-features .compare-features-row > div {
          min-width: 16.66667rem;
          max-width: 16.66667rem;
          padding: 1.41667rem 0.83333rem 1.16667rem;
          text-align: center;
          border-left: 0.08333rem solid #e5e5e5; }
          #modal-compare.with-products .modal-content .modal-content-compare #compare-features .compare-features-row > div:first-child {
            text-align: left;
            background: #e9e9e9;
            border: none;
            font-weight: bold;
            padding-left: 2.5rem; }
          @media (max-width: 767.98px) {
            #modal-compare.with-products .modal-content .modal-content-compare #compare-features .compare-features-row > div {
              min-width: 12.5rem;
              max-width: 12.5rem;
              padding: 0.75rem 0.41667rem 0.66667rem; }
              #modal-compare.with-products .modal-content .modal-content-compare #compare-features .compare-features-row > div:first-child {
                padding-left: 1.25rem; } }

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9tb2R1bGVzL2p4Y29tcGFyZXByb2R1Y3Qvdmlld3MvY3NzL0M6L09wZW5TZXJ2ZXIvZG9tYWlucy9sb2NhbGhvc3QvdGhlbWUxNDUwL3RoZW1lcy90aGVtZV8xNDUwL19kZXYvbW9kdWxlcy9qeGNvbXBhcmVwcm9kdWN0L3ZpZXdzL2Nzcy9DOi9PcGVuU2VydmVyL2RvbWFpbnMvbG9jYWxob3N0L3RoZW1lMTQ1MC90aGVtZXMvdGhlbWVfMTQ1MC9fZGV2L21vZHVsZXMvanhjb21wYXJlcHJvZHVjdC92aWV3cy9jc3Mvanhjb21wYXJlcHJvZHVjdC5zY3NzIiwid2VicGFjazovLy8uL21vZHVsZXMvanhjb21wYXJlcHJvZHVjdC92aWV3cy9jc3MvQzovT3BlblNlcnZlci9kb21haW5zL2xvY2FsaG9zdC90aGVtZTE0NTAvdGhlbWVzL3RoZW1lXzE0NTAvX2Rldi9tb2R1bGVzL2p4Y29tcGFyZXByb2R1Y3Qvdmlld3MvY3NzL0M6L09wZW5TZXJ2ZXIvZG9tYWlucy9sb2NhbGhvc3QvdGhlbWUxNDUwL3RoZW1lcy90aGVtZV8xNDUwL19kZXYvY3NzL3BhcnRpYWxzL192YXJpYWJsZXNfY29sb3Iuc2NzcyIsIndlYnBhY2s6Ly8vLi9tb2R1bGVzL2p4Y29tcGFyZXByb2R1Y3Qvdmlld3MvY3NzL0M6L09wZW5TZXJ2ZXIvZG9tYWlucy9sb2NhbGhvc3QvdGhlbWUxNDUwL3RoZW1lcy90aGVtZV8xNDUwL19kZXYvbW9kdWxlcy9qeGNvbXBhcmVwcm9kdWN0L3ZpZXdzL2Nzcy9DOi9PcGVuU2VydmVyL2RvbWFpbnMvbG9jYWxob3N0L3RoZW1lMTQ1MC90aGVtZXMvdGhlbWVfMTQ1MC9fZGV2L25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX2JyZWFrcG9pbnRzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0E7RUFDRSxlQ1NnQixFRExqQjtFQUxEO0lBR0ksaUJBQWdCLEVBQ2pCOztBQUdIO0VBRUksa0JBQWlC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VUZkSjtZQWdIZ0Isc0JBQW1CLEVBRXRCO01BbEhiO1FBcUhZLHFCQUFhO1FBQWIscUJBQWE7UUFBYixjQUFhLEVBa0NkO1FBdkpYO1VBdUhjLG9CQzdLSSxFRDhLTDtRQXhIYjtVQTBIYyxrQkFBaUIsRUFDbEI7UUEzSGI7VUE4SGdCLHdDQ25MRSxFRG9MSDtRQS9IZjtVQWtJYyx1QkFBZ0I7VUFDaEIsdUJBQWdCO1VBQ2hCLDBDQUF1QjtVQUN2QixtQkFBa0I7VUFDbEIsc0NDM0xJLEVEMk1MO1VBdEpiO1lBd0lnQixpQkFBZ0I7WUFDaEIsb0JDL0xFO1lEZ01GLGFBQVk7WUFDWixrQkFBaUI7WUFDakIscUJBQWtCLEVBQ25CO1VFL0hYO1lGZEo7Y0ErSWdCLG1CQUFnQjtjQUNoQixtQkFBZ0I7Y0FDaEIsdUNBQW9CLEVBS3ZCO2NBdEpiO2dCQW1Ka0Isc0JBQWtCLEVBQ25CIiwiZmlsZSI6Ii4uXFxtb2R1bGVzXFxqeGNvbXBhcmVwcm9kdWN0XFx2aWV3c1xcY3NzXFxqeGNvbXBhcmVwcm9kdWN0LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBpbXBvcnQgXCJjc3MvcGFydGlhbHMvX3ZhcmlhYmxlc1wiO1xyXG4uY29tcGFyZS1idXR0b24uc2VsZWN0ZWQge1xyXG4gIGNvbG9yOiAkZ3JheS04MDA7XHJcbiAgaTpiZWZvcmUge1xyXG4gICAgY29udGVudDogXCJcXGYwMGNcIjtcclxuICB9XHJcbn1cclxuXHJcbiNjb21wYXJlLWZvb3RlciB7XHJcbiAgW2RhdGEtb2ZmLWNhbnZhc10ge1xyXG4gICAgYmFja2dyb3VuZDogYmxhY2s7XHJcbiAgfVxyXG4gIC5jb21wYXJlLWZvb3Rlci1ncm92ZXIge1xyXG4gICAgd2lkdGg6IDUwcHg7XHJcbiAgICBoZWlnaHQ6IDUwcHg7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgdG9wOiBjYWxjKDEwMCUgLSA1MHB4KTtcclxuICAgIGJhY2tncm91bmQ6IGJsYWNrO1xyXG4gICAgei1pbmRleDogNTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIGkge1xyXG4gICAgICBmb250LXNpemU6IDIwcHg7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiA1MHB4O1xyXG4gICAgfVxyXG4gICAgc3BhbiB7XHJcbiAgICAgIHZlcnRpY2FsLWFsaWduOiAxMHB4O1xyXG4gICAgfVxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgIH1cclxuICAgICYub3Blbi1zbGlkZWJhciB7XHJcbiAgICAgIGk6YmVmb3JlIHtcclxuICAgICAgICBjb250ZW50OiAnXFxmMDBkJztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICAjY29tcGFyZS1saXN0LWZvb3RlciB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgb3ZlcmZsb3cteTogYXV0bztcclxuICAgIGxpOm5vdCgubm8tcHJvZHVjdHMpIHtcclxuICAgICAgd2lkdGg6IDg1cHg7XHJcbiAgICAgIG1pbi13aWR0aDogODVweDtcclxuICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xyXG4gICAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICAuYnV0dG9ucyB7XHJcbiAgICBhIHtcclxuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogMjBweDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbiNtb2RhbC1jb21wYXJlIHtcclxuICAmOm5vdCgud2l0aC1wcm9kdWN0cykge1xyXG4gICAgI2NvbXBhcmUtcHJvZHVjdHMsICNjb21wYXJlLWZlYXR1cmVzIHtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgbWFyZ2luOiAwIDUwJTtcclxuICAgIH1cclxuICB9XHJcbiAgJi53aXRoLXByb2R1Y3RzIHtcclxuICAgIC5tb2RhbC1kaWFsb2cge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIH1cclxuICAgIC5tb2RhbC1jb250ZW50IHtcclxuICAgICAgYmFja2dyb3VuZDogbm9uZTtcclxuICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICB3aWR0aDogYXV0bztcclxuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgICAubW9kYWwtY29udGVudC1jb21wYXJlIHtcclxuICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkZ3JheS0zMDA7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xyXG4gICAgICAgIG92ZXJmbG93LXg6IGF1dG87XHJcbiAgICAgICAgYmFja2dyb3VuZDogJGdyYXktOTAwO1xyXG4gICAgICAgICNjb21wYXJlLXByb2R1Y3RzIHtcclxuICAgICAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xyXG4gICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgID4gZGl2IHtcclxuICAgICAgICAgICAgbWluLXdpZHRoOiAyMDBweDtcclxuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcclxuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcclxuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAkZ3JheS0zMDA7XHJcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkZ3JheS0zMDA7XHJcbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xyXG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XHJcbiAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAuMnM7XHJcbiAgICAgICAgICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIsIDAsIDAuMDY1LCAwLjI1KTtcclxuICAgICAgICAgICAgICA+IGRpdiB7XHJcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDIwMHB4O1xyXG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIC4ycztcclxuICAgICAgICAgICAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yLCAwLCAwLjA2NSwgMC4yNSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bihzbSkge1xyXG4gICAgICAgICAgICAgIG1pbi13aWR0aDogMTUwcHg7XHJcbiAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxNTBweDtcclxuICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcclxuICAgICAgICAgICAgICAgID4gZGl2IHtcclxuICAgICAgICAgICAgICAgICAgbWluLXdpZHRoOiAyMDBweDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgICYuY2xvc2UtdGl0bGVzID4gZGl2OmZpcnN0LWNoaWxkIHtcclxuICAgICAgICAgICAgbWluLXdpZHRoOiAwO1xyXG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgID4gZGl2IHtcclxuICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTIwMHB4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgICNjb21wYXJlLWZlYXR1cmVzIHtcclxuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICAgICAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICAgICAgICBjb2xvcjogJGdyYXktOTAwO1xyXG4gICAgICAgICAgLmZlYXR1cmVzLXRvZ2dsZSB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgcmlnaHQ6IDEwMCU7XHJcbiAgICAgICAgICAgIHRvcDogMDtcclxuICAgICAgICAgICAgYm90dG9tOiAwO1xyXG4gICAgICAgICAgICB3aWR0aDogMjBweDtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogJGdyYXktOTAwO1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcclxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xyXG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAuMnM7XHJcbiAgICAgICAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yLCAwLCAwLjA2NSwgMC4yNSk7XHJcbiAgICAgICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgICAgIGNvbG9yOiAkZ3JheS02MDA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgc3BhbiB7XHJcbiAgICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuOGVtO1xyXG4gICAgICAgICAgICAgIHdyaXRpbmctbW9kZTogdmVydGljYWwtcmw7XHJcbiAgICAgICAgICAgICAgdGV4dC1vcmllbnRhdGlvbjogdXByaWdodDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpIHtcclxuICAgICAgICAgICAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgLmNvbXBhcmUtZmVhdHVyZXMtdGl0bGUge1xyXG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgLjJzO1xyXG4gICAgICAgICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMiwgMCwgMC4wNjUsIDAuMjUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgJi5jbG9zZS10aXRsZXMge1xyXG4gICAgICAgICAgICAuZmVhdHVyZXMtdG9nZ2xlIHtcclxuICAgICAgICAgICAgICBjb2xvcjogJGdyYXktNjAwO1xyXG4gICAgICAgICAgICAgIGkge1xyXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogd2hpdGU7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC5jb21wYXJlLWZlYXR1cmVzLXJvdyAuY29tcGFyZS1mZWF0dXJlcy10aXRsZSB7XHJcbiAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0yMDBweDtcclxuICAgICAgICAgICAgICBjb2xvcjogJGdyYXktMjAwO1xyXG4gICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bihzbSkge1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0xNTBweDtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC5jb21wYXJlLWZlYXR1cmVzLXJvdyB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIC5jb21wYXJlLWZlYXR1cmVzLWl0ZW0ge1xyXG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRncmF5LTIwMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmOm50aC1jaGlsZChvZGQpIC5jb21wYXJlLWZlYXR1cmVzLWl0ZW0ge1xyXG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgICAgPiBkaXY6bm90KDpmaXJzdC1jaGlsZCkge1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRncmF5LTMwMDtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPiBkaXYge1xyXG4gICAgICAgICAgICAgIG1pbi13aWR0aDogMjAwcHg7XHJcbiAgICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcclxuICAgICAgICAgICAgICBwYWRkaW5nOiAxN3B4IDEwcHggMTRweDtcclxuICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAkZ3JheS0zMDA7XHJcbiAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGdyYXktMjAwO1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDMwcHg7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bihzbSkge1xyXG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiAxNTBweDtcclxuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTUwcHg7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiA5cHggNXB4IDhweDtcclxuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xyXG4gICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbW9kdWxlcy9qeGNvbXBhcmVwcm9kdWN0L3ZpZXdzL2Nzcy9DOi9PcGVuU2VydmVyL2RvbWFpbnMvbG9jYWxob3N0L3RoZW1lMTQ1MC90aGVtZXMvdGhlbWVfMTQ1MC9fZGV2L21vZHVsZXMvanhjb21wYXJlcHJvZHVjdC92aWV3cy9jc3MvQzovT3BlblNlcnZlci9kb21haW5zL2xvY2FsaG9zdC90aGVtZTE0NTAvdGhlbWVzL3RoZW1lXzE0NTAvX2Rldi9tb2R1bGVzL2p4Y29tcGFyZXByb2R1Y3Qvdmlld3MvY3NzL2p4Y29tcGFyZXByb2R1Y3Quc2NzcyIsIi8vXHJcbi8vIENvbG9yIHN5c3RlbVxyXG4vL1xyXG4kd2hpdGU6ICAjZmZmO1xyXG4kZ3JheS0xMDA6ICNmNmY2ZjYgO1xyXG4kZ3JheS0yMDA6ICNlOWU5ZTk7XHJcbiRncmF5LTMwMDogI2U1ZTVlNTtcclxuJGdyYXktNDAwOiAjZGRkZGRkO1xyXG4kZ3JheS01MDA6ICNjY2NjY2M7XHJcbiRncmF5LTYwMDogIzg4ODg4ODtcclxuJGdyYXktNzAwOiAjMzMzMzMzO1xyXG4kZ3JheS04MDA6ICMyNjI2MjY7XHJcbiRncmF5LTkwMDogIzFjMWMxYztcclxuJGJsYWNrOiAgIzAwMDtcclxuXHJcbiRncmF5czogKFxyXG4gIDEwMDogJGdyYXktMTAwLFxyXG4gIDIwMDogJGdyYXktMjAwLFxyXG4gIDMwMDogJGdyYXktMzAwLFxyXG4gIDQwMDogJGdyYXktNDAwLFxyXG4gIDUwMDogJGdyYXktNTAwLFxyXG4gIDYwMDogJGdyYXktNjAwLFxyXG4gIDcwMDogJGdyYXktNzAwLFxyXG4gIDgwMDogJGdyYXktODAwLFxyXG4gIDkwMDogJGdyYXktOTAwXHJcbik7XHJcblxyXG4kYmx1ZTogICAgIzNiNTk5ODtcclxuJGluZGlnbzogICM2NjEwZjI7XHJcbiRwdXJwbGU6ICAjNmY0MmMxO1xyXG4kcGluazogICAgI2RlNmQ2ZDtcclxuJHJlZDogICAgICNjYjIwMjc7XHJcbiRvcmFuZ2U6ICAjZGQ0YjM5O1xyXG4keWVsbG93OiAgI2ZmZjFiYztcclxuJGdyZWVuOiAgICMzYzc2M2Q7XHJcbiR0ZWFsOiAgICAjMjBjOTk3O1xyXG4kY3lhbjogICAgIzU1YWNlZTtcclxuXHJcbiRjb2xvcnM6IChcclxuICBibHVlOiAkYmx1ZSxcclxuICBpbmRpZ286ICRpbmRpZ28sXHJcbiAgcHVycGxlOiAkcHVycGxlLFxyXG4gIHBpbms6ICRwaW5rLFxyXG4gIHJlZDogJHJlZCxcclxuICBvcmFuZ2U6ICRvcmFuZ2UsXHJcbiAgeWVsbG93OiAkeWVsbG93LFxyXG4gIGdyZWVuOiAkZ3JlZW4sXHJcbiAgdGVhbDogJHRlYWwsXHJcbiAgY3lhbjogJGN5YW4sXHJcbiAgd2hpdGU6ICR3aGl0ZSxcclxuICBncmF5OiAkZ3JheS02MDAsXHJcbiAgZ3JheS1kYXJrOiAkZ3JheS04MDAsXHJcbiAgZ3JheS1kYXJrZXI6ICRncmF5LTkwMCxcclxuICBncmF5LWxpZ2h0OiAkZ3JheS0yMDAsXHJcbiAgZ3JheS1saWdodGVyOiAkZ3JheS0xMDBcclxuKTtcclxuXHJcbiR0aGVtZS1jb2xvcnM6IChcclxuICBwcmltYXJ5OiAkZ3JheS04MDAsXHJcbiAgc2Vjb25kYXJ5OiAkZ3JheS0yMDAsXHJcbiAgc3VjY2VzczogJGdyZWVuLFxyXG4gIGluZm86ICRjeWFuLFxyXG4gIHdhcm5pbmc6ICRvcmFuZ2UsXHJcbiAgZGFuZ2VyOiAkcGluayxcclxuICBsaWdodGVzdDogJGdyYXktMTAwLFxyXG4gIGxpZ2h0OiAkZ3JheS0yMDAsXHJcbiAgZGFyazogJGdyYXktODAwLFxyXG4gIGRhcmtlcjogJGdyYXktOTAwLFxyXG4gIHdoaXRlOiAkd2hpdGVcclxuKTtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9tb2R1bGVzL2p4Y29tcGFyZXByb2R1Y3Qvdmlld3MvY3NzL0M6L09wZW5TZXJ2ZXIvZG9tYWlucy9sb2NhbGhvc3QvdGhlbWUxNDUwL3RoZW1lcy90aGVtZV8xNDUwL19kZXYvbW9kdWxlcy9qeGNvbXBhcmVwcm9kdWN0L3ZpZXdzL2Nzcy9DOi9PcGVuU2VydmVyL2RvbWFpbnMvbG9jYWxob3N0L3RoZW1lMTQ1MC90aGVtZXMvdGhlbWVfMTQ1MC9fZGV2L2Nzcy9wYXJ0aWFscy9fdmFyaWFibGVzX2NvbG9yLnNjc3MiLCIvLyBCcmVha3BvaW50IHZpZXdwb3J0IHNpemVzIGFuZCBtZWRpYSBxdWVyaWVzLlxuLy9cbi8vIEJyZWFrcG9pbnRzIGFyZSBkZWZpbmVkIGFzIGEgbWFwIG9mIChuYW1lOiBtaW5pbXVtIHdpZHRoKSwgb3JkZXIgZnJvbSBzbWFsbCB0byBsYXJnZTpcbi8vXG4vLyAgICAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpXG4vL1xuLy8gVGhlIG1hcCBkZWZpbmVkIGluIHRoZSBgJGdyaWQtYnJlYWtwb2ludHNgIGdsb2JhbCB2YXJpYWJsZSBpcyB1c2VkIGFzIHRoZSBgJGJyZWFrcG9pbnRzYCBhcmd1bWVudCBieSBkZWZhdWx0LlxuXG4vLyBOYW1lIG9mIHRoZSBuZXh0IGJyZWFrcG9pbnQsIG9yIG51bGwgZm9yIHRoZSBsYXN0IGJyZWFrcG9pbnQuXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtKVxuLy8gICAgbWRcbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcbi8vICAgIG1kXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20sICRicmVha3BvaW50LW5hbWVzOiAoeHMgc20gbWQgbGcgeGwpKVxuLy8gICAgbWRcbkBmdW5jdGlvbiBicmVha3BvaW50LW5leHQoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMsICRicmVha3BvaW50LW5hbWVzOiBtYXAta2V5cygkYnJlYWtwb2ludHMpKSB7XG4gICRuOiBpbmRleCgkYnJlYWtwb2ludC1uYW1lcywgJG5hbWUpO1xuICBAcmV0dXJuIGlmKCRuIDwgbGVuZ3RoKCRicmVha3BvaW50LW5hbWVzKSwgbnRoKCRicmVha3BvaW50LW5hbWVzLCAkbiArIDEpLCBudWxsKTtcbn1cblxuLy8gTWluaW11bSBicmVha3BvaW50IHdpZHRoLiBOdWxsIGZvciB0aGUgc21hbGxlc3QgKGZpcnN0KSBicmVha3BvaW50LlxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtbWluKHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxuLy8gICAgNTc2cHhcbkBmdW5jdGlvbiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJG5hbWUpO1xuICBAcmV0dXJuIGlmKCRtaW4gIT0gMCwgJG1pbiwgbnVsbCk7XG59XG5cbi8vIE1heGltdW0gYnJlYWtwb2ludCB3aWR0aC4gTnVsbCBmb3IgdGhlIGxhcmdlc3QgKGxhc3QpIGJyZWFrcG9pbnQuXG4vLyBUaGUgbWF4aW11bSB2YWx1ZSBpcyBjYWxjdWxhdGVkIGFzIHRoZSBtaW5pbXVtIG9mIHRoZSBuZXh0IG9uZSBsZXNzIDAuMDJweFxuLy8gdG8gd29yayBhcm91bmQgdGhlIGxpbWl0YXRpb25zIG9mIGBtaW4tYCBhbmQgYG1heC1gIHByZWZpeGVzIGFuZCB2aWV3cG9ydHMgd2l0aCBmcmFjdGlvbmFsIHdpZHRocy5cbi8vIFNlZSBodHRwczovL3d3dy53My5vcmcvVFIvbWVkaWFxdWVyaWVzLTQvI21xLW1pbi1tYXhcbi8vIFVzZXMgMC4wMnB4IHJhdGhlciB0aGFuIDAuMDFweCB0byB3b3JrIGFyb3VuZCBhIGN1cnJlbnQgcm91bmRpbmcgYnVnIGluIFNhZmFyaS5cbi8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4MjYxXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1tYXgoc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICA3NjcuOThweFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRuZXh0OiBicmVha3BvaW50LW5leHQoJG5hbWUsICRicmVha3BvaW50cyk7XG4gIEByZXR1cm4gaWYoJG5leHQsIGJyZWFrcG9pbnQtbWluKCRuZXh0LCAkYnJlYWtwb2ludHMpIC0gLjAycHgsIG51bGwpO1xufVxuXG4vLyBSZXR1cm5zIGEgYmxhbmsgc3RyaW5nIGlmIHNtYWxsZXN0IGJyZWFrcG9pbnQsIG90aGVyd2lzZSByZXR1cm5zIHRoZSBuYW1lIHdpdGggYSBkYXNoIGluZnJvbnQuXG4vLyBVc2VmdWwgZm9yIG1ha2luZyByZXNwb25zaXZlIHV0aWxpdGllcy5cbi8vXG4vLyAgICA+PiBicmVha3BvaW50LWluZml4KHhzLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxuLy8gICAgXCJcIiAgKFJldHVybnMgYSBibGFuayBzdHJpbmcpXG4vLyAgICA+PiBicmVha3BvaW50LWluZml4KHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxuLy8gICAgXCItc21cIlxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtaW5maXgoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgQHJldHVybiBpZihicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKSA9PSBudWxsLCBcIlwiLCBcIi0jeyRuYW1lfVwiKTtcbn1cblxuLy8gTWVkaWEgb2YgYXQgbGVhc3QgdGhlIG1pbmltdW0gYnJlYWtwb2ludCB3aWR0aC4gTm8gcXVlcnkgZm9yIHRoZSBzbWFsbGVzdCBicmVha3BvaW50LlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50IGFuZCB3aWRlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LXVwKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46IGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuICBAaWYgJG1pbiB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gTWVkaWEgb2YgYXQgbW9zdCB0aGUgbWF4aW11bSBicmVha3BvaW50IHdpZHRoLiBObyBxdWVyeSBmb3IgdGhlIGxhcmdlc3QgYnJlYWtwb2ludC5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSB0byB0aGUgZ2l2ZW4gYnJlYWtwb2ludCBhbmQgbmFycm93ZXIuXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1kb3duKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtYXg6IGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuICBAaWYgJG1heCB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gTWVkaWEgdGhhdCBzcGFucyBtdWx0aXBsZSBicmVha3BvaW50IHdpZHRocy5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSBiZXR3ZWVuIHRoZSBtaW4gYW5kIG1heCBicmVha3BvaW50c1xuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtYmV0d2VlbigkbG93ZXIsICR1cHBlciwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiBicmVha3BvaW50LW1pbigkbG93ZXIsICRicmVha3BvaW50cyk7XG4gICRtYXg6IGJyZWFrcG9pbnQtbWF4KCR1cHBlciwgJGJyZWFrcG9pbnRzKTtcblxuICBAaWYgJG1pbiAhPSBudWxsIGFuZCAkbWF4ICE9IG51bGwge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSBhbmQgKG1heC13aWR0aDogJG1heCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICRtYXggPT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkbG93ZXIsICRicmVha3BvaW50cykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICRtaW4gPT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKCR1cHBlciwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8gTWVkaWEgYmV0d2VlbiB0aGUgYnJlYWtwb2ludCdzIG1pbmltdW0gYW5kIG1heGltdW0gd2lkdGhzLlxuLy8gTm8gbWluaW11bSBmb3IgdGhlIHNtYWxsZXN0IGJyZWFrcG9pbnQsIGFuZCBubyBtYXhpbXVtIGZvciB0aGUgbGFyZ2VzdCBvbmUuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgb25seSB0byB0aGUgZ2l2ZW4gYnJlYWtwb2ludCwgbm90IHZpZXdwb3J0cyBhbnkgd2lkZXIgb3IgbmFycm93ZXIuXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1vbmx5KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46IGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuICAkbWF4OiBicmVha3BvaW50LW1heCgkbmFtZSwgJGJyZWFrcG9pbnRzKTtcblxuICBAaWYgJG1pbiAhPSBudWxsIGFuZCAkbWF4ICE9IG51bGwge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSBhbmQgKG1heC13aWR0aDogJG1heCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICRtYXggPT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkbmFtZSwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1pbiA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oJG5hbWUsICRicmVha3BvaW50cykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9tb2R1bGVzL2p4Y29tcGFyZXByb2R1Y3Qvdmlld3MvY3NzL0M6L09wZW5TZXJ2ZXIvZG9tYWlucy9sb2NhbGhvc3QvdGhlbWUxNDUwL3RoZW1lcy90aGVtZV8xNDUwL19kZXYvbW9kdWxlcy9qeGNvbXBhcmVwcm9kdWN0L3ZpZXdzL2Nzcy9DOi9PcGVuU2VydmVyL2RvbWFpbnMvbG9jYWxob3N0L3RoZW1lMTQ1MC90aGVtZXMvdGhlbWVfMTQ1MC9fZGV2L25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX2JyZWFrcG9pbnRzLnNjc3MiXSwic291cmNlUm9vdCI6IiJ9*/