ctt-puro 0.69.2 → 0.69.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -95,24 +95,21 @@ export class PuroScriptDirective {
95
95
  }
96
96
  })(document.querySelectorAll('.js-slider_fix-arrows'), jQuery);
97
97
  /* --- Accordion --- */
98
- (function (a, $) {
99
- if (!a.length)
100
- return;
101
- $('.js-accordion')
102
- .off('click')
103
- .on('click', function () {
104
- const tab = $(this);
105
- const item = tab.closest('.faq__item');
106
- const content = tab.next('.faq__content');
107
- $('.faq__item.active')
108
- .not(item)
109
- .removeClass('active')
110
- .find('.faq__content')
111
- .slideUp();
112
- item.toggleClass('active');
113
- content.slideToggle();
114
- });
115
- })(document.querySelectorAll('.js-accordion'), jQuery);
98
+ $(document)
99
+ .off('click.puroFaq')
100
+ .on('click.puroFaq', '.js-accordion', function () {
101
+ const tab = $(this);
102
+ const item = tab.closest('.faq__item');
103
+ const content = tab.next('.faq__content');
104
+ $('.faq__item.active')
105
+ .not(item)
106
+ .removeClass('active')
107
+ .find('.faq__content')
108
+ .stop(true, true)
109
+ .slideUp();
110
+ item.toggleClass('active');
111
+ content.stop(true, true).slideToggle();
112
+ });
116
113
  /* --- Botones "Ver más / menos" --- */
117
114
  (function (a, $) {
118
115
  if (a.length) {
@@ -300,4 +297,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
300
297
  type: Inject,
301
298
  args: [PLATFORM_ID]
302
299
  }] }] });
303
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVyby1zY3JpcHQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHVyby9zcmMvbGliL2RpcmVjdGl2ZXMvcHVyby1zY3JpcHQvcHVyby1zY3JpcHQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOztBQVMxRSxNQUFNLE9BQU8sbUJBQW1CO0lBRzVCLFlBQXlDLFVBQWtCO1FBQWxCLGVBQVUsR0FBVixVQUFVLENBQVE7UUFGM0QsZUFBVSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVcsQ0FBQztRQUduQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUFFLE9BQU87UUFFaEQsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNSLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO2dCQUFFLE9BQU87WUFDaEQsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUU7Z0JBQ25CLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQzthQUNyQjtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLFVBQVU7UUFDZCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUFFLE9BQU87UUFDaEQsSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXO1lBQUUsT0FBTztRQUMxQyxJQUFJLE9BQU8sUUFBUSxLQUFLLFdBQVc7WUFBRSxPQUFPO1FBQzVDLElBQUksT0FBTyxDQUFDLEtBQUssV0FBVztZQUFFLE9B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bSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IERpcmVjdGl2ZSwgZWZmZWN0LCBJbmplY3QsIGlucHV0LCBQTEFURk9STV9JRCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGF0ZXBpY2tlckxvY2FsZVV0aWwgfSBmcm9tICcuLi8uLi91dGlscy9kYXRlcGlja2VyLWxvY2FsZS51dGlsJztcblxuZGVjbGFyZSB2YXIgJDogYW55O1xuZGVjbGFyZSB2YXIgalF1ZXJ5OiBhbnk7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3NjcmlwdExvYWRlcl0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIFB1cm9TY3JpcHREaXJlY3RpdmUge1xuICAgIGRhdGFMb2FkZWQgPSBpbnB1dC5yZXF1aXJlZDxib29sZWFuPigpO1xuXG4gICAgY29uc3RydWN0b3IoQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSBwbGF0Zm9ybUlkOiBPYmplY3QpIHtcbiAgICAgICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSByZXR1cm47XG5cbiAgICAgICAgZWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkgcmV0dXJuO1xuICAgICAgICAgICAgaWYgKHRoaXMuZGF0YUxvYWRlZCgpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkU2NyaXB0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgbG9hZFNjcmlwdCgpIHtcbiAgICAgICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSByZXR1cm47XG4gICAgICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykgcmV0dXJuO1xuICAgICAgICBpZiAodHlwZW9mIGRvY3VtZW50ID09PSAndW5kZWZpbmVkJykgcmV0dXJuO1xuICAgICAgICBpZiAodHlwZW9mICQgPT09ICd1bmRlZmluZWQnKSByZXR1cm47XG5cbiAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5ydW5Ccm93c2VyU2NyaXB0cygpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgcnVuQnJvd3NlclNjcmlwdHMoKTogdm9pZCB7XG4gICAgICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkgcmV0dXJuO1xuICAgICAgICAvKiDwn4yQIERldGVjdGFyIGlkaW9tYSBhY3Rpdm8gKi9cbiAgICAgICAgbGV0IGN1cnJlbnRMYW5nID0gJ2VzJztcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGxhbmdBdHRyID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50Lmxhbmc7XG4gICAgICAgICAgICBpZiAobGFuZ0F0dHIpIGN1cnJlbnRMYW5nID0gbGFuZ0F0dHI7XG4gICAgICAgICAgICBlbHNlIGlmIChsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbGFuZ3VhZ2UnKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxhbmdPYmogPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdsYW5ndWFnZScpISk7XG4gICAgICAgICAgICAgICAgaWYgKGxhbmdPYmoubG9jYXRlKSBjdXJyZW50TGFuZyA9IGxhbmdPYmoubG9jYXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIHt9XG5cbiAgICAgICAgLy8g8J+UpCBOb3JtYWxpemFyIGPDs2RpZ28gZGUgaWRpb21hIChzb3BvcnRlIGVzLUVTLCBlbi1HQiwgZGUtREUpXG4gICAgICAgIGN1cnJlbnRMYW5nID0gKGN1cnJlbnRMYW5nLnNwbGl0KCctJylbMF0gfHwgJ2VzJykgYXMgJ2VzJyB8ICdlbicgfCAnZGUnO1xuXG4gICAgICAgIC8vIPCfl5PvuI8gUmVnaXN0cmFyIGxvY2FsZXMgeSBhcGxpY2FyIGlkaW9tYVxuICAgICAgICBEYXRlcGlja2VyTG9jYWxlVXRpbC5zZXRMb2NhbGUoRGF0ZXBpY2tlckxvY2FsZVV0aWwuZGV0ZWN0TGFuZ3VhZ2UoKSk7XG5cbiAgICAgICAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICAgICAgICogICAgIEzDk0dJQ0EgUFJJTkNJUEFMIERFIFNDUklQVFNcbiAgICAgICAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgICAgICAkKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAvKiAtLS0gQXJyb3dzIFBvc2l0aW9uIEZpeCAtLS0gKi9cbiAgICAgICAgICAgIChmdW5jdGlvbiAoYSwgJCkge1xuICAgICAgICAgICAgICAgIGlmIChhLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCAkc2xpZGVyQyA9ICQoJy5qcy1zbGlkZXJfZml4LWFycm93cycpO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICRzbGlkZXJDLmxlbmd0aCA+IDAgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICEkc2xpZGVyQy5oYXNDbGFzcygnc2xpY2staW5pdGlhbGl6ZWQnKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG5cbiAgICAgICAgICAgICAgICAgICAgJCgnLmpzLXNsaWRlcl9maXgtYXJyb3dzJyk/LmVhY2goZnVuY3Rpb24gKFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpczogSFRNTEVsZW1lbnRcbiAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgc2xpZGVyID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBhcnJvd3MgPSBzbGlkZXIuc2libGluZ3MoJy5qcy1zbGlkZXItYXJyb3dzJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBjYWxjX3Bvc2l0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBoZWlnaHRfc2VsZWN0b3I7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbGlkZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8uZmluZCgnLmpzLXNsaWRlcl9maXgtYXJyb3dzLXpvbmUnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPy5oYXNDbGFzcygnbW9iaWxlJykgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LmlubmVyV2lkdGggPD0gMTI3OVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHRfc2VsZWN0b3IgPSBzbGlkZXIuZmluZChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcuanMtc2xpZGVyX2ZpeC1hcnJvd3Mtem9uZS5tb2JpbGUnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xpZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/LmZpbmQoJy5qcy1zbGlkZXJfZml4LWFycm93cy16b25lJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8uaGFzQ2xhc3MoJ2Rlc2t0b3AnKSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cuaW5uZXJXaWR0aCA+PSAxMjgwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodF9zZWxlY3RvciA9IHNsaWRlcj8uZmluZChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcuanMtc2xpZGVyX2ZpeC1hcnJvd3Mtem9uZS5kZXNrdG9wJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodF9zZWxlY3RvciA9IHNsaWRlcj8uZmluZChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcuanMtc2xpZGVyX2ZpeC1hcnJvd3Mtem9uZSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGhlaWdodCA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodF9zZWxlY3Rvcj8ub2Zmc2V0KCk/LnRvcCAtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodF9zZWxlY3Rvci5wYXJlbnRzKCcucmVsYXRpdmUnKS5vZmZzZXQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPy50b3AgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHRfc2VsZWN0b3Iub3V0ZXJIZWlnaHQoKSAvIDI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJyb3dzLmNzcygndG9wJywgaGVpZ2h0ICsgJ3B4Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjYWxjX3Bvc2l0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGNhbGNfcG9zaXRpb24sIDUwMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAkKHdpbmRvdykuc2Nyb2xsKGNhbGNfcG9zaXRpb24pO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuanMtc2xpZGVyX2ZpeC1hcnJvd3MnKSwgalF1ZXJ5KTtcblxuICAgICAgICAgICAgLyogLS0tIEFjY29yZGlvbiAtLS0gKi9cbiAgICAgICAgICAgIChmdW5jdGlvbiAoYTogTm9kZUxpc3RPZjxFbGVtZW50PiwgJDogYW55KSB7XG4gICAgICAgICAgICAgICAgaWYgKCFhLmxlbmd0aCkgcmV0dXJuO1xuXG4gICAgICAgICAgICAgICAgJCgnLmpzLWFjY29yZGlvbicpXG4gICAgICAgICAgICAgICAgICAgIC5vZmYoJ2NsaWNrJylcbiAgICAgICAgICAgICAgICAgICAgLm9uKCdjbGljaycsIGZ1bmN0aW9uICh0aGlzOiBIVE1MRWxlbWVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFiID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSB0YWIuY2xvc2VzdCgnLmZhcV9faXRlbScpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY29udGVudCA9IHRhYi5uZXh0KCcuZmFxX19jb250ZW50Jyk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICQoJy5mYXFfX2l0ZW0uYWN0aXZlJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAubm90KGl0ZW0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnJlbW92ZUNsYXNzKCdhY3RpdmUnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5maW5kKCcuZmFxX19jb250ZW50JylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc2xpZGVVcCgpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLnRvZ2dsZUNsYXNzKCdhY3RpdmUnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuc2xpZGVUb2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuanMtYWNjb3JkaW9uJyksIGpRdWVyeSk7XG5cbiAgICAgICAgICAgIC8qIC0tLSBCb3RvbmVzIFwiVmVyIG3DoXMgLyBtZW5vc1wiIC0tLSAqL1xuICAgICAgICAgICAgKGZ1bmN0aW9uIChhLCAkKSB7XG4gICAgICAgICAgICAgICAgaWYgKGEubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICQoJy5idG5fX21vcmVMZXNzJyk/Lm9uKFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2NsaWNrJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uICh0aGlzOiBIVE1MRWxlbWVudCwgZTogRXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGJ1dHRvbiA9ICQodGhpcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY29udGVudCA9IGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/LmNsb3Nlc3QoJ3NlY3Rpb24nKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/LmZpbmQoJy5tb3JlLWNvbnRlbnQnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWN0aW9uID0gYnV0dG9uPy5jbG9zZXN0KCdzZWN0aW9uJyk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50LnNsaWRlVG9nZ2xlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNIaWRkZW4gPSBjb250ZW50LmlzKCc6aGlkZGVuJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlY3Rpb24udG9nZ2xlQ2xhc3MoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbW9yZUxlc3MtLWFjdGl2ZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhaXNIaWRkZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuYnRuX19tb3JlTGVzcycpLCBqUXVlcnkpO1xuXG4gICAgICAgICAgICAvKiAtLS0gT2N1bHRhciB0b2FzdCBhbCBoYWNlciBzY3JvbGwgLS0tICovXG4gICAgICAgICAgICAoZnVuY3Rpb24gKCQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCAkYmFubmVyID0gJCgnLmJhbm5lcicpO1xuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGNoZWNrQmFubmVyVmlzaWJpbGl0eSgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmFubmVyVG9wID0gJGJhbm5lci5vZmZzZXQoKT8udG9wID8/IDA7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJhbm5lckJvdHRvbSA9XG4gICAgICAgICAgICAgICAgICAgICAgICBiYW5uZXJUb3AgKyAoJGJhbm5lci5vdXRlckhlaWdodCgpIGFzIG51bWJlcik7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZpZXdwb3J0VG9wID0gJCh3aW5kb3cpLnNjcm9sbFRvcCgpID8/IDA7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZpZXdwb3J0Qm90dG9tID0gdmlld3BvcnRUb3AgKyAkKHdpbmRvdykuaGVpZ2h0KCk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgYmFubmVyQm90dG9tIDw9IHZpZXdwb3J0VG9wIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICBiYW5uZXJUb3AgPj0gdmlld3BvcnRCb3R0b21cbiAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkKCdib2R5JykucmVtb3ZlQ2xhc3MoJ3Qtb2ZmZXJzIHRvYXN0cy0tb3BlbicpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICQod2luZG93KS5vbignc2Nyb2xsIHJlc2l6ZScsIGNoZWNrQmFubmVyVmlzaWJpbGl0eSk7XG4gICAgICAgICAgICAgICAgY2hlY2tCYW5uZXJWaXNpYmlsaXR5KCk7XG4gICAgICAgICAgICB9KShqUXVlcnkpO1xuXG4gICAgICAgICAgICAvKiAtLS0gU3ViY2FtcG9zIGh1w6lzcGVkZXMgLS0tICovXG4gICAgICAgICAgICAkKCcuanMtcGVyc29uYXMtc3ViZmllbGRzJylcbiAgICAgICAgICAgICAgICAub2ZmKCdjbGljaycpXG4gICAgICAgICAgICAgICAgLmNsaWNrKGZ1bmN0aW9uICh0aGlzOiBIVE1MRWxlbWVudCkge1xuICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLm5leHQoJy5qcy1maWVsZFN1YicpLnNsaWRlVG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICQoJy5qcy1hcHBseS1ndWVzdHMnKVxuICAgICAgICAgICAgICAgIC5vZmYoJ2NsaWNrJylcbiAgICAgICAgICAgICAgICAuY2xpY2soZnVuY3Rpb24gKHRoaXM6IEhUTUxFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGUgPSAkKHRoaXMpLnBhcmVudHMoJy5iYW5uZXJfX2ZpZWxkU3ViJyksXG4gICAgICAgICAgICAgICAgICAgICAgICByID0gcGFyc2VJbnQoJCgnI2FkdWx0JykudmFsKCkpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhID0gcGFyc2VJbnQoJCgnI2NoaWxkJykudmFsKCkpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBuID0gciArIGE7XG4gICAgICAgICAgICAgICAgICAgIGUuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICBlLnNpYmxpbmdzKCcuanMtcGVyc29uYXMtc3ViZmllbGRzJylcbiAgICAgICAgICAgICAgICAgICAgICAgIC5maW5kKCcuYmFubmVyX19maWVsZENvbnRyb2wnKVxuICAgICAgICAgICAgICAgICAgICAgICAgLnRleHQobiA8PSA5ID8gJzAnICsgbiA6IG4pO1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAkKCcuanMtYXBwbHktZ3Vlc3RzMScpXG4gICAgICAgICAgICAgICAgLm9mZignY2xpY2snKVxuICAgICAgICAgICAgICAgIC5jbGljayhmdW5jdGlvbiAodGhpczogSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZSA9ICQodGhpcykucGFyZW50cygnLmJvb2tpbmdfX2ZpZWxkU3ViJyksXG4gICAgICAgICAgICAgICAgICAgICAgICByID0gcGFyc2VJbnQoJCgnI2FkdWx0MScpLnZhbCgpKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYSA9IHBhcnNlSW50KCQoJyNjaGlsZDEnKS52YWwoKSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG4gPSByICsgYTtcbiAgICAgICAgICAgICAgICAgICAgZS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIGUuc2libGluZ3MoJy5qcy1wZXJzb25hcy1zdWJmaWVsZHMnKVxuICAgICAgICAgICAgICAgICAgICAgICAgLmZpbmQoJy5ib29raW5nX19maWVsZENvbnRyb2wnKVxuICAgICAgICAgICAgICAgICAgICAgICAgLnRleHQobiA8PSA5ID8gJzAnICsgbiA6IG4pO1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAvKiAtLS0gQWN0dWFsaXphY2nDs24gZGluw6FtaWNhIGRlIGxhYmVscyAtLS0gKi9cbiAgICAgICAgICAgICQoJy5ib29raW5nX19maWVsZENvbnRyb2xbdHlwZT1cInRleHRcIl0nKS5lYWNoKGZ1bmN0aW9uIChcbiAgICAgICAgICAgICAgICB0aGlzOiBIVE1MRWxlbWVudFxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgbGV0IGRlZmF1bHR2YWx1ZTogYW55O1xuICAgICAgICAgICAgICAgIGNvbnN0ICRmaWVsZElubmVyID0gJCh0aGlzKS5wYXJlbnRzKCcuYm9va2luZ19fZmllbGRJbm5lcicpO1xuICAgICAgICAgICAgICAgIGlmICghZGVmYXVsdHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHR2YWx1ZSA9ICRmaWVsZElubmVyLmF0dHIoJ3N0eWxlJykgfHwgJyc7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJCh0aGlzKS5vbigna2V5dXAnLCBmdW5jdGlvbiAodGhpczogSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGV4dExlbmd0aCA9ICQodGhpcykudmFsKCkubGVuZ3RoICogMS4zO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGV4dExlbmd0aCA9PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkZmllbGRJbm5lci5hdHRyKCdzdHlsZScsIGRlZmF1bHR2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkZmllbGRJbm5lci5jc3MoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJy0tbGFiZWxMZWZ0UG9zaXRpb24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRMZW5ndGggKyAncmVtJ1xuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgICAgICAgICAgKiAgICAgICAgICBEQVRFUElDS0VSXG4gICAgICAgICAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuICAgICAgICAgICAgY29uc3QgaW5pdERhdGVwaWNrZXIgPSAoc2VsZWN0b3I6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgICQoc2VsZWN0b3IpLmVhY2goZnVuY3Rpb24gKHRoaXM6IEhUTUxFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIEFwbGljYXIgaWRpb21hIGFudGVzIGRlIGluaWNpYWxpemFyw6dcbiAgICAgICAgICAgICAgICAgICAgRGF0ZXBpY2tlckxvY2FsZVV0aWwuc2V0TG9jYWxlKFxuICAgICAgICAgICAgICAgICAgICAgICAgRGF0ZXBpY2tlckxvY2FsZVV0aWwuZGV0ZWN0TGFuZ3VhZ2UoKVxuICAgICAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIERlc3RydWlyIGFudGVyaW9yIHNpIHlhIGV4aXN0w61hXG4gICAgICAgICAgICAgICAgICAgIGlmICgkKHRoaXMpLmhhc0NsYXNzKCdoYXNEYXRlcGlja2VyJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICQodGhpcykuZGF0ZXBpY2tlcignZGVzdHJveScpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gSW5pY2lhbGl6YXJcbiAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5kYXRlcGlja2VyKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNob3dBbmltOiAnZmFkZUluJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZU1vbnRoOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlWWVhcjogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNob3dPdGhlck1vbnRoczogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdE90aGVyTW9udGhzOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgYmVmb3JlU2hvdzogZnVuY3Rpb24gKGlucHV0OiBIVE1MRWxlbWVudCwgaW5zdDogYW55KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0ICRpbnB1dCA9ICQoaW5wdXQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnB1dE9mZnNldCA9ICRpbnB1dC5vZmZzZXQoKSE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGlucHV0SGVpZ2h0ID0gJGlucHV0Lm91dGVySGVpZ2h0KCkhO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCAkZHBEaXYgPSBpbnN0LmRwRGl2O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRwSGVpZ2h0ID0gJGRwRGl2Lm91dGVySGVpZ2h0KCkgfHwgMjYwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2aWV3cG9ydFRvcCA9ICQod2luZG93KS5zY3JvbGxUb3AoKSE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZpZXdwb3J0SGVpZ2h0ID0gJCh3aW5kb3cpLmhlaWdodCgpITtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3BhY2VBYm92ZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dE9mZnNldC50b3AgLSB2aWV3cG9ydFRvcDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3BhY2VCZWxvdyA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3cG9ydEhlaWdodCAtIChzcGFjZUFib3ZlICsgaW5wdXRIZWlnaHQpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNob3dBYm92ZSA9IHNwYWNlQWJvdmUgPiBzcGFjZUJlbG93O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRkcERpdi5jc3Moe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiBzaG93QWJvdmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGlucHV0T2Zmc2V0LnRvcCAtIGRwSGVpZ2h0IC0gOCArICdweCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGlucHV0T2Zmc2V0LnRvcCArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dEhlaWdodCArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4ICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiBpbnB1dE9mZnNldC5sZWZ0ICsgJ3B4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHpJbmRleDogOTk5OTksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIDEwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgLy8gSW5pY2lhbGl6YXIgZGF0ZXBpY2tlcnNcbiAgICAgICAgICAgIGluaXREYXRlcGlja2VyKCdbZGF0YS10b2dnbGU9XCJkYXRlcGlja2VyXCJdJyk7XG4gICAgICAgICAgICBpbml0RGF0ZXBpY2tlcignW2RhdGEtdG9nZ2xlPVwiZGF0ZXBpY2tlcjFcIl0nKTtcblxuICAgICAgICAgICAgLy8g8J+UgSBSZWFwbGljYXIgaWRpb21hIGN1YW5kbyBjYW1iaWUgZW4gbG9jYWxTdG9yYWdlXG4gICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc3RvcmFnZScsIChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChldmVudC5rZXkgPT09ICdsYW5ndWFnZScpIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbGFuZyA9ICdlcyc7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9iaiA9IEpTT04ucGFyc2UoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdsYW5ndWFnZScpIVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9iai5sb2NhdGUpIGxhbmcgPSBvYmoubG9jYXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCB7fVxuICAgICAgICAgICAgICAgICAgICAgICAgbGFuZyA9IChsYW5nLnNwbGl0KCctJylbMF0gfHwgJ2VzJykgYXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICdlcydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICdlbidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICdkZSc7XG4gICAgICAgICAgICAgICAgICAgICAgICBEYXRlcGlja2VyTG9jYWxlVXRpbC5zZXRMb2NhbGUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0ZXBpY2tlckxvY2FsZVV0aWwuZGV0ZWN0TGFuZ3VhZ2UoKVxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluaXREYXRlcGlja2VyKCdbZGF0YS10b2dnbGU9XCJkYXRlcGlja2VyXCJdJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpbml0RGF0ZXBpY2tlcignW2RhdGEtdG9nZ2xlPVwiZGF0ZXBpY2tlcjFcIl0nKTtcbiAgICAgICAgICAgICAgICAgICAgfSwgMzAwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLyogLS0tIFNwb3RpZnkgUGxheWVyIC0tLSAqL1xuICAgICAgICBkb2N1bWVudFxuICAgICAgICAgICAgLnF1ZXJ5U2VsZWN0b3JBbGwoJy5zcG90aWZ5UGxheWVyX19hbGJ1bScpXG4gICAgICAgICAgICAuZm9yRWFjaCgoY29udGFpbmVyKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgYXVkaW8gPSBjb250YWluZXIucXVlcnlTZWxlY3RvcihcbiAgICAgICAgICAgICAgICAgICAgJy5zcG90aWZ5UGxheWVyX19tcDMnXG4gICAgICAgICAgICAgICAgKSBhcyBhbnk7XG4gICAgICAgICAgICAgICAgY29uc3QgcGxheVBhdXNlQnV0dG9uID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICAgICAgICAgICAgICcuc3BvdGlmeVBsYXllcl9fYWxidW1QbGF5UGF1c2UnXG4gICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgIHBsYXlQYXVzZUJ1dHRvbj8uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChhdWRpbz8ucGF1c2VkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5xdWVyeVNlbGVjdG9yQWxsKCcuc3BvdGlmeVBsYXllcl9fbXAzJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZm9yRWFjaCgob3RoZXI6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAob3RoZXIgIT09IGF1ZGlvKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdGhlci5wYXVzZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3RoZXJCdXR0b24gPSBvdGhlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jbG9zZXN0KCcuc3BvdGlmeVBsYXllcl9fYWxidW0nKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5xdWVyeVNlbGVjdG9yKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLnNwb3RpZnlQbGF5ZXJfX2FsYnVtUGxheVBhdXNlJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdGhlckJ1dHRvbi5jbGFzc0xpc3QucmVtb3ZlKCdwbGF5Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGF1ZGlvLnBsYXkoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYXlQYXVzZUJ1dHRvbi5jbGFzc0xpc3QuYWRkKCdwbGF5Jyk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhdWRpby5wYXVzZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGxheVBhdXNlQnV0dG9uLmNsYXNzTGlzdC5yZW1vdmUoJ3BsYXknKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
300
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVyby1zY3JpcHQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHVyby9zcmMvbGliL2RpcmVjdGl2ZXMvcHVyby1zY3JpcHQvcHVyby1zY3JpcHQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOztBQVMxRSxNQUFNLE9BQU8sbUJBQW1CO0lBRzVCLFlBQXlDLFVBQWtCO1FBQWxCLGVBQVUsR0FBVixVQUFVLENBQVE7UUFGM0QsZUFBVSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVcsQ0FBQztRQUduQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUFFLE9BQU87UUFFaEQsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNSLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO2dCQUFFLE9BQU87WUFDaEQsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUU7Z0JBQ25CLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQzthQUNyQjtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLFVBQVU7UUFDZCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUFFLE9BQU87UUFDaEQsSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXO1lBQUUsT0FBTztRQUMxQyxJQUFJLE9BQU8sUUFBUSxLQUFLLFdBQVc7WUFBRSxPQUFPO1FBQzVDLElBQUksT0FBTyxDQUFDLEtBQUssV0FBVztZQUFFLE9B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Q25DLENBQUM7WUFFRixlQUFlLEVBQUUsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRTtnQkFDNUMsSUFBSSxLQUFLLEVBQUUsTUFBTSxFQUFFO29CQUNmLFFBQVE7eUJBQ0gsZ0JBQWdCLENBQUMscUJBQXFCLENBQUM7eUJBQ3ZDLE9BQU8sQ0FBQyxDQUFDLEtBQVUsRUFBRSxFQUFFO3dCQUNwQixJQUFJLEtBQUssS0FBSyxLQUFLLEVBQUU7NEJBQ2pCLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQzs0QkFDZCxNQUFNLFdBQVcsR0FBRyxLQUFLO2lDQUNwQixPQUFPLENBQUMsdUJBQXVCLENBQUM7aUNBQ2hDLGFBQWEsQ0FDVixnQ0FBZ0MsQ0FDbkMsQ0FBQzs0QkFDTixXQUFXLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQzt5QkFDeEM7b0JBQ0wsQ0FBQyxDQUFDLENBQUM7b0JBQ1AsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO29CQUNiLGVBQWUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2lCQUN6QztxQkFBTTtvQkFDSCxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBQ2QsZUFBZSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7aUJBQzVDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7K0dBN1ZRLG1CQUFtQixrQkFHUixXQUFXO21HQUh0QixtQkFBbUI7OzRGQUFuQixtQkFBbUI7a0JBSi9CLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsVUFBVSxFQUFFLElBQUk7aUJBQ25COzswQkFJZ0IsTUFBTTsyQkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBlZmZlY3QsIEluamVjdCwgaW5wdXQsIFBMQVRGT1JNX0lEIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXRlcGlja2VyTG9jYWxlVXRpbCB9IGZyb20gJy4uLy4uL3V0aWxzL2RhdGVwaWNrZXItbG9jYWxlLnV0aWwnO1xuXG5kZWNsYXJlIHZhciAkOiBhbnk7XG5kZWNsYXJlIHZhciBqUXVlcnk6IGFueTtcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbc2NyaXB0TG9hZGVyXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgUHVyb1NjcmlwdERpcmVjdGl2ZSB7XG4gICAgZGF0YUxvYWRlZCA9IGlucHV0LnJlcXVpcmVkPGJvb2xlYW4+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IE9iamVjdCkge1xuICAgICAgICBpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHJldHVybjtcblxuICAgICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSByZXR1cm47XG4gICAgICAgICAgICBpZiAodGhpcy5kYXRhTG9hZGVkKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWRTY3JpcHQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBsb2FkU2NyaXB0KCkge1xuICAgICAgICBpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHJldHVybjtcbiAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKSByZXR1cm47XG4gICAgICAgIGlmICh0eXBlb2YgZG9jdW1lbnQgPT09ICd1bmRlZmluZWQnKSByZXR1cm47XG4gICAgICAgIGlmICh0eXBlb2YgJCA9PT0gJ3VuZGVmaW5lZCcpIHJldHVybjtcblxuICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnJ1bkJyb3dzZXJTY3JpcHRzKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBydW5Ccm93c2VyU2NyaXB0cygpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSByZXR1cm47XG4gICAgICAgIC8qIPCfjJAgRGV0ZWN0YXIgaWRpb21hIGFjdGl2byAqL1xuICAgICAgICBsZXQgY3VycmVudExhbmcgPSAnZXMnO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgbGFuZ0F0dHIgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQubGFuZztcbiAgICAgICAgICAgIGlmIChsYW5nQXR0cikgY3VycmVudExhbmcgPSBsYW5nQXR0cjtcbiAgICAgICAgICAgIGVsc2UgaWYgKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdsYW5ndWFnZScpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbGFuZ09iaiA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2xhbmd1YWdlJykhKTtcbiAgICAgICAgICAgICAgICBpZiAobGFuZ09iai5sb2NhdGUpIGN1cnJlbnRMYW5nID0gbGFuZ09iai5sb2NhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2gge31cblxuICAgICAgICAvLyDwn5SkIE5vcm1hbGl6YXIgY8OzZGlnbyBkZSBpZGlvbWEgKHNvcG9ydGUgZXMtRVMsIGVuLUdCLCBkZS1ERSlcbiAgICAgICAgY3VycmVudExhbmcgPSAoY3VycmVudExhbmcuc3BsaXQoJy0nKVswXSB8fCAnZXMnKSBhcyAnZXMnIHwgJ2VuJyB8ICdkZSc7XG5cbiAgICAgICAgLy8g8J+Xk++4jyBSZWdpc3RyYXIgbG9jYWxlcyB5IGFwbGljYXIgaWRpb21hXG4gICAgICAgIERhdGVwaWNrZXJMb2NhbGVVdGlsLnNldExvY2FsZShEYXRlcGlja2VyTG9jYWxlVXRpbC5kZXRlY3RMYW5ndWFnZSgpKTtcblxuICAgICAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgICAgICAgKiAgICAgTMOTR0lDQSBQUklOQ0lQQUwgREUgU0NSSVBUU1xuICAgICAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgICAgICQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIC8qIC0tLSBBcnJvd3MgUG9zaXRpb24gRml4IC0tLSAqL1xuICAgICAgICAgICAgKGZ1bmN0aW9uIChhLCAkKSB7XG4gICAgICAgICAgICAgICAgaWYgKGEubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0ICRzbGlkZXJDID0gJCgnLmpzLXNsaWRlcl9maXgtYXJyb3dzJyk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgJHNsaWRlckMubGVuZ3RoID4gMCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgISRzbGlkZXJDLmhhc0NsYXNzKCdzbGljay1pbml0aWFsaXplZCcpXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcblxuICAgICAgICAgICAgICAgICAgICAkKCcuanMtc2xpZGVyX2ZpeC1hcnJvd3MnKT8uZWFjaChmdW5jdGlvbiAoXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzOiBIVE1MRWxlbWVudFxuICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBzbGlkZXIgPSAkKHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGFycm93cyA9IHNsaWRlci5zaWJsaW5ncygnLmpzLXNsaWRlci1hcnJvd3MnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGNhbGNfcG9zaXRpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGhlaWdodF9zZWxlY3RvcjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsaWRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPy5maW5kKCcuanMtc2xpZGVyX2ZpeC1hcnJvd3Mtem9uZScpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/Lmhhc0NsYXNzKCdtb2JpbGUnKSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cuaW5uZXJXaWR0aCA8PSAxMjc5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodF9zZWxlY3RvciA9IHNsaWRlci5maW5kKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy5qcy1zbGlkZXJfZml4LWFycm93cy16b25lLm1vYmlsZSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbGlkZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8uZmluZCgnLmpzLXNsaWRlcl9maXgtYXJyb3dzLXpvbmUnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPy5oYXNDbGFzcygnZGVza3RvcCcpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5pbm5lcldpZHRoID49IDEyODBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0X3NlbGVjdG9yID0gc2xpZGVyPy5maW5kKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy5qcy1zbGlkZXJfZml4LWFycm93cy16b25lLmRlc2t0b3AnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0X3NlbGVjdG9yID0gc2xpZGVyPy5maW5kKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy5qcy1zbGlkZXJfZml4LWFycm93cy16b25lJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgaGVpZ2h0ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0X3NlbGVjdG9yPy5vZmZzZXQoKT8udG9wIC1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0X3NlbGVjdG9yLnBhcmVudHMoJy5yZWxhdGl2ZScpLm9mZnNldCgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/LnRvcCArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodF9zZWxlY3Rvci5vdXRlckhlaWdodCgpIC8gMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJvd3MuY3NzKCd0b3AnLCBoZWlnaHQgKyAncHgnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNhbGNfcG9zaXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoY2FsY19wb3NpdGlvbiwgNTAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICQod2luZG93KS5zY3JvbGwoY2FsY19wb3NpdGlvbik7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5qcy1zbGlkZXJfZml4LWFycm93cycpLCBqUXVlcnkpO1xuXG4gICAgICAgICAgICAvKiAtLS0gQWNjb3JkaW9uIC0tLSAqL1xuICAgICAgICAgICAgJChkb2N1bWVudClcbiAgICAgICAgICAgICAgICAub2ZmKCdjbGljay5wdXJvRmFxJylcbiAgICAgICAgICAgICAgICAub24oXG4gICAgICAgICAgICAgICAgICAgICdjbGljay5wdXJvRmFxJyxcbiAgICAgICAgICAgICAgICAgICAgJy5qcy1hY2NvcmRpb24nLFxuICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiAodGhpczogSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRhYiA9ICQodGhpcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpdGVtID0gdGFiLmNsb3Nlc3QoJy5mYXFfX2l0ZW0nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSB0YWIubmV4dCgnLmZhcV9fY29udGVudCcpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAkKCcuZmFxX19pdGVtLmFjdGl2ZScpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLm5vdChpdGVtKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5yZW1vdmVDbGFzcygnYWN0aXZlJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZmluZCgnLmZhcV9fY29udGVudCcpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnN0b3AodHJ1ZSwgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc2xpZGVVcCgpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLnRvZ2dsZUNsYXNzKCdhY3RpdmUnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuc3RvcCh0cnVlLCB0cnVlKS5zbGlkZVRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgLyogLS0tIEJvdG9uZXMgXCJWZXIgbcOhcyAvIG1lbm9zXCIgLS0tICovXG4gICAgICAgICAgICAoZnVuY3Rpb24gKGEsICQpIHtcbiAgICAgICAgICAgICAgICBpZiAoYS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgJCgnLmJ0bl9fbW9yZUxlc3MnKT8ub24oXG4gICAgICAgICAgICAgICAgICAgICAgICAnY2xpY2snLFxuICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gKHRoaXM6IEhUTUxFbGVtZW50LCBlOiBFdmVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYnV0dG9uID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjb250ZW50ID0gYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8uY2xvc2VzdCgnc2VjdGlvbicpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8uZmluZCgnLm1vcmUtY29udGVudCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNlY3Rpb24gPSBidXR0b24/LmNsb3Nlc3QoJ3NlY3Rpb24nKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuc2xpZGVUb2dnbGUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpc0hpZGRlbiA9IGNvbnRlbnQuaXMoJzpoaWRkZW4nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VjdGlvbi50b2dnbGVDbGFzcyhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtb3JlTGVzcy0tYWN0aXZlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICFpc0hpZGRlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5idG5fX21vcmVMZXNzJyksIGpRdWVyeSk7XG5cbiAgICAgICAgICAgIC8qIC0tLSBPY3VsdGFyIHRvYXN0IGFsIGhhY2VyIHNjcm9sbCAtLS0gKi9cbiAgICAgICAgICAgIChmdW5jdGlvbiAoJCkge1xuICAgICAgICAgICAgICAgIGNvbnN0ICRiYW5uZXIgPSAkKCcuYmFubmVyJyk7XG4gICAgICAgICAgICAgICAgZnVuY3Rpb24gY2hlY2tCYW5uZXJWaXNpYmlsaXR5KCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBiYW5uZXJUb3AgPSAkYmFubmVyLm9mZnNldCgpPy50b3AgPz8gMDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmFubmVyQm90dG9tID1cbiAgICAgICAgICAgICAgICAgICAgICAgIGJhbm5lclRvcCArICgkYmFubmVyLm91dGVySGVpZ2h0KCkgYXMgbnVtYmVyKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgdmlld3BvcnRUb3AgPSAkKHdpbmRvdykuc2Nyb2xsVG9wKCkgPz8gMDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgdmlld3BvcnRCb3R0b20gPSB2aWV3cG9ydFRvcCArICQod2luZG93KS5oZWlnaHQoKTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICBiYW5uZXJCb3R0b20gPD0gdmlld3BvcnRUb3AgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhbm5lclRvcCA+PSB2aWV3cG9ydEJvdHRvbVxuICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICQoJ2JvZHknKS5yZW1vdmVDbGFzcygndC1vZmZlcnMgdG9hc3RzLS1vcGVuJyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJCh3aW5kb3cpLm9uKCdzY3JvbGwgcmVzaXplJywgY2hlY2tCYW5uZXJWaXNpYmlsaXR5KTtcbiAgICAgICAgICAgICAgICBjaGVja0Jhbm5lclZpc2liaWxpdHkoKTtcbiAgICAgICAgICAgIH0pKGpRdWVyeSk7XG5cbiAgICAgICAgICAgIC8qIC0tLSBTdWJjYW1wb3MgaHXDqXNwZWRlcyAtLS0gKi9cbiAgICAgICAgICAgICQoJy5qcy1wZXJzb25hcy1zdWJmaWVsZHMnKVxuICAgICAgICAgICAgICAgIC5vZmYoJ2NsaWNrJylcbiAgICAgICAgICAgICAgICAuY2xpY2soZnVuY3Rpb24gKHRoaXM6IEhUTUxFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICQodGhpcykubmV4dCgnLmpzLWZpZWxkU3ViJykuc2xpZGVUb2dnbGUoKTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgJCgnLmpzLWFwcGx5LWd1ZXN0cycpXG4gICAgICAgICAgICAgICAgLm9mZignY2xpY2snKVxuICAgICAgICAgICAgICAgIC5jbGljayhmdW5jdGlvbiAodGhpczogSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZSA9ICQodGhpcykucGFyZW50cygnLmJhbm5lcl9fZmllbGRTdWInKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHIgPSBwYXJzZUludCgkKCcjYWR1bHQnKS52YWwoKSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGEgPSBwYXJzZUludCgkKCcjY2hpbGQnKS52YWwoKSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG4gPSByICsgYTtcbiAgICAgICAgICAgICAgICAgICAgZS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIGUuc2libGluZ3MoJy5qcy1wZXJzb25hcy1zdWJmaWVsZHMnKVxuICAgICAgICAgICAgICAgICAgICAgICAgLmZpbmQoJy5iYW5uZXJfX2ZpZWxkQ29udHJvbCcpXG4gICAgICAgICAgICAgICAgICAgICAgICAudGV4dChuIDw9IDkgPyAnMCcgKyBuIDogbik7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICQoJy5qcy1hcHBseS1ndWVzdHMxJylcbiAgICAgICAgICAgICAgICAub2ZmKCdjbGljaycpXG4gICAgICAgICAgICAgICAgLmNsaWNrKGZ1bmN0aW9uICh0aGlzOiBIVE1MRWxlbWVudCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlID0gJCh0aGlzKS5wYXJlbnRzKCcuYm9va2luZ19fZmllbGRTdWInKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHIgPSBwYXJzZUludCgkKCcjYWR1bHQxJykudmFsKCkpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhID0gcGFyc2VJbnQoJCgnI2NoaWxkMScpLnZhbCgpKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbiA9IHIgKyBhO1xuICAgICAgICAgICAgICAgICAgICBlLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgZS5zaWJsaW5ncygnLmpzLXBlcnNvbmFzLXN1YmZpZWxkcycpXG4gICAgICAgICAgICAgICAgICAgICAgICAuZmluZCgnLmJvb2tpbmdfX2ZpZWxkQ29udHJvbCcpXG4gICAgICAgICAgICAgICAgICAgICAgICAudGV4dChuIDw9IDkgPyAnMCcgKyBuIDogbik7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIC8qIC0tLSBBY3R1YWxpemFjacOzbiBkaW7DoW1pY2EgZGUgbGFiZWxzIC0tLSAqL1xuICAgICAgICAgICAgJCgnLmJvb2tpbmdfX2ZpZWxkQ29udHJvbFt0eXBlPVwidGV4dFwiXScpLmVhY2goZnVuY3Rpb24gKFxuICAgICAgICAgICAgICAgIHRoaXM6IEhUTUxFbGVtZW50XG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBsZXQgZGVmYXVsdHZhbHVlOiBhbnk7XG4gICAgICAgICAgICAgICAgY29uc3QgJGZpZWxkSW5uZXIgPSAkKHRoaXMpLnBhcmVudHMoJy5ib29raW5nX19maWVsZElubmVyJyk7XG4gICAgICAgICAgICAgICAgaWYgKCFkZWZhdWx0dmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdHZhbHVlID0gJGZpZWxkSW5uZXIuYXR0cignc3R5bGUnKSB8fCAnJztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAkKHRoaXMpLm9uKCdrZXl1cCcsIGZ1bmN0aW9uICh0aGlzOiBIVE1MRWxlbWVudCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0ZXh0TGVuZ3RoID0gJCh0aGlzKS52YWwoKS5sZW5ndGggKiAxLjM7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0ZXh0TGVuZ3RoID09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICRmaWVsZElubmVyLmF0dHIoJ3N0eWxlJywgZGVmYXVsdHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICRmaWVsZElubmVyLmNzcyhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLS1sYWJlbExlZnRQb3NpdGlvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dExlbmd0aCArICdyZW0nXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICAgICAgICAgICAqICAgICAgICAgIERBVEVQSUNLRVJcbiAgICAgICAgICAgICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4gICAgICAgICAgICBjb25zdCBpbml0RGF0ZXBpY2tlciA9IChzZWxlY3Rvcjogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgJChzZWxlY3RvcikuZWFjaChmdW5jdGlvbiAodGhpczogSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gQXBsaWNhciBpZGlvbWEgYW50ZXMgZGUgaW5pY2lhbGl6YXLDp1xuICAgICAgICAgICAgICAgICAgICBEYXRlcGlja2VyTG9jYWxlVXRpbC5zZXRMb2NhbGUoXG4gICAgICAgICAgICAgICAgICAgICAgICBEYXRlcGlja2VyTG9jYWxlVXRpbC5kZXRlY3RMYW5ndWFnZSgpXG4gICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gRGVzdHJ1aXIgYW50ZXJpb3Igc2kgeWEgZXhpc3TDrWFcbiAgICAgICAgICAgICAgICAgICAgaWYgKCQodGhpcykuaGFzQ2xhc3MoJ2hhc0RhdGVwaWNrZXInKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5kYXRlcGlja2VyKCdkZXN0cm95Jyk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAvLyBJbmljaWFsaXphclxuICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmRhdGVwaWNrZXIoe1xuICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0FuaW06ICdmYWRlSW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlTW9udGg6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2VZZWFyOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2hvd090aGVyTW9udGhzOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0T3RoZXJNb250aHM6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBiZWZvcmVTaG93OiBmdW5jdGlvbiAoaW5wdXQ6IEhUTUxFbGVtZW50LCBpbnN0OiBhbnkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgJGlucHV0ID0gJChpbnB1dCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGlucHV0T2Zmc2V0ID0gJGlucHV0Lm9mZnNldCgpITtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5wdXRIZWlnaHQgPSAkaW5wdXQub3V0ZXJIZWlnaHQoKSE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0ICRkcERpdiA9IGluc3QuZHBEaXY7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZHBIZWlnaHQgPSAkZHBEaXYub3V0ZXJIZWlnaHQoKSB8fCAyNjA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZpZXdwb3J0VG9wID0gJCh3aW5kb3cpLnNjcm9sbFRvcCgpITtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgdmlld3BvcnRIZWlnaHQgPSAkKHdpbmRvdykuaGVpZ2h0KCkhO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzcGFjZUFib3ZlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0T2Zmc2V0LnRvcCAtIHZpZXdwb3J0VG9wO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzcGFjZUJlbG93ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdwb3J0SGVpZ2h0IC0gKHNwYWNlQWJvdmUgKyBpbnB1dEhlaWdodCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2hvd0Fib3ZlID0gc3BhY2VBYm92ZSA+IHNwYWNlQmVsb3c7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGRwRGl2LmNzcyh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3A6IHNob3dBYm92ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gaW5wdXRPZmZzZXQudG9wIC0gZHBIZWlnaHQgLSA4ICsgJ3B4J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogaW5wdXRPZmZzZXQudG9wICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0SGVpZ2h0ICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDggK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3B4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IGlucHV0T2Zmc2V0LmxlZnQgKyAncHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgekluZGV4OiA5OTk5OSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgMTApO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAvLyBJbmljaWFsaXphciBkYXRlcGlja2Vyc1xuICAgICAgICAgICAgaW5pdERhdGVwaWNrZXIoJ1tkYXRhLXRvZ2dsZT1cImRhdGVwaWNrZXJcIl0nKTtcbiAgICAgICAgICAgIGluaXREYXRlcGlja2VyKCdbZGF0YS10b2dnbGU9XCJkYXRlcGlja2VyMVwiXScpO1xuXG4gICAgICAgICAgICAvLyDwn5SBIFJlYXBsaWNhciBpZGlvbWEgY3VhbmRvIGNhbWJpZSBlbiBsb2NhbFN0b3JhZ2VcbiAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzdG9yYWdlJywgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ2xhbmd1YWdlJykge1xuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsYW5nID0gJ2VzJztcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb2JqID0gSlNPTi5wYXJzZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2xhbmd1YWdlJykhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAob2JqLmxvY2F0ZSkgbGFuZyA9IG9iai5sb2NhdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIHt9XG4gICAgICAgICAgICAgICAgICAgICAgICBsYW5nID0gKGxhbmcuc3BsaXQoJy0nKVswXSB8fCAnZXMnKSBhc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgJ2VzJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgJ2VuJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgJ2RlJztcbiAgICAgICAgICAgICAgICAgICAgICAgIERhdGVwaWNrZXJMb2NhbGVVdGlsLnNldExvY2FsZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRlcGlja2VyTG9jYWxlVXRpbC5kZXRlY3RMYW5ndWFnZSgpXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5pdERhdGVwaWNrZXIoJ1tkYXRhLXRvZ2dsZT1cImRhdGVwaWNrZXJcIl0nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluaXREYXRlcGlja2VyKCdbZGF0YS10b2dnbGU9XCJkYXRlcGlja2VyMVwiXScpO1xuICAgICAgICAgICAgICAgICAgICB9LCAzMDApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICAvKiAtLS0gU3BvdGlmeSBQbGF5ZXIgLS0tICovXG4gICAgICAgIGRvY3VtZW50XG4gICAgICAgICAgICAucXVlcnlTZWxlY3RvckFsbCgnLnNwb3RpZnlQbGF5ZXJfX2FsYnVtJylcbiAgICAgICAgICAgIC5mb3JFYWNoKChjb250YWluZXIpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBhdWRpbyA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKFxuICAgICAgICAgICAgICAgICAgICAnLnNwb3RpZnlQbGF5ZXJfX21wMydcbiAgICAgICAgICAgICAgICApIGFzIGFueTtcbiAgICAgICAgICAgICAgICBjb25zdCBwbGF5UGF1c2VCdXR0b24gPSBjb250YWluZXIucXVlcnlTZWxlY3RvcihcbiAgICAgICAgICAgICAgICAgICAgJy5zcG90aWZ5UGxheWVyX19hbGJ1bVBsYXlQYXVzZSdcbiAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgcGxheVBhdXNlQnV0dG9uPy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGF1ZGlvPy5wYXVzZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnF1ZXJ5U2VsZWN0b3JBbGwoJy5zcG90aWZ5UGxheWVyX19tcDMnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5mb3JFYWNoKChvdGhlcjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvdGhlciAhPT0gYXVkaW8pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG90aGVyLnBhdXNlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvdGhlckJ1dHRvbiA9IG90aGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmNsb3Nlc3QoJy5zcG90aWZ5UGxheWVyX19hbGJ1bScpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcuc3BvdGlmeVBsYXllcl9fYWxidW1QbGF5UGF1c2UnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG90aGVyQnV0dG9uLmNsYXNzTGlzdC5yZW1vdmUoJ3BsYXknKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgYXVkaW8ucGxheSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGxheVBhdXNlQnV0dG9uLmNsYXNzTGlzdC5hZGQoJ3BsYXknKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGF1ZGlvLnBhdXNlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBwbGF5UGF1c2VCdXR0b24uY2xhc3NMaXN0LnJlbW92ZSgncGxheScpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
@@ -995,24 +995,21 @@ class PuroScriptDirective {
995
995
  }
996
996
  })(document.querySelectorAll('.js-slider_fix-arrows'), jQuery);
997
997
  /* --- Accordion --- */
998
- (function (a, $) {
999
- if (!a.length)
1000
- return;
1001
- $('.js-accordion')
1002
- .off('click')
1003
- .on('click', function () {
1004
- const tab = $(this);
1005
- const item = tab.closest('.faq__item');
1006
- const content = tab.next('.faq__content');
1007
- $('.faq__item.active')
1008
- .not(item)
1009
- .removeClass('active')
1010
- .find('.faq__content')
1011
- .slideUp();
1012
- item.toggleClass('active');
1013
- content.slideToggle();
1014
- });
1015
- })(document.querySelectorAll('.js-accordion'), jQuery);
998
+ $(document)
999
+ .off('click.puroFaq')
1000
+ .on('click.puroFaq', '.js-accordion', function () {
1001
+ const tab = $(this);
1002
+ const item = tab.closest('.faq__item');
1003
+ const content = tab.next('.faq__content');
1004
+ $('.faq__item.active')
1005
+ .not(item)
1006
+ .removeClass('active')
1007
+ .find('.faq__content')
1008
+ .stop(true, true)
1009
+ .slideUp();
1010
+ item.toggleClass('active');
1011
+ content.stop(true, true).slideToggle();
1012
+ });
1016
1013
  /* --- Botones "Ver más / menos" --- */
1017
1014
  (function (a, $) {
1018
1015
  if (a.length) {