simpo-component-library 3.6.975 → 3.6.980

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.
@@ -56,6 +56,18 @@ export class VerifyComponent extends BaseSection {
56
56
  const orderId = localStorage.getItem("orderId");
57
57
  const appointmentPaymentId = localStorage.getItem("appointmentPaymentId");
58
58
  console.log('calling verify payment');
59
+ // Stripe redirects back with ?redirect_status=succeeded|processing|failed. When Stripe
60
+ // already reports a failure there is nothing to poll, so show the failed screen directly.
61
+ const stripeRedirectStatus = new URLSearchParams(window.location.search).get('redirect_status');
62
+ if (stripeRedirectStatus === 'failed') {
63
+ localStorage.removeItem("orderId");
64
+ localStorage.removeItem("paymentFor");
65
+ this.paymentStatus = 'FAILED';
66
+ setTimeout(() => {
67
+ this.router.navigate(['/']);
68
+ }, 3000);
69
+ return;
70
+ }
59
71
  if (passBookOrderId) {
60
72
  this.checkPassbookPaymentStatus();
61
73
  }
@@ -114,7 +126,9 @@ export class VerifyComponent extends BaseSection {
114
126
  // })
115
127
  }
116
128
  else {
117
- this.checkPaymentStatus();
129
+ // Stripe confirms the order asynchronously (webhook), so give the backend a moment
130
+ // between polls instead of firing all retries back-to-back.
131
+ setTimeout(() => this.checkPaymentStatus(), 1500);
118
132
  }
119
133
  });
120
134
  }
@@ -225,4 +239,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
225
239
  }], customClass: [{
226
240
  type: Input
227
241
  }] } });
228
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZ5LXBheW1lbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvdmVyaWZ5LXBheW1lbnQvdmVyaWZ5LXBheW1lbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvdmVyaWZ5LXBheW1lbnQvdmVyaWZ5LXBheW1lbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFPekQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRTlFLE9BQU8sV0FBVyxNQUFNLCtCQUErQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUNyRyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx5RUFBeUUsQ0FBQztBQUN0SCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7Ozs7Ozs7OztBQWtCOUUsTUFBTSxPQUFPLGVBQWdCLFNBQVEsV0FBVztJQWE5QyxZQUNtQixXQUF3QixFQUN4QixNQUFjLEVBQ2QsY0FBcUMsRUFDckMsY0FBOEIsRUFDOUIsYUFBNEI7UUFFN0MsS0FBSyxFQUFFLENBQUM7UUFOUyxnQkFBVyxHQUFYLFdB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R0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDOUIsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ1gsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksQ0FBQyw2QkFBNkIsRUFBRSxDQUFDO1lBQ3ZDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFDRCxXQUFXO1FBRVQsSUFBSSxNQUFNLENBQUMsVUFBVSxJQUFJLEdBQUc7WUFDMUIsT0FBTztRQUVULElBQUksQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pELFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDM0QsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ1YsQ0FBQzsrR0E1TVUsZUFBZTttR0FBZixlQUFlLHVNQUpmLENBQUMsY0FBYyxDQUFDLGlEQzlCN0IsK2tHQXlFQSx3K0JEakRJLFdBQVcsOEJBQ1gsWUFBWSxrSUFHWix3QkFBd0I7OzRGQU1mLGVBQWU7a0JBaEIzQixTQUFTOytCQUNFLHNCQUFzQixjQUNwQixJQUFJLFdBQ1A7d0JBQ1AsbUJBQW1CO3dCQUNuQixjQUFjO3dCQUNkLFdBQVc7d0JBQ1gsWUFBWTt3QkFDWixzQkFBc0I7d0JBQ3RCLDJCQUEyQjt3QkFDM0Isd0JBQXdCO3FCQUN6QixhQUNVLENBQUMsY0FBYyxDQUFDO2tNQU1sQixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcmVzdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgU3RvcmFnZVNlcnZpY2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvc3RvcmFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVmVyaWZ5UGF5bWVudENvbnRlbnRNb2RlbCwgVmVyaWZ5UGF5bWVudFNlY3Rpb25Nb2RhbCwgVmVyaWZ5UGF5bWVudFN0eWxlc01vZGVsIH0gZnJvbSAnLi92ZXJpZnktcGF5bWVudC5tb2RlbCc7XHJcbmltcG9ydCBTd2FsIGZyb20gJ3N3ZWV0YWxlcnQyJztcclxuaW1wb3J0IHsgVXNlciB9IGZyb20gJy4uLy4uL3N0eWxlcy91c2VyLm1vZGFsJztcclxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdwcmltZW5nL2FwaSc7XHJcbmltcG9ydCB7IFRvYXN0TW9kdWxlIH0gZnJvbSAncHJpbWVuZy90b2FzdCc7XHJcbmltcG9ydCB7IEJhY2tncm91bmREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvYmFja2dyb3VuZC1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBFdmVudHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZXZlbnRzLnNlcnZpY2UnO1xyXG5pbXBvcnQgQmFzZVNlY3Rpb24gZnJvbSAnLi4vLi4vLi4vc2VjdGlvbnMvQmFzZVNlY3Rpb24nO1xyXG5pbXBvcnQgeyBIb3ZlckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9ob3Zlci1lbGVtZW50LWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEhvdmVyRWxlbWVudHNDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2hvdmVyLWVsZW1lbnRzL2hvdmVyLWVsZW1lbnRzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERlbGV0ZUhvdmVyRWxlbWVudENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvZGVsZXRlLWhvdmVyLWVsZW1lbnQvZGVsZXRlLWhvdmVyLWVsZW1lbnQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NpbXBvLXZlcmlmeS1wYXltZW50JyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIEJhY2tncm91bmREaXJlY3RpdmUsXHJcbiAgICBIb3ZlckRpcmVjdGl2ZSxcclxuICAgIFRvYXN0TW9kdWxlLFxyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgSG92ZXJFbGVtZW50c0NvbXBvbmVudCxcclxuICAgIERlbGV0ZUhvdmVyRWxlbWVudENvbXBvbmVudCxcclxuICAgIE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZVxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbTWVzc2FnZVNlcnZpY2VdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi92ZXJpZnktcGF5bWVudC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3ZlcmlmeS1wYXltZW50LmNvbXBvbmVudC5jc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBWZXJpZnlDb21wb25lbnQgZXh0ZW5kcyBCYXNlU2VjdGlvbiBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIEBJbnB1dCgpIGRhdGE/OiBWZXJpZnlQYXltZW50U2VjdGlvbk1vZGFsO1xyXG4gIEBJbnB1dCgpIHJlc3BvbnNlRGF0YTogYW55O1xyXG4gIEBJbnB1dCgpIGVkaXQ/OiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGluZGV4PzogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIGRlbGV0ZT86IGJvb2xlYW47XHJcbiAgQElucHV0KCkgY3VzdG9tQ2xhc3M/OiBzdHJpbmc7XHJcbiAgc3R5bGVzPzogVmVyaWZ5UGF5bWVudFN0eWxlc01vZGVsO1xyXG4gIGNvbnRlbnQ/OiBWZXJpZnlQYXltZW50Q29udGVudE1vZGVsO1xyXG4gIHByaXZhdGUgdXNlckRldGFpbHM6IFVzZXIgfCBudWxsID0gbnVsbDtcclxuICBwYXltZW50U3RhdHVzOiAnU1VDQ0VTUycgfCAnRkFJTEVEJyB8ICdPTkdPSU5HJyA9ICdPTkdPSU5HJ1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVzdFNlcnZpY2U6IFJlc3RTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RvcmFnZVNlcnZpY2U6IFN0b3JhZ2VTZXJ2aWNlU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZXZlbnRTZXJ2aWNlOiBFdmVudHNTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGxvYWRpbmdUZXh0OiBzdHJpbmcgPSBcIlBsZWFzZSB3YWl0Li4uXCI7XHJcbiAgcHJpdmF0ZSBBUElfQ09VTlQ6IG51bWJlciA9IDA7XHJcbiAgcHJpdmF0ZSBNQVhfQVBJX0NPVU5UOiBudW1iZXIgPSAyMDtcclxuICBwcml2YXRlIFBBU1NCT09LX0FQSV9DT1VOVDogbnVtYmVyID0gMDtcclxuICBwcml2YXRlIEFQUE9JTlRNRU5UX0FQSV9DT1VOVDogbnVtYmVyID0gMDtcclxuICBwcml2YXRlIE1BWF9QQVNTQk9PS19BUElfQ09VTlQgPSAyMDtcclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNvbnRlbnQgPSB0aGlzLmRhdGE/LmNvbnRlbnQ7XHJcbiAgICB0aGlzLnN0eWxlcyA9IHRoaXMuZGF0YT8uc3R5bGVzO1xyXG5cclxuICAgIHRoaXMudXNlckRldGFpbHMgPSB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldFVzZXIoKSBhcyBVc2VyO1xyXG4gICAgaWYgKCF0aGlzLnVzZXJEZXRhaWxzICYmIChsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcIlJFUVVFU1RfRlJPTVwiKSA9PSBcIlVTRVJcIikpIHtcclxuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ2Vycm9yJywgc3VtbWFyeTogJ0Vycm9yJywgZGV0YWlsOiAnUGxlYXNlIGxvZ2luIHRvIGFjY2VzcyBwcm9maWxlJyB9KTtcclxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvJ10pO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGlmIChsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcIlJFUVVFU1RfRlJPTVwiKSA9PSBcIkVDT01NRVJDRVwiKVxyXG4gICAgLy8gICByZXR1cm47XHJcblxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMubG9hZGluZ1RleHQgPSAnVGhhbmtzIGZvciBjaG9vc2luZyB1cyc7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMubG9hZGluZ1RleHQgPSAnV2UgYXJlIHByb2Nlc3NpbmcgeW91ciBwYXltZW50cyc7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmdUZXh0ID0gJ0hvbGQgT24uLi4nO1xyXG4gICAgICAgIH0sIDMwMDApO1xyXG4gICAgICB9LCAzMDAwKTtcclxuICAgIH0sIDMwMDApO1xyXG5cclxuICAgIGNvbnN0IHBhc3NCb29rT3JkZXJJZCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwicGFzc2Jvb2tPcmRlcklkXCIpO1xyXG4gICAgY29uc3Qgb3JkZXJJZCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwib3JkZXJJZFwiKTtcclxuICAgIGNvbnN0IGFwcG9pbnRtZW50UGF5bWVudElkID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJhcHBvaW50bWVudFBheW1lbnRJZFwiKTtcclxuICAgIGNvbnNvbGUubG9nKCdjYWxsaW5nIHZlcmlmeSBwYXltZW50Jyk7XHJcbiAgICBpZiAocGFzc0Jvb2tPcmRlcklkKSB7XHJcbiAgICAgIHRoaXMuY2hlY2tQYXNzYm9va1BheW1lbnRTdGF0dXMoKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKG9yZGVySWQpIHtcclxuICAgICAgdGhpcy5jaGVja1BheW1lbnRTdGF0dXMoKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGFwcG9pbnRtZW50UGF5bWVudElkKSB7XHJcbiAgICAgIHRoaXMuY2hlY2tBcHBvaW50bWVudFBheW1lbnRTdGF0dXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldCBnZXRJbWFnZVVybCgpIHtcclxuICAgIHJldHVybiB0aGlzLmNvbnRlbnQ/LmltYWdlPy51cmw7XHJcbiAgfVxyXG4gIGdldCBpc01vYmlsZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB3aW5kb3cuaW5uZXJXaWR0aCA8IDQ3NTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjaGVja1BheW1lbnRTdGF0dXMoKSB7XHJcbiAgICBjb25zdCBwYXlsb2FkID0ge1xyXG4gICAgICBcIm9yZGVySWRcIjogbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJvcmRlcklkXCIpXHJcbiAgICB9XHJcbiAgICB0aGlzLkFQSV9DT1VOVCsrO1xyXG4gICAgdGhpcy5yZXN0U2VydmljZS5jaGVja1BheW1lbnRTdGF0dXMocGF5bG9hZCkuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShcIm9yZGVySWRcIik7XHJcbiAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKFwiY2FydElkXCIpO1xyXG4gICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShcInBheW1lbnRGb3JcIik7XHJcbiAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2UuY2xlYXJVc2VyQ2FydCgpO1xyXG4gICAgICB0aGlzLnBheW1lbnRTdGF0dXMgPSAnU1VDQ0VTUydcclxuXHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL3Byb2ZpbGUnXSk7XHJcbiAgICAgIH0sIDMwMDApO1xyXG4gICAgICAvLyBTd2FsLmZpcmUoe1xyXG4gICAgICAvLyAgIGljb246IFwic3VjY2Vzc1wiLFxyXG4gICAgICAvLyAgIHRpdGxlOiBcIkh1cnJheVwiLFxyXG4gICAgICAvLyAgIHRleHQ6IFwiT3JkZXIgcGxhY2VkIHN1Y2Nlc3NmdWxseVwiLFxyXG4gICAgICAvLyAgIGNvbmZpcm1CdXR0b25UZXh0OiBcIlNlZSBEZXRhaWxzXCJcclxuICAgICAgLy8gfSkudGhlbigocmVzcG9uc2UpID0+IHtcclxuICAgICAgLy8gICBpZiAocmVzcG9uc2UuaXNDb25maXJtZWQpIHtcclxuICAgICAgLy8gICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL3Byb2ZpbGUnXSk7XHJcbiAgICAgIC8vICAgfVxyXG4gICAgICAvLyB9KVxyXG4gICAgfSwgKGVycm9yKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLkFQSV9DT1VOVCA+PSB0aGlzLk1BWF9BUElfQ09VTlQpIHtcclxuICAgICAgICB0aGlzLnBheW1lbnRTdGF0dXMgPSAnRkFJTEVEJ1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvJ10pO1xyXG4gICAgICAgIH0sIDMwMDApO1xyXG4gICAgICAgIC8vIFN3YWwuZmlyZSh7XHJcbiAgICAgICAgLy8gICBpY29uOiBcImVycm9yXCIsXHJcbiAgICAgICAgLy8gICB0aXRsZTogXCJTb3JyeVwiLFxyXG4gICAgICAgIC8vICAgdGV4dDogXCJXZSBlbmNvdW50ZXJlZCBzb21lIGlzc3VlIHdoaWxlIHBsYWNpbmcgeW91ciBvcmRlclwiLFxyXG4gICAgICAgIC8vICAgY29uZmlybUJ1dHRvblRleHQ6IFwiR28gVG8gSG9tZVwiXHJcbiAgICAgICAgLy8gfSkudGhlbigocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAvLyAgIGlmIChyZXNwb25zZS5pc0NvbmZpcm1lZCkge1xyXG4gICAgICAgIC8vICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy8nXSk7XHJcbiAgICAgICAgLy8gICB9XHJcbiAgICAgICAgLy8gfSlcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmNoZWNrUGF5bWVudFN0YXR1cygpO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuICBwdWJsaWMgY2hlY2tQYXNzYm9va1BheW1lbnRTdGF0dXMoKSB7XHJcbiAgICBjb25zdCBvcmRlcklkID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJwYXNzYm9va09yZGVySWRcIilcclxuICAgIHRoaXMuUEFTU0JPT0tfQVBJX0NPVU5UKys7XHJcbiAgICB0aGlzLnJlc3RTZXJ2aWNlLmdldFBhc3Nib29rT3JkZXJTdGF0dXMob3JkZXJJZCkuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShcInBhc3Nib29rT3JkZXJJZFwiKTtcclxuICAgICAgdGhpcy5wYXltZW50U3RhdHVzID0gJ1NVQ0NFU1MnXHJcblxyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9wcm9maWxlJ10pO1xyXG4gICAgICB9LCAzMDAwKTtcclxuICAgICAgLy8gU3dhbC5maXJlKHtcclxuICAgICAgLy8gICBpY29uOiBcInN1Y2Nlc3NcIixcclxuICAgICAgLy8gICB0aXRsZTogXCJIdXJyYXlcIixcclxuICAgICAgLy8gICB0ZXh0OiBcIlBheW1lbnQgU3VjY2Vzc2Z1bFwiLFxyXG4gICAgICAvLyAgIGNvbmZpcm1CdXR0b25UZXh0OiBcIlNlZSBEZXRhaWxzXCJcclxuICAgICAgLy8gfSkudGhlbigocmVzcG9uc2UpID0+IHtcclxuICAgICAgLy8gICBpZiAocmVzcG9uc2UuaXNDb25maXJtZWQpIHtcclxuICAgICAgLy8gICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL3Byb2ZpbGUnXSwge3F1ZXJ5UGFyYW1zOiB7dGFiOiAnU2NoZW1lIFBhc3Nib29rJ319KTtcclxuICAgICAgLy8gICB9XHJcbiAgICAgIC8vIH0pXHJcblxyXG4gICAgfSwgKGVycm9yKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLlBBU1NCT09LX0FQSV9DT1VOVCA+PSB0aGlzLk1BWF9QQVNTQk9PS19BUElfQ09VTlQpIHtcclxuICAgICAgICAvLyBTd2FsLmZpcmUoe1xyXG4gICAgICAgIC8vICAgaWNvbjogXCJlcnJvclwiLFxyXG4gICAgICAgIC8vICAgdGl0bGU6IFwiU29ycnlcIixcclxuICAgICAgICAvLyAgIHRleHQ6IFwiV2UgZW5jb3VudGVyZWQgc29tZSBpc3N1ZSB3aGlsZSBwbGFjaW5nIHlvdXIgb3JkZXJcIixcclxuICAgICAgICAvLyAgIGNvbmZpcm1CdXR0b25UZXh0OiBcIkdvIFRvIEhvbWVcIlxyXG4gICAgICAgIC8vIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgLy8gICBpZiAocmVzcG9uc2UuaXNDb25maXJtZWQpIHtcclxuICAgICAgICAvLyAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvJ10pO1xyXG4gICAgICAgIC8vICAgfVxyXG4gICAgICAgIC8vIH0pXHJcbiAgICAgICAgdGhpcy5wYXltZW50U3RhdHVzID0gJ0ZBSUxFRCdcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnLyddKTtcclxuICAgICAgICB9LCAzMDAwKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmNoZWNrUGFzc2Jvb2tQYXltZW50U3RhdHVzKCk7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG4gIHB1YmxpYyBjaGVja0FwcG9pbnRtZW50UGF5bWVudFN0YXR1cygpIHtcclxuICAgIGNvbnN0IG9yZGVySWQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImFwcG9pbnRtZW50UGF5bWVudElkXCIpXHJcbiAgICB0aGlzLkFQUE9JTlRNRU5UX0FQSV9DT1VOVCsrO1xyXG4gICAgdGhpcy5yZXN0U2VydmljZS5nZXRBcHBvaW50bWVudFBheW1lbnRTdGF0dXMob3JkZXJJZCkuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShcImFwcG9pbnRtZW50UGF5bWVudElkXCIpO1xyXG4gICAgICB0aGlzLnBheW1lbnRTdGF0dXMgPSAnU1VDQ0VTUydcclxuXHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL3Byb2ZpbGUnXSk7XHJcbiAgICAgIH0sIDMwMDApO1xyXG5cclxuICAgIH0sIChlcnJvcikgPT4ge1xyXG4gICAgICBpZiAodGhpcy5BUFBPSU5UTUVOVF9BUElfQ09VTlQgPj0gdGhpcy5NQVhfQVBJX0NPVU5UKSB7XHJcbiAgICAgICAgLy8gU3dhbC5maXJlKHtcclxuICAgICAgICAvLyAgIGljb246IFwiZXJyb3JcIixcclxuICAgICAgICAvLyAgIHRpdGxlOiBcIlNvcnJ5XCIsXHJcbiAgICAgICAgLy8gICB0ZXh0OiBcIldlIGVuY291bnRlcmVkIHNvbWUgaXNzdWUgd2hpbGUgcGxhY2luZyB5b3VyIG9yZGVyXCIsXHJcbiAgICAgICAgLy8gICBjb25maXJtQnV0dG9uVGV4dDogXCJHbyBUbyBIb21lXCJcclxuICAgICAgICAvLyB9KS50aGVuKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIC8vICAgaWYgKHJlc3BvbnNlLmlzQ29uZmlybWVkKSB7XHJcbiAgICAgICAgLy8gICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnLyddKTtcclxuICAgICAgICAvLyAgIH1cclxuICAgICAgICAvLyB9KVxyXG4gICAgICAgIHRoaXMucGF5bWVudFN0YXR1cyA9ICdGQUlMRUQnXHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy8nXSk7XHJcbiAgICAgICAgfSwgMzAwMCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5jaGVja0FwcG9pbnRtZW50UGF5bWVudFN0YXR1cygpO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuICBlZGl0U2VjdGlvbigpIHtcclxuXHJcbiAgICBpZiAod2luZG93LmlubmVyV2lkdGggPD0gNDc1KVxyXG4gICAgICByZXR1cm47XHJcblxyXG4gICAgdGhpcy5fZXZlbnRTZXJ2aWNlLnRvZ2dsZUVkaXRvckV2ZW50LmVtaXQoZmFsc2UpO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuX2V2ZW50U2VydmljZS5lZGl0U2VjdGlvbi5lbWl0KHsgZGF0YTogdGhpcy5kYXRhIH0pO1xyXG4gICAgfSwgMTAwKTtcclxuICB9XHJcbn1cclxuIiwiPCEtLSA8cC10b2FzdCBwb3NpdGlvbj1cImJvdHRvbS1yaWdodFwiIFtiYXNlWkluZGV4XT1cIjEwMDAwMDAwMDAwXCIgW2F1dG9aSW5kZXhdPVwidHJ1ZVwiIFtzaG93VHJhbnNmb3JtT3B0aW9uc109XCJpc01vYmlsZSA/ICd0cmFuc2xhdGVZKC0xMDAlKScgOiAnJ1wiPjwvcC10b2FzdD5cclxuPHNlY3Rpb24gY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgdG90YWwtY29udGFpbmVyXCIgc3R5bGU9XCJoZWlnaHQ6IDEwMHZoO1wiIFtzaW1wb0JhY2tncm91bmRdPVwic3R5bGVzPy5iYWNrZ3JvdW5kXCIgc2ltcG9Ib3ZlciAoaG92ZXJpbmcpPVwic2hvd0VkaXRUYWJzKCRldmVudClcIiBbYXR0ci5zdHlsZV09XCJjdXN0b21DbGFzc1wiPlxyXG4gICAgPGltZyBsb2FkaW5nPVwibGF6eVwiIG9uZXJyb3I9XCJ0aGlzLnNyYz0naHR0cHM6Ly9pLnBvc3RpbWcuY2MvaFBTMkpwVjAvbm8taW1hZ2UtYXZhaWxhYmxlLmpwZydcIiAgIFtzcmNdPVwiZ2V0SW1hZ2VVcmxcIiBzdHlsZT1cImhlaWdodDogMjAwcHg7IHdpZHRoOiAyMDBweDtcIiBbYWx0XT1cImNvbnRlbnQ/LmltYWdlPy5hbHRUZXh0XCI+XHJcbiAgICA8c3BhbiBjbGFzcz1cImZvbnQtYm9sZFwiPnt7bG9hZGluZ1RleHR9fTwvc3Bhbj5cclxuXHJcbiAgICA8ZGl2IFtuZ0NsYXNzXT1cInsnaG92ZXJfZWZmZWN0JzogZWRpdH1cIiAqbmdJZj1cInNob3dFZGl0b3JzXCI+XHJcbiAgICAgIDxzaW1wby1ob3Zlci1lbGVtZW50cyBbZGF0YV09XCJkYXRhXCIgW2luZGV4XT1cImluZGV4XCIgW2VkaXRPcHRpb25zXT1cImVkaXRcIiBbaXNFY29tbWVyY2VdPVwidHJ1ZVwiPjwvc2ltcG8taG92ZXItZWxlbWVudHM+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgKm5nSWY9XCJzaG93RGVsZXRlXCIgW25nQ2xhc3NdPVwieydob3Zlcl9lZmZlY3QnOiBkZWxldGV9XCI+XHJcbiAgICAgIDxzaW1wby1kZWxldGUtaG92ZXItZWxlbWVudCBbZGF0YV09XCJkYXRhXCIgW2luZGV4XT1cImluZGV4XCI+PC9zaW1wby1kZWxldGUtaG92ZXItZWxlbWVudD5cclxuICA8L2Rpdj5cclxuPC9zZWN0aW9uPiAtLT5cclxuPHNlY3Rpb24gKm5nSWY9XCJwYXltZW50U3RhdHVzID09PSAnU1VDQ0VTUydcIiBjbGFzcz1cIm1haW5fc2VjdGlvblwiPlxyXG4gIDxkaXYgY2xhc3M9XCJpbWFnZV9zZWN0aW9uXCI+XHJcbiAgICA8aW1nIGFsdD1cImxvYWRlclwiIHNyYz1cImh0dHBzOi8vZDJ6OTQ5N3hwOHhiMTIuY2xvdWRmcm9udC5uZXQvcHJvZC1pbWFnZXMvNjg4OTk2YzE3NTU5MzQ5MDg1Mjc5NjIzNy1zdWNjZXNzLmdpZlwiPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJzdWNjZXNzX2hlYWRpbmcgaGVhZGluZ1wiPlxyXG4gICAgUGF5bWVudCBTdWNjZXNzZnVsbFxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJwYXltZW50X3N1Yl90ZXh0XCI+XHJcbiAgICBZb3VyIHBheW1lbnQgaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IHByb2Nlc3NlZC5cclxuICA8L2Rpdj5cclxuICA8IS0tIDxkaXYgY2xhc3M9XCJwbGFuX2Rlc2NyaXB0aW9uXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwidGl0bGVfdmFsdWVcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInBsYW5fdGl0bGVcIj5cclxuICAgICAgICBTdWJzY3JpYmVkIFBsYW5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJwbGFuX3ZhbHVlXCI+XHJcbiAgICAgICAge3sgcGxhbk5hbWUgfCB0aXRsZWNhc2UgfX1cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJ0aXRsZV92YWx1ZVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicGxhbl90aXRsZVwiPlxyXG4gICAgICAgIEFtb3VudCBQYWlkXHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicGxhbl92YWx1ZVwiPlxyXG4gICAgICAgIDxzcGFuPuKCuTwvc3Bhbj48c3Bhbj57eyBwbGFuQW1vdW50IH19PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInRpdGxlX3ZhbHVlXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJwbGFuX3RpdGxlXCI+XHJcbiAgICAgICAgVmFsaWQgdGlsbFxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInBsYW5fdmFsdWVcIj5cclxuICAgICAgICB7eyB2YWxpZGl0eSB8IGRhdGUgfX1cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj4gLS0+XHJcbjwvc2VjdGlvbj5cclxuPHNlY3Rpb24gKm5nSWY9XCJwYXltZW50U3RhdHVzID09PSAnRkFJTEVEJ1wiIGNsYXNzPVwibWFpbl9zZWN0aW9uXCI+XHJcbiAgPGRpdiBjbGFzcz1cImltYWdlX3NlY3Rpb25cIj5cclxuICAgIDxpbWcgYWx0PVwibG9hZGVyXCIgc3JjPVwiaHR0cHM6Ly9kMno5NDk3eHA4eGIxMi5jbG91ZGZyb250Lm5ldC9wcm9kLWltYWdlcy82NjM4NzhjMTc1NTkzNDkzMjU3M3BheW1lbnRmYWlsZWQuZ2lmXCI+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cInN1Y2Nlc3NfaGVhZGluZyBoZWFkaW5nXCI+XHJcbiAgICBQYXltZW50IEZhaWxlZFxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJwYXltZW50X3N1Yl90ZXh0XCI+XHJcbiAgICBVbmZvcnR1bmF0ZWx5IFBheW1lbnQgd2FzIHJlamVjdGVkXHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cInBheW1lbnRfbWluaW1hbF90ZXh0XCI+XHJcbiAgICBQYWdlIHdpbGwgYmUgYXV0b21hdGljYWxseSByZWRpcmVjdCB0byBob21lcGFnZVxyXG4gIDwvZGl2PlxyXG4gIDwhLS0gPGRpdiBjbGFzcz1cInBsYW5fZGVzY3JpcHRpb25cIj5cclxuICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiZG9uZSgpXCI+RG9uZTwvYnV0dG9uPlxyXG4gIDwvZGl2PiAtLT5cclxuPC9zZWN0aW9uPlxyXG5cclxuPHNlY3Rpb24gKm5nSWY9XCJwYXltZW50U3RhdHVzID09PSAnT05HT0lORydcIiBjbGFzcz1cIm1haW5fc2VjdGlvbiBzcGlubmVyXCI+XHJcbiAgPGRpdiBjbGFzcz1cInBheW1lbnQtb25nb2luZ1wiPlxyXG4gICAgPG1hdC1zcGlubmVyIHN0eWxlPVwid2lkdGg6IDEwMCU7XCI+PC9tYXQtc3Bpbm5lcj5cclxuICAgIDxwPnt7bG9hZGluZ1RleHR9fTwvcD5cclxuICA8L2Rpdj5cclxuPC9zZWN0aW9uPlxyXG4iXX0=
242
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZ5LXBheW1lbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvdmVyaWZ5LXBheW1lbnQvdmVyaWZ5LXBheW1lbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvdmVyaWZ5LXBheW1lbnQvdmVyaWZ5LXBheW1lbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFPekQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRTlFLE9BQU8sV0FBVyxNQUFNLCtCQUErQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUNyRyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx5RUFBeUUsQ0FBQztBQUN0SCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7Ozs7Ozs7OztBQWtCOUUsTUFBTSxPQUFPLGVBQWdCLFNBQVEsV0FBVztJQWE5QyxZQUNtQixXQUF3QixFQUN4QixNQUFjLEVBQ2QsY0FBcUMsRUFDckMsY0FBOEIsRUFDOUIsYUFBNEI7UUFFN0MsS0FBSyxFQUFFLENBQUM7UUFOUyxnQkFBVyxHQUFYLFdB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QUNWLENBQUM7K0dBNU5VLGVBQWU7bUdBQWYsZUFBZSx1TUFKZixDQUFDLGNBQWMsQ0FBQyxpREM5QjdCLCtrR0F5RUEsdytCRGpESSxXQUFXLDhCQUNYLFlBQVksa0lBR1osd0JBQXdCOzs0RkFNZixlQUFlO2tCQWhCM0IsU0FBUzsrQkFDRSxzQkFBc0IsY0FDcEIsSUFBSSxXQUNQO3dCQUNQLG1CQUFtQjt3QkFDbkIsY0FBYzt3QkFDZCxXQUFXO3dCQUNYLFlBQVk7d0JBQ1osc0JBQXNCO3dCQUN0QiwyQkFBMkI7d0JBQzNCLHdCQUF3QjtxQkFDekIsYUFDVSxDQUFDLGNBQWMsQ0FBQztrTUFNbEIsSUFBSTtzQkFBWixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSZXN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3Jlc3Quc2VydmljZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFN0b3JhZ2VTZXJ2aWNlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3N0b3JhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IFZlcmlmeVBheW1lbnRDb250ZW50TW9kZWwsIFZlcmlmeVBheW1lbnRTZWN0aW9uTW9kYWwsIFZlcmlmeVBheW1lbnRTdHlsZXNNb2RlbCB9IGZyb20gJy4vdmVyaWZ5LXBheW1lbnQubW9kZWwnO1xyXG5pbXBvcnQgU3dhbCBmcm9tICdzd2VldGFsZXJ0Mic7XHJcbmltcG9ydCB7IFVzZXIgfSBmcm9tICcuLi8uLi9zdHlsZXMvdXNlci5tb2RhbCc7XHJcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAncHJpbWVuZy9hcGknO1xyXG5pbXBvcnQgeyBUb2FzdE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdG9hc3QnO1xyXG5pbXBvcnQgeyBCYWNrZ3JvdW5kRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL2JhY2tncm91bmQtZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgRXZlbnRzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2V2ZW50cy5zZXJ2aWNlJztcclxuaW1wb3J0IEJhc2VTZWN0aW9uIGZyb20gJy4uLy4uLy4uL3NlY3Rpb25zL0Jhc2VTZWN0aW9uJztcclxuaW1wb3J0IHsgSG92ZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvaG92ZXItZWxlbWVudC1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBIb3ZlckVsZW1lbnRzQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9ob3Zlci1lbGVtZW50cy9ob3Zlci1lbGVtZW50cy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEZWxldGVIb3ZlckVsZW1lbnRDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2RlbGV0ZS1ob3Zlci1lbGVtZW50L2RlbGV0ZS1ob3Zlci1lbGVtZW50LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLXNwaW5uZXInO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzaW1wby12ZXJpZnktcGF5bWVudCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBCYWNrZ3JvdW5kRGlyZWN0aXZlLFxyXG4gICAgSG92ZXJEaXJlY3RpdmUsXHJcbiAgICBUb2FzdE1vZHVsZSxcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEhvdmVyRWxlbWVudHNDb21wb25lbnQsXHJcbiAgICBEZWxldGVIb3ZlckVsZW1lbnRDb21wb25lbnQsXHJcbiAgICBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGVcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW01lc3NhZ2VTZXJ2aWNlXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vdmVyaWZ5LXBheW1lbnQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi92ZXJpZnktcGF5bWVudC5jb21wb25lbnQuY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVmVyaWZ5Q29tcG9uZW50IGV4dGVuZHMgQmFzZVNlY3Rpb24gaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBASW5wdXQoKSBkYXRhPzogVmVyaWZ5UGF5bWVudFNlY3Rpb25Nb2RhbDtcclxuICBASW5wdXQoKSByZXNwb25zZURhdGE6IGFueTtcclxuICBASW5wdXQoKSBlZGl0PzogYm9vbGVhbjtcclxuICBASW5wdXQoKSBpbmRleD86IG51bWJlcjtcclxuICBASW5wdXQoKSBkZWxldGU/OiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGN1c3RvbUNsYXNzPzogc3RyaW5nO1xyXG4gIHN0eWxlcz86IFZlcmlmeVBheW1lbnRTdHlsZXNNb2RlbDtcclxuICBjb250ZW50PzogVmVyaWZ5UGF5bWVudENvbnRlbnRNb2RlbDtcclxuICBwcml2YXRlIHVzZXJEZXRhaWxzOiBVc2VyIHwgbnVsbCA9IG51bGw7XHJcbiAgcGF5bWVudFN0YXR1czogJ1NVQ0NFU1MnIHwgJ0ZBSUxFRCcgfCAnT05HT0lORycgPSAnT05HT0lORydcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlc3RTZXJ2aWNlOiBSZXN0U2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0b3JhZ2VTZXJ2aWNlOiBTdG9yYWdlU2VydmljZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2V2ZW50U2VydmljZTogRXZlbnRzU2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBsb2FkaW5nVGV4dDogc3RyaW5nID0gXCJQbGVhc2Ugd2FpdC4uLlwiO1xyXG4gIHByaXZhdGUgQVBJX0NPVU5UOiBudW1iZXIgPSAwO1xyXG4gIHByaXZhdGUgTUFYX0FQSV9DT1VOVDogbnVtYmVyID0gMjA7XHJcbiAgcHJpdmF0ZSBQQVNTQk9PS19BUElfQ09VTlQ6IG51bWJlciA9IDA7XHJcbiAgcHJpdmF0ZSBBUFBPSU5UTUVOVF9BUElfQ09VTlQ6IG51bWJlciA9IDA7XHJcbiAgcHJpdmF0ZSBNQVhfUEFTU0JPT0tfQVBJX0NPVU5UID0gMjA7XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jb250ZW50ID0gdGhpcy5kYXRhPy5jb250ZW50O1xyXG4gICAgdGhpcy5zdHlsZXMgPSB0aGlzLmRhdGE/LnN0eWxlcztcclxuXHJcbiAgICB0aGlzLnVzZXJEZXRhaWxzID0gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRVc2VyKCkgYXMgVXNlcjtcclxuICAgIGlmICghdGhpcy51c2VyRGV0YWlscyAmJiAobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJSRVFVRVNUX0ZST01cIikgPT0gXCJVU0VSXCIpKSB7XHJcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6ICdlcnJvcicsIHN1bW1hcnk6ICdFcnJvcicsIGRldGFpbDogJ1BsZWFzZSBsb2dpbiB0byBhY2Nlc3MgcHJvZmlsZScgfSk7XHJcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnLyddKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBpZiAobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJSRVFVRVNUX0ZST01cIikgPT0gXCJFQ09NTUVSQ0VcIilcclxuICAgIC8vICAgcmV0dXJuO1xyXG5cclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmxvYWRpbmdUZXh0ID0gJ1RoYW5rcyBmb3IgY2hvb3NpbmcgdXMnO1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLmxvYWRpbmdUZXh0ID0gJ1dlIGFyZSBwcm9jZXNzaW5nIHlvdXIgcGF5bWVudHMnO1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nVGV4dCA9ICdIb2xkIE9uLi4uJztcclxuICAgICAgICB9LCAzMDAwKTtcclxuICAgICAgfSwgMzAwMCk7XHJcbiAgICB9LCAzMDAwKTtcclxuXHJcbiAgICBjb25zdCBwYXNzQm9va09yZGVySWQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcInBhc3Nib29rT3JkZXJJZFwiKTtcclxuICAgIGNvbnN0IG9yZGVySWQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcIm9yZGVySWRcIik7XHJcbiAgICBjb25zdCBhcHBvaW50bWVudFBheW1lbnRJZCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiYXBwb2ludG1lbnRQYXltZW50SWRcIik7XHJcbiAgICBjb25zb2xlLmxvZygnY2FsbGluZyB2ZXJpZnkgcGF5bWVudCcpO1xyXG5cclxuICAgIC8vIFN0cmlwZSByZWRpcmVjdHMgYmFjayB3aXRoID9yZWRpcmVjdF9zdGF0dXM9c3VjY2VlZGVkfHByb2Nlc3Npbmd8ZmFpbGVkLiBXaGVuIFN0cmlwZVxyXG4gICAgLy8gYWxyZWFkeSByZXBvcnRzIGEgZmFpbHVyZSB0aGVyZSBpcyBub3RoaW5nIHRvIHBvbGwsIHNvIHNob3cgdGhlIGZhaWxlZCBzY3JlZW4gZGlyZWN0bHkuXHJcbiAgICBjb25zdCBzdHJpcGVSZWRpcmVjdFN0YXR1cyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCkuZ2V0KCdyZWRpcmVjdF9zdGF0dXMnKTtcclxuICAgIGlmIChzdHJpcGVSZWRpcmVjdFN0YXR1cyA9PT0gJ2ZhaWxlZCcpIHtcclxuICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oXCJvcmRlcklkXCIpO1xyXG4gICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShcInBheW1lbnRGb3JcIik7XHJcbiAgICAgIHRoaXMucGF5bWVudFN0YXR1cyA9ICdGQUlMRUQnO1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy8nXSk7XHJcbiAgICAgIH0sIDMwMDApO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHBhc3NCb29rT3JkZXJJZCkge1xyXG4gICAgICB0aGlzLmNoZWNrUGFzc2Jvb2tQYXltZW50U3RhdHVzKCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChvcmRlcklkKSB7XHJcbiAgICAgIHRoaXMuY2hlY2tQYXltZW50U3RhdHVzKCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChhcHBvaW50bWVudFBheW1lbnRJZCkge1xyXG4gICAgICB0aGlzLmNoZWNrQXBwb2ludG1lbnRQYXltZW50U3RhdHVzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgZ2V0SW1hZ2VVcmwoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jb250ZW50Py5pbWFnZT8udXJsO1xyXG4gIH1cclxuICBnZXQgaXNNb2JpbGUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gd2luZG93LmlubmVyV2lkdGggPCA0NzU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2hlY2tQYXltZW50U3RhdHVzKCkge1xyXG4gICAgY29uc3QgcGF5bG9hZCA9IHtcclxuICAgICAgXCJvcmRlcklkXCI6IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwib3JkZXJJZFwiKVxyXG4gICAgfVxyXG4gICAgdGhpcy5BUElfQ09VTlQrKztcclxuICAgIHRoaXMucmVzdFNlcnZpY2UuY2hlY2tQYXltZW50U3RhdHVzKHBheWxvYWQpLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcclxuICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oXCJvcmRlcklkXCIpO1xyXG4gICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShcImNhcnRJZFwiKTtcclxuICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oXCJwYXltZW50Rm9yXCIpO1xyXG4gICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmNsZWFyVXNlckNhcnQoKTtcclxuICAgICAgdGhpcy5wYXltZW50U3RhdHVzID0gJ1NVQ0NFU1MnXHJcblxyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9wcm9maWxlJ10pO1xyXG4gICAgICB9LCAzMDAwKTtcclxuICAgICAgLy8gU3dhbC5maXJlKHtcclxuICAgICAgLy8gICBpY29uOiBcInN1Y2Nlc3NcIixcclxuICAgICAgLy8gICB0aXRsZTogXCJIdXJyYXlcIixcclxuICAgICAgLy8gICB0ZXh0OiBcIk9yZGVyIHBsYWNlZCBzdWNjZXNzZnVsbHlcIixcclxuICAgICAgLy8gICBjb25maXJtQnV0dG9uVGV4dDogXCJTZWUgRGV0YWlsc1wiXHJcbiAgICAgIC8vIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIC8vICAgaWYgKHJlc3BvbnNlLmlzQ29uZmlybWVkKSB7XHJcbiAgICAgIC8vICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9wcm9maWxlJ10pO1xyXG4gICAgICAvLyAgIH1cclxuICAgICAgLy8gfSlcclxuICAgIH0sIChlcnJvcikgPT4ge1xyXG4gICAgICBpZiAodGhpcy5BUElfQ09VTlQgPj0gdGhpcy5NQVhfQVBJX0NPVU5UKSB7XHJcbiAgICAgICAgdGhpcy5wYXltZW50U3RhdHVzID0gJ0ZBSUxFRCdcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnLyddKTtcclxuICAgICAgICB9LCAzMDAwKTtcclxuICAgICAgICAvLyBTd2FsLmZpcmUoe1xyXG4gICAgICAgIC8vICAgaWNvbjogXCJlcnJvclwiLFxyXG4gICAgICAgIC8vICAgdGl0bGU6IFwiU29ycnlcIixcclxuICAgICAgICAvLyAgIHRleHQ6IFwiV2UgZW5jb3VudGVyZWQgc29tZSBpc3N1ZSB3aGlsZSBwbGFjaW5nIHlvdXIgb3JkZXJcIixcclxuICAgICAgICAvLyAgIGNvbmZpcm1CdXR0b25UZXh0OiBcIkdvIFRvIEhvbWVcIlxyXG4gICAgICAgIC8vIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgLy8gICBpZiAocmVzcG9uc2UuaXNDb25maXJtZWQpIHtcclxuICAgICAgICAvLyAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvJ10pO1xyXG4gICAgICAgIC8vICAgfVxyXG4gICAgICAgIC8vIH0pXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gU3RyaXBlIGNvbmZpcm1zIHRoZSBvcmRlciBhc3luY2hyb25vdXNseSAod2ViaG9vayksIHNvIGdpdmUgdGhlIGJhY2tlbmQgYSBtb21lbnRcclxuICAgICAgICAvLyBiZXR3ZWVuIHBvbGxzIGluc3RlYWQgb2YgZmlyaW5nIGFsbCByZXRyaWVzIGJhY2stdG8tYmFjay5cclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY2hlY2tQYXltZW50U3RhdHVzKCksIDE1MDApO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuICBwdWJsaWMgY2hlY2tQYXNzYm9va1BheW1lbnRTdGF0dXMoKSB7XHJcbiAgICBjb25zdCBvcmRlcklkID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJwYXNzYm9va09yZGVySWRcIilcclxuICAgIHRoaXMuUEFTU0JPT0tfQVBJX0NPVU5UKys7XHJcbiAgICB0aGlzLnJlc3RTZXJ2aWNlLmdldFBhc3Nib29rT3JkZXJTdGF0dXMob3JkZXJJZCkuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShcInBhc3Nib29rT3JkZXJJZFwiKTtcclxuICAgICAgdGhpcy5wYXltZW50U3RhdHVzID0gJ1NVQ0NFU1MnXHJcblxyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9wcm9maWxlJ10pO1xyXG4gICAgICB9LCAzMDAwKTtcclxuICAgICAgLy8gU3dhbC5maXJlKHtcclxuICAgICAgLy8gICBpY29uOiBcInN1Y2Nlc3NcIixcclxuICAgICAgLy8gICB0aXRsZTogXCJIdXJyYXlcIixcclxuICAgICAgLy8gICB0ZXh0OiBcIlBheW1lbnQgU3VjY2Vzc2Z1bFwiLFxyXG4gICAgICAvLyAgIGNvbmZpcm1CdXR0b25UZXh0OiBcIlNlZSBEZXRhaWxzXCJcclxuICAgICAgLy8gfSkudGhlbigocmVzcG9uc2UpID0+IHtcclxuICAgICAgLy8gICBpZiAocmVzcG9uc2UuaXNDb25maXJtZWQpIHtcclxuICAgICAgLy8gICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL3Byb2ZpbGUnXSwge3F1ZXJ5UGFyYW1zOiB7dGFiOiAnU2NoZW1lIFBhc3Nib29rJ319KTtcclxuICAgICAgLy8gICB9XHJcbiAgICAgIC8vIH0pXHJcblxyXG4gICAgfSwgKGVycm9yKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLlBBU1NCT09LX0FQSV9DT1VOVCA+PSB0aGlzLk1BWF9QQVNTQk9PS19BUElfQ09VTlQpIHtcclxuICAgICAgICAvLyBTd2FsLmZpcmUoe1xyXG4gICAgICAgIC8vICAgaWNvbjogXCJlcnJvclwiLFxyXG4gICAgICAgIC8vICAgdGl0bGU6IFwiU29ycnlcIixcclxuICAgICAgICAvLyAgIHRleHQ6IFwiV2UgZW5jb3VudGVyZWQgc29tZSBpc3N1ZSB3aGlsZSBwbGFjaW5nIHlvdXIgb3JkZXJcIixcclxuICAgICAgICAvLyAgIGNvbmZpcm1CdXR0b25UZXh0OiBcIkdvIFRvIEhvbWVcIlxyXG4gICAgICAgIC8vIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgLy8gICBpZiAocmVzcG9uc2UuaXNDb25maXJtZWQpIHtcclxuICAgICAgICAvLyAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvJ10pO1xyXG4gICAgICAgIC8vICAgfVxyXG4gICAgICAgIC8vIH0pXHJcbiAgICAgICAgdGhpcy5wYXltZW50U3RhdHVzID0gJ0ZBSUxFRCdcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnLyddKTtcclxuICAgICAgICB9LCAzMDAwKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmNoZWNrUGFzc2Jvb2tQYXltZW50U3RhdHVzKCk7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG4gIHB1YmxpYyBjaGVja0FwcG9pbnRtZW50UGF5bWVudFN0YXR1cygpIHtcclxuICAgIGNvbnN0IG9yZGVySWQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImFwcG9pbnRtZW50UGF5bWVudElkXCIpXHJcbiAgICB0aGlzLkFQUE9JTlRNRU5UX0FQSV9DT1VOVCsrO1xyXG4gICAgdGhpcy5yZXN0U2VydmljZS5nZXRBcHBvaW50bWVudFBheW1lbnRTdGF0dXMob3JkZXJJZCkuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShcImFwcG9pbnRtZW50UGF5bWVudElkXCIpO1xyXG4gICAgICB0aGlzLnBheW1lbnRTdGF0dXMgPSAnU1VDQ0VTUydcclxuXHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL3Byb2ZpbGUnXSk7XHJcbiAgICAgIH0sIDMwMDApO1xyXG5cclxuICAgIH0sIChlcnJvcikgPT4ge1xyXG4gICAgICBpZiAodGhpcy5BUFBPSU5UTUVOVF9BUElfQ09VTlQgPj0gdGhpcy5NQVhfQVBJX0NPVU5UKSB7XHJcbiAgICAgICAgLy8gU3dhbC5maXJlKHtcclxuICAgICAgICAvLyAgIGljb246IFwiZXJyb3JcIixcclxuICAgICAgICAvLyAgIHRpdGxlOiBcIlNvcnJ5XCIsXHJcbiAgICAgICAgLy8gICB0ZXh0OiBcIldlIGVuY291bnRlcmVkIHNvbWUgaXNzdWUgd2hpbGUgcGxhY2luZyB5b3VyIG9yZGVyXCIsXHJcbiAgICAgICAgLy8gICBjb25maXJtQnV0dG9uVGV4dDogXCJHbyBUbyBIb21lXCJcclxuICAgICAgICAvLyB9KS50aGVuKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIC8vICAgaWYgKHJlc3BvbnNlLmlzQ29uZmlybWVkKSB7XHJcbiAgICAgICAgLy8gICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnLyddKTtcclxuICAgICAgICAvLyAgIH1cclxuICAgICAgICAvLyB9KVxyXG4gICAgICAgIHRoaXMucGF5bWVudFN0YXR1cyA9ICdGQUlMRUQnXHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy8nXSk7XHJcbiAgICAgICAgfSwgMzAwMCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5jaGVja0FwcG9pbnRtZW50UGF5bWVudFN0YXR1cygpO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuICBlZGl0U2VjdGlvbigpIHtcclxuXHJcbiAgICBpZiAod2luZG93LmlubmVyV2lkdGggPD0gNDc1KVxyXG4gICAgICByZXR1cm47XHJcblxyXG4gICAgdGhpcy5fZXZlbnRTZXJ2aWNlLnRvZ2dsZUVkaXRvckV2ZW50LmVtaXQoZmFsc2UpO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuX2V2ZW50U2VydmljZS5lZGl0U2VjdGlvbi5lbWl0KHsgZGF0YTogdGhpcy5kYXRhIH0pO1xyXG4gICAgfSwgMTAwKTtcclxuICB9XHJcbn1cclxuIiwiPCEtLSA8cC10b2FzdCBwb3NpdGlvbj1cImJvdHRvbS1yaWdodFwiIFtiYXNlWkluZGV4XT1cIjEwMDAwMDAwMDAwXCIgW2F1dG9aSW5kZXhdPVwidHJ1ZVwiIFtzaG93VHJhbnNmb3JtT3B0aW9uc109XCJpc01vYmlsZSA/ICd0cmFuc2xhdGVZKC0xMDAlKScgOiAnJ1wiPjwvcC10b2FzdD5cclxuPHNlY3Rpb24gY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgdG90YWwtY29udGFpbmVyXCIgc3R5bGU9XCJoZWlnaHQ6IDEwMHZoO1wiIFtzaW1wb0JhY2tncm91bmRdPVwic3R5bGVzPy5iYWNrZ3JvdW5kXCIgc2ltcG9Ib3ZlciAoaG92ZXJpbmcpPVwic2hvd0VkaXRUYWJzKCRldmVudClcIiBbYXR0ci5zdHlsZV09XCJjdXN0b21DbGFzc1wiPlxyXG4gICAgPGltZyBsb2FkaW5nPVwibGF6eVwiIG9uZXJyb3I9XCJ0aGlzLnNyYz0naHR0cHM6Ly9pLnBvc3RpbWcuY2MvaFBTMkpwVjAvbm8taW1hZ2UtYXZhaWxhYmxlLmpwZydcIiAgIFtzcmNdPVwiZ2V0SW1hZ2VVcmxcIiBzdHlsZT1cImhlaWdodDogMjAwcHg7IHdpZHRoOiAyMDBweDtcIiBbYWx0XT1cImNvbnRlbnQ/LmltYWdlPy5hbHRUZXh0XCI+XHJcbiAgICA8c3BhbiBjbGFzcz1cImZvbnQtYm9sZFwiPnt7bG9hZGluZ1RleHR9fTwvc3Bhbj5cclxuXHJcbiAgICA8ZGl2IFtuZ0NsYXNzXT1cInsnaG92ZXJfZWZmZWN0JzogZWRpdH1cIiAqbmdJZj1cInNob3dFZGl0b3JzXCI+XHJcbiAgICAgIDxzaW1wby1ob3Zlci1lbGVtZW50cyBbZGF0YV09XCJkYXRhXCIgW2luZGV4XT1cImluZGV4XCIgW2VkaXRPcHRpb25zXT1cImVkaXRcIiBbaXNFY29tbWVyY2VdPVwidHJ1ZVwiPjwvc2ltcG8taG92ZXItZWxlbWVudHM+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgKm5nSWY9XCJzaG93RGVsZXRlXCIgW25nQ2xhc3NdPVwieydob3Zlcl9lZmZlY3QnOiBkZWxldGV9XCI+XHJcbiAgICAgIDxzaW1wby1kZWxldGUtaG92ZXItZWxlbWVudCBbZGF0YV09XCJkYXRhXCIgW2luZGV4XT1cImluZGV4XCI+PC9zaW1wby1kZWxldGUtaG92ZXItZWxlbWVudD5cclxuICA8L2Rpdj5cclxuPC9zZWN0aW9uPiAtLT5cclxuPHNlY3Rpb24gKm5nSWY9XCJwYXltZW50U3RhdHVzID09PSAnU1VDQ0VTUydcIiBjbGFzcz1cIm1haW5fc2VjdGlvblwiPlxyXG4gIDxkaXYgY2xhc3M9XCJpbWFnZV9zZWN0aW9uXCI+XHJcbiAgICA8aW1nIGFsdD1cImxvYWRlclwiIHNyYz1cImh0dHBzOi8vZDJ6OTQ5N3hwOHhiMTIuY2xvdWRmcm9udC5uZXQvcHJvZC1pbWFnZXMvNjg4OTk2YzE3NTU5MzQ5MDg1Mjc5NjIzNy1zdWNjZXNzLmdpZlwiPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJzdWNjZXNzX2hlYWRpbmcgaGVhZGluZ1wiPlxyXG4gICAgUGF5bWVudCBTdWNjZXNzZnVsbFxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJwYXltZW50X3N1Yl90ZXh0XCI+XHJcbiAgICBZb3VyIHBheW1lbnQgaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IHByb2Nlc3NlZC5cclxuICA8L2Rpdj5cclxuICA8IS0tIDxkaXYgY2xhc3M9XCJwbGFuX2Rlc2NyaXB0aW9uXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwidGl0bGVfdmFsdWVcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInBsYW5fdGl0bGVcIj5cclxuICAgICAgICBTdWJzY3JpYmVkIFBsYW5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJwbGFuX3ZhbHVlXCI+XHJcbiAgICAgICAge3sgcGxhbk5hbWUgfCB0aXRsZWNhc2UgfX1cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJ0aXRsZV92YWx1ZVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicGxhbl90aXRsZVwiPlxyXG4gICAgICAgIEFtb3VudCBQYWlkXHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicGxhbl92YWx1ZVwiPlxyXG4gICAgICAgIDxzcGFuPuKCuTwvc3Bhbj48c3Bhbj57eyBwbGFuQW1vdW50IH19PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInRpdGxlX3ZhbHVlXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJwbGFuX3RpdGxlXCI+XHJcbiAgICAgICAgVmFsaWQgdGlsbFxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInBsYW5fdmFsdWVcIj5cclxuICAgICAgICB7eyB2YWxpZGl0eSB8IGRhdGUgfX1cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj4gLS0+XHJcbjwvc2VjdGlvbj5cclxuPHNlY3Rpb24gKm5nSWY9XCJwYXltZW50U3RhdHVzID09PSAnRkFJTEVEJ1wiIGNsYXNzPVwibWFpbl9zZWN0aW9uXCI+XHJcbiAgPGRpdiBjbGFzcz1cImltYWdlX3NlY3Rpb25cIj5cclxuICAgIDxpbWcgYWx0PVwibG9hZGVyXCIgc3JjPVwiaHR0cHM6Ly9kMno5NDk3eHA4eGIxMi5jbG91ZGZyb250Lm5ldC9wcm9kLWltYWdlcy82NjM4NzhjMTc1NTkzNDkzMjU3M3BheW1lbnRmYWlsZWQuZ2lmXCI+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cInN1Y2Nlc3NfaGVhZGluZyBoZWFkaW5nXCI+XHJcbiAgICBQYXltZW50IEZhaWxlZFxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJwYXltZW50X3N1Yl90ZXh0XCI+XHJcbiAgICBVbmZvcnR1bmF0ZWx5IFBheW1lbnQgd2FzIHJlamVjdGVkXHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cInBheW1lbnRfbWluaW1hbF90ZXh0XCI+XHJcbiAgICBQYWdlIHdpbGwgYmUgYXV0b21hdGljYWxseSByZWRpcmVjdCB0byBob21lcGFnZVxyXG4gIDwvZGl2PlxyXG4gIDwhLS0gPGRpdiBjbGFzcz1cInBsYW5fZGVzY3JpcHRpb25cIj5cclxuICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiZG9uZSgpXCI+RG9uZTwvYnV0dG9uPlxyXG4gIDwvZGl2PiAtLT5cclxuPC9zZWN0aW9uPlxyXG5cclxuPHNlY3Rpb24gKm5nSWY9XCJwYXltZW50U3RhdHVzID09PSAnT05HT0lORydcIiBjbGFzcz1cIm1haW5fc2VjdGlvbiBzcGlubmVyXCI+XHJcbiAgPGRpdiBjbGFzcz1cInBheW1lbnQtb25nb2luZ1wiPlxyXG4gICAgPG1hdC1zcGlubmVyIHN0eWxlPVwid2lkdGg6IDEwMCU7XCI+PC9tYXQtc3Bpbm5lcj5cclxuICAgIDxwPnt7bG9hZGluZ1RleHR9fTwvcD5cclxuICA8L2Rpdj5cclxuPC9zZWN0aW9uPlxyXG4iXX0=
@@ -111,7 +111,7 @@ export class BlogListComponent extends BaseSection {
111
111
  }, 100);
112
112
  }
113
113
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BlogListComponent, deps: [{ token: i1.EventsService }, { token: i2.RestService }, { token: LOCAL_STORAGE }], target: i0.ɵɵFactoryTarget.Component }); }
114
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BlogListComponent, isStandalone: true, selector: "simpo-blog-list", inputs: { responseData: "responseData", index: "index", edit: "edit", customClass: "customClass", data: "data", nextComponentColor: "nextComponentColor" }, usesInheritance: true, ngImport: i0, template: "<section\r\n [id]=\"data?.id\"\r\n [simpoBackground]=\"style?.background\"\r\n class=\"total-container\"\r\n simpoHover\r\n (hovering)=\"showEditTabs($event)\"\r\n *ngIf=\"\r\n categoryList.length > 0 || (displayedBlogs?.length || 0) > 0 || apiLoading;\r\n else elseBlock\r\n \"\r\n [attr.style]=\"customClass\">\r\n <div\r\n [id]=\"data?.id\"\r\n [simpoOverlay]=\"style?.background\"\r\n [simpoBorder]=\"style?.border\"\r\n [simpoAnimation]=\"style?.animation\"\r\n [simpoLayout]=\"style?.layout\">\r\n <div class=\"container-fluid\" [spacingHorizontal]=\"stylesLayout\">\r\n <div class=\"blog-category-tabs\" *ngIf=\"categoryList.length > 0\">\r\n <span\r\n class=\"category-tab\"\r\n [class.active]=\"selectedCategoryId === null\"\r\n (click)=\"selectCategory(null)\"\r\n >All</span\r\n >\r\n <span\r\n class=\"category-tab\"\r\n *ngFor=\"let category of categoryList\"\r\n [class.active]=\"selectedCategoryId === category.id\"\r\n (click)=\"selectCategory(category.id)\">\r\n {{ category.categoryName }}\r\n </span>\r\n </div>\r\n <simpo-card-skeleton-loader\r\n *ngIf=\"apiLoading\"\r\n [showTitles]=\"true\"></simpo-card-skeleton-loader>\r\n <div\r\n class=\"no-blog-text-inline heading-medium\"\r\n *ngIf=\"!apiLoading && (displayedBlogs?.length || 0) === 0\">\r\n Sorry there are no blog posts in this category.\r\n </div>\r\n <div\r\n class=\"row gap-20\"\r\n *ngIf=\"!apiLoading && (displayedBlogs?.length || 0) > 0\">\r\n <div\r\n [simpoColumnDirective]=\"data?.styles?.size\"\r\n [id]=\"data?.id\"\r\n *ngFor=\"let content of displayedBlogs\"\r\n class=\"d-flex\">\r\n <a\r\n [routerLink]=\"['/blog', content.newPostTitle]\"\r\n (click)=\"getBlogById(content.articleSlug)\">\r\n <div\r\n class=\"cards h-100\"\r\n [simpoCorner]=\"style?.corners\"\r\n [id]=\"data?.id\">\r\n <img\r\n loading=\"lazy\"\r\n [src]=\"content.img\"\r\n [simpoImageDirective]=\"style?.image\"\r\n [id]=\"data?.id\"\r\n [simpoCorner]=\"style?.corners\"\r\n alt=\"\"\r\n *ngIf=\"content.img\"\r\n loading=\"lazy\" />\r\n <img\r\n loading=\"lazy\"\r\n [simpoImageDirective]=\"style?.image\"\r\n [id]=\"data?.id\"\r\n [simpoCorner]=\"style?.corners\"\r\n src=\"https://dev-beeos.s3.amazonaws.com/library-media/541329c1719236963199pexels-pixabay-262508.jpg\"\r\n alt=\"\"\r\n *ngIf=\"!content.img\"\r\n loading=\"lazy\" />\r\n <div class=\"p-30\">\r\n <div\r\n class=\"d-flex flex-wrap align-items-center gap-2 mb-2\"\r\n *ngIf=\"content?.tags?.length || content?.categoryName\">\r\n <p class=\"mb-0 p-2 border\" *ngIf=\"content?.categoryName\">\r\n {{ content.categoryName }}\r\n </p>\r\n <ng-container\r\n *ngFor=\"let tag of content?.tags | slice: 0 : 4\">\r\n <p class=\"mb-0 p-2 border\">{{ tag }}</p>\r\n </ng-container>\r\n </div>\r\n <div\r\n class=\"heading-medium title mt-2 fs-20\"\r\n *ngIf=\"blogContent?.display?.showHeading\">\r\n {{\r\n content.postTitle.length > 100\r\n ? content.postTitle.substring(0, 100) + '...\"'\r\n : content.postTitle\r\n }}\r\n <!-- {{content.postTitle}} -->\r\n </div>\r\n <ng-container>\r\n <div\r\n class=\"body-large mt-4 pb-15\"\r\n *ngIf=\"blogContent?.display?.showContent\">\r\n {{\r\n content.postSummary.length > 250\r\n ? content.postSummary.substring(0, 250) + '...'\r\n : content.postSummary\r\n }}\r\n </div>\r\n </ng-container>\r\n\r\n <div\r\n class=\"d-flex justify-content-end p-2 align-items-center\"\r\n *ngIf=\"\r\n content?.author?.content &&\r\n content?.author?.content.length > 0\r\n \">\r\n <p>- {{ content?.author?.content | titlecase }}</p>\r\n </div>\r\n\r\n <!-- <div class=\"authors\" [ngClass]=\"'justify-content-' + (style?.layout?.align || '')\">\r\n <div>\r\n <mat-icon>person</mat-icon> &nbsp;&nbsp;<span class=\"body-large\">{{content?.author?.content | titlecase}}</span>\r\n </div>\r\n <div class=\"calendar_today\">\r\n <mat-icon>calendar_today</mat-icon> &nbsp;&nbsp; <span class=\"body-large\">{{content.createdTimeStamp |\r\n date:'EEEE, MMM, d, y'}}</span>\r\n </div>\r\n </div>\r\n <div class=\"button heading-large\" (click)=\"getBlogById(content.newPostTitle)\" [ngClass]=\"'justify-content-' + (style?.layout?.align || '')\">\r\n Read More <mat-icon>arrow_right_alt</mat-icon>\r\n </div> -->\r\n </div>\r\n </div>\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"style?.devider?.display\">\r\n <simpo-svg-divider\r\n [dividerType]=\"style?.devider?.deviderType\"\r\n [color]=\"nextComponentColor?.color\"></simpo-svg-divider>\r\n </ng-container>\r\n <div [ngClass]=\"{ hover_effect: edit }\" *ngIf=\"showEditors\">\r\n <simpo-hover-elements\r\n [data]=\"data\"\r\n [index]=\"index\"\r\n [editOptions]=\"edit\"></simpo-hover-elements>\r\n </div>\r\n</section>\r\n<ng-template #elseBlock>\r\n <div class=\"no-blog-text heading-medium\">Sorry there are no blog posts.</div>\r\n</ng-template>\r\n", styles: [".cards{box-shadow:0 1px 3px #1018281a,0 1px 2px #1018280f}.cards img{width:100%;border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}.p-30{padding:10px 15px 0}.border{border:1px solid;border-radius:8px}.authors{display:flex;gap:35px;margin-top:40px}.authors div{display:flex}.authors .calendar_today{align-items:center}.authors .calendar_today mat-icon{font-size:20px}.button{font-size:15px;display:flex;align-items:center;gap:10px;cursor:pointer;font-family:interReg;font-weight:500;justify-content:end}.mt-20{margin-top:20px}.total-container{position:relative;height:auto}.hover_effect{position:absolute;width:100%;top:0;left:0;height:100%}.no-blog-text{font-size:24px;line-height:36px;height:40vh;display:flex;align-items:center;justify-content:center}.no-blog-text-inline{font-size:18px;padding:60px 0;text-align:center}.justify-content-right{justify-content:right}.h-100{height:100%}.gap-20{gap:20px 0px!important}.fs-20{font-size:20px!important}.pb-15{padding-bottom:15px}.ar-none{aspect-ratio:0!important}.blog-category-tabs{display:flex;flex-wrap:nowrap;align-items:center;gap:32px;overflow-x:auto;border-bottom:1px solid #e5e5e5;padding-bottom:14px;margin-bottom:24px;scrollbar-width:none}.blog-category-tabs::-webkit-scrollbar{display:none}.category-tab{flex-shrink:0;padding-bottom:4px;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#8a8a8a;white-space:nowrap;cursor:pointer;border-bottom:2px solid transparent}.category-tab:hover,.category-tab.active{color:#1a1a1a}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.SlicePipe, name: "slice" }, { kind: "pipe", type: i3.TitleCasePipe, name: "titlecase" }, { kind: "directive", type: AnimationDirective, selector: "[simpoAnimation]", inputs: ["simpoAnimation"] }, { kind: "directive", type: BorderDirective, selector: "[simpoBorder]", inputs: ["simpoBorder"] }, { kind: "directive", type: ContentFitDirective, selector: "[simpoLayout]", inputs: ["simpoLayout"] }, { kind: "directive", type: BackgroundDirective, selector: "[simpoBackground]", inputs: ["simpoBackground", "scrollValue"] }, { kind: "directive", type: ImageDirectiveDirective, selector: "[simpoImageDirective]", inputs: ["simpoImageDirective"] }, { kind: "directive", type: CornerDirective, selector: "[simpoCorner]", inputs: ["simpoCorner"] }, { kind: "directive", type: ColumnDirectiveDirective, selector: "[simpoColumnDirective]", inputs: ["simpoColumnDirective"] }, { kind: "directive", type: OverlayDirective, selector: "[simpoOverlay]", inputs: ["simpoOverlay"] }, { kind: "directive", type: HoverDirective, selector: "[simpoHover]", outputs: ["hovering"] }, { kind: "component", type: HoverElementsComponent, selector: "simpo-hover-elements", inputs: ["data", "index", "editOptions", "isMerged", "isEcommerce"], outputs: ["edit"] }, { kind: "component", type: SvgDividerComponent, selector: "simpo-svg-divider", inputs: ["dividerType", "color"] }, { kind: "directive", type: SpacingHorizontalDirective, selector: "[spacingHorizontal]", inputs: ["spacingHorizontal", "isHeader"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: CardSkeletonLoaderComponent, selector: "simpo-card-skeleton-loader", inputs: ["count", "showTitles"] }] }); }
114
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BlogListComponent, isStandalone: true, selector: "simpo-blog-list", inputs: { responseData: "responseData", index: "index", edit: "edit", customClass: "customClass", data: "data", nextComponentColor: "nextComponentColor" }, usesInheritance: true, ngImport: i0, template: "<section\r\n [id]=\"data?.id\"\r\n [simpoBackground]=\"style?.background\"\r\n class=\"total-container\"\r\n simpoHover\r\n (hovering)=\"showEditTabs($event)\"\r\n *ngIf=\"\r\n categoryList.length > 0 || (displayedBlogs?.length || 0) > 0 || apiLoading;\r\n else elseBlock\r\n \"\r\n [attr.style]=\"customClass\">\r\n <div\r\n [id]=\"data?.id\"\r\n [simpoOverlay]=\"style?.background\"\r\n [simpoBorder]=\"style?.border\"\r\n [simpoAnimation]=\"style?.animation\"\r\n [simpoLayout]=\"style?.layout\">\r\n <div class=\"container-fluid\" [spacingHorizontal]=\"stylesLayout\">\r\n <div class=\"blog-category-tabs\" *ngIf=\"categoryList.length > 0\">\r\n <span\r\n class=\"category-tab\"\r\n [class.active]=\"selectedCategoryId === null\"\r\n (click)=\"selectCategory(null)\"\r\n >All</span\r\n >\r\n <span\r\n class=\"category-tab\"\r\n *ngFor=\"let category of categoryList\"\r\n [class.active]=\"selectedCategoryId === category.id\"\r\n (click)=\"selectCategory(category.id)\">\r\n {{ category.categoryName }}\r\n </span>\r\n </div>\r\n <simpo-card-skeleton-loader\r\n *ngIf=\"apiLoading\"\r\n [showTitles]=\"true\"></simpo-card-skeleton-loader>\r\n <div\r\n class=\"no-blog-text-inline heading-medium\"\r\n *ngIf=\"!apiLoading && (displayedBlogs?.length || 0) === 0\">\r\n Sorry there are no blog posts in this category.\r\n </div>\r\n <div\r\n class=\"row gap-20\"\r\n *ngIf=\"!apiLoading && (displayedBlogs?.length || 0) > 0\">\r\n <div\r\n [simpoColumnDirective]=\"data?.styles?.size\"\r\n [id]=\"data?.id\"\r\n *ngFor=\"let content of displayedBlogs\"\r\n class=\"d-flex\">\r\n <a\r\n [routerLink]=\"['/blog', content.newPostTitle]\"\r\n (click)=\"getBlogById(content.articleSlug)\">\r\n <div\r\n class=\"cards h-100\"\r\n [simpoCorner]=\"style?.corners\"\r\n [id]=\"data?.id\">\r\n <img\r\n loading=\"lazy\"\r\n [src]=\"content.img\"\r\n [simpoImageDirective]=\"style?.image\"\r\n [id]=\"data?.id\"\r\n [simpoCorner]=\"style?.corners\"\r\n alt=\"\"\r\n *ngIf=\"content.img\"\r\n loading=\"lazy\" />\r\n <img\r\n loading=\"lazy\"\r\n [simpoImageDirective]=\"style?.image\"\r\n [id]=\"data?.id\"\r\n [simpoCorner]=\"style?.corners\"\r\n src=\"https://dev-beeos.s3.amazonaws.com/library-media/541329c1719236963199pexels-pixabay-262508.jpg\"\r\n alt=\"\"\r\n *ngIf=\"!content.img\"\r\n loading=\"lazy\" />\r\n <div class=\"p-30\">\r\n <div\r\n class=\"d-flex flex-wrap align-items-center gap-2 mb-2\"\r\n *ngIf=\"content?.tags?.length || content?.categoryName\">\r\n <p class=\"mb-0 p-2 border\" *ngIf=\"content?.categoryName\">\r\n {{ content.categoryName }}\r\n </p>\r\n <ng-container\r\n *ngFor=\"\r\n let tag of (content?.tags?.length || 0) > 3 && !content.showAllTags\r\n ? (content?.tags | slice: 0 : 2)\r\n : content?.tags\r\n \">\r\n <p class=\"mb-0 p-2 border\">{{ tag | titlecase }}</p>\r\n </ng-container>\r\n <p\r\n class=\"mb-0 p-2 see-more-chip\"\r\n *ngIf=\"(content?.tags?.length || 0) > 3\"\r\n (click)=\"$event.preventDefault(); $event.stopPropagation(); content.showAllTags = !content.showAllTags\">\r\n {{ content.showAllTags ? 'See less' : 'See more' }}\r\n </p>\r\n </div>\r\n <div\r\n class=\"heading-medium title mt-2 fs-20\"\r\n *ngIf=\"blogContent?.display?.showHeading\">\r\n {{\r\n content.postTitle.length > 100\r\n ? content.postTitle.substring(0, 100) + '...\"'\r\n : content.postTitle\r\n }}\r\n <!-- {{content.postTitle}} -->\r\n </div>\r\n <div\r\n class=\"d-flex flex-wrap align-items-center gap-3 blog-meta-row mt-2\"\r\n *ngIf=\"\r\n content.publishedDate ||\r\n content.blogScheduledDate ||\r\n content.createdTimeStamp\r\n \">\r\n <span class=\"blog-meta-item\">\r\n <svg\r\n class=\"meta-icon\"\r\n width=\"14\"\r\n height=\"14\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\">\r\n <rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\"></rect>\r\n <line x1=\"16\" y1=\"2\" x2=\"16\" y2=\"6\"></line>\r\n <line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"6\"></line>\r\n <line x1=\"3\" y1=\"10\" x2=\"21\" y2=\"10\"></line>\r\n </svg>\r\n {{\r\n (content.publishedDate ||\r\n content.blogScheduledDate ||\r\n content.createdTimeStamp) | date: 'd MMM y'\r\n }}\r\n </span>\r\n <span class=\"blog-meta-item\">\r\n <svg\r\n class=\"meta-icon\"\r\n width=\"14\"\r\n height=\"14\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\">\r\n <path\r\n d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"></path>\r\n <circle cx=\"12\" cy=\"12\" r=\"3\"></circle>\r\n </svg>\r\n {{ content.totalVisits || 0 }}\r\n </span>\r\n </div>\r\n <ng-container>\r\n <div\r\n class=\"body-large mt-4 pb-15\"\r\n *ngIf=\"blogContent?.display?.showContent\">\r\n {{\r\n content.postSummary.length > 250\r\n ? content.postSummary.substring(0, 250) + '...'\r\n : content.postSummary\r\n }}\r\n </div>\r\n </ng-container>\r\n\r\n <div\r\n class=\"d-flex justify-content-end p-2 align-items-center\"\r\n *ngIf=\"\r\n content?.author?.content &&\r\n content?.author?.content.length > 0\r\n \">\r\n <p>- {{ content?.author?.content | titlecase }}</p>\r\n </div>\r\n\r\n <!-- <div class=\"authors\" [ngClass]=\"'justify-content-' + (style?.layout?.align || '')\">\r\n <div>\r\n <mat-icon>person</mat-icon> &nbsp;&nbsp;<span class=\"body-large\">{{content?.author?.content | titlecase}}</span>\r\n </div>\r\n <div class=\"calendar_today\">\r\n <mat-icon>calendar_today</mat-icon> &nbsp;&nbsp; <span class=\"body-large\">{{content.createdTimeStamp |\r\n date:'EEEE, MMM, d, y'}}</span>\r\n </div>\r\n </div>\r\n <div class=\"button heading-large\" (click)=\"getBlogById(content.newPostTitle)\" [ngClass]=\"'justify-content-' + (style?.layout?.align || '')\">\r\n Read More <mat-icon>arrow_right_alt</mat-icon>\r\n </div> -->\r\n </div>\r\n </div>\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"style?.devider?.display\">\r\n <simpo-svg-divider\r\n [dividerType]=\"style?.devider?.deviderType\"\r\n [color]=\"nextComponentColor?.color\"></simpo-svg-divider>\r\n </ng-container>\r\n <div [ngClass]=\"{ hover_effect: edit }\" *ngIf=\"showEditors\">\r\n <simpo-hover-elements\r\n [data]=\"data\"\r\n [index]=\"index\"\r\n [editOptions]=\"edit\"></simpo-hover-elements>\r\n </div>\r\n</section>\r\n<ng-template #elseBlock>\r\n <div class=\"no-blog-text heading-medium\">Sorry there are no blog posts.</div>\r\n</ng-template>\r\n", styles: [".cards{box-shadow:0 1px 3px #1018281a,0 1px 2px #1018280f}.cards img{width:100%;border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}.p-30{padding:10px 15px 0}.border{border:1px solid;border-radius:8px}.authors{display:flex;gap:35px;margin-top:40px}.authors div{display:flex}.authors .calendar_today{align-items:center}.authors .calendar_today mat-icon{font-size:20px}.button{font-size:15px;display:flex;align-items:center;gap:10px;cursor:pointer;font-family:interReg;font-weight:500;justify-content:end}.mt-20{margin-top:20px}.total-container{position:relative;height:auto}.hover_effect{position:absolute;width:100%;top:0;left:0;height:100%}.no-blog-text{font-size:24px;line-height:36px;height:40vh;display:flex;align-items:center;justify-content:center}.no-blog-text-inline{font-size:18px;padding:60px 0;text-align:center}.justify-content-right{justify-content:right}.h-100{height:100%}.gap-20{gap:20px 0px!important}.fs-20{font-size:20px!important}.pb-15{padding-bottom:15px}.ar-none{aspect-ratio:0!important}.see-more-chip{flex-shrink:0;white-space:nowrap;cursor:pointer;font-size:12px;font-weight:600;text-decoration:underline}.blog-meta-row{font-size:13px;color:#6b6b6b}.blog-meta-item{display:inline-flex;align-items:center;gap:4px}.blog-meta-item .meta-icon{flex-shrink:0}.blog-category-tabs{display:flex;flex-wrap:nowrap;align-items:center;gap:32px;overflow-x:auto;border-bottom:1px solid #e5e5e5;padding-bottom:14px;margin-bottom:24px;scrollbar-width:none}.blog-category-tabs::-webkit-scrollbar{display:none}.category-tab{flex-shrink:0;padding-bottom:4px;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#8a8a8a;white-space:nowrap;cursor:pointer;border-bottom:2px solid transparent}.category-tab:hover,.category-tab.active{color:#1a1a1a}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.SlicePipe, name: "slice" }, { kind: "pipe", type: i3.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: i3.DatePipe, name: "date" }, { kind: "directive", type: AnimationDirective, selector: "[simpoAnimation]", inputs: ["simpoAnimation"] }, { kind: "directive", type: BorderDirective, selector: "[simpoBorder]", inputs: ["simpoBorder"] }, { kind: "directive", type: ContentFitDirective, selector: "[simpoLayout]", inputs: ["simpoLayout"] }, { kind: "directive", type: BackgroundDirective, selector: "[simpoBackground]", inputs: ["simpoBackground", "scrollValue"] }, { kind: "directive", type: ImageDirectiveDirective, selector: "[simpoImageDirective]", inputs: ["simpoImageDirective"] }, { kind: "directive", type: CornerDirective, selector: "[simpoCorner]", inputs: ["simpoCorner"] }, { kind: "directive", type: ColumnDirectiveDirective, selector: "[simpoColumnDirective]", inputs: ["simpoColumnDirective"] }, { kind: "directive", type: OverlayDirective, selector: "[simpoOverlay]", inputs: ["simpoOverlay"] }, { kind: "directive", type: HoverDirective, selector: "[simpoHover]", outputs: ["hovering"] }, { kind: "component", type: HoverElementsComponent, selector: "simpo-hover-elements", inputs: ["data", "index", "editOptions", "isMerged", "isEcommerce"], outputs: ["edit"] }, { kind: "component", type: SvgDividerComponent, selector: "simpo-svg-divider", inputs: ["dividerType", "color"] }, { kind: "directive", type: SpacingHorizontalDirective, selector: "[spacingHorizontal]", inputs: ["spacingHorizontal", "isHeader"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: CardSkeletonLoaderComponent, selector: "simpo-card-skeleton-loader", inputs: ["count", "showTitles"] }] }); }
115
115
  }
116
116
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BlogListComponent, decorators: [{
117
117
  type: Component,
@@ -133,7 +133,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
133
133
  SpacingHorizontalDirective,
134
134
  RouterLink,
135
135
  CardSkeletonLoaderComponent,
136
- ], template: "<section\r\n [id]=\"data?.id\"\r\n [simpoBackground]=\"style?.background\"\r\n class=\"total-container\"\r\n simpoHover\r\n (hovering)=\"showEditTabs($event)\"\r\n *ngIf=\"\r\n categoryList.length > 0 || (displayedBlogs?.length || 0) > 0 || apiLoading;\r\n else elseBlock\r\n \"\r\n [attr.style]=\"customClass\">\r\n <div\r\n [id]=\"data?.id\"\r\n [simpoOverlay]=\"style?.background\"\r\n [simpoBorder]=\"style?.border\"\r\n [simpoAnimation]=\"style?.animation\"\r\n [simpoLayout]=\"style?.layout\">\r\n <div class=\"container-fluid\" [spacingHorizontal]=\"stylesLayout\">\r\n <div class=\"blog-category-tabs\" *ngIf=\"categoryList.length > 0\">\r\n <span\r\n class=\"category-tab\"\r\n [class.active]=\"selectedCategoryId === null\"\r\n (click)=\"selectCategory(null)\"\r\n >All</span\r\n >\r\n <span\r\n class=\"category-tab\"\r\n *ngFor=\"let category of categoryList\"\r\n [class.active]=\"selectedCategoryId === category.id\"\r\n (click)=\"selectCategory(category.id)\">\r\n {{ category.categoryName }}\r\n </span>\r\n </div>\r\n <simpo-card-skeleton-loader\r\n *ngIf=\"apiLoading\"\r\n [showTitles]=\"true\"></simpo-card-skeleton-loader>\r\n <div\r\n class=\"no-blog-text-inline heading-medium\"\r\n *ngIf=\"!apiLoading && (displayedBlogs?.length || 0) === 0\">\r\n Sorry there are no blog posts in this category.\r\n </div>\r\n <div\r\n class=\"row gap-20\"\r\n *ngIf=\"!apiLoading && (displayedBlogs?.length || 0) > 0\">\r\n <div\r\n [simpoColumnDirective]=\"data?.styles?.size\"\r\n [id]=\"data?.id\"\r\n *ngFor=\"let content of displayedBlogs\"\r\n class=\"d-flex\">\r\n <a\r\n [routerLink]=\"['/blog', content.newPostTitle]\"\r\n (click)=\"getBlogById(content.articleSlug)\">\r\n <div\r\n class=\"cards h-100\"\r\n [simpoCorner]=\"style?.corners\"\r\n [id]=\"data?.id\">\r\n <img\r\n loading=\"lazy\"\r\n [src]=\"content.img\"\r\n [simpoImageDirective]=\"style?.image\"\r\n [id]=\"data?.id\"\r\n [simpoCorner]=\"style?.corners\"\r\n alt=\"\"\r\n *ngIf=\"content.img\"\r\n loading=\"lazy\" />\r\n <img\r\n loading=\"lazy\"\r\n [simpoImageDirective]=\"style?.image\"\r\n [id]=\"data?.id\"\r\n [simpoCorner]=\"style?.corners\"\r\n src=\"https://dev-beeos.s3.amazonaws.com/library-media/541329c1719236963199pexels-pixabay-262508.jpg\"\r\n alt=\"\"\r\n *ngIf=\"!content.img\"\r\n loading=\"lazy\" />\r\n <div class=\"p-30\">\r\n <div\r\n class=\"d-flex flex-wrap align-items-center gap-2 mb-2\"\r\n *ngIf=\"content?.tags?.length || content?.categoryName\">\r\n <p class=\"mb-0 p-2 border\" *ngIf=\"content?.categoryName\">\r\n {{ content.categoryName }}\r\n </p>\r\n <ng-container\r\n *ngFor=\"let tag of content?.tags | slice: 0 : 4\">\r\n <p class=\"mb-0 p-2 border\">{{ tag }}</p>\r\n </ng-container>\r\n </div>\r\n <div\r\n class=\"heading-medium title mt-2 fs-20\"\r\n *ngIf=\"blogContent?.display?.showHeading\">\r\n {{\r\n content.postTitle.length > 100\r\n ? content.postTitle.substring(0, 100) + '...\"'\r\n : content.postTitle\r\n }}\r\n <!-- {{content.postTitle}} -->\r\n </div>\r\n <ng-container>\r\n <div\r\n class=\"body-large mt-4 pb-15\"\r\n *ngIf=\"blogContent?.display?.showContent\">\r\n {{\r\n content.postSummary.length > 250\r\n ? content.postSummary.substring(0, 250) + '...'\r\n : content.postSummary\r\n }}\r\n </div>\r\n </ng-container>\r\n\r\n <div\r\n class=\"d-flex justify-content-end p-2 align-items-center\"\r\n *ngIf=\"\r\n content?.author?.content &&\r\n content?.author?.content.length > 0\r\n \">\r\n <p>- {{ content?.author?.content | titlecase }}</p>\r\n </div>\r\n\r\n <!-- <div class=\"authors\" [ngClass]=\"'justify-content-' + (style?.layout?.align || '')\">\r\n <div>\r\n <mat-icon>person</mat-icon> &nbsp;&nbsp;<span class=\"body-large\">{{content?.author?.content | titlecase}}</span>\r\n </div>\r\n <div class=\"calendar_today\">\r\n <mat-icon>calendar_today</mat-icon> &nbsp;&nbsp; <span class=\"body-large\">{{content.createdTimeStamp |\r\n date:'EEEE, MMM, d, y'}}</span>\r\n </div>\r\n </div>\r\n <div class=\"button heading-large\" (click)=\"getBlogById(content.newPostTitle)\" [ngClass]=\"'justify-content-' + (style?.layout?.align || '')\">\r\n Read More <mat-icon>arrow_right_alt</mat-icon>\r\n </div> -->\r\n </div>\r\n </div>\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"style?.devider?.display\">\r\n <simpo-svg-divider\r\n [dividerType]=\"style?.devider?.deviderType\"\r\n [color]=\"nextComponentColor?.color\"></simpo-svg-divider>\r\n </ng-container>\r\n <div [ngClass]=\"{ hover_effect: edit }\" *ngIf=\"showEditors\">\r\n <simpo-hover-elements\r\n [data]=\"data\"\r\n [index]=\"index\"\r\n [editOptions]=\"edit\"></simpo-hover-elements>\r\n </div>\r\n</section>\r\n<ng-template #elseBlock>\r\n <div class=\"no-blog-text heading-medium\">Sorry there are no blog posts.</div>\r\n</ng-template>\r\n", styles: [".cards{box-shadow:0 1px 3px #1018281a,0 1px 2px #1018280f}.cards img{width:100%;border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}.p-30{padding:10px 15px 0}.border{border:1px solid;border-radius:8px}.authors{display:flex;gap:35px;margin-top:40px}.authors div{display:flex}.authors .calendar_today{align-items:center}.authors .calendar_today mat-icon{font-size:20px}.button{font-size:15px;display:flex;align-items:center;gap:10px;cursor:pointer;font-family:interReg;font-weight:500;justify-content:end}.mt-20{margin-top:20px}.total-container{position:relative;height:auto}.hover_effect{position:absolute;width:100%;top:0;left:0;height:100%}.no-blog-text{font-size:24px;line-height:36px;height:40vh;display:flex;align-items:center;justify-content:center}.no-blog-text-inline{font-size:18px;padding:60px 0;text-align:center}.justify-content-right{justify-content:right}.h-100{height:100%}.gap-20{gap:20px 0px!important}.fs-20{font-size:20px!important}.pb-15{padding-bottom:15px}.ar-none{aspect-ratio:0!important}.blog-category-tabs{display:flex;flex-wrap:nowrap;align-items:center;gap:32px;overflow-x:auto;border-bottom:1px solid #e5e5e5;padding-bottom:14px;margin-bottom:24px;scrollbar-width:none}.blog-category-tabs::-webkit-scrollbar{display:none}.category-tab{flex-shrink:0;padding-bottom:4px;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#8a8a8a;white-space:nowrap;cursor:pointer;border-bottom:2px solid transparent}.category-tab:hover,.category-tab.active{color:#1a1a1a}\n"] }]
136
+ ], template: "<section\r\n [id]=\"data?.id\"\r\n [simpoBackground]=\"style?.background\"\r\n class=\"total-container\"\r\n simpoHover\r\n (hovering)=\"showEditTabs($event)\"\r\n *ngIf=\"\r\n categoryList.length > 0 || (displayedBlogs?.length || 0) > 0 || apiLoading;\r\n else elseBlock\r\n \"\r\n [attr.style]=\"customClass\">\r\n <div\r\n [id]=\"data?.id\"\r\n [simpoOverlay]=\"style?.background\"\r\n [simpoBorder]=\"style?.border\"\r\n [simpoAnimation]=\"style?.animation\"\r\n [simpoLayout]=\"style?.layout\">\r\n <div class=\"container-fluid\" [spacingHorizontal]=\"stylesLayout\">\r\n <div class=\"blog-category-tabs\" *ngIf=\"categoryList.length > 0\">\r\n <span\r\n class=\"category-tab\"\r\n [class.active]=\"selectedCategoryId === null\"\r\n (click)=\"selectCategory(null)\"\r\n >All</span\r\n >\r\n <span\r\n class=\"category-tab\"\r\n *ngFor=\"let category of categoryList\"\r\n [class.active]=\"selectedCategoryId === category.id\"\r\n (click)=\"selectCategory(category.id)\">\r\n {{ category.categoryName }}\r\n </span>\r\n </div>\r\n <simpo-card-skeleton-loader\r\n *ngIf=\"apiLoading\"\r\n [showTitles]=\"true\"></simpo-card-skeleton-loader>\r\n <div\r\n class=\"no-blog-text-inline heading-medium\"\r\n *ngIf=\"!apiLoading && (displayedBlogs?.length || 0) === 0\">\r\n Sorry there are no blog posts in this category.\r\n </div>\r\n <div\r\n class=\"row gap-20\"\r\n *ngIf=\"!apiLoading && (displayedBlogs?.length || 0) > 0\">\r\n <div\r\n [simpoColumnDirective]=\"data?.styles?.size\"\r\n [id]=\"data?.id\"\r\n *ngFor=\"let content of displayedBlogs\"\r\n class=\"d-flex\">\r\n <a\r\n [routerLink]=\"['/blog', content.newPostTitle]\"\r\n (click)=\"getBlogById(content.articleSlug)\">\r\n <div\r\n class=\"cards h-100\"\r\n [simpoCorner]=\"style?.corners\"\r\n [id]=\"data?.id\">\r\n <img\r\n loading=\"lazy\"\r\n [src]=\"content.img\"\r\n [simpoImageDirective]=\"style?.image\"\r\n [id]=\"data?.id\"\r\n [simpoCorner]=\"style?.corners\"\r\n alt=\"\"\r\n *ngIf=\"content.img\"\r\n loading=\"lazy\" />\r\n <img\r\n loading=\"lazy\"\r\n [simpoImageDirective]=\"style?.image\"\r\n [id]=\"data?.id\"\r\n [simpoCorner]=\"style?.corners\"\r\n src=\"https://dev-beeos.s3.amazonaws.com/library-media/541329c1719236963199pexels-pixabay-262508.jpg\"\r\n alt=\"\"\r\n *ngIf=\"!content.img\"\r\n loading=\"lazy\" />\r\n <div class=\"p-30\">\r\n <div\r\n class=\"d-flex flex-wrap align-items-center gap-2 mb-2\"\r\n *ngIf=\"content?.tags?.length || content?.categoryName\">\r\n <p class=\"mb-0 p-2 border\" *ngIf=\"content?.categoryName\">\r\n {{ content.categoryName }}\r\n </p>\r\n <ng-container\r\n *ngFor=\"\r\n let tag of (content?.tags?.length || 0) > 3 && !content.showAllTags\r\n ? (content?.tags | slice: 0 : 2)\r\n : content?.tags\r\n \">\r\n <p class=\"mb-0 p-2 border\">{{ tag | titlecase }}</p>\r\n </ng-container>\r\n <p\r\n class=\"mb-0 p-2 see-more-chip\"\r\n *ngIf=\"(content?.tags?.length || 0) > 3\"\r\n (click)=\"$event.preventDefault(); $event.stopPropagation(); content.showAllTags = !content.showAllTags\">\r\n {{ content.showAllTags ? 'See less' : 'See more' }}\r\n </p>\r\n </div>\r\n <div\r\n class=\"heading-medium title mt-2 fs-20\"\r\n *ngIf=\"blogContent?.display?.showHeading\">\r\n {{\r\n content.postTitle.length > 100\r\n ? content.postTitle.substring(0, 100) + '...\"'\r\n : content.postTitle\r\n }}\r\n <!-- {{content.postTitle}} -->\r\n </div>\r\n <div\r\n class=\"d-flex flex-wrap align-items-center gap-3 blog-meta-row mt-2\"\r\n *ngIf=\"\r\n content.publishedDate ||\r\n content.blogScheduledDate ||\r\n content.createdTimeStamp\r\n \">\r\n <span class=\"blog-meta-item\">\r\n <svg\r\n class=\"meta-icon\"\r\n width=\"14\"\r\n height=\"14\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\">\r\n <rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\"></rect>\r\n <line x1=\"16\" y1=\"2\" x2=\"16\" y2=\"6\"></line>\r\n <line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"6\"></line>\r\n <line x1=\"3\" y1=\"10\" x2=\"21\" y2=\"10\"></line>\r\n </svg>\r\n {{\r\n (content.publishedDate ||\r\n content.blogScheduledDate ||\r\n content.createdTimeStamp) | date: 'd MMM y'\r\n }}\r\n </span>\r\n <span class=\"blog-meta-item\">\r\n <svg\r\n class=\"meta-icon\"\r\n width=\"14\"\r\n height=\"14\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\">\r\n <path\r\n d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"></path>\r\n <circle cx=\"12\" cy=\"12\" r=\"3\"></circle>\r\n </svg>\r\n {{ content.totalVisits || 0 }}\r\n </span>\r\n </div>\r\n <ng-container>\r\n <div\r\n class=\"body-large mt-4 pb-15\"\r\n *ngIf=\"blogContent?.display?.showContent\">\r\n {{\r\n content.postSummary.length > 250\r\n ? content.postSummary.substring(0, 250) + '...'\r\n : content.postSummary\r\n }}\r\n </div>\r\n </ng-container>\r\n\r\n <div\r\n class=\"d-flex justify-content-end p-2 align-items-center\"\r\n *ngIf=\"\r\n content?.author?.content &&\r\n content?.author?.content.length > 0\r\n \">\r\n <p>- {{ content?.author?.content | titlecase }}</p>\r\n </div>\r\n\r\n <!-- <div class=\"authors\" [ngClass]=\"'justify-content-' + (style?.layout?.align || '')\">\r\n <div>\r\n <mat-icon>person</mat-icon> &nbsp;&nbsp;<span class=\"body-large\">{{content?.author?.content | titlecase}}</span>\r\n </div>\r\n <div class=\"calendar_today\">\r\n <mat-icon>calendar_today</mat-icon> &nbsp;&nbsp; <span class=\"body-large\">{{content.createdTimeStamp |\r\n date:'EEEE, MMM, d, y'}}</span>\r\n </div>\r\n </div>\r\n <div class=\"button heading-large\" (click)=\"getBlogById(content.newPostTitle)\" [ngClass]=\"'justify-content-' + (style?.layout?.align || '')\">\r\n Read More <mat-icon>arrow_right_alt</mat-icon>\r\n </div> -->\r\n </div>\r\n </div>\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"style?.devider?.display\">\r\n <simpo-svg-divider\r\n [dividerType]=\"style?.devider?.deviderType\"\r\n [color]=\"nextComponentColor?.color\"></simpo-svg-divider>\r\n </ng-container>\r\n <div [ngClass]=\"{ hover_effect: edit }\" *ngIf=\"showEditors\">\r\n <simpo-hover-elements\r\n [data]=\"data\"\r\n [index]=\"index\"\r\n [editOptions]=\"edit\"></simpo-hover-elements>\r\n </div>\r\n</section>\r\n<ng-template #elseBlock>\r\n <div class=\"no-blog-text heading-medium\">Sorry there are no blog posts.</div>\r\n</ng-template>\r\n", styles: [".cards{box-shadow:0 1px 3px #1018281a,0 1px 2px #1018280f}.cards img{width:100%;border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}.p-30{padding:10px 15px 0}.border{border:1px solid;border-radius:8px}.authors{display:flex;gap:35px;margin-top:40px}.authors div{display:flex}.authors .calendar_today{align-items:center}.authors .calendar_today mat-icon{font-size:20px}.button{font-size:15px;display:flex;align-items:center;gap:10px;cursor:pointer;font-family:interReg;font-weight:500;justify-content:end}.mt-20{margin-top:20px}.total-container{position:relative;height:auto}.hover_effect{position:absolute;width:100%;top:0;left:0;height:100%}.no-blog-text{font-size:24px;line-height:36px;height:40vh;display:flex;align-items:center;justify-content:center}.no-blog-text-inline{font-size:18px;padding:60px 0;text-align:center}.justify-content-right{justify-content:right}.h-100{height:100%}.gap-20{gap:20px 0px!important}.fs-20{font-size:20px!important}.pb-15{padding-bottom:15px}.ar-none{aspect-ratio:0!important}.see-more-chip{flex-shrink:0;white-space:nowrap;cursor:pointer;font-size:12px;font-weight:600;text-decoration:underline}.blog-meta-row{font-size:13px;color:#6b6b6b}.blog-meta-item{display:inline-flex;align-items:center;gap:4px}.blog-meta-item .meta-icon{flex-shrink:0}.blog-category-tabs{display:flex;flex-wrap:nowrap;align-items:center;gap:32px;overflow-x:auto;border-bottom:1px solid #e5e5e5;padding-bottom:14px;margin-bottom:24px;scrollbar-width:none}.blog-category-tabs::-webkit-scrollbar{display:none}.category-tab{flex-shrink:0;padding-bottom:4px;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#8a8a8a;white-space:nowrap;cursor:pointer;border-bottom:2px solid transparent}.category-tab:hover,.category-tab.active{color:#1a1a1a}\n"] }]
137
137
  }], ctorParameters: () => [{ type: i1.EventsService }, { type: i2.RestService }, { type: undefined, decorators: [{
138
138
  type: Inject,
139
139
  args: [LOCAL_STORAGE]
@@ -150,4 +150,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
150
150
  }], nextComponentColor: [{
151
151
  type: Input
152
152
  }] } });
153
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvZy1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpbXBvLXVpL3NyYy9saWIvc2VjdGlvbnMvYmxvZy1saXN0L2Jsb2ctbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3NlY3Rpb25zL2Jsb2ctbGlzdC9ibG9nLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQU8vQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFHbkUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sb0VBQW9FLENBQUM7QUFDakgsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUN0RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNyRSxPQUFPLEVBQ0wscUJBQXFCLEdBRXRCLE1BQU0saURBQWlELENBQUM7QUFDekQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdC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Qjt3QkFDbkIsbUJBQW1CO3dCQUNuQix1QkFBdUI7d0JBQ3ZCLGVBQWU7d0JBQ2Ysd0JBQXdCO3dCQUN4QixnQkFBZ0I7d0JBQ2hCLHFCQUFxQjt3QkFDckIsY0FBYzt3QkFDZCxzQkFBc0I7d0JBQ3RCLE9BQU87d0JBQ1AsbUJBQW1CO3dCQUNuQiwwQkFBMEI7d0JBQzFCLFVBQVU7d0JBQ1YsMkJBQTJCO3FCQUM1Qjs7MEJBcUJFLE1BQU07MkJBQUMsYUFBYTt5Q0FoQmQsWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBFdmVudHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZXZlbnRzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge1xyXG4gIEJsb2dMaXN0Q29udGVudE1vZGVsLFxyXG4gIEJsb2dMaXN0U2VjdGlvbk1vZGVsLFxyXG4gIEJsb2dMaXN0U3R5bGVzTW9kZWwsXHJcbn0gZnJvbSAnLi9ibG9nLWxpc3QubW9kZWwnO1xyXG5pbXBvcnQgeyBSZXN0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Jlc3Quc2VydmljZSc7XHJcbmltcG9ydCB7IExPQ0FMX1NUT1JBR0UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sb2NhbC1zdG9yYWdlLnRva2VuJztcclxuaW1wb3J0IHsgU3RvcmFnZUxpa2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zdG9yYWdlLWxpa2UnO1xyXG5pbXBvcnQgeyBCbG9nQ2F0ZWdvcnkgfSBmcm9tICcuL2Jsb2ctY2F0ZWdvcnkubW9kZWwnO1xyXG5pbXBvcnQgeyBDYXJkU2tlbGV0b25Mb2FkZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9lbGVtZW50cy9jYXJkLXNrZWxldG9uLWxvYWRlci9jYXJkLXNrZWxldG9uLWxvYWRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCYWNrZ3JvdW5kRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2JhY2tncm91bmQtZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQW5pbWF0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2FuaW1hdGlvbi1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBCb3JkZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvYm9yZGVyLWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IENvbnRlbnRGaXREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvY29udGVudC1maXQtZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgSW1hZ2VEaXJlY3RpdmVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvaW1hZ2UtZGlyZWN0aXZlLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IENvcm5lckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9jb3JuZXItZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQ29sdW1uRGlyZWN0aXZlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2NvbHVtbi1kaXJlY3RpdmUuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgT3ZlcmxheURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9vdmVybGF5LWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7XHJcbiAgQ29udGVudFRpdGxlRGlyZWN0aXZlLFxyXG4gIFNQQUNJTkcsXHJcbn0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2NvbnRlbnQtdGl0bGUtc3BhY2luZy5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBNYXRJY29uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCBCYXNlU2VjdGlvbiBmcm9tICcuLi9CYXNlU2VjdGlvbic7XHJcbmltcG9ydCB7IEhvdmVyRWxlbWVudHNDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2hvdmVyLWVsZW1lbnRzL2hvdmVyLWVsZW1lbnRzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEhvdmVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2hvdmVyLWVsZW1lbnQtZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQmFja2dyb3VuZE1vZGVsLCBMYXlPdXRNb2RlbCB9IGZyb20gJy4uLy4uL3N0eWxlcy9zdHlsZS5tb2RlbCc7XHJcbmltcG9ydCB7IFN2Z0RpdmlkZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9lbGVtZW50cy9zdmctZGl2aWRlci9zdmctZGl2aWRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTcGFjaW5nSG9yaXpvbnRhbERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9zcGFjaW5nLWhvcml6b250YWwuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgUm91dGVyTGluayB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NpbXBvLWJsb2ctbGlzdCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBBbmltYXRpb25EaXJlY3RpdmUsXHJcbiAgICBCb3JkZXJEaXJlY3RpdmUsXHJcbiAgICBDb250ZW50Rml0RGlyZWN0aXZlLFxyXG4gICAgQmFja2dyb3VuZERpcmVjdGl2ZSxcclxuICAgIEltYWdlRGlyZWN0aXZlRGlyZWN0aXZlLFxyXG4gICAgQ29ybmVyRGlyZWN0aXZlLFxyXG4gICAgQ29sdW1uRGlyZWN0aXZlRGlyZWN0aXZlLFxyXG4gICAgT3ZlcmxheURpcmVjdGl2ZSxcclxuICAgIENvbnRlbnRUaXRsZURpcmVjdGl2ZSxcclxuICAgIEhvdmVyRGlyZWN0aXZlLFxyXG4gICAgSG92ZXJFbGVtZW50c0NvbXBvbmVudCxcclxuICAgIE1hdEljb24sXHJcbiAgICBTdmdEaXZpZGVyQ29tcG9uZW50LFxyXG4gICAgU3BhY2luZ0hvcml6b250YWxEaXJlY3RpdmUsXHJcbiAgICBSb3V0ZXJMaW5rLFxyXG4gICAgQ2FyZFNrZWxldG9uTG9hZGVyQ29tcG9uZW50LFxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Jsb2ctbGlzdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2Jsb2ctbGlzdC5jb21wb25lbnQuY3NzJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEJsb2dMaXN0Q29tcG9uZW50IGV4dGVuZHMgQmFzZVNlY3Rpb24ge1xyXG4gIEBJbnB1dCgpIHJlc3BvbnNlRGF0YTogYW55W10gPSBbXTtcclxuICBASW5wdXQoKSBpbmRleD86IG51bWJlcjtcclxuICBASW5wdXQoKSBlZGl0PzogYm9vbGVhbjtcclxuICBASW5wdXQoKSBjdXN0b21DbGFzcz86IHN0cmluZztcclxuICBASW5wdXQoKSBkYXRhPzogQmxvZ0xpc3RTZWN0aW9uTW9kZWw7XHJcbiAgQElucHV0KCkgbmV4dENvbXBvbmVudENvbG9yPzogQmFja2dyb3VuZE1vZGVsO1xyXG5cclxuICBjYXRlZ29yeUxpc3Q6IEJsb2dDYXRlZ29yeVtdID0gW107XHJcbiAgLy8gdW5kZWZpbmVkID0gbm90aGluZyBjbGlja2VkIHlldCAobm8gdGFiIGhpZ2hsaWdodGVkKTsgbnVsbCA9IFwiQWxsXCIgZXhwbGljaXRseSBjbGlja2VkLlxyXG4gIHNlbGVjdGVkQ2F0ZWdvcnlJZDogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcclxuICBmaWx0ZXJlZEJsb2dzOiBhbnlbXSB8IG51bGwgPSBudWxsO1xyXG4gIGFwaUxvYWRpbmcgPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9ldmVudFNlcnZpY2U6IEV2ZW50c1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlc3RTZXJ2aWNlOiBSZXN0U2VydmljZSxcclxuICAgIEBJbmplY3QoTE9DQUxfU1RPUkFHRSkgcHJpdmF0ZSByZWFkb25seSBzdG9yYWdlOiBTdG9yYWdlTGlrZVxyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIHN0eWxlPzogQmxvZ0xpc3RTdHlsZXNNb2RlbDtcclxuICBibG9nQ29udGVudD86IEJsb2dMaXN0Q29udGVudE1vZGVsO1xyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGZvciAobGV0IGJsb2cgb2YgdGhpcy5yZXNwb25zZURhdGEpIHtcclxuICAgICAgLy8gY29uc29sZS5sb2coYmxvZyk7XHJcbiAgICAgIGJsb2dbJ2ltZyddID0gYmxvZy5ibG9ja3MuZmluZChcclxuICAgICAgICAoeDogYW55KSA9PiB4LnR5cGUgPT09ICdpbWFnZSdcclxuICAgICAgKT8uZGF0YT8uZmlsZT8udXJsO1xyXG4gICAgICBpZiAoYmxvZz8ua2V5V29yZHM/LmNvbnRlbnQ/Lmxlbmd0aCA+IDApXHJcbiAgICAgICAgYmxvZ1sndGFncyddID0gYmxvZz8ua2V5V29yZHM/LmNvbnRlbnQ/LnNwbGl0KCcsJykgfHwgW107XHJcbiAgICAgIC8vIGNvbnNvbGUubG9nKGJsb2dbJ3RhZ3MnXSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnN0eWxlID0gdGhpcy5kYXRhPy5zdHlsZXM7XHJcbiAgICB0aGlzLmJsb2dDb250ZW50ID0gdGhpcy5kYXRhPy5jb250ZW50O1xyXG4gICAgdGhpcy5sb2FkQmxvZ0NhdGVnb3JpZXMoKTtcclxuICB9XHJcblxyXG4gIGdldCBidXNpbmVzc0lkKCk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgdGhpcy5zdG9yYWdlLmdldEl0ZW0oJ2JJZCcpID8/IHRoaXMuc3RvcmFnZS5nZXRJdGVtKCdidXNpbmVzc0lkJykgPz8gbnVsbFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldCBkaXNwbGF5ZWRCbG9ncygpOiBhbnlbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJlZEJsb2dzID8/IHRoaXMucmVzcG9uc2VEYXRhO1xyXG4gIH1cclxuXHJcbiAgbG9hZEJsb2dDYXRlZ29yaWVzKCkge1xyXG4gICAgY29uc3QgYklkID0gdGhpcy5idXNpbmVzc0lkO1xyXG4gICAgaWYgKCFiSWQpIHJldHVybjtcclxuICAgIHRoaXMucmVzdFNlcnZpY2UuZ2V0QmxvZ0NhdGVnb3JpZXMoYklkKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiBjYXRlZ29yaWVzID0+IHtcclxuICAgICAgICB0aGlzLmNhdGVnb3J5TGlzdCA9IGNhdGVnb3JpZXMgPz8gW107XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5jYXRlZ29yeUxpc3QgPSBbXTtcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0Q2F0ZWdvcnkoY2F0ZWdvcnlJZDogc3RyaW5nIHwgbnVsbCkge1xyXG4gICAgdGhpcy5zZWxlY3RlZENhdGVnb3J5SWQgPSBjYXRlZ29yeUlkO1xyXG4gICAgaWYgKGNhdGVnb3J5SWQgPT09IG51bGwpIHtcclxuICAgICAgdGhpcy5maWx0ZXJlZEJsb2dzID0gbnVsbDtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgYklkID0gdGhpcy5idXNpbmVzc0lkO1xyXG4gICAgaWYgKCFiSWQpIHJldHVybjtcclxuICAgIHRoaXMuYXBpTG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLnJlc3RTZXJ2aWNlLmdldEJsb2dzQnlDYXRlZ29yeShiSWQsIGNhdGVnb3J5SWQpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgICAgY29uc3QgbGlzdCA9IHJlc3BvbnNlPy5kYXRhID8/IFtdO1xyXG4gICAgICAgIGZvciAoY29uc3QgYmxvZyBvZiBsaXN0KSB7XHJcbiAgICAgICAgICBibG9nWydpbWcnXSA9IGJsb2cuYmxvY2tzPy5maW5kKFxyXG4gICAgICAgICAgICAoeDogYW55KSA9PiB4LnR5cGUgPT09ICdpbWFnZSdcclxuICAgICAgICAgICk/LmRhdGE/LmZpbGU/LnVybDtcclxuICAgICAgICAgIGlmIChibG9nPy5rZXlXb3Jkcz8uY29udGVudD8ubGVuZ3RoID4gMClcclxuICAgICAgICAgICAgYmxvZ1sndGFncyddID0gYmxvZz8ua2V5V29yZHM/LmNvbnRlbnQ/LnNwbGl0KCcsJykgfHwgW107XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZmlsdGVyZWRCbG9ncyA9IGxpc3Q7XHJcbiAgICAgICAgdGhpcy5hcGlMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJlZEJsb2dzID0gW107XHJcbiAgICAgICAgdGhpcy5hcGlMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldCBoZWFkaW5nU3BhY2UoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdHlsZT8ubGF5b3V0Py5oZWFkaW5nU3BhY2luZyBhcyBTUEFDSU5HO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHN0eWxlc0xheW91dCgpIHtcclxuICAgIHJldHVybiB7IC4uLnRoaXMuc3R5bGU/LmxheW91dCB9IGFzIExheU91dE1vZGVsO1xyXG4gIH1cclxuXHJcbiAgZ2V0QmxvZ0J5SWQoYmxvZ0lkOiBhbnkpIHtcclxuICAgIHRoaXMuX2V2ZW50U2VydmljZS5ibG9nQnlJZEV2ZW50LmVtaXQoYmxvZ0lkKTtcclxuICB9XHJcbiAgZWRpdFNlY3Rpb24oKSB7XHJcbiAgICBpZiAod2luZG93LmlubmVyV2lkdGggPD0gNDc1KSByZXR1cm47XHJcblxyXG4gICAgdGhpcy5fZXZlbnRTZXJ2aWNlLnRvZ2dsZUVkaXRvckV2ZW50LmVtaXQoZmFsc2UpO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuX2V2ZW50U2VydmljZS5lZGl0U2VjdGlvbi5lbWl0KHsgZGF0YTogdGhpcy5kYXRhIH0pO1xyXG4gICAgfSwgMTAwKTtcclxuICB9XHJcbn1cclxuIiwiPHNlY3Rpb25cclxuICBbaWRdPVwiZGF0YT8uaWRcIlxyXG4gIFtzaW1wb0JhY2tncm91bmRdPVwic3R5bGU/LmJhY2tncm91bmRcIlxyXG4gIGNsYXNzPVwidG90YWwtY29udGFpbmVyXCJcclxuICBzaW1wb0hvdmVyXHJcbiAgKGhvdmVyaW5nKT1cInNob3dFZGl0VGFicygkZXZlbnQpXCJcclxuICAqbmdJZj1cIlxyXG4gICAgY2F0ZWdvcnlMaXN0Lmxlbmd0aCA+IDAgfHwgKGRpc3BsYXllZEJsb2dzPy5sZW5ndGggfHwgMCkgPiAwIHx8IGFwaUxvYWRpbmc7XHJcbiAgICBlbHNlIGVsc2VCbG9ja1xyXG4gIFwiXHJcbiAgW2F0dHIuc3R5bGVdPVwiY3VzdG9tQ2xhc3NcIj5cclxuICA8ZGl2XHJcbiAgICBbaWRdPVwiZGF0YT8uaWRcIlxyXG4gICAgW3NpbXBvT3ZlcmxheV09XCJzdHlsZT8uYmFja2dyb3VuZFwiXHJcbiAgICBbc2ltcG9Cb3JkZXJdPVwic3R5bGU/LmJvcmRlclwiXHJcbiAgICBbc2ltcG9BbmltYXRpb25dPVwic3R5bGU/LmFuaW1hdGlvblwiXHJcbiAgICBbc2ltcG9MYXlvdXRdPVwic3R5bGU/LmxheW91dFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZFwiIFtzcGFjaW5nSG9yaXpvbnRhbF09XCJzdHlsZXNMYXlvdXRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImJsb2ctY2F0ZWdvcnktdGFic1wiICpuZ0lmPVwiY2F0ZWdvcnlMaXN0Lmxlbmd0aCA+IDBcIj5cclxuICAgICAgICA8c3BhblxyXG4gICAgICAgICAgY2xhc3M9XCJjYXRlZ29yeS10YWJcIlxyXG4gICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJzZWxlY3RlZENhdGVnb3J5SWQgPT09IG51bGxcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cInNlbGVjdENhdGVnb3J5KG51bGwpXCJcclxuICAgICAgICAgID5BbGw8L3NwYW5cclxuICAgICAgICA+XHJcbiAgICAgICAgPHNwYW5cclxuICAgICAgICAgIGNsYXNzPVwiY2F0ZWdvcnktdGFiXCJcclxuICAgICAgICAgICpuZ0Zvcj1cImxldCBjYXRlZ29yeSBvZiBjYXRlZ29yeUxpc3RcIlxyXG4gICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJzZWxlY3RlZENhdGVnb3J5SWQgPT09IGNhdGVnb3J5LmlkXCJcclxuICAgICAgICAgIChjbGljayk9XCJzZWxlY3RDYXRlZ29yeShjYXRlZ29yeS5pZClcIj5cclxuICAgICAgICAgIHt7IGNhdGVnb3J5LmNhdGVnb3J5TmFtZSB9fVxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxzaW1wby1jYXJkLXNrZWxldG9uLWxvYWRlclxyXG4gICAgICAgICpuZ0lmPVwiYXBpTG9hZGluZ1wiXHJcbiAgICAgICAgW3Nob3dUaXRsZXNdPVwidHJ1ZVwiPjwvc2ltcG8tY2FyZC1za2VsZXRvbi1sb2FkZXI+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICBjbGFzcz1cIm5vLWJsb2ctdGV4dC1pbmxpbmUgaGVhZGluZy1tZWRpdW1cIlxyXG4gICAgICAgICpuZ0lmPVwiIWFwaUxvYWRpbmcgJiYgKGRpc3BsYXllZEJsb2dzPy5sZW5ndGggfHwgMCkgPT09IDBcIj5cclxuICAgICAgICBTb3JyeSB0aGVyZSBhcmUgbm8gYmxvZyBwb3N0cyBpbiB0aGlzIGNhdGVnb3J5LlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzPVwicm93IGdhcC0yMFwiXHJcbiAgICAgICAgKm5nSWY9XCIhYXBpTG9hZGluZyAmJiAoZGlzcGxheWVkQmxvZ3M/Lmxlbmd0aCB8fCAwKSA+IDBcIj5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBbc2ltcG9Db2x1bW5EaXJlY3RpdmVdPVwiZGF0YT8uc3R5bGVzPy5zaXplXCJcclxuICAgICAgICAgIFtpZF09XCJkYXRhPy5pZFwiXHJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgY29udGVudCBvZiBkaXNwbGF5ZWRCbG9nc1wiXHJcbiAgICAgICAgICBjbGFzcz1cImQtZmxleFwiPlxyXG4gICAgICAgICAgPGFcclxuICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiWycvYmxvZycsIGNvbnRlbnQubmV3UG9zdFRpdGxlXVwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJnZXRCbG9nQnlJZChjb250ZW50LmFydGljbGVTbHVnKVwiPlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJjYXJkcyBoLTEwMFwiXHJcbiAgICAgICAgICAgICAgW3NpbXBvQ29ybmVyXT1cInN0eWxlPy5jb3JuZXJzXCJcclxuICAgICAgICAgICAgICBbaWRdPVwiZGF0YT8uaWRcIj5cclxuICAgICAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgICAgICBsb2FkaW5nPVwibGF6eVwiXHJcbiAgICAgICAgICAgICAgICBbc3JjXT1cImNvbnRlbnQuaW1nXCJcclxuICAgICAgICAgICAgICAgIFtzaW1wb0ltYWdlRGlyZWN0aXZlXT1cInN0eWxlPy5pbWFnZVwiXHJcbiAgICAgICAgICAgICAgICBbaWRdPVwiZGF0YT8uaWRcIlxyXG4gICAgICAgICAgICAgICAgW3NpbXBvQ29ybmVyXT1cInN0eWxlPy5jb3JuZXJzXCJcclxuICAgICAgICAgICAgICAgIGFsdD1cIlwiXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImNvbnRlbnQuaW1nXCJcclxuICAgICAgICAgICAgICAgIGxvYWRpbmc9XCJsYXp5XCIgLz5cclxuICAgICAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgICAgICBsb2FkaW5nPVwibGF6eVwiXHJcbiAgICAgICAgICAgICAgICBbc2ltcG9JbWFnZURpcmVjdGl2ZV09XCJzdHlsZT8uaW1hZ2VcIlxyXG4gICAgICAgICAgICAgICAgW2lkXT1cImRhdGE/LmlkXCJcclxuICAgICAgICAgICAgICAgIFtzaW1wb0Nvcm5lcl09XCJzdHlsZT8uY29ybmVyc1wiXHJcbiAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL2Rldi1iZWVvcy5zMy5hbWF6b25hd3MuY29tL2xpYnJhcnktbWVkaWEvNTQxMzI5YzE3MTkyMzY5NjMxOTlwZXhlbHMtcGl4YWJheS0yNjI1MDguanBnXCJcclxuICAgICAgICAgICAgICAgIGFsdD1cIlwiXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIiFjb250ZW50LmltZ1wiXHJcbiAgICAgICAgICAgICAgICBsb2FkaW5nPVwibGF6eVwiIC8+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtMzBcIj5cclxuICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggZmxleC13cmFwIGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMiBtYi0yXCJcclxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjb250ZW50Py50YWdzPy5sZW5ndGggfHwgY29udGVudD8uY2F0ZWdvcnlOYW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwibWItMCBwLTIgYm9yZGVyXCIgKm5nSWY9XCJjb250ZW50Py5jYXRlZ29yeU5hbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICB7eyBjb250ZW50LmNhdGVnb3J5TmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgdGFnIG9mIGNvbnRlbnQ/LnRhZ3MgfCBzbGljZTogMCA6IDRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cIm1iLTAgcC0yIGJvcmRlclwiPnt7IHRhZyB9fTwvcD5cclxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJoZWFkaW5nLW1lZGl1bSB0aXRsZSBtdC0yIGZzLTIwXCJcclxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJibG9nQ29udGVudD8uZGlzcGxheT8uc2hvd0hlYWRpbmdcIj5cclxuICAgICAgICAgICAgICAgICAge3tcclxuICAgICAgICAgICAgICAgICAgICBjb250ZW50LnBvc3RUaXRsZS5sZW5ndGggPiAxMDBcclxuICAgICAgICAgICAgICAgICAgICAgID8gY29udGVudC5wb3N0VGl0bGUuc3Vic3RyaW5nKDAsIDEwMCkgKyAnLi4uXCInXHJcbiAgICAgICAgICAgICAgICAgICAgICA6IGNvbnRlbnQucG9zdFRpdGxlXHJcbiAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgIDwhLS0ge3tjb250ZW50LnBvc3RUaXRsZX19IC0tPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJib2R5LWxhcmdlIG10LTQgcGItMTVcIlxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYmxvZ0NvbnRlbnQ/LmRpc3BsYXk/LnNob3dDb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3tcclxuICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQucG9zdFN1bW1hcnkubGVuZ3RoID4gMjUwXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gY29udGVudC5wb3N0U3VtbWFyeS5zdWJzdHJpbmcoMCwgMjUwKSArICcuLi4nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogY29udGVudC5wb3N0U3VtbWFyeVxyXG4gICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIHAtMiBhbGlnbi1pdGVtcy1jZW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ/LmF1dGhvcj8uY29udGVudCAmJlxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ/LmF1dGhvcj8uY29udGVudC5sZW5ndGggPiAwXHJcbiAgICAgICAgICAgICAgICAgIFwiPlxyXG4gICAgICAgICAgICAgICAgICA8cD4tIHt7IGNvbnRlbnQ/LmF1dGhvcj8uY29udGVudCB8IHRpdGxlY2FzZSB9fTwvcD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImF1dGhvcnNcIiBbbmdDbGFzc109XCInanVzdGlmeS1jb250ZW50LScgKyAoc3R5bGU/LmxheW91dD8uYWxpZ24gfHwgJycpXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWljb24+cGVyc29uPC9tYXQtaWNvbj4gJm5ic3A7Jm5ic3A7PHNwYW4gY2xhc3M9XCJib2R5LWxhcmdlXCI+e3tjb250ZW50Py5hdXRob3I/LmNvbnRlbnQgfCB0aXRsZWNhc2V9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhbGVuZGFyX3RvZGF5XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5jYWxlbmRhcl90b2RheTwvbWF0LWljb24+ICZuYnNwOyZuYnNwOyA8c3BhbiBjbGFzcz1cImJvZHktbGFyZ2VcIj57e2NvbnRlbnQuY3JlYXRlZFRpbWVTdGFtcCB8XHJcbiAgICAgICAgICAgICAgICAgICAgZGF0ZTonRUVFRSwgTU1NLCBkLCB5J319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbiBoZWFkaW5nLWxhcmdlXCIgKGNsaWNrKT1cImdldEJsb2dCeUlkKGNvbnRlbnQubmV3UG9zdFRpdGxlKVwiIFtuZ0NsYXNzXT1cIidqdXN0aWZ5LWNvbnRlbnQtJyArIChzdHlsZT8ubGF5b3V0Py5hbGlnbiB8fCAnJylcIj5cclxuICAgICAgICAgICAgICAgIFJlYWQgTW9yZSA8bWF0LWljb24+YXJyb3dfcmlnaHRfYWx0PC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9hPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdHlsZT8uZGV2aWRlcj8uZGlzcGxheVwiPlxyXG4gICAgPHNpbXBvLXN2Zy1kaXZpZGVyXHJcbiAgICAgIFtkaXZpZGVyVHlwZV09XCJzdHlsZT8uZGV2aWRlcj8uZGV2aWRlclR5cGVcIlxyXG4gICAgICBbY29sb3JdPVwibmV4dENvbXBvbmVudENvbG9yPy5jb2xvclwiPjwvc2ltcG8tc3ZnLWRpdmlkZXI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPGRpdiBbbmdDbGFzc109XCJ7IGhvdmVyX2VmZmVjdDogZWRpdCB9XCIgKm5nSWY9XCJzaG93RWRpdG9yc1wiPlxyXG4gICAgPHNpbXBvLWhvdmVyLWVsZW1lbnRzXHJcbiAgICAgIFtkYXRhXT1cImRhdGFcIlxyXG4gICAgICBbaW5kZXhdPVwiaW5kZXhcIlxyXG4gICAgICBbZWRpdE9wdGlvbnNdPVwiZWRpdFwiPjwvc2ltcG8taG92ZXItZWxlbWVudHM+XHJcbiAgPC9kaXY+XHJcbjwvc2VjdGlvbj5cclxuPG5nLXRlbXBsYXRlICNlbHNlQmxvY2s+XHJcbiAgPGRpdiBjbGFzcz1cIm5vLWJsb2ctdGV4dCBoZWFkaW5nLW1lZGl1bVwiPlNvcnJ5IHRoZXJlIGFyZSBubyBibG9nIHBvc3RzLjwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
153
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvZy1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpbXBvLXVpL3NyYy9saWIvc2VjdGlvbnMvYmxvZy1saXN0L2Jsb2ctbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3NlY3Rpb25zL2Jsb2ctbGlzdC9ibG9nLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQU8vQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFHbkUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sb0VBQW9FLENBQUM7QUFDakgsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUN0RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNyRSxPQUFPLEVBQ0wscUJBQXFCLEdBRXRCLE1BQU0saURBQWlELENBQUM7QUFDekQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdC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bUI7d0JBQ25CLG1CQUFtQjt3QkFDbkIsdUJBQXVCO3dCQUN2QixlQUFlO3dCQUNmLHdCQUF3Qjt3QkFDeEIsZ0JBQWdCO3dCQUNoQixxQkFBcUI7d0JBQ3JCLGNBQWM7d0JBQ2Qsc0JBQXNCO3dCQUN0QixPQUFPO3dCQUNQLG1CQUFtQjt3QkFDbkIsMEJBQTBCO3dCQUMxQixVQUFVO3dCQUNWLDJCQUEyQjtxQkFDNUI7OzBCQXFCRSxNQUFNOzJCQUFDLGFBQWE7eUNBaEJkLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRXZlbnRzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2V2ZW50cy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtcclxuICBCbG9nTGlzdENvbnRlbnRNb2RlbCxcclxuICBCbG9nTGlzdFNlY3Rpb25Nb2RlbCxcclxuICBCbG9nTGlzdFN0eWxlc01vZGVsLFxyXG59IGZyb20gJy4vYmxvZy1saXN0Lm1vZGVsJztcclxuaW1wb3J0IHsgUmVzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9yZXN0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMT0NBTF9TVE9SQUdFIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbG9jYWwtc3RvcmFnZS50b2tlbic7XHJcbmltcG9ydCB7IFN0b3JhZ2VMaWtlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc3RvcmFnZS1saWtlJztcclxuaW1wb3J0IHsgQmxvZ0NhdGVnb3J5IH0gZnJvbSAnLi9ibG9nLWNhdGVnb3J5Lm1vZGVsJztcclxuaW1wb3J0IHsgQ2FyZFNrZWxldG9uTG9hZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZWxlbWVudHMvY2FyZC1za2VsZXRvbi1sb2FkZXIvY2FyZC1za2VsZXRvbi1sb2FkZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQmFja2dyb3VuZERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9iYWNrZ3JvdW5kLWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEFuaW1hdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9hbmltYXRpb24tZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQm9yZGVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2JvcmRlci1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBDb250ZW50Rml0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2NvbnRlbnQtZml0LWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEltYWdlRGlyZWN0aXZlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2ltYWdlLWRpcmVjdGl2ZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBDb3JuZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvY29ybmVyLWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IENvbHVtbkRpcmVjdGl2ZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9jb2x1bW4tZGlyZWN0aXZlLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IE92ZXJsYXlEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvb3ZlcmxheS1kaXJlY3RpdmUnO1xyXG5pbXBvcnQge1xyXG4gIENvbnRlbnRUaXRsZURpcmVjdGl2ZSxcclxuICBTUEFDSU5HLFxyXG59IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9jb250ZW50LXRpdGxlLXNwYWNpbmcuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgTWF0SWNvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgQmFzZVNlY3Rpb24gZnJvbSAnLi4vQmFzZVNlY3Rpb24nO1xyXG5pbXBvcnQgeyBIb3ZlckVsZW1lbnRzQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9ob3Zlci1lbGVtZW50cy9ob3Zlci1lbGVtZW50cy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBIb3ZlckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9ob3Zlci1lbGVtZW50LWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEJhY2tncm91bmRNb2RlbCwgTGF5T3V0TW9kZWwgfSBmcm9tICcuLi8uLi9zdHlsZXMvc3R5bGUubW9kZWwnO1xyXG5pbXBvcnQgeyBTdmdEaXZpZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZWxlbWVudHMvc3ZnLWRpdmlkZXIvc3ZnLWRpdmlkZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3BhY2luZ0hvcml6b250YWxEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvc3BhY2luZy1ob3Jpem9udGFsLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFJvdXRlckxpbmsgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzaW1wby1ibG9nLWxpc3QnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgQW5pbWF0aW9uRGlyZWN0aXZlLFxyXG4gICAgQm9yZGVyRGlyZWN0aXZlLFxyXG4gICAgQ29udGVudEZpdERpcmVjdGl2ZSxcclxuICAgIEJhY2tncm91bmREaXJlY3RpdmUsXHJcbiAgICBJbWFnZURpcmVjdGl2ZURpcmVjdGl2ZSxcclxuICAgIENvcm5lckRpcmVjdGl2ZSxcclxuICAgIENvbHVtbkRpcmVjdGl2ZURpcmVjdGl2ZSxcclxuICAgIE92ZXJsYXlEaXJlY3RpdmUsXHJcbiAgICBDb250ZW50VGl0bGVEaXJlY3RpdmUsXHJcbiAgICBIb3ZlckRpcmVjdGl2ZSxcclxuICAgIEhvdmVyRWxlbWVudHNDb21wb25lbnQsXHJcbiAgICBNYXRJY29uLFxyXG4gICAgU3ZnRGl2aWRlckNvbXBvbmVudCxcclxuICAgIFNwYWNpbmdIb3Jpem9udGFsRGlyZWN0aXZlLFxyXG4gICAgUm91dGVyTGluayxcclxuICAgIENhcmRTa2VsZXRvbkxvYWRlckNvbXBvbmVudCxcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9ibG9nLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9ibG9nLWxpc3QuY29tcG9uZW50LmNzcycsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCbG9nTGlzdENvbXBvbmVudCBleHRlbmRzIEJhc2VTZWN0aW9uIHtcclxuICBASW5wdXQoKSByZXNwb25zZURhdGE6IGFueVtdID0gW107XHJcbiAgQElucHV0KCkgaW5kZXg/OiBudW1iZXI7XHJcbiAgQElucHV0KCkgZWRpdD86IGJvb2xlYW47XHJcbiAgQElucHV0KCkgY3VzdG9tQ2xhc3M/OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgZGF0YT86IEJsb2dMaXN0U2VjdGlvbk1vZGVsO1xyXG4gIEBJbnB1dCgpIG5leHRDb21wb25lbnRDb2xvcj86IEJhY2tncm91bmRNb2RlbDtcclxuXHJcbiAgY2F0ZWdvcnlMaXN0OiBCbG9nQ2F0ZWdvcnlbXSA9IFtdO1xyXG4gIC8vIHVuZGVmaW5lZCA9IG5vdGhpbmcgY2xpY2tlZCB5ZXQgKG5vIHRhYiBoaWdobGlnaHRlZCk7IG51bGwgPSBcIkFsbFwiIGV4cGxpY2l0bHkgY2xpY2tlZC5cclxuICBzZWxlY3RlZENhdGVnb3J5SWQ6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XHJcbiAgZmlsdGVyZWRCbG9nczogYW55W10gfCBudWxsID0gbnVsbDtcclxuICBhcGlMb2FkaW5nID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfZXZlbnRTZXJ2aWNlOiBFdmVudHNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSByZXN0U2VydmljZTogUmVzdFNlcnZpY2UsXHJcbiAgICBASW5qZWN0KExPQ0FMX1NUT1JBR0UpIHByaXZhdGUgcmVhZG9ubHkgc3RvcmFnZTogU3RvcmFnZUxpa2VcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBzdHlsZT86IEJsb2dMaXN0U3R5bGVzTW9kZWw7XHJcbiAgYmxvZ0NvbnRlbnQ/OiBCbG9nTGlzdENvbnRlbnRNb2RlbDtcclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBmb3IgKGxldCBibG9nIG9mIHRoaXMucmVzcG9uc2VEYXRhKSB7XHJcbiAgICAgIC8vIGNvbnNvbGUubG9nKGJsb2cpO1xyXG4gICAgICBibG9nWydpbWcnXSA9IGJsb2cuYmxvY2tzLmZpbmQoXHJcbiAgICAgICAgKHg6IGFueSkgPT4geC50eXBlID09PSAnaW1hZ2UnXHJcbiAgICAgICk/LmRhdGE/LmZpbGU/LnVybDtcclxuICAgICAgaWYgKGJsb2c/LmtleVdvcmRzPy5jb250ZW50Py5sZW5ndGggPiAwKVxyXG4gICAgICAgIGJsb2dbJ3RhZ3MnXSA9IGJsb2c/LmtleVdvcmRzPy5jb250ZW50Py5zcGxpdCgnLCcpIHx8IFtdO1xyXG4gICAgICAvLyBjb25zb2xlLmxvZyhibG9nWyd0YWdzJ10pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zdHlsZSA9IHRoaXMuZGF0YT8uc3R5bGVzO1xyXG4gICAgdGhpcy5ibG9nQ29udGVudCA9IHRoaXMuZGF0YT8uY29udGVudDtcclxuICAgIHRoaXMubG9hZEJsb2dDYXRlZ29yaWVzKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgYnVzaW5lc3NJZCgpOiBzdHJpbmcgfCBudWxsIHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIHRoaXMuc3RvcmFnZS5nZXRJdGVtKCdiSWQnKSA/PyB0aGlzLnN0b3JhZ2UuZ2V0SXRlbSgnYnVzaW5lc3NJZCcpID8/IG51bGxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXQgZGlzcGxheWVkQmxvZ3MoKTogYW55W10ge1xyXG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyZWRCbG9ncyA/PyB0aGlzLnJlc3BvbnNlRGF0YTtcclxuICB9XHJcblxyXG4gIGxvYWRCbG9nQ2F0ZWdvcmllcygpIHtcclxuICAgIGNvbnN0IGJJZCA9IHRoaXMuYnVzaW5lc3NJZDtcclxuICAgIGlmICghYklkKSByZXR1cm47XHJcbiAgICB0aGlzLnJlc3RTZXJ2aWNlLmdldEJsb2dDYXRlZ29yaWVzKGJJZCkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogY2F0ZWdvcmllcyA9PiB7XHJcbiAgICAgICAgdGhpcy5jYXRlZ29yeUxpc3QgPSBjYXRlZ29yaWVzID8/IFtdO1xyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuY2F0ZWdvcnlMaXN0ID0gW107XHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNlbGVjdENhdGVnb3J5KGNhdGVnb3J5SWQ6IHN0cmluZyB8IG51bGwpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRDYXRlZ29yeUlkID0gY2F0ZWdvcnlJZDtcclxuICAgIGlmIChjYXRlZ29yeUlkID09PSBudWxsKSB7XHJcbiAgICAgIHRoaXMuZmlsdGVyZWRCbG9ncyA9IG51bGw7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IGJJZCA9IHRoaXMuYnVzaW5lc3NJZDtcclxuICAgIGlmICghYklkKSByZXR1cm47XHJcbiAgICB0aGlzLmFwaUxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5yZXN0U2VydmljZS5nZXRCbG9nc0J5Q2F0ZWdvcnkoYklkLCBjYXRlZ29yeUlkKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGxpc3QgPSByZXNwb25zZT8uZGF0YSA/PyBbXTtcclxuICAgICAgICBmb3IgKGNvbnN0IGJsb2cgb2YgbGlzdCkge1xyXG4gICAgICAgICAgYmxvZ1snaW1nJ10gPSBibG9nLmJsb2Nrcz8uZmluZChcclxuICAgICAgICAgICAgKHg6IGFueSkgPT4geC50eXBlID09PSAnaW1hZ2UnXHJcbiAgICAgICAgICApPy5kYXRhPy5maWxlPy51cmw7XHJcbiAgICAgICAgICBpZiAoYmxvZz8ua2V5V29yZHM/LmNvbnRlbnQ/Lmxlbmd0aCA+IDApXHJcbiAgICAgICAgICAgIGJsb2dbJ3RhZ3MnXSA9IGJsb2c/LmtleVdvcmRzPy5jb250ZW50Py5zcGxpdCgnLCcpIHx8IFtdO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmZpbHRlcmVkQmxvZ3MgPSBsaXN0O1xyXG4gICAgICAgIHRoaXMuYXBpTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuZmlsdGVyZWRCbG9ncyA9IFtdO1xyXG4gICAgICAgIHRoaXMuYXBpTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXQgaGVhZGluZ1NwYWNlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3R5bGU/LmxheW91dD8uaGVhZGluZ1NwYWNpbmcgYXMgU1BBQ0lORztcclxuICB9XHJcblxyXG4gIGdldCBzdHlsZXNMYXlvdXQoKSB7XHJcbiAgICByZXR1cm4geyAuLi50aGlzLnN0eWxlPy5sYXlvdXQgfSBhcyBMYXlPdXRNb2RlbDtcclxuICB9XHJcblxyXG4gIGdldEJsb2dCeUlkKGJsb2dJZDogYW55KSB7XHJcbiAgICB0aGlzLl9ldmVudFNlcnZpY2UuYmxvZ0J5SWRFdmVudC5lbWl0KGJsb2dJZCk7XHJcbiAgfVxyXG4gIGVkaXRTZWN0aW9uKCkge1xyXG4gICAgaWYgKHdpbmRvdy5pbm5lcldpZHRoIDw9IDQ3NSkgcmV0dXJuO1xyXG5cclxuICAgIHRoaXMuX2V2ZW50U2VydmljZS50b2dnbGVFZGl0b3JFdmVudC5lbWl0KGZhbHNlKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLl9ldmVudFNlcnZpY2UuZWRpdFNlY3Rpb24uZW1pdCh7IGRhdGE6IHRoaXMuZGF0YSB9KTtcclxuICAgIH0sIDEwMCk7XHJcbiAgfVxyXG59XHJcbiIsIjxzZWN0aW9uXHJcbiAgW2lkXT1cImRhdGE/LmlkXCJcclxuICBbc2ltcG9CYWNrZ3JvdW5kXT1cInN0eWxlPy5iYWNrZ3JvdW5kXCJcclxuICBjbGFzcz1cInRvdGFsLWNvbnRhaW5lclwiXHJcbiAgc2ltcG9Ib3ZlclxyXG4gIChob3ZlcmluZyk9XCJzaG93RWRpdFRhYnMoJGV2ZW50KVwiXHJcbiAgKm5nSWY9XCJcclxuICAgIGNhdGVnb3J5TGlzdC5sZW5ndGggPiAwIHx8IChkaXNwbGF5ZWRCbG9ncz8ubGVuZ3RoIHx8IDApID4gMCB8fCBhcGlMb2FkaW5nO1xyXG4gICAgZWxzZSBlbHNlQmxvY2tcclxuICBcIlxyXG4gIFthdHRyLnN0eWxlXT1cImN1c3RvbUNsYXNzXCI+XHJcbiAgPGRpdlxyXG4gICAgW2lkXT1cImRhdGE/LmlkXCJcclxuICAgIFtzaW1wb092ZXJsYXldPVwic3R5bGU/LmJhY2tncm91bmRcIlxyXG4gICAgW3NpbXBvQm9yZGVyXT1cInN0eWxlPy5ib3JkZXJcIlxyXG4gICAgW3NpbXBvQW5pbWF0aW9uXT1cInN0eWxlPy5hbmltYXRpb25cIlxyXG4gICAgW3NpbXBvTGF5b3V0XT1cInN0eWxlPy5sYXlvdXRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXItZmx1aWRcIiBbc3BhY2luZ0hvcml6b250YWxdPVwic3R5bGVzTGF5b3V0XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJibG9nLWNhdGVnb3J5LXRhYnNcIiAqbmdJZj1cImNhdGVnb3J5TGlzdC5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgPHNwYW5cclxuICAgICAgICAgIGNsYXNzPVwiY2F0ZWdvcnktdGFiXCJcclxuICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwic2VsZWN0ZWRDYXRlZ29yeUlkID09PSBudWxsXCJcclxuICAgICAgICAgIChjbGljayk9XCJzZWxlY3RDYXRlZ29yeShudWxsKVwiXHJcbiAgICAgICAgICA+QWxsPC9zcGFuXHJcbiAgICAgICAgPlxyXG4gICAgICAgIDxzcGFuXHJcbiAgICAgICAgICBjbGFzcz1cImNhdGVnb3J5LXRhYlwiXHJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgY2F0ZWdvcnkgb2YgY2F0ZWdvcnlMaXN0XCJcclxuICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwic2VsZWN0ZWRDYXRlZ29yeUlkID09PSBjYXRlZ29yeS5pZFwiXHJcbiAgICAgICAgICAoY2xpY2spPVwic2VsZWN0Q2F0ZWdvcnkoY2F0ZWdvcnkuaWQpXCI+XHJcbiAgICAgICAgICB7eyBjYXRlZ29yeS5jYXRlZ29yeU5hbWUgfX1cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8c2ltcG8tY2FyZC1za2VsZXRvbi1sb2FkZXJcclxuICAgICAgICAqbmdJZj1cImFwaUxvYWRpbmdcIlxyXG4gICAgICAgIFtzaG93VGl0bGVzXT1cInRydWVcIj48L3NpbXBvLWNhcmQtc2tlbGV0b24tbG9hZGVyPlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3M9XCJuby1ibG9nLXRleHQtaW5saW5lIGhlYWRpbmctbWVkaXVtXCJcclxuICAgICAgICAqbmdJZj1cIiFhcGlMb2FkaW5nICYmIChkaXNwbGF5ZWRCbG9ncz8ubGVuZ3RoIHx8IDApID09PSAwXCI+XHJcbiAgICAgICAgU29ycnkgdGhlcmUgYXJlIG5vIGJsb2cgcG9zdHMgaW4gdGhpcyBjYXRlZ29yeS5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICBjbGFzcz1cInJvdyBnYXAtMjBcIlxyXG4gICAgICAgICpuZ0lmPVwiIWFwaUxvYWRpbmcgJiYgKGRpc3BsYXllZEJsb2dzPy5sZW5ndGggfHwgMCkgPiAwXCI+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgW3NpbXBvQ29sdW1uRGlyZWN0aXZlXT1cImRhdGE/LnN0eWxlcz8uc2l6ZVwiXHJcbiAgICAgICAgICBbaWRdPVwiZGF0YT8uaWRcIlxyXG4gICAgICAgICAgKm5nRm9yPVwibGV0IGNvbnRlbnQgb2YgZGlzcGxheWVkQmxvZ3NcIlxyXG4gICAgICAgICAgY2xhc3M9XCJkLWZsZXhcIj5cclxuICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIlsnL2Jsb2cnLCBjb250ZW50Lm5ld1Bvc3RUaXRsZV1cIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwiZ2V0QmxvZ0J5SWQoY29udGVudC5hcnRpY2xlU2x1ZylcIj5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiY2FyZHMgaC0xMDBcIlxyXG4gICAgICAgICAgICAgIFtzaW1wb0Nvcm5lcl09XCJzdHlsZT8uY29ybmVyc1wiXHJcbiAgICAgICAgICAgICAgW2lkXT1cImRhdGE/LmlkXCI+XHJcbiAgICAgICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICAgICAgbG9hZGluZz1cImxhenlcIlxyXG4gICAgICAgICAgICAgICAgW3NyY109XCJjb250ZW50LmltZ1wiXHJcbiAgICAgICAgICAgICAgICBbc2ltcG9JbWFnZURpcmVjdGl2ZV09XCJzdHlsZT8uaW1hZ2VcIlxyXG4gICAgICAgICAgICAgICAgW2lkXT1cImRhdGE/LmlkXCJcclxuICAgICAgICAgICAgICAgIFtzaW1wb0Nvcm5lcl09XCJzdHlsZT8uY29ybmVyc1wiXHJcbiAgICAgICAgICAgICAgICBhbHQ9XCJcIlxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJjb250ZW50LmltZ1wiXHJcbiAgICAgICAgICAgICAgICBsb2FkaW5nPVwibGF6eVwiIC8+XHJcbiAgICAgICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICAgICAgbG9hZGluZz1cImxhenlcIlxyXG4gICAgICAgICAgICAgICAgW3NpbXBvSW1hZ2VEaXJlY3RpdmVdPVwic3R5bGU/LmltYWdlXCJcclxuICAgICAgICAgICAgICAgIFtpZF09XCJkYXRhPy5pZFwiXHJcbiAgICAgICAgICAgICAgICBbc2ltcG9Db3JuZXJdPVwic3R5bGU/LmNvcm5lcnNcIlxyXG4gICAgICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9kZXYtYmVlb3MuczMuYW1hem9uYXdzLmNvbS9saWJyYXJ5LW1lZGlhLzU0MTMyOWMxNzE5MjM2OTYzMTk5cGV4ZWxzLXBpeGFiYXktMjYyNTA4LmpwZ1wiXHJcbiAgICAgICAgICAgICAgICBhbHQ9XCJcIlxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCIhY29udGVudC5pbWdcIlxyXG4gICAgICAgICAgICAgICAgbG9hZGluZz1cImxhenlcIiAvPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLTMwXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IGZsZXgtd3JhcCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTIgbWItMlwiXHJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY29udGVudD8udGFncz8ubGVuZ3RoIHx8IGNvbnRlbnQ/LmNhdGVnb3J5TmFtZVwiPlxyXG4gICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cIm1iLTAgcC0yIGJvcmRlclwiICpuZ0lmPVwiY29udGVudD8uY2F0ZWdvcnlOYW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgY29udGVudC5jYXRlZ29yeU5hbWUgfX1cclxuICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBsZXQgdGFnIG9mIChjb250ZW50Py50YWdzPy5sZW5ndGggfHwgMCkgPiAzICYmICFjb250ZW50LnNob3dBbGxUYWdzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gKGNvbnRlbnQ/LnRhZ3MgfCBzbGljZTogMCA6IDIpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogY29udGVudD8udGFnc1xyXG4gICAgICAgICAgICAgICAgICAgIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwibWItMCBwLTIgYm9yZGVyXCI+e3sgdGFnIHwgdGl0bGVjYXNlIH19PC9wPlxyXG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgPHBcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1iLTAgcC0yIHNlZS1tb3JlLWNoaXBcIlxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiKGNvbnRlbnQ/LnRhZ3M/Lmxlbmd0aCB8fCAwKSA+IDNcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyBjb250ZW50LnNob3dBbGxUYWdzID0gIWNvbnRlbnQuc2hvd0FsbFRhZ3NcIj5cclxuICAgICAgICAgICAgICAgICAgICB7eyBjb250ZW50LnNob3dBbGxUYWdzID8gJ1NlZSBsZXNzJyA6ICdTZWUgbW9yZScgfX1cclxuICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaGVhZGluZy1tZWRpdW0gdGl0bGUgbXQtMiBmcy0yMFwiXHJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYmxvZ0NvbnRlbnQ/LmRpc3BsYXk/LnNob3dIZWFkaW5nXCI+XHJcbiAgICAgICAgICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgICAgICAgICAgY29udGVudC5wb3N0VGl0bGUubGVuZ3RoID4gMTAwXHJcbiAgICAgICAgICAgICAgICAgICAgICA/IGNvbnRlbnQucG9zdFRpdGxlLnN1YnN0cmluZygwLCAxMDApICsgJy4uLlwiJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgOiBjb250ZW50LnBvc3RUaXRsZVxyXG4gICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICA8IS0tIHt7Y29udGVudC5wb3N0VGl0bGV9fSAtLT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBmbGV4LXdyYXAgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0zIGJsb2ctbWV0YS1yb3cgbXQtMlwiXHJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgY29udGVudC5wdWJsaXNoZWREYXRlIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgY29udGVudC5ibG9nU2NoZWR1bGVkRGF0ZSB8fFxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlZFRpbWVTdGFtcFxyXG4gICAgICAgICAgICAgICAgICBcIj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJibG9nLW1ldGEtaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWV0YS1pY29uXCJcclxuICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMTRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiM1wiIHk9XCI0XCIgd2lkdGg9XCIxOFwiIGhlaWdodD1cIjE4XCIgcng9XCIyXCI+PC9yZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGxpbmUgeDE9XCIxNlwiIHkxPVwiMlwiIHgyPVwiMTZcIiB5Mj1cIjZcIj48L2xpbmU+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bGluZSB4MT1cIjhcIiB5MT1cIjJcIiB4Mj1cIjhcIiB5Mj1cIjZcIj48L2xpbmU+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bGluZSB4MT1cIjNcIiB5MT1cIjEwXCIgeDI9XCIyMVwiIHkyPVwiMTBcIj48L2xpbmU+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAge3tcclxuICAgICAgICAgICAgICAgICAgICAgIChjb250ZW50LnB1Ymxpc2hlZERhdGUgfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudC5ibG9nU2NoZWR1bGVkRGF0ZSB8fFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50LmNyZWF0ZWRUaW1lU3RhbXApIHwgZGF0ZTogJ2QgTU1NIHknXHJcbiAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJsb2ctbWV0YS1pdGVtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtZXRhLWljb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIxNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcclxuICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIyXCJcclxuICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMSAxMnM0LTggMTEtOCAxMSA4IDExIDgtNCA4LTExIDgtMTEtOC0xMS04elwiPjwvcGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxMlwiIGN5PVwiMTJcIiByPVwiM1wiPjwvY2lyY2xlPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IGNvbnRlbnQudG90YWxWaXNpdHMgfHwgMCB9fVxyXG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJvZHktbGFyZ2UgbXQtNCBwYi0xNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJibG9nQ29udGVudD8uZGlzcGxheT8uc2hvd0NvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICB7e1xyXG4gICAgICAgICAgICAgICAgICAgICAgY29udGVudC5wb3N0U3VtbWFyeS5sZW5ndGggPiAyNTBcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBjb250ZW50LnBvc3RTdW1tYXJ5LnN1YnN0cmluZygwLCAyNTApICsgJy4uLidcclxuICAgICAgICAgICAgICAgICAgICAgICAgOiBjb250ZW50LnBvc3RTdW1tYXJ5XHJcbiAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmQgcC0yIGFsaWduLWl0ZW1zLWNlbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgY29udGVudD8uYXV0aG9yPy5jb250ZW50ICYmXHJcbiAgICAgICAgICAgICAgICAgICAgY29udGVudD8uYXV0aG9yPy5jb250ZW50Lmxlbmd0aCA+IDBcclxuICAgICAgICAgICAgICAgICAgXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxwPi0ge3sgY29udGVudD8uYXV0aG9yPy5jb250ZW50IHwgdGl0bGVjYXNlIH19PC9wPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiYXV0aG9yc1wiIFtuZ0NsYXNzXT1cIidqdXN0aWZ5LWNvbnRlbnQtJyArIChzdHlsZT8ubGF5b3V0Py5hbGlnbiB8fCAnJylcIj5cclxuICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5wZXJzb248L21hdC1pY29uPiAmbmJzcDsmbmJzcDs8c3BhbiBjbGFzcz1cImJvZHktbGFyZ2VcIj57e2NvbnRlbnQ/LmF1dGhvcj8uY29udGVudCB8IHRpdGxlY2FzZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FsZW5kYXJfdG9kYXlcIj5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPmNhbGVuZGFyX3RvZGF5PC9tYXQtaWNvbj4gJm5ic3A7Jm5ic3A7IDxzcGFuIGNsYXNzPVwiYm9keS1sYXJnZVwiPnt7Y29udGVudC5jcmVhdGVkVGltZVN0YW1wIHxcclxuICAgICAgICAgICAgICAgICAgICBkYXRlOidFRUVFLCBNTU0sIGQsIHknfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uIGhlYWRpbmctbGFyZ2VcIiAoY2xpY2spPVwiZ2V0QmxvZ0J5SWQoY29udGVudC5uZXdQb3N0VGl0bGUpXCIgW25nQ2xhc3NdPVwiJ2p1c3RpZnktY29udGVudC0nICsgKHN0eWxlPy5sYXlvdXQ/LmFsaWduIHx8ICcnKVwiPlxyXG4gICAgICAgICAgICAgICAgUmVhZCBNb3JlIDxtYXQtaWNvbj5hcnJvd19yaWdodF9hbHQ8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2E+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN0eWxlPy5kZXZpZGVyPy5kaXNwbGF5XCI+XHJcbiAgICA8c2ltcG8tc3ZnLWRpdmlkZXJcclxuICAgICAgW2RpdmlkZXJUeXBlXT1cInN0eWxlPy5kZXZpZGVyPy5kZXZpZGVyVHlwZVwiXHJcbiAgICAgIFtjb2xvcl09XCJuZXh0Q29tcG9uZW50Q29sb3I/LmNvbG9yXCI+PC9zaW1wby1zdmctZGl2aWRlcj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICA8ZGl2IFtuZ0NsYXNzXT1cInsgaG92ZXJfZWZmZWN0OiBlZGl0IH1cIiAqbmdJZj1cInNob3dFZGl0b3JzXCI+XHJcbiAgICA8c2ltcG8taG92ZXItZWxlbWVudHNcclxuICAgICAgW2RhdGFdPVwiZGF0YVwiXHJcbiAgICAgIFtpbmRleF09XCJpbmRleFwiXHJcbiAgICAgIFtlZGl0T3B0aW9uc109XCJlZGl0XCI+PC9zaW1wby1ob3Zlci1lbGVtZW50cz5cclxuICA8L2Rpdj5cclxuPC9zZWN0aW9uPlxyXG48bmctdGVtcGxhdGUgI2Vsc2VCbG9jaz5cclxuICA8ZGl2IGNsYXNzPVwibm8tYmxvZy10ZXh0IGhlYWRpbmctbWVkaXVtXCI+U29ycnkgdGhlcmUgYXJlIG5vIGJsb2cgcG9zdHMuPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==