@hmcts/ccpay-web-component 6.2.13 → 6.2.14-beta1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/esm2022/lib/components/add-remission/add-remission.component.mjs +4 -4
  2. package/esm2022/lib/components/allocate-payments/allocate-payments.component.mjs +14 -9
  3. package/esm2022/lib/components/card-details/card-details.component.mjs +4 -4
  4. package/esm2022/lib/components/case-transactions/case-transactions.component.mjs +4 -4
  5. package/esm2022/lib/components/contact-details/contact-details.component.mjs +4 -4
  6. package/esm2022/lib/components/error-banner/error-banner.component.mjs +4 -4
  7. package/esm2022/lib/components/fee-summary/fee-summary.component.mjs +4 -4
  8. package/esm2022/lib/components/mark-unidentified-payment/mark-unidentified-payment.component.mjs +4 -4
  9. package/esm2022/lib/components/mark-unsolicited-payment/mark-unsolicited-payment.component.mjs +4 -4
  10. package/esm2022/lib/components/notification-preview/notification-preview.component.mjs +4 -4
  11. package/esm2022/lib/components/page-not-found.component.mjs +4 -4
  12. package/esm2022/lib/components/payment-list/payment-list.component.mjs +4 -4
  13. package/esm2022/lib/components/payment-view/payment-view.component.mjs +4 -4
  14. package/esm2022/lib/components/pba-details/pba-details.component.mjs +4 -4
  15. package/esm2022/lib/components/pba-payment/pba-payment.component.mjs +4 -4
  16. package/esm2022/lib/components/process-refund/process-refund.component.mjs +4 -4
  17. package/esm2022/lib/components/processed-payments/processed-payments.component.mjs +4 -4
  18. package/esm2022/lib/components/refund-list/refund-list.component.mjs +4 -4
  19. package/esm2022/lib/components/refund-status/refund-status.component.mjs +4 -4
  20. package/esm2022/lib/components/reports/reports.component.mjs +4 -4
  21. package/esm2022/lib/components/service-request/service-request.component.mjs +4 -4
  22. package/esm2022/lib/components/status-history/status-history.component.mjs +4 -4
  23. package/esm2022/lib/components/table/table.component.mjs +4 -4
  24. package/esm2022/lib/components/unprocessed-payments/unprocessed-payments.component.mjs +4 -4
  25. package/esm2022/lib/payment-lib.component.mjs +4 -4
  26. package/esm2022/lib/payment-lib.module.mjs +35 -42
  27. package/esm2022/lib/payment-lib.service.mjs +4 -4
  28. package/esm2022/lib/pipes/capitalize.pipe.mjs +4 -4
  29. package/esm2022/lib/pipes/ccd-hyphens.pipe.mjs +4 -4
  30. package/esm2022/lib/pipes/key-value.pipe.mjs +4 -4
  31. package/esm2022/lib/pipes/sanitize-html.pipe.mjs +4 -4
  32. package/esm2022/lib/services/bulk-scaning-payment/bulk-scaning-payment.service.mjs +4 -4
  33. package/esm2022/lib/services/card-details/card-details.service.mjs +4 -4
  34. package/esm2022/lib/services/case-transactions/case-transactions.service.mjs +4 -4
  35. package/esm2022/lib/services/notification/notification.service.mjs +4 -4
  36. package/esm2022/lib/services/orderslist.service.mjs +4 -4
  37. package/esm2022/lib/services/payment-list/payment-list.service.mjs +4 -4
  38. package/esm2022/lib/services/payment-view/payment-view.service.mjs +4 -4
  39. package/esm2022/lib/services/refunds/refunds.service.mjs +4 -4
  40. package/esm2022/lib/services/shared/error-handler.service.mjs +4 -4
  41. package/esm2022/lib/services/shared/httpclient/webcomponent.http.client.mjs +4 -4
  42. package/esm2022/lib/services/shared/logger/console-logger.service.mjs +4 -4
  43. package/esm2022/lib/services/shared/logger/logger.service.mjs +4 -4
  44. package/esm2022/lib/services/status-history/status-history.service.mjs +4 -4
  45. package/esm2022/lib/services/xl-file/xl-file.service.mjs +4 -4
  46. package/fesm2022/hmcts-ccpay-web-component.mjs +177 -179
  47. package/fesm2022/hmcts-ccpay-web-component.mjs.map +1 -1
  48. package/lib/components/add-remission/add-remission.component.d.ts +1 -1
  49. package/lib/components/allocate-payments/allocate-payments.component.d.ts +2 -2
  50. package/lib/components/case-transactions/case-transactions.component.d.ts +1 -1
  51. package/lib/components/fee-summary/fee-summary.component.d.ts +1 -1
  52. package/lib/payment-lib.module.d.ts +19 -20
  53. package/package.json +1 -1
@@ -6,13 +6,13 @@ export class PbaDetailsComponent {
6
6
  constructor() { }
7
7
  ngOnInit() {
8
8
  }
9
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: PbaDetailsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
10
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.8", type: PbaDetailsComponent, selector: "ccpay-pba-details", inputs: { payment: "payment" }, ngImport: i0, template: "\n <h2 class=\"heading-large\">Payment method</h2>\n <table>\n <tbody>\n <tr>\n <td class=\"bold tb-col-w\">Method</td>\n <td class=\"capitalize\">{{ payment.method | lowercase}}</td>\n </tr>\n <tr>\n <td class=\"bold tb-col-w\">Type</td>\n <td>Credit</td>\n </tr>\n <tr *ngIf=\"payment.organisation_name\">\n <td class=\"bold tb-col-w\">PBA account name</td>\n <td>{{ payment.organisation_name }}</td>\n </tr>\n <tr *ngIf=\"payment.account_number\">\n <td class=\"bold tb-col-w\">PBA number</td>\n <td>{{ payment.account_number }}</td>\n </tr>\n <tr *ngIf=\"payment.customer_reference\">\n <td class=\"bold tb-col-w\">Customer internal reference</td>\n <td>{{ payment.customer_reference }}</td>\n </tr>\n </tbody>\n </table>\n", styles: [".capitalize:first-letter{text-transform:uppercase}.tb-col-w{width:330px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.LowerCasePipe, name: "lowercase" }] });
9
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PbaDetailsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
10
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: PbaDetailsComponent, selector: "ccpay-pba-details", inputs: { payment: "payment" }, ngImport: i0, template: "\n <h2 class=\"heading-large\">Payment method</h2>\n <table>\n <tbody>\n <tr>\n <td class=\"bold tb-col-w\">Method</td>\n <td class=\"capitalize\">{{ payment.method | lowercase}}</td>\n </tr>\n <tr>\n <td class=\"bold tb-col-w\">Type</td>\n <td>Credit</td>\n </tr>\n <tr *ngIf=\"payment.organisation_name\">\n <td class=\"bold tb-col-w\">PBA account name</td>\n <td>{{ payment.organisation_name }}</td>\n </tr>\n <tr *ngIf=\"payment.account_number\">\n <td class=\"bold tb-col-w\">PBA number</td>\n <td>{{ payment.account_number }}</td>\n </tr>\n <tr *ngIf=\"payment.customer_reference\">\n <td class=\"bold tb-col-w\">Customer internal reference</td>\n <td>{{ payment.customer_reference }}</td>\n </tr>\n </tbody>\n </table>\n", styles: [".capitalize:first-letter{text-transform:uppercase}.tb-col-w{width:330px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.LowerCasePipe, name: "lowercase" }] });
11
11
  }
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: PbaDetailsComponent, decorators: [{
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PbaDetailsComponent, decorators: [{
13
13
  type: Component,
14
14
  args: [{ selector: 'ccpay-pba-details', template: "\n <h2 class=\"heading-large\">Payment method</h2>\n <table>\n <tbody>\n <tr>\n <td class=\"bold tb-col-w\">Method</td>\n <td class=\"capitalize\">{{ payment.method | lowercase}}</td>\n </tr>\n <tr>\n <td class=\"bold tb-col-w\">Type</td>\n <td>Credit</td>\n </tr>\n <tr *ngIf=\"payment.organisation_name\">\n <td class=\"bold tb-col-w\">PBA account name</td>\n <td>{{ payment.organisation_name }}</td>\n </tr>\n <tr *ngIf=\"payment.account_number\">\n <td class=\"bold tb-col-w\">PBA number</td>\n <td>{{ payment.account_number }}</td>\n </tr>\n <tr *ngIf=\"payment.customer_reference\">\n <td class=\"bold tb-col-w\">Customer internal reference</td>\n <td>{{ payment.customer_reference }}</td>\n </tr>\n </tbody>\n </table>\n", styles: [".capitalize:first-letter{text-transform:uppercase}.tb-col-w{width:330px}\n"] }]
15
15
  }], ctorParameters: () => [], propDecorators: { payment: [{
16
16
  type: Input
17
17
  }] } });
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGJhLWRldGFpbHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcGF5bWVudC1saWIvc3JjL2xpYi9jb21wb25lbnRzL3BiYS1kZXRhaWxzL3BiYS1kZXRhaWxzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3BheW1lbnQtbGliL3NyYy9saWIvY29tcG9uZW50cy9wYmEtZGV0YWlscy9wYmEtZGV0YWlscy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQzs7O0FBUXpELE1BQU0sT0FBTyxtQkFBbUI7SUFDckIsT0FBTyxDQUFXO0lBRTNCLGdCQUFnQixDQUFDO0lBRWpCLFFBQVE7SUFDUixDQUFDO3VHQU5VLG1CQUFtQjsyRkFBbkIsbUJBQW1CLHlGQ1JoQyxrekJBMEJBOzsyRkRsQmEsbUJBQW1CO2tCQUwvQixTQUFTOytCQUNFLG1CQUFtQjt3REFLcEIsT0FBTztzQkFBZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJUGF5bWVudCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSVBheW1lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY3BheS1wYmEtZGV0YWlscycsXG4gIHRlbXBsYXRlVXJsOiAnLi9wYmEtZGV0YWlscy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BiYS1kZXRhaWxzLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBQYmFEZXRhaWxzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgcGF5bWVudDogSVBheW1lbnQ7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgfVxuXG59XG4iLCJcbiAgPGgyIGNsYXNzPVwiaGVhZGluZy1sYXJnZVwiPlBheW1lbnQgbWV0aG9kPC9oMj5cbiAgPHRhYmxlPlxuICAgIDx0Ym9keT5cbiAgICA8dHI+XG4gICAgICA8dGQgY2xhc3M9XCJib2xkIHRiLWNvbC13XCI+TWV0aG9kPC90ZD5cbiAgICAgIDx0ZCBjbGFzcz1cImNhcGl0YWxpemVcIj57eyBwYXltZW50Lm1ldGhvZCB8IGxvd2VyY2FzZX19PC90ZD5cbiAgICA8L3RyPlxuICAgIDx0cj5cbiAgICAgIDx0ZCBjbGFzcz1cImJvbGQgdGItY29sLXdcIj5UeXBlPC90ZD5cbiAgICAgIDx0ZD5DcmVkaXQ8L3RkPlxuICAgIDwvdHI+XG4gICAgPHRyICpuZ0lmPVwicGF5bWVudC5vcmdhbmlzYXRpb25fbmFtZVwiPlxuICAgICAgPHRkIGNsYXNzPVwiYm9sZCB0Yi1jb2wtd1wiPlBCQSBhY2NvdW50IG5hbWU8L3RkPlxuICAgICAgPHRkPnt7IHBheW1lbnQub3JnYW5pc2F0aW9uX25hbWUgfX08L3RkPlxuICAgIDwvdHI+XG4gICAgPHRyICpuZ0lmPVwicGF5bWVudC5hY2NvdW50X251bWJlclwiPlxuICAgICAgPHRkIGNsYXNzPVwiYm9sZCB0Yi1jb2wtd1wiPlBCQSBudW1iZXI8L3RkPlxuICAgICAgPHRkPnt7IHBheW1lbnQuYWNjb3VudF9udW1iZXIgfX08L3RkPlxuICAgIDwvdHI+XG4gICAgPHRyICpuZ0lmPVwicGF5bWVudC5jdXN0b21lcl9yZWZlcmVuY2VcIj5cbiAgICAgIDx0ZCBjbGFzcz1cImJvbGQgdGItY29sLXdcIj5DdXN0b21lciBpbnRlcm5hbCByZWZlcmVuY2U8L3RkPlxuICAgICAgPHRkPnt7IHBheW1lbnQuY3VzdG9tZXJfcmVmZXJlbmNlIH19PC90ZD5cbiAgICA8L3RyPlxuICAgIDwvdGJvZHk+XG4gIDwvdGFibGU+XG4iXX0=
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGJhLWRldGFpbHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcGF5bWVudC1saWIvc3JjL2xpYi9jb21wb25lbnRzL3BiYS1kZXRhaWxzL3BiYS1kZXRhaWxzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3BheW1lbnQtbGliL3NyYy9saWIvY29tcG9uZW50cy9wYmEtZGV0YWlscy9wYmEtZGV0YWlscy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQzs7O0FBUXpELE1BQU0sT0FBTyxtQkFBbUI7SUFDckIsT0FBTyxDQUFXO0lBRTNCLGdCQUFnQixDQUFDO0lBRWpCLFFBQVE7SUFDUixDQUFDO3dHQU5VLG1CQUFtQjs0RkFBbkIsbUJBQW1CLHlGQ1JoQyxrekJBMEJBOzs0RkRsQmEsbUJBQW1CO2tCQUwvQixTQUFTOytCQUNFLG1CQUFtQjt3REFLcEIsT0FBTztzQkFBZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJUGF5bWVudCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSVBheW1lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY3BheS1wYmEtZGV0YWlscycsXG4gIHRlbXBsYXRlVXJsOiAnLi9wYmEtZGV0YWlscy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BiYS1kZXRhaWxzLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBQYmFEZXRhaWxzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgcGF5bWVudDogSVBheW1lbnQ7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgfVxuXG59XG4iLCJcbiAgPGgyIGNsYXNzPVwiaGVhZGluZy1sYXJnZVwiPlBheW1lbnQgbWV0aG9kPC9oMj5cbiAgPHRhYmxlPlxuICAgIDx0Ym9keT5cbiAgICA8dHI+XG4gICAgICA8dGQgY2xhc3M9XCJib2xkIHRiLWNvbC13XCI+TWV0aG9kPC90ZD5cbiAgICAgIDx0ZCBjbGFzcz1cImNhcGl0YWxpemVcIj57eyBwYXltZW50Lm1ldGhvZCB8IGxvd2VyY2FzZX19PC90ZD5cbiAgICA8L3RyPlxuICAgIDx0cj5cbiAgICAgIDx0ZCBjbGFzcz1cImJvbGQgdGItY29sLXdcIj5UeXBlPC90ZD5cbiAgICAgIDx0ZD5DcmVkaXQ8L3RkPlxuICAgIDwvdHI+XG4gICAgPHRyICpuZ0lmPVwicGF5bWVudC5vcmdhbmlzYXRpb25fbmFtZVwiPlxuICAgICAgPHRkIGNsYXNzPVwiYm9sZCB0Yi1jb2wtd1wiPlBCQSBhY2NvdW50IG5hbWU8L3RkPlxuICAgICAgPHRkPnt7IHBheW1lbnQub3JnYW5pc2F0aW9uX25hbWUgfX08L3RkPlxuICAgIDwvdHI+XG4gICAgPHRyICpuZ0lmPVwicGF5bWVudC5hY2NvdW50X251bWJlclwiPlxuICAgICAgPHRkIGNsYXNzPVwiYm9sZCB0Yi1jb2wtd1wiPlBCQSBudW1iZXI8L3RkPlxuICAgICAgPHRkPnt7IHBheW1lbnQuYWNjb3VudF9udW1iZXIgfX08L3RkPlxuICAgIDwvdHI+XG4gICAgPHRyICpuZ0lmPVwicGF5bWVudC5jdXN0b21lcl9yZWZlcmVuY2VcIj5cbiAgICAgIDx0ZCBjbGFzcz1cImJvbGQgdGItY29sLXdcIj5DdXN0b21lciBpbnRlcm5hbCByZWZlcmVuY2U8L3RkPlxuICAgICAgPHRkPnt7IHBheW1lbnQuY3VzdG9tZXJfcmVmZXJlbmNlIH19PC90ZD5cbiAgICA8L3RyPlxuICAgIDwvdGJvZHk+XG4gIDwvdGFibGU+XG4iXX0=
@@ -145,10 +145,10 @@ export class PbaPaymentComponent {
145
145
  this.paymentLibComponent.ISBSENABLE = true;
146
146
  this.paymentLibComponent.isFromServiceRequestPage = true;
147
147
  }
148
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: PbaPaymentComponent, deps: [{ token: 'PAYMENT_LIB' }, { token: i1.PaymentViewService }], target: i0.ɵɵFactoryTarget.Component });
149
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.8", type: PbaPaymentComponent, isStandalone: true, selector: "ccpay-pba-payment", inputs: { pbaPayOrderRef: "pbaPayOrderRef" }, ngImport: i0, template: "<ng-container *ngIf=\"viewStatus === 'pba-payment'\">\n\n <div class=\"govuk-breadcrumbs\" *ngIf=\"!errorMsg && !isPBAAccountPaymentSuccess && !isCardPaymentSuccess\">\n <ol class=\"govuk-breadcrumbs__list\">\n <li class=\"govuk-breadcrumbs__list-item\">\n <a href=\"javascript:void(0)\" (click)=\"gotoCasetransationPage()\" class=\"govuk-back-link pba-payments-16-font\">Back</a>\n </li>\n </ol>\n </div>\n <div class=\"pba-payment\" *ngIf=\"(pbaAccountList?.length > 0 || errorMsg) && !isInSufficiantFund && !isPBAAccountNotExist && !isPBAServerError && !isPBAAccountHold && !isPBAAccountPaymentSuccess && isCardPaymentSuccess\">\n\n <div *ngIf=\"errorMsg\" class=\"govuk-error-summary pba-payments-error-box--size\" aria-labelledby=\"error-summary-title\" >\n <h2 class=\"govuk-error-summary__title govuk-error-summary__title-custom pba-payments-24-font\" id=\"error-summary-title\">\n {{ \"There is a problem\" | rpxTranslate }}\n </h2>\n <div class=\"govuk-error-summary__body\">\n <ul class=\"govuk-list govuk-error-summary__list\">\n <li class=\"pba-payments-error-16-font\">\n {{ \"Your PBA account cannot be found.\" | rpxTranslate }}\n </li>\n <li class=\"pba-payments-error-16-font\">\n {{ \"If you know your organisation has a PBA, try again.\" | rpxTranslate : {pba: \"PBA\"} }}\n </li>\n <li class=\"pba-payments-error-16-font\">\n {{ \"You can also pay by credit or debit card.\" | rpxTranslate }}\n </li>\n </ul>\n </div>\n </div>\n <!-- <h1 class=\"heading-medium margin-top-10-px\">Pay fee using Payment by Account (PBA)</h1> -->\n <div class=\"govuk-form-group margin-top-10-px\">\n <label class=\"govuk-label pba-payments-govuk__label pba-payments-19-font\">\n {{ \"Amount to pay\" | rpxTranslate }}\n </label>\n <span class=\"pba-payments-19-font\">{{pbaPayOrderRef.orderTotalFees | currency :'GBP':'symbol':'1.2-2'}}</span>\n </div>\n\n <div class=\"govuk-form-group\" *ngIf=\"!errorMsg\">\n <fieldset class=\"govuk-fieldset\" aria-describedby=\"contact-hint\">\n <div class=\"govuk-radios\" data-module=\"govuk-radios\">\n <div class=\"govuk-radios__item\">\n <input class=\"govuk-radios__input\" id=\"pbaAccount\" name=\"paymentSelection\" type=\"radio\" value=\"PBA\" (click)=\"selectPaymentMethod('PBA')\" data-aria-controls=\"pba-account\">\n <label class=\"govuk-label govuk-radios__label pba-payments-19-font pba-payments-font-bld\" for=\"pbaAccount\">\n {{ \"Pay fee using Payment by Account (PBA)\" | rpxTranslate: {pba: \"(PBA)\"} }}\n </label>\n </div>\n <div class=\"govuk-radios__conditional\" id=\"conditional-contact\" *ngIf=\"isPbaAccountSelected\">\n <div class=\"govuk-form-group pba-payments-select-box--size\">\n <label class=\"govuk-label pba-payments-govuk__label pba-payments-19-font\" for=\"pbaAccountNumber\">\n {{ \"Select a PBA\" | rpxTranslate: {pba: \"PBA\"} }}\n </label>\n <select class=\"form-control short-input\" id=\"pbaAccountNumber\" (change)=\"selectpbaaccount($event)\">\n <option value=\"\" selected='selected'>{{ \"Select option\" | rpxTranslate }}</option>\n <option *ngFor=\"let pbaAccount of pbaAccountList;\" value=\"{{pbaAccount}}\">{{pbaAccount}}</option>\n </select>\n </div>\n <div class=\"govuk-form-group\" *ngIf=\"!errorMsg && selectedPbaAccount\">\n <label class=\"govuk-label pba-payments-govuk__label pba-payments-24-font\" for=\"pbaAccountNumber\">\n {{ \"Enter a reference for your PBA account statements\" | rpxTranslate: {pba: \"PBA\"} }}\n </label>\n <div id=\"event-name-hint\" class=\"govuk-hint pba-payments-19-font pba-payment-width\">\n {{ \"This should be your own unique reference to identify the case. It will appear on your statements.\" | rpxTranslate }}\n </div>\n <input class=\"govuk-input pba-payments-ref-box--size pba-payments-19-font\" id=\"pbaAccountRef\" (change)=\"selectpbaaccount($event)\" (keyup)=\"selectpbaaccount($event)\" name=\"pbaAccountRef\" type=\"text\" aria-describedby=\"pbaAccountRef-hint\">\n </div>\n\n </div>\n <div class=\"govuk-radios__item\">\n <input class=\"govuk-radios__input\" id=\"cardPayment\" name=\"paymentSelection\" type=\"radio\" value=\"card\" (click)=\"selectPaymentMethod('CARD')\" data-aria-controls=\"card-payment\">\n <label class=\"govuk-label govuk-radios__label pba-payments-19-font pba-payments-font-bld\" for=\"cardPayment\">\n {{ \"Pay by credit or debit card\" | rpxTranslate }}\n </label>\n </div>\n </div>\n </fieldset>\n </div>\n\n <div class=\"govuk-button--group\" *ngIf=\"errorMsg\">\n <button type=\"button\" class=\"button pba-payments-19-font govuk-button--secondary pba-payments-margin-10\" (click)=\"gotoCasetransationPage()\">\n {{ \"View Service Request\" | rpxTranslate }}\n </button>\n <button type=\"submit\" class=\"button pba-payments-19-font pba-payments-20-margin\" (click)=\"cardPayment()\">\n {{ \"Pay by card\" | rpxTranslate }}\n </button>\n </div>\n <div class=\"govuk-button--group\" *ngIf=\"!errorMsg\">\n <button type=\"submit\" [disabled]=\"isContinueButtondisabled\" class=\"button pba-payments-19-font pba-payments-20-margin\" (click)=\"saveAndContinue()\">\n <span *ngIf=\"!isPBADropdownSelected\" class=\"white\">{{ \"Continue\" | rpxTranslate }}</span>\n <span *ngIf=\"isPBADropdownSelected\" class=\"white\">{{ \"Confirm payment\" | rpxTranslate }}</span>\n </button>\n </div>\n </div>\n<ng-container *ngIf=\"pbaAccountList?.length <= 0 && !errorMsg && isGetPBAAccountSucceed && isCardPaymentSuccess\">\n <div class=\"govuk-width-container\">\n <main class=\"govuk-main-wrapper govuk-main-wrapper--l\" id=\"main-content\" role=\"main\">\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-warning-text\">\n <span class=\"govuk-warning-text__icon\" aria-hidden=\"true\">!</span>\n <strong class=\"govuk-warning-text__text\">\n <span class=\"govuk-warning-text__assistive\">{{ \"Warning\" | rpxTranslate }}</span>\n <h2 class=\"warning-heading-m\">{{ \"You don\u2019t have a registered PBA.\" | rpxTranslate: {pba: \"PBA\"} }}</h2>\n </strong>\n </div>\n <div class=\"pba-payments-margin-top-10\">\n <h2 class=\"heading-medium\">{{ \"Pay by credit or debit card\" | rpxTranslate }}</h2>\n <p class=\"govuk-body pba-payments-19-font\">\n {{ \"We recommend that you apply to get a new PBA to pay for fees.\" | rpxTranslate }}\n </p>\n <p class=\"govuk-bod ypba-payments-19-font\">\n {{ \"you can also pay by credit or debit card if you need to pay now\" | rpxTranslate }}\n </p>\n <p class=\"govuk-body\">\n <button type=\"submit\" (click)=\"cardPayment()\" class=\"button pba-payments-19-font pba-payments-20-margin\">\n {{ \"Pay by card\" | rpxTranslate }}\n </button>\n </p>\n\n </div>\n <div class=\"pba-payments-margin-top-10\">\n <h2 class=\"heading-medium\">{{ \"Register an existing PBA with MyHMCTS\" | rpxTranslate: {pba: \"PBA\", myhmcts: \"MyHMCTS\"} }}</h2>\n <p class=\"govuk-body pba-payments-19-font\">\n {{ \"You may find it easier in future to pay by PBA, your organisation administrator will need to\n email\" | rpxTranslate: {pba: \"PBA\"} }} <a href=\"mailto: MyHMCTSsupport@justice.gov.uk\">MyHMCTSsupport&#64;justice.gov.uk</a>{{ \"to ask for your PBA to be registered with your\n MyHMCTS account. You should include your organisation name and PBA number.\" | rpxTranslate: {pba: \"PBA\", myhmcts: \"MyHMCTS\"} }}\n </p>\n <p class=\"govuk-body pba-payments-19-font\">\n {{ \"It can then take up to 3 days for your account to be updated. You\u2019ll need to start your claim\n again to pay the fee.\" | rpxTranslate }}\n </p>\n </div>\n <div class=\"pba-payments-margin-top-10\">\n <h2 class=\"heading-medium\">{{ \"Apply to get a new PBA\" | rpxTranslate: {pba: \"PBA\"} }}</h2>\n <p class=\"govuk-body pba-payments-19-font\">\n {{ \"You\u2019ll need to provide details for you and your organisation, including the required credit\n limit for your account.\" | rpxTranslate }}\n </p>\n <p class=\"govuk-body pba-payments-19-font\">\n {{ \"Once your account has been registered, you\u2019ll need to start your claim again to pay the fee.\" | rpxTranslate }}\n </p>\n <p class=\"govuk-body pba-payments-19-font\">\n {{ \"Read more information on\" | rpxTranslate }} <a target=\"_blank\" href=\"https://www.gov.uk/guidance/hmcts-payment-by-account-for-online-services\">{{ \"registering for PBA\" | rpxTranslate: {pba: \"PBA\"} }}</a>.\n </p>\n </div>\n </div>\n </main>\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"isInSufficiantFund && isCardPaymentSuccess\">\n <div class=\"govuk-width-container\">\n <main class=\"govuk-main-wrapper govuk-main-wrapper--l\" id=\"main-content\" role=\"main\">\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-error-summary pba-payments-error-box--size\" aria-labelledby=\"error-summary-title\">\n <h2 class=\"govuk-error-summary__title govuk-error-summary__title-custom pba-payments-24-font\" id=\"error-summary-title\">\n {{ \"There is a problem\" | rpxTranslate }}\n </h2>\n <div class=\"govuk-error-summary__body\">\n <ul class=\"govuk-list govuk-error-summary__list\">\n <li class=\"pba-payments-error-16-font\">\n {{ \"You don't have enough funds in your PBA account to pay for this fee.\" | rpxTranslate }}\n </li>\n <li class=\"pba-payments-error-16-font\">\n {{ \"If you have already topped up your PBA account, wait up to 24 hours for the new balance to become available.\" | rpxTranslate: {pba: \"PBA\", number: \"24\"} }}\n </li>\n </ul>\n </div>\n </div>\n <div class=\"pba-payments-margin-top-10\">\n <h2 class=\"heading-medium\">{{ \"Should you need any further advice\" | rpxTranslate }}</h2>\n <p class=\"govuk-body pba-payments-19-font\">\n {{ \"Email\" | rpxTranslate }} <a href=\"mailto:MiddleOffice.DDservices@liberata.com\">MiddleOffice.DDservices&#64;liberata.com</a> {{ \"or call\" | rpxTranslate }} <a href=\"tel:01633-652-125\">01633 652 125</a> ({{ \"option\" | rpxTranslate }} 3) {{ \"to try to fix the issue.\" | rpxTranslate }}\n </p>\n <p class=\"govuk-body pba-payments-19-font\">\n {{ \"you can also pay by credit or debit card.\" | rpxTranslate }}\n </p>\n <div class=\"govuk-button--group\">\n <button type=\"button\" class=\"button pba-payments-19-font govuk-button--secondary pba-payments-margin-10\" (click)=\"gotoCasetransationPage()\">\n {{ \"View Service Request\" | rpxTranslate }}\n </button>\n <button type=\"submit\" class=\"button pba-payments-19-font pba-payments-20-margin\" (click)=\"cardPayment()\">\n {{ \"Pay by card\" | rpxTranslate }}\n </button>\n </div>\n </div>\n </div>\n </main>\n </div>\n</ng-container>\n<ng-container *ngIf=\"isPBAAccountNotExist && isCardPaymentSuccess\">\n <div class=\"govuk-width-container\">\n <main class=\"govuk-main-wrapper govuk-main-wrapper--l\" id=\"main-content\" role=\"main\">\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-error-summary pba-payments-error-box--size\" aria-labelledby=\"error-summary-title\">\n <h2 class=\"govuk-error-summary__title govuk-error-summary__title-custom pba-payments-24-font\" id=\"error-summary-title\">\n {{ \"There is a problem\" | rpxTranslate }}\n </h2>\n <div class=\"govuk-error-summary__body\">\n <ul class=\"govuk-list govuk-error-summary__list\">\n <li class=\"pba-payments-error-16-font\">\n ({{ \"Your PBA account\" | rpxTranslate: {pba: \"PBA\"} }}) ({{ selectedPbaAccount }}) ({{ \"no longer exists.\" | rpxTranslate }})\n </li>\n </ul>\n </div>\n </div>\n <div class=\"pba-payments-margin-top-10\">\n <h2 class=\"heading-medium\">{{ \"Should you need any further advice\" | rpxTranslate }}</h2>\n <p class=\"govuk-body pba-payments-19-font govuk-body-width\">\n {{ \"Email\" | rpxTranslate }} <a href=\"mailto:MiddleOffice.DDservices@liberata.com\">MiddleOffice.DDservices&#64;liberata.com</a> {{ \"or call\" | rpxTranslate }} <a href=\"tel:01633-652-125\">01633 652 125</a> ({{ \"option\" | rpxTranslate }} 3) {{ \"to try to fix the issue.\" | rpxTranslate }}\n </p>\n <p class=\"govuk-body pba-payments-19-font\">\n {{ \"you can also pay by credit or debit card.\" | rpxTranslate }}\n </p>\n <div class=\"govuk-button--group\">\n <button type=\"button\" class=\"button pba-payments-19-font govuk-button--secondary pba-payments-margin-10\" (click)=\"gotoCasetransationPage()\">\n {{ \"View Service Request\" | rpxTranslate }}\n </button>\n <button type=\"submit\" class=\"button pba-payments-19-font pba-payments-20-margin\" (click)=\"cardPayment()\">\n {{ \"Pay by card\" | rpxTranslate }}\n </button>\n </div>\n </div>\n </div>\n </main>\n </div>\n</ng-container>\n<ng-container *ngIf=\"isPBAAccountHold && isCardPaymentSuccess\">\n <div class=\"govuk-width-container\">\n <main class=\"govuk-main-wrapper govuk-main-wrapper--l\" id=\"main-content\" role=\"main\">\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-error-summary pba-payments-error-box--size\" aria-labelledby=\"error-summary-title\">\n <h2 class=\"govuk-error-summary__title govuk-error-summary__title-custom pba-payments-24-font\" id=\"error-summary-title\">\n {{ \"There is a problem\" | rpxTranslate }}\n </h2>\n <div class=\"govuk-error-summary__body\">\n <ul class=\"govuk-list govuk-error-summary__list\">\n <li class=\"pba-payments-error-16-font\">\n {{ \"Your PBA account \" | rpxTranslate: {pba: \"PBA\"} }} ({{selectedPbaAccount}}) {{ \" has been put on hold.\" | rpxTranslate }}\n </li>\n </ul>\n </div>\n </div>\n <div class=\"pba-payments-margin-top-10\">\n <h2 class=\"heading-medium\">{{ \"Should you need any further advice\" | rpxTranslate }}</h2>\n <p class=\"govuk-body pba-payments-19-font govuk-body-width\">\n {{ \"Email\" | rpxTranslate }} <a href=\"mailto:MiddleOffice.DDservices@liberata.com\">MiddleOffice.DDservices&#64;liberata.com</a> {{ \"or call\" | rpxTranslate }} <a href=\"tel:01633-652-125\">01633 652 125</a> ({{ \"option\" | rpxTranslate }} 3) {{ \"to try to fix the issue.\" | rpxTranslate }}\n </p>\n <p class=\"govuk-body pba-payments-19-font\">\n {{ \"you can also pay by credit or debit card.\" | rpxTranslate }}\n </p>\n <div class=\"govuk-button--group\">\n <button type=\"button\" class=\"button pba-payments-19-font govuk-button--secondary pba-payments-margin-10\" (click)=\"gotoCasetransationPage()\">\n {{ \"View Service Request\" | rpxTranslate }}\n </button>\n <button type=\"submit\" class=\"button pba-payments-19-font pba-payments-20-margin\" (click)=\"cardPayment()\">\n {{ \"Pay by card\" | rpxTranslate }}\n </button>\n </div>\n </div>\n </div>\n </main>\n </div>\n</ng-container>\n<ng-container *ngIf=\"isPBAServerError && isCardPaymentSuccess\">\n <div class=\"govuk-width-container\">\n <main class=\"govuk-main-wrapper govuk-main-wrapper--l\" id=\"main-content\" role=\"main\">\n <div class=\"govuk-grid-row\">\n <div class=\"pba-payments-margin-top-10\">\n <h2 class=\"pba-payments-heading-lg\">{{ \"Sorry, there is a problem with the service\" | rpxTranslate }}</h2>\n <p class=\"govuk-body pba-payments-19-font\">\n {{ \"Try again later.\" | rpxTranslate }}\n </p>\n <p class=\"govuk-body pba-payments-19-font\">\n {{ \"you can also pay by credit or debit card.\" | rpxTranslate }}\n </p>\n <div class=\"govuk-button--group\">\n <button type=\"button\" class=\"button pba-payments-19-font govuk-button--secondary pba-payments-margin-10\" (click)=\"gotoCasetransationPage()\">\n {{ \"View Service Request\" | rpxTranslate }}\n </button>\n <button type=\"submit\" class=\"button pba-payments-19-font pba-payments-20-margin\" (click)=\"cardPayment()\">\n {{ \"Pay by card\" | rpxTranslate }}\n </button>\n </div>\n </div>\n </div>\n </main>\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"isPBAAccountPaymentSuccess && isCardPaymentSuccess\">\n <div class=\"govuk-width-container\">\n <main class=\"govuk-main-wrapper govuk-main-wrapper--l\" id=\"main-content\" role=\"main\">\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-panel govuk-panel--confirmation pba-payments--confirmation\">\n <h1 class=\"govuk-panel__title pba-payments--title white\">\n {{ \"Payment successful\" | rpxTranslate }}\n </h1>\n <div class=\"govuk-panel__body pba-payments__body white\">\n {{ \"Your payment reference is\" | rpxTranslate }} <br><strong class=\"white\">{{pbaAccountrPaymentResult.payment_reference}}</strong>\n </div>\n </div>\n <p class=\"govuk-body pba-payments-19-font\">\n <a href=\"javascript:void(0)\" (click)=\"gotoCasetransationPage()\">{{ \"View service requests\" | rpxTranslate }}</a>\n </p>\n </div>\n </main>\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"!isCardPaymentSuccess\">\n <div class=\"govuk-width-container\">\n <main class=\"govuk-main-wrapper govuk-main-wrapper--l\" id=\"main-content\" role=\"main\">\n <div class=\"govuk-grid-row\">\n <div class=\"pba-payments-margin-top-10\">\n <h2 class=\"pba-payments-heading-lg\">{{ \"Sorry, there is a problem with the service\" | rpxTranslate }}</h2>\n <p class=\"govuk-body pba-payments-19-font\">\n {{ \"Try again later.\" | rpxTranslate }}\n </p>\n <!-- <p class=\"govuk-body pba-payments-19-font\">\n you can also <a href=\"javascript:void(0)\" (click)=\"cardPayment()\" >pay by credit or debit card</a>.\n </p> -->\n <p class=\"govuk-body pba-payments-19-font\">\n <a href=\"javascript:void(0)\" (click)=\"gotoCasetransationPage()\">{{ \"View service requests\" | rpxTranslate }}</a>\n </p>\n </div>\n </div>\n </main>\n </div>\n</ng-container>\n</ng-container>\n\n\n\n", styles: [".pba-payments-govuk__label{font-weight:700;line-height:1.31578947}.pba-payments-19-font{font-size:19px}.pba-payments-font-bld{font-weight:700}.pba-payments-16-font{font-size:16px}.pba-payments-24-font{font-size:24px}.pba-payments-20-margin{margin-bottom:20px}.pba-payments-select-box--size{width:40%}.pba-payments-error-box--size{width:80%}.pba-payments-ref-box--size{width:60%}.pba-payments-error-16-font{font-size:16px;line-height:34px}.pba-payments-margin-10{margin-right:10px}.pba-payments-margin-top-10{margin-top:15px}.pba-payments-heading-lg{font-size:40px;font-weight:700;line-height:72px}.pba-payments--confirmation{background:#00703c!important}.pba-payments__body{font-size:36px!important}.pba-payments--title{font-size:48px!important}.warning-heading-m{font-size:29px;font-weight:700}.pba-payment-width{width:75%}.margin-top-10-px{margin-top:10px}.govuk-error-summary:focus{outline:3px solid #ffdd00}.govuk-body-width{width:750px}.white{color:#fff}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.CurrencyPipe, name: "currency" }, { kind: "ngmodule", type: RpxTranslationModule }, { kind: "pipe", type: i3.RpxTranslatePipe, name: "rpxTranslate" }] });
148
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PbaPaymentComponent, deps: [{ token: 'PAYMENT_LIB' }, { token: i1.PaymentViewService }], target: i0.ɵɵFactoryTarget.Component });
149
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: PbaPaymentComponent, isStandalone: true, selector: "ccpay-pba-payment", inputs: { pbaPayOrderRef: "pbaPayOrderRef" }, ngImport: i0, template: "<ng-container *ngIf=\"viewStatus === 'pba-payment'\">\n\n <div class=\"govuk-breadcrumbs\" *ngIf=\"!errorMsg && !isPBAAccountPaymentSuccess && !isCardPaymentSuccess\">\n <ol class=\"govuk-breadcrumbs__list\">\n <li class=\"govuk-breadcrumbs__list-item\">\n <a href=\"javascript:void(0)\" (click)=\"gotoCasetransationPage()\" class=\"govuk-back-link pba-payments-16-font\">Back</a>\n </li>\n </ol>\n </div>\n <div class=\"pba-payment\" *ngIf=\"(pbaAccountList?.length > 0 || errorMsg) && !isInSufficiantFund && !isPBAAccountNotExist && !isPBAServerError && !isPBAAccountHold && !isPBAAccountPaymentSuccess && isCardPaymentSuccess\">\n\n <div *ngIf=\"errorMsg\" class=\"govuk-error-summary pba-payments-error-box--size\" aria-labelledby=\"error-summary-title\" >\n <h2 class=\"govuk-error-summary__title govuk-error-summary__title-custom pba-payments-24-font\" id=\"error-summary-title\">\n {{ \"There is a problem\" | rpxTranslate }}\n </h2>\n <div class=\"govuk-error-summary__body\">\n <ul class=\"govuk-list govuk-error-summary__list\">\n <li class=\"pba-payments-error-16-font\">\n {{ \"Your PBA account cannot be found.\" | rpxTranslate }}\n </li>\n <li class=\"pba-payments-error-16-font\">\n {{ \"If you know your organisation has a PBA, try again.\" | rpxTranslate : {pba: \"PBA\"} }}\n </li>\n <li class=\"pba-payments-error-16-font\">\n {{ \"You can also pay by credit or debit card.\" | rpxTranslate }}\n </li>\n </ul>\n </div>\n </div>\n <!-- <h1 class=\"heading-medium margin-top-10-px\">Pay fee using Payment by Account (PBA)</h1> -->\n <div class=\"govuk-form-group margin-top-10-px\">\n <label class=\"govuk-label pba-payments-govuk__label pba-payments-19-font\">\n {{ \"Amount to pay\" | rpxTranslate }}\n </label>\n <span class=\"pba-payments-19-font\">{{pbaPayOrderRef.orderTotalFees | currency :'GBP':'symbol':'1.2-2'}}</span>\n </div>\n\n <div class=\"govuk-form-group\" *ngIf=\"!errorMsg\">\n <fieldset class=\"govuk-fieldset\" aria-describedby=\"contact-hint\">\n <div class=\"govuk-radios\" data-module=\"govuk-radios\">\n <div class=\"govuk-radios__item\">\n <input class=\"govuk-radios__input\" id=\"pbaAccount\" name=\"paymentSelection\" type=\"radio\" value=\"PBA\" (click)=\"selectPaymentMethod('PBA')\" data-aria-controls=\"pba-account\">\n <label class=\"govuk-label govuk-radios__label pba-payments-19-font pba-payments-font-bld\" for=\"pbaAccount\">\n {{ \"Pay fee using Payment by Account (PBA)\" | rpxTranslate: {pba: \"(PBA)\"} }}\n </label>\n </div>\n <div class=\"govuk-radios__conditional\" id=\"conditional-contact\" *ngIf=\"isPbaAccountSelected\">\n <div class=\"govuk-form-group pba-payments-select-box--size\">\n <label class=\"govuk-label pba-payments-govuk__label pba-payments-19-font\" for=\"pbaAccountNumber\">\n {{ \"Select a PBA\" | rpxTranslate: {pba: \"PBA\"} }}\n </label>\n <select class=\"form-control short-input\" id=\"pbaAccountNumber\" (change)=\"selectpbaaccount($event)\">\n <option value=\"\" selected='selected'>{{ \"Select option\" | rpxTranslate }}</option>\n <option *ngFor=\"let pbaAccount of pbaAccountList;\" value=\"{{pbaAccount}}\">{{pbaAccount}}</option>\n </select>\n </div>\n <div class=\"govuk-form-group\" *ngIf=\"!errorMsg && selectedPbaAccount\">\n <label class=\"govuk-label pba-payments-govuk__label pba-payments-24-font\" for=\"pbaAccountNumber\">\n {{ \"Enter a reference for your PBA account statements\" | rpxTranslate: {pba: \"PBA\"} }}\n </label>\n <div id=\"event-name-hint\" class=\"govuk-hint pba-payments-19-font pba-payment-width\">\n {{ \"This should be your own unique reference to identify the case. It will appear on your statements.\" | rpxTranslate }}\n </div>\n <input class=\"govuk-input pba-payments-ref-box--size pba-payments-19-font\" id=\"pbaAccountRef\" (change)=\"selectpbaaccount($event)\" (keyup)=\"selectpbaaccount($event)\" name=\"pbaAccountRef\" type=\"text\" aria-describedby=\"pbaAccountRef-hint\">\n </div>\n\n </div>\n <div class=\"govuk-radios__item\">\n <input class=\"govuk-radios__input\" id=\"cardPayment\" name=\"paymentSelection\" type=\"radio\" value=\"card\" (click)=\"selectPaymentMethod('CARD')\" data-aria-controls=\"card-payment\">\n <label class=\"govuk-label govuk-radios__label pba-payments-19-font pba-payments-font-bld\" for=\"cardPayment\">\n {{ \"Pay by credit or debit card\" | rpxTranslate }}\n </label>\n </div>\n </div>\n </fieldset>\n </div>\n\n <div class=\"govuk-button--group\" *ngIf=\"errorMsg\">\n <button type=\"button\" class=\"button pba-payments-19-font govuk-button--secondary pba-payments-margin-10\" (click)=\"gotoCasetransationPage()\">\n {{ \"View Service Request\" | rpxTranslate }}\n </button>\n <button type=\"submit\" class=\"button pba-payments-19-font pba-payments-20-margin\" (click)=\"cardPayment()\">\n {{ \"Pay by card\" | rpxTranslate }}\n </button>\n </div>\n <div class=\"govuk-button--group\" *ngIf=\"!errorMsg\">\n <button type=\"submit\" [disabled]=\"isContinueButtondisabled\" class=\"button pba-payments-19-font pba-payments-20-margin\" (click)=\"saveAndContinue()\">\n <span *ngIf=\"!isPBADropdownSelected\" class=\"white\">{{ \"Continue\" | rpxTranslate }}</span>\n <span *ngIf=\"isPBADropdownSelected\" class=\"white\">{{ \"Confirm payment\" | rpxTranslate }}</span>\n </button>\n </div>\n </div>\n<ng-container *ngIf=\"pbaAccountList?.length <= 0 && !errorMsg && isGetPBAAccountSucceed && isCardPaymentSuccess\">\n <div class=\"govuk-width-container\">\n <main class=\"govuk-main-wrapper govuk-main-wrapper--l\" id=\"main-content\" role=\"main\">\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-warning-text\">\n <span class=\"govuk-warning-text__icon\" aria-hidden=\"true\">!</span>\n <strong class=\"govuk-warning-text__text\">\n <span class=\"govuk-warning-text__assistive\">{{ \"Warning\" | rpxTranslate }}</span>\n <h2 class=\"warning-heading-m\">{{ \"You don\u2019t have a registered PBA.\" | rpxTranslate: {pba: \"PBA\"} }}</h2>\n </strong>\n </div>\n <div class=\"pba-payments-margin-top-10\">\n <h2 class=\"heading-medium\">{{ \"Pay by credit or debit card\" | rpxTranslate }}</h2>\n <p class=\"govuk-body pba-payments-19-font\">\n {{ \"We recommend that you apply to get a new PBA to pay for fees.\" | rpxTranslate }}\n </p>\n <p class=\"govuk-bod ypba-payments-19-font\">\n {{ \"you can also pay by credit or debit card if you need to pay now\" | rpxTranslate }}\n </p>\n <p class=\"govuk-body\">\n <button type=\"submit\" (click)=\"cardPayment()\" class=\"button pba-payments-19-font pba-payments-20-margin\">\n {{ \"Pay by card\" | rpxTranslate }}\n </button>\n </p>\n\n </div>\n <div class=\"pba-payments-margin-top-10\">\n <h2 class=\"heading-medium\">{{ \"Register an existing PBA with MyHMCTS\" | rpxTranslate: {pba: \"PBA\", myhmcts: \"MyHMCTS\"} }}</h2>\n <p class=\"govuk-body pba-payments-19-font\">\n {{ \"You may find it easier in future to pay by PBA, your organisation administrator will need to\n email\" | rpxTranslate: {pba: \"PBA\"} }} <a href=\"mailto: MyHMCTSsupport@justice.gov.uk\">MyHMCTSsupport&#64;justice.gov.uk</a>{{ \"to ask for your PBA to be registered with your\n MyHMCTS account. You should include your organisation name and PBA number.\" | rpxTranslate: {pba: \"PBA\", myhmcts: \"MyHMCTS\"} }}\n </p>\n <p class=\"govuk-body pba-payments-19-font\">\n {{ \"It can then take up to 3 days for your account to be updated. You\u2019ll need to start your claim\n again to pay the fee.\" | rpxTranslate }}\n </p>\n </div>\n <div class=\"pba-payments-margin-top-10\">\n <h2 class=\"heading-medium\">{{ \"Apply to get a new PBA\" | rpxTranslate: {pba: \"PBA\"} }}</h2>\n <p class=\"govuk-body pba-payments-19-font\">\n {{ \"You\u2019ll need to provide details for you and your organisation, including the required credit\n limit for your account.\" | rpxTranslate }}\n </p>\n <p class=\"govuk-body pba-payments-19-font\">\n {{ \"Once your account has been registered, you\u2019ll need to start your claim again to pay the fee.\" | rpxTranslate }}\n </p>\n <p class=\"govuk-body pba-payments-19-font\">\n {{ \"Read more information on\" | rpxTranslate }} <a target=\"_blank\" href=\"https://www.gov.uk/guidance/hmcts-payment-by-account-for-online-services\">{{ \"registering for PBA\" | rpxTranslate: {pba: \"PBA\"} }}</a>.\n </p>\n </div>\n </div>\n </main>\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"isInSufficiantFund && isCardPaymentSuccess\">\n <div class=\"govuk-width-container\">\n <main class=\"govuk-main-wrapper govuk-main-wrapper--l\" id=\"main-content\" role=\"main\">\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-error-summary pba-payments-error-box--size\" aria-labelledby=\"error-summary-title\">\n <h2 class=\"govuk-error-summary__title govuk-error-summary__title-custom pba-payments-24-font\" id=\"error-summary-title\">\n {{ \"There is a problem\" | rpxTranslate }}\n </h2>\n <div class=\"govuk-error-summary__body\">\n <ul class=\"govuk-list govuk-error-summary__list\">\n <li class=\"pba-payments-error-16-font\">\n {{ \"You don't have enough funds in your PBA account to pay for this fee.\" | rpxTranslate }}\n </li>\n <li class=\"pba-payments-error-16-font\">\n {{ \"If you have already topped up your PBA account, wait up to 24 hours for the new balance to become available.\" | rpxTranslate: {pba: \"PBA\", number: \"24\"} }}\n </li>\n </ul>\n </div>\n </div>\n <div class=\"pba-payments-margin-top-10\">\n <h2 class=\"heading-medium\">{{ \"Should you need any further advice\" | rpxTranslate }}</h2>\n <p class=\"govuk-body pba-payments-19-font\">\n {{ \"Email\" | rpxTranslate }} <a href=\"mailto:MiddleOffice.DDservices@liberata.com\">MiddleOffice.DDservices&#64;liberata.com</a> {{ \"or call\" | rpxTranslate }} <a href=\"tel:01633-652-125\">01633 652 125</a> ({{ \"option\" | rpxTranslate }} 3) {{ \"to try to fix the issue.\" | rpxTranslate }}\n </p>\n <p class=\"govuk-body pba-payments-19-font\">\n {{ \"you can also pay by credit or debit card.\" | rpxTranslate }}\n </p>\n <div class=\"govuk-button--group\">\n <button type=\"button\" class=\"button pba-payments-19-font govuk-button--secondary pba-payments-margin-10\" (click)=\"gotoCasetransationPage()\">\n {{ \"View Service Request\" | rpxTranslate }}\n </button>\n <button type=\"submit\" class=\"button pba-payments-19-font pba-payments-20-margin\" (click)=\"cardPayment()\">\n {{ \"Pay by card\" | rpxTranslate }}\n </button>\n </div>\n </div>\n </div>\n </main>\n </div>\n</ng-container>\n<ng-container *ngIf=\"isPBAAccountNotExist && isCardPaymentSuccess\">\n <div class=\"govuk-width-container\">\n <main class=\"govuk-main-wrapper govuk-main-wrapper--l\" id=\"main-content\" role=\"main\">\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-error-summary pba-payments-error-box--size\" aria-labelledby=\"error-summary-title\">\n <h2 class=\"govuk-error-summary__title govuk-error-summary__title-custom pba-payments-24-font\" id=\"error-summary-title\">\n {{ \"There is a problem\" | rpxTranslate }}\n </h2>\n <div class=\"govuk-error-summary__body\">\n <ul class=\"govuk-list govuk-error-summary__list\">\n <li class=\"pba-payments-error-16-font\">\n ({{ \"Your PBA account\" | rpxTranslate: {pba: \"PBA\"} }}) ({{ selectedPbaAccount }}) ({{ \"no longer exists.\" | rpxTranslate }})\n </li>\n </ul>\n </div>\n </div>\n <div class=\"pba-payments-margin-top-10\">\n <h2 class=\"heading-medium\">{{ \"Should you need any further advice\" | rpxTranslate }}</h2>\n <p class=\"govuk-body pba-payments-19-font govuk-body-width\">\n {{ \"Email\" | rpxTranslate }} <a href=\"mailto:MiddleOffice.DDservices@liberata.com\">MiddleOffice.DDservices&#64;liberata.com</a> {{ \"or call\" | rpxTranslate }} <a href=\"tel:01633-652-125\">01633 652 125</a> ({{ \"option\" | rpxTranslate }} 3) {{ \"to try to fix the issue.\" | rpxTranslate }}\n </p>\n <p class=\"govuk-body pba-payments-19-font\">\n {{ \"you can also pay by credit or debit card.\" | rpxTranslate }}\n </p>\n <div class=\"govuk-button--group\">\n <button type=\"button\" class=\"button pba-payments-19-font govuk-button--secondary pba-payments-margin-10\" (click)=\"gotoCasetransationPage()\">\n {{ \"View Service Request\" | rpxTranslate }}\n </button>\n <button type=\"submit\" class=\"button pba-payments-19-font pba-payments-20-margin\" (click)=\"cardPayment()\">\n {{ \"Pay by card\" | rpxTranslate }}\n </button>\n </div>\n </div>\n </div>\n </main>\n </div>\n</ng-container>\n<ng-container *ngIf=\"isPBAAccountHold && isCardPaymentSuccess\">\n <div class=\"govuk-width-container\">\n <main class=\"govuk-main-wrapper govuk-main-wrapper--l\" id=\"main-content\" role=\"main\">\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-error-summary pba-payments-error-box--size\" aria-labelledby=\"error-summary-title\">\n <h2 class=\"govuk-error-summary__title govuk-error-summary__title-custom pba-payments-24-font\" id=\"error-summary-title\">\n {{ \"There is a problem\" | rpxTranslate }}\n </h2>\n <div class=\"govuk-error-summary__body\">\n <ul class=\"govuk-list govuk-error-summary__list\">\n <li class=\"pba-payments-error-16-font\">\n {{ \"Your PBA account \" | rpxTranslate: {pba: \"PBA\"} }} ({{selectedPbaAccount}}) {{ \" has been put on hold.\" | rpxTranslate }}\n </li>\n </ul>\n </div>\n </div>\n <div class=\"pba-payments-margin-top-10\">\n <h2 class=\"heading-medium\">{{ \"Should you need any further advice\" | rpxTranslate }}</h2>\n <p class=\"govuk-body pba-payments-19-font govuk-body-width\">\n {{ \"Email\" | rpxTranslate }} <a href=\"mailto:MiddleOffice.DDservices@liberata.com\">MiddleOffice.DDservices&#64;liberata.com</a> {{ \"or call\" | rpxTranslate }} <a href=\"tel:01633-652-125\">01633 652 125</a> ({{ \"option\" | rpxTranslate }} 3) {{ \"to try to fix the issue.\" | rpxTranslate }}\n </p>\n <p class=\"govuk-body pba-payments-19-font\">\n {{ \"you can also pay by credit or debit card.\" | rpxTranslate }}\n </p>\n <div class=\"govuk-button--group\">\n <button type=\"button\" class=\"button pba-payments-19-font govuk-button--secondary pba-payments-margin-10\" (click)=\"gotoCasetransationPage()\">\n {{ \"View Service Request\" | rpxTranslate }}\n </button>\n <button type=\"submit\" class=\"button pba-payments-19-font pba-payments-20-margin\" (click)=\"cardPayment()\">\n {{ \"Pay by card\" | rpxTranslate }}\n </button>\n </div>\n </div>\n </div>\n </main>\n </div>\n</ng-container>\n<ng-container *ngIf=\"isPBAServerError && isCardPaymentSuccess\">\n <div class=\"govuk-width-container\">\n <main class=\"govuk-main-wrapper govuk-main-wrapper--l\" id=\"main-content\" role=\"main\">\n <div class=\"govuk-grid-row\">\n <div class=\"pba-payments-margin-top-10\">\n <h2 class=\"pba-payments-heading-lg\">{{ \"Sorry, there is a problem with the service\" | rpxTranslate }}</h2>\n <p class=\"govuk-body pba-payments-19-font\">\n {{ \"Try again later.\" | rpxTranslate }}\n </p>\n <p class=\"govuk-body pba-payments-19-font\">\n {{ \"you can also pay by credit or debit card.\" | rpxTranslate }}\n </p>\n <div class=\"govuk-button--group\">\n <button type=\"button\" class=\"button pba-payments-19-font govuk-button--secondary pba-payments-margin-10\" (click)=\"gotoCasetransationPage()\">\n {{ \"View Service Request\" | rpxTranslate }}\n </button>\n <button type=\"submit\" class=\"button pba-payments-19-font pba-payments-20-margin\" (click)=\"cardPayment()\">\n {{ \"Pay by card\" | rpxTranslate }}\n </button>\n </div>\n </div>\n </div>\n </main>\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"isPBAAccountPaymentSuccess && isCardPaymentSuccess\">\n <div class=\"govuk-width-container\">\n <main class=\"govuk-main-wrapper govuk-main-wrapper--l\" id=\"main-content\" role=\"main\">\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-panel govuk-panel--confirmation pba-payments--confirmation\">\n <h1 class=\"govuk-panel__title pba-payments--title white\">\n {{ \"Payment successful\" | rpxTranslate }}\n </h1>\n <div class=\"govuk-panel__body pba-payments__body white\">\n {{ \"Your payment reference is\" | rpxTranslate }} <br><strong class=\"white\">{{pbaAccountrPaymentResult.payment_reference}}</strong>\n </div>\n </div>\n <p class=\"govuk-body pba-payments-19-font\">\n <a href=\"javascript:void(0)\" (click)=\"gotoCasetransationPage()\">{{ \"View service requests\" | rpxTranslate }}</a>\n </p>\n </div>\n </main>\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"!isCardPaymentSuccess\">\n <div class=\"govuk-width-container\">\n <main class=\"govuk-main-wrapper govuk-main-wrapper--l\" id=\"main-content\" role=\"main\">\n <div class=\"govuk-grid-row\">\n <div class=\"pba-payments-margin-top-10\">\n <h2 class=\"pba-payments-heading-lg\">{{ \"Sorry, there is a problem with the service\" | rpxTranslate }}</h2>\n <p class=\"govuk-body pba-payments-19-font\">\n {{ \"Try again later.\" | rpxTranslate }}\n </p>\n <!-- <p class=\"govuk-body pba-payments-19-font\">\n you can also <a href=\"javascript:void(0)\" (click)=\"cardPayment()\" >pay by credit or debit card</a>.\n </p> -->\n <p class=\"govuk-body pba-payments-19-font\">\n <a href=\"javascript:void(0)\" (click)=\"gotoCasetransationPage()\">{{ \"View service requests\" | rpxTranslate }}</a>\n </p>\n </div>\n </div>\n </main>\n </div>\n</ng-container>\n</ng-container>\n\n\n\n", styles: [".pba-payments-govuk__label{font-weight:700;line-height:1.31578947}.pba-payments-19-font{font-size:19px}.pba-payments-font-bld{font-weight:700}.pba-payments-16-font{font-size:16px}.pba-payments-24-font{font-size:24px}.pba-payments-20-margin{margin-bottom:20px}.pba-payments-select-box--size{width:40%}.pba-payments-error-box--size{width:80%}.pba-payments-ref-box--size{width:60%}.pba-payments-error-16-font{font-size:16px;line-height:34px}.pba-payments-margin-10{margin-right:10px}.pba-payments-margin-top-10{margin-top:15px}.pba-payments-heading-lg{font-size:40px;font-weight:700;line-height:72px}.pba-payments--confirmation{background:#00703c!important}.pba-payments__body{font-size:36px!important}.pba-payments--title{font-size:48px!important}.warning-heading-m{font-size:29px;font-weight:700}.pba-payment-width{width:75%}.margin-top-10-px{margin-top:10px}.govuk-error-summary:focus{outline:3px solid #ffdd00}.govuk-body-width{width:750px}.white{color:#fff}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.CurrencyPipe, name: "currency" }, { kind: "ngmodule", type: RpxTranslationModule }, { kind: "pipe", type: i3.RpxTranslatePipe, name: "rpxTranslate" }] });
150
150
  }
151
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: PbaPaymentComponent, decorators: [{
151
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PbaPaymentComponent, decorators: [{
152
152
  type: Component,
153
153
  args: [{ selector: 'ccpay-pba-payment', imports: [
154
154
  CommonModule,
@@ -160,4 +160,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
160
160
  }] }, { type: i1.PaymentViewService }], propDecorators: { pbaPayOrderRef: [{
161
161
  type: Input
162
162
  }] } });
163
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGJhLXBheW1lbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcGF5bWVudC1saWIvc3JjL2xpYi9jb21wb25lbnRzL3BiYS1wYXltZW50L3BiYS1wYXltZW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3BheW1lbnQtbGliL3NyYy9saWIvY29tcG9uZW50cy9wYmEtcGF5bWVudC9wYmEtcGF5bWVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFFdEYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDekYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDdkYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxvQkFBb0IsRUFBZSxNQUFNLHFCQUFxQixDQUFDOzs7OztBQUd4RSxNQUFNLGNBQWMsR0FBRyx1QkFBdUIsQ0FBQztBQVkvQyxNQUFNLE9BQU8sbUJBQW1CO0lBcUJhO0lBQ2pDO0lBckJELGNBQWMsQ0FBTTtJQUM3QixVQUFVLENBQVM7SUFDbkIsY0FBYyxDQUFXO0lBQ3pCLGdCQUFnQixHQUFZLEtBQUssQ0FBQztJQUNsQyxRQUFRLENBQU07SUFDZCxvQkFBb0IsR0FBWSxJQUFJLENBQUM7SUFDckMsa0JBQWtCLEdBQVksS0FBSyxDQUFDO0lBQ3BDLG9CQUFvQixHQUFZLEtBQUssQ0FBQztJQUN0QyxnQkFBZ0IsR0FBWSxLQUFLLENBQUM7SUFDbEMsc0JBQXNCLEdBQVksS0FBSyxDQUFDO0lBQ3hDLGtCQUFrQixHQUFXLEVB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QUFxQixHQUFHLEtBQUssQ0FBQztZQUNuQyxJQUFJLENBQUMscUJBQXFCLEdBQUcsS0FBSyxDQUFBO1lBQ2xDLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxJQUFJLENBQUM7WUFDckMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQztRQUNqQyxDQUFDO2FBQU0sSUFBSSxJQUFJLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQztZQUNsQyxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxLQUFLLENBQUE7WUFDbEMsSUFBSSxDQUFDLHdCQUF3QixHQUFHLEtBQUssQ0FBQztRQUN4QyxDQUFDO0lBQ0gsQ0FBQztJQUNELHNCQUFzQjtRQUNwQixJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxHQUFHLG1CQUFtQixDQUFDO1FBQ3hELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQzdDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQzNDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyx3QkFBd0IsR0FBRyxJQUFJLENBQUM7SUFDM0QsQ0FBQzt1R0FuSlUsbUJBQW1CLGtCQXFCVixhQUFhOzJGQXJCdEIsbUJBQW1CLDJIQ3JCaEMsbXZtQkE0VUEsMC9CRDVUSSxZQUFZLDBUQUNaLG9CQUFvQjs7MkZBSVgsbUJBQW1CO2tCQVYvQixTQUFTOytCQUNFLG1CQUFtQixXQUdwQjt3QkFDUCxZQUFZO3dCQUNaLG9CQUFvQjtxQkFDckIsY0FDVyxJQUFJOzswQkF1QkgsTUFBTTsyQkFBQyxhQUFhOzBFQXBCeEIsY0FBYztzQkFBdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQYXltZW50Vmlld1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9wYXltZW50LXZpZXcvcGF5bWVudC12aWV3LnNlcnZpY2UnO1xuaW1wb3J0IHR5cGUgeyBQYXltZW50TGliQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vcGF5bWVudC1saWIuY29tcG9uZW50JztcbmltcG9ydCB7IElzZXJ2aWNlUmVxdWVzdENhcmRQYXltZW50IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9Jc2VydmljZVJlcXVlc3RDYXJkUGF5bWVudCc7XG5pbXBvcnQgeyBJc2VydmljZVJlcXVlc3RQYmFQYXltZW50IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9Jc2VydmljZVJlcXVlc3RQYmFQYXltZW50JztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBScHhUcmFuc2xhdGlvbk1vZHVsZSwgUnB4TGFuZ3VhZ2UgfSBmcm9tICdycHgteHVpLXRyYW5zbGF0aW9uJztcbnR5cGUgUGF5bWVudExpYkFsaWFzID0gUGF5bWVudExpYkNvbXBvbmVudDtcblxuY29uc3QgQlNfRU5BQkxFX0ZMQUcgPSAnYnVsay1zY2FuLWVuYWJsaW5nLWZlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NwYXktcGJhLXBheW1lbnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vcGJhLXBheW1lbnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wYmEtcGF5bWVudC5jb21wb25lbnQuc2NzcyddLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFJweFRyYW5zbGF0aW9uTW9kdWxlXG4gIF0sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgUGJhUGF5bWVudENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHBiYVBheU9yZGVyUmVmOiBhbnk7XG4gIHZpZXdTdGF0dXM6IHN0cmluZztcbiAgcGJhQWNjb3VudExpc3Q6IHN0cmluZ1tdO1xuICBpc1BCQUFjY291bnRIb2xkOiBib29sZWFuID0gZmFsc2U7XG4gIGVycm9yTXNnOiBhbnk7XG4gIGlzQ2FyZFBheW1lbnRTdWNjZXNzOiBib29sZWFuID0gdHJ1ZTtcbiAgaXNJblN1ZmZpY2lhbnRGdW5kOiBib29sZWFuID0gZmFsc2U7XG4gIGlzUEJBQWNjb3VudE5vdEV4aXN0OiBib29sZWFuID0gZmFsc2U7XG4gIGlzUEJBU2VydmVyRXJyb3I6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNHZXRQQkFBY2NvdW50U3VjY2VlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBzZWxlY3RlZFBiYUFjY291bnQ6IHN0cmluZyA9ICcnO1xuICBwYmFBY2NvdW50UmVmOiBzdHJpbmcgPSAnJztcbiAgaXNQYmFBY2NvdW50U2VsZWN0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNDYXJkUGF5bWVudFNlbGVjdGVkOiBib29sZWFuID0gZmFsc2U7XG4gIGlzUEJBRHJvcGRvd25TZWxlY3RlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBpc0NvbnRpbnVlQnV0dG9uZGlzYWJsZWQ6IGJvb2xlYW4gPSB0cnVlO1xuICBpc1BCQUFjY291bnRQYXltZW50U3VjY2VzczogYm9vbGVhbiA9IGZhbHNlO1xuICBwYmFBY2NvdW50clBheW1lbnRSZXN1bHQ6IGFueTtcbiAgb3JnTmFtZTogc3RyaW5nID0gJyc7XG5cbiAgY29uc3RydWN0b3IoQEluamVjdCgnUEFZTUVOVF9MSUInKSBwcml2YXRlIHBheW1lbnRMaWJDb21wb25lbnQ6IFBheW1lbnRMaWJBbGlhcyxcbiAgICBwcml2YXRlIHBheW1lbnRWaWV3U2VydmljZTogUGF5bWVudFZpZXdTZXJ2aWNlKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnBiYVBheU9yZGVyUmVmID0gdGhpcy5wYXltZW50TGliQ29tcG9uZW50LnBiYVBheU9yZGVyUmVmO1xuICAgIHRoaXMudmlld1N0YXR1cyA9ICdwYmEtcGF5bWVudCc7XG4gICAgdGhpcy5lcnJvck1zZyA9IG51bGw7XG4gICAgdGhpcy5wYXltZW50Vmlld1NlcnZpY2UuZ2V0UEJBYWNjb3VudERldGFpbHMoKVxuICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgcmVzdWx0ID0+IHtcbiAgICAgICAgICB0aGlzLmlzR2V0UEJBQWNjb3VudFN1Y2NlZWQgPSB0cnVlO1xuICAgICAgICAgIHRoaXMub3JnTmFtZSA9IHJlc3VsdC5vcmdhbmlzYXRpb25FbnRpdHlSZXNwb25zZS5uYW1lO1xuICAgICAgICAgIHRoaXMucGJhQWNjb3VudExpc3QgPSByZXN1bHQub3JnYW5pc2F0aW9uRW50aXR5UmVzcG9uc2UucGF5bWVudEFjY291bnQ7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yID0+IHtcbiAgICAgICAgICB0aGlzLmVycm9yTXNnID0gZXJyb3I7XG4gICAgICAgIH1cbiAgICAgICk7XG5cbiAgfVxuXG4gIGdldFBlcnNpc3RlZExhbmd1YWdlKCk6IFJweExhbmd1YWdlIHtcbiAgICByZXR1cm4gZG9jdW1lbnQuY29va2llLnNwbGl0KCc7JykuZmluZCgoY29va2llKSA9PiBjb29raWUudHJpbSgpLnN0YXJ0c1dpdGgoJ2V4dWktcHJlZmVycmVkLWxhbmd1YWdlJyArICc9JykpPy5zcGxpdCgnPScpWzFdLnRyaW0oKSBhcyBScHhMYW5ndWFnZTtcbiAgfVxuXG4gIGJ1dHRvbkNoZWNrKCkge1xuICAgIGlmICh0aGlzLnNlbGVjdGVkUGJhQWNjb3VudCAhPT0gJycgJiYgdGhpcy5wYmFBY2NvdW50UmVmICE9PSBcIlwiKSB7XG4gICAgICB0aGlzLmlzQ29udGludWVCdXR0b25kaXNhYmxlZCA9IGZhbHNlO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHRoaXMuaXNDb250aW51ZUJ1dHRvbmRpc2FibGVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBzZWxlY3RwYmFhY2NvdW50KGFyZ3MpIHtcbiAgICBpZiAoYXJncy5jdXJyZW50VGFyZ2V0LmlkID09PSAncGJhQWNjb3VudE51bWJlcicpIHtcbiAgICAgIHRoaXMuaXNQQkFEcm9wZG93blNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRQYmFBY2NvdW50ID0gYXJncy50YXJnZXQudmFsdWU7XG4gICAgICB0aGlzLmJ1dHRvbkNoZWNrKCk7XG4gICAgfVxuICAgIGlmIChhcmdzLmN1cnJlbnRUYXJnZXQuaWQgPT09ICdwYmFBY2NvdW50UmVmJykge1xuICAgICAgdGhpcy5wYmFBY2NvdW50UmVmID0gYXJncy50YXJnZXQudmFsdWU7XG4gICAgICB0aGlzLmJ1dHRvbkNoZWNrKCk7XG4gICAgfVxuICB9XG5cbiAgc2F2ZUFuZENvbnRpbnVlKCkge1xuXG4gICAgaWYgKHRoaXMuaXNQYmFBY2NvdW50U2VsZWN0ZWQpIHtcbiAgICAgIHRoaXMuaXNJblN1ZmZpY2lhbnRGdW5kID0gZmFsc2U7XG4gICAgICB0aGlzLmlzUEJBQWNjb3VudE5vdEV4aXN0ID0gZmFsc2U7XG4gICAgICB0aGlzLmlzUEJBU2VydmVyRXJyb3IgPSBmYWxzZTtcbiAgICAgIHRoaXMuaXNQQkFBY2NvdW50UGF5bWVudFN1Y2Nlc3MgPSBmYWxzZTtcbiAgICAgIHRoaXMuaXNDb250aW51ZUJ1dHRvbmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgIGlmICh0aGlzLnBiYUFjY291bnRMaXN0LmluZGV4T2YodGhpcy5zZWxlY3RlZFBiYUFjY291bnQpICE9PSAtMSkge1xuICAgICAgICBjb25zdCByZXF1ZXN0Qm9keSA9IG5ldyBJc2VydmljZVJlcXVlc3RQYmFQYXltZW50KFxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRQYmFBY2NvdW50LCB0aGlzLnBiYVBheU9yZGVyUmVmLm9yZGVyVG90YWxGZWVzLCB0aGlzLnBiYUFjY291bnRSZWYsIHRoaXMub3JnTmFtZSk7XG5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5wYXltZW50Vmlld1NlcnZpY2UucG9zdFBCQWFjY291bnRQYXltZW50KHRoaXMucGJhUGF5T3JkZXJSZWYub3JkZXJSZWZJZCwgcmVxdWVzdEJvZHkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICByID0+IHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgdGhpcy5wYmFBY2NvdW50clBheW1lbnRSZXN1bHQgPSBKU09OLnBhcnNlKHIpO1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMucGJhQWNjb3VudHJQYXltZW50UmVzdWx0ID0gcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5pc1BCQUFjY291bnRQYXltZW50U3VjY2VzcyA9IHRydWU7XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIGUgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChlLnN0YXR1cyA9PSAnNDAyJykge1xuICAgICAgICAgICAgICAgICAgdGhpcy5pc0luU3VmZmljaWFudEZ1bmQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZS5zdGF0dXMgPT0gJzQxMCcpIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuaXNQQkFBY2NvdW50Tm90RXhpc3QgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZS5zdGF0dXMgPT0gJzQxMicpIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuaXNQQkFBY2NvdW50SG9sZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuaXNQQkFTZXJ2ZXJFcnJvciA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuXG4gICAgICAgIH0sIDUwMDApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5pc1BCQVNlcnZlckVycm9yID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRoaXMuaXNDYXJkUGF5bWVudFNlbGVjdGVkKSB7XG4gICAgICB0aGlzLmNhcmRQYXltZW50KCk7XG4gICAgfVxuXG4gIH1cbiAgY2FyZFBheW1lbnQoKSB7XG4gICAgdGhpcy5pc0NhcmRQYXltZW50U3VjY2VzcyA9IHRydWU7XG4gICAgY29uc3QgcmVxdWVzdEJvZHkgPSBuZXcgSXNlcnZpY2VSZXF1ZXN0Q2FyZFBheW1lbnQoXG4gICAgICB0aGlzLnBiYVBheU9yZGVyUmVmLm9yZGVyVG90YWxGZWVzLCB0aGlzLmdldFBlcnNpc3RlZExhbmd1YWdlKCkpO1xuICAgIHRoaXMucGF5bWVudFZpZXdTZXJ2aWNlLnBvc3RXYXlzMlBheUNhcmRQYXltZW50KHRoaXMucGJhUGF5T3JkZXJSZWYub3JkZXJSZWZJZCwgcmVxdWVzdEJvZHkpXG4gICAgICAuc3Vic2NyaWJlKFxuICAgICAgICByZXN1bHQgPT4ge1xuICAgICAgICAgIGNvbnN0IHBheW1lbnRVcmwgPSBKU09OLnBhcnNlKHJlc3VsdCkubmV4dF91cmw7XG4gICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBwYXltZW50VXJsO1xuICAgICAgICB9LFxuICAgICAgICBlcnJvciA9PiB7XG4gICAgICAgICAgdGhpcy5pc0NhcmRQYXltZW50U3VjY2VzcyA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICApO1xuXG4gIH1cbiAgc2VsZWN0UGF5bWVudE1ldGhvZCh0eXBlOiBzdHJpbmcpIHtcbiAgICBpZiAodHlwZSA9PT0gJ1BCQScpIHtcbiAgICAgIHRoaXMuaXNQYmFBY2NvdW50U2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgdGhpcy5pc0NhcmRQYXltZW50U2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMuaXNQQkFEcm9wZG93blNlbGVjdGVkID0gZmFsc2VcbiAgICAgIHRoaXMuaXNDb250aW51ZUJ1dHRvbmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRQYmFBY2NvdW50ID0gbnVsbDtcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdDQVJEJykge1xuICAgICAgdGhpcy5pc1BiYUFjY291bnRTZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5pc0NhcmRQYXltZW50U2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgdGhpcy5pc1BCQURyb3Bkb3duU2VsZWN0ZWQgPSBmYWxzZVxuICAgICAgdGhpcy5pc0NvbnRpbnVlQnV0dG9uZGlzYWJsZWQgPSBmYWxzZTtcbiAgICB9XG4gIH1cbiAgZ290b0Nhc2V0cmFuc2F0aW9uUGFnZSgpIHtcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQudmlld05hbWUgPSAnY2FzZS10cmFuc2FjdGlvbnMnO1xuICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5UQUtFUEFZTUVOVCA9IGZhbHNlO1xuICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5JU0JTRU5BQkxFID0gdHJ1ZTtcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuaXNGcm9tU2VydmljZVJlcXVlc3RQYWdlID0gdHJ1ZTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cInZpZXdTdGF0dXMgPT09ICdwYmEtcGF5bWVudCdcIj5cblxuICA8ZGl2IGNsYXNzPVwiZ292dWstYnJlYWRjcnVtYnNcIiAqbmdJZj1cIiFlcnJvck1zZyAmJiAhaXNQQkFBY2NvdW50UGF5bWVudFN1Y2Nlc3MgJiYgIWlzQ2FyZFBheW1lbnRTdWNjZXNzXCI+XG4gICAgPG9sIGNsYXNzPVwiZ292dWstYnJlYWRjcnVtYnNfX2xpc3RcIj5cbiAgICAgIDxsaSBjbGFzcz1cImdvdnVrLWJyZWFkY3J1bWJzX19saXN0LWl0ZW1cIj5cbiAgICAgICAgPGEgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiIChjbGljayk9XCJnb3RvQ2FzZXRyYW5zYXRpb25QYWdlKClcIiBjbGFzcz1cImdvdnVrLWJhY2stbGluayBwYmEtcGF5bWVudHMtMTYtZm9udFwiPkJhY2s8L2E+XG4gICAgICA8L2xpPlxuICAgIDwvb2w+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwicGJhLXBheW1lbnRcIiAqbmdJZj1cIihwYmFBY2NvdW50TGlzdD8ubGVuZ3RoID4gMCB8fCBlcnJvck1zZykgJiYgIWlzSW5TdWZmaWNpYW50RnVuZCAmJiAhaXNQQkFBY2NvdW50Tm90RXhpc3QgJiYgIWlzUEJBU2VydmVyRXJyb3IgJiYgIWlzUEJBQWNjb3VudEhvbGQgJiYgIWlzUEJBQWNjb3VudFBheW1lbnRTdWNjZXNzICYmIGlzQ2FyZFBheW1lbnRTdWNjZXNzXCI+XG5cbiAgICA8ZGl2ICpuZ0lmPVwiZXJyb3JNc2dcIiBjbGFzcz1cImdvdnVrLWVycm9yLXN1bW1hcnkgcGJhLXBheW1lbnRzLWVycm9yLWJveC0tc2l6ZVwiIGFyaWEtbGFiZWxsZWRieT1cImVycm9yLXN1bW1hcnktdGl0bGVcIiA+XG4gICAgICA8aDIgY2xhc3M9XCJnb3Z1ay1lcnJvci1zdW1tYXJ5X190aXRsZSBnb3Z1ay1lcnJvci1zdW1tYXJ5X190aXRsZS1jdXN0b20gcGJhLXBheW1lbnRzLTI0LWZvbnRcIiBpZD1cImVycm9yLXN1bW1hcnktdGl0bGVcIj5cbiAgICAgICAge3sgXCJUaGVyZSBpcyBhIHByb2JsZW1cIiAgfCBycHhUcmFuc2xhdGUgfX1cbiAgICAgIDwvaDI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZ292dWstZXJyb3Itc3VtbWFyeV9fYm9keVwiPlxuICAgICAgICA8dWwgY2xhc3M9XCJnb3Z1ay1saXN0IGdvdnVrLWVycm9yLXN1bW1hcnlfX2xpc3RcIj5cbiAgICAgICAgICA8bGkgY2xhc3M9XCJwYmEtcGF5bWVudHMtZXJyb3ItMTYtZm9udFwiPlxuICAgICAgICAgICAge3sgXCJZb3VyIFBCQSBhY2NvdW50IGNhbm5vdCBiZSBmb3VuZC5cIiB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgPGxpIGNsYXNzPVwicGJhLXBheW1lbnRzLWVycm9yLTE2LWZvbnRcIj5cbiAgICAgICAgICAgIHt7IFwiSWYgeW91IGtub3cgeW91ciBvcmdhbmlzYXRpb24gaGFzIGEgUEJBLCB0cnkgYWdhaW4uXCIgfCBycHhUcmFuc2xhdGUgOiB7cGJhOiBcIlBCQVwifSB9fVxuICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgPGxpIGNsYXNzPVwicGJhLXBheW1lbnRzLWVycm9yLTE2LWZvbnRcIj5cbiAgICAgICAgICAgIHt7IFwiWW91IGNhbiBhbHNvIHBheSBieSBjcmVkaXQgb3IgZGViaXQgY2FyZC5cIiB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvbGk+XG4gICAgICAgIDwvdWw+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8IS0tIDxoMSBjbGFzcz1cImhlYWRpbmctbWVkaXVtIG1hcmdpbi10b3AtMTAtcHhcIj5QYXkgZmVlIHVzaW5nIFBheW1lbnQgYnkgQWNjb3VudCAoUEJBKTwvaDE+IC0tPlxuICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1mb3JtLWdyb3VwIG1hcmdpbi10b3AtMTAtcHhcIj5cbiAgICAgIDxsYWJlbCBjbGFzcz1cImdvdnVrLWxhYmVsIHBiYS1wYXltZW50cy1nb3Z1a19fbGFiZWwgcGJhLXBheW1lbnRzLTE5LWZvbnRcIj5cbiAgICAgICAge3sgXCJBbW91bnQgdG8gcGF5XCIgfCBycHhUcmFuc2xhdGUgfX1cbiAgICAgIDwvbGFiZWw+XG4gICAgICA8c3BhbiBjbGFzcz1cInBiYS1wYXltZW50cy0xOS1mb250XCI+e3twYmFQYXlPcmRlclJlZi5vcmRlclRvdGFsRmVlcyB8IGN1cnJlbmN5IDonR0JQJzonc3ltYm9sJzonMS4yLTInfX08L3NwYW4+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZ292dWstZm9ybS1ncm91cFwiICpuZ0lmPVwiIWVycm9yTXNnXCI+XG4gICAgICA8ZmllbGRzZXQgY2xhc3M9XCJnb3Z1ay1maWVsZHNldFwiIGFyaWEtZGVzY3JpYmVkYnk9XCJjb250YWN0LWhpbnRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLXJhZGlvc1wiIGRhdGEtbW9kdWxlPVwiZ292dWstcmFkaW9zXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLXJhZGlvc19faXRlbVwiPlxuICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZ292dWstcmFkaW9zX19pbnB1dFwiIGlkPVwicGJhQWNjb3VudFwiIG5hbWU9XCJwYXltZW50U2VsZWN0aW9uXCIgdHlwZT1cInJhZGlvXCIgdmFsdWU9XCJQQkFcIiAoY2xpY2spPVwic2VsZWN0UGF5bWVudE1ldGhvZCgnUEJBJylcIiBkYXRhLWFyaWEtY29udHJvbHM9XCJwYmEtYWNjb3VudFwiPlxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZ292dWstbGFiZWwgZ292dWstcmFkaW9zX19sYWJlbCBwYmEtcGF5bWVudHMtMTktZm9udCBwYmEtcGF5bWVudHMtZm9udC1ibGRcIiBmb3I9XCJwYmFBY2NvdW50XCI+XG4gICAgICAgICAgICAgIHt7IFwiUGF5IGZlZSB1c2luZyBQYXltZW50IGJ5IEFjY291bnQgKFBCQSlcIiB8IHJweFRyYW5zbGF0ZToge3BiYTogXCIoUEJBKVwifSB9fVxuICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstcmFkaW9zX19jb25kaXRpb25hbFwiIGlkPVwiY29uZGl0aW9uYWwtY29udGFjdFwiICpuZ0lmPVwiaXNQYmFBY2NvdW50U2VsZWN0ZWRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1mb3JtLWdyb3VwIHBiYS1wYXltZW50cy1zZWxlY3QtYm94LS1zaXplXCI+XG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImdvdnVrLWxhYmVsIHBiYS1wYXltZW50cy1nb3Z1a19fbGFiZWwgcGJhLXBheW1lbnRzLTE5LWZvbnRcIiBmb3I9XCJwYmFBY2NvdW50TnVtYmVyXCI+XG4gICAgICAgICAgICAgICAge3sgXCJTZWxlY3QgYSBQQkFcIiB8IHJweFRyYW5zbGF0ZToge3BiYTogXCJQQkFcIn0gfX1cbiAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tY29udHJvbCBzaG9ydC1pbnB1dFwiIGlkPVwicGJhQWNjb3VudE51bWJlclwiIChjaGFuZ2UpPVwic2VsZWN0cGJhYWNjb3VudCgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlwiIHNlbGVjdGVkPSdzZWxlY3RlZCc+e3sgXCJTZWxlY3Qgb3B0aW9uXCIgfCBycHhUcmFuc2xhdGUgfX08L29wdGlvbj5cbiAgICAgICAgICAgICAgICA8b3B0aW9uICAqbmdGb3I9XCJsZXQgcGJhQWNjb3VudCBvZiBwYmFBY2NvdW50TGlzdDtcIiB2YWx1ZT1cInt7cGJhQWNjb3VudH19XCI+e3twYmFBY2NvdW50fX08L29wdGlvbj5cbiAgICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1mb3JtLWdyb3VwXCIgKm5nSWY9XCIhZXJyb3JNc2cgJiYgc2VsZWN0ZWRQYmFBY2NvdW50XCI+XG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImdvdnVrLWxhYmVsIHBiYS1wYXltZW50cy1nb3Z1a19fbGFiZWwgcGJhLXBheW1lbnRzLTI0LWZvbnRcIiBmb3I9XCJwYmFBY2NvdW50TnVtYmVyXCI+XG4gICAgICAgICAgICAgICAge3sgXCJFbnRlciBhIHJlZmVyZW5jZSBmb3IgeW91ciBQQkEgYWNjb3VudCBzdGF0ZW1lbnRzXCIgfCBycHhUcmFuc2xhdGU6IHtwYmE6IFwiUEJBXCJ9IH19XG4gICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgIDxkaXYgaWQ9XCJldmVudC1uYW1lLWhpbnRcIiBjbGFzcz1cImdvdnVrLWhpbnQgcGJhLXBheW1lbnRzLTE5LWZvbnQgcGJhLXBheW1lbnQtd2lkdGhcIj5cbiAgICAgICAgICAgICAgICB7eyBcIlRoaXMgc2hvdWxkIGJlIHlvdXIgb3duIHVuaXF1ZSByZWZlcmVuY2UgdG8gaWRlbnRpZnkgdGhlIGNhc2UuIEl0IHdpbGwgYXBwZWFyIG9uIHlvdXIgc3RhdGVtZW50cy5cIiB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJnb3Z1ay1pbnB1dCBwYmEtcGF5bWVudHMtcmVmLWJveC0tc2l6ZSBwYmEtcGF5bWVudHMtMTktZm9udFwiIGlkPVwicGJhQWNjb3VudFJlZlwiIChjaGFuZ2UpPVwic2VsZWN0cGJhYWNjb3VudCgkZXZlbnQpXCIgKGtleXVwKT1cInNlbGVjdHBiYWFjY291bnQoJGV2ZW50KVwiIG5hbWU9XCJwYmFBY2NvdW50UmVmXCIgdHlwZT1cInRleHRcIiBhcmlhLWRlc2NyaWJlZGJ5PVwicGJhQWNjb3VudFJlZi1oaW50XCI+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1yYWRpb3NfX2l0ZW1cIj5cbiAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImdvdnVrLXJhZGlvc19faW5wdXRcIiBpZD1cImNhcmRQYXltZW50XCIgbmFtZT1cInBheW1lbnRTZWxlY3Rpb25cIiB0eXBlPVwicmFkaW9cIiB2YWx1ZT1cImNhcmRcIiAoY2xpY2spPVwic2VsZWN0UGF5bWVudE1ldGhvZCgnQ0FSRCcpXCIgZGF0YS1hcmlhLWNvbnRyb2xzPVwiY2FyZC1wYXltZW50XCI+XG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJnb3Z1ay1sYWJlbCBnb3Z1ay1yYWRpb3NfX2xhYmVsIHBiYS1wYXltZW50cy0xOS1mb250IHBiYS1wYXltZW50cy1mb250LWJsZFwiIGZvcj1cImNhcmRQYXltZW50XCI+XG4gICAgICAgICAgICAgIHt7IFwiUGF5IGJ5IGNyZWRpdCBvciBkZWJpdCBjYXJkXCIgfCBycHhUcmFuc2xhdGUgfX1cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9maWVsZHNldD5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1idXR0b24tLWdyb3VwXCIgICpuZ0lmPVwiZXJyb3JNc2dcIj5cbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnV0dG9uIHBiYS1wYXltZW50cy0xOS1mb250IGdvdnVrLWJ1dHRvbi0tc2Vjb25kYXJ5IHBiYS1wYXltZW50cy1tYXJnaW4tMTBcIiAoY2xpY2spPVwiZ290b0Nhc2V0cmFuc2F0aW9uUGFnZSgpXCI+XG4gICAgICAgIHt7IFwiVmlldyBTZXJ2aWNlIFJlcXVlc3RcIiB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cImJ1dHRvbiBwYmEtcGF5bWVudHMtMTktZm9udCBwYmEtcGF5bWVudHMtMjAtbWFyZ2luXCIgKGNsaWNrKT1cImNhcmRQYXltZW50KClcIj5cbiAgICAgICAge3sgXCJQYXkgYnkgY2FyZFwiIHwgcnB4VHJhbnNsYXRlIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZ292dWstYnV0dG9uLS1ncm91cFwiICAqbmdJZj1cIiFlcnJvck1zZ1wiPlxuICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgW2Rpc2FibGVkXT1cImlzQ29udGludWVCdXR0b25kaXNhYmxlZFwiIGNsYXNzPVwiYnV0dG9uIHBiYS1wYXltZW50cy0xOS1mb250IHBiYS1wYXltZW50cy0yMC1tYXJnaW5cIiAoY2xpY2spPVwic2F2ZUFuZENvbnRpbnVlKClcIj5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCIhaXNQQkFEcm9wZG93blNlbGVjdGVkXCIgY2xhc3M9XCJ3aGl0ZVwiPnt7IFwiQ29udGludWVcIiB8IHJweFRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCJpc1BCQURyb3Bkb3duU2VsZWN0ZWRcIiBjbGFzcz1cIndoaXRlXCI+e3sgXCJDb25maXJtIHBheW1lbnRcIiB8IHJweFRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJwYmFBY2NvdW50TGlzdD8ubGVuZ3RoIDw9IDAgJiYgIWVycm9yTXNnICYmIGlzR2V0UEJBQWNjb3VudFN1Y2NlZWQgJiYgaXNDYXJkUGF5bWVudFN1Y2Nlc3NcIj5cbiAgPGRpdiBjbGFzcz1cImdvdnVrLXdpZHRoLWNvbnRhaW5lclwiPlxuICAgIDxtYWluIGNsYXNzPVwiZ292dWstbWFpbi13cmFwcGVyIGdvdnVrLW1haW4td3JhcHBlci0tbFwiIGlkPVwibWFpbi1jb250ZW50XCIgcm9sZT1cIm1haW5cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1ncmlkLXJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstd2FybmluZy10ZXh0XCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay13YXJuaW5nLXRleHRfX2ljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj4hPC9zcGFuPlxuICAgICAgICAgIDxzdHJvbmcgY2xhc3M9XCJnb3Z1ay13YXJuaW5nLXRleHRfX3RleHRcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZ292dWstd2FybmluZy10ZXh0X19hc3Npc3RpdmVcIj57eyBcIldhcm5pbmdcIiB8IHJweFRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxoMiBjbGFzcz1cIndhcm5pbmctaGVhZGluZy1tXCI+e3sgXCJZb3UgZG9u4oCZdCBoYXZlIGEgcmVnaXN0ZXJlZCBQQkEuXCIgfCBycHhUcmFuc2xhdGU6IHtwYmE6IFwiUEJBXCJ9IH19PC9oMj5cbiAgICAgICAgICA8L3N0cm9uZz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwYmEtcGF5bWVudHMtbWFyZ2luLXRvcC0xMFwiPlxuICAgICAgICAgIDxoMiBjbGFzcz1cImhlYWRpbmctbWVkaXVtXCI+e3sgXCJQYXkgYnkgY3JlZGl0IG9yIGRlYml0IGNhcmRcIiB8IHJweFRyYW5zbGF0ZSB9fTwvaDI+XG4gICAgICAgICAgPHAgY2xhc3M9XCJnb3Z1ay1ib2R5IHBiYS1wYXltZW50cy0xOS1mb250XCI+XG4gICAgICAgICAgICB7eyBcIldlIHJlY29tbWVuZCB0aGF0IHlvdSBhcHBseSB0byBnZXQgYSBuZXcgUEJBIHRvIHBheSBmb3IgZmVlcy5cIiB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvcD5cbiAgICAgICAgICA8cCBjbGFzcz1cImdvdnVrLWJvZCB5cGJhLXBheW1lbnRzLTE5LWZvbnRcIj5cbiAgICAgICAgICAgIHt7IFwieW91IGNhbiBhbHNvIHBheSBieSBjcmVkaXQgb3IgZGViaXQgY2FyZCBpZiB5b3UgbmVlZCB0byBwYXkgbm93XCIgfCBycHhUcmFuc2xhdGUgfX1cbiAgICAgICAgICA8L3A+XG4gICAgICAgICAgPHAgY2xhc3M9XCJnb3Z1ay1ib2R5XCI+XG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiAoY2xpY2spPVwiY2FyZFBheW1lbnQoKVwiIGNsYXNzPVwiYnV0dG9uIHBiYS1wYXltZW50cy0xOS1mb250IHBiYS1wYXltZW50cy0yMC1tYXJnaW5cIj5cbiAgICAgICAgICAgICAge3sgXCJQYXkgYnkgY2FyZFwiIHwgcnB4VHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L3A+XG5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwYmEtcGF5bWVudHMtbWFyZ2luLXRvcC0xMFwiPlxuICAgICAgICAgIDxoMiBjbGFzcz1cImhlYWRpbmctbWVkaXVtXCI+e3sgXCJSZWdpc3RlciBhbiBleGlzdGluZyBQQkEgd2l0aCBNeUhNQ1RTXCIgfCBycHhUcmFuc2xhdGU6IHtwYmE6IFwiUEJBXCIsIG15aG1jdHM6IFwiTXlITUNUU1wifSB9fTwvaDI+XG4gICAgICAgICAgPHAgY2xhc3M9XCJnb3Z1ay1ib2R5IHBiYS1wYXltZW50cy0xOS1mb250XCI+XG4gICAgICAgICAgICB7eyBcIllvdSBtYXkgZmluZCBpdCBlYXNpZXIgaW4gZnV0dXJlIHRvIHBheSBieSBQQkEsIHlvdXIgb3JnYW5pc2F0aW9uIGFkbWluaXN0cmF0b3Igd2lsbCBuZWVkIHRvXG4gICAgICAgICAgICBlbWFpbFwiIHwgcnB4VHJhbnNsYXRlOiB7cGJhOiBcIlBCQVwifSB9fSA8YSBocmVmPVwibWFpbHRvOiBNeUhNQ1RTc3VwcG9ydEBqdXN0aWNlLmdvdi51a1wiPk15SE1DVFNzdXBwb3J0JiM2NDtqdXN0aWNlLmdvdi51azwvYT57eyBcInRvIGFzayBmb3IgeW91ciBQQkEgdG8gYmUgcmVnaXN0ZXJlZCB3aXRoIHlvdXJcbiAgICAgICAgICAgIE15SE1DVFMgYWNjb3VudC4gWW91IHNob3VsZCBpbmNsdWRlIHlvdXIgb3JnYW5pc2F0aW9uIG5hbWUgYW5kIFBCQSBudW1iZXIuXCIgfCBycHhUcmFuc2xhdGU6IHtwYmE6IFwiUEJBXCIsIG15aG1jdHM6IFwiTXlITUNUU1wifSB9fVxuICAgICAgICAgIDwvcD5cbiAgICAgICAgICA8cCBjbGFzcz1cImdvdnVrLWJvZHkgcGJhLXBheW1lbnRzLTE5LWZvbnRcIj5cbiAgICAgICAgICAgIHt7IFwiSXQgY2FuIHRoZW4gdGFrZSB1cCB0byAzIGRheXMgZm9yIHlvdXIgYWNjb3VudCB0byBiZSB1cGRhdGVkLiBZb3XigJlsbCBuZWVkIHRvIHN0YXJ0IHlvdXIgY2xhaW1cbiAgICAgICAgICAgIGFnYWluIHRvIHBheSB0aGUgZmVlLlwiIHwgcnB4VHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInBiYS1wYXltZW50cy1tYXJnaW4tdG9wLTEwXCI+XG4gICAgICAgICAgPGgyIGNsYXNzPVwiaGVhZGluZy1tZWRpdW1cIj57eyBcIkFwcGx5IHRvIGdldCBhIG5ldyBQQkFcIiB8IHJweFRyYW5zbGF0ZToge3BiYTogXCJQQkFcIn0gfX08L2gyPlxuICAgICAgICAgIDxwIGNsYXNzPVwiZ292dWstYm9keSBwYmEtcGF5bWVudHMtMTktZm9udFwiPlxuICAgICAgICAgICAge3sgXCJZb3XigJlsbCBuZWVkIHRvIHByb3ZpZGUgZGV0YWlscyBmb3IgeW91IGFuZCB5b3VyIG9yZ2FuaXNhdGlvbiwgaW5jbHVkaW5nIHRoZSByZXF1aXJlZCBjcmVkaXRcbiAgICAgICAgICAgICBsaW1pdCBmb3IgeW91ciBhY2NvdW50LlwiIHwgcnB4VHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9wPlxuICAgICAgICAgIDxwIGNsYXNzPVwiZ292dWstYm9keSBwYmEtcGF5bWVudHMtMTktZm9udFwiPlxuICAgICAgICAgICAge3sgXCJPbmNlIHlvdXIgYWNjb3VudCBoYXMgYmVlbiByZWdpc3RlcmVkLCB5b3XigJlsbCBuZWVkIHRvIHN0YXJ0IHlvdXIgY2xhaW0gYWdhaW4gdG8gcGF5IHRoZSBmZWUuXCIgfCBycHhUcmFuc2xhdGUgfX1cbiAgICAgICAgICA8L3A+XG4gICAgICAgICAgPHAgY2xhc3M9XCJnb3Z1ay1ib2R5IHBiYS1wYXltZW50cy0xOS1mb250XCI+XG4gICAgICAgICAgICB7eyBcIlJlYWQgbW9yZSBpbmZvcm1hdGlvbiBvblwiIHwgcnB4VHJhbnNsYXRlIH19IDxhIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9XCJodHRwczovL3d3dy5nb3YudWsvZ3VpZGFuY2UvaG1jdHMtcGF5bWVudC1ieS1hY2NvdW50LWZvci1vbmxpbmUtc2VydmljZXNcIj57eyBcInJlZ2lzdGVyaW5nIGZvciBQQkFcIiB8IHJweFRyYW5zbGF0ZToge3BiYTogXCJQQkFcIn0gfX08L2E+LlxuICAgICAgICAgIDwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L21haW4+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJpc0luU3VmZmljaWFudEZ1bmQgJiYgaXNDYXJkUGF5bWVudFN1Y2Nlc3NcIj5cbiAgPGRpdiBjbGFzcz1cImdvdnVrLXdpZHRoLWNvbnRhaW5lclwiPlxuICAgIDxtYWluIGNsYXNzPVwiZ292dWstbWFpbi13cmFwcGVyIGdvdnVrLW1haW4td3JhcHBlci0tbFwiIGlkPVwibWFpbi1jb250ZW50XCIgcm9sZT1cIm1haW5cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1ncmlkLXJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstZXJyb3Itc3VtbWFyeSBwYmEtcGF5bWVudHMtZXJyb3ItYm94LS1zaXplXCIgYXJpYS1sYWJlbGxlZGJ5PVwiZXJyb3Itc3VtbWFyeS10aXRsZVwiPlxuICAgICAgICAgIDxoMiBjbGFzcz1cImdvdnVrLWVycm9yLXN1bW1hcnlfX3RpdGxlIGdvdnVrLWVycm9yLXN1bW1hcnlfX3RpdGxlLWN1c3RvbSBwYmEtcGF5bWVudHMtMjQtZm9udFwiIGlkPVwiZXJyb3Itc3VtbWFyeS10aXRsZVwiPlxuICAgICAgICAgICAge3sgXCJUaGVyZSBpcyBhIHByb2JsZW1cIiB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvaDI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLWVycm9yLXN1bW1hcnlfX2JvZHlcIj5cbiAgICAgICAgICAgIDx1bCBjbGFzcz1cImdvdnVrLWxpc3QgZ292dWstZXJyb3Itc3VtbWFyeV9fbGlzdFwiPlxuICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJwYmEtcGF5bWVudHMtZXJyb3ItMTYtZm9udFwiPlxuICAgICAgICAgICAgICAgIHt7IFwiWW91IGRvbid0IGhhdmUgZW5vdWdoIGZ1bmRzIGluIHlvdXIgUEJBIGFjY291bnQgdG8gcGF5IGZvciB0aGlzIGZlZS5cIiB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJwYmEtcGF5bWVudHMtZXJyb3ItMTYtZm9udFwiPlxuICAgICAgICAgICAgICAgIHt7IFwiSWYgeW91IGhhdmUgYWxyZWFkeSB0b3BwZWQgdXAgeW91ciBQQkEgYWNjb3VudCwgd2FpdCB1cCB0byAyNCBob3VycyBmb3IgdGhlIG5ldyBiYWxhbmNlIHRvIGJlY29tZSBhdmFpbGFibGUuXCIgfCBycHhUcmFuc2xhdGU6IHtwYmE6IFwiUEJBXCIsIG51bWJlcjogXCIyNFwifSB9fVxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwYmEtcGF5bWVudHMtbWFyZ2luLXRvcC0xMFwiPlxuICAgICAgICAgIDxoMiBjbGFzcz1cImhlYWRpbmctbWVkaXVtXCI+e3sgXCJTaG91bGQgeW91IG5lZWQgYW55IGZ1cnRoZXIgYWR2aWNlXCIgfCBycHhUcmFuc2xhdGUgfX08L2gyPlxuICAgICAgICAgIDxwIGNsYXNzPVwiZ292dWstYm9keSBwYmEtcGF5bWVudHMtMTktZm9udFwiPlxuICAgICAgICAgICAge3sgXCJFbWFpbFwiIHwgcnB4VHJhbnNsYXRlIH19IDxhIGhyZWY9XCJtYWlsdG86TWlkZGxlT2ZmaWNlLkREc2VydmljZXNAbGliZXJhdGEuY29tXCI+TWlkZGxlT2ZmaWNlLkREc2VydmljZXMmIzY0O2xpYmVyYXRhLmNvbTwvYT4ge3sgXCJvciBjYWxsXCIgfCBycHhUcmFuc2xhdGUgfX0gPGEgaHJlZj1cInRlbDowMTYzMy02NTItMTI1XCI+MDE2MzMgNjUyIDEyNTwvYT4gKHt7IFwib3B0aW9uXCIgfCBycHhUcmFuc2xhdGUgfX0gMykge3sgXCJ0byB0cnkgdG8gZml4IHRoZSBpc3N1ZS5cIiB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvcD5cbiAgICAgICAgICA8cCBjbGFzcz1cImdvdnVrLWJvZHkgcGJhLXBheW1lbnRzLTE5LWZvbnRcIj5cbiAgICAgICAgICAgIHt7IFwieW91IGNhbiBhbHNvIHBheSBieSBjcmVkaXQgb3IgZGViaXQgY2FyZC5cIiB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvcD5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstYnV0dG9uLS1ncm91cFwiPlxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidXR0b24gcGJhLXBheW1lbnRzLTE5LWZvbnQgZ292dWstYnV0dG9uLS1zZWNvbmRhcnkgcGJhLXBheW1lbnRzLW1hcmdpbi0xMFwiIChjbGljayk9XCJnb3RvQ2FzZXRyYW5zYXRpb25QYWdlKClcIj5cbiAgICAgICAgICAgICAge3sgXCJWaWV3IFNlcnZpY2UgUmVxdWVzdFwiIHwgcnB4VHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiYnV0dG9uIHBiYS1wYXltZW50cy0xOS1mb250IHBiYS1wYXltZW50cy0yMC1tYXJnaW5cIiAoY2xpY2spPVwiY2FyZFBheW1lbnQoKVwiPlxuICAgICAgICAgICAgICB7eyBcIlBheSBieSBjYXJkXCIgfCBycHhUcmFuc2xhdGUgfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbWFpbj5cbiAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJpc1BCQUFjY291bnROb3RFeGlzdCAmJiBpc0NhcmRQYXltZW50U3VjY2Vzc1wiPlxuICA8ZGl2IGNsYXNzPVwiZ292dWstd2lkdGgtY29udGFpbmVyXCI+XG4gICAgPG1haW4gY2xhc3M9XCJnb3Z1ay1tYWluLXdyYXBwZXIgZ292dWstbWFpbi13cmFwcGVyLS1sXCIgaWQ9XCJtYWluLWNvbnRlbnRcIiByb2xlPVwibWFpblwiPlxuICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLWdyaWQtcm93XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1lcnJvci1zdW1tYXJ5IHBiYS1wYXltZW50cy1lcnJvci1ib3gtLXNpemVcIiBhcmlhLWxhYmVsbGVkYnk9XCJlcnJvci1zdW1tYXJ5LXRpdGxlXCI+XG4gICAgICAgICAgPGgyIGNsYXNzPVwiZ292dWstZXJyb3Itc3VtbWFyeV9fdGl0bGUgZ292dWstZXJyb3Itc3VtbWFyeV9fdGl0bGUtY3VzdG9tIHBiYS1wYXltZW50cy0yNC1mb250XCIgaWQ9XCJlcnJvci1zdW1tYXJ5LXRpdGxlXCI+XG4gICAgICAgICAgICB7eyBcIlRoZXJlIGlzIGEgcHJvYmxlbVwiIHwgcnB4VHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9oMj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstZXJyb3Itc3VtbWFyeV9fYm9keVwiPlxuICAgICAgICAgICAgPHVsIGNsYXNzPVwiZ292dWstbGlzdCBnb3Z1ay1lcnJvci1zdW1tYXJ5X19saXN0XCI+XG4gICAgICAgICAgICAgIDxsaSBjbGFzcz1cInBiYS1wYXltZW50cy1lcnJvci0xNi1mb250XCI+XG4gICAgICAgICAgICAgICAgKHt7IFwiWW91ciBQQkEgYWNjb3VudFwiIHwgcnB4VHJhbnNsYXRlOiB7cGJhOiBcIlBCQVwifSB9fSkgKHt7IHNlbGVjdGVkUGJhQWNjb3VudCB9fSkgKHt7IFwibm8gbG9uZ2VyIGV4aXN0cy5cIiB8IHJweFRyYW5zbGF0ZSB9fSlcbiAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwicGJhLXBheW1lbnRzLW1hcmdpbi10b3AtMTBcIj5cbiAgICAgICAgICA8aDIgY2xhc3M9XCJoZWFkaW5nLW1lZGl1bVwiPnt7IFwiU2hvdWxkIHlvdSBuZWVkIGFueSBmdXJ0aGVyIGFkdmljZVwiIHwgcnB4VHJhbnNsYXRlIH19PC9oMj5cbiAgICAgICAgICA8cCBjbGFzcz1cImdvdnVrLWJvZHkgcGJhLXBheW1lbnRzLTE5LWZvbnQgZ292dWstYm9keS13aWR0aFwiPlxuICAgICAgICAgICAge3sgXCJFbWFpbFwiIHwgcnB4VHJhbnNsYXRlIH19IDxhIGhyZWY9XCJtYWlsdG86TWlkZGxlT2ZmaWNlLkREc2VydmljZXNAbGliZXJhdGEuY29tXCI+TWlkZGxlT2ZmaWNlLkREc2VydmljZXMmIzY0O2xpYmVyYXRhLmNvbTwvYT4ge3sgXCJvciBjYWxsXCIgfCBycHhUcmFuc2xhdGUgfX0gPGEgaHJlZj1cInRlbDowMTYzMy02NTItMTI1XCI+MDE2MzMgNjUyIDEyNTwvYT4gKHt7IFwib3B0aW9uXCIgfCBycHhUcmFuc2xhdGUgfX0gMykge3sgXCJ0byB0cnkgdG8gZml4IHRoZSBpc3N1ZS5cIiB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvcD5cbiAgICAgICAgICA8cCBjbGFzcz1cImdvdnVrLWJvZHkgcGJhLXBheW1lbnRzLTE5LWZvbnRcIj5cbiAgICAgICAgICAgIHt7IFwieW91IGNhbiBhbHNvIHBheSBieSBjcmVkaXQgb3IgZGViaXQgY2FyZC5cIiB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvcD5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstYnV0dG9uLS1ncm91cFwiPlxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidXR0b24gcGJhLXBheW1lbnRzLTE5LWZvbnQgZ292dWstYnV0dG9uLS1zZWNvbmRhcnkgcGJhLXBheW1lbnRzLW1hcmdpbi0xMFwiIChjbGljayk9XCJnb3RvQ2FzZXRyYW5zYXRpb25QYWdlKClcIj5cbiAgICAgICAgICAgICAge3sgXCJWaWV3IFNlcnZpY2UgUmVxdWVzdFwiIHwgcnB4VHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiYnV0dG9uIHBiYS1wYXltZW50cy0xOS1mb250IHBiYS1wYXltZW50cy0yMC1tYXJnaW5cIiAoY2xpY2spPVwiY2FyZFBheW1lbnQoKVwiPlxuICAgICAgICAgICAgICB7eyBcIlBheSBieSBjYXJkXCIgfCBycHhUcmFuc2xhdGUgfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbWFpbj5cbiAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJpc1BCQUFjY291bnRIb2xkICYmIGlzQ2FyZFBheW1lbnRTdWNjZXNzXCI+XG4gIDxkaXYgY2xhc3M9XCJnb3Z1ay13aWR0aC1jb250YWluZXJcIj5cbiAgICA8bWFpbiBjbGFzcz1cImdvdnVrLW1haW4td3JhcHBlciBnb3Z1ay1tYWluLXdyYXBwZXItLWxcIiBpZD1cIm1haW4tY29udGVudFwiIHJvbGU9XCJtYWluXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZ292dWstZ3JpZC1yb3dcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLWVycm9yLXN1bW1hcnkgcGJhLXBheW1lbnRzLWVycm9yLWJveC0tc2l6ZVwiIGFyaWEtbGFiZWxsZWRieT1cImVycm9yLXN1bW1hcnktdGl0bGVcIj5cbiAgICAgICAgICA8aDIgY2xhc3M9XCJnb3Z1ay1lcnJvci1zdW1tYXJ5X190aXRsZSBnb3Z1ay1lcnJvci1zdW1tYXJ5X190aXRsZS1jdXN0b20gcGJhLXBheW1lbnRzLTI0LWZvbnRcIiBpZD1cImVycm9yLXN1bW1hcnktdGl0bGVcIj5cbiAgICAgICAgICAgIHt7IFwiVGhlcmUgaXMgYSBwcm9ibGVtXCIgfCBycHhUcmFuc2xhdGUgfX1cbiAgICAgICAgICA8L2gyPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1lcnJvci1zdW1tYXJ5X19ib2R5XCI+XG4gICAgICAgICAgICA8dWwgY2xhc3M9XCJnb3Z1ay1saXN0IGdvdnVrLWVycm9yLXN1bW1hcnlfX2xpc3RcIj5cbiAgICAgICAgICAgICAgPGxpIGNsYXNzPVwicGJhLXBheW1lbnRzLWVycm9yLTE2LWZvbnRcIj5cbiAgICAgICAgICAgICAgICB7eyBcIllvdXIgUEJBIGFjY291bnQgXCIgfCBycHhUcmFuc2xhdGU6IHtwYmE6IFwiUEJBXCJ9IH19ICAoe3tzZWxlY3RlZFBiYUFjY291bnR9fSkge3sgXCIgaGFzIGJlZW4gcHV0IG9uIGhvbGQuXCIgfCBycHhUcmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwicGJhLXBheW1lbnRzLW1hcmdpbi10b3AtMTBcIj5cbiAgICAgICAgICA8aDIgY2xhc3M9XCJoZWFkaW5nLW1lZGl1bVwiPnt7IFwiU2hvdWxkIHlvdSBuZWVkIGFueSBmdXJ0aGVyIGFkdmljZVwiIHwgcnB4VHJhbnNsYXRlIH19PC9oMj5cbiAgICAgICAgICA8cCBjbGFzcz1cImdvdnVrLWJvZHkgcGJhLXBheW1lbnRzLTE5LWZvbnQgZ292dWstYm9keS13aWR0aFwiPlxuICAgICAgICAgICAge3sgXCJFbWFpbFwiIHwgcnB4VHJhbnNsYXRlIH19IDxhIGhyZWY9XCJtYWlsdG86TWlkZGxlT2ZmaWNlLkREc2VydmljZXNAbGliZXJhdGEuY29tXCI+TWlkZGxlT2ZmaWNlLkREc2VydmljZXMmIzY0O2xpYmVyYXRhLmNvbTwvYT4ge3sgXCJvciBjYWxsXCIgfCBycHhUcmFuc2xhdGUgfX0gPGEgaHJlZj1cInRlbDowMTYzMy02NTItMTI1XCI+MDE2MzMgNjUyIDEyNTwvYT4gKHt7IFwib3B0aW9uXCIgfCBycHhUcmFuc2xhdGUgfX0gMykge3sgXCJ0byB0cnkgdG8gZml4IHRoZSBpc3N1ZS5cIiB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvcD5cbiAgICAgICAgICA8cCBjbGFzcz1cImdvdnVrLWJvZHkgcGJhLXBheW1lbnRzLTE5LWZvbnRcIj5cbiAgICAgICAgICAgIHt7IFwieW91IGNhbiBhbHNvIHBheSBieSBjcmVkaXQgb3IgZGViaXQgY2FyZC5cIiB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvcD5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstYnV0dG9uLS1ncm91cFwiPlxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidXR0b24gcGJhLXBheW1lbnRzLTE5LWZvbnQgZ292dWstYnV0dG9uLS1zZWNvbmRhcnkgcGJhLXBheW1lbnRzLW1hcmdpbi0xMFwiIChjbGljayk9XCJnb3RvQ2FzZXRyYW5zYXRpb25QYWdlKClcIj5cbiAgICAgICAgICAgICAge3sgXCJWaWV3IFNlcnZpY2UgUmVxdWVzdFwiIHwgcnB4VHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiYnV0dG9uIHBiYS1wYXltZW50cy0xOS1mb250IHBiYS1wYXltZW50cy0yMC1tYXJnaW5cIiAoY2xpY2spPVwiY2FyZFBheW1lbnQoKVwiPlxuICAgICAgICAgICAgICB7eyBcIlBheSBieSBjYXJkXCIgfCBycHhUcmFuc2xhdGUgfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbWFpbj5cbiAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJpc1BCQVNlcnZlckVycm9yICYmIGlzQ2FyZFBheW1lbnRTdWNjZXNzXCI+XG4gIDxkaXYgY2xhc3M9XCJnb3Z1ay13aWR0aC1jb250YWluZXJcIj5cbiAgICA8bWFpbiBjbGFzcz1cImdvdnVrLW1haW4td3JhcHBlciBnb3Z1ay1tYWluLXdyYXBwZXItLWxcIiBpZD1cIm1haW4tY29udGVudFwiIHJvbGU9XCJtYWluXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZ292dWstZ3JpZC1yb3dcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInBiYS1wYXltZW50cy1tYXJnaW4tdG9wLTEwXCI+XG4gICAgICAgICAgPGgyIGNsYXNzPVwicGJhLXBheW1lbnRzLWhlYWRpbmctbGdcIj57eyBcIlNvcnJ5LCB0aGVyZSBpcyBhIHByb2JsZW0gd2l0aCB0aGUgc2VydmljZVwiIHwgcnB4VHJhbnNsYXRlIH19PC9oMj5cbiAgICAgICAgICA8cCBjbGFzcz1cImdvdnVrLWJvZHkgcGJhLXBheW1lbnRzLTE5LWZvbnRcIj5cbiAgICAgICAgICAgIHt7IFwiVHJ5IGFnYWluIGxhdGVyLlwiIHwgcnB4VHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9wPlxuICAgICAgICAgIDxwIGNsYXNzPVwiZ292dWstYm9keSBwYmEtcGF5bWVudHMtMTktZm9udFwiPlxuICAgICAgICAgICAge3sgXCJ5b3UgY2FuIGFsc28gcGF5IGJ5IGNyZWRpdCBvciBkZWJpdCBjYXJkLlwiIHwgcnB4VHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9wPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1idXR0b24tLWdyb3VwXCI+XG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ1dHRvbiBwYmEtcGF5bWVudHMtMTktZm9udCBnb3Z1ay1idXR0b24tLXNlY29uZGFyeSBwYmEtcGF5bWVudHMtbWFyZ2luLTEwXCIgKGNsaWNrKT1cImdvdG9DYXNldHJhbnNhdGlvblBhZ2UoKVwiPlxuICAgICAgICAgICAgICB7eyBcIlZpZXcgU2VydmljZSBSZXF1ZXN0XCIgfCBycHhUcmFuc2xhdGUgfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJidXR0b24gcGJhLXBheW1lbnRzLTE5LWZvbnQgcGJhLXBheW1lbnRzLTIwLW1hcmdpblwiIChjbGljayk9XCJjYXJkUGF5bWVudCgpXCI+XG4gICAgICAgICAgICAgIHt7IFwiUGF5IGJ5IGNhcmRcIiB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9tYWluPlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwiaXNQQkFBY2NvdW50UGF5bWVudFN1Y2Nlc3MgJiYgaXNDYXJkUGF5bWVudFN1Y2Nlc3NcIj5cbiAgPGRpdiBjbGFzcz1cImdvdnVrLXdpZHRoLWNvbnRhaW5lclwiPlxuICAgIDxtYWluIGNsYXNzPVwiZ292dWstbWFpbi13cmFwcGVyIGdvdnVrLW1haW4td3JhcHBlci0tbFwiIGlkPVwibWFpbi1jb250ZW50XCIgcm9sZT1cIm1haW5cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1ncmlkLXJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstcGFuZWwgZ292dWstcGFuZWwtLWNvbmZpcm1hdGlvbiBwYmEtcGF5bWVudHMtLWNvbmZpcm1hdGlvblwiPlxuICAgICAgICAgIDxoMSBjbGFzcz1cImdvdnVrLXBhbmVsX190aXRsZSBwYmEtcGF5bWVudHMtLXRpdGxlIHdoaXRlXCI+XG4gICAgICAgICAgICAge3sgXCJQYXltZW50IHN1Y2Nlc3NmdWxcIiB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvaDE+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLXBhbmVsX19ib2R5IHBiYS1wYXltZW50c19fYm9keSB3aGl0ZVwiPlxuICAgICAgICAgICAgICB7eyBcIllvdXIgcGF5bWVudCByZWZlcmVuY2UgaXNcIiB8IHJweFRyYW5zbGF0ZSB9fSA8YnI+PHN0cm9uZyBjbGFzcz1cIndoaXRlXCI+e3twYmFBY2NvdW50clBheW1lbnRSZXN1bHQucGF5bWVudF9yZWZlcmVuY2V9fTwvc3Ryb25nPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8cCBjbGFzcz1cImdvdnVrLWJvZHkgcGJhLXBheW1lbnRzLTE5LWZvbnRcIj5cbiAgICAgICAgPGEgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiIChjbGljayk9XCJnb3RvQ2FzZXRyYW5zYXRpb25QYWdlKClcIj57eyBcIlZpZXcgc2VydmljZSByZXF1ZXN0c1wiIHwgcnB4VHJhbnNsYXRlIH19PC9hPlxuICAgICAgPC9wPlxuICAgICAgPC9kaXY+XG4gICAgPC9tYWluPlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwiIWlzQ2FyZFBheW1lbnRTdWNjZXNzXCI+XG4gIDxkaXYgY2xhc3M9XCJnb3Z1ay13aWR0aC1jb250YWluZXJcIj5cbiAgICA8bWFpbiBjbGFzcz1cImdvdnVrLW1haW4td3JhcHBlciBnb3Z1ay1tYWluLXdyYXBwZXItLWxcIiBpZD1cIm1haW4tY29udGVudFwiIHJvbGU9XCJtYWluXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZ292dWstZ3JpZC1yb3dcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInBiYS1wYXltZW50cy1tYXJnaW4tdG9wLTEwXCI+XG4gICAgICAgICAgPGgyIGNsYXNzPVwicGJhLXBheW1lbnRzLWhlYWRpbmctbGdcIj57eyBcIlNvcnJ5LCB0aGVyZSBpcyBhIHByb2JsZW0gd2l0aCB0aGUgc2VydmljZVwiIHwgcnB4VHJhbnNsYXRlIH19PC9oMj5cbiAgICAgICAgICA8cCBjbGFzcz1cImdvdnVrLWJvZHkgcGJhLXBheW1lbnRzLTE5LWZvbnRcIj5cbiAgICAgICAgICAgIHt7IFwiVHJ5IGFnYWluIGxhdGVyLlwiIHwgcnB4VHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9wPlxuICAgICAgICAgIDwhLS0gPHAgY2xhc3M9XCJnb3Z1ay1ib2R5IHBiYS1wYXltZW50cy0xOS1mb250XCI+XG4gICAgICAgICAgICB5b3UgY2FuIGFsc28gPGEgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiIChjbGljayk9XCJjYXJkUGF5bWVudCgpXCIgPnBheSBieSBjcmVkaXQgb3IgZGViaXQgY2FyZDwvYT4uXG4gICAgICAgICAgPC9wPiAtLT5cbiAgICAgICAgICA8cCBjbGFzcz1cImdvdnVrLWJvZHkgcGJhLXBheW1lbnRzLTE5LWZvbnRcIj5cbiAgICAgICAgICAgIDxhIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIiAoY2xpY2spPVwiZ290b0Nhc2V0cmFuc2F0aW9uUGFnZSgpXCI+e3sgXCJWaWV3IHNlcnZpY2UgcmVxdWVzdHNcIiB8IHJweFRyYW5zbGF0ZSB9fTwvYT5cbiAgICAgICAgICA8L3A+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9tYWluPlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG5cblxuXG4iXX0=
163
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGJhLXBheW1lbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcGF5bWVudC1saWIvc3JjL2xpYi9jb21wb25lbnRzL3BiYS1wYXltZW50L3BiYS1wYXltZW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3BheW1lbnQtbGliL3NyYy9saWIvY29tcG9uZW50cy9wYmEtcGF5bWVudC9wYmEtcGF5bWVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFFdEYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDekYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDdkYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxvQkFBb0IsRUFBZSxNQUFNLHFCQUFxQixDQUFDOzs7OztBQUd4RSxNQUFNLGNBQWMsR0FBRyx1QkFBdUIsQ0FBQztBQVkvQyxNQUFNLE9BQU8sbUJBQW1CO0lBcUJhO0lBQ2pDO0lBckJELGNBQWMsQ0FBTTtJQUM3QixVQUFVLENBQVM7SUFDbkIsY0FBYyxDQUFXO0lBQ3pCLGdCQUFnQixHQUFZLEtBQUssQ0FBQztJQUNsQyxRQUFRLENBQU07SUFDZCxvQkFBb0IsR0FBWSxJQUFJLENBQUM7SUFDckMsa0JBQWtCLEdBQVksS0FBSyxDQUFDO0lBQ3BDLG9CQUFvQixHQUFZLEtBQUssQ0FBQztJQUN0QyxnQkFBZ0IsR0FBWSxLQUFLLENBQUM7SUFDbEMsc0JBQXNCLEdBQVksS0FBSyxDQUFDO0lBQ3hDLGtCQUFrQixHQUFXLEVB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QUFxQixHQUFHLEtBQUssQ0FBQztZQUNuQyxJQUFJLENBQUMscUJBQXFCLEdBQUcsS0FBSyxDQUFBO1lBQ2xDLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxJQUFJLENBQUM7WUFDckMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQztRQUNqQyxDQUFDO2FBQU0sSUFBSSxJQUFJLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQztZQUNsQyxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxLQUFLLENBQUE7WUFDbEMsSUFBSSxDQUFDLHdCQUF3QixHQUFHLEtBQUssQ0FBQztRQUN4QyxDQUFDO0lBQ0gsQ0FBQztJQUNELHNCQUFzQjtRQUNwQixJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxHQUFHLG1CQUFtQixDQUFDO1FBQ3hELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQzdDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQzNDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyx3QkFBd0IsR0FBRyxJQUFJLENBQUM7SUFDM0QsQ0FBQzt3R0FuSlUsbUJBQW1CLGtCQXFCVixhQUFhOzRGQXJCdEIsbUJBQW1CLDJIQ3JCaEMsbXZtQkE0VUEsMC9CRDVUSSxZQUFZLDBUQUNaLG9CQUFvQjs7NEZBSVgsbUJBQW1CO2tCQVYvQixTQUFTOytCQUNFLG1CQUFtQixXQUdwQjt3QkFDUCxZQUFZO3dCQUNaLG9CQUFvQjtxQkFDckIsY0FDVyxJQUFJOzswQkF1QkgsTUFBTTsyQkFBQyxhQUFhOzBFQXBCeEIsY0FBYztzQkFBdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQYXltZW50Vmlld1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9wYXltZW50LXZpZXcvcGF5bWVudC12aWV3LnNlcnZpY2UnO1xuaW1wb3J0IHR5cGUgeyBQYXltZW50TGliQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vcGF5bWVudC1saWIuY29tcG9uZW50JztcbmltcG9ydCB7IElzZXJ2aWNlUmVxdWVzdENhcmRQYXltZW50IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9Jc2VydmljZVJlcXVlc3RDYXJkUGF5bWVudCc7XG5pbXBvcnQgeyBJc2VydmljZVJlcXVlc3RQYmFQYXltZW50IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9Jc2VydmljZVJlcXVlc3RQYmFQYXltZW50JztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBScHhUcmFuc2xhdGlvbk1vZHVsZSwgUnB4TGFuZ3VhZ2UgfSBmcm9tICdycHgteHVpLXRyYW5zbGF0aW9uJztcbnR5cGUgUGF5bWVudExpYkFsaWFzID0gUGF5bWVudExpYkNvbXBvbmVudDtcblxuY29uc3QgQlNfRU5BQkxFX0ZMQUcgPSAnYnVsay1zY2FuLWVuYWJsaW5nLWZlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NwYXktcGJhLXBheW1lbnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vcGJhLXBheW1lbnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wYmEtcGF5bWVudC5jb21wb25lbnQuc2NzcyddLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFJweFRyYW5zbGF0aW9uTW9kdWxlXG4gIF0sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgUGJhUGF5bWVudENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHBiYVBheU9yZGVyUmVmOiBhbnk7XG4gIHZpZXdTdGF0dXM6IHN0cmluZztcbiAgcGJhQWNjb3VudExpc3Q6IHN0cmluZ1tdO1xuICBpc1BCQUFjY291bnRIb2xkOiBib29sZWFuID0gZmFsc2U7XG4gIGVycm9yTXNnOiBhbnk7XG4gIGlzQ2FyZFBheW1lbnRTdWNjZXNzOiBib29sZWFuID0gdHJ1ZTtcbiAgaXNJblN1ZmZpY2lhbnRGdW5kOiBib29sZWFuID0gZmFsc2U7XG4gIGlzUEJBQWNjb3VudE5vdEV4aXN0OiBib29sZWFuID0gZmFsc2U7XG4gIGlzUEJBU2VydmVyRXJyb3I6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNHZXRQQkFBY2NvdW50U3VjY2VlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBzZWxlY3RlZFBiYUFjY291bnQ6IHN0cmluZyA9ICcnO1xuICBwYmFBY2NvdW50UmVmOiBzdHJpbmcgPSAnJztcbiAgaXNQYmFBY2NvdW50U2VsZWN0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNDYXJkUGF5bWVudFNlbGVjdGVkOiBib29sZWFuID0gZmFsc2U7XG4gIGlzUEJBRHJvcGRvd25TZWxlY3RlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBpc0NvbnRpbnVlQnV0dG9uZGlzYWJsZWQ6IGJvb2xlYW4gPSB0cnVlO1xuICBpc1BCQUFjY291bnRQYXltZW50U3VjY2VzczogYm9vbGVhbiA9IGZhbHNlO1xuICBwYmFBY2NvdW50clBheW1lbnRSZXN1bHQ6IGFueTtcbiAgb3JnTmFtZTogc3RyaW5nID0gJyc7XG5cbiAgY29uc3RydWN0b3IoQEluamVjdCgnUEFZTUVOVF9MSUInKSBwcml2YXRlIHBheW1lbnRMaWJDb21wb25lbnQ6IFBheW1lbnRMaWJBbGlhcyxcbiAgICBwcml2YXRlIHBheW1lbnRWaWV3U2VydmljZTogUGF5bWVudFZpZXdTZXJ2aWNlKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnBiYVBheU9yZGVyUmVmID0gdGhpcy5wYXltZW50TGliQ29tcG9uZW50LnBiYVBheU9yZGVyUmVmO1xuICAgIHRoaXMudmlld1N0YXR1cyA9ICdwYmEtcGF5bWVudCc7XG4gICAgdGhpcy5lcnJvck1zZyA9IG51bGw7XG4gICAgdGhpcy5wYXltZW50Vmlld1NlcnZpY2UuZ2V0UEJBYWNjb3VudERldGFpbHMoKVxuICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgcmVzdWx0ID0+IHtcbiAgICAgICAgICB0aGlzLmlzR2V0UEJBQWNjb3VudFN1Y2NlZWQgPSB0cnVlO1xuICAgICAgICAgIHRoaXMub3JnTmFtZSA9IHJlc3VsdC5vcmdhbmlzYXRpb25FbnRpdHlSZXNwb25zZS5uYW1lO1xuICAgICAgICAgIHRoaXMucGJhQWNjb3VudExpc3QgPSByZXN1bHQub3JnYW5pc2F0aW9uRW50aXR5UmVzcG9uc2UucGF5bWVudEFjY291bnQ7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yID0+IHtcbiAgICAgICAgICB0aGlzLmVycm9yTXNnID0gZXJyb3I7XG4gICAgICAgIH1cbiAgICAgICk7XG5cbiAgfVxuXG4gIGdldFBlcnNpc3RlZExhbmd1YWdlKCk6IFJweExhbmd1YWdlIHtcbiAgICByZXR1cm4gZG9jdW1lbnQuY29va2llLnNwbGl0KCc7JykuZmluZCgoY29va2llKSA9PiBjb29raWUudHJpbSgpLnN0YXJ0c1dpdGgoJ2V4dWktcHJlZmVycmVkLWxhbmd1YWdlJyArICc9JykpPy5zcGxpdCgnPScpWzFdLnRyaW0oKSBhcyBScHhMYW5ndWFnZTtcbiAgfVxuXG4gIGJ1dHRvbkNoZWNrKCkge1xuICAgIGlmICh0aGlzLnNlbGVjdGVkUGJhQWNjb3VudCAhPT0gJycgJiYgdGhpcy5wYmFBY2NvdW50UmVmICE9PSBcIlwiKSB7XG4gICAgICB0aGlzLmlzQ29udGludWVCdXR0b25kaXNhYmxlZCA9IGZhbHNlO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHRoaXMuaXNDb250aW51ZUJ1dHRvbmRpc2FibGVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBzZWxlY3RwYmFhY2NvdW50KGFyZ3MpIHtcbiAgICBpZiAoYXJncy5jdXJyZW50VGFyZ2V0LmlkID09PSAncGJhQWNjb3VudE51bWJlcicpIHtcbiAgICAgIHRoaXMuaXNQQkFEcm9wZG93blNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRQYmFBY2NvdW50ID0gYXJncy50YXJnZXQudmFsdWU7XG4gICAgICB0aGlzLmJ1dHRvbkNoZWNrKCk7XG4gICAgfVxuICAgIGlmIChhcmdzLmN1cnJlbnRUYXJnZXQuaWQgPT09ICdwYmFBY2NvdW50UmVmJykge1xuICAgICAgdGhpcy5wYmFBY2NvdW50UmVmID0gYXJncy50YXJnZXQudmFsdWU7XG4gICAgICB0aGlzLmJ1dHRvbkNoZWNrKCk7XG4gICAgfVxuICB9XG5cbiAgc2F2ZUFuZENvbnRpbnVlKCkge1xuXG4gICAgaWYgKHRoaXMuaXNQYmFBY2NvdW50U2VsZWN0ZWQpIHtcbiAgICAgIHRoaXMuaXNJblN1ZmZpY2lhbnRGdW5kID0gZmFsc2U7XG4gICAgICB0aGlzLmlzUEJBQWNjb3VudE5vdEV4aXN0ID0gZmFsc2U7XG4gICAgICB0aGlzLmlzUEJBU2VydmVyRXJyb3IgPSBmYWxzZTtcbiAgICAgIHRoaXMuaXNQQkFBY2NvdW50UGF5bWVudFN1Y2Nlc3MgPSBmYWxzZTtcbiAgICAgIHRoaXMuaXNDb250aW51ZUJ1dHRvbmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgIGlmICh0aGlzLnBiYUFjY291bnRMaXN0LmluZGV4T2YodGhpcy5zZWxlY3RlZFBiYUFjY291bnQpICE9PSAtMSkge1xuICAgICAgICBjb25zdCByZXF1ZXN0Qm9keSA9IG5ldyBJc2VydmljZVJlcXVlc3RQYmFQYXltZW50KFxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRQYmFBY2NvdW50LCB0aGlzLnBiYVBheU9yZGVyUmVmLm9yZGVyVG90YWxGZWVzLCB0aGlzLnBiYUFjY291bnRSZWYsIHRoaXMub3JnTmFtZSk7XG5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5wYXltZW50Vmlld1NlcnZpY2UucG9zdFBCQWFjY291bnRQYXltZW50KHRoaXMucGJhUGF5T3JkZXJSZWYub3JkZXJSZWZJZCwgcmVxdWVzdEJvZHkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICByID0+IHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgdGhpcy5wYmFBY2NvdW50clBheW1lbnRSZXN1bHQgPSBKU09OLnBhcnNlKHIpO1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMucGJhQWNjb3VudHJQYXltZW50UmVzdWx0ID0gcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5pc1BCQUFjY291bnRQYXltZW50U3VjY2VzcyA9IHRydWU7XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIGUgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChlLnN0YXR1cyA9PSAnNDAyJykge1xuICAgICAgICAgICAgICAgICAgdGhpcy5pc0luU3VmZmljaWFudEZ1bmQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZS5zdGF0dXMgPT0gJzQxMCcpIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuaXNQQkFBY2NvdW50Tm90RXhpc3QgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZS5zdGF0dXMgPT0gJzQxMicpIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuaXNQQkFBY2NvdW50SG9sZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuaXNQQkFTZXJ2ZXJFcnJvciA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuXG4gICAgICAgIH0sIDUwMDApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5pc1BCQVNlcnZlckVycm9yID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRoaXMuaXNDYXJkUGF5bWVudFNlbGVjdGVkKSB7XG4gICAgICB0aGlzLmNhcmRQYXltZW50KCk7XG4gICAgfVxuXG4gIH1cbiAgY2FyZFBheW1lbnQoKSB7XG4gICAgdGhpcy5pc0NhcmRQYXltZW50U3VjY2VzcyA9IHRydWU7XG4gICAgY29uc3QgcmVxdWVzdEJvZHkgPSBuZXcgSXNlcnZpY2VSZXF1ZXN0Q2FyZFBheW1lbnQoXG4gICAgICB0aGlzLnBiYVBheU9yZGVyUmVmLm9yZGVyVG90YWxGZWVzLCB0aGlzLmdldFBlcnNpc3RlZExhbmd1YWdlKCkpO1xuICAgIHRoaXMucGF5bWVudFZpZXdTZXJ2aWNlLnBvc3RXYXlzMlBheUNhcmRQYXltZW50KHRoaXMucGJhUGF5T3JkZXJSZWYub3JkZXJSZWZJZCwgcmVxdWVzdEJvZHkpXG4gICAgICAuc3Vic2NyaWJlKFxuICAgICAgICByZXN1bHQgPT4ge1xuICAgICAgICAgIGNvbnN0IHBheW1lbnRVcmwgPSBKU09OLnBhcnNlKHJlc3VsdCkubmV4dF91cmw7XG4gICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBwYXltZW50VXJsO1xuICAgICAgICB9LFxuICAgICAgICBlcnJvciA9PiB7XG4gICAgICAgICAgdGhpcy5pc0NhcmRQYXltZW50U3VjY2VzcyA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICApO1xuXG4gIH1cbiAgc2VsZWN0UGF5bWVudE1ldGhvZCh0eXBlOiBzdHJpbmcpIHtcbiAgICBpZiAodHlwZSA9PT0gJ1BCQScpIHtcbiAgICAgIHRoaXMuaXNQYmFBY2NvdW50U2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgdGhpcy5pc0NhcmRQYXltZW50U2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMuaXNQQkFEcm9wZG93blNlbGVjdGVkID0gZmFsc2VcbiAgICAgIHRoaXMuaXNDb250aW51ZUJ1dHRvbmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRQYmFBY2NvdW50ID0gbnVsbDtcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdDQVJEJykge1xuICAgICAgdGhpcy5pc1BiYUFjY291bnRTZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5pc0NhcmRQYXltZW50U2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgdGhpcy5pc1BCQURyb3Bkb3duU2VsZWN0ZWQgPSBmYWxzZVxuICAgICAgdGhpcy5pc0NvbnRpbnVlQnV0dG9uZGlzYWJsZWQgPSBmYWxzZTtcbiAgICB9XG4gIH1cbiAgZ290b0Nhc2V0cmFuc2F0aW9uUGFnZSgpIHtcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQudmlld05hbWUgPSAnY2FzZS10cmFuc2FjdGlvbnMnO1xuICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5UQUtFUEFZTUVOVCA9IGZhbHNlO1xuICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5JU0JTRU5BQkxFID0gdHJ1ZTtcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuaXNGcm9tU2VydmljZVJlcXVlc3RQYWdlID0gdHJ1ZTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cInZpZXdTdGF0dXMgPT09ICdwYmEtcGF5bWVudCdcIj5cblxuICA8ZGl2IGNsYXNzPVwiZ292dWstYnJlYWRjcnVtYnNcIiAqbmdJZj1cIiFlcnJvck1zZyAmJiAhaXNQQkFBY2NvdW50UGF5bWVudFN1Y2Nlc3MgJiYgIWlzQ2FyZFBheW1lbnRTdWNjZXNzXCI+XG4gICAgPG9sIGNsYXNzPVwiZ292dWstYnJlYWRjcnVtYnNfX2xpc3RcIj5cbiAgICAgIDxsaSBjbGFzcz1cImdvdnVrLWJyZWFkY3J1bWJzX19saXN0LWl0ZW1cIj5cbiAgICAgICAgPGEgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiIChjbGljayk9XCJnb3RvQ2FzZXRyYW5zYXRpb25QYWdlKClcIiBjbGFzcz1cImdvdnVrLWJhY2stbGluayBwYmEtcGF5bWVudHMtMTYtZm9udFwiPkJhY2s8L2E+XG4gICAgICA8L2xpPlxuICAgIDwvb2w+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwicGJhLXBheW1lbnRcIiAqbmdJZj1cIihwYmFBY2NvdW50TGlzdD8ubGVuZ3RoID4gMCB8fCBlcnJvck1zZykgJiYgIWlzSW5TdWZmaWNpYW50RnVuZCAmJiAhaXNQQkFBY2NvdW50Tm90RXhpc3QgJiYgIWlzUEJBU2VydmVyRXJyb3IgJiYgIWlzUEJBQWNjb3VudEhvbGQgJiYgIWlzUEJBQWNjb3VudFBheW1lbnRTdWNjZXNzICYmIGlzQ2FyZFBheW1lbnRTdWNjZXNzXCI+XG5cbiAgICA8ZGl2ICpuZ0lmPVwiZXJyb3JNc2dcIiBjbGFzcz1cImdvdnVrLWVycm9yLXN1bW1hcnkgcGJhLXBheW1lbnRzLWVycm9yLWJveC0tc2l6ZVwiIGFyaWEtbGFiZWxsZWRieT1cImVycm9yLXN1bW1hcnktdGl0bGVcIiA+XG4gICAgICA8aDIgY2xhc3M9XCJnb3Z1ay1lcnJvci1zdW1tYXJ5X190aXRsZSBnb3Z1ay1lcnJvci1zdW1tYXJ5X190aXRsZS1jdXN0b20gcGJhLXBheW1lbnRzLTI0LWZvbnRcIiBpZD1cImVycm9yLXN1bW1hcnktdGl0bGVcIj5cbiAgICAgICAge3sgXCJUaGVyZSBpcyBhIHByb2JsZW1cIiAgfCBycHhUcmFuc2xhdGUgfX1cbiAgICAgIDwvaDI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZ292dWstZXJyb3Itc3VtbWFyeV9fYm9keVwiPlxuICAgICAgICA8dWwgY2xhc3M9XCJnb3Z1ay1saXN0IGdvdnVrLWVycm9yLXN1bW1hcnlfX2xpc3RcIj5cbiAgICAgICAgICA8bGkgY2xhc3M9XCJwYmEtcGF5bWVudHMtZXJyb3ItMTYtZm9udFwiPlxuICAgICAgICAgICAge3sgXCJZb3VyIFBCQSBhY2NvdW50IGNhbm5vdCBiZSBmb3VuZC5cIiB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgPGxpIGNsYXNzPVwicGJhLXBheW1lbnRzLWVycm9yLTE2LWZvbnRcIj5cbiAgICAgICAgICAgIHt7IFwiSWYgeW91IGtub3cgeW91ciBvcmdhbmlzYXRpb24gaGFzIGEgUEJBLCB0cnkgYWdhaW4uXCIgfCBycHhUcmFuc2xhdGUgOiB7cGJhOiBcIlBCQVwifSB9fVxuICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgPGxpIGNsYXNzPVwicGJhLXBheW1lbnRzLWVycm9yLTE2LWZvbnRcIj5cbiAgICAgICAgICAgIHt7IFwiWW91IGNhbiBhbHNvIHBheSBieSBjcmVkaXQgb3IgZGViaXQgY2FyZC5cIiB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvbGk+XG4gICAgICAgIDwvdWw+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8IS0tIDxoMSBjbGFzcz1cImhlYWRpbmctbWVkaXVtIG1hcmdpbi10b3AtMTAtcHhcIj5QYXkgZmVlIHVzaW5nIFBheW1lbnQgYnkgQWNjb3VudCAoUEJBKTwvaDE+IC0tPlxuICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1mb3JtLWdyb3VwIG1hcmdpbi10b3AtMTAtcHhcIj5cbiAgICAgIDxsYWJlbCBjbGFzcz1cImdvdnVrLWxhYmVsIHBiYS1wYXltZW50cy1nb3Z1a19fbGFiZWwgcGJhLXBheW1lbnRzLTE5LWZvbnRcIj5cbiAgICAgICAge3sgXCJBbW91bnQgdG8gcGF5XCIgfCBycHhUcmFuc2xhdGUgfX1cbiAgICAgIDwvbGFiZWw+XG4gICAgICA8c3BhbiBjbGFzcz1cInBiYS1wYXltZW50cy0xOS1mb250XCI+e3twYmFQYXlPcmRlclJlZi5vcmRlclRvdGFsRmVlcyB8IGN1cnJlbmN5IDonR0JQJzonc3ltYm9sJzonMS4yLTInfX08L3NwYW4+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZ292dWstZm9ybS1ncm91cFwiICpuZ0lmPVwiIWVycm9yTXNnXCI+XG4gICAgICA8ZmllbGRzZXQgY2xhc3M9XCJnb3Z1ay1maWVsZHNldFwiIGFyaWEtZGVzY3JpYmVkYnk9XCJjb250YWN0LWhpbnRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLXJhZGlvc1wiIGRhdGEtbW9kdWxlPVwiZ292dWstcmFkaW9zXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLXJhZGlvc19faXRlbVwiPlxuICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZ292dWstcmFkaW9zX19pbnB1dFwiIGlkPVwicGJhQWNjb3VudFwiIG5hbWU9XCJwYXltZW50U2VsZWN0aW9uXCIgdHlwZT1cInJhZGlvXCIgdmFsdWU9XCJQQkFcIiAoY2xpY2spPVwic2VsZWN0UGF5bWVudE1ldGhvZCgnUEJBJylcIiBkYXRhLWFyaWEtY29udHJvbHM9XCJwYmEtYWNjb3VudFwiPlxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZ292dWstbGFiZWwgZ292dWstcmFkaW9zX19sYWJlbCBwYmEtcGF5bWVudHMtMTktZm9udCBwYmEtcGF5bWVudHMtZm9udC1ibGRcIiBmb3I9XCJwYmFBY2NvdW50XCI+XG4gICAgICAgICAgICAgIHt7IFwiUGF5IGZlZSB1c2luZyBQYXltZW50IGJ5IEFjY291bnQgKFBCQSlcIiB8IHJweFRyYW5zbGF0ZToge3BiYTogXCIoUEJBKVwifSB9fVxuICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstcmFkaW9zX19jb25kaXRpb25hbFwiIGlkPVwiY29uZGl0aW9uYWwtY29udGFjdFwiICpuZ0lmPVwiaXNQYmFBY2NvdW50U2VsZWN0ZWRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1mb3JtLWdyb3VwIHBiYS1wYXltZW50cy1zZWxlY3QtYm94LS1zaXplXCI+XG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImdvdnVrLWxhYmVsIHBiYS1wYXltZW50cy1nb3Z1a19fbGFiZWwgcGJhLXBheW1lbnRzLTE5LWZvbnRcIiBmb3I9XCJwYmFBY2NvdW50TnVtYmVyXCI+XG4gICAgICAgICAgICAgICAge3sgXCJTZWxlY3QgYSBQQkFcIiB8IHJweFRyYW5zbGF0ZToge3BiYTogXCJQQkFcIn0gfX1cbiAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tY29udHJvbCBzaG9ydC1pbnB1dFwiIGlkPVwicGJhQWNjb3VudE51bWJlclwiIChjaGFuZ2UpPVwic2VsZWN0cGJhYWNjb3VudCgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlwiIHNlbGVjdGVkPSdzZWxlY3RlZCc+e3sgXCJTZWxlY3Qgb3B0aW9uXCIgfCBycHhUcmFuc2xhdGUgfX08L29wdGlvbj5cbiAgICAgICAgICAgICAgICA8b3B0aW9uICAqbmdGb3I9XCJsZXQgcGJhQWNjb3VudCBvZiBwYmFBY2NvdW50TGlzdDtcIiB2YWx1ZT1cInt7cGJhQWNjb3VudH19XCI+e3twYmFBY2NvdW50fX08L29wdGlvbj5cbiAgICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1mb3JtLWdyb3VwXCIgKm5nSWY9XCIhZXJyb3JNc2cgJiYgc2VsZWN0ZWRQYmFBY2NvdW50XCI+XG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImdvdnVrLWxhYmVsIHBiYS1wYXltZW50cy1nb3Z1a19fbGFiZWwgcGJhLXBheW1lbnRzLTI0LWZvbnRcIiBmb3I9XCJwYmFBY2NvdW50TnVtYmVyXCI+XG4gICAgICAgICAgICAgICAge3sgXCJFbnRlciBhIHJlZmVyZW5jZSBmb3IgeW91ciBQQkEgYWNjb3VudCBzdGF0ZW1lbnRzXCIgfCBycHhUcmFuc2xhdGU6IHtwYmE6IFwiUEJBXCJ9IH19XG4gICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgIDxkaXYgaWQ9XCJldmVudC1uYW1lLWhpbnRcIiBjbGFzcz1cImdvdnVrLWhpbnQgcGJhLXBheW1lbnRzLTE5LWZvbnQgcGJhLXBheW1lbnQtd2lkdGhcIj5cbiAgICAgICAgICAgICAgICB7eyBcIlRoaXMgc2hvdWxkIGJlIHlvdXIgb3duIHVuaXF1ZSByZWZlcmVuY2UgdG8gaWRlbnRpZnkgdGhlIGNhc2UuIEl0IHdpbGwgYXBwZWFyIG9uIHlvdXIgc3RhdGVtZW50cy5cIiB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJnb3Z1ay1pbnB1dCBwYmEtcGF5bWVudHMtcmVmLWJveC0tc2l6ZSBwYmEtcGF5bWVudHMtMTktZm9udFwiIGlkPVwicGJhQWNjb3VudFJlZlwiIChjaGFuZ2UpPVwic2VsZWN0cGJhYWNjb3VudCgkZXZlbnQpXCIgKGtleXVwKT1cInNlbGVjdHBiYWFjY291bnQoJGV2ZW50KVwiIG5hbWU9XCJwYmFBY2NvdW50UmVmXCIgdHlwZT1cInRleHRcIiBhcmlhLWRlc2NyaWJlZGJ5PVwicGJhQWNjb3VudFJlZi1oaW50XCI+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1yYWRpb3NfX2l0ZW1cIj5cbiAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImdvdnVrLXJhZGlvc19faW5wdXRcIiBpZD1cImNhcmRQYXltZW50XCIgbmFtZT1cInBheW1lbnRTZWxlY3Rpb25cIiB0eXBlPVwicmFkaW9cIiB2YWx1ZT1cImNhcmRcIiAoY2xpY2spPVwic2VsZWN0UGF5bWVudE1ldGhvZCgnQ0FSRCcpXCIgZGF0YS1hcmlhLWNvbnRyb2xzPVwiY2FyZC1wYXltZW50XCI+XG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJnb3Z1ay1sYWJlbCBnb3Z1ay1yYWRpb3NfX2xhYmVsIHBiYS1wYXltZW50cy0xOS1mb250IHBiYS1wYXltZW50cy1mb250LWJsZFwiIGZvcj1cImNhcmRQYXltZW50XCI+XG4gICAgICAgICAgICAgIHt7IFwiUGF5IGJ5IGNyZWRpdCBvciBkZWJpdCBjYXJkXCIgfCBycHhUcmFuc2xhdGUgfX1cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9maWVsZHNldD5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1idXR0b24tLWdyb3VwXCIgICpuZ0lmPVwiZXJyb3JNc2dcIj5cbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnV0dG9uIHBiYS1wYXltZW50cy0xOS1mb250IGdvdnVrLWJ1dHRvbi0tc2Vjb25kYXJ5IHBiYS1wYXltZW50cy1tYXJnaW4tMTBcIiAoY2xpY2spPVwiZ290b0Nhc2V0cmFuc2F0aW9uUGFnZSgpXCI+XG4gICAgICAgIHt7IFwiVmlldyBTZXJ2aWNlIFJlcXVlc3RcIiB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cImJ1dHRvbiBwYmEtcGF5bWVudHMtMTktZm9udCBwYmEtcGF5bWVudHMtMjAtbWFyZ2luXCIgKGNsaWNrKT1cImNhcmRQYXltZW50KClcIj5cbiAgICAgICAge3sgXCJQYXkgYnkgY2FyZFwiIHwgcnB4VHJhbnNsYXRlIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZ292dWstYnV0dG9uLS1ncm91cFwiICAqbmdJZj1cIiFlcnJvck1zZ1wiPlxuICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgW2Rpc2FibGVkXT1cImlzQ29udGludWVCdXR0b25kaXNhYmxlZFwiIGNsYXNzPVwiYnV0dG9uIHBiYS1wYXltZW50cy0xOS1mb250IHBiYS1wYXltZW50cy0yMC1tYXJnaW5cIiAoY2xpY2spPVwic2F2ZUFuZENvbnRpbnVlKClcIj5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCIhaXNQQkFEcm9wZG93blNlbGVjdGVkXCIgY2xhc3M9XCJ3aGl0ZVwiPnt7IFwiQ29udGludWVcIiB8IHJweFRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCJpc1BCQURyb3Bkb3duU2VsZWN0ZWRcIiBjbGFzcz1cIndoaXRlXCI+e3sgXCJDb25maXJtIHBheW1lbnRcIiB8IHJweFRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJwYmFBY2NvdW50TGlzdD8ubGVuZ3RoIDw9IDAgJiYgIWVycm9yTXNnICYmIGlzR2V0UEJBQWNjb3VudFN1Y2NlZWQgJiYgaXNDYXJkUGF5bWVudFN1Y2Nlc3NcIj5cbiAgPGRpdiBjbGFzcz1cImdvdnVrLXdpZHRoLWNvbnRhaW5lclwiPlxuICAgIDxtYWluIGNsYXNzPVwiZ292dWstbWFpbi13cmFwcGVyIGdvdnVrLW1haW4td3JhcHBlci0tbFwiIGlkPVwibWFpbi1jb250ZW50XCIgcm9sZT1cIm1haW5cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1ncmlkLXJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstd2FybmluZy10ZXh0XCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay13YXJuaW5nLXRleHRfX2ljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj4hPC9zcGFuPlxuICAgICAgICAgIDxzdHJvbmcgY2xhc3M9XCJnb3Z1ay13YXJuaW5nLXRleHRfX3RleHRcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZ292dWstd2FybmluZy10ZXh0X19hc3Npc3RpdmVcIj57eyBcIldhcm5pbmdcIiB8IHJweFRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxoMiBjbGFzcz1cIndhcm5pbmctaGVhZGluZy1tXCI+e3sgXCJZb3UgZG9u4oCZdCBoYXZlIGEgcmVnaXN0ZXJlZCBQQkEuXCIgfCBycHhUcmFuc2xhdGU6IHtwYmE6IFwiUEJBXCJ9IH19PC9oMj5cbiAgICAgICAgICA8L3N0cm9uZz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwYmEtcGF5bWVudHMtbWFyZ2luLXRvcC0xMFwiPlxuICAgICAgICAgIDxoMiBjbGFzcz1cImhlYWRpbmctbWVkaXVtXCI+e3sgXCJQYXkgYnkgY3JlZGl0IG9yIGRlYml0IGNhcmRcIiB8IHJweFRyYW5zbGF0ZSB9fTwvaDI+XG4gICAgICAgICAgPHAgY2xhc3M9XCJnb3Z1ay1ib2R5IHBiYS1wYXltZW50cy0xOS1mb250XCI+XG4gICAgICAgICAgICB7eyBcIldlIHJlY29tbWVuZCB0aGF0IHlvdSBhcHBseSB0byBnZXQgYSBuZXcgUEJBIHRvIHBheSBmb3IgZmVlcy5cIiB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvcD5cbiAgICAgICAgICA8cCBjbGFzcz1cImdvdnVrLWJvZCB5cGJhLXBheW1lbnRzLTE5LWZvbnRcIj5cbiAgICAgICAgICAgIHt7IFwieW91IGNhbiBhbHNvIHBheSBieSBjcmVkaXQgb3IgZGViaXQgY2FyZCBpZiB5b3UgbmVlZCB0byBwYXkgbm93XCIgfCBycHhUcmFuc2xhdGUgfX1cbiAgICAgICAgICA8L3A+XG4gICAgICAgICAgPHAgY2xhc3M9XCJnb3Z1ay1ib2R5XCI+XG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiAoY2xpY2spPVwiY2FyZFBheW1lbnQoKVwiIGNsYXNzPVwiYnV0dG9uIHBiYS1wYXltZW50cy0xOS1mb250IHBiYS1wYXltZW50cy0yMC1tYXJnaW5cIj5cbiAgICAgICAgICAgICAge3sgXCJQYXkgYnkgY2FyZFwiIHwgcnB4VHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L3A+XG5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwYmEtcGF5bWVudHMtbWFyZ2luLXRvcC0xMFwiPlxuICAgICAgICAgIDxoMiBjbGFzcz1cImhlYWRpbmctbWVkaXVtXCI+e3sgXCJSZWdpc3RlciBhbiBleGlzdGluZyBQQkEgd2l0aCBNeUhNQ1RTXCIgfCBycHhUcmFuc2xhdGU6IHtwYmE6IFwiUEJBXCIsIG15aG1jdHM6IFwiTXlITUNUU1wifSB9fTwvaDI+XG4gICAgICAgICAgPHAgY2xhc3M9XCJnb3Z1ay1ib2R5IHBiYS1wYXltZW50cy0xOS1mb250XCI+XG4gICAgICAgICAgICB7eyBcIllvdSBtYXkgZmluZCBpdCBlYXNpZXIgaW4gZnV0dXJlIHRvIHBheSBieSBQQkEsIHlvdXIgb3JnYW5pc2F0aW9uIGFkbWluaXN0cmF0b3Igd2lsbCBuZWVkIHRvXG4gICAgICAgICAgICBlbWFpbFwiIHwgcnB4VHJhbnNsYXRlOiB7cGJhOiBcIlBCQVwifSB9fSA8YSBocmVmPVwibWFpbHRvOiBNeUhNQ1RTc3VwcG9ydEBqdXN0aWNlLmdvdi51a1wiPk15SE1DVFNzdXBwb3J0JiM2NDtqdXN0aWNlLmdvdi51azwvYT57eyBcInRvIGFzayBmb3IgeW91ciBQQkEgdG8gYmUgcmVnaXN0ZXJlZCB3aXRoIHlvdXJcbiAgICAgICAgICAgIE15SE1DVFMgYWNjb3VudC4gWW91IHNob3VsZCBpbmNsdWRlIHlvdXIgb3JnYW5pc2F0aW9uIG5hbWUgYW5kIFBCQSBudW1iZXIuXCIgfCBycHhUcmFuc2xhdGU6IHtwYmE6IFwiUEJBXCIsIG15aG1jdHM6IFwiTXlITUNUU1wifSB9fVxuICAgICAgICAgIDwvcD5cbiAgICAgICAgICA8cCBjbGFzcz1cImdvdnVrLWJvZHkgcGJhLXBheW1lbnRzLTE5LWZvbnRcIj5cbiAgICAgICAgICAgIHt7IFwiSXQgY2FuIHRoZW4gdGFrZSB1cCB0byAzIGRheXMgZm9yIHlvdXIgYWNjb3VudCB0byBiZSB1cGRhdGVkLiBZb3XigJlsbCBuZWVkIHRvIHN0YXJ0IHlvdXIgY2xhaW1cbiAgICAgICAgICAgIGFnYWluIHRvIHBheSB0aGUgZmVlLlwiIHwgcnB4VHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInBiYS1wYXltZW50cy1tYXJnaW4tdG9wLTEwXCI+XG4gICAgICAgICAgPGgyIGNsYXNzPVwiaGVhZGluZy1tZWRpdW1cIj57eyBcIkFwcGx5IHRvIGdldCBhIG5ldyBQQkFcIiB8IHJweFRyYW5zbGF0ZToge3BiYTogXCJQQkFcIn0gfX08L2gyPlxuICAgICAgICAgIDxwIGNsYXNzPVwiZ292dWstYm9keSBwYmEtcGF5bWVudHMtMTktZm9udFwiPlxuICAgICAgICAgICAge3sgXCJZb3XigJlsbCBuZWVkIHRvIHByb3ZpZGUgZGV0YWlscyBmb3IgeW91IGFuZCB5b3VyIG9yZ2FuaXNhdGlvbiwgaW5jbHVkaW5nIHRoZSByZXF1aXJlZCBjcmVkaXRcbiAgICAgICAgICAgICBsaW1pdCBmb3IgeW91ciBhY2NvdW50LlwiIHwgcnB4VHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9wPlxuICAgICAgICAgIDxwIGNsYXNzPVwiZ292dWstYm9keSBwYmEtcGF5bWVudHMtMTktZm9udFwiPlxuICAgICAgICAgICAge3sgXCJPbmNlIHlvdXIgYWNjb3VudCBoYXMgYmVlbiByZWdpc3RlcmVkLCB5b3XigJlsbCBuZWVkIHRvIHN0YXJ0IHlvdXIgY2xhaW0gYWdhaW4gdG8gcGF5IHRoZSBmZWUuXCIgfCBycHhUcmFuc2xhdGUgfX1cbiAgICAgICAgICA8L3A+XG4gICAgICAgICAgPHAgY2xhc3M9XCJnb3Z1ay1ib2R5IHBiYS1wYXltZW50cy0xOS1mb250XCI+XG4gICAgICAgICAgICB7eyBcIlJlYWQgbW9yZSBpbmZvcm1hdGlvbiBvblwiIHwgcnB4VHJhbnNsYXRlIH19IDxhIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9XCJodHRwczovL3d3dy5nb3YudWsvZ3VpZGFuY2UvaG1jdHMtcGF5bWVudC1ieS1hY2NvdW50LWZvci1vbmxpbmUtc2VydmljZXNcIj57eyBcInJlZ2lzdGVyaW5nIGZvciBQQkFcIiB8IHJweFRyYW5zbGF0ZToge3BiYTogXCJQQkFcIn0gfX08L2E+LlxuICAgICAgICAgIDwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L21haW4+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJpc0luU3VmZmljaWFudEZ1bmQgJiYgaXNDYXJkUGF5bWVudFN1Y2Nlc3NcIj5cbiAgPGRpdiBjbGFzcz1cImdvdnVrLXdpZHRoLWNvbnRhaW5lclwiPlxuICAgIDxtYWluIGNsYXNzPVwiZ292dWstbWFpbi13cmFwcGVyIGdvdnVrLW1haW4td3JhcHBlci0tbFwiIGlkPVwibWFpbi1jb250ZW50XCIgcm9sZT1cIm1haW5cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1ncmlkLXJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstZXJyb3Itc3VtbWFyeSBwYmEtcGF5bWVudHMtZXJyb3ItYm94LS1zaXplXCIgYXJpYS1sYWJlbGxlZGJ5PVwiZXJyb3Itc3VtbWFyeS10aXRsZVwiPlxuICAgICAgICAgIDxoMiBjbGFzcz1cImdvdnVrLWVycm9yLXN1bW1hcnlfX3RpdGxlIGdvdnVrLWVycm9yLXN1bW1hcnlfX3RpdGxlLWN1c3RvbSBwYmEtcGF5bWVudHMtMjQtZm9udFwiIGlkPVwiZXJyb3Itc3VtbWFyeS10aXRsZVwiPlxuICAgICAgICAgICAge3sgXCJUaGVyZSBpcyBhIHByb2JsZW1cIiB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvaDI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLWVycm9yLXN1bW1hcnlfX2JvZHlcIj5cbiAgICAgICAgICAgIDx1bCBjbGFzcz1cImdvdnVrLWxpc3QgZ292dWstZXJyb3Itc3VtbWFyeV9fbGlzdFwiPlxuICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJwYmEtcGF5bWVudHMtZXJyb3ItMTYtZm9udFwiPlxuICAgICAgICAgICAgICAgIHt7IFwiWW91IGRvbid0IGhhdmUgZW5vdWdoIGZ1bmRzIGluIHlvdXIgUEJBIGFjY291bnQgdG8gcGF5IGZvciB0aGlzIGZlZS5cIiB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJwYmEtcGF5bWVudHMtZXJyb3ItMTYtZm9udFwiPlxuICAgICAgICAgICAgICAgIHt7IFwiSWYgeW91IGhhdmUgYWxyZWFkeSB0b3BwZWQgdXAgeW91ciBQQkEgYWNjb3VudCwgd2FpdCB1cCB0byAyNCBob3VycyBmb3IgdGhlIG5ldyBiYWxhbmNlIHRvIGJlY29tZSBhdmFpbGFibGUuXCIgfCBycHhUcmFuc2xhdGU6IHtwYmE6IFwiUEJBXCIsIG51bWJlcjogXCIyNFwifSB9fVxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwYmEtcGF5bWVudHMtbWFyZ2luLXRvcC0xMFwiPlxuICAgICAgICAgIDxoMiBjbGFzcz1cImhlYWRpbmctbWVkaXVtXCI+e3sgXCJTaG91bGQgeW91IG5lZWQgYW55IGZ1cnRoZXIgYWR2aWNlXCIgfCBycHhUcmFuc2xhdGUgfX08L2gyPlxuICAgICAgICAgIDxwIGNsYXNzPVwiZ292dWstYm9keSBwYmEtcGF5bWVudHMtMTktZm9udFwiPlxuICAgICAgICAgICAge3sgXCJFbWFpbFwiIHwgcnB4VHJhbnNsYXRlIH19IDxhIGhyZWY9XCJtYWlsdG86TWlkZGxlT2ZmaWNlLkREc2VydmljZXNAbGliZXJhdGEuY29tXCI+TWlkZGxlT2ZmaWNlLkREc2VydmljZXMmIzY0O2xpYmVyYXRhLmNvbTwvYT4ge3sgXCJvciBjYWxsXCIgfCBycHhUcmFuc2xhdGUgfX0gPGEgaHJlZj1cInRlbDowMTYzMy02NTItMTI1XCI+MDE2MzMgNjUyIDEyNTwvYT4gKHt7IFwib3B0aW9uXCIgfCBycHhUcmFuc2xhdGUgfX0gMykge3sgXCJ0byB0cnkgdG8gZml4IHRoZSBpc3N1ZS5cIiB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvcD5cbiAgICAgICAgICA8cCBjbGFzcz1cImdvdnVrLWJvZHkgcGJhLXBheW1lbnRzLTE5LWZvbnRcIj5cbiAgICAgICAgICAgIHt7IFwieW91IGNhbiBhbHNvIHBheSBieSBjcmVkaXQgb3IgZGViaXQgY2FyZC5cIiB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvcD5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstYnV0dG9uLS1ncm91cFwiPlxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidXR0b24gcGJhLXBheW1lbnRzLTE5LWZvbnQgZ292dWstYnV0dG9uLS1zZWNvbmRhcnkgcGJhLXBheW1lbnRzLW1hcmdpbi0xMFwiIChjbGljayk9XCJnb3RvQ2FzZXRyYW5zYXRpb25QYWdlKClcIj5cbiAgICAgICAgICAgICAge3sgXCJWaWV3IFNlcnZpY2UgUmVxdWVzdFwiIHwgcnB4VHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiYnV0dG9uIHBiYS1wYXltZW50cy0xOS1mb250IHBiYS1wYXltZW50cy0yMC1tYXJnaW5cIiAoY2xpY2spPVwiY2FyZFBheW1lbnQoKVwiPlxuICAgICAgICAgICAgICB7eyBcIlBheSBieSBjYXJkXCIgfCBycHhUcmFuc2xhdGUgfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbWFpbj5cbiAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJpc1BCQUFjY291bnROb3RFeGlzdCAmJiBpc0NhcmRQYXltZW50U3VjY2Vzc1wiPlxuICA8ZGl2IGNsYXNzPVwiZ292dWstd2lkdGgtY29udGFpbmVyXCI+XG4gICAgPG1haW4gY2xhc3M9XCJnb3Z1ay1tYWluLXdyYXBwZXIgZ292dWstbWFpbi13cmFwcGVyLS1sXCIgaWQ9XCJtYWluLWNvbnRlbnRcIiByb2xlPVwibWFpblwiPlxuICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLWdyaWQtcm93XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1lcnJvci1zdW1tYXJ5IHBiYS1wYXltZW50cy1lcnJvci1ib3gtLXNpemVcIiBhcmlhLWxhYmVsbGVkYnk9XCJlcnJvci1zdW1tYXJ5LXRpdGxlXCI+XG4gICAgICAgICAgPGgyIGNsYXNzPVwiZ292dWstZXJyb3Itc3VtbWFyeV9fdGl0bGUgZ292dWstZXJyb3Itc3VtbWFyeV9fdGl0bGUtY3VzdG9tIHBiYS1wYXltZW50cy0yNC1mb250XCIgaWQ9XCJlcnJvci1zdW1tYXJ5LXRpdGxlXCI+XG4gICAgICAgICAgICB7eyBcIlRoZXJlIGlzIGEgcHJvYmxlbVwiIHwgcnB4VHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9oMj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstZXJyb3Itc3VtbWFyeV9fYm9keVwiPlxuICAgICAgICAgICAgPHVsIGNsYXNzPVwiZ292dWstbGlzdCBnb3Z1ay1lcnJvci1zdW1tYXJ5X19saXN0XCI+XG4gICAgICAgICAgICAgIDxsaSBjbGFzcz1cInBiYS1wYXltZW50cy1lcnJvci0xNi1mb250XCI+XG4gICAgICAgICAgICAgICAgKHt7IFwiWW91ciBQQkEgYWNjb3VudFwiIHwgcnB4VHJhbnNsYXRlOiB7cGJhOiBcIlBCQVwifSB9fSkgKHt7IHNlbGVjdGVkUGJhQWNjb3VudCB9fSkgKHt7IFwibm8gbG9uZ2VyIGV4aXN0cy5cIiB8IHJweFRyYW5zbGF0ZSB9fSlcbiAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwicGJhLXBheW1lbnRzLW1hcmdpbi10b3AtMTBcIj5cbiAgICAgICAgICA8aDIgY2xhc3M9XCJoZWFkaW5nLW1lZGl1bVwiPnt7IFwiU2hvdWxkIHlvdSBuZWVkIGFueSBmdXJ0aGVyIGFkdmljZVwiIHwgcnB4VHJhbnNsYXRlIH19PC9oMj5cbiAgICAgICAgICA8cCBjbGFzcz1cImdvdnVrLWJvZHkgcGJhLXBheW1lbnRzLTE5LWZvbnQgZ292dWstYm9keS13aWR0aFwiPlxuICAgICAgICAgICAge3sgXCJFbWFpbFwiIHwgcnB4VHJhbnNsYXRlIH19IDxhIGhyZWY9XCJtYWlsdG86TWlkZGxlT2ZmaWNlLkREc2VydmljZXNAbGliZXJhdGEuY29tXCI+TWlkZGxlT2ZmaWNlLkREc2VydmljZXMmIzY0O2xpYmVyYXRhLmNvbTwvYT4ge3sgXCJvciBjYWxsXCIgfCBycHhUcmFuc2xhdGUgfX0gPGEgaHJlZj1cInRlbDowMTYzMy02NTItMTI1XCI+MDE2MzMgNjUyIDEyNTwvYT4gKHt7IFwib3B0aW9uXCIgfCBycHhUcmFuc2xhdGUgfX0gMykge3sgXCJ0byB0cnkgdG8gZml4IHRoZSBpc3N1ZS5cIiB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvcD5cbiAgICAgICAgICA8cCBjbGFzcz1cImdvdnVrLWJvZHkgcGJhLXBheW1lbnRzLTE5LWZvbnRcIj5cbiAgICAgICAgICAgIHt7IFwieW91IGNhbiBhbHNvIHBheSBieSBjcmVkaXQgb3IgZGViaXQgY2FyZC5cIiB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvcD5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstYnV0dG9uLS1ncm91cFwiPlxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidXR0b24gcGJhLXBheW1lbnRzLTE5LWZvbnQgZ292dWstYnV0dG9uLS1zZWNvbmRhcnkgcGJhLXBheW1lbnRzLW1hcmdpbi0xMFwiIChjbGljayk9XCJnb3RvQ2FzZXRyYW5zYXRpb25QYWdlKClcIj5cbiAgICAgICAgICAgICAge3sgXCJWaWV3IFNlcnZpY2UgUmVxdWVzdFwiIHwgcnB4VHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiYnV0dG9uIHBiYS1wYXltZW50cy0xOS1mb250IHBiYS1wYXltZW50cy0yMC1tYXJnaW5cIiAoY2xpY2spPVwiY2FyZFBheW1lbnQoKVwiPlxuICAgICAgICAgICAgICB7eyBcIlBheSBieSBjYXJkXCIgfCBycHhUcmFuc2xhdGUgfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbWFpbj5cbiAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJpc1BCQUFjY291bnRIb2xkICYmIGlzQ2FyZFBheW1lbnRTdWNjZXNzXCI+XG4gIDxkaXYgY2xhc3M9XCJnb3Z1ay13aWR0aC1jb250YWluZXJcIj5cbiAgICA8bWFpbiBjbGFzcz1cImdvdnVrLW1haW4td3JhcHBlciBnb3Z1ay1tYWluLXdyYXBwZXItLWxcIiBpZD1cIm1haW4tY29udGVudFwiIHJvbGU9XCJtYWluXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZ292dWstZ3JpZC1yb3dcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLWVycm9yLXN1bW1hcnkgcGJhLXBheW1lbnRzLWVycm9yLWJveC0tc2l6ZVwiIGFyaWEtbGFiZWxsZWRieT1cImVycm9yLXN1bW1hcnktdGl0bGVcIj5cbiAgICAgICAgICA8aDIgY2xhc3M9XCJnb3Z1ay1lcnJvci1zdW1tYXJ5X190aXRsZSBnb3Z1ay1lcnJvci1zdW1tYXJ5X190aXRsZS1jdXN0b20gcGJhLXBheW1lbnRzLTI0LWZvbnRcIiBpZD1cImVycm9yLXN1bW1hcnktdGl0bGVcIj5cbiAgICAgICAgICAgIHt7IFwiVGhlcmUgaXMgYSBwcm9ibGVtXCIgfCBycHhUcmFuc2xhdGUgfX1cbiAgICAgICAgICA8L2gyPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1lcnJvci1zdW1tYXJ5X19ib2R5XCI+XG4gICAgICAgICAgICA8dWwgY2xhc3M9XCJnb3Z1ay1saXN0IGdvdnVrLWVycm9yLXN1bW1hcnlfX2xpc3RcIj5cbiAgICAgICAgICAgICAgPGxpIGNsYXNzPVwicGJhLXBheW1lbnRzLWVycm9yLTE2LWZvbnRcIj5cbiAgICAgICAgICAgICAgICB7eyBcIllvdXIgUEJBIGFjY291bnQgXCIgfCBycHhUcmFuc2xhdGU6IHtwYmE6IFwiUEJBXCJ9IH19ICAoe3tzZWxlY3RlZFBiYUFjY291bnR9fSkge3sgXCIgaGFzIGJlZW4gcHV0IG9uIGhvbGQuXCIgfCBycHhUcmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwicGJhLXBheW1lbnRzLW1hcmdpbi10b3AtMTBcIj5cbiAgICAgICAgICA8aDIgY2xhc3M9XCJoZWFkaW5nLW1lZGl1bVwiPnt7IFwiU2hvdWxkIHlvdSBuZWVkIGFueSBmdXJ0aGVyIGFkdmljZVwiIHwgcnB4VHJhbnNsYXRlIH19PC9oMj5cbiAgICAgICAgICA8cCBjbGFzcz1cImdvdnVrLWJvZHkgcGJhLXBheW1lbnRzLTE5LWZvbnQgZ292dWstYm9keS13aWR0aFwiPlxuICAgICAgICAgICAge3sgXCJFbWFpbFwiIHwgcnB4VHJhbnNsYXRlIH19IDxhIGhyZWY9XCJtYWlsdG86TWlkZGxlT2ZmaWNlLkREc2VydmljZXNAbGliZXJhdGEuY29tXCI+TWlkZGxlT2ZmaWNlLkREc2VydmljZXMmIzY0O2xpYmVyYXRhLmNvbTwvYT4ge3sgXCJvciBjYWxsXCIgfCBycHhUcmFuc2xhdGUgfX0gPGEgaHJlZj1cInRlbDowMTYzMy02NTItMTI1XCI+MDE2MzMgNjUyIDEyNTwvYT4gKHt7IFwib3B0aW9uXCIgfCBycHhUcmFuc2xhdGUgfX0gMykge3sgXCJ0byB0cnkgdG8gZml4IHRoZSBpc3N1ZS5cIiB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvcD5cbiAgICAgICAgICA8cCBjbGFzcz1cImdvdnVrLWJvZHkgcGJhLXBheW1lbnRzLTE5LWZvbnRcIj5cbiAgICAgICAgICAgIHt7IFwieW91IGNhbiBhbHNvIHBheSBieSBjcmVkaXQgb3IgZGViaXQgY2FyZC5cIiB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvcD5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstYnV0dG9uLS1ncm91cFwiPlxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidXR0b24gcGJhLXBheW1lbnRzLTE5LWZvbnQgZ292dWstYnV0dG9uLS1zZWNvbmRhcnkgcGJhLXBheW1lbnRzLW1hcmdpbi0xMFwiIChjbGljayk9XCJnb3RvQ2FzZXRyYW5zYXRpb25QYWdlKClcIj5cbiAgICAgICAgICAgICAge3sgXCJWaWV3IFNlcnZpY2UgUmVxdWVzdFwiIHwgcnB4VHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiYnV0dG9uIHBiYS1wYXltZW50cy0xOS1mb250IHBiYS1wYXltZW50cy0yMC1tYXJnaW5cIiAoY2xpY2spPVwiY2FyZFBheW1lbnQoKVwiPlxuICAgICAgICAgICAgICB7eyBcIlBheSBieSBjYXJkXCIgfCBycHhUcmFuc2xhdGUgfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbWFpbj5cbiAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJpc1BCQVNlcnZlckVycm9yICYmIGlzQ2FyZFBheW1lbnRTdWNjZXNzXCI+XG4gIDxkaXYgY2xhc3M9XCJnb3Z1ay13aWR0aC1jb250YWluZXJcIj5cbiAgICA8bWFpbiBjbGFzcz1cImdvdnVrLW1haW4td3JhcHBlciBnb3Z1ay1tYWluLXdyYXBwZXItLWxcIiBpZD1cIm1haW4tY29udGVudFwiIHJvbGU9XCJtYWluXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZ292dWstZ3JpZC1yb3dcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInBiYS1wYXltZW50cy1tYXJnaW4tdG9wLTEwXCI+XG4gICAgICAgICAgPGgyIGNsYXNzPVwicGJhLXBheW1lbnRzLWhlYWRpbmctbGdcIj57eyBcIlNvcnJ5LCB0aGVyZSBpcyBhIHByb2JsZW0gd2l0aCB0aGUgc2VydmljZVwiIHwgcnB4VHJhbnNsYXRlIH19PC9oMj5cbiAgICAgICAgICA8cCBjbGFzcz1cImdvdnVrLWJvZHkgcGJhLXBheW1lbnRzLTE5LWZvbnRcIj5cbiAgICAgICAgICAgIHt7IFwiVHJ5IGFnYWluIGxhdGVyLlwiIHwgcnB4VHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9wPlxuICAgICAgICAgIDxwIGNsYXNzPVwiZ292dWstYm9keSBwYmEtcGF5bWVudHMtMTktZm9udFwiPlxuICAgICAgICAgICAge3sgXCJ5b3UgY2FuIGFsc28gcGF5IGJ5IGNyZWRpdCBvciBkZWJpdCBjYXJkLlwiIHwgcnB4VHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9wPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1idXR0b24tLWdyb3VwXCI+XG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ1dHRvbiBwYmEtcGF5bWVudHMtMTktZm9udCBnb3Z1ay1idXR0b24tLXNlY29uZGFyeSBwYmEtcGF5bWVudHMtbWFyZ2luLTEwXCIgKGNsaWNrKT1cImdvdG9DYXNldHJhbnNhdGlvblBhZ2UoKVwiPlxuICAgICAgICAgICAgICB7eyBcIlZpZXcgU2VydmljZSBSZXF1ZXN0XCIgfCBycHhUcmFuc2xhdGUgfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJidXR0b24gcGJhLXBheW1lbnRzLTE5LWZvbnQgcGJhLXBheW1lbnRzLTIwLW1hcmdpblwiIChjbGljayk9XCJjYXJkUGF5bWVudCgpXCI+XG4gICAgICAgICAgICAgIHt7IFwiUGF5IGJ5IGNhcmRcIiB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9tYWluPlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwiaXNQQkFBY2NvdW50UGF5bWVudFN1Y2Nlc3MgJiYgaXNDYXJkUGF5bWVudFN1Y2Nlc3NcIj5cbiAgPGRpdiBjbGFzcz1cImdvdnVrLXdpZHRoLWNvbnRhaW5lclwiPlxuICAgIDxtYWluIGNsYXNzPVwiZ292dWstbWFpbi13cmFwcGVyIGdvdnVrLW1haW4td3JhcHBlci0tbFwiIGlkPVwibWFpbi1jb250ZW50XCIgcm9sZT1cIm1haW5cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1ncmlkLXJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstcGFuZWwgZ292dWstcGFuZWwtLWNvbmZpcm1hdGlvbiBwYmEtcGF5bWVudHMtLWNvbmZpcm1hdGlvblwiPlxuICAgICAgICAgIDxoMSBjbGFzcz1cImdvdnVrLXBhbmVsX190aXRsZSBwYmEtcGF5bWVudHMtLXRpdGxlIHdoaXRlXCI+XG4gICAgICAgICAgICAge3sgXCJQYXltZW50IHN1Y2Nlc3NmdWxcIiB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvaDE+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLXBhbmVsX19ib2R5IHBiYS1wYXltZW50c19fYm9keSB3aGl0ZVwiPlxuICAgICAgICAgICAgICB7eyBcIllvdXIgcGF5bWVudCByZWZlcmVuY2UgaXNcIiB8IHJweFRyYW5zbGF0ZSB9fSA8YnI+PHN0cm9uZyBjbGFzcz1cIndoaXRlXCI+e3twYmFBY2NvdW50clBheW1lbnRSZXN1bHQucGF5bWVudF9yZWZlcmVuY2V9fTwvc3Ryb25nPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8cCBjbGFzcz1cImdvdnVrLWJvZHkgcGJhLXBheW1lbnRzLTE5LWZvbnRcIj5cbiAgICAgICAgPGEgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiIChjbGljayk9XCJnb3RvQ2FzZXRyYW5zYXRpb25QYWdlKClcIj57eyBcIlZpZXcgc2VydmljZSByZXF1ZXN0c1wiIHwgcnB4VHJhbnNsYXRlIH19PC9hPlxuICAgICAgPC9wPlxuICAgICAgPC9kaXY+XG4gICAgPC9tYWluPlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwiIWlzQ2FyZFBheW1lbnRTdWNjZXNzXCI+XG4gIDxkaXYgY2xhc3M9XCJnb3Z1ay13aWR0aC1jb250YWluZXJcIj5cbiAgICA8bWFpbiBjbGFzcz1cImdvdnVrLW1haW4td3JhcHBlciBnb3Z1ay1tYWluLXdyYXBwZXItLWxcIiBpZD1cIm1haW4tY29udGVudFwiIHJvbGU9XCJtYWluXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZ292dWstZ3JpZC1yb3dcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInBiYS1wYXltZW50cy1tYXJnaW4tdG9wLTEwXCI+XG4gICAgICAgICAgPGgyIGNsYXNzPVwicGJhLXBheW1lbnRzLWhlYWRpbmctbGdcIj57eyBcIlNvcnJ5LCB0aGVyZSBpcyBhIHByb2JsZW0gd2l0aCB0aGUgc2VydmljZVwiIHwgcnB4VHJhbnNsYXRlIH19PC9oMj5cbiAgICAgICAgICA8cCBjbGFzcz1cImdvdnVrLWJvZHkgcGJhLXBheW1lbnRzLTE5LWZvbnRcIj5cbiAgICAgICAgICAgIHt7IFwiVHJ5IGFnYWluIGxhdGVyLlwiIHwgcnB4VHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9wPlxuICAgICAgICAgIDwhLS0gPHAgY2xhc3M9XCJnb3Z1ay1ib2R5IHBiYS1wYXltZW50cy0xOS1mb250XCI+XG4gICAgICAgICAgICB5b3UgY2FuIGFsc28gPGEgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiIChjbGljayk9XCJjYXJkUGF5bWVudCgpXCIgPnBheSBieSBjcmVkaXQgb3IgZGViaXQgY2FyZDwvYT4uXG4gICAgICAgICAgPC9wPiAtLT5cbiAgICAgICAgICA8cCBjbGFzcz1cImdvdnVrLWJvZHkgcGJhLXBheW1lbnRzLTE5LWZvbnRcIj5cbiAgICAgICAgICAgIDxhIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIiAoY2xpY2spPVwiZ290b0Nhc2V0cmFuc2F0aW9uUGFnZSgpXCI+e3sgXCJWaWV3IHNlcnZpY2UgcmVxdWVzdHNcIiB8IHJweFRyYW5zbGF0ZSB9fTwvYT5cbiAgICAgICAgICA8L3A+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9tYWluPlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG5cblxuXG4iXX0=