ng-easycommerce-v18 0.4.4-beta.3 → 0.4.4-beta.4

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.
Files changed (47) hide show
  1. package/README.md +12 -0
  2. package/assets/ec-i18n/ct.json +4 -0
  3. package/assets/ec-i18n/en.json +12 -1
  4. package/assets/ec-i18n/es.json +12 -1
  5. package/assets/ec-i18n/fr.json +4 -0
  6. package/assets/ec-i18n/gl.json +4 -0
  7. package/assets/ec-i18n/pr.json +4 -0
  8. package/esm2022/lib/ec-components/account-ec/order-ec/order-ec.component.mjs +5 -9
  9. package/esm2022/lib/ec-components/account-ec/orders-list-ec/orders-list-ec.component.mjs +11 -5
  10. package/esm2022/lib/ec-components/cart-ec/cart-ec.component.mjs +12 -3
  11. package/esm2022/lib/ec-components/checkout-ec/checkout-ec.component.mjs +8 -1
  12. package/esm2022/lib/ec-components/checkout-ec/dataform-ec/dataform-ec.component.mjs +9 -2
  13. package/esm2022/lib/ec-components/checkout-ec/detail-checkout-block-ec/detail-checkout-block-ec.component.mjs +5 -3
  14. package/esm2022/lib/ec-components/checkout-ec/payment-ec/payment-ec.component.mjs +44 -4
  15. package/esm2022/lib/ec-components/checkout-ec/success-ec/success-ec.component.mjs +4 -3
  16. package/esm2022/lib/ec-components/credit-account-banner-ec/credit-account-banner-ec.component.mjs +79 -0
  17. package/esm2022/lib/ec-components/header-ec/header-ec.component.mjs +25 -11
  18. package/esm2022/lib/ec-components/index.mjs +2 -1
  19. package/esm2022/lib/ec-components/product-ec/product-ec.component.mjs +3 -3
  20. package/esm2022/lib/ec-components/sidebar-ec/sidebar-ec.component.mjs +5 -7
  21. package/esm2022/lib/ec-components/widgets-ec/price-ec/price-ec.component.mjs +5 -11
  22. package/esm2022/lib/ec-services/analytics/doppler.service.mjs +4 -1
  23. package/esm2022/lib/ec-services/analytics/facebook-pixel.service.mjs +4 -1
  24. package/esm2022/lib/ec-services/analytics/metricool-pixel.service.mjs +6 -3
  25. package/esm2022/lib/ec-services/cart.service.mjs +42 -7
  26. package/esm2022/lib/ec-services/index.mjs +2 -1
  27. package/esm2022/lib/ec-services/price-visibility.service.mjs +40 -0
  28. package/esm2022/lib/ec-services/product-detail.service.mjs +45 -7
  29. package/fesm2022/ng-easycommerce-v18.mjs +314 -64
  30. package/fesm2022/ng-easycommerce-v18.mjs.map +1 -1
  31. package/lib/ec-components/account-ec/order-ec/order-ec.component.d.ts +2 -2
  32. package/lib/ec-components/account-ec/orders-list-ec/orders-list-ec.component.d.ts +3 -0
  33. package/lib/ec-components/cart-ec/cart-ec.component.d.ts +4 -2
  34. package/lib/ec-components/checkout-ec/checkout-ec.component.d.ts +2 -0
  35. package/lib/ec-components/checkout-ec/detail-checkout-block-ec/detail-checkout-block-ec.component.d.ts +2 -0
  36. package/lib/ec-components/checkout-ec/payment-ec/payment-ec.component.d.ts +6 -0
  37. package/lib/ec-components/checkout-ec/success-ec/success-ec.component.d.ts +1 -0
  38. package/lib/ec-components/credit-account-banner-ec/credit-account-banner-ec.component.d.ts +27 -0
  39. package/lib/ec-components/header-ec/header-ec.component.d.ts +12 -4
  40. package/lib/ec-components/index.d.ts +1 -0
  41. package/lib/ec-components/sidebar-ec/sidebar-ec.component.d.ts +2 -1
  42. package/lib/ec-components/widgets-ec/price-ec/price-ec.component.d.ts +2 -4
  43. package/lib/ec-services/cart.service.d.ts +1 -0
  44. package/lib/ec-services/index.d.ts +1 -0
  45. package/lib/ec-services/price-visibility.service.d.ts +23 -0
  46. package/lib/ec-services/product-detail.service.d.ts +3 -0
  47. package/package.json +1 -1
@@ -3,10 +3,12 @@ import { TranslateModule } from '@ngx-translate/core';
3
3
  import { EcCurrencySymbolPipe } from '../../../ec-pipe';
4
4
  import { CheckoutService } from '../../../ec-services';
5
5
  import { AsyncPipe } from '@angular/common';
6
+ import { PriceVisibilityService } from '../../../ec-services/price-visibility.service';
6
7
  import * as i0 from "@angular/core";
7
8
  import * as i1 from "@ngx-translate/core";
8
9
  export class DetailCheckoutBlockEcComponent {
9
10
  _checkoutService = inject(CheckoutService);
11
+ priceVisibility = inject(PriceVisibilityService);
10
12
  data$ = this._checkoutService.associatedData$;
11
13
  data = null;
12
14
  getIcon = (data_type) => {
@@ -36,10 +38,10 @@ export class DetailCheckoutBlockEcComponent {
36
38
  }
37
39
  }
38
40
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DetailCheckoutBlockEcComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
39
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DetailCheckoutBlockEcComponent, isStandalone: true, selector: "app-detail-checkout-block-ec", ngImport: i0, template: "@if(data$ | async; as datos){\n <div id=\"appDetailCheckoutBlockEc\" class=\"d-flex flex-row w-100 justify-content-center flex-wrap\">\n @for(item of data; track $index; let i = $index){\n <div class=\"d-flex flex-column justify-content-center mx-sm-3 mx-2 text-center mb-4 resumen\">\n <i ngClass=\"mb-2 colorIconoCheckout\" [class]=\"getIcon(item.type)\"></i>\n <strong class=\"text-center w-100 font-brandon font-md mb-1\">{{ item.type | translate }}</strong>\n <span class=\"text-center w-100 font-brandon font-md text-gray\">{{ (item.amount != 0 ) ? (item.amount |\n ecCurrencySymbol) : ('free' | translate) }}</span>\n </div>\n }\n </div>\n}", styles: [""], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "pipe", type: EcCurrencySymbolPipe, name: "ecCurrencySymbol" }, { kind: "pipe", type: AsyncPipe, name: "async" }] });
41
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DetailCheckoutBlockEcComponent, isStandalone: true, selector: "app-detail-checkout-block-ec", ngImport: i0, template: "@if (priceVisibility.canShowPrices()) {\n@if(data$ | async; as datos){\n <div id=\"appDetailCheckoutBlockEc\" class=\"d-flex flex-row w-100 justify-content-center flex-wrap\">\n @for(item of data; track $index; let i = $index){\n <div class=\"d-flex flex-column justify-content-center mx-sm-3 mx-2 text-center mb-4 resumen\">\n <i ngClass=\"mb-2 colorIconoCheckout\" [class]=\"getIcon(item.type)\"></i>\n <strong class=\"text-center w-100 font-brandon font-md mb-1\">{{ item.type | translate }}</strong>\n <span class=\"text-center w-100 font-brandon font-md text-gray\">{{ (item.amount != 0 ) ? (item.amount |\n ecCurrencySymbol) : ('free' | translate) }}</span>\n </div>\n }\n </div>\n}\n}", styles: [""], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "pipe", type: EcCurrencySymbolPipe, name: "ecCurrencySymbol" }, { kind: "pipe", type: AsyncPipe, name: "async" }] });
40
42
  }
41
43
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DetailCheckoutBlockEcComponent, decorators: [{
42
44
  type: Component,
43
- args: [{ selector: 'app-detail-checkout-block-ec', standalone: true, imports: [TranslateModule, EcCurrencySymbolPipe, AsyncPipe], template: "@if(data$ | async; as datos){\n <div id=\"appDetailCheckoutBlockEc\" class=\"d-flex flex-row w-100 justify-content-center flex-wrap\">\n @for(item of data; track $index; let i = $index){\n <div class=\"d-flex flex-column justify-content-center mx-sm-3 mx-2 text-center mb-4 resumen\">\n <i ngClass=\"mb-2 colorIconoCheckout\" [class]=\"getIcon(item.type)\"></i>\n <strong class=\"text-center w-100 font-brandon font-md mb-1\">{{ item.type | translate }}</strong>\n <span class=\"text-center w-100 font-brandon font-md text-gray\">{{ (item.amount != 0 ) ? (item.amount |\n ecCurrencySymbol) : ('free' | translate) }}</span>\n </div>\n }\n </div>\n}" }]
45
+ args: [{ selector: 'app-detail-checkout-block-ec', standalone: true, imports: [TranslateModule, EcCurrencySymbolPipe, AsyncPipe], template: "@if (priceVisibility.canShowPrices()) {\n@if(data$ | async; as datos){\n <div id=\"appDetailCheckoutBlockEc\" class=\"d-flex flex-row w-100 justify-content-center flex-wrap\">\n @for(item of data; track $index; let i = $index){\n <div class=\"d-flex flex-column justify-content-center mx-sm-3 mx-2 text-center mb-4 resumen\">\n <i ngClass=\"mb-2 colorIconoCheckout\" [class]=\"getIcon(item.type)\"></i>\n <strong class=\"text-center w-100 font-brandon font-md mb-1\">{{ item.type | translate }}</strong>\n <span class=\"text-center w-100 font-brandon font-md text-gray\">{{ (item.amount != 0 ) ? (item.amount |\n ecCurrencySymbol) : ('free' | translate) }}</span>\n </div>\n }\n </div>\n}\n}" }]
44
46
  }], ctorParameters: () => [] });
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0YWlsLWNoZWNrb3V0LWJsb2NrLWVjLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVhc3ljb21tZXJjZS12MTgvc3JjL2xpYi9lYy1jb21wb25lbnRzL2NoZWNrb3V0LWVjL2RldGFpbC1jaGVja291dC1ibG9jay1lYy9kZXRhaWwtY2hlY2tvdXQtYmxvY2stZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvY2hlY2tvdXQtZWMvZGV0YWlsLWNoZWNrb3V0LWJsb2NrLWVjL2RldGFpbC1jaGVja291dC1ibG9jay1lYy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBUTVDLE1BQU0sT0FBTyw4QkFBOEI7SUFDL0IsZ0JBQWdCLEdBQW9CLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUU3RCxLQUFLLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQztJQUM5QyxJQUFJLEdBQVEsSUFBSSxDQUFBO0lBQ3ZCLE9BQU8sR0FBRyxDQUFDLFNBQWlCLEVBQUUsRUFBRTtRQUU1QixRQUFRLFNBQVMsRUFBRSxDQUFDO1lBQ2hCLEtBQUssUUFBUSxDQUFDLENBQUMsT0FBTyx5QkFBeUIsQ0FBQztZQUNoRCxLQUFLLFVBQVUsQ0FBQyxDQUFDLE9BQU8sbUJBQW1CLENBQUM7WUFDNUMsS0FBSyxVQUFVLENBQUMsQ0FBQyxPQUFPLDRCQUE0QixDQUFDO1lBQ3JELEtBQUssVUFBVSxDQUFDLENBQUMsT0FBTyxvQkFBb0IsQ0FBQztZQUM3QyxLQUFLLE9BQU8sQ0FBQyxDQUFDLE9BQU8sa0NBQWtDLENBQUM7WUFDeEQsS0FBSyxPQUFPLENBQUMsQ0FBQyxPQUFPLDhCQUE4QixDQUFDO1lBQ3BELE9BQU8sQ0FBQyxDQUFDLE9BQU8sbUJBQW1CLENBQUM7UUFDeEMsQ0FBQztJQUVMLENBQUMsQ0FBQTtJQUNEO1FBQ0ksSUFBSSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDbkQsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBVSxFQUFFLENBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqRixDQUFDLENBQ0EsQ0FBQztJQUNOLENBQUM7SUFFTyxTQUFTLENBQUMsSUFBUyxFQUFFLEtBQWE7UUFDdEMsUUFBUSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDaEIsS0FBSyxVQUFVO2dCQUNYLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUE7WUFDNUMsS0FBSyxRQUFRO2dCQUNULE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUE7WUFDNUM7Z0JBQ0ksT0FBTyxJQUFJLENBQUE7UUFDbkIsQ0FBQztJQUNMLENBQUM7d0dBbENRLDhCQUE4Qjs0RkFBOUIsOEJBQThCLHdGQ1ozQywyd0JBV0MseURESGEsZUFBZSx1RkFBRSxvQkFBb0Isb0RBQUUsU0FBUzs7NEZBSWpELDhCQUE4QjtrQkFQMUMsU0FBUzsrQkFDSSw4QkFBOEIsY0FDNUIsSUFBSSxXQUNQLENBQUMsZUFBZSxFQUFFLG9CQUFvQixFQUFFLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IEVjQ3VycmVuY3lTeW1ib2xQaXBlIH0gZnJvbSAnLi4vLi4vLi4vZWMtcGlwZSc7XG5pbXBvcnQgeyBDaGVja291dFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9lYy1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBBc3luY1BpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhcHAtZGV0YWlsLWNoZWNrb3V0LWJsb2NrLWVjJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtUcmFuc2xhdGVNb2R1bGUsIEVjQ3VycmVuY3lTeW1ib2xQaXBlLCBBc3luY1BpcGVdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kZXRhaWwtY2hlY2tvdXQtYmxvY2stZWMuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsOiAnLi9kZXRhaWwtY2hlY2tvdXQtYmxvY2stZWMuY29tcG9uZW50LnNjc3MnXG59KVxuZXhwb3J0IGNsYXNzIERldGFpbENoZWNrb3V0QmxvY2tFY0NvbXBvbmVudCB7XG4gICAgcHJpdmF0ZSBfY2hlY2tvdXRTZXJ2aWNlOiBDaGVja291dFNlcnZpY2UgPSBpbmplY3QoQ2hlY2tvdXRTZXJ2aWNlKTtcblxuICAgIHB1YmxpYyBkYXRhJCA9IHRoaXMuX2NoZWNrb3V0U2VydmljZS5hc3NvY2lhdGVkRGF0YSQ7XG4gICAgcHVibGljIGRhdGE6IGFueSA9IG51bGxcbiAgICBnZXRJY29uID0gKGRhdGFfdHlwZTogc3RyaW5nKSA9PiB7XG5cbiAgICAgICAgc3dpdGNoIChkYXRhX3R5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ2NvdXBvbic6IHJldHVybiAnZmFzIGZhLXRpY2tldC1hbHQgZmEtM3gnO1xuICAgICAgICAgICAgY2FzZSAnZGlzY291bnQnOiByZXR1cm4gJ2ZhcyBmYS10YWdzIGZhLTN4JztcbiAgICAgICAgICAgIGNhc2UgJ3NoaXBtZW50JzogcmV0dXJuICdmYXMgZmEtc2hpcHBpbmctZmFzdCBmYS0zeCc7XG4gICAgICAgICAgICBjYXNlICdzdWJ0b3RhbCc6IHJldHVybiAnZmFzIGZhLWJveGVzIGZhLTN4JztcbiAgICAgICAgICAgIGNhc2UgJ3RheGVzJzogcmV0dXJuICdmYXMgZmEtZmlsZS1pbnZvaWNlLWRvbGxhciBmYS0zeCc7XG4gICAgICAgICAgICBjYXNlICd0b3RhbCc6IHJldHVybiAnZmFzIGZhLXNob3BwaW5nLWJhc2tldCBmYS0zeCc7XG4gICAgICAgICAgICBkZWZhdWx0OiByZXR1cm4gJ2ZhcyBmYS10YWdzIGZhLTN4JztcbiAgICAgICAgfVxuXG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLl9jaGVja291dFNlcnZpY2UuYXNzb2NpYXRlZERhdGEkLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgICAgICAgIHRoaXMuZGF0YSA9IGRhdGEuZmlsdGVyKCh2YWx1ZTogYW55LCBpOiBudW1iZXIpID0+IHRoaXMuY2hlY2tEYXRhKHZhbHVlLCBpKSk7XG4gICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNoZWNrRGF0YShkYXRhOiBhbnksIGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgc3dpdGNoIChkYXRhLnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ2Rpc2NvdW50JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gKGRhdGEuYW1vdW50ICE9IDAgJiYgaW5kZXggPT09IDEpXG4gICAgICAgICAgICBjYXNlICdjb3Vwb24nOlxuICAgICAgICAgICAgICAgIHJldHVybiAoZGF0YS5hbW91bnQgIT0gMCAmJiBpbmRleCA9PT0gMSlcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBpZihkYXRhJCB8IGFzeW5jOyBhcyBkYXRvcyl7XG4gICAgPGRpdiBpZD1cImFwcERldGFpbENoZWNrb3V0QmxvY2tFY1wiIGNsYXNzPVwiZC1mbGV4IGZsZXgtcm93IHctMTAwIGp1c3RpZnktY29udGVudC1jZW50ZXIgZmxleC13cmFwXCI+XG4gICAgICAgIEBmb3IoaXRlbSBvZiBkYXRhOyB0cmFjayAkaW5kZXg7IGxldCBpID0gJGluZGV4KXtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGp1c3RpZnktY29udGVudC1jZW50ZXIgbXgtc20tMyBteC0yIHRleHQtY2VudGVyIG1iLTQgcmVzdW1lblwiPlxuICAgICAgICAgICAgICAgICAgICA8aSBuZ0NsYXNzPVwibWItMiBjb2xvckljb25vQ2hlY2tvdXRcIiBbY2xhc3NdPVwiZ2V0SWNvbihpdGVtLnR5cGUpXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICA8c3Ryb25nIGNsYXNzPVwidGV4dC1jZW50ZXIgdy0xMDAgZm9udC1icmFuZG9uIGZvbnQtbWQgbWItMVwiPnt7IGl0ZW0udHlwZSB8IHRyYW5zbGF0ZSB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtY2VudGVyIHctMTAwIGZvbnQtYnJhbmRvbiBmb250LW1kIHRleHQtZ3JheVwiPnt7IChpdGVtLmFtb3VudCAhPSAwICkgPyAoaXRlbS5hbW91bnQgfFxuICAgICAgICAgICAgICAgICAgICAgICAgZWNDdXJyZW5jeVN5bWJvbCkgOiAoJ2ZyZWUnIHwgdHJhbnNsYXRlKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgIDwvZGl2PlxufSJdfQ==
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0YWlsLWNoZWNrb3V0LWJsb2NrLWVjLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVhc3ljb21tZXJjZS12MTgvc3JjL2xpYi9lYy1jb21wb25lbnRzL2NoZWNrb3V0LWVjL2RldGFpbC1jaGVja291dC1ibG9jay1lYy9kZXRhaWwtY2hlY2tvdXQtYmxvY2stZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvY2hlY2tvdXQtZWMvZGV0YWlsLWNoZWNrb3V0LWJsb2NrLWVjL2RldGFpbC1jaGVja291dC1ibG9jay1lYy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQzs7O0FBU3ZGLE1BQU0sT0FBTyw4QkFBOEI7SUFDL0IsZ0JBQWdCLEdBQW9CLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNwRCxlQUFlLEdBQUcsTUFBTSxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFFMUQsS0FBSyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUM7SUFDOUMsSUFBSSxHQUFRLElBQUksQ0FBQTtJQUN2QixPQUFPLEdBQUcsQ0FBQyxTQUFpQixFQUFFLEVBQUU7UUFFNUIsUUFBUSxTQUFTLEVBQUUsQ0FBQztZQUNoQixLQUFLLFFBQVEsQ0FBQyxDQUFDLE9BQU8seUJBQXlCLENBQUM7WUFDaEQsS0FBSyxVQUFVLENBQUMsQ0FBQyxPQUFPLG1CQUFtQixDQUFDO1lBQzVDLEtBQUssVUFBVSxDQUFDLENBQUMsT0FBTyw0QkFBNEIsQ0FBQztZQUNyRCxLQUFLLFVBQVUsQ0FBQyxDQUFDLE9BQU8sb0JBQW9CLENBQUM7WUFDN0MsS0FBSyxPQUFPLENBQUMsQ0FBQyxPQUFPLGtDQUFrQyxDQUFDO1lBQ3hELEtBQUssT0FBTyxDQUFDLENBQUMsT0FBTyw4QkFBOEIsQ0FBQztZQUNwRCxPQUFPLENBQUMsQ0FBQyxPQUFPLG1CQUFtQixDQUFDO1FBQ3hDLENBQUM7SUFFTCxDQUFDLENBQUE7SUFDRDtRQUNJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ25ELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQVUsRUFBRSxDQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakYsQ0FBQyxDQUNBLENBQUM7SUFDTixDQUFDO0lBRU8sU0FBUyxDQUFDLElBQVMsRUFBRSxLQUFhO1FBQ3RDLFFBQVEsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2hCLEtBQUssVUFBVTtnQkFDWCxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFBO1lBQzVDLEtBQUssUUFBUTtnQkFDVCxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFBO1lBQzVDO2dCQUNJLE9BQU8sSUFBSSxDQUFBO1FBQ25CLENBQUM7SUFDTCxDQUFDO3dHQW5DUSw4QkFBOEI7NEZBQTlCLDhCQUE4Qix3RkNkM0MsdXpCQWFDLHlEREhhLGVBQWUsdUZBQUUsb0JBQW9CLG9EQUFFLFNBQVM7OzRGQUlqRCw4QkFBOEI7a0JBUDFDLFNBQVM7K0JBQ0ksOEJBQThCLGNBQzVCLElBQUksV0FDUCxDQUFDLGVBQWUsRUFBRSxvQkFBb0IsRUFBRSxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBFY0N1cnJlbmN5U3ltYm9sUGlwZSB9IGZyb20gJy4uLy4uLy4uL2VjLXBpcGUnO1xuaW1wb3J0IHsgQ2hlY2tvdXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vZWMtc2VydmljZXMnO1xuaW1wb3J0IHsgQXN5bmNQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFByaWNlVmlzaWJpbGl0eVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9lYy1zZXJ2aWNlcy9wcmljZS12aXNpYmlsaXR5LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FwcC1kZXRhaWwtY2hlY2tvdXQtYmxvY2stZWMnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1RyYW5zbGF0ZU1vZHVsZSwgRWNDdXJyZW5jeVN5bWJvbFBpcGUsIEFzeW5jUGlwZV0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RldGFpbC1jaGVja291dC1ibG9jay1lYy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL2RldGFpbC1jaGVja291dC1ibG9jay1lYy5jb21wb25lbnQuc2Nzcydcbn0pXG5leHBvcnQgY2xhc3MgRGV0YWlsQ2hlY2tvdXRCbG9ja0VjQ29tcG9uZW50IHtcbiAgICBwcml2YXRlIF9jaGVja291dFNlcnZpY2U6IENoZWNrb3V0U2VydmljZSA9IGluamVjdChDaGVja291dFNlcnZpY2UpO1xuICAgIHB1YmxpYyByZWFkb25seSBwcmljZVZpc2liaWxpdHkgPSBpbmplY3QoUHJpY2VWaXNpYmlsaXR5U2VydmljZSk7XG5cbiAgICBwdWJsaWMgZGF0YSQgPSB0aGlzLl9jaGVja291dFNlcnZpY2UuYXNzb2NpYXRlZERhdGEkO1xuICAgIHB1YmxpYyBkYXRhOiBhbnkgPSBudWxsXG4gICAgZ2V0SWNvbiA9IChkYXRhX3R5cGU6IHN0cmluZykgPT4ge1xuXG4gICAgICAgIHN3aXRjaCAoZGF0YV90eXBlKSB7XG4gICAgICAgICAgICBjYXNlICdjb3Vwb24nOiByZXR1cm4gJ2ZhcyBmYS10aWNrZXQtYWx0IGZhLTN4JztcbiAgICAgICAgICAgIGNhc2UgJ2Rpc2NvdW50JzogcmV0dXJuICdmYXMgZmEtdGFncyBmYS0zeCc7XG4gICAgICAgICAgICBjYXNlICdzaGlwbWVudCc6IHJldHVybiAnZmFzIGZhLXNoaXBwaW5nLWZhc3QgZmEtM3gnO1xuICAgICAgICAgICAgY2FzZSAnc3VidG90YWwnOiByZXR1cm4gJ2ZhcyBmYS1ib3hlcyBmYS0zeCc7XG4gICAgICAgICAgICBjYXNlICd0YXhlcyc6IHJldHVybiAnZmFzIGZhLWZpbGUtaW52b2ljZS1kb2xsYXIgZmEtM3gnO1xuICAgICAgICAgICAgY2FzZSAndG90YWwnOiByZXR1cm4gJ2ZhcyBmYS1zaG9wcGluZy1iYXNrZXQgZmEtM3gnO1xuICAgICAgICAgICAgZGVmYXVsdDogcmV0dXJuICdmYXMgZmEtdGFncyBmYS0zeCc7XG4gICAgICAgIH1cblxuICAgIH1cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5fY2hlY2tvdXRTZXJ2aWNlLmFzc29jaWF0ZWREYXRhJC5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICAgICAgICB0aGlzLmRhdGEgPSBkYXRhLmZpbHRlcigodmFsdWU6IGFueSwgaTogbnVtYmVyKSA9PiB0aGlzLmNoZWNrRGF0YSh2YWx1ZSwgaSkpO1xuICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjaGVja0RhdGEoZGF0YTogYW55LCBpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIHN3aXRjaCAoZGF0YS50eXBlKSB7XG4gICAgICAgICAgICBjYXNlICdkaXNjb3VudCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIChkYXRhLmFtb3VudCAhPSAwICYmIGluZGV4ID09PSAxKVxuICAgICAgICAgICAgY2FzZSAnY291cG9uJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gKGRhdGEuYW1vdW50ICE9IDAgJiYgaW5kZXggPT09IDEpXG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlXG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAaWYgKHByaWNlVmlzaWJpbGl0eS5jYW5TaG93UHJpY2VzKCkpIHtcbkBpZihkYXRhJCB8IGFzeW5jOyBhcyBkYXRvcyl7XG4gICAgPGRpdiBpZD1cImFwcERldGFpbENoZWNrb3V0QmxvY2tFY1wiIGNsYXNzPVwiZC1mbGV4IGZsZXgtcm93IHctMTAwIGp1c3RpZnktY29udGVudC1jZW50ZXIgZmxleC13cmFwXCI+XG4gICAgICAgIEBmb3IoaXRlbSBvZiBkYXRhOyB0cmFjayAkaW5kZXg7IGxldCBpID0gJGluZGV4KXtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGp1c3RpZnktY29udGVudC1jZW50ZXIgbXgtc20tMyBteC0yIHRleHQtY2VudGVyIG1iLTQgcmVzdW1lblwiPlxuICAgICAgICAgICAgICAgICAgICA8aSBuZ0NsYXNzPVwibWItMiBjb2xvckljb25vQ2hlY2tvdXRcIiBbY2xhc3NdPVwiZ2V0SWNvbihpdGVtLnR5cGUpXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICA8c3Ryb25nIGNsYXNzPVwidGV4dC1jZW50ZXIgdy0xMDAgZm9udC1icmFuZG9uIGZvbnQtbWQgbWItMVwiPnt7IGl0ZW0udHlwZSB8IHRyYW5zbGF0ZSB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtY2VudGVyIHctMTAwIGZvbnQtYnJhbmRvbiBmb250LW1kIHRleHQtZ3JheVwiPnt7IChpdGVtLmFtb3VudCAhPSAwICkgPyAoaXRlbS5hbW91bnQgfFxuICAgICAgICAgICAgICAgICAgICAgICAgZWNDdXJyZW5jeVN5bWJvbCkgOiAoJ2ZyZWUnIHwgdHJhbnNsYXRlKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgIDwvZGl2PlxufVxufSJdfQ==
@@ -8,6 +8,7 @@ import { MpRedirectEcComponent, OfflineEcComponent } from './payment-methods';
8
8
  import { BankTransferEcComponent } from './payment-methods/bank-transfer-ec/bank-transfer-ec.component';
9
9
  import { DecidirEcComponent } from '../../widgets-ec/decidir-ec/decidir-ec.component';
10
10
  import { CartService } from '../../../ec-services';
11
+ import { ToastService } from '../../../ec-services';
11
12
  import * as i0 from "@angular/core";
12
13
  import * as i1 from "@angular/common";
13
14
  import * as i2 from "@ngx-translate/core";
@@ -15,6 +16,7 @@ export class PaymentEcComponent {
15
16
  _paymentService = inject(PaymentService);
16
17
  _checkoutService = inject(CheckoutService);
17
18
  _cartService = inject(CartService);
19
+ _toastService = inject(ToastService);
18
20
  _methodDataSubject = new BehaviorSubject(null);
19
21
  _loadingSubject = new BehaviorSubject(false);
20
22
  methods$ = this._paymentService.methods$;
@@ -22,12 +24,18 @@ export class PaymentEcComponent {
22
24
  methodData$ = this._methodDataSubject.asObservable();
23
25
  loadingInternal = false;
24
26
  total_amount = 0;
27
+ allowAnyPaymentMethod = null;
28
+ balanceMethodRejected = false;
29
+ showMethodError = false;
25
30
  constructor() { }
26
31
  ngOnInit() {
27
32
  this._checkoutService.associatedData$.subscribe((data) => {
28
33
  const totalItem = data.find(item => item.type == 'total');
29
34
  this.total_amount = totalItem?.amount ?? 0;
30
35
  });
36
+ this._cartService.allowAnyPaymentMethod$.subscribe(value => {
37
+ this.allowAnyPaymentMethod = value;
38
+ });
31
39
  // console.log('PaymentEcComponent initialized with total_amount:', this.total_amount);
32
40
  }
33
41
  setActive($event) {
@@ -41,7 +49,34 @@ export class PaymentEcComponent {
41
49
  }
42
50
  async setMethod(method) {
43
51
  this._methodDataSubject.next(null);
44
- let result = await this._paymentService.putPayment(method.code);
52
+ this.showMethodError = false;
53
+ const result = await this._paymentService.putPayment(method.code);
54
+ const balanceCustomer = result?.balanceCustomer;
55
+ const totals = result?.totals;
56
+ this._cartService.updateBalanceAttributes(balanceCustomer, totals?.total);
57
+ const isBalanceMethod = this.isBalanceInAccount(method.code);
58
+ const allowAny = balanceCustomer?.allowAnyPaymentMethod;
59
+ if ((balanceCustomer && allowAny === false && !isBalanceMethod) ||
60
+ (isBalanceMethod && !balanceCustomer)) {
61
+ this.handleMethodError('this-payment-method-cannot-be-used', method);
62
+ return;
63
+ }
64
+ if (isBalanceMethod &&
65
+ balanceCustomer &&
66
+ totals &&
67
+ balanceCustomer.allowExceedBalance === false &&
68
+ balanceCustomer.creditAmount < totals.total) {
69
+ this._toastService.show('insufficient_credit');
70
+ this.balanceMethodRejected = true;
71
+ }
72
+ else if (isBalanceMethod) {
73
+ this.balanceMethodRejected = false;
74
+ }
75
+ this._methodDataSubject.next(method);
76
+ }
77
+ handleMethodError(message, method) {
78
+ this.showMethodError = true;
79
+ this._toastService.show(message);
45
80
  this._methodDataSubject.next(method);
46
81
  }
47
82
  //Funciones para chequear el metodo de pago.
@@ -64,6 +99,7 @@ export class PaymentEcComponent {
64
99
  isBankTransfer = (code) => !!code?.toLowerCase().includes('bank_transfer');
65
100
  isCatastro = (code) => !!code?.toLowerCase().includes('catastro');
66
101
  isBamboo = (code) => !!code?.toLowerCase().includes('bamboo');
102
+ isBalanceInAccount = (code) => !!code?.toLowerCase().includes('balance_in_account');
67
103
  allData() {
68
104
  return {
69
105
  ...this._paymentService.getUserData().shippingAddress,
@@ -80,6 +116,10 @@ export class PaymentEcComponent {
80
116
  return true;
81
117
  };
82
118
  verifyValidate = ($event = true) => {
119
+ if (this.balanceMethodRejected) {
120
+ this.setLoading(false);
121
+ return;
122
+ }
83
123
  if ($event === false) {
84
124
  this.setLoading(false);
85
125
  return;
@@ -94,7 +134,7 @@ export class PaymentEcComponent {
94
134
  this._checkoutService.back();
95
135
  };
96
136
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PaymentEcComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
97
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: PaymentEcComponent, isStandalone: true, selector: "app-payment-ec", ngImport: i0, template: "@if(methods$ | async; as methods){\n<div class=\"container-fluid\">\n\n\t<div class=\"row\">\n\t\t<div class=\"col-12\">\n\t\t\t<div class=\"card \">\n\t\t\t\t<div class=\"card-header text-dark text-center\">\n\t\t\t\t\t<h4>{{ 'select-method' | translate }}</h4>\n\t\t\t\t\t<div class=\"btn-toolbar justify-content-center\" role=\"toolbar\" aria-label=\"Envios toolbar\">\n\t\t\t\t\t\t<div class=\"\" role=\"group\" aria-label=\"Grupo botones envio\">\n\t\t\t\t\t\t\t<div class=\"d-flex align-content-start justify-content-center flex-wrap\">\n\t\t\t\t\t\t\t\t@for (method of methods; track $index; let x = $index) {\n\t\t\t\t\t\t\t\t<button type=\"button\" class=\"btn btn-outline-secondary mx-1 mb-1\"(click)=\"setMethod(method) ; setActive($event)\">\n\t\t\t\t\t\t\t\t\t{{ method.name | translate }}\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"card-body text-center\">\n\t\t\t\t\t@if(methodData$ | async; as method){\n\t\t\t\t\t<div class=\"row justify-content-center\">\n\t\t\t\t\t\t@if(!loadingInternal){\n\t\t\t\t\t\t\t@if(isMP(method.code)){\n\t\t\t\t\t\t\t\t<div class=\"method-container text-dark\">\n\t\t\t\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t\t<p id=\"faqs\" class=\"qt px-5 \">{{ method.description }}</p>\n\t\t\t\t\t\t\t\t\t\t\t<p class=\"px-5\">{{ method.instructions }}</p>\n\t\t\t\t\t\t\t\t\t\t<app-mp-redirect-ec (ready)=\"verifyValidate($event)\" \t[method]=\"method\"></app-mp-redirect-ec>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t<!-- <div class=\"method-container text-dark text-left\" *ngIf=\"isMPTarjetaDeCredito(method.code)\">\n\t\t\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t<p id=\"faqs\" class=\"qt px-5 \">{{ method.description }}</p>\n\t\t\t\t\t\t\t\t\t\t<p class=\"px-5\">{{ method.instructions }}</p>\n\t\t\t\t\t\t\t\t\t\t<div app-mp-credit-ec (ready)=\"verifyValidate()\" [public_key]=\"getPK(method)\"\n\t\t\t\t\t\t\t\t\t\t\t[user_data]=\"allData()\" [total_amount]=\"total_amount\">\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"method-container text-dark text-start\" *ngIf=\"isRedirectRedsys(method.code)\">\n\t\t\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t\t\t\t\t*ngIf=\"!method.code.includes('bizum') && !method.code.includes('_out_')\">\n\t\t\t\t\t\t\t\t\t\t\t<app-redsys-redirect-ec (ready)=\"verifyValidate($event)\" [method]=\"method\"\n\t\t\t\t\t\t\t\t\t\t\t\t[user_data]=\"allData()\">\n\t\t\t\t\t\t\t\t\t\t\t</app-redsys-redirect-ec>\n\t\t\t\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t\t\t\t\t*ngIf=\"method.code.includes('bizum') || method.code.includes('_out_')\">\n\t\t\t\t\t\t\t\t\t\t\t<app-redsys-redirect-out-ec (ready)=\"verifyValidate($event)\"\n\t\t\t\t\t\t\t\t\t\t\t\t[method]=\"method\" [user_data]=\"allData()\">\n\t\t\t\t\t\t\t\t\t\t\t</app-redsys-redirect-out-ec>\n\t\t\t\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"method-container text-dark text-start\" *ngIf=\"isRedirectCecaBank(method.code)\">\n\t\t\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t<app-ceca-redirect-ec (ready)=\"verifyValidate($event)\" [method]=\"method\"\n\t\t\t\t\t\t\t\t\t\t\t[user_data]=\"allData()\">\n\t\t\t\t\t\t\t\t\t\t</app-ceca-redirect-ec>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"method-container text-dark text-start\" *ngIf=\"isPeyPalExpress(method.code)\">\n\t\t\t\t\t\t\t\t<div class=\"container\">\n\t\t\t\t\t\t\t\t\t<div class=\"row justify-content-center\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t\t<app-paypal-express-ec (ready)=\"verifyValidate($event)\" [method]=\"method\"\n\t\t\t\t\t\t\t\t\t\t\t\t[user_data]=\"allData()\" [total_amount]=\"total_amount\">\n\t\t\t\t\t\t\t\t\t\t\t</app-paypal-express-ec>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"method-container text-dark text-start\" *ngIf=\"isMobbex(method.code)\">\n\t\t\t\t\t\t\t\t<div class=\"container\">\n\t\t\t\t\t\t\t\t\t<div class=\"row justify-content-center\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t\t<app-mobbex-ec (ready)=\"verifyValidate($event)\" [method]=\"method\"\n\t\t\t\t\t\t\t\t\t\t\t\t[user_data]=\"allData()\" [paymentServiceInst]=\"paymentService\"\n\t\t\t\t\t\t\t\t\t\t\t\t[total_amount]=\"total_amount\">\n\t\t\t\t\t\t\t\t\t\t\t</app-mobbex-ec>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"method-container text-dark text-start\" *ngIf=\"isBancard(method.code)\">\n\t\t\t\t\t\t\t\t<div class=\"container\">\n\t\t\t\t\t\t\t\t\t<div class=\"row justify-content-center\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t\t<app-bancard-ec (ready)=\"verifyValidate($event)\" [method]=\"method\"\n\t\t\t\t\t\t\t\t\t\t\t\t[user_data]=\"allData()\" [paymentServiceInst]=\"paymentService\"\n\t\t\t\t\t\t\t\t\t\t\t\t[total_amount]=\"total_amount\">\n\t\t\t\t\t\t\t\t\t\t\t</app-bancard-ec>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>-->\n\t\t\t\t\t\t\t<div class=\"method-container text-dark text-start\" *ngIf=\"isDecidir(method.code)\">\n\t\t\t\t\t\t\t\t<div class=\"container\">\n\t\t\t\t\t\t\t\t\t<div class=\"row justify-content-center\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t\t<app-decidir-ec (ready)=\"verifyValidate($event)\" [method]=\"method\"\n\t\t\t\t\t\t\t\t\t\t\t\t[user_data]=\"allData()\" [paymentServiceInst]=\"_paymentService\"\n\t\t\t\t\t\t\t\t\t\t\t\t[total_amount]=\"total_amount\">\n\t\t\t\t\t\t\t\t\t\t\t</app-decidir-ec>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div> \n\t\t\t\t\t\t\t@if(isMethodOffline(method.code)){\n\t\t\t\t\t\t\t<div class=\"method-container text-dark\">\n\t\t\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t<app-offline-ec \n\t\t\t\t\t\t\t\t\t\t[method]=\"method\" \n\t\t\t\t\t\t\t\t\t\t[verifyValidate]= \"verifyValidate\"\n\t\t\t\t\t\t\t\t\t\t[setLoading] = \"setLoading\" />\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<!--\n\t\t\t\t\t\t\t<div class=\"method-container text-dark text-start\" *ngIf=\"isCulqi(method.code)\">\n\t\t\t\t\t\t\t\t<div class=\"container\">\n\t\t\t\t\t\t\t\t\t<div class=\"row justify-content-center\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t\t<app-culqi-ec [apiKey]=\"getPKCulqi(method)\" [method]=\"method\"\n\t\t\t\t\t\t\t\t\t\t\t\t[amount]=\"total_amount\" [customStyle]=\"true\"\n\t\t\t\t\t\t\t\t\t\t\t\t(ready)=\"verifyValidate()\"></app-culqi-ec>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"method-container text-dark text-start\" *ngIf=\"isCatastro(method.code)\">\n\t\t\t\t\t\t\t\t<div class=\"container\">\n\t\t\t\t\t\t\t\t\t<div class=\"row justify-content-center\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t\t<app-bancard-catastro-ec (ready)=\"verifyValidate($event)\" [method]=\"method\"\n\t\t\t\t\t\t\t\t\t\t\t\t[user_data]=\"allData()\" [paymentServiceInst]=\"paymentService\"\n\t\t\t\t\t\t\t\t\t\t\t\t[total_amount]=\"total_amount\"></app-bancard-catastro-ec>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"method-container text-dark text-start\" *ngIf=\"isBamboo(method.code)\">\n\t\t\t\t\t\t\t\t<div class=\"container\">\n\t\t\t\t\t\t\t\t\t<div class=\"row justify-content-center\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t\t<app-bamboo-ec (ready)=\"verifyValidate($event)\" [method]=\"method\"\n\t\t\t\t\t\t\t\t\t\t\t\t[user_data]=\"allData()\" [paymentServiceInst]=\"paymentService\"\n\t\t\t\t\t\t\t\t\t\t\t\t[total_amount]=\"total_amount\"></app-bamboo-ec>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div> -->\n\t\t\t\t\t\t\t@if(isBankTransfer(method.code)){\n\t\t\t\t\t\t\t\t<div class=\"method-container text-dark\">\n\t\t\t\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t\t<app-bank-transfer-ec \n\t\t\t\t\t\t\t\t\t\t\t\t[method]=\"method\" \n\t\t\t\t\t\t\t\t\t\t\t\t[verifyValidate]= \"verifyValidate\"\n\t\t\t\t\t\t\t\t\t\t\t\t[setLoading] = \"setLoading\" />\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} @else {\n\t\t\t\t\t\t\t<app-loading-inline-ec></app-loading-inline-ec>\n\t\t\t\t\t\t}\n\t\t\t\t\t</div>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class=\"row d-flex flex-row\">\n\t\t\t\t<div class=\"col-12 d-flex justify-content-between\">\n\t\t\t\t\t<button class=\"btn btn-primary text-white\" (click)=\"goBack()\">{{'back'|translate}}</button>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n}", styles: [""], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "component", type: LoadingInlineEcComponent, selector: "app-loading-inline-ec", inputs: ["type"] }, { kind: "component", type: MpRedirectEcComponent, selector: "app-mp-redirect-ec", inputs: ["method", "total_amount", "allData"], outputs: ["ready"] }, { kind: "component", type: BankTransferEcComponent, selector: "app-bank-transfer-ec", inputs: ["method", "verifyValidate", "setLoading"] }, { kind: "component", type: OfflineEcComponent, selector: "app-offline-ec", inputs: ["method", "verifyValidate", "setLoading"] }, { kind: "component", type: DecidirEcComponent, selector: "app-decidir-ec", inputs: ["paymentServiceInst", "method", "total_amount", "allData", "user_data"], outputs: ["ready"] }] });
137
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: PaymentEcComponent, isStandalone: true, selector: "app-payment-ec", ngImport: i0, template: "@if(methods$ | async; as methods){\n<div class=\"container-fluid\">\n\n\t<div class=\"row\">\n\t\t<div class=\"col-12\">\n\t\t\t<div class=\"card \">\n\t\t\t\t<div class=\"card-header text-dark text-center\">\n\t\t\t\t\t<h4>{{ 'select-method' | translate }}</h4>\n\t\t\t\t\t<div class=\"btn-toolbar justify-content-center\" role=\"toolbar\" aria-label=\"Envios toolbar\">\n\t\t\t\t\t\t<div class=\"\" role=\"group\" aria-label=\"Grupo botones envio\">\n\t\t\t\t\t\t\t<div class=\"d-flex align-content-start justify-content-center flex-wrap\">\n\t\t\t\t\t\t\t\t@for (method of methods; track $index; let x = $index) {\n\t\t\t\t\t\t\t\t<button type=\"button\" class=\"btn btn-outline-secondary mx-1 mb-1\" (click)=\"setMethod(method) ; setActive($event)\">\n\t\t\t\t\t\t\t\t\t{{ method.name | translate }}\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"card-body text-center\">\n\t\t\t\t\t@if(methodData$ | async; as method){\n\t\t\t\t\t<div class=\"row justify-content-center\">\n\t\t\t\t\t\t@if(!loadingInternal){\n\t\t\t\t\t\t\t@if(method && !showMethodError){\n\t\t\t\t\t\t\t\t@if(isMP(method.code)){\n\t\t\t\t\t\t\t\t\t<div class=\"method-container text-dark\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t\t\t<p id=\"faqs\" class=\"qt px-5 \">{{ method.description }}</p>\n\t\t\t\t\t\t\t\t\t\t\t\t<p class=\"px-5\">{{ method.instructions }}</p>\n\t\t\t\t\t\t\t\t\t\t\t<app-mp-redirect-ec (ready)=\"verifyValidate($event)\" \t[method]=\"method\"></app-mp-redirect-ec>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t<div class=\"method-container text-dark text-start\" *ngIf=\"isDecidir(method.code)\">\n\t\t\t\t\t\t\t\t\t<div class=\"container\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"row justify-content-center\">\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t\t\t<app-decidir-ec (ready)=\"verifyValidate($event)\" [method]=\"method\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t[user_data]=\"allData()\" [paymentServiceInst]=\"_paymentService\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t[total_amount]=\"total_amount\">\n\t\t\t\t\t\t\t\t\t\t\t\t</app-decidir-ec>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div> \n\t\t\t\t\t\t\t\t@if(isMethodOffline(method.code)){\n\t\t\t\t\t\t\t\t<div class=\"method-container text-dark\">\n\t\t\t\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t\t<app-offline-ec \n\t\t\t\t\t\t\t\t\t\t\t[method]=\"method\" \n\t\t\t\t\t\t\t\t\t\t\t[verifyValidate]= \"verifyValidate\"\n\t\t\t\t\t\t\t\t\t\t\t[setLoading] = \"setLoading\" />\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\t\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t@if(isBankTransfer(method.code)){\n\t\t\t\t\t\t\t\t\t<div class=\"method-container text-dark\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t\t\t<app-bank-transfer-ec \n\t\t\t\t\t\t\t\t\t\t\t\t\t[method]=\"method\" \n\t\t\t\t\t\t\t\t\t\t\t\t\t[verifyValidate]= \"verifyValidate\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t[setLoading] = \"setLoading\" />\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t@if(showMethodError){\n\t\t\t\t\t\t\t\t<div class=\"text-danger mt-2 px-3 fw-bold\">\n\t\t\t\t\t\t\t\t\t{{ 'this-payment-method-cannot-be-used' | translate }}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t@if(isBalanceInAccount(method.code) && !showMethodError){\n\t\t\t\t\t\t\t\t<div class=\"method-container text-dark\">\n\t\t\t\t\t\t\t\t\t<div class=\"row px-0 description-cont\" *ngIf=\"method.description\">\n\t\t\t\t\t\t\t\t\t\t<ng-container *ngFor=\"let line of method.description.split('\\r\\n'); let i = index\">\n\t\t\t\t\t\t\t\t\t\t\t<p [id]=\"'cc-desc-'+i\" [class]=\"'qt px-5 m-0 line-'+i\">{{ line }}</p>\n\t\t\t\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<hr *ngIf=\"method.instructions\">\n\t\t\t\t\t\t\t\t\t<div *ngIf=\"method.instructions\" class=\"row px-0 instructions-cont mb-1\">\n\t\t\t\t\t\t\t\t\t\t<h5 class=\"instructions-title\">{{ ('instructions' | translate) }}</h5>\n\t\t\t\t\t\t\t\t\t\t<ng-container *ngFor=\"let line of method.instructions.split('\\r\\n'); let i = index\">\n\t\t\t\t\t\t\t\t\t\t\t<p [class]=\"'px-5 m-0 instructions-text line-'+i \">{{ line }}</p>\n\t\t\t\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t\t<ng-container *ngIf=\"!balanceMethodRejected; else showCreditError\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"end-button\">\n\t\t\t\t\t\t\t\t\t\t\t<button class=\"btn comprar\" (click)=\"setLoading() && verifyValidate()\">\n\t\t\t\t\t\t\t\t\t\t\t\t{{ 'pay-with' | translate }} {{ method.name }}\n\t\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</ng-container>\n\n\t\t\t\t\t\t\t\t\t<ng-template #showCreditError>\n\t\t\t\t\t\t\t\t\t\t<div class=\"text-danger mt-2 px-3 fw-bold\">\n\t\t\t\t\t\t\t\t\t\t\t{{ 'not-enough-credits-to-complete' | translate }}\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</ng-template>\n\n\t\t\t\t\t\t\t\t\t<ng-container *ngIf=\"(loading$ | async) as load\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"mt-2\" *ngIf=\"load\">\n\t\t\t\t\t\t\t\t\t\t\t<app-loading-inline-ec></app-loading-inline-ec>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} @else {\n\t\t\t\t\t\t\t<app-loading-inline-ec></app-loading-inline-ec>\n\t\t\t\t\t\t}\n\t\t\t\t\t</div>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class=\"row d-flex flex-row\">\n\t\t\t\t<div class=\"col-12 d-flex justify-content-between\">\n\t\t\t\t\t<button class=\"btn btn-primary text-white\" (click)=\"goBack()\">{{'back'|translate}}</button>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n}\n", styles: [""], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "component", type: LoadingInlineEcComponent, selector: "app-loading-inline-ec", inputs: ["type"] }, { kind: "component", type: MpRedirectEcComponent, selector: "app-mp-redirect-ec", inputs: ["method", "total_amount", "allData"], outputs: ["ready"] }, { kind: "component", type: BankTransferEcComponent, selector: "app-bank-transfer-ec", inputs: ["method", "verifyValidate", "setLoading"] }, { kind: "component", type: OfflineEcComponent, selector: "app-offline-ec", inputs: ["method", "verifyValidate", "setLoading"] }, { kind: "component", type: DecidirEcComponent, selector: "app-decidir-ec", inputs: ["paymentServiceInst", "method", "total_amount", "allData", "user_data"], outputs: ["ready"] }] });
98
138
  }
99
139
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PaymentEcComponent, decorators: [{
100
140
  type: Component,
@@ -106,6 +146,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
106
146
  BankTransferEcComponent,
107
147
  OfflineEcComponent,
108
148
  DecidirEcComponent
109
- ], template: "@if(methods$ | async; as methods){\n<div class=\"container-fluid\">\n\n\t<div class=\"row\">\n\t\t<div class=\"col-12\">\n\t\t\t<div class=\"card \">\n\t\t\t\t<div class=\"card-header text-dark text-center\">\n\t\t\t\t\t<h4>{{ 'select-method' | translate }}</h4>\n\t\t\t\t\t<div class=\"btn-toolbar justify-content-center\" role=\"toolbar\" aria-label=\"Envios toolbar\">\n\t\t\t\t\t\t<div class=\"\" role=\"group\" aria-label=\"Grupo botones envio\">\n\t\t\t\t\t\t\t<div class=\"d-flex align-content-start justify-content-center flex-wrap\">\n\t\t\t\t\t\t\t\t@for (method of methods; track $index; let x = $index) {\n\t\t\t\t\t\t\t\t<button type=\"button\" class=\"btn btn-outline-secondary mx-1 mb-1\"(click)=\"setMethod(method) ; setActive($event)\">\n\t\t\t\t\t\t\t\t\t{{ method.name | translate }}\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"card-body text-center\">\n\t\t\t\t\t@if(methodData$ | async; as method){\n\t\t\t\t\t<div class=\"row justify-content-center\">\n\t\t\t\t\t\t@if(!loadingInternal){\n\t\t\t\t\t\t\t@if(isMP(method.code)){\n\t\t\t\t\t\t\t\t<div class=\"method-container text-dark\">\n\t\t\t\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t\t<p id=\"faqs\" class=\"qt px-5 \">{{ method.description }}</p>\n\t\t\t\t\t\t\t\t\t\t\t<p class=\"px-5\">{{ method.instructions }}</p>\n\t\t\t\t\t\t\t\t\t\t<app-mp-redirect-ec (ready)=\"verifyValidate($event)\" \t[method]=\"method\"></app-mp-redirect-ec>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t<!-- <div class=\"method-container text-dark text-left\" *ngIf=\"isMPTarjetaDeCredito(method.code)\">\n\t\t\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t<p id=\"faqs\" class=\"qt px-5 \">{{ method.description }}</p>\n\t\t\t\t\t\t\t\t\t\t<p class=\"px-5\">{{ method.instructions }}</p>\n\t\t\t\t\t\t\t\t\t\t<div app-mp-credit-ec (ready)=\"verifyValidate()\" [public_key]=\"getPK(method)\"\n\t\t\t\t\t\t\t\t\t\t\t[user_data]=\"allData()\" [total_amount]=\"total_amount\">\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"method-container text-dark text-start\" *ngIf=\"isRedirectRedsys(method.code)\">\n\t\t\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t\t\t\t\t*ngIf=\"!method.code.includes('bizum') && !method.code.includes('_out_')\">\n\t\t\t\t\t\t\t\t\t\t\t<app-redsys-redirect-ec (ready)=\"verifyValidate($event)\" [method]=\"method\"\n\t\t\t\t\t\t\t\t\t\t\t\t[user_data]=\"allData()\">\n\t\t\t\t\t\t\t\t\t\t\t</app-redsys-redirect-ec>\n\t\t\t\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t\t\t\t\t*ngIf=\"method.code.includes('bizum') || method.code.includes('_out_')\">\n\t\t\t\t\t\t\t\t\t\t\t<app-redsys-redirect-out-ec (ready)=\"verifyValidate($event)\"\n\t\t\t\t\t\t\t\t\t\t\t\t[method]=\"method\" [user_data]=\"allData()\">\n\t\t\t\t\t\t\t\t\t\t\t</app-redsys-redirect-out-ec>\n\t\t\t\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"method-container text-dark text-start\" *ngIf=\"isRedirectCecaBank(method.code)\">\n\t\t\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t<app-ceca-redirect-ec (ready)=\"verifyValidate($event)\" [method]=\"method\"\n\t\t\t\t\t\t\t\t\t\t\t[user_data]=\"allData()\">\n\t\t\t\t\t\t\t\t\t\t</app-ceca-redirect-ec>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"method-container text-dark text-start\" *ngIf=\"isPeyPalExpress(method.code)\">\n\t\t\t\t\t\t\t\t<div class=\"container\">\n\t\t\t\t\t\t\t\t\t<div class=\"row justify-content-center\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t\t<app-paypal-express-ec (ready)=\"verifyValidate($event)\" [method]=\"method\"\n\t\t\t\t\t\t\t\t\t\t\t\t[user_data]=\"allData()\" [total_amount]=\"total_amount\">\n\t\t\t\t\t\t\t\t\t\t\t</app-paypal-express-ec>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"method-container text-dark text-start\" *ngIf=\"isMobbex(method.code)\">\n\t\t\t\t\t\t\t\t<div class=\"container\">\n\t\t\t\t\t\t\t\t\t<div class=\"row justify-content-center\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t\t<app-mobbex-ec (ready)=\"verifyValidate($event)\" [method]=\"method\"\n\t\t\t\t\t\t\t\t\t\t\t\t[user_data]=\"allData()\" [paymentServiceInst]=\"paymentService\"\n\t\t\t\t\t\t\t\t\t\t\t\t[total_amount]=\"total_amount\">\n\t\t\t\t\t\t\t\t\t\t\t</app-mobbex-ec>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"method-container text-dark text-start\" *ngIf=\"isBancard(method.code)\">\n\t\t\t\t\t\t\t\t<div class=\"container\">\n\t\t\t\t\t\t\t\t\t<div class=\"row justify-content-center\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t\t<app-bancard-ec (ready)=\"verifyValidate($event)\" [method]=\"method\"\n\t\t\t\t\t\t\t\t\t\t\t\t[user_data]=\"allData()\" [paymentServiceInst]=\"paymentService\"\n\t\t\t\t\t\t\t\t\t\t\t\t[total_amount]=\"total_amount\">\n\t\t\t\t\t\t\t\t\t\t\t</app-bancard-ec>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>-->\n\t\t\t\t\t\t\t<div class=\"method-container text-dark text-start\" *ngIf=\"isDecidir(method.code)\">\n\t\t\t\t\t\t\t\t<div class=\"container\">\n\t\t\t\t\t\t\t\t\t<div class=\"row justify-content-center\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t\t<app-decidir-ec (ready)=\"verifyValidate($event)\" [method]=\"method\"\n\t\t\t\t\t\t\t\t\t\t\t\t[user_data]=\"allData()\" [paymentServiceInst]=\"_paymentService\"\n\t\t\t\t\t\t\t\t\t\t\t\t[total_amount]=\"total_amount\">\n\t\t\t\t\t\t\t\t\t\t\t</app-decidir-ec>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div> \n\t\t\t\t\t\t\t@if(isMethodOffline(method.code)){\n\t\t\t\t\t\t\t<div class=\"method-container text-dark\">\n\t\t\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t<app-offline-ec \n\t\t\t\t\t\t\t\t\t\t[method]=\"method\" \n\t\t\t\t\t\t\t\t\t\t[verifyValidate]= \"verifyValidate\"\n\t\t\t\t\t\t\t\t\t\t[setLoading] = \"setLoading\" />\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<!--\n\t\t\t\t\t\t\t<div class=\"method-container text-dark text-start\" *ngIf=\"isCulqi(method.code)\">\n\t\t\t\t\t\t\t\t<div class=\"container\">\n\t\t\t\t\t\t\t\t\t<div class=\"row justify-content-center\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t\t<app-culqi-ec [apiKey]=\"getPKCulqi(method)\" [method]=\"method\"\n\t\t\t\t\t\t\t\t\t\t\t\t[amount]=\"total_amount\" [customStyle]=\"true\"\n\t\t\t\t\t\t\t\t\t\t\t\t(ready)=\"verifyValidate()\"></app-culqi-ec>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"method-container text-dark text-start\" *ngIf=\"isCatastro(method.code)\">\n\t\t\t\t\t\t\t\t<div class=\"container\">\n\t\t\t\t\t\t\t\t\t<div class=\"row justify-content-center\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t\t<app-bancard-catastro-ec (ready)=\"verifyValidate($event)\" [method]=\"method\"\n\t\t\t\t\t\t\t\t\t\t\t\t[user_data]=\"allData()\" [paymentServiceInst]=\"paymentService\"\n\t\t\t\t\t\t\t\t\t\t\t\t[total_amount]=\"total_amount\"></app-bancard-catastro-ec>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"method-container text-dark text-start\" *ngIf=\"isBamboo(method.code)\">\n\t\t\t\t\t\t\t\t<div class=\"container\">\n\t\t\t\t\t\t\t\t\t<div class=\"row justify-content-center\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t\t<app-bamboo-ec (ready)=\"verifyValidate($event)\" [method]=\"method\"\n\t\t\t\t\t\t\t\t\t\t\t\t[user_data]=\"allData()\" [paymentServiceInst]=\"paymentService\"\n\t\t\t\t\t\t\t\t\t\t\t\t[total_amount]=\"total_amount\"></app-bamboo-ec>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div> -->\n\t\t\t\t\t\t\t@if(isBankTransfer(method.code)){\n\t\t\t\t\t\t\t\t<div class=\"method-container text-dark\">\n\t\t\t\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t\t<app-bank-transfer-ec \n\t\t\t\t\t\t\t\t\t\t\t\t[method]=\"method\" \n\t\t\t\t\t\t\t\t\t\t\t\t[verifyValidate]= \"verifyValidate\"\n\t\t\t\t\t\t\t\t\t\t\t\t[setLoading] = \"setLoading\" />\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} @else {\n\t\t\t\t\t\t\t<app-loading-inline-ec></app-loading-inline-ec>\n\t\t\t\t\t\t}\n\t\t\t\t\t</div>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class=\"row d-flex flex-row\">\n\t\t\t\t<div class=\"col-12 d-flex justify-content-between\">\n\t\t\t\t\t<button class=\"btn btn-primary text-white\" (click)=\"goBack()\">{{'back'|translate}}</button>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n}" }]
149
+ ], template: "@if(methods$ | async; as methods){\n<div class=\"container-fluid\">\n\n\t<div class=\"row\">\n\t\t<div class=\"col-12\">\n\t\t\t<div class=\"card \">\n\t\t\t\t<div class=\"card-header text-dark text-center\">\n\t\t\t\t\t<h4>{{ 'select-method' | translate }}</h4>\n\t\t\t\t\t<div class=\"btn-toolbar justify-content-center\" role=\"toolbar\" aria-label=\"Envios toolbar\">\n\t\t\t\t\t\t<div class=\"\" role=\"group\" aria-label=\"Grupo botones envio\">\n\t\t\t\t\t\t\t<div class=\"d-flex align-content-start justify-content-center flex-wrap\">\n\t\t\t\t\t\t\t\t@for (method of methods; track $index; let x = $index) {\n\t\t\t\t\t\t\t\t<button type=\"button\" class=\"btn btn-outline-secondary mx-1 mb-1\" (click)=\"setMethod(method) ; setActive($event)\">\n\t\t\t\t\t\t\t\t\t{{ method.name | translate }}\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"card-body text-center\">\n\t\t\t\t\t@if(methodData$ | async; as method){\n\t\t\t\t\t<div class=\"row justify-content-center\">\n\t\t\t\t\t\t@if(!loadingInternal){\n\t\t\t\t\t\t\t@if(method && !showMethodError){\n\t\t\t\t\t\t\t\t@if(isMP(method.code)){\n\t\t\t\t\t\t\t\t\t<div class=\"method-container text-dark\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t\t\t<p id=\"faqs\" class=\"qt px-5 \">{{ method.description }}</p>\n\t\t\t\t\t\t\t\t\t\t\t\t<p class=\"px-5\">{{ method.instructions }}</p>\n\t\t\t\t\t\t\t\t\t\t\t<app-mp-redirect-ec (ready)=\"verifyValidate($event)\" \t[method]=\"method\"></app-mp-redirect-ec>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t<div class=\"method-container text-dark text-start\" *ngIf=\"isDecidir(method.code)\">\n\t\t\t\t\t\t\t\t\t<div class=\"container\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"row justify-content-center\">\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t\t\t<app-decidir-ec (ready)=\"verifyValidate($event)\" [method]=\"method\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t[user_data]=\"allData()\" [paymentServiceInst]=\"_paymentService\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t[total_amount]=\"total_amount\">\n\t\t\t\t\t\t\t\t\t\t\t\t</app-decidir-ec>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div> \n\t\t\t\t\t\t\t\t@if(isMethodOffline(method.code)){\n\t\t\t\t\t\t\t\t<div class=\"method-container text-dark\">\n\t\t\t\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t\t<app-offline-ec \n\t\t\t\t\t\t\t\t\t\t\t[method]=\"method\" \n\t\t\t\t\t\t\t\t\t\t\t[verifyValidate]= \"verifyValidate\"\n\t\t\t\t\t\t\t\t\t\t\t[setLoading] = \"setLoading\" />\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\t\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t@if(isBankTransfer(method.code)){\n\t\t\t\t\t\t\t\t\t<div class=\"method-container text-dark\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"col-12\">\n\t\t\t\t\t\t\t\t\t\t\t\t<app-bank-transfer-ec \n\t\t\t\t\t\t\t\t\t\t\t\t\t[method]=\"method\" \n\t\t\t\t\t\t\t\t\t\t\t\t\t[verifyValidate]= \"verifyValidate\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t[setLoading] = \"setLoading\" />\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t@if(showMethodError){\n\t\t\t\t\t\t\t\t<div class=\"text-danger mt-2 px-3 fw-bold\">\n\t\t\t\t\t\t\t\t\t{{ 'this-payment-method-cannot-be-used' | translate }}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t@if(isBalanceInAccount(method.code) && !showMethodError){\n\t\t\t\t\t\t\t\t<div class=\"method-container text-dark\">\n\t\t\t\t\t\t\t\t\t<div class=\"row px-0 description-cont\" *ngIf=\"method.description\">\n\t\t\t\t\t\t\t\t\t\t<ng-container *ngFor=\"let line of method.description.split('\\r\\n'); let i = index\">\n\t\t\t\t\t\t\t\t\t\t\t<p [id]=\"'cc-desc-'+i\" [class]=\"'qt px-5 m-0 line-'+i\">{{ line }}</p>\n\t\t\t\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<hr *ngIf=\"method.instructions\">\n\t\t\t\t\t\t\t\t\t<div *ngIf=\"method.instructions\" class=\"row px-0 instructions-cont mb-1\">\n\t\t\t\t\t\t\t\t\t\t<h5 class=\"instructions-title\">{{ ('instructions' | translate) }}</h5>\n\t\t\t\t\t\t\t\t\t\t<ng-container *ngFor=\"let line of method.instructions.split('\\r\\n'); let i = index\">\n\t\t\t\t\t\t\t\t\t\t\t<p [class]=\"'px-5 m-0 instructions-text line-'+i \">{{ line }}</p>\n\t\t\t\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t\t<ng-container *ngIf=\"!balanceMethodRejected; else showCreditError\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"end-button\">\n\t\t\t\t\t\t\t\t\t\t\t<button class=\"btn comprar\" (click)=\"setLoading() && verifyValidate()\">\n\t\t\t\t\t\t\t\t\t\t\t\t{{ 'pay-with' | translate }} {{ method.name }}\n\t\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</ng-container>\n\n\t\t\t\t\t\t\t\t\t<ng-template #showCreditError>\n\t\t\t\t\t\t\t\t\t\t<div class=\"text-danger mt-2 px-3 fw-bold\">\n\t\t\t\t\t\t\t\t\t\t\t{{ 'not-enough-credits-to-complete' | translate }}\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</ng-template>\n\n\t\t\t\t\t\t\t\t\t<ng-container *ngIf=\"(loading$ | async) as load\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"mt-2\" *ngIf=\"load\">\n\t\t\t\t\t\t\t\t\t\t\t<app-loading-inline-ec></app-loading-inline-ec>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} @else {\n\t\t\t\t\t\t\t<app-loading-inline-ec></app-loading-inline-ec>\n\t\t\t\t\t\t}\n\t\t\t\t\t</div>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class=\"row d-flex flex-row\">\n\t\t\t\t<div class=\"col-12 d-flex justify-content-between\">\n\t\t\t\t\t<button class=\"btn btn-primary text-white\" (click)=\"goBack()\">{{'back'|translate}}</button>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n}\n" }]
110
150
  }], ctorParameters: () => [] });
111
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9jaGVja291dC1lYy9wYXltZW50LWVjL3BheW1lbnQtZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvY2hlY2tvdXQtZWMvcGF5bWVudC1lYy9wYXltZW50LWVjLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUN4RyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN0RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7QUFrQm5ELE1BQU0sT0FBTyxrQkFBa0I7SUFFdkIsZUFBZSxHQUFtQixNQUFNLENBQUMsY0FBYyxDQUFDLENBQUE7SUFDdkQsZ0JBQWdCLEdB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QUFFLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQzdFLGVBQWUsR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFO1FBQ2xDLE1BQU0sU0FBUyxHQUFHLElBQUksRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDNUMsT0FBTyxTQUFTLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdEUsQ0FBQyxDQUFBO0lBQ0QsUUFBUSxHQUFHLENBQUMsSUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUNyRSxTQUFTLEdBQUcsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQ3ZFLFNBQVMsR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUE7SUFDdkUsT0FBTyxHQUFHLENBQUMsSUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUNuRSxjQUFjLEdBQUcsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFBO0lBQ2xGLFVBQVUsR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDekUsUUFBUSxHQUFHLENBQUMsSUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUVyRSxPQUFPO1FBQ04sT0FBTztZQUNOLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxlQUFlO1lBQ3JELEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxlQUFlLEVBQUU7U0FDekMsQ0FBQztJQUNILENBQUM7SUFDRCxVQUFVLEdBQUcsS0FBSyxJQUFJLEVBQUU7UUFDdkIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUE7UUFDbkUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUN0QixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDWixDQUFDLENBQUE7SUFFTSxVQUFVLEdBQUcsQ0FBQyxNQUFNLEdBQUcsSUFBSSxFQUFFLEVBQUU7UUFDckMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbEMsT0FBTyxJQUFJLENBQUM7SUFDYixDQUFDLENBQUE7SUFFTSxjQUFjLEdBQUcsQ0FBQyxTQUFjLElBQUksRUFBRSxFQUFFO1FBQzlDLElBQUksTUFBTSxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdkIsT0FBTztRQUNSLENBQUM7UUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ3JCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDM0MsQ0FBQyxDQUFBO0lBRU0sSUFBSSxHQUFHLEdBQUcsRUFBRTtRQUNsQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDN0IsQ0FBQyxDQUFBO0lBRU0sTUFBTSxHQUFHLEdBQUcsRUFBRTtRQUNwQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDN0IsQ0FBQyxDQUFBO3dHQTlGVyxrQkFBa0I7NEZBQWxCLGtCQUFrQiwwRUMzQi9CLDR6U0FrTUMscUREakxVLFNBQVMsNkNBQ2xCLFlBQVksa0lBQ1osZUFBZSw0RkFDZix3QkFBd0Isb0ZBQ3hCLHFCQUFxQixrSUFDckIsdUJBQXVCLHFIQUN2QixrQkFBa0IsK0dBQ2xCLGtCQUFrQjs7NEZBR1Asa0JBQWtCO2tCQWY5QixTQUFTOytCQUNDLGdCQUFnQixjQUNkLElBQUksV0FHUCxDQUFDLFNBQVM7d0JBQ2xCLFlBQVk7d0JBQ1osZUFBZTt3QkFDZix3QkFBd0I7d0JBQ3hCLHFCQUFxQjt3QkFDckIsdUJBQXVCO3dCQUN2QixrQkFBa0I7d0JBQ2xCLGtCQUFrQjtxQkFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY1BpcGUsIENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDaGVja291dFNlcnZpY2UsIFBheW1lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vZWMtc2VydmljZXMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IExvYWRpbmdJbmxpbmVFY0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL3dpZGdldHMtZWMnO1xuaW1wb3J0IHsgTXBSZWRpcmVjdEVjQ29tcG9uZW50LCBPZmZsaW5lRWNDb21wb25lbnQgfSBmcm9tICcuL3BheW1lbnQtbWV0aG9kcyc7XG5pbXBvcnQgeyBCYW5rVHJhbnNmZXJFY0NvbXBvbmVudCB9IGZyb20gJy4vcGF5bWVudC1tZXRob2RzL2JhbmstdHJhbnNmZXItZWMvYmFuay10cmFuc2Zlci1lYy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGVjaWRpckVjQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vd2lkZ2V0cy1lYy9kZWNpZGlyLWVjL2RlY2lkaXItZWMuY29tcG9uZW50JztcbmltcG9ydCB7IENhcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vZWMtc2VydmljZXMnO1xuaW1wb3J0IHsgQ2hlY2tvdXREYXRhIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ2FwcC1wYXltZW50LWVjJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGVVcmw6ICcuL3BheW1lbnQtZWMuY29tcG9uZW50Lmh0bWwnLFxuXHRzdHlsZVVybHM6IFsnLi9wYXltZW50LWVjLmNvbXBvbmVudC5zY3NzJ10sXG5cdGltcG9ydHM6IFtBc3luY1BpcGUsXG5cdFx0Q29tbW9uTW9kdWxlLFxuXHRcdFRyYW5zbGF0ZU1vZHVsZSxcblx0XHRMb2FkaW5nSW5saW5lRWNDb21wb25lbnQsXG5cdFx0TXBSZWRpcmVjdEVjQ29tcG9uZW50LFxuXHRcdEJhbmtUcmFuc2ZlckVjQ29tcG9uZW50LFxuXHRcdE9mZmxpbmVFY0NvbXBvbmVudCxcblx0XHREZWNpZGlyRWNDb21wb25lbnRcblx0XVxufSlcbmV4cG9ydCBjbGFzcyBQYXltZW50RWNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG5cdHB1YmxpYyBfcGF5bWVudFNlcnZpY2U6IFBheW1lbnRTZXJ2aWNlID0gaW5qZWN0KFBheW1lbnRTZXJ2aWNlKVxuXHRwcml2YXRlIF9jaGVja291dFNlcnZpY2U6IENoZWNrb3V0U2VydmljZSA9IGluamVjdChDaGVja291dFNlcnZpY2UpXG5cdHByaXZhdGUgX2NhcnRTZXJ2aWNlOiBDYXJ0U2VydmljZSA9IGluamVjdChDYXJ0U2VydmljZSk7XG5cblx0cHJpdmF0ZSBfbWV0aG9kRGF0YVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4obnVsbCk7XG5cdHByaXZhdGUgX2xvYWRpbmdTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cblx0cHVibGljIG1ldGhvZHMkID0gdGhpcy5fcGF5bWVudFNlcnZpY2UubWV0aG9kcyQ7XG5cdHB1YmxpYyBsb2FkaW5nJCA9IHRoaXMuX2xvYWRpbmdTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuXHRwdWJsaWMgbWV0aG9kRGF0YSQgPSB0aGlzLl9tZXRob2REYXRhU3ViamVjdC5hc09ic2VydmFibGUoKTtcblxuXHRwdWJsaWMgbG9hZGluZ0ludGVybmFsOiBib29sZWFuID0gZmFsc2U7XG5cdHB1YmxpYyB0b3RhbF9hbW91bnQ6IG51bWJlciA9IDA7XG5cblx0Y29uc3RydWN0b3IoKSB7IH1cblxuXHRuZ09uSW5pdCgpIHtcblx0XHR0aGlzLl9jaGVja291dFNlcnZpY2UuYXNzb2NpYXRlZERhdGEkLnN1YnNjcmliZSgoZGF0YTogQ2hlY2tvdXREYXRhW10pID0+IHtcblx0XHRcdGNvbnN0IHRvdGFsSXRlbSA9IGRhdGEuZmluZChpdGVtID0+IGl0ZW0udHlwZSA9PSAndG90YWwnKTtcblx0XHRcdHRoaXMudG90YWxfYW1vdW50ID0gdG90YWxJdGVtPy5hbW91bnQgPz8gMDtcblx0XHR9KVxuXG5cdFx0Ly8gY29uc29sZS5sb2coJ1BheW1lbnRFY0NvbXBvbmVudCBpbml0aWFsaXplZCB3aXRoIHRvdGFsX2Ftb3VudDonLCB0aGlzLnRvdGFsX2Ftb3VudCk7XG5cdH1cblx0c2V0QWN0aXZlKCRldmVudDogYW55KSB7XG5cdFx0Y29uc3QgcGFyZW50ID0gJGV2ZW50LnRhcmdldC5wYXJlbnRFbGVtZW50LmNoaWxkcmVuO1xuXHRcdGZvciAoY29uc3QgYnV0dG9uIG9mIHBhcmVudCkge1xuXHRcdFx0aWYgKGJ1dHRvbi5jbGFzc0xpc3QuY29udGFpbnMoJ2FjdGl2ZScpKSB7XG5cdFx0XHRcdGJ1dHRvbi5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKVxuXHRcdFx0fVxuXHRcdH1cblx0XHQkZXZlbnQudGFyZ2V0LmNsYXNzTGlzdC5hZGQoXCJhY3RpdmVcIilcblx0fVxuXHRhc3luYyBzZXRNZXRob2QobWV0aG9kOiBhbnkpIHtcblx0XHR0aGlzLl9tZXRob2REYXRhU3ViamVjdC5uZXh0KG51bGwpO1xuXHRcdGxldCByZXN1bHQgPSBhd2FpdCB0aGlzLl9wYXltZW50U2VydmljZS5wdXRQYXltZW50KG1ldGhvZC5jb2RlKTtcblx0XHR0aGlzLl9tZXRob2REYXRhU3ViamVjdC5uZXh0KG1ldGhvZCk7XG5cdH1cblxuXHQvL0Z1bmNpb25lcyBwYXJhIGNoZXF1ZWFyIGVsIG1ldG9kbyBkZSBwYWdvLlxuXHRpc1JlZGlyZWN0UmVkc3lzID0gKGNvZGU6IHN0cmluZykgPT4gISFjb2RlPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCdyZWRzeXNfcmVkaXJlY3QnKVxuXHRpc1JlZGlyZWN0Q2VjYUJhbmsgPSAoY29kZTogc3RyaW5nKSA9PiAhIWNvZGU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ2NlY2FfYmFua19yZWRpcmVjdCcpXG5cdGlzTVAgPSAoY29kZTogc3RyaW5nKSA9PiB7XG5cdFx0Y29uc3QgbG93ZXJDb2RlID0gY29kZT8udG9Mb3dlckNhc2UoKSB8fCAnJztcblx0XHRyZXR1cm4gbG93ZXJDb2RlLmluY2x1ZGVzKCdtZXJjYWRvX3BhZ28nKSAmJiAhbG93ZXJDb2RlLmluY2x1ZGVzKCdjcmVkaXQnKTtcblx0fVxuXHRpc01QVGFyamV0YURlQ3JlZGl0byA9IChjb2RlOiBzdHJpbmcpID0+ICEhY29kZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcygnY3JlZGl0Jylcblx0aXNNZXRob2RPZmZsaW5lID0gKGNvZGU6IHN0cmluZykgPT4gISFjb2RlPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCdvZmZsaW5lJylcblx0aXNQZXlQYWxFeHByZXNzID0gKGNvZGU6IHN0cmluZykgPT4ge1xuXHRcdGNvbnN0IGxvd2VyQ29kZSA9IGNvZGU/LnRvTG93ZXJDYXNlKCkgfHwgJyc7XG5cdFx0cmV0dXJuIGxvd2VyQ29kZS5pbmNsdWRlcygncGF5cGFsJykgJiYgbG93ZXJDb2RlLmluY2x1ZGVzKCdleHByZXNzJyk7XG5cdH1cblx0aXNNb2JiZXggPSAoY29kZTogc3RyaW5nKSA9PiAhIWNvZGU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ21vYmJleCcpXG5cdGlzQmFuY2FyZCA9IChjb2RlOiBzdHJpbmcpID0+ICEhY29kZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcygnYmFuY2FyZCcpXG5cdGlzRGVjaWRpciA9IChjb2RlOiBzdHJpbmcpID0+ICEhY29kZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcygnZGVjaWRpcicpXG5cdGlzQ3VscWkgPSAoY29kZTogc3RyaW5nKSA9PiAhIWNvZGU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ2N1bHFpJylcblx0aXNCYW5rVHJhbnNmZXIgPSAoY29kZTogc3RyaW5nKSA9PiAhIWNvZGU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ2JhbmtfdHJhbnNmZXInKVxuXHRpc0NhdGFzdHJvID0gKGNvZGU6IHN0cmluZykgPT4gISFjb2RlPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCdjYXRhc3RybycpXG5cdGlzQmFtYm9vID0gKGNvZGU6IHN0cmluZykgPT4gISFjb2RlPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCdiYW1ib28nKVxuXG5cdGFsbERhdGEoKTogYW55IHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0Li4udGhpcy5fcGF5bWVudFNlcnZpY2UuZ2V0VXNlckRhdGEoKS5zaGlwcGluZ0FkZHJlc3MsXG5cdFx0XHQuLi50aGlzLl9wYXltZW50U2VydmljZS5nZXRTaGlwbWVudERhdGEoKSxcblx0XHR9O1xuXHR9XG5cdGVtaXRSZXN1bHQgPSBhc3luYyAoKSA9PiB7XG5cdFx0dGhpcy5fcGF5bWVudFNlcnZpY2Uuc2V0UGF5bWVudCh0aGlzLl9tZXRob2REYXRhU3ViamVjdC5nZXRWYWx1ZSgpKVxuXHRcdHRoaXMuc2V0TG9hZGluZyhmYWxzZSlcblx0XHR0aGlzLm5leHQoKVxuXHR9XG5cblx0cHVibGljIHNldExvYWRpbmcgPSAoZXN0YWRvID0gdHJ1ZSkgPT4ge1xuXHRcdHRoaXMuX2xvYWRpbmdTdWJqZWN0Lm5leHQoZXN0YWRvKTtcblx0XHRyZXR1cm4gdHJ1ZTtcblx0fVxuXG5cdHB1YmxpYyB2ZXJpZnlWYWxpZGF0ZSA9ICgkZXZlbnQ6IGFueSA9IHRydWUpID0+IHtcblx0XHRpZiAoJGV2ZW50ID09PSBmYWxzZSkge1xuXHRcdFx0dGhpcy5zZXRMb2FkaW5nKGZhbHNlKTtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0dGhpcy5zZXRMb2FkaW5nKHRydWUpXG5cdFx0c2V0VGltZW91dCgoKSA9PiB0aGlzLmVtaXRSZXN1bHQoKSwgMTAwMCk7XG5cdH1cblxuXHRwdWJsaWMgbmV4dCA9ICgpID0+IHtcblx0XHR0aGlzLl9jaGVja291dFNlcnZpY2UubmV4dCgpXG5cdH1cblxuXHRwdWJsaWMgZ29CYWNrID0gKCkgPT4ge1xuXHRcdHRoaXMuX2NoZWNrb3V0U2VydmljZS5iYWNrKClcblx0fVxufVxuIiwiQGlmKG1ldGhvZHMkIHwgYXN5bmM7IGFzIG1ldGhvZHMpe1xuPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZFwiPlxuXG5cdDxkaXYgY2xhc3M9XCJyb3dcIj5cblx0XHQ8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwiY2FyZCBcIj5cblx0XHRcdFx0PGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIHRleHQtZGFyayB0ZXh0LWNlbnRlclwiPlxuXHRcdFx0XHRcdDxoND57eyAnc2VsZWN0LW1ldGhvZCcgfCB0cmFuc2xhdGUgfX08L2g0PlxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJidG4tdG9vbGJhciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCIgcm9sZT1cInRvb2xiYXJcIiBhcmlhLWxhYmVsPVwiRW52aW9zIHRvb2xiYXJcIj5cblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJcIiByb2xlPVwiZ3JvdXBcIiBhcmlhLWxhYmVsPVwiR3J1cG8gYm90b25lcyBlbnZpb1wiPlxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWNvbnRlbnQtc3RhcnQganVzdGlmeS1jb250ZW50LWNlbnRlciBmbGV4LXdyYXBcIj5cblx0XHRcdFx0XHRcdFx0XHRAZm9yIChtZXRob2Qgb2YgbWV0aG9kczsgdHJhY2sgJGluZGV4OyBsZXQgeCA9ICRpbmRleCkge1xuXHRcdFx0XHRcdFx0XHRcdDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXNlY29uZGFyeSBteC0xIG1iLTFcIihjbGljayk9XCJzZXRNZXRob2QobWV0aG9kKSA7IHNldEFjdGl2ZSgkZXZlbnQpXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHR7eyBtZXRob2QubmFtZSB8IHRyYW5zbGF0ZSB9fVxuXHRcdFx0XHRcdFx0XHRcdDwvYnV0dG9uPlxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgdGV4dC1jZW50ZXJcIj5cblx0XHRcdFx0XHRAaWYobWV0aG9kRGF0YSQgfCBhc3luYzsgYXMgbWV0aG9kKXtcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwicm93IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cblx0XHRcdFx0XHRcdEBpZighbG9hZGluZ0ludGVybmFsKXtcblx0XHRcdFx0XHRcdFx0QGlmKGlzTVAobWV0aG9kLmNvZGUpKXtcblx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwibWV0aG9kLWNvbnRhaW5lciB0ZXh0LWRhcmtcIj5cblx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJyb3dcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbC0xMlwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxwIGlkPVwiZmFxc1wiIGNsYXNzPVwicXQgcHgtNSBcIj57eyBtZXRob2QuZGVzY3JpcHRpb24gfX08L3A+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHAgY2xhc3M9XCJweC01XCI+e3sgbWV0aG9kLmluc3RydWN0aW9ucyB9fTwvcD5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PGFwcC1tcC1yZWRpcmVjdC1lYyAocmVhZHkpPVwidmVyaWZ5VmFsaWRhdGUoJGV2ZW50KVwiIFx0W21ldGhvZF09XCJtZXRob2RcIj48L2FwcC1tcC1yZWRpcmVjdC1lYz5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHQ8IS0tIDxkaXYgY2xhc3M9XCJtZXRob2QtY29udGFpbmVyIHRleHQtZGFyayB0ZXh0LWxlZnRcIiAqbmdJZj1cImlzTVBUYXJqZXRhRGVDcmVkaXRvKG1ldGhvZC5jb2RlKVwiPlxuXHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJyb3dcIj5cblx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PHAgaWQ9XCJmYXFzXCIgY2xhc3M9XCJxdCBweC01IFwiPnt7IG1ldGhvZC5kZXNjcmlwdGlvbiB9fTwvcD5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PHAgY2xhc3M9XCJweC01XCI+e3sgbWV0aG9kLmluc3RydWN0aW9ucyB9fTwvcD5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBhcHAtbXAtY3JlZGl0LWVjIChyZWFkeSk9XCJ2ZXJpZnlWYWxpZGF0ZSgpXCIgW3B1YmxpY19rZXldPVwiZ2V0UEsobWV0aG9kKVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0W3VzZXJfZGF0YV09XCJhbGxEYXRhKClcIiBbdG90YWxfYW1vdW50XT1cInRvdGFsX2Ftb3VudFwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cIm1ldGhvZC1jb250YWluZXIgdGV4dC1kYXJrIHRleHQtc3RhcnRcIiAqbmdJZj1cImlzUmVkaXJlY3RSZWRzeXMobWV0aG9kLmNvZGUpXCI+XG5cdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInJvd1wiPlxuXHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbC0xMlwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8bmctY29udGFpbmVyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Km5nSWY9XCIhbWV0aG9kLmNvZGUuaW5jbHVkZXMoJ2JpenVtJykgJiYgIW1ldGhvZC5jb2RlLmluY2x1ZGVzKCdfb3V0XycpXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGFwcC1yZWRzeXMtcmVkaXJlY3QtZWMgKHJlYWR5KT1cInZlcmlmeVZhbGlkYXRlKCRldmVudClcIiBbbWV0aG9kXT1cIm1ldGhvZFwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRbdXNlcl9kYXRhXT1cImFsbERhdGEoKVwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvYXBwLXJlZHN5cy1yZWRpcmVjdC1lYz5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PC9uZy1jb250YWluZXI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxuZy1jb250YWluZXJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQqbmdJZj1cIm1ldGhvZC5jb2RlLmluY2x1ZGVzKCdiaXp1bScpIHx8IG1ldGhvZC5jb2RlLmluY2x1ZGVzKCdfb3V0XycpXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGFwcC1yZWRzeXMtcmVkaXJlY3Qtb3V0LWVjIChyZWFkeSk9XCJ2ZXJpZnlWYWxpZGF0ZSgkZXZlbnQpXCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFttZXRob2RdPVwibWV0aG9kXCIgW3VzZXJfZGF0YV09XCJhbGxEYXRhKClcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L2FwcC1yZWRzeXMtcmVkaXJlY3Qtb3V0LWVjPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cblx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cIm1ldGhvZC1jb250YWluZXIgdGV4dC1kYXJrIHRleHQtc3RhcnRcIiAqbmdJZj1cImlzUmVkaXJlY3RDZWNhQmFuayhtZXRob2QuY29kZSlcIj5cblx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwicm93XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxhcHAtY2VjYS1yZWRpcmVjdC1lYyAocmVhZHkpPVwidmVyaWZ5VmFsaWRhdGUoJGV2ZW50KVwiIFttZXRob2RdPVwibWV0aG9kXCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRbdXNlcl9kYXRhXT1cImFsbERhdGEoKVwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L2FwcC1jZWNhLXJlZGlyZWN0LWVjPlxuXHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwibWV0aG9kLWNvbnRhaW5lciB0ZXh0LWRhcmsgdGV4dC1zdGFydFwiICpuZ0lmPVwiaXNQZXlQYWxFeHByZXNzKG1ldGhvZC5jb2RlKVwiPlxuXHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cblx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGFwcC1wYXlwYWwtZXhwcmVzcy1lYyAocmVhZHkpPVwidmVyaWZ5VmFsaWRhdGUoJGV2ZW50KVwiIFttZXRob2RdPVwibWV0aG9kXCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFt1c2VyX2RhdGFdPVwiYWxsRGF0YSgpXCIgW3RvdGFsX2Ftb3VudF09XCJ0b3RhbF9hbW91bnRcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L2FwcC1wYXlwYWwtZXhwcmVzcy1lYz5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJtZXRob2QtY29udGFpbmVyIHRleHQtZGFyayB0ZXh0LXN0YXJ0XCIgKm5nSWY9XCJpc01vYmJleChtZXRob2QuY29kZSlcIj5cblx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwicm93IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbC0xMlwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxhcHAtbW9iYmV4LWVjIChyZWFkeSk9XCJ2ZXJpZnlWYWxpZGF0ZSgkZXZlbnQpXCIgW21ldGhvZF09XCJtZXRob2RcIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0W3VzZXJfZGF0YV09XCJhbGxEYXRhKClcIiBbcGF5bWVudFNlcnZpY2VJbnN0XT1cInBheW1lbnRTZXJ2aWNlXCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFt0b3RhbF9hbW91bnRdPVwidG90YWxfYW1vdW50XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC9hcHAtbW9iYmV4LWVjPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cIm1ldGhvZC1jb250YWluZXIgdGV4dC1kYXJrIHRleHQtc3RhcnRcIiAqbmdJZj1cImlzQmFuY2FyZChtZXRob2QuY29kZSlcIj5cblx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwicm93IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbC0xMlwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxhcHAtYmFuY2FyZC1lYyAocmVhZHkpPVwidmVyaWZ5VmFsaWRhdGUoJGV2ZW50KVwiIFttZXRob2RdPVwibWV0aG9kXCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFt1c2VyX2RhdGFdPVwiYWxsRGF0YSgpXCIgW3BheW1lbnRTZXJ2aWNlSW5zdF09XCJwYXltZW50U2VydmljZVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRbdG90YWxfYW1vdW50XT1cInRvdGFsX2Ftb3VudFwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvYXBwLWJhbmNhcmQtZWM+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdDwvZGl2Pi0tPlxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwibWV0aG9kLWNvbnRhaW5lciB0ZXh0LWRhcmsgdGV4dC1zdGFydFwiICpuZ0lmPVwiaXNEZWNpZGlyKG1ldGhvZC5jb2RlKVwiPlxuXHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cblx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGFwcC1kZWNpZGlyLWVjIChyZWFkeSk9XCJ2ZXJpZnlWYWxpZGF0ZSgkZXZlbnQpXCIgW21ldGhvZF09XCJtZXRob2RcIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0W3VzZXJfZGF0YV09XCJhbGxEYXRhKClcIiBbcGF5bWVudFNlcnZpY2VJbnN0XT1cIl9wYXltZW50U2VydmljZVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRbdG90YWxfYW1vdW50XT1cInRvdGFsX2Ftb3VudFwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvYXBwLWRlY2lkaXItZWM+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdDwvZGl2PiBcblx0XHRcdFx0XHRcdFx0QGlmKGlzTWV0aG9kT2ZmbGluZShtZXRob2QuY29kZSkpe1xuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwibWV0aG9kLWNvbnRhaW5lciB0ZXh0LWRhcmtcIj5cblx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwicm93XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxhcHAtb2ZmbGluZS1lYyBcblx0XHRcdFx0XHRcdFx0XHRcdFx0W21ldGhvZF09XCJtZXRob2RcIiBcblx0XHRcdFx0XHRcdFx0XHRcdFx0W3ZlcmlmeVZhbGlkYXRlXT0gXCJ2ZXJpZnlWYWxpZGF0ZVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFtzZXRMb2FkaW5nXSA9IFwic2V0TG9hZGluZ1wiIC8+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0PC9kaXY+XHRcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0PCEtLVxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwibWV0aG9kLWNvbnRhaW5lciB0ZXh0LWRhcmsgdGV4dC1zdGFydFwiICpuZ0lmPVwiaXNDdWxxaShtZXRob2QuY29kZSlcIj5cblx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwicm93IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbC0xMlwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxhcHAtY3VscWktZWMgW2FwaUtleV09XCJnZXRQS0N1bHFpKG1ldGhvZClcIiBbbWV0aG9kXT1cIm1ldGhvZFwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRbYW1vdW50XT1cInRvdGFsX2Ftb3VudFwiIFtjdXN0b21TdHlsZV09XCJ0cnVlXCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdChyZWFkeSk9XCJ2ZXJpZnlWYWxpZGF0ZSgpXCI+PC9hcHAtY3VscWktZWM+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwibWV0aG9kLWNvbnRhaW5lciB0ZXh0LWRhcmsgdGV4dC1zdGFydFwiICpuZ0lmPVwiaXNDYXRhc3RybyhtZXRob2QuY29kZSlcIj5cblx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwicm93IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbC0xMlwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxhcHAtYmFuY2FyZC1jYXRhc3Ryby1lYyAocmVhZHkpPVwidmVyaWZ5VmFsaWRhdGUoJGV2ZW50KVwiIFttZXRob2RdPVwibWV0aG9kXCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFt1c2VyX2RhdGFdPVwiYWxsRGF0YSgpXCIgW3BheW1lbnRTZXJ2aWNlSW5zdF09XCJwYXltZW50U2VydmljZVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRbdG90YWxfYW1vdW50XT1cInRvdGFsX2Ftb3VudFwiPjwvYXBwLWJhbmNhcmQtY2F0YXN0cm8tZWM+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwibWV0aG9kLWNvbnRhaW5lciB0ZXh0LWRhcmsgdGV4dC1zdGFydFwiICpuZ0lmPVwiaXNCYW1ib28obWV0aG9kLmNvZGUpXCI+XG5cdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8YXBwLWJhbWJvby1lYyAocmVhZHkpPVwidmVyaWZ5VmFsaWRhdGUoJGV2ZW50KVwiIFttZXRob2RdPVwibWV0aG9kXCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFt1c2VyX2RhdGFdPVwiYWxsRGF0YSgpXCIgW3BheW1lbnRTZXJ2aWNlSW5zdF09XCJwYXltZW50U2VydmljZVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRbdG90YWxfYW1vdW50XT1cInRvdGFsX2Ftb3VudFwiPjwvYXBwLWJhbWJvby1lYz5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0PC9kaXY+IC0tPlxuXHRcdFx0XHRcdFx0XHRAaWYoaXNCYW5rVHJhbnNmZXIobWV0aG9kLmNvZGUpKXtcblx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwibWV0aG9kLWNvbnRhaW5lciB0ZXh0LWRhcmtcIj5cblx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJyb3dcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbC0xMlwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxhcHAtYmFuay10cmFuc2Zlci1lYyBcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFttZXRob2RdPVwibWV0aG9kXCIgXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRbdmVyaWZ5VmFsaWRhdGVdPSBcInZlcmlmeVZhbGlkYXRlXCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFtzZXRMb2FkaW5nXSA9IFwic2V0TG9hZGluZ1wiIC8+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH0gQGVsc2Uge1xuXHRcdFx0XHRcdFx0XHQ8YXBwLWxvYWRpbmctaW5saW5lLWVjPjwvYXBwLWxvYWRpbmctaW5saW5lLWVjPlxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdH1cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHQ8L2Rpdj5cblx0XHRcdDxkaXYgY2xhc3M9XCJyb3cgZC1mbGV4IGZsZXgtcm93XCI+XG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJjb2wtMTIgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XG5cdFx0XHRcdFx0PGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSB0ZXh0LXdoaXRlXCIgKGNsaWNrKT1cImdvQmFjaygpXCI+e3snYmFjayd8dHJhbnNsYXRlfX08L2J1dHRvbj5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHQ8L2Rpdj5cblx0XHQ8L2Rpdj5cblx0PC9kaXY+XG48L2Rpdj5cbn0iXX0=
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9jaGVja291dC1lYy9wYXltZW50LWVjL3BheW1lbnQtZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvY2hlY2tvdXQtZWMvcGF5bWVudC1lYy9wYXltZW50LWVjLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUN4RyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN0RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFbkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7O0FBaUJwRCxNQUFNLE9BQU8sa0JBQWtCO0lBRXZCLGVBQWUsR0FB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ZW50IjpbImltcG9ydCB7IEFzeW5jUGlwZSwgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENoZWNrb3V0U2VydmljZSwgUGF5bWVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9lYy1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTG9hZGluZ0lubGluZUVjQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vd2lkZ2V0cy1lYyc7XG5pbXBvcnQgeyBNcFJlZGlyZWN0RWNDb21wb25lbnQsIE9mZmxpbmVFY0NvbXBvbmVudCB9IGZyb20gJy4vcGF5bWVudC1tZXRob2RzJztcbmltcG9ydCB7IEJhbmtUcmFuc2ZlckVjQ29tcG9uZW50IH0gZnJvbSAnLi9wYXltZW50LW1ldGhvZHMvYmFuay10cmFuc2Zlci1lYy9iYW5rLXRyYW5zZmVyLWVjLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEZWNpZGlyRWNDb21wb25lbnQgfSBmcm9tICcuLi8uLi93aWRnZXRzLWVjL2RlY2lkaXItZWMvZGVjaWRpci1lYy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FydFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9lYy1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBDaGVja291dERhdGEgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2VjLXNlcnZpY2VzJztcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnYXBwLXBheW1lbnQtZWMnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZVVybDogJy4vcGF5bWVudC1lYy5jb21wb25lbnQuaHRtbCcsXG5cdHN0eWxlVXJsczogWycuL3BheW1lbnQtZWMuY29tcG9uZW50LnNjc3MnXSxcblx0aW1wb3J0czogW0FzeW5jUGlwZSxcblx0XHRDb21tb25Nb2R1bGUsXG5cdFx0VHJhbnNsYXRlTW9kdWxlLFxuXHRcdExvYWRpbmdJbmxpbmVFY0NvbXBvbmVudCxcblx0XHRNcFJlZGlyZWN0RWNDb21wb25lbnQsXG5cdFx0QmFua1RyYW5zZmVyRWNDb21wb25lbnQsXG5cdFx0T2ZmbGluZUVjQ29tcG9uZW50LFxuXHRcdERlY2lkaXJFY0NvbXBvbmVudFxuXHRdXG59KVxuZXhwb3J0IGNsYXNzIFBheW1lbnRFY0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cblx0cHVibGljIF9wYXltZW50U2VydmljZTogUGF5bWVudFNlcnZpY2UgPSBpbmplY3QoUGF5bWVudFNlcnZpY2UpXG5cdHByaXZhdGUgX2NoZWNrb3V0U2VydmljZTogQ2hlY2tvdXRTZXJ2aWNlID0gaW5qZWN0KENoZWNrb3V0U2VydmljZSlcblx0cHJpdmF0ZSBfY2FydFNlcnZpY2U6IENhcnRTZXJ2aWNlID0gaW5qZWN0KENhcnRTZXJ2aWNlKTtcblx0cHJpdmF0ZSBfdG9hc3RTZXJ2aWNlOiBUb2FzdFNlcnZpY2UgPSBpbmplY3QoVG9hc3RTZXJ2aWNlKTtcblxuXHRwcml2YXRlIF9tZXRob2REYXRhU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihudWxsKTtcblx0cHJpdmF0ZSBfbG9hZGluZ1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblxuXHRwdWJsaWMgbWV0aG9kcyQgPSB0aGlzLl9wYXltZW50U2VydmljZS5tZXRob2RzJDtcblx0cHVibGljIGxvYWRpbmckID0gdGhpcy5fbG9hZGluZ1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG5cdHB1YmxpYyBtZXRob2REYXRhJCA9IHRoaXMuX21ldGhvZERhdGFTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuXG5cdHB1YmxpYyBsb2FkaW5nSW50ZXJuYWw6IGJvb2xlYW4gPSBmYWxzZTtcblx0cHVibGljIHRvdGFsX2Ftb3VudDogbnVtYmVyID0gMDtcblx0cHVibGljIGFsbG93QW55UGF5bWVudE1ldGhvZDogYm9vbGVhbiB8IG51bGwgPSBudWxsO1xuXHRwdWJsaWMgYmFsYW5jZU1ldGhvZFJlamVjdGVkOiBib29sZWFuID0gZmFsc2U7XG5cdHB1YmxpYyBzaG93TWV0aG9kRXJyb3I6IGJvb2xlYW4gPSBmYWxzZTtcblxuXHRjb25zdHJ1Y3RvcigpIHsgfVxuXG5cdG5nT25Jbml0KCkge1xuXHRcdHRoaXMuX2NoZWNrb3V0U2VydmljZS5hc3NvY2lhdGVkRGF0YSQuc3Vic2NyaWJlKChkYXRhOiBDaGVja291dERhdGFbXSkgPT4ge1xuXHRcdFx0Y29uc3QgdG90YWxJdGVtID0gZGF0YS5maW5kKGl0ZW0gPT4gaXRlbS50eXBlID09ICd0b3RhbCcpO1xuXHRcdFx0dGhpcy50b3RhbF9hbW91bnQgPSB0b3RhbEl0ZW0/LmFtb3VudCA/PyAwO1xuXHRcdH0pXG5cdFx0dGhpcy5fY2FydFNlcnZpY2UuYWxsb3dBbnlQYXltZW50TWV0aG9kJC5zdWJzY3JpYmUodmFsdWUgPT4ge1xuXHRcdFx0dGhpcy5hbGxvd0FueVBheW1lbnRNZXRob2QgPSB2YWx1ZTtcblx0XHR9KTtcblxuXHRcdC8vIGNvbnNvbGUubG9nKCdQYXltZW50RWNDb21wb25lbnQgaW5pdGlhbGl6ZWQgd2l0aCB0b3RhbF9hbW91bnQ6JywgdGhpcy50b3RhbF9hbW91bnQpO1xuXHR9XG5cdHNldEFjdGl2ZSgkZXZlbnQ6IGFueSkge1xuXHRcdGNvbnN0IHBhcmVudCA9ICRldmVudC50YXJnZXQucGFyZW50RWxlbWVudC5jaGlsZHJlbjtcblx0XHRmb3IgKGNvbnN0IGJ1dHRvbiBvZiBwYXJlbnQpIHtcblx0XHRcdGlmIChidXR0b24uY2xhc3NMaXN0LmNvbnRhaW5zKCdhY3RpdmUnKSkge1xuXHRcdFx0XHRidXR0b24uY2xhc3NMaXN0LnJlbW92ZSgnYWN0aXZlJylcblx0XHRcdH1cblx0XHR9XG5cdFx0JGV2ZW50LnRhcmdldC5jbGFzc0xpc3QuYWRkKFwiYWN0aXZlXCIpXG5cdH1cblx0YXN5bmMgc2V0TWV0aG9kKG1ldGhvZDogYW55KSB7XG5cdFx0dGhpcy5fbWV0aG9kRGF0YVN1YmplY3QubmV4dChudWxsKTtcblx0XHR0aGlzLnNob3dNZXRob2RFcnJvciA9IGZhbHNlO1xuXG5cdFx0Y29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5fcGF5bWVudFNlcnZpY2UucHV0UGF5bWVudChtZXRob2QuY29kZSk7XG5cdFx0Y29uc3QgYmFsYW5jZUN1c3RvbWVyID0gcmVzdWx0Py5iYWxhbmNlQ3VzdG9tZXI7XG5cdFx0Y29uc3QgdG90YWxzID0gcmVzdWx0Py50b3RhbHM7XG5cblx0XHR0aGlzLl9jYXJ0U2VydmljZS51cGRhdGVCYWxhbmNlQXR0cmlidXRlcyhiYWxhbmNlQ3VzdG9tZXIsIHRvdGFscz8udG90YWwpO1xuXG5cdFx0Y29uc3QgaXNCYWxhbmNlTWV0aG9kID0gdGhpcy5pc0JhbGFuY2VJbkFjY291bnQobWV0aG9kLmNvZGUpO1xuXHRcdGNvbnN0IGFsbG93QW55ID0gYmFsYW5jZUN1c3RvbWVyPy5hbGxvd0FueVBheW1lbnRNZXRob2Q7XG5cblx0XHRpZiAoXG5cdFx0XHQoYmFsYW5jZUN1c3RvbWVyICYmIGFsbG93QW55ID09PSBmYWxzZSAmJiAhaXNCYWxhbmNlTWV0aG9kKSB8fFxuXHRcdFx0KGlzQmFsYW5jZU1ldGhvZCAmJiAhYmFsYW5jZUN1c3RvbWVyKVxuXHRcdCkge1xuXHRcdFx0dGhpcy5oYW5kbGVNZXRob2RFcnJvcigndGhpcy1wYXltZW50LW1ldGhvZC1jYW5ub3QtYmUtdXNlZCcsIG1ldGhvZCk7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0aWYgKFxuXHRcdFx0aXNCYWxhbmNlTWV0aG9kICYmXG5cdFx0XHRiYWxhbmNlQ3VzdG9tZXIgJiZcblx0XHRcdHRvdGFscyAmJlxuXHRcdFx0YmFsYW5jZUN1c3RvbWVyLmFsbG93RXhjZWVkQmFsYW5jZSA9PT0gZmFsc2UgJiZcblx0XHRcdGJhbGFuY2VDdXN0b21lci5jcmVkaXRBbW91bnQgPCB0b3RhbHMudG90YWxcblx0XHQpIHtcblx0XHRcdHRoaXMuX3RvYXN0U2VydmljZS5zaG93KCdpbnN1ZmZpY2llbnRfY3JlZGl0Jyk7XG5cdFx0XHR0aGlzLmJhbGFuY2VNZXRob2RSZWplY3RlZCA9IHRydWU7XG5cdFx0fSBlbHNlIGlmIChpc0JhbGFuY2VNZXRob2QpIHtcblx0XHRcdHRoaXMuYmFsYW5jZU1ldGhvZFJlamVjdGVkID0gZmFsc2U7XG5cdFx0fVxuXG5cdFx0dGhpcy5fbWV0aG9kRGF0YVN1YmplY3QubmV4dChtZXRob2QpO1xuXHR9XG5cblx0cHJpdmF0ZSBoYW5kbGVNZXRob2RFcnJvcihtZXNzYWdlOiBzdHJpbmcsIG1ldGhvZDogYW55KSB7XG5cdFx0dGhpcy5zaG93TWV0aG9kRXJyb3IgPSB0cnVlO1xuXHRcdHRoaXMuX3RvYXN0U2VydmljZS5zaG93KG1lc3NhZ2UpO1xuXHRcdHRoaXMuX21ldGhvZERhdGFTdWJqZWN0Lm5leHQobWV0aG9kKTtcblx0fVxuXG5cdC8vRnVuY2lvbmVzIHBhcmEgY2hlcXVlYXIgZWwgbWV0b2RvIGRlIHBhZ28uXG5cdGlzUmVkaXJlY3RSZWRzeXMgPSAoY29kZTogc3RyaW5nKSA9PiAhIWNvZGU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ3JlZHN5c19yZWRpcmVjdCcpXG5cdGlzUmVkaXJlY3RDZWNhQmFuayA9IChjb2RlOiBzdHJpbmcpID0+ICEhY29kZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcygnY2VjYV9iYW5rX3JlZGlyZWN0Jylcblx0aXNNUCA9IChjb2RlOiBzdHJpbmcpID0+IHtcblx0XHRjb25zdCBsb3dlckNvZGUgPSBjb2RlPy50b0xvd2VyQ2FzZSgpIHx8ICcnO1xuXHRcdHJldHVybiBsb3dlckNvZGUuaW5jbHVkZXMoJ21lcmNhZG9fcGFnbycpICYmICFsb3dlckNvZGUuaW5jbHVkZXMoJ2NyZWRpdCcpO1xuXHR9XG5cdGlzTVBUYXJqZXRhRGVDcmVkaXRvID0gKGNvZGU6IHN0cmluZykgPT4gISFjb2RlPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCdjcmVkaXQnKVxuXHRpc01ldGhvZE9mZmxpbmUgPSAoY29kZTogc3RyaW5nKSA9PiAhIWNvZGU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ29mZmxpbmUnKVxuXHRpc1BleVBhbEV4cHJlc3MgPSAoY29kZTogc3RyaW5nKSA9PiB7XG5cdFx0Y29uc3QgbG93ZXJDb2RlID0gY29kZT8udG9Mb3dlckNhc2UoKSB8fCAnJztcblx0XHRyZXR1cm4gbG93ZXJDb2RlLmluY2x1ZGVzKCdwYXlwYWwnKSAmJiBsb3dlckNvZGUuaW5jbHVkZXMoJ2V4cHJlc3MnKTtcblx0fVxuXHRpc01vYmJleCA9IChjb2RlOiBzdHJpbmcpID0+ICEhY29kZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcygnbW9iYmV4Jylcblx0aXNCYW5jYXJkID0gKGNvZGU6IHN0cmluZykgPT4gISFjb2RlPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCdiYW5jYXJkJylcblx0aXNEZWNpZGlyID0gKGNvZGU6IHN0cmluZykgPT4gISFjb2RlPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCdkZWNpZGlyJylcblx0aXNDdWxxaSA9IChjb2RlOiBzdHJpbmcpID0+ICEhY29kZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcygnY3VscWknKVxuXHRpc0JhbmtUcmFuc2ZlciA9IChjb2RlOiBzdHJpbmcpID0+ICEhY29kZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcygnYmFua190cmFuc2ZlcicpXG5cdGlzQ2F0YXN0cm8gPSAoY29kZTogc3RyaW5nKSA9PiAhIWNvZGU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ2NhdGFzdHJvJylcblx0aXNCYW1ib28gPSAoY29kZTogc3RyaW5nKSA9PiAhIWNvZGU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ2JhbWJvbycpXG5cdGlzQmFsYW5jZUluQWNjb3VudCA9IChjb2RlOiBzdHJpbmcpID0+ICEhY29kZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcygnYmFsYW5jZV9pbl9hY2NvdW50JylcblxuXHRhbGxEYXRhKCk6IGFueSB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdC4uLnRoaXMuX3BheW1lbnRTZXJ2aWNlLmdldFVzZXJEYXRhKCkuc2hpcHBpbmdBZGRyZXNzLFxuXHRcdFx0Li4udGhpcy5fcGF5bWVudFNlcnZpY2UuZ2V0U2hpcG1lbnREYXRhKCksXG5cdFx0fTtcblx0fVxuXHRlbWl0UmVzdWx0ID0gYXN5bmMgKCkgPT4ge1xuXHRcdHRoaXMuX3BheW1lbnRTZXJ2aWNlLnNldFBheW1lbnQodGhpcy5fbWV0aG9kRGF0YVN1YmplY3QuZ2V0VmFsdWUoKSlcblx0XHR0aGlzLnNldExvYWRpbmcoZmFsc2UpXG5cdFx0dGhpcy5uZXh0KClcblx0fVxuXG5cdHB1YmxpYyBzZXRMb2FkaW5nID0gKGVzdGFkbyA9IHRydWUpID0+IHtcblx0XHR0aGlzLl9sb2FkaW5nU3ViamVjdC5uZXh0KGVzdGFkbyk7XG5cdFx0cmV0dXJuIHRydWU7XG5cdH1cblxuXHRwdWJsaWMgdmVyaWZ5VmFsaWRhdGUgPSAoJGV2ZW50OiBhbnkgPSB0cnVlKSA9PiB7XG5cdFx0aWYgKHRoaXMuYmFsYW5jZU1ldGhvZFJlamVjdGVkKSB7XG5cdFx0XHR0aGlzLnNldExvYWRpbmcoZmFsc2UpO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRpZiAoJGV2ZW50ID09PSBmYWxzZSkge1xuXHRcdFx0dGhpcy5zZXRMb2FkaW5nKGZhbHNlKTtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0dGhpcy5zZXRMb2FkaW5nKHRydWUpXG5cdFx0c2V0VGltZW91dCgoKSA9PiB0aGlzLmVtaXRSZXN1bHQoKSwgMTAwMCk7XG5cdH1cblxuXHRwdWJsaWMgbmV4dCA9ICgpID0+IHtcblx0XHR0aGlzLl9jaGVja291dFNlcnZpY2UubmV4dCgpXG5cdH1cblxuXHRwdWJsaWMgZ29CYWNrID0gKCkgPT4ge1xuXHRcdHRoaXMuX2NoZWNrb3V0U2VydmljZS5iYWNrKClcblx0fVxufVxuIiwiQGlmKG1ldGhvZHMkIHwgYXN5bmM7IGFzIG1ldGhvZHMpe1xuPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZFwiPlxuXG5cdDxkaXYgY2xhc3M9XCJyb3dcIj5cblx0XHQ8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwiY2FyZCBcIj5cblx0XHRcdFx0PGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIHRleHQtZGFyayB0ZXh0LWNlbnRlclwiPlxuXHRcdFx0XHRcdDxoND57eyAnc2VsZWN0LW1ldGhvZCcgfCB0cmFuc2xhdGUgfX08L2g0PlxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJidG4tdG9vbGJhciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCIgcm9sZT1cInRvb2xiYXJcIiBhcmlhLWxhYmVsPVwiRW52aW9zIHRvb2xiYXJcIj5cblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJcIiByb2xlPVwiZ3JvdXBcIiBhcmlhLWxhYmVsPVwiR3J1cG8gYm90b25lcyBlbnZpb1wiPlxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWNvbnRlbnQtc3RhcnQganVzdGlmeS1jb250ZW50LWNlbnRlciBmbGV4LXdyYXBcIj5cblx0XHRcdFx0XHRcdFx0XHRAZm9yIChtZXRob2Qgb2YgbWV0aG9kczsgdHJhY2sgJGluZGV4OyBsZXQgeCA9ICRpbmRleCkge1xuXHRcdFx0XHRcdFx0XHRcdDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXNlY29uZGFyeSBteC0xIG1iLTFcIiAoY2xpY2spPVwic2V0TWV0aG9kKG1ldGhvZCkgOyBzZXRBY3RpdmUoJGV2ZW50KVwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0e3sgbWV0aG9kLm5hbWUgfCB0cmFuc2xhdGUgfX1cblx0XHRcdFx0XHRcdFx0XHQ8L2J1dHRvbj5cblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHRleHQtY2VudGVyXCI+XG5cdFx0XHRcdFx0QGlmKG1ldGhvZERhdGEkIHwgYXN5bmM7IGFzIG1ldGhvZCl7XG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XG5cdFx0XHRcdFx0XHRAaWYoIWxvYWRpbmdJbnRlcm5hbCl7XG5cdFx0XHRcdFx0XHRcdEBpZihtZXRob2QgJiYgIXNob3dNZXRob2RFcnJvcil7XG5cdFx0XHRcdFx0XHRcdFx0QGlmKGlzTVAobWV0aG9kLmNvZGUpKXtcblx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJtZXRob2QtY29udGFpbmVyIHRleHQtZGFya1wiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwicm93XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbC0xMlwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHAgaWQ9XCJmYXFzXCIgY2xhc3M9XCJxdCBweC01IFwiPnt7IG1ldGhvZC5kZXNjcmlwdGlvbiB9fTwvcD5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxwIGNsYXNzPVwicHgtNVwiPnt7IG1ldGhvZC5pbnN0cnVjdGlvbnMgfX08L3A+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGFwcC1tcC1yZWRpcmVjdC1lYyAocmVhZHkpPVwidmVyaWZ5VmFsaWRhdGUoJGV2ZW50KVwiIFx0W21ldGhvZF09XCJtZXRob2RcIj48L2FwcC1tcC1yZWRpcmVjdC1lYz5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cIm1ldGhvZC1jb250YWluZXIgdGV4dC1kYXJrIHRleHQtc3RhcnRcIiAqbmdJZj1cImlzRGVjaWRpcihtZXRob2QuY29kZSlcIj5cblx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbC0xMlwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGFwcC1kZWNpZGlyLWVjIChyZWFkeSk9XCJ2ZXJpZnlWYWxpZGF0ZSgkZXZlbnQpXCIgW21ldGhvZF09XCJtZXRob2RcIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRbdXNlcl9kYXRhXT1cImFsbERhdGEoKVwiIFtwYXltZW50U2VydmljZUluc3RdPVwiX3BheW1lbnRTZXJ2aWNlXCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0W3RvdGFsX2Ftb3VudF09XCJ0b3RhbF9hbW91bnRcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvYXBwLWRlY2lkaXItZWM+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0PC9kaXY+IFxuXHRcdFx0XHRcdFx0XHRcdEBpZihpc01ldGhvZE9mZmxpbmUobWV0aG9kLmNvZGUpKXtcblx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwibWV0aG9kLWNvbnRhaW5lciB0ZXh0LWRhcmtcIj5cblx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJyb3dcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbC0xMlwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxhcHAtb2ZmbGluZS1lYyBcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRbbWV0aG9kXT1cIm1ldGhvZFwiIFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFt2ZXJpZnlWYWxpZGF0ZV09IFwidmVyaWZ5VmFsaWRhdGVcIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFtzZXRMb2FkaW5nXSA9IFwic2V0TG9hZGluZ1wiIC8+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0PC9kaXY+XHRcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0QGlmKGlzQmFua1RyYW5zZmVyKG1ldGhvZC5jb2RlKSl7XG5cdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwibWV0aG9kLWNvbnRhaW5lciB0ZXh0LWRhcmtcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInJvd1wiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxhcHAtYmFuay10cmFuc2Zlci1lYyBcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0W21ldGhvZF09XCJtZXRob2RcIiBcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0W3ZlcmlmeVZhbGlkYXRlXT0gXCJ2ZXJpZnlWYWxpZGF0ZVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFtzZXRMb2FkaW5nXSA9IFwic2V0TG9hZGluZ1wiIC8+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdEBpZihzaG93TWV0aG9kRXJyb3Ipe1xuXHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJ0ZXh0LWRhbmdlciBtdC0yIHB4LTMgZnctYm9sZFwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0e3sgJ3RoaXMtcGF5bWVudC1tZXRob2QtY2Fubm90LWJlLXVzZWQnIHwgdHJhbnNsYXRlIH19XG5cdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0QGlmKGlzQmFsYW5jZUluQWNjb3VudChtZXRob2QuY29kZSkgJiYgIXNob3dNZXRob2RFcnJvcil7XG5cdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cIm1ldGhvZC1jb250YWluZXIgdGV4dC1kYXJrXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwicm93IHB4LTAgZGVzY3JpcHRpb24tY29udFwiICpuZ0lmPVwibWV0aG9kLmRlc2NyaXB0aW9uXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGxpbmUgb2YgbWV0aG9kLmRlc2NyaXB0aW9uLnNwbGl0KCdcXHJcXG4nKTsgbGV0IGkgPSBpbmRleFwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxwIFtpZF09XCInY2MtZGVzYy0nK2lcIiBbY2xhc3NdPVwiJ3F0IHB4LTUgbS0wIGxpbmUtJytpXCI+e3sgbGluZSB9fTwvcD5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PC9uZy1jb250YWluZXI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0XHRcdDxociAqbmdJZj1cIm1ldGhvZC5pbnN0cnVjdGlvbnNcIj5cblx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgKm5nSWY9XCJtZXRob2QuaW5zdHJ1Y3Rpb25zXCIgY2xhc3M9XCJyb3cgcHgtMCBpbnN0cnVjdGlvbnMtY29udCBtYi0xXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxoNSBjbGFzcz1cImluc3RydWN0aW9ucy10aXRsZVwiPnt7ICgnaW5zdHJ1Y3Rpb25zJyB8IHRyYW5zbGF0ZSkgfX08L2g1PlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBsaW5lIG9mIG1ldGhvZC5pbnN0cnVjdGlvbnMuc3BsaXQoJ1xcclxcbicpOyBsZXQgaSA9IGluZGV4XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHAgW2NsYXNzXT1cIidweC01IG0tMCBpbnN0cnVjdGlvbnMtdGV4dCBsaW5lLScraSBcIj57eyBsaW5lIH19PC9wPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cblx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXG5cdFx0XHRcdFx0XHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwiIWJhbGFuY2VNZXRob2RSZWplY3RlZDsgZWxzZSBzaG93Q3JlZGl0RXJyb3JcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImVuZC1idXR0b25cIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8YnV0dG9uIGNsYXNzPVwiYnRuIGNvbXByYXJcIiAoY2xpY2spPVwic2V0TG9hZGluZygpICYmIHZlcmlmeVZhbGlkYXRlKClcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHt7ICdwYXktd2l0aCcgfCB0cmFuc2xhdGUgfX0ge3sgbWV0aG9kLm5hbWUgfX1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L2J1dHRvbj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cblxuXHRcdFx0XHRcdFx0XHRcdFx0PG5nLXRlbXBsYXRlICNzaG93Q3JlZGl0RXJyb3I+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJ0ZXh0LWRhbmdlciBtdC0yIHB4LTMgZnctYm9sZFwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHt7ICdub3QtZW5vdWdoLWNyZWRpdHMtdG8tY29tcGxldGUnIHwgdHJhbnNsYXRlIH19XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdFx0PC9uZy10ZW1wbGF0ZT5cblxuXHRcdFx0XHRcdFx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cIihsb2FkaW5nJCB8IGFzeW5jKSBhcyBsb2FkXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJtdC0yXCIgKm5nSWY9XCJsb2FkXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGFwcC1sb2FkaW5nLWlubGluZS1lYz48L2FwcC1sb2FkaW5nLWlubGluZS1lYz5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cblx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fSBAZWxzZSB7XG5cdFx0XHRcdFx0XHRcdDxhcHAtbG9hZGluZy1pbmxpbmUtZWM+PC9hcHAtbG9hZGluZy1pbmxpbmUtZWM+XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHQ8L2Rpdj5cblx0XHRcdDwvZGl2PlxuXHRcdFx0PGRpdiBjbGFzcz1cInJvdyBkLWZsZXggZmxleC1yb3dcIj5cblx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbC0xMiBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cblx0XHRcdFx0XHQ8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IHRleHQtd2hpdGVcIiAoY2xpY2spPVwiZ29CYWNrKClcIj57eydiYWNrJ3x0cmFuc2xhdGV9fTwvYnV0dG9uPlxuXHRcdFx0XHQ8L2Rpdj5cblx0XHRcdDwvZGl2PlxuXHRcdDwvZGl2PlxuXHQ8L2Rpdj5cbjwvZGl2PlxufVxuIl19
@@ -45,11 +45,12 @@ export class SuccessEcComponent {
45
45
  * @returns el bloque si lo encontro.
46
46
  */
47
47
  containsBlock(codeBlock) { return this.blocks.find((block) => block.code == codeBlock); }
48
+ isBalanceInAccount = (code) => code && code.toLocaleLowerCase().includes('balance_in_account');
48
49
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SuccessEcComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
49
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SuccessEcComponent, isStandalone: true, selector: "app-order-success-ec", ngImport: i0, template: "<div id=\"container \" class=\"flex-center generalContainer container-xl py-5\">\n\t@if(payments && payments[0].method.code){\n\t<div class=\"Main card my-2\">\n\t\t@if(this.blocks && this.blocks.length > 0){ \n\t\t\t@if(containsBlock(this.payments[0].method.code); as bloque) {\n\t\t\t\t<div class=\"wrap my-4 card-body\" [id]=\"bloque.code\">\n\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t<div class=\"col-md-12 col-12\">\n\t\t\t\t\t\t\t<h5 [class]=\"bloque.code+'-title'\">{{ (bloque?.translations[locale]?.name ?\n\t\t\t\t\t\t\t\tbloque.translations[locale].name :\n\t\t\t\t\t\t\t\t'thanks-for-buying') | translate\n\t\t\t\t\t\t\t\t| uppercase }}</h5>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t<div class=\"col-md-12 col-12 text-start\">\n\t\t\t\t\t\t\t<app-blocks-ec [section]=\"'info_metodo_pago'\" [blockFilters]=\"payments[0].method.code\">\n\t\t\t\t\t\t\t</app-blocks-ec>\n\t\t\t\t\t\t\t<div class=\"d-flex flex-column details\">\n\t\t\t\t\t\t\t\t<p class=\"card-text\">{{ ('number' | translate) + ': ' + params.external_reference }}</p>\n\t\t\t\t\t\t\t\t<p class=\"card-text\">{{((params.payment_status || 'pending') | translate)}}</p>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t}@else {\n\t\t\t\t<ng-container *ngTemplateOutlet=\"notInfoToMethodTemplate ? notInfoToMethodTemplate : notInfoToMethod; context: { $implicit: params }\"></ng-container>\n\t\t\t}\n\t\t} @else{\n\t\t\t<ng-container *ngTemplateOutlet=\"notInfoToMethodTemplate ? notInfoToMethodTemplate : notInfoToMethod; context: { $implicit: params }\"></ng-container>\n\t}\n\t</div>\n\t} @else {\n\t\t<app-loading-full-ec></app-loading-full-ec>\t\n\t}\n</div>\n\n<ng-template #notInfoToMethod let-params>\n\n\t<div class=\"wrap my-4 card-body\">\n\t\t<div class=\"row\">\n\t\t\t<div class=\"col-md-12 col-12\">\n\t\t\t\t<h5 class=\"card-title titpage center-block text-center\">\n\t\t\t\t\t{{ 'thanks-for-buying' | translate | uppercase }}\n\t\t\t\t</h5>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class=\"row\">\n\t\t\t<div class=\"col-md-12 col-12 text-center py-3\">\n\t\t\t\t<h4 class=\"thanks-details\">{{ 'thanks-details' | translate }}</h4>\n\t\t\t\t<h5 class=\"number\">{{ ('number' | translate) + ': ' + params.external_reference }}</h5>\n\t\t\t\t<h5 class=\"pending\">{{ ((params.payment_status || 'pending') | translate) }}</h5>\n\t\t\t\t<!-- <h5 *ngIf=\"!from_mp\">{{ ('will_contact' | translate) }}</h5> -->\n\n\t\t\t\t<!-- <a routerLink=\"/collection\"><button class=\"comprar\">{{ 'continue-shopping' | translate }}</button></a> -->\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</ng-template>", styles: [""], dependencies: [{ kind: "component", type: BlocksEcComponent, selector: "app-blocks-ec", inputs: ["templates", "show_loading", "section", "blockFilters"] }, { kind: "component", type: LoadingFullEcComponent, selector: "app-loading-full-ec" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "pipe", type: UpperCasePipe, name: "uppercase" }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
50
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SuccessEcComponent, isStandalone: true, selector: "app-order-success-ec", ngImport: i0, template: "<div id=\"container \" class=\"flex-center generalContainer container-xl py-5\">\n\t@if(payments && payments[0].method.code){\n\t<div class=\"Main card my-2\">\n\t\t@if(this.blocks && this.blocks.length > 0){ \n\t\t\t@if(containsBlock(this.payments[0].method.code); as bloque) {\n\t\t\t\t<div class=\"wrap my-4 card-body\" [id]=\"bloque.code\">\n\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t<div class=\"col-md-12 col-12\">\n\t\t\t\t\t\t\t<h5 [class]=\"bloque.code+'-title'\">{{ (bloque?.translations[locale]?.name ?\n\t\t\t\t\t\t\t\tbloque.translations[locale].name :\n\t\t\t\t\t\t\t\t'thanks-for-buying') | translate\n\t\t\t\t\t\t\t\t| uppercase }}</h5>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t<div class=\"col-md-12 col-12 text-start\">\n\t\t\t\t\t\t\t\t\t<app-blocks-ec [section]=\"'info_metodo_pago'\" [blockFilters]=\"payments[0].method.code\">\n\t\t\t\t\t\t\t\t\t</app-blocks-ec>\n\t\t\t\t\t\t\t\t\t<div class=\"d-flex flex-column details\">\n\t\t\t\t\t\t\t\t\t\t<p class=\"card-text\">{{ ('number' | translate) + ': ' + params.external_reference }}</p>\n\t\t\t\t\t\t\t\t\t\t<p class=\"card-text\">\n\t\t\t\t\t\t\t\t\t\t\t{{ isBalanceInAccount(payments[0].method.code)\n\t\t\t\t\t\t\t\t\t\t\t\t? ('balance-in-account-message' | translate)\n\t\t\t\t\t\t\t\t\t\t\t\t: ((params.payment_status || 'pending') | translate) }}\n\t\t\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t}@else {\n\t\t\t\t<ng-container *ngTemplateOutlet=\"notInfoToMethodTemplate ? notInfoToMethodTemplate : notInfoToMethod; context: { $implicit: params }\"></ng-container>\n\t\t\t}\n\t\t} @else{\n\t\t\t<ng-container *ngTemplateOutlet=\"notInfoToMethodTemplate ? notInfoToMethodTemplate : notInfoToMethod; context: { $implicit: params }\"></ng-container>\n\t}\n\t</div>\n\t} @else {\n\t\t<app-loading-full-ec></app-loading-full-ec>\t\n\t}\n</div>\n\n<ng-template #notInfoToMethod let-params>\n\n\t<div class=\"wrap my-4 card-body\">\n\t\t<div class=\"row\">\n\t\t\t<div class=\"col-md-12 col-12\">\n\t\t\t\t<h5 class=\"card-title titpage center-block text-center\">\n\t\t\t\t\t{{ 'thanks-for-buying' | translate | uppercase }}\n\t\t\t\t</h5>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class=\"row\">\n\t\t\t<div class=\"col-md-12 col-12 text-center py-3\">\n\t\t\t\t<h4 class=\"thanks-details\">{{ 'thanks-details' | translate }}</h4>\n\t\t\t\t<h5 class=\"number\">{{ ('number' | translate) + ': ' + params.external_reference }}</h5>\n\t\t\t\t<h5 class=\"pending\">\n\t\t\t\t\t{{ payments && payments[0]?.method?.code && isBalanceInAccount(payments[0].method.code)\n\t\t\t\t\t\t? ('balance-in-account-message' | translate)\n\t\t\t\t\t\t: ((params.payment_status || 'pending') | translate) }}\n\t\t\t\t</h5>\n\t\t\t\t<!-- <h5 *ngIf=\"!from_mp\">{{ ('will_contact' | translate) }}</h5> -->\n\n\t\t\t\t<!-- <a routerLink=\"/collection\"><button class=\"comprar\">{{ 'continue-shopping' | translate }}</button></a> -->\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</ng-template>", styles: [""], dependencies: [{ kind: "component", type: BlocksEcComponent, selector: "app-blocks-ec", inputs: ["templates", "show_loading", "section", "blockFilters"] }, { kind: "component", type: LoadingFullEcComponent, selector: "app-loading-full-ec" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "pipe", type: UpperCasePipe, name: "uppercase" }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
50
51
  }
51
52
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SuccessEcComponent, decorators: [{
52
53
  type: Component,
53
- args: [{ selector: 'app-order-success-ec', standalone: true, imports: [BlocksEcComponent, LoadingFullEcComponent, TranslateModule, UpperCasePipe, CommonModule], template: "<div id=\"container \" class=\"flex-center generalContainer container-xl py-5\">\n\t@if(payments && payments[0].method.code){\n\t<div class=\"Main card my-2\">\n\t\t@if(this.blocks && this.blocks.length > 0){ \n\t\t\t@if(containsBlock(this.payments[0].method.code); as bloque) {\n\t\t\t\t<div class=\"wrap my-4 card-body\" [id]=\"bloque.code\">\n\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t<div class=\"col-md-12 col-12\">\n\t\t\t\t\t\t\t<h5 [class]=\"bloque.code+'-title'\">{{ (bloque?.translations[locale]?.name ?\n\t\t\t\t\t\t\t\tbloque.translations[locale].name :\n\t\t\t\t\t\t\t\t'thanks-for-buying') | translate\n\t\t\t\t\t\t\t\t| uppercase }}</h5>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t<div class=\"col-md-12 col-12 text-start\">\n\t\t\t\t\t\t\t<app-blocks-ec [section]=\"'info_metodo_pago'\" [blockFilters]=\"payments[0].method.code\">\n\t\t\t\t\t\t\t</app-blocks-ec>\n\t\t\t\t\t\t\t<div class=\"d-flex flex-column details\">\n\t\t\t\t\t\t\t\t<p class=\"card-text\">{{ ('number' | translate) + ': ' + params.external_reference }}</p>\n\t\t\t\t\t\t\t\t<p class=\"card-text\">{{((params.payment_status || 'pending') | translate)}}</p>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t}@else {\n\t\t\t\t<ng-container *ngTemplateOutlet=\"notInfoToMethodTemplate ? notInfoToMethodTemplate : notInfoToMethod; context: { $implicit: params }\"></ng-container>\n\t\t\t}\n\t\t} @else{\n\t\t\t<ng-container *ngTemplateOutlet=\"notInfoToMethodTemplate ? notInfoToMethodTemplate : notInfoToMethod; context: { $implicit: params }\"></ng-container>\n\t}\n\t</div>\n\t} @else {\n\t\t<app-loading-full-ec></app-loading-full-ec>\t\n\t}\n</div>\n\n<ng-template #notInfoToMethod let-params>\n\n\t<div class=\"wrap my-4 card-body\">\n\t\t<div class=\"row\">\n\t\t\t<div class=\"col-md-12 col-12\">\n\t\t\t\t<h5 class=\"card-title titpage center-block text-center\">\n\t\t\t\t\t{{ 'thanks-for-buying' | translate | uppercase }}\n\t\t\t\t</h5>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class=\"row\">\n\t\t\t<div class=\"col-md-12 col-12 text-center py-3\">\n\t\t\t\t<h4 class=\"thanks-details\">{{ 'thanks-details' | translate }}</h4>\n\t\t\t\t<h5 class=\"number\">{{ ('number' | translate) + ': ' + params.external_reference }}</h5>\n\t\t\t\t<h5 class=\"pending\">{{ ((params.payment_status || 'pending') | translate) }}</h5>\n\t\t\t\t<!-- <h5 *ngIf=\"!from_mp\">{{ ('will_contact' | translate) }}</h5> -->\n\n\t\t\t\t<!-- <a routerLink=\"/collection\"><button class=\"comprar\">{{ 'continue-shopping' | translate }}</button></a> -->\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</ng-template>" }]
54
+ args: [{ selector: 'app-order-success-ec', standalone: true, imports: [BlocksEcComponent, LoadingFullEcComponent, TranslateModule, UpperCasePipe, CommonModule], template: "<div id=\"container \" class=\"flex-center generalContainer container-xl py-5\">\n\t@if(payments && payments[0].method.code){\n\t<div class=\"Main card my-2\">\n\t\t@if(this.blocks && this.blocks.length > 0){ \n\t\t\t@if(containsBlock(this.payments[0].method.code); as bloque) {\n\t\t\t\t<div class=\"wrap my-4 card-body\" [id]=\"bloque.code\">\n\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t<div class=\"col-md-12 col-12\">\n\t\t\t\t\t\t\t<h5 [class]=\"bloque.code+'-title'\">{{ (bloque?.translations[locale]?.name ?\n\t\t\t\t\t\t\t\tbloque.translations[locale].name :\n\t\t\t\t\t\t\t\t'thanks-for-buying') | translate\n\t\t\t\t\t\t\t\t| uppercase }}</h5>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t<div class=\"col-md-12 col-12 text-start\">\n\t\t\t\t\t\t\t\t\t<app-blocks-ec [section]=\"'info_metodo_pago'\" [blockFilters]=\"payments[0].method.code\">\n\t\t\t\t\t\t\t\t\t</app-blocks-ec>\n\t\t\t\t\t\t\t\t\t<div class=\"d-flex flex-column details\">\n\t\t\t\t\t\t\t\t\t\t<p class=\"card-text\">{{ ('number' | translate) + ': ' + params.external_reference }}</p>\n\t\t\t\t\t\t\t\t\t\t<p class=\"card-text\">\n\t\t\t\t\t\t\t\t\t\t\t{{ isBalanceInAccount(payments[0].method.code)\n\t\t\t\t\t\t\t\t\t\t\t\t? ('balance-in-account-message' | translate)\n\t\t\t\t\t\t\t\t\t\t\t\t: ((params.payment_status || 'pending') | translate) }}\n\t\t\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t}@else {\n\t\t\t\t<ng-container *ngTemplateOutlet=\"notInfoToMethodTemplate ? notInfoToMethodTemplate : notInfoToMethod; context: { $implicit: params }\"></ng-container>\n\t\t\t}\n\t\t} @else{\n\t\t\t<ng-container *ngTemplateOutlet=\"notInfoToMethodTemplate ? notInfoToMethodTemplate : notInfoToMethod; context: { $implicit: params }\"></ng-container>\n\t}\n\t</div>\n\t} @else {\n\t\t<app-loading-full-ec></app-loading-full-ec>\t\n\t}\n</div>\n\n<ng-template #notInfoToMethod let-params>\n\n\t<div class=\"wrap my-4 card-body\">\n\t\t<div class=\"row\">\n\t\t\t<div class=\"col-md-12 col-12\">\n\t\t\t\t<h5 class=\"card-title titpage center-block text-center\">\n\t\t\t\t\t{{ 'thanks-for-buying' | translate | uppercase }}\n\t\t\t\t</h5>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class=\"row\">\n\t\t\t<div class=\"col-md-12 col-12 text-center py-3\">\n\t\t\t\t<h4 class=\"thanks-details\">{{ 'thanks-details' | translate }}</h4>\n\t\t\t\t<h5 class=\"number\">{{ ('number' | translate) + ': ' + params.external_reference }}</h5>\n\t\t\t\t<h5 class=\"pending\">\n\t\t\t\t\t{{ payments && payments[0]?.method?.code && isBalanceInAccount(payments[0].method.code)\n\t\t\t\t\t\t? ('balance-in-account-message' | translate)\n\t\t\t\t\t\t: ((params.payment_status || 'pending') | translate) }}\n\t\t\t\t</h5>\n\t\t\t\t<!-- <h5 *ngIf=\"!from_mp\">{{ ('will_contact' | translate) }}</h5> -->\n\n\t\t\t\t<!-- <a routerLink=\"/collection\"><button class=\"comprar\">{{ 'continue-shopping' | translate }}</button></a> -->\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</ng-template>" }]
54
55
  }], ctorParameters: () => [] });
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VjY2Vzcy1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9jaGVja291dC1lYy9zdWNjZXNzLWVjL3N1Y2Nlc3MtZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvY2hlY2tvdXQtZWMvc3VjY2Vzcy1lYy9zdWNjZXNzLWVjLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUF1QixNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7O0FBVXpELE1BQU0sT0FBTyxrQkFBa0I7SUFDdEIsVUFBVSxHQUF3QixNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQTtJQUM3RCxZQUFZLEdBQWdCLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQTtJQUMvQyxPQUFPLEdBQVcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQ2hDLGVBQWUsR0FBbUIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFBO0lBQ3hELGdCQUFnQixHQUFvQixNQUFNLENBQUMsZUFBZSxDQUFDLENBQUE7SUFDM0QsY0FBYyxHQUFrQixNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7SUFHdkQsTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDO0lBRWhDLFlBQVksR0FBRyxFQUFFLENBQUM7SUFDbEIsTUFBTSxHQUFRLEVBQUUsQ0FBQztJQUNqQixPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQ2YsUUFBUSxDQUFNO0lBQ2QsTUFBTSxDQUFNO0lBRW5COztPQUVNO0lBQ0ksdUJBQXVCLEdBQTJCLElBQUksQ0FBQztJQUVqRSxnQkFBZ0IsQ0FBQztJQUVqQixRQUFRO1FBQ1AsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQzVCLEdBQUcsQ0FBQyxFQUFFO1lBQ0YsNENBQTRDO1lBQzVDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUc7Z0JBQ3hCLGtCQUFrQixFQUFFLEdBQUcsQ0FBQyxNQUFNO2FBQ2pDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQTtZQUNSLG9EQUFvRDtZQUNwRCxJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQTtRQUN2RCxDQUFDLENBQ0osQ0FBQztRQUVGLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLGtCQUFrQixDQUFDLENBQUE7UUFDakQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQTtJQUN0RSxDQUFDO0lBRUQ7Ozs7V0FJSTtJQUNKLGFBQWEsQ0FBQyxTQUFpQixJQUFTLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFTLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksU0FBUyxDQUFDLENBQUEsQ0FBQyxDQUFDO3dHQTdDN0Ysa0JBQWtCOzRGQUFsQixrQkFBa0IsZ0ZDakIvQixxbEZBMERjLDBERDNDSCxpQkFBaUIsNEhBQUUsc0JBQXNCLCtEQUFFLGVBQWUsdUZBQUUsYUFBYSxpREFBRSxZQUFZOzs0RkFFckYsa0JBQWtCO2tCQVA5QixTQUFTOytCQUNDLHNCQUFzQixjQUNwQixJQUFJLFdBR1AsQ0FBQyxpQkFBaUIsRUFBRSxzQkFBc0IsRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBPbkluaXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMb2FkaW5nRnVsbEVjQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vd2lkZ2V0cy1lYyc7XG5pbXBvcnQgeyBCbG9ja3NFY0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Jsb2Nrcy1lYyc7XG5pbXBvcnQgeyBBcGlDb25zdGFudHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBVcHBlckNhc2VQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEJsb2Nrc1NlcnZpY2UsIENhcnRTZXJ2aWNlLCBDaGVja291dFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9lYy1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICdhcHAtb3JkZXItc3VjY2Vzcy1lYycsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHRlbXBsYXRlVXJsOiAnLi9zdWNjZXNzLWVjLmNvbXBvbmVudC5odG1sJyxcblx0c3R5bGVVcmxzOiBbJy4vc3VjY2Vzcy1lYy5jb21wb25lbnQuc2NzcyddLFxuXHRpbXBvcnRzOiBbQmxvY2tzRWNDb21wb25lbnQsIExvYWRpbmdGdWxsRWNDb21wb25lbnQsIFRyYW5zbGF0ZU1vZHVsZSwgVXBwZXJDYXNlUGlwZSwgQ29tbW9uTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBTdWNjZXNzRWNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXHRwcml2YXRlIF9hcGlDb25zdHM6IEFwaUNvbnN0YW50c1NlcnZpY2UgPSBpbmplY3QoQXBpQ29uc3RhbnRzU2VydmljZSlcblx0cHJpdmF0ZSBfY2FydFNlcnZpY2U6IENhcnRTZXJ2aWNlID0gaW5qZWN0KENhcnRTZXJ2aWNlKVxuXHRwcml2YXRlIF9yb3V0ZXI6IFJvdXRlciA9IGluamVjdChSb3V0ZXIpXG5cdHByaXZhdGUgX2FjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSlcblx0cHJpdmF0ZSBfY2hlY2tvdXRTZXJ2aWNlOiBDaGVja291dFNlcnZpY2UgPSBpbmplY3QoQ2hlY2tvdXRTZXJ2aWNlKVxuXHRwcml2YXRlIF9ibG9ja3NTZXJ2aWNlOiBCbG9ja3NTZXJ2aWNlID0gaW5qZWN0KEJsb2Nrc1NlcnZpY2UpO1xuXG5cblx0cHVibGljIGxvY2FsZSA9IHRoaXMuX2FwaUNvbnN0cy5MT0NBTEU7XG5cblx0cHVibGljIG9yZGVyRGV0YWlscyA9IHt9O1xuXHRwdWJsaWMgcGFyYW1zOiBhbnkgPSB7fTtcblx0cHVibGljIGZyb21fbXAgPSB0cnVlO1xuXHRwdWJsaWMgcGF5bWVudHM6IGFueTtcblx0cHVibGljIGJsb2NrczogYW55O1xuXG5cdC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiB2YXJpYWJsZSBwYXJhIHJlY2liaXIgdW4gdGVtcGxhdGUgZW4gY2FzbyBkZSBxdWUgc2UgcXVpZXJhIGNhbWJpYXIgbGEgaW5mb3JtYWNpb24gcG9yIGRlZmVjdG8uXG4gICAgICovXG4gICAgcHVibGljIG5vdEluZm9Ub01ldGhvZFRlbXBsYXRlOlRlbXBsYXRlUmVmPGFueT4gfCBudWxsID0gbnVsbDtcblxuXHRjb25zdHJ1Y3RvcigpIHsgfVxuXG5cdG5nT25Jbml0KCkge1xuXHRcdHRoaXMuX2NoZWNrb3V0U2VydmljZS5vcmRlciQuc3Vic2NyaWJlKFxuICAgICAgICAgICAgcmVzID0+IHtcbiAgICAgICAgICAgICAgICAvL2NvbnNvbGUubG9nKCdMTyBRVUUgTExFR0EgRU4gT1JERU4nLCByZXMpO1xuICAgICAgICAgICAgICAgIHJlcz8ubnVtYmVyID8gdGhpcy5wYXJhbXMgPSB7XG4gICAgICAgICAgICAgICAgICAgIGV4dGVybmFsX3JlZmVyZW5jZTogcmVzLm51bWJlcixcbiAgICAgICAgICAgICAgICB9IDogbnVsbFxuICAgICAgICAgICAgICAgIC8vdGhpcy5wYXltZW50cyA9IFt7bWV0aG9kOntjb2RlOidiYW5rX3RyYW5zc2Zlcid9fV1cbiAgICAgICAgICAgICAgICB0aGlzLnBheW1lbnRzID0gcmVzPy5wYXltZW50cyA/IHJlcy5wYXltZW50cyA6IG51bGxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICk7XG4gICAgICAgIFxuICAgICAgICB0aGlzLl9ibG9ja3NTZXJ2aWNlLmdldEJsb2NrcygnaW5mb19tZXRvZG9fcGFnbycpXG4gICAgICAgIHRoaXMuX2Jsb2Nrc1NlcnZpY2UuYmxvY2tzJC5zdWJzY3JpYmUocmVzID0+IHRoaXMuYmxvY2tzID0gcmVzKVxuXHR9XG5cblx0LyoqXG5cdFx0ICogQGRlc2NyaXB0aW9uIENoZXF1ZWEgc2kgZXhpc3RlIHVuIGJsb3F1ZSByZWNpYmlkbyBwb3IgcGFyYW1ldHJvLlxuXHRcdCAqIEBwYXJhbSBjb2RlQmxvY2sgY29kaWdvIGRlbCBibG9xdWUuXG5cdFx0ICogQHJldHVybnMgZWwgYmxvcXVlIHNpIGxvIGVuY29udHJvLlxuXHRcdCAqL1xuXHRjb250YWluc0Jsb2NrKGNvZGVCbG9jazogc3RyaW5nKTogYW55IHsgcmV0dXJuIHRoaXMuYmxvY2tzLmZpbmQoKGJsb2NrOmFueSkgPT4gYmxvY2suY29kZSA9PSBjb2RlQmxvY2spIH1cblxufVxuIiwiPGRpdiBpZD1cImNvbnRhaW5lciBcIiBjbGFzcz1cImZsZXgtY2VudGVyIGdlbmVyYWxDb250YWluZXIgY29udGFpbmVyLXhsIHB5LTVcIj5cblx0QGlmKHBheW1lbnRzICYmIHBheW1lbnRzWzBdLm1ldGhvZC5jb2RlKXtcblx0PGRpdiBjbGFzcz1cIk1haW4gY2FyZCBteS0yXCI+XG5cdFx0QGlmKHRoaXMuYmxvY2tzICYmIHRoaXMuYmxvY2tzLmxlbmd0aCA+IDApeyBcblx0XHRcdEBpZihjb250YWluc0Jsb2NrKHRoaXMucGF5bWVudHNbMF0ubWV0aG9kLmNvZGUpOyBhcyBibG9xdWUpIHtcblx0XHRcdFx0PGRpdiBjbGFzcz1cIndyYXAgbXktNCBjYXJkLWJvZHlcIiBbaWRdPVwiYmxvcXVlLmNvZGVcIj5cblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwicm93XCI+XG5cdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGNvbC0xMlwiPlxuXHRcdFx0XHRcdFx0XHQ8aDUgW2NsYXNzXT1cImJsb3F1ZS5jb2RlKyctdGl0bGUnXCI+e3sgKGJsb3F1ZT8udHJhbnNsYXRpb25zW2xvY2FsZV0/Lm5hbWUgP1xuXHRcdFx0XHRcdFx0XHRcdGJsb3F1ZS50cmFuc2xhdGlvbnNbbG9jYWxlXS5uYW1lIDpcblx0XHRcdFx0XHRcdFx0XHQndGhhbmtzLWZvci1idXlpbmcnKSB8IHRyYW5zbGF0ZVxuXHRcdFx0XHRcdFx0XHRcdHwgdXBwZXJjYXNlIH19PC9oNT5cblx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJyb3dcIj5cblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgY29sLTEyIHRleHQtc3RhcnRcIj5cblx0XHRcdFx0XHRcdFx0PGFwcC1ibG9ja3MtZWMgW3NlY3Rpb25dPVwiJ2luZm9fbWV0b2RvX3BhZ28nXCIgW2Jsb2NrRmlsdGVyc109XCJwYXltZW50c1swXS5tZXRob2QuY29kZVwiPlxuXHRcdFx0XHRcdFx0XHQ8L2FwcC1ibG9ja3MtZWM+XG5cdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gZGV0YWlsc1wiPlxuXHRcdFx0XHRcdFx0XHRcdDxwIGNsYXNzPVwiY2FyZC10ZXh0XCI+e3sgKCdudW1iZXInIHwgdHJhbnNsYXRlKSArICc6ICcgKyBwYXJhbXMuZXh0ZXJuYWxfcmVmZXJlbmNlIH19PC9wPlxuXHRcdFx0XHRcdFx0XHRcdDxwIGNsYXNzPVwiY2FyZC10ZXh0XCI+e3soKHBhcmFtcy5wYXltZW50X3N0YXR1cyB8fCAncGVuZGluZycpIHwgdHJhbnNsYXRlKX19PC9wPlxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHQ8L2Rpdj5cblx0XHRcdH1AZWxzZSB7XG5cdFx0XHRcdDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJub3RJbmZvVG9NZXRob2RUZW1wbGF0ZSA/IG5vdEluZm9Ub01ldGhvZFRlbXBsYXRlIDogbm90SW5mb1RvTWV0aG9kOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogcGFyYW1zIH1cIj48L25nLWNvbnRhaW5lcj5cblx0XHRcdH1cblx0XHR9IEBlbHNle1xuXHRcdFx0PG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm5vdEluZm9Ub01ldGhvZFRlbXBsYXRlID8gbm90SW5mb1RvTWV0aG9kVGVtcGxhdGUgOiBub3RJbmZvVG9NZXRob2Q7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBwYXJhbXMgfVwiPjwvbmctY29udGFpbmVyPlxuXHR9XG5cdDwvZGl2PlxuXHR9IEBlbHNlIHtcblx0XHQ8YXBwLWxvYWRpbmctZnVsbC1lYz48L2FwcC1sb2FkaW5nLWZ1bGwtZWM+XHRcblx0fVxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjbm90SW5mb1RvTWV0aG9kIGxldC1wYXJhbXM+XG5cblx0PGRpdiBjbGFzcz1cIndyYXAgbXktNCBjYXJkLWJvZHlcIj5cblx0XHQ8ZGl2IGNsYXNzPVwicm93XCI+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGNvbC0xMlwiPlxuXHRcdFx0XHQ8aDUgY2xhc3M9XCJjYXJkLXRpdGxlIHRpdHBhZ2UgY2VudGVyLWJsb2NrIHRleHQtY2VudGVyXCI+XG5cdFx0XHRcdFx0e3sgJ3RoYW5rcy1mb3ItYnV5aW5nJyB8IHRyYW5zbGF0ZSB8IHVwcGVyY2FzZSB9fVxuXHRcdFx0XHQ8L2g1PlxuXHRcdFx0PC9kaXY+XG5cdFx0PC9kaXY+XG5cdFx0PGRpdiBjbGFzcz1cInJvd1wiPlxuXHRcdFx0PGRpdiBjbGFzcz1cImNvbC1tZC0xMiBjb2wtMTIgdGV4dC1jZW50ZXIgcHktM1wiPlxuXHRcdFx0XHQ8aDQgY2xhc3M9XCJ0aGFua3MtZGV0YWlsc1wiPnt7ICd0aGFua3MtZGV0YWlscycgfCB0cmFuc2xhdGUgfX08L2g0PlxuXHRcdFx0XHQ8aDUgY2xhc3M9XCJudW1iZXJcIj57eyAoJ251bWJlcicgfCB0cmFuc2xhdGUpICsgJzogJyArIHBhcmFtcy5leHRlcm5hbF9yZWZlcmVuY2UgfX08L2g1PlxuXHRcdFx0XHQ8aDUgY2xhc3M9XCJwZW5kaW5nXCI+e3sgKChwYXJhbXMucGF5bWVudF9zdGF0dXMgfHwgJ3BlbmRpbmcnKSB8IHRyYW5zbGF0ZSkgfX08L2g1PlxuXHRcdFx0XHQ8IS0tIDxoNSAqbmdJZj1cIiFmcm9tX21wXCI+e3sgKCd3aWxsX2NvbnRhY3QnIHwgdHJhbnNsYXRlKSB9fTwvaDU+IC0tPlxuXG5cdFx0XHRcdDwhLS0gPGEgcm91dGVyTGluaz1cIi9jb2xsZWN0aW9uXCI+PGJ1dHRvbiBjbGFzcz1cImNvbXByYXJcIj57eyAnY29udGludWUtc2hvcHBpbmcnIHwgdHJhbnNsYXRlIH19PC9idXR0b24+PC9hPiAtLT5cblx0XHRcdDwvZGl2PlxuXHRcdDwvZGl2PlxuXHQ8L2Rpdj5cbjwvbmctdGVtcGxhdGU+Il19
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VjY2Vzcy1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9jaGVja291dC1lYy9zdWNjZXNzLWVjL3N1Y2Nlc3MtZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvY2hlY2tvdXQtZWMvc3VjY2Vzcy1lYy9zdWNjZXNzLWVjLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUF1QixNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7O0FBVXpELE1BQU0sT0FBTyxrQkFBa0I7SUFDdEIsVUFBVSxHQUF3QixNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQTtJQUM3RCxZQUFZLEdBQWdCLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQTtJQUMvQyxPQUFPLEdBQVcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQ2hDLGVBQWUsR0FBbUIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFBO0lBQ3hELGdCQUFnQixHQUFvQixNQUFNLENBQUMsZUFBZSxDQUFDLENBQUE7SUFDM0QsY0FBYyxHQUFrQixNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7SUFHdkQsTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDO0lBRWhDLFlBQVksR0FBRyxFQUFFLENBQUM7SUFDbEIsTUFBTSxHQUFRLEVBQUUsQ0FBQztJQUNqQixPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQ2YsUUFBUSxDQUFNO0lBQ2QsTUFBTSxDQUFNO0lBRW5COztPQUVNO0lBQ0ksdUJBQXVCLEdBQTJCLElBQUksQ0FBQztJQUVqRSxnQkFBZ0IsQ0FBQztJQUVqQixRQUFRO1FBQ1AsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQzVCLEdBQUcsQ0FBQyxFQUFFO1lBQ0YsNENBQTRDO1lBQzVDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUc7Z0JBQ3hCLGtCQUFrQixFQUFFLEdBQUcsQ0FBQyxNQUFNO2FBQ2pDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQTtZQUNSLG9EQUFvRDtZQUNwRCxJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQTtRQUN2RCxDQUFDLENBQ0osQ0FBQztRQUVGLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLGtCQUFrQixDQUFDLENBQUE7UUFDakQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQTtJQUN0RSxDQUFDO0lBRUQ7Ozs7V0FJSTtJQUNKLGFBQWEsQ0FBQyxTQUFpQixJQUFTLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFTLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksU0FBUyxDQUFDLENBQUEsQ0FBQyxDQUFDO0lBRXpHLGtCQUFrQixHQUFHLENBQUMsSUFBWSxFQUFFLEVBQUUsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUMsUUFBUSxDQUFDLG9CQUFvQixDQUFDLENBQUM7d0dBL0MzRixrQkFBa0I7NEZBQWxCLGtCQUFrQixnRkNqQi9CLDgrRkFrRWMsMEREbkRILGlCQUFpQiw0SEFBRSxzQkFBc0IsK0RBQUUsZUFBZSx1RkFBRSxhQUFhLGlEQUFFLFlBQVk7OzRGQUVyRixrQkFBa0I7a0JBUDlCLFNBQVM7K0JBQ0Msc0JBQXNCLGNBQ3BCLElBQUksV0FHUCxDQUFDLGlCQUFpQixFQUFFLHNCQUFzQixFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIE9uSW5pdCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExvYWRpbmdGdWxsRWNDb21wb25lbnQgfSBmcm9tICcuLi8uLi93aWRnZXRzLWVjJztcbmltcG9ydCB7IEJsb2Nrc0VjQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYmxvY2tzLWVjJztcbmltcG9ydCB7IEFwaUNvbnN0YW50c1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUsIFVwcGVyQ2FzZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQmxvY2tzU2VydmljZSwgQ2FydFNlcnZpY2UsIENoZWNrb3V0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2VjLXNlcnZpY2VzJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ2FwcC1vcmRlci1zdWNjZXNzLWVjJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGVVcmw6ICcuL3N1Y2Nlc3MtZWMuY29tcG9uZW50Lmh0bWwnLFxuXHRzdHlsZVVybHM6IFsnLi9zdWNjZXNzLWVjLmNvbXBvbmVudC5zY3NzJ10sXG5cdGltcG9ydHM6IFtCbG9ja3NFY0NvbXBvbmVudCwgTG9hZGluZ0Z1bGxFY0NvbXBvbmVudCwgVHJhbnNsYXRlTW9kdWxlLCBVcHBlckNhc2VQaXBlLCBDb21tb25Nb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIFN1Y2Nlc3NFY0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cdHByaXZhdGUgX2FwaUNvbnN0czogQXBpQ29uc3RhbnRzU2VydmljZSA9IGluamVjdChBcGlDb25zdGFudHNTZXJ2aWNlKVxuXHRwcml2YXRlIF9jYXJ0U2VydmljZTogQ2FydFNlcnZpY2UgPSBpbmplY3QoQ2FydFNlcnZpY2UpXG5cdHByaXZhdGUgX3JvdXRlcjogUm91dGVyID0gaW5qZWN0KFJvdXRlcilcblx0cHJpdmF0ZSBfYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKVxuXHRwcml2YXRlIF9jaGVja291dFNlcnZpY2U6IENoZWNrb3V0U2VydmljZSA9IGluamVjdChDaGVja291dFNlcnZpY2UpXG5cdHByaXZhdGUgX2Jsb2Nrc1NlcnZpY2U6IEJsb2Nrc1NlcnZpY2UgPSBpbmplY3QoQmxvY2tzU2VydmljZSk7XG5cblxuXHRwdWJsaWMgbG9jYWxlID0gdGhpcy5fYXBpQ29uc3RzLkxPQ0FMRTtcblxuXHRwdWJsaWMgb3JkZXJEZXRhaWxzID0ge307XG5cdHB1YmxpYyBwYXJhbXM6IGFueSA9IHt9O1xuXHRwdWJsaWMgZnJvbV9tcCA9IHRydWU7XG5cdHB1YmxpYyBwYXltZW50czogYW55O1xuXHRwdWJsaWMgYmxvY2tzOiBhbnk7XG5cblx0LyoqXG4gICAgICogQGRlc2NyaXB0aW9uIHZhcmlhYmxlIHBhcmEgcmVjaWJpciB1biB0ZW1wbGF0ZSBlbiBjYXNvIGRlIHF1ZSBzZSBxdWllcmEgY2FtYmlhciBsYSBpbmZvcm1hY2lvbiBwb3IgZGVmZWN0by5cbiAgICAgKi9cbiAgICBwdWJsaWMgbm90SW5mb1RvTWV0aG9kVGVtcGxhdGU6VGVtcGxhdGVSZWY8YW55PiB8IG51bGwgPSBudWxsO1xuXG5cdGNvbnN0cnVjdG9yKCkgeyB9XG5cblx0bmdPbkluaXQoKSB7XG5cdFx0dGhpcy5fY2hlY2tvdXRTZXJ2aWNlLm9yZGVyJC5zdWJzY3JpYmUoXG4gICAgICAgICAgICByZXMgPT4ge1xuICAgICAgICAgICAgICAgIC8vY29uc29sZS5sb2coJ0xPIFFVRSBMTEVHQSBFTiBPUkRFTicsIHJlcyk7XG4gICAgICAgICAgICAgICAgcmVzPy5udW1iZXIgPyB0aGlzLnBhcmFtcyA9IHtcbiAgICAgICAgICAgICAgICAgICAgZXh0ZXJuYWxfcmVmZXJlbmNlOiByZXMubnVtYmVyLFxuICAgICAgICAgICAgICAgIH0gOiBudWxsXG4gICAgICAgICAgICAgICAgLy90aGlzLnBheW1lbnRzID0gW3ttZXRob2Q6e2NvZGU6J2JhbmtfdHJhbnNzZmVyJ319XVxuICAgICAgICAgICAgICAgIHRoaXMucGF5bWVudHMgPSByZXM/LnBheW1lbnRzID8gcmVzLnBheW1lbnRzIDogbnVsbFxuICAgICAgICAgICAgfSxcbiAgICAgICAgKTtcbiAgICAgICAgXG4gICAgICAgIHRoaXMuX2Jsb2Nrc1NlcnZpY2UuZ2V0QmxvY2tzKCdpbmZvX21ldG9kb19wYWdvJylcbiAgICAgICAgdGhpcy5fYmxvY2tzU2VydmljZS5ibG9ja3MkLnN1YnNjcmliZShyZXMgPT4gdGhpcy5ibG9ja3MgPSByZXMpXG5cdH1cblxuXHQvKipcblx0XHQgKiBAZGVzY3JpcHRpb24gQ2hlcXVlYSBzaSBleGlzdGUgdW4gYmxvcXVlIHJlY2liaWRvIHBvciBwYXJhbWV0cm8uXG5cdFx0ICogQHBhcmFtIGNvZGVCbG9jayBjb2RpZ28gZGVsIGJsb3F1ZS5cblx0XHQgKiBAcmV0dXJucyBlbCBibG9xdWUgc2kgbG8gZW5jb250cm8uXG5cdFx0ICovXG5cdGNvbnRhaW5zQmxvY2soY29kZUJsb2NrOiBzdHJpbmcpOiBhbnkgeyByZXR1cm4gdGhpcy5ibG9ja3MuZmluZCgoYmxvY2s6YW55KSA9PiBibG9jay5jb2RlID09IGNvZGVCbG9jaykgfVxuXG5cdGlzQmFsYW5jZUluQWNjb3VudCA9IChjb2RlOiBzdHJpbmcpID0+IGNvZGUgJiYgY29kZS50b0xvY2FsZUxvd2VyQ2FzZSgpLmluY2x1ZGVzKCdiYWxhbmNlX2luX2FjY291bnQnKTtcbn1cbiIsIjxkaXYgaWQ9XCJjb250YWluZXIgXCIgY2xhc3M9XCJmbGV4LWNlbnRlciBnZW5lcmFsQ29udGFpbmVyIGNvbnRhaW5lci14bCBweS01XCI+XG5cdEBpZihwYXltZW50cyAmJiBwYXltZW50c1swXS5tZXRob2QuY29kZSl7XG5cdDxkaXYgY2xhc3M9XCJNYWluIGNhcmQgbXktMlwiPlxuXHRcdEBpZih0aGlzLmJsb2NrcyAmJiB0aGlzLmJsb2Nrcy5sZW5ndGggPiAwKXsgXG5cdFx0XHRAaWYoY29udGFpbnNCbG9jayh0aGlzLnBheW1lbnRzWzBdLm1ldGhvZC5jb2RlKTsgYXMgYmxvcXVlKSB7XG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJ3cmFwIG15LTQgY2FyZC1ib2R5XCIgW2lkXT1cImJsb3F1ZS5jb2RlXCI+XG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cInJvd1wiPlxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbC1tZC0xMiBjb2wtMTJcIj5cblx0XHRcdFx0XHRcdFx0PGg1IFtjbGFzc109XCJibG9xdWUuY29kZSsnLXRpdGxlJ1wiPnt7IChibG9xdWU/LnRyYW5zbGF0aW9uc1tsb2NhbGVdPy5uYW1lID9cblx0XHRcdFx0XHRcdFx0XHRibG9xdWUudHJhbnNsYXRpb25zW2xvY2FsZV0ubmFtZSA6XG5cdFx0XHRcdFx0XHRcdFx0J3RoYW5rcy1mb3ItYnV5aW5nJykgfCB0cmFuc2xhdGVcblx0XHRcdFx0XHRcdFx0XHR8IHVwcGVyY2FzZSB9fTwvaDU+XG5cdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwicm93XCI+XG5cdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGNvbC0xMiB0ZXh0LXN0YXJ0XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8YXBwLWJsb2Nrcy1lYyBbc2VjdGlvbl09XCInaW5mb19tZXRvZG9fcGFnbydcIiBbYmxvY2tGaWx0ZXJzXT1cInBheW1lbnRzWzBdLm1ldGhvZC5jb2RlXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8L2FwcC1ibG9ja3MtZWM+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGRldGFpbHNcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PHAgY2xhc3M9XCJjYXJkLXRleHRcIj57eyAoJ251bWJlcicgfCB0cmFuc2xhdGUpICsgJzogJyArIHBhcmFtcy5leHRlcm5hbF9yZWZlcmVuY2UgfX08L3A+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxwIGNsYXNzPVwiY2FyZC10ZXh0XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0e3sgaXNCYWxhbmNlSW5BY2NvdW50KHBheW1lbnRzWzBdLm1ldGhvZC5jb2RlKVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PyAoJ2JhbGFuY2UtaW4tYWNjb3VudC1tZXNzYWdlJyB8IHRyYW5zbGF0ZSlcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDogKChwYXJhbXMucGF5bWVudF9zdGF0dXMgfHwgJ3BlbmRpbmcnKSB8IHRyYW5zbGF0ZSkgfX1cblx0XHRcdFx0XHRcdFx0XHRcdFx0PC9wPlxuXHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0fUBlbHNlIHtcblx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm5vdEluZm9Ub01ldGhvZFRlbXBsYXRlID8gbm90SW5mb1RvTWV0aG9kVGVtcGxhdGUgOiBub3RJbmZvVG9NZXRob2Q7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBwYXJhbXMgfVwiPjwvbmctY29udGFpbmVyPlxuXHRcdFx0fVxuXHRcdH0gQGVsc2V7XG5cdFx0XHQ8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibm90SW5mb1RvTWV0aG9kVGVtcGxhdGUgPyBub3RJbmZvVG9NZXRob2RUZW1wbGF0ZSA6IG5vdEluZm9Ub01ldGhvZDsgY29udGV4dDogeyAkaW1wbGljaXQ6IHBhcmFtcyB9XCI+PC9uZy1jb250YWluZXI+XG5cdH1cblx0PC9kaXY+XG5cdH0gQGVsc2Uge1xuXHRcdDxhcHAtbG9hZGluZy1mdWxsLWVjPjwvYXBwLWxvYWRpbmctZnVsbC1lYz5cdFxuXHR9XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNub3RJbmZvVG9NZXRob2QgbGV0LXBhcmFtcz5cblxuXHQ8ZGl2IGNsYXNzPVwid3JhcCBteS00IGNhcmQtYm9keVwiPlxuXHRcdDxkaXYgY2xhc3M9XCJyb3dcIj5cblx0XHRcdDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgY29sLTEyXCI+XG5cdFx0XHRcdDxoNSBjbGFzcz1cImNhcmQtdGl0bGUgdGl0cGFnZSBjZW50ZXItYmxvY2sgdGV4dC1jZW50ZXJcIj5cblx0XHRcdFx0XHR7eyAndGhhbmtzLWZvci1idXlpbmcnIHwgdHJhbnNsYXRlIHwgdXBwZXJjYXNlIH19XG5cdFx0XHRcdDwvaDU+XG5cdFx0XHQ8L2Rpdj5cblx0XHQ8L2Rpdj5cblx0XHQ8ZGl2IGNsYXNzPVwicm93XCI+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGNvbC0xMiB0ZXh0LWNlbnRlciBweS0zXCI+XG5cdFx0XHRcdDxoNCBjbGFzcz1cInRoYW5rcy1kZXRhaWxzXCI+e3sgJ3RoYW5rcy1kZXRhaWxzJyB8IHRyYW5zbGF0ZSB9fTwvaDQ+XG5cdFx0XHRcdDxoNSBjbGFzcz1cIm51bWJlclwiPnt7ICgnbnVtYmVyJyB8IHRyYW5zbGF0ZSkgKyAnOiAnICsgcGFyYW1zLmV4dGVybmFsX3JlZmVyZW5jZSB9fTwvaDU+XG5cdFx0XHRcdDxoNSBjbGFzcz1cInBlbmRpbmdcIj5cblx0XHRcdFx0XHR7eyBwYXltZW50cyAmJiBwYXltZW50c1swXT8ubWV0aG9kPy5jb2RlICYmIGlzQmFsYW5jZUluQWNjb3VudChwYXltZW50c1swXS5tZXRob2QuY29kZSlcblx0XHRcdFx0XHRcdD8gKCdiYWxhbmNlLWluLWFjY291bnQtbWVzc2FnZScgfCB0cmFuc2xhdGUpXG5cdFx0XHRcdFx0XHQ6ICgocGFyYW1zLnBheW1lbnRfc3RhdHVzIHx8ICdwZW5kaW5nJykgfCB0cmFuc2xhdGUpIH19XG5cdFx0XHRcdDwvaDU+XG5cdFx0XHRcdDwhLS0gPGg1ICpuZ0lmPVwiIWZyb21fbXBcIj57eyAoJ3dpbGxfY29udGFjdCcgfCB0cmFuc2xhdGUpIH19PC9oNT4gLS0+XG5cblx0XHRcdFx0PCEtLSA8YSByb3V0ZXJMaW5rPVwiL2NvbGxlY3Rpb25cIj48YnV0dG9uIGNsYXNzPVwiY29tcHJhclwiPnt7ICdjb250aW51ZS1zaG9wcGluZycgfCB0cmFuc2xhdGUgfX08L2J1dHRvbj48L2E+IC0tPlxuXHRcdFx0PC9kaXY+XG5cdFx0PC9kaXY+XG5cdDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT4iXX0=