@hmcts/ccpay-web-component 5.0.2-beta122 → 5.0.2-beta125
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.
- package/bundles/hmcts-ccpay-web-component.umd.js +8 -7
- package/bundles/hmcts-ccpay-web-component.umd.js.map +1 -1
- package/bundles/hmcts-ccpay-web-component.umd.min.js +1 -1
- package/bundles/hmcts-ccpay-web-component.umd.min.js.map +1 -1
- package/esm2015/lib/components/add-remission/add-remission.component.js +2 -2
- package/esm2015/lib/components/case-transactions/case-transactions.component.js +1 -1
- package/esm2015/lib/components/payment-view/payment-view.component.js +2 -2
- package/esm2015/lib/components/service-request/service-request.component.js +4 -4
- package/esm2015/lib/interfaces/PostRefundRetroRemission.js +6 -2
- package/esm5/lib/components/add-remission/add-remission.component.js +2 -2
- package/esm5/lib/components/case-transactions/case-transactions.component.js +1 -1
- package/esm5/lib/components/payment-view/payment-view.component.js +2 -2
- package/esm5/lib/components/service-request/service-request.component.js +4 -4
- package/esm5/lib/interfaces/PostRefundRetroRemission.js +5 -2
- package/fesm2015/hmcts-ccpay-web-component.js +9 -7
- package/fesm2015/hmcts-ccpay-web-component.js.map +1 -1
- package/fesm5/hmcts-ccpay-web-component.js +8 -7
- package/fesm5/hmcts-ccpay-web-component.js.map +1 -1
- package/hmcts-ccpay-web-component.metadata.json +1 -1
- package/lib/interfaces/PostRefundRetroRemission.d.ts +2 -1
- package/package.json +1 -1
|
@@ -526,7 +526,7 @@ var ServiceRequestComponent = /** @class */ (function () {
|
|
|
526
526
|
volume: obj.volume,
|
|
527
527
|
refund_amount: this.getOverPaymentValue() }];
|
|
528
528
|
/** @type {?} */
|
|
529
|
-
var requestBody = new PostRefundRetroRemission(this.contactDetailsObj, this.fees, this.paymentGroupList.payments[0].reference, 'RR037', this.getOverPaymentValue());
|
|
529
|
+
var requestBody = new PostRefundRetroRemission(this.contactDetailsObj, this.fees, this.paymentGroupList.payments[0].reference, 'RR037', this.getOverPaymentValue(), 'op');
|
|
530
530
|
this.paymentViewService.postRefundsReason(requestBody).subscribe((/**
|
|
531
531
|
* @param {?} response
|
|
532
532
|
* @return {?}
|
|
@@ -569,8 +569,8 @@ var ServiceRequestComponent = /** @class */ (function () {
|
|
|
569
569
|
ServiceRequestComponent.decorators = [
|
|
570
570
|
{ type: Component, args: [{
|
|
571
571
|
selector: 'ccpay-service-request',
|
|
572
|
-
template: "<!-- Order Full View Details-->\n<ng-container *ngIf=\"viewStatus === 'order-full-view'\">\n <div class=\"govuk-breadcrumbs\">\n <ol class=\"govuk-breadcrumbs__list\">\n <li class=\"govuk-breadcrumbs__list-item\" *ngIf=\"isServiceRequest === 'false'\">\n <a href=\"javascript:void(0)\" (click)=\"goToCaseTransationPage($event)\" class=\"govuk-back-link\">Back</a>\n </li>\n <li class=\"govuk-breadcrumbs__list-item\" *ngIf=\"isServiceRequest !== 'false'\">\n <a href=\"javascript:void(0)\" (click)=\"goToServiceRequestPage()\" id=\"bckLnksize\" class=\"govuk-back-link\">Back</a>\n </li>\n </ol>\n </div>\n <div class=\"govuk-grid-column-full\">\n <div class=\"column\">\n <h1 class=\"heading-large govuk-!-margin-top-0\">Service request</h1>\n </div>\n <table >\n <tbody>\n <tr class=\"section\">\n <td class=\"bold tb-col-w\">Service request reference</td>\n <td>{{orderRef}}</td>\n </tr>\n <tr class=\"section\">\n <td class=\"bold tb-col-w\">Status</td>\n <td>{{orderStatus}}</td>\n </tr>\n <tr class=\"section\">\n <td class=\"bold tb-col-w\">Date created</td>\n <td>{{orderCreated | date:'dd MMMM yyyy'}}</td>\n </tr>\n <tr class=\"section\">\n <td class=\"bold tb-col-w\">Party</td>\n <td>{{orderParty}}</td>\n </tr>\n <tr class=\"section\">\n <td class=\"bold tb-col-w\">CCD event</td>\n <td>{{orderCCDEvent}}</td>\n </tr>\n </tbody>\n </table>\n </div>\n\n <div class=\"govuk-grid-column-full order-class\">\n <div class=\"column\">\n <table class=\"govuk-table \">\n <thead class=\"govuk-table__head\">\n <tr class=\"govuk-table__row\">\n <td class=\"govuk-table__header col-51\" scope=\"col\" *ngIf=\"isServiceRequest === 'false'\">Fee</td>\n <td class=\"govuk-table__header col-51\" scope=\"col\" colspan=\"2\" *ngIf=\"isServiceRequest !== 'false'\">Fee</td>\n <td class=\"govuk-table__header\" scope=\"col\">Amount</td>\n <td class=\"govuk-table__header\" scope=\"col\">Total</td>\n <td class=\"govuk-table__header\" scope=\"col\" *ngIf=\"isServiceRequest === 'false'\"></td>\n </tr>\n </thead>\n <tbody class=\"govuk-table__body\" *ngFor=\"let order of orderDetail;\">\n <tr class=\"govuk-table__row\" *ngFor=\"let fee of order.fees; let i = index;\">\n <td class=\"govuk-table__cell col-60 whitespace-inherit\" *ngIf=\"isServiceRequest === 'false'\">{{fee.description}}</td>\n <td class=\"govuk-table__cell col-60 whitespace-inherit\" colspan=\"2\" *ngIf=\"isServiceRequest !== 'false'\">{{fee.description}}</td>\n <td class=\"govuk-table__cell\">{{fee.volume? fee.volume : '-'}} X {{ fee.calculated_amount/fee.volume| currency:'GBP':'symbol-narrow':'1.2-2' }}</td>\n <td class=\"govuk-table__cell\">{{ fee?.net_amount | currency:'GBP':'symbol-narrow':'1.2-2' }}</td>\n <td class=\"govuk-table__cell alignright\" *ngIf=\"isServiceRequest === 'false'\">\n <button [disabled]=\"!chkIsAddRemissionBtnEnable(fee)\" (click)=\"addRemission(fee)\" class=\"govuk-button govuk-button--secondary\"> Add remission</button>\n </td>\n \n </tr>\n </tbody>\n <tbody class=\"govuk-table__body\" *ngFor=\"let order of orderDetail;\">\n <tr class=\"govuk-table__row\" *ngIf=\"order.fees?.length === 0\" >\n <td class=\"govuk-table__cell alignleft\" colspan=\"7\">No fees recorded</td>\n </tr>\n </tbody>\n </table>\n\n </div>\n <div class=\"maxwidth\"> \n <p class=\"totalfees\">Total fees: {{orderFeesTotal | currency:'GBP':'symbol-narrow':'1.2-2' }}</p>\n </div>\n </div>\n <!-- remissions -->\n<ng-container *ngFor=\"let order of orderDetail;\" >\n <div class=\"govuk-grid-column-full order-class\" *ngIf=\"order.remissions\"> \n <table class=\"govuk-table\">\n <thead class=\"govuk-table__head\">\n <tr class=\"govuk-table__row\">\n <td class=\"govuk-table__header col-24 whitespace-inherit\" scope=\"col\">Help with fees or remission code</td>\n <td class=\"govuk-table__header col-27 whitespace-inherit\" scope=\"col\">Reference</td>\n <td class=\"govuk-table__header whitespace-inherit\" scope=\"col\">Fee</td>\n <td class=\"govuk-table__header whitespace-inherit\" scope=\"col\">Amount</td>\n <td class=\"govuk-table__header whitespace-inherit refundBtn\" scope=\"col\"></td>\n </tr>\n </thead>\n <tbody *ngIf=\"order.remissions?.length > 0\" class=\"govuk-table__body\" >\n <tr class=\"govuk-table__row\" *ngFor=\"let remission of order.remissions\">\n <td class=\"govuk-table__cell whitespace-inherit\">{{ remission?.hwf_reference }}</td>\n <td class=\"govuk-table__cell whitespace-inherit\">{{ remission?.remission_reference }}</td>\n <td class=\"govuk-table__cell whitespace-inherit\">{{ remission?.fee_code }}</td>\n <td class=\"govuk-table__cell whitespace-inherit\">{{ remission?.hwf_amount | currency:'GBP':'symbol-narrow':'1.2-2'}}</td>\n <td class=\"govuk-table__cell refundBtn whitespace-inherit\" >\n <button [disabled]=\"!chkIsAddRefundBtnEnable(remission)\" (click)=\"addRefundForRemission(order.payments[0],remission,order.fees)\" class=\"govuk-button govuk-button--secondary\"> Add refund</button>\n </td>\n <!-- <td class=\"govuk-table__cell refundBtn whitespace-inherit\" >\n \n </td> -->\n </tr>\n </tbody>\n \n\n </table>\n <div *ngIf=\"order.remissions?.length === 0\">\n <span >No help with fees or remissions.</span>\n </div>\n <div class=\"summarypagealign\">\n <p>Total reductions: {{orderRemissionTotal | currency:'GBP':'symbol-narrow':'1.2-2' }}</p>\n </div>\n <div class=\"summarypagealign\">\n <p class=\"summarypage\">Total fees to pay: {{(orderFeesTotal - orderRemissionTotal) | currency:'GBP':'symbol-narrow':'1.2-2' }}</p>\n </div>\n </div>\n \n \n</ng-container>\n \n \n <!--Payments-->\n <ng-container *ngFor=\"let order of orderDetail;\" >\n <div class=\"govuk-grid-column-full\" *ngIf=\"order.payments\"> \n <h3 class=\"heading-medium\">Payments</h3>\n <table class=\"govuk-table \">\n <thead class=\"govuk-table__head\">\n <tr class=\"govuk-table__row\">\n <td class=\"govuk-table__header col-25\" scope=\"col\"></td>\n <td class=\"govuk-table__header\" scope=\"col\">Date created</td>\n <td class=\"govuk-table__header\" scope=\"col\">Amount</td>\n <td class=\"govuk-table__header\" scope=\"col\"></td>\n </tr>\n </thead>\n <tbody *ngIf=\"order.payments?.length > 0\" class=\"govuk-table__body\">\n <tr class=\"govuk-table__row\" *ngFor=\"let payment of order.payments\">\n <td class=\"govuk-table__cell whitespace-inherit\">\n <a href=\"javascript:void(0)\" (click)=\"goToPayementView(payment.paymentGroupReference, payment.reference, payment.method)\">Review</a>\n </td>\n <td class=\"govuk-table__cell whitespace-inherit\">{{ payment?.date_created | date:'dd MMM yyyy' }}</td>\n <td class=\"govuk-table__cell whitespace-inherit\">{{ payment?.amount | currency:'GBP':'symbol-narrow':'1.2-2' }}</td>\n <td class=\"govuk-table__cell alignright\">\n <button [disabled]=\"!chkIsIssueRefundBtnEnable(payment)\" (click)=\"issueRefund(payment)\" class=\"govuk-button govuk-button--secondary\">Issue refund</button>\n </td>\n <!-- <td *ngIf=\"!chkIssueRefundBtnEnable(payment)\" class=\"govuk-table__cell\" style=\"text-align: right;\">\n </td> -->\n </tr>\n </tbody>\n </table>\n \n <div *ngIf=\"order.payments === undefined || order.payments === null\">\n <!-- <h3 class=\"heading-medium mar-17\">Payments</h3> -->\n <span class=\"mar-17\" >No Payments recorded</span>\n </div>\n</div>\n</ng-container>\n<div *ngIf=\"isServiceRequest === 'false'\">\n <div *ngIf=\"((orderFeesTotal - orderRemissionTotal)- orderTotalPayments) > 0\" >\n <p class=\"totalPay\">Total left to pay: <b>{{((orderFeesTotal - orderRemissionTotal)- orderTotalPayments )| currency:'GBP':'symbol-narrow':'1.2-2' }}</b> </p>\n </div>\n <div *ngIf=\"((orderFeesTotal - orderRemissionTotal)- orderTotalPayments) < 0\" >\n <p class=\"totalPay\">Total left to pay: <b>0</b> </p>\n </div>\n</div>\n \n</ng-container>\n<ccpay-add-remission *ngIf=\"viewStatus === 'addremission' && feeId\"\n[isTurnOff]=\"isTurnOff\"\n[isStrategicFixEnable]=\"isStrategicFixEnable\" \n[isOldPcipalOff]=\"isOldPcipalOff\" \n[viewCompStatus]= \"viewStatus\"\n[isNewPcipalOff]=\"isNewPcipalOff\" \n[fee]=\"feeId\" \n[orderStatus] =\"orderStatus\"\n[paidAmount]= \"orderTotalPayments\"\n[isRefundRemission]=\"isRefundRemission\"\n[caseType]=\"caseType\" \n[isServiceRequest] = \"isServiceRequest\"\n[paymentGroupRef]=\"orderRef\" \n[isFromServiceRequestPage] = \"true\"\n[payment] = \"payment\"\n[ccdCaseNumber]=\"ccdCaseNumber\"\n[orderRef] = \"orderRef\"\n[orderStatus] = \"orderStatus\"\n[orderCreated] = \"orderCreated\"\n[orderParty] = \"orderParty\"\n[orderCCDEvent] = \"orderCCDEvent\"\n[orderDetail] = \"orderDetail\"\n[LOGGEDINUSERROLES] = \"LOGGEDINUSERROLES\"\n[takepayment] = \"takePayment\"\n[orderFeesTotal] = \"orderFeesTotal\"\n[orderTotalPayments] = \"orderTotalPayments\"\n[orderRemissionTotal] = \"orderRemissionTotal\"\n></ccpay-add-remission>\n<ccpay-add-remission *ngIf=\"viewStatus === 'issuerefund' && payment\"\n[isTurnOff]=\"isTurnOff\"\n[isStrategicFixEnable]=\"isStrategicFixEnable\" \n[isOldPcipalOff]=\"isOldPcipalOff\" \n[viewCompStatus]= \"viewStatus\"\n[isNewPcipalOff]=\"isNewPcipalOff\" \n[isFromServiceRequestPage]=\"isFromServiceRequestPage\"\n[isFromPaymentDetailPage] = \"isFromPaymentDetailPage\"\n[payment]=\"payment\" \n[orderStatus] =\"orderStatus\"\n[paidAmount]= \"orderTotalPayments\"\n[isRefundRemission]=\"isRefundRemission\"\n[caseType]=\"caseType\" \n[paymentGroupRef]=\"orderRef\" \n[ccdCaseNumber]=\"ccdCaseNumber\"\n[orderRef] = \"orderRef\"\n[orderStatus] = \"orderStatus\"\n[orderCreated] = \"orderCreated\"\n[orderParty] = \"orderParty\"\n[orderCCDEvent] = \"orderCCDEvent\"\n[orderDetail] = \"orderDetail\"\n[isFullyRefund] = \"isFullyRefund\"\n[fees] = \"paymentFees\"\n[LOGGEDINUSERROLES] = \"LOGGEDINUSERROLES\"\n[isFromRefundListPage] = \"false\"\n[takepayment] = \"takePayment\"\n[orderFeesTotal] = \"orderFeesTotal\"\n[orderTotalPayments] = \"orderTotalPayments\"\n[orderRemissionTotal] = \"orderRemissionTotal\"></ccpay-add-remission>\n\n<ccpay-add-remission *ngIf=\"viewStatus === 'addrefundforremission' && payment\"\n[isTurnOff]=\"isTurnOff\"\n[isStrategicFixEnable]=\"isStrategicFixEnable\" \n[isOldPcipalOff]=\"isOldPcipalOff\" \n[viewCompStatus]= \"viewStatus\"\n[isNewPcipalOff]=\"isNewPcipalOff\" \n[payment]=\"payment\" \n[orderStatus] =\"orderStatus\"\n[paidAmount]= \"orderTotalPayments\"\n[isRefundRemission]=\"isRefundRemission\"\n[caseType]=\"caseType\" \n[feeamount]=\"remissionFeeAmt\"\n[remission] = \"remissions\"\n[isFromServiceRequestPage]=\"isServiceRequest\" \n[ccdCaseNumber]=\"ccdCaseNumber\"\n[orderRef] = \"orderRef\"\n[orderStatus] = \"orderStatus\"\n[orderCreated] = \"orderCreated\"\n[orderParty] = \"orderParty\"\n[orderCCDEvent] = \"orderCCDEvent\"\n[orderDetail] = \"orderDetail\"\n[LOGGEDINUSERROLES] = \"LOGGEDINUSERROLES\"\n[takepayment] = \"takePayment\"\n[orderFeesTotal] = \"orderFeesTotal\"\n[orderTotalPayments] = \"orderTotalPayments\"\n[orderRemissionTotal] = \"orderRemissionTotal\"></ccpay-add-remission>\n\n<ccpay-payment-view *ngIf=\"viewStatus === 'payment-view'\"\n[LOGGEDINUSERROLES] = \"LOGGEDINUSERROLES\"\n[isTurnOff] = \"isTurnOff\" \n[isTakePayment] = \"takePayment\" \n[caseType] = \"caseType\"\n[orderRef] = \"orderRef\"\n[orderStatus] = \"orderStatus\"\n[orderCreated] = \"orderCreated\"\n[orderParty] = \"orderParty\"\n[orderCCDEvent] = \"orderCCDEvent\"\n[orderDetail] = \"orderDetail\"\n[isOldPcipalOff] = \"isOldPcipalOff\"\n[isNewPcipalOff] = \"isNewPcipalOff\"\n[orderFeesTotal] = \"orderFeesTotal\"\n[orderTotalPayments] = \"orderTotalPayments\"\n[orderRemissionTotal] = \"orderRemissionTotal\"\n[isServiceRequest] = \"isServiceRequest\">\n</ccpay-payment-view>\n\n<ng-container *ngIf=\"viewStatus === 'feeRemovalConfirmation'\">\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</span>\n Are you sure you want to delete this fee?\n </strong>\n</div>\n<div class=\"govuk-button-grb\">\n <form novalidate>\n <button type=\"submit\" class=\"button govuk-button--secondary\" (click)=\"cancelRemoval()\">\n Cancel\n </button>\n <button type=\"submit\" class=\"button\"\n [disabled]=\"isRemoveBtnDisabled\"\n [ngClass]='isRemoveBtnDisabled ? \"button button--disabled govuk-!-margin-right-1\" : \"button govuk-!-margin-right-1\"'\n (click)=\"removeFee(feeId)\">\n Remove\n </button>\n </form>\n</div>\n</ng-container>\n\n<div class=\"over-payment\">\n <ng-container *ngIf=\"viewCompStatus === 'overpayment'\">\n <input #myInput type='hidden' id='iFrameDrivenImageValue' value='OVERPAYMENTPAGE'> \n <h1 class=\"heading-large\">Issue refund</h1>\n <h1 class=\"heading-medium\">Case reference: {{ccdCaseNumber | ccdHyphens }}</h1>\n <span id=\"how-contacted-conditional-hint govuk-font19px\" class=\"form-hint\">\n Payment reference: {{paymentGroupList?.payments[0]?.reference}}\n </span>\n <div class=\"govuk-form-group\">\n <fieldset class=\"govuk-fieldset\">\n <legend class=\"govuk-fieldset__legend govuk-fieldset__legend--l\">\n <b>\n Select payment to refund\n </b>\n </legend>\n <div class=\"govuk-radios\" data-module=\"govuk-radios\">\n <div class=\"govuk-radios__item\">\n <input class=\"govuk-radios__input\" id=\"over-payment\" name=\"over-payment\" type=\"radio\" (click)=\"selectPymentOption('op')\" value=\"op\">\n <label class=\"govuk-label govuk-radios__label govuk-font19px\" for=\"where-do-you-live\">\n Over payment \u00A3{{getOverPaymentValue() | number:'.2'}}\n </label>\n </div>\n <div class=\"govuk-radios__item\">\n <input class=\"govuk-radios__input\" id=\"full-payment\" name=\"over-payment\" type=\"radio\" (click)=\"selectPymentOption('fp')\" value=\"fp\">\n <label class=\"govuk-label govuk-radios__label govuk-font19px\" for=\"where-do-you-live-2\">\n Full payment \u00A3{{paymentGroupList?.payments[0]?.amount | number:'.2'}}\n </label>\n </div>\n </div>\n <button class=\"govuk-button govuk-button--secondary over-payment-alignment govuk-font19px\"\n (click)=\"goToPaymentViewComp()\"> Previous</button>\n <button \n (click)=\"continuePayment(paymentGroupList)\"\n [disabled]=\"isContinueBtnDisabled\"\n [ngClass]='isContinueBtnDisabled ? \"button button--disabled govuk-!-margin-right-1 govuk-font19px\" : \"button govuk-!-margin-right-1 govuk-font19px\"'\n class=\"govuk-button\"> Continue</button>\n </fieldset>\n </div>\n </ng-container>\n \n <ng-container *ngIf=\"viewCompStatus === 'overPaymentAddressCapture'\">\n <input #myInput type='hidden' id='iFrameDrivenImageValue' value='OVERPAYMENTADDRESSCAPTUREPAGE'> \n <h1 class=\"govuk-heading-l\">Issue refund</h1>\n <h2 class=\"govuk-heading-m govuk-font19px\">Case reference: {{ccdCaseNumber | ccdHyphens }}</h2>\n <span id=\"how-contacted-conditional-hint\" class=\"govuk-hint govuk-font19px\">\n Payment reference: {{paymentGroupList?.payments[0]?.reference}}\n </span>\n <ccpay-contact-details \n [addressObj] = notification\n (assignContactDetails)=\"getContactDetails($event)\"\n (redirectToIssueRefund)=\"gotoPaymentSelectPage($event)\" ></ccpay-contact-details>\n <p>\n <a (click)=\"goToCaseTransationPage($event)\" class=\"govuk-link\" data-module=\"govuk-button\">\n Cancel\n </a>\n </p>\n </ng-container>\n \n <ng-container *ngIf=\"viewCompStatus === 'overpaymentcheckandanswer'\">\n <input #myInput type='hidden' id='iFrameDrivenImageValue' value='ADDREFUNDFORREMISSION'> \n <div class=\"govuk-warning-text\">\n \n <h1 class=\"heading-large\"> Check your answers</h1>\n </div>\n <table class=\"govuk-table\">\n <tr class=\"govuk-table__row\">\n <td class=\"govuk-table__cell govuk-!-font-weight-bold\">Payment reference</td>\n <td class=\"govuk-table__cell\"> {{paymentGroupList.payments[0].reference}} </td>\n </tr>\n <tr class=\"govuk-table__row\">\n <td class=\"govuk-table__cell govuk-!-font-weight-bold\">Payment amount</td>\n <td class=\"govuk-table__cell\">{{paymentGroupList.payments[0].amount | currency:'GBP':'symbol-narrow':'1.2-2'}}</td>\n </tr>\n <tr class=\"govuk-table__row\">\n <td class=\"govuk-table__cell govuk-!-font-weight-bold\">Fee amount</td>\n <td class=\"govuk-table__cell\">{{paymentGroupList?.fees[0]?.net_amount | currency:'GBP':'symbol-narrow':'1.2-2'}}</td>\n </tr>\n <tr class=\"govuk-table__row\">\n <td class=\"govuk-table__cell govuk-!-font-weight-bold\">Refund amount</td>\n <td class=\"govuk-table__cell\">{{getOverPaymentValue() | currency:'GBP':'symbol-narrow':'1.2-2'}}</td>\n </tr>\n <tr class=\"govuk-table__row\">\n <td class=\"govuk-table__cell govuk-!-font-weight-bold\">Refund reason</td>\n <td class=\"govuk-table__cell\">Over payment</td>\n </tr>\n <tr class=\"govuk-table__row\">\n <td class=\"govuk-table__cell govuk-!-font-weight-bold\">Send to</td>\n <td class=\"govuk-table__cell\">{{orderParty}}</td>\n </tr>\n <tr class=\"govuk-table__row\">\n <td class=\"govuk-table__cell govuk-!-font-weight-bold\">Send via</td>\n <td class=\"govuk-table__cell\">\n <div *ngIf=\"contactDetailsObj?.notification_type === 'EMAIL'\" class=\"contactDetails-width\">\n <strong>Email</strong>\n <br/>\n {{contactDetailsObj?.email}}\n </div>\n <div *ngIf=\"contactDetailsObj?.notification_type === 'LETTER'\" class=\"contactDetails-width\">\n <strong>Post</strong>\n <br/>\n {{contactDetailsObj?.address_line}} {{contactDetailsObj?.city}} {{contactDetailsObj?.county}} {{contactDetailsObj?.country}} {{contactDetailsObj?.postal_code}}\n </div>\n <a (click)=\"gotoAddressPage(contactDetailsObj)\" class=\"govuk-link right margin-top--size\" >Change</a>\n </td>\n </table>\n <button type=\"submit\" class=\"button govuk-button--secondary over-payment-alignment govuk-font19px\" (click)=\"gotoAddressPage(contactDetailsObj)\">Previous</button>\n <button type=\"submit\"\n [ngClass]='isContinueBtnDisabled ? \"button button--disabled govuk-!-margin-right-1 govuk-font19px\" : \"button govuk-!-margin-right-1 govuk-font19px\"'\n (click)=\"processRefund()\">\n Submit refund\n </button>\n <p>\n <a href=\"javascript:void(0)\" (click)=\"goToCaseTransationPage($event)\" class=\"govuk-link govuk-font19px\" data-module=\"govuk-button\">\n Cancel\n </a>\n </p>\n \n </ng-container>\n <ng-container *ngIf=\"viewStatus === 'refundconfirmationpage' && viewCompStatus !== 'overpayment' && viewCompStatus !== 'overPaymentAddressCapture' && viewCompStatus !== 'overpaymentcheckandanswer'\">\n <input #myInput type='hidden' id='iFrameDrivenImageValue' value='RETROREMISSIONREFUNDCONFIRMATIONPAGE'> \n <div class=\"govuk-grid-row\">\n <div >\n <div class=\"govuk-panel govuk-panel--confirmation\">\n <h1 class=\"govuk-panel__title\">\n Refund submitted\n </h1>\n \n <div class=\"govuk-panel__body\">\n <p class=\"govuk-body white\"><strong>Refund reference: {{refundReference}}</strong></p>\n </div>\n \n </div>\n <h2 class=\"govuk-heading-l\">What happens next</h2>\n <p class=\"govuk-body\">\n A refund request for {{refundAmount | currency:'GBP':'symbol-narrow':'1.2-2' }} has been created and will be passed to a team leader to approve.\n </p>\n <p class=\"govuk-body\">\n <a href=\"javascript:void(0)\" (click)=\"goToCaseTransationPage($event)\" class=\"govuk-link pointer\" data-module=\"govuk-button\">\n Return to case\n </a>\n </p>\n </div>\n </div>\n \n </ng-container>\n </div>",
|
|
573
|
-
styles: [".govuk-grid-column-full--gr{position:relative;margin-bottom:10px}.disable{text-decoration:none;cursor:default;color:#fff;background-color:grey;pointer-events:none}.govuk-grid__surplus-payments{margin:20px 0}.govuk-grid__surplus-payments>.govuk-grid-column-full{padding:0}.govuk-grid__surplus-payments-col1{margin-bottom:10px}.govuk-inset-text__no-border{border-left:0}.govuk-hidetext{font-size:22px;padding-bottom:10px}.lowercase{text-transform:lowercase}.channel::first-letter{text-transform:uppercase}.govuk-heading-xl{font-size:48px;margin-bottom:1px}.govuk-section-break--visible{border-bottom:2px solid #000}.totalpayments.govuk-table__row{border-bottom:2px solid #000!important}.govuk-inset-text{margin-left:1em}.govuk-button{font-size:19px;margin-bottom:0!important}.govuk-table__cell.govuk-table__cell--col6.govuk-table__custom--col6,.groupamount.govuk-table__header{text-align:right}.feeclass{padding-left:.7em}.align-center{text-align:center}details summary{display:list-item}.case-transaction__color{color:#a71414;font-weight:700;text-align:center}.capitalize::first-letter{text-transform:uppercase}.govuk-inset-text__no-left-margin{margin-left:0;padding-left:0}.whitespace-inherit{white-space:inherit!important}.govuk-section-records-break{margin:10px;border-bottom:2px solid #000!important}.exisitng-fees{margin-left:12px}.add-telephony-payment{margin-top:-2em;margin-left:-2em}.govuk-table__header--custom{text-align:center}.disable-link{cursor:default;pointer-events:none;color:#8e8c8c}.panel-no--style{border-left-style:none}.col-28{width:28%!important}.col-8{width:8%!important}.col-60{width:60%!important}.col-32{width:32%!important}.col-34{width:34%!important}#bckLnksize{font-size:16px!important}.col-15{width:15%!important;padding-right:0!important;padding-left:0!important}.col-16{width:16%!important}.col-14{width:14%!important}.col-17{width:17%!important}.col-12{width:12%!important}.col-9{width:9%!important}.col-10{width:10%!important}.col-11{width:11%!important}.col-13{width:13%!important}.col-21{width:21%!important}.col-20{width:20%!important}.col-24{width:24%!important}.govuk-table__cell,.govuk-table__header{padding:10px 10px 10px 0}.col-27{width:27%!important}td{white-space:nowrap;overflow:hidden!important}.col-19{width:19%!important;padding-left:0!important}.col-18{width:18%!important;padding-left:0!important;padding-right:0!important}.col-37{width:37%!important}.col-55{width:55%!important}.govuk-table{margin-bottom:1px}.hmcts-banner>.hmcts-banner__message{font-size:19px;line-height:1.25}.summary-table-font{font-size:36px}.order-class{padding-top:3em}.govuk-table__cell:last-child,.govuk-table__header:last-child{text-align:right}.govuk-grid-column-two-thirds{width:64%!important;padding:0!important}.govuk-heading-l{font-size:36px;margin-bottom:10px}.paymentrequest{margin-top:1em}.mar-17{margin-left:17px}.col-61{width:61px!important;padding:0!important}.error{width:960px;margin:auto}.summarypage{padding-left:36em;margin-top:2em}.summarypagealign{width:100%;text-align:right;margin-top:2em}.govuk-inset-text{font-size:2.1875rem}table{table-layout:fixed;width:100%}td,th{word-wrap:break-word}.totalPay{padding-right:14px;float:right;margin-top:2em}.govuk-back-link{font-size:1.5rem!important}.totalfees{float:right;margin-top:2em}.refundBtn{text-align:right;width:18%}.col-25{width:25%!important}.col-51{width:51%!important}.alignright{text-align:right}.alignleft{text-align:left}.alignself{align-self:flex-end}.maxwidth{width:100%}.over-payment .contactDetails-width{width:70%}.over-payment .margin-top10px{margin-top:20px}.over-payment .govuk-font19px{font-size:19px!important}.over-payment .margin-top--size{margin-top:-30px}.over-payment .over-payment-alignment{margin-right:10px}.over-payment .govuk-button{font-size:19px;float:left;margin-top:2em}.over-payment td.govuk-table__cell{width:50
|
|
572
|
+
template: "<!-- Order Full View Details-->\n<ng-container *ngIf=\"viewStatus === 'order-full-view'\">\n <div class=\"govuk-breadcrumbs\">\n <ol class=\"govuk-breadcrumbs__list\">\n <li class=\"govuk-breadcrumbs__list-item\" *ngIf=\"isServiceRequest === 'false'\">\n <a href=\"javascript:void(0)\" (click)=\"goToCaseTransationPage($event)\" class=\"govuk-back-link\">Back</a>\n </li>\n <li class=\"govuk-breadcrumbs__list-item\" *ngIf=\"isServiceRequest !== 'false'\">\n <a href=\"javascript:void(0)\" (click)=\"goToServiceRequestPage()\" id=\"bckLnksize\" class=\"govuk-back-link\">Back</a>\n </li>\n </ol>\n </div>\n <div class=\"govuk-grid-column-full\">\n <div class=\"column\">\n <h1 class=\"heading-large govuk-!-margin-top-0\">Service request</h1>\n </div>\n <table >\n <tbody>\n <tr class=\"section\">\n <td class=\"bold tb-col-w\">Service request reference</td>\n <td>{{orderRef}}</td>\n </tr>\n <tr class=\"section\">\n <td class=\"bold tb-col-w\">Status</td>\n <td>{{orderStatus}}</td>\n </tr>\n <tr class=\"section\">\n <td class=\"bold tb-col-w\">Date created</td>\n <td>{{orderCreated | date:'dd MMMM yyyy'}}</td>\n </tr>\n <tr class=\"section\">\n <td class=\"bold tb-col-w\">Party</td>\n <td>{{orderParty}}</td>\n </tr>\n <tr class=\"section\">\n <td class=\"bold tb-col-w\">CCD event</td>\n <td>{{orderCCDEvent}}</td>\n </tr>\n </tbody>\n </table>\n </div>\n\n <div class=\"govuk-grid-column-full order-class\">\n <div class=\"column\">\n <table class=\"govuk-table \">\n <thead class=\"govuk-table__head\">\n <tr class=\"govuk-table__row\">\n <td class=\"govuk-table__header col-51\" scope=\"col\" *ngIf=\"isServiceRequest === 'false'\">Fee</td>\n <td class=\"govuk-table__header col-51\" scope=\"col\" colspan=\"2\" *ngIf=\"isServiceRequest !== 'false'\">Fee</td>\n <td class=\"govuk-table__header\" scope=\"col\">Amount</td>\n <td class=\"govuk-table__header\" scope=\"col\">Total</td>\n <td class=\"govuk-table__header\" scope=\"col\" *ngIf=\"isServiceRequest === 'false'\"></td>\n </tr>\n </thead>\n <tbody class=\"govuk-table__body\" *ngFor=\"let order of orderDetail;\">\n <tr class=\"govuk-table__row\" *ngFor=\"let fee of order.fees; let i = index;\">\n <td class=\"govuk-table__cell col-60 whitespace-inherit\" *ngIf=\"isServiceRequest === 'false'\">{{fee.description}}</td>\n <td class=\"govuk-table__cell col-60 whitespace-inherit\" colspan=\"2\" *ngIf=\"isServiceRequest !== 'false'\">{{fee.description}}</td>\n <td class=\"govuk-table__cell\">{{fee.volume? fee.volume : '-'}} X {{ fee.calculated_amount/fee.volume| currency:'GBP':'symbol-narrow':'1.2-2' }}</td>\n <td class=\"govuk-table__cell\">{{ fee?.net_amount | currency:'GBP':'symbol-narrow':'1.2-2' }}</td>\n <td class=\"govuk-table__cell alignright\" *ngIf=\"isServiceRequest === 'false'\">\n <button [disabled]=\"!chkIsAddRemissionBtnEnable(fee)\" (click)=\"addRemission(fee)\" class=\"govuk-button govuk-button--secondary\"> Add remission</button>\n </td>\n \n </tr>\n </tbody>\n <tbody class=\"govuk-table__body\" *ngFor=\"let order of orderDetail;\">\n <tr class=\"govuk-table__row\" *ngIf=\"order.fees?.length === 0\" >\n <td class=\"govuk-table__cell alignleft\" colspan=\"7\">No fees recorded</td>\n </tr>\n </tbody>\n </table>\n\n </div>\n <div class=\"maxwidth\"> \n <p class=\"totalfees\">Total fees: {{orderFeesTotal | currency:'GBP':'symbol-narrow':'1.2-2' }}</p>\n </div>\n </div>\n <!-- remissions -->\n<ng-container *ngFor=\"let order of orderDetail;\" >\n <div class=\"govuk-grid-column-full order-class\" *ngIf=\"order.remissions\"> \n <table class=\"govuk-table\">\n <thead class=\"govuk-table__head\">\n <tr class=\"govuk-table__row\">\n <td class=\"govuk-table__header col-24 whitespace-inherit\" scope=\"col\">Help with fees or remission code</td>\n <td class=\"govuk-table__header col-27 whitespace-inherit\" scope=\"col\">Reference</td>\n <td class=\"govuk-table__header whitespace-inherit\" scope=\"col\">Fee</td>\n <td class=\"govuk-table__header whitespace-inherit\" scope=\"col\">Amount</td>\n <td class=\"govuk-table__header whitespace-inherit refundBtn\" scope=\"col\"></td>\n </tr>\n </thead>\n <tbody *ngIf=\"order.remissions?.length > 0\" class=\"govuk-table__body\" >\n <tr class=\"govuk-table__row\" *ngFor=\"let remission of order.remissions\">\n <td class=\"govuk-table__cell whitespace-inherit\">{{ remission?.hwf_reference }}</td>\n <td class=\"govuk-table__cell whitespace-inherit\">{{ remission?.remission_reference }}</td>\n <td class=\"govuk-table__cell whitespace-inherit\">{{ remission?.fee_code }}</td>\n <td class=\"govuk-table__cell whitespace-inherit\">{{ remission?.hwf_amount | currency:'GBP':'symbol-narrow':'1.2-2'}}</td>\n <td class=\"govuk-table__cell refundBtn whitespace-inherit\" >\n <button [disabled]=\"!chkIsAddRefundBtnEnable(remission)\" (click)=\"addRefundForRemission(order.payments[0],remission,order.fees)\" class=\"govuk-button govuk-button--secondary\"> Add refund</button>\n </td>\n <!-- <td class=\"govuk-table__cell refundBtn whitespace-inherit\" >\n \n </td> -->\n </tr>\n </tbody>\n \n\n </table>\n <div *ngIf=\"order.remissions?.length === 0\">\n <span >No help with fees or remissions.</span>\n </div>\n <div class=\"summarypagealign\">\n <p>Total reductions: {{orderRemissionTotal | currency:'GBP':'symbol-narrow':'1.2-2' }}</p>\n </div>\n <div class=\"summarypagealign\">\n <p class=\"summarypage\">Total fees to pay: {{(orderFeesTotal - orderRemissionTotal) | currency:'GBP':'symbol-narrow':'1.2-2' }}</p>\n </div>\n </div>\n \n \n</ng-container>\n \n \n <!--Payments-->\n <ng-container *ngFor=\"let order of orderDetail;\" >\n <div class=\"govuk-grid-column-full\" *ngIf=\"order.payments\"> \n <h3 class=\"heading-medium\">Payments</h3>\n <table class=\"govuk-table \">\n <thead class=\"govuk-table__head\">\n <tr class=\"govuk-table__row\">\n <td class=\"govuk-table__header col-25\" scope=\"col\"></td>\n <td class=\"govuk-table__header\" scope=\"col\">Date created</td>\n <td class=\"govuk-table__header\" scope=\"col\">Amount</td>\n <td class=\"govuk-table__header\" scope=\"col\"></td>\n </tr>\n </thead>\n <tbody *ngIf=\"order.payments?.length > 0\" class=\"govuk-table__body\">\n <tr class=\"govuk-table__row\" *ngFor=\"let payment of order.payments\">\n <td class=\"govuk-table__cell whitespace-inherit\">\n <a href=\"javascript:void(0)\" (click)=\"goToPayementView(payment.paymentGroupReference, payment.reference, payment.method)\">Review</a>\n </td>\n <td class=\"govuk-table__cell whitespace-inherit\">{{ payment?.date_created | date:'dd MMM yyyy' }}</td>\n <td class=\"govuk-table__cell whitespace-inherit\">{{ payment?.amount | currency:'GBP':'symbol-narrow':'1.2-2' }}</td>\n <td class=\"govuk-table__cell alignright\">\n <button [disabled]=\"!chkIsIssueRefundBtnEnable(payment)\" (click)=\"issueRefund(payment)\" class=\"govuk-button govuk-button--secondary\">Issue refund</button>\n </td>\n <!-- <td *ngIf=\"!chkIssueRefundBtnEnable(payment)\" class=\"govuk-table__cell\" style=\"text-align: right;\">\n </td> -->\n </tr>\n </tbody>\n </table>\n \n <div *ngIf=\"order.payments === undefined || order.payments === null\">\n <!-- <h3 class=\"heading-medium mar-17\">Payments</h3> -->\n <span class=\"mar-17\" >No Payments recorded</span>\n </div>\n</div>\n</ng-container>\n<div *ngIf=\"isServiceRequest === 'false'\">\n <div *ngIf=\"((orderFeesTotal - orderRemissionTotal)- orderTotalPayments) > 0\" >\n <p class=\"totalPay\">Total left to pay: <b>{{((orderFeesTotal - orderRemissionTotal)- orderTotalPayments )| currency:'GBP':'symbol-narrow':'1.2-2' }}</b> </p>\n </div>\n <div *ngIf=\"((orderFeesTotal - orderRemissionTotal)- orderTotalPayments) < 0\" >\n <p class=\"totalPay\">Total left to pay: <b>0</b> </p>\n </div>\n</div>\n \n</ng-container>\n<ccpay-add-remission *ngIf=\"viewStatus === 'addremission' && feeId\"\n[isTurnOff]=\"isTurnOff\"\n[isStrategicFixEnable]=\"isStrategicFixEnable\" \n[isOldPcipalOff]=\"isOldPcipalOff\" \n[viewCompStatus]= \"viewStatus\"\n[isNewPcipalOff]=\"isNewPcipalOff\" \n[fee]=\"feeId\" \n[orderStatus] =\"orderStatus\"\n[paidAmount]= \"orderTotalPayments\"\n[isRefundRemission]=\"isRefundRemission\"\n[caseType]=\"caseType\" \n[isServiceRequest] = \"isServiceRequest\"\n[paymentGroupRef]=\"orderRef\" \n[isFromServiceRequestPage] = \"true\"\n[payment] = \"payment\"\n[ccdCaseNumber]=\"ccdCaseNumber\"\n[orderRef] = \"orderRef\"\n[orderStatus] = \"orderStatus\"\n[orderCreated] = \"orderCreated\"\n[orderParty] = \"orderParty\"\n[orderCCDEvent] = \"orderCCDEvent\"\n[orderDetail] = \"orderDetail\"\n[LOGGEDINUSERROLES] = \"LOGGEDINUSERROLES\"\n[takepayment] = \"takePayment\"\n[orderFeesTotal] = \"orderFeesTotal\"\n[orderTotalPayments] = \"orderTotalPayments\"\n[orderRemissionTotal] = \"orderRemissionTotal\"\n></ccpay-add-remission>\n<ccpay-add-remission *ngIf=\"viewStatus === 'issuerefund' && payment\"\n[isTurnOff]=\"isTurnOff\"\n[isStrategicFixEnable]=\"isStrategicFixEnable\" \n[isOldPcipalOff]=\"isOldPcipalOff\" \n[viewCompStatus]= \"viewStatus\"\n[isNewPcipalOff]=\"isNewPcipalOff\" \n[isFromServiceRequestPage]=\"isFromServiceRequestPage\"\n[isFromPaymentDetailPage] = \"isFromPaymentDetailPage\"\n[payment]=\"payment\" \n[orderStatus] =\"orderStatus\"\n[paidAmount]= \"orderTotalPayments\"\n[isRefundRemission]=\"isRefundRemission\"\n[caseType]=\"caseType\" \n[paymentGroupRef]=\"orderRef\" \n[ccdCaseNumber]=\"ccdCaseNumber\"\n[orderRef] = \"orderRef\"\n[orderStatus] = \"orderStatus\"\n[orderCreated] = \"orderCreated\"\n[orderParty] = \"orderParty\"\n[orderCCDEvent] = \"orderCCDEvent\"\n[orderDetail] = \"orderDetail\"\n[isFullyRefund] = \"isFullyRefund\"\n[fees] = \"paymentFees\"\n[LOGGEDINUSERROLES] = \"LOGGEDINUSERROLES\"\n[isFromRefundListPage] = \"false\"\n[takepayment] = \"takePayment\"\n[orderFeesTotal] = \"orderFeesTotal\"\n[orderTotalPayments] = \"orderTotalPayments\"\n[orderRemissionTotal] = \"orderRemissionTotal\"></ccpay-add-remission>\n\n<ccpay-add-remission *ngIf=\"viewStatus === 'addrefundforremission' && payment\"\n[isTurnOff]=\"isTurnOff\"\n[isStrategicFixEnable]=\"isStrategicFixEnable\" \n[isOldPcipalOff]=\"isOldPcipalOff\" \n[viewCompStatus]= \"viewStatus\"\n[isNewPcipalOff]=\"isNewPcipalOff\" \n[payment]=\"payment\" \n[orderStatus] =\"orderStatus\"\n[paidAmount]= \"orderTotalPayments\"\n[isRefundRemission]=\"isRefundRemission\"\n[caseType]=\"caseType\" \n[feeamount]=\"remissionFeeAmt\"\n[remission] = \"remissions\"\n[isFromServiceRequestPage]=\"isServiceRequest\" \n[ccdCaseNumber]=\"ccdCaseNumber\"\n[orderRef] = \"orderRef\"\n[orderStatus] = \"orderStatus\"\n[orderCreated] = \"orderCreated\"\n[orderParty] = \"orderParty\"\n[orderCCDEvent] = \"orderCCDEvent\"\n[orderDetail] = \"orderDetail\"\n[LOGGEDINUSERROLES] = \"LOGGEDINUSERROLES\"\n[takepayment] = \"takePayment\"\n[orderFeesTotal] = \"orderFeesTotal\"\n[orderTotalPayments] = \"orderTotalPayments\"\n[orderRemissionTotal] = \"orderRemissionTotal\"></ccpay-add-remission>\n\n<ccpay-payment-view *ngIf=\"viewStatus === 'payment-view'\"\n[LOGGEDINUSERROLES] = \"LOGGEDINUSERROLES\"\n[isTurnOff] = \"isTurnOff\" \n[isTakePayment] = \"takePayment\" \n[caseType] = \"caseType\"\n[orderRef] = \"orderRef\"\n[orderStatus] = \"orderStatus\"\n[orderCreated] = \"orderCreated\"\n[orderParty] = \"orderParty\"\n[orderCCDEvent] = \"orderCCDEvent\"\n[orderDetail] = \"orderDetail\"\n[isOldPcipalOff] = \"isOldPcipalOff\"\n[isNewPcipalOff] = \"isNewPcipalOff\"\n[orderFeesTotal] = \"orderFeesTotal\"\n[orderTotalPayments] = \"orderTotalPayments\"\n[orderRemissionTotal] = \"orderRemissionTotal\"\n[isServiceRequest] = \"isServiceRequest\">\n</ccpay-payment-view>\n\n<ng-container *ngIf=\"viewStatus === 'feeRemovalConfirmation'\">\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</span>\n Are you sure you want to delete this fee?\n </strong>\n</div>\n<div class=\"govuk-button-grb\">\n <form novalidate>\n <button type=\"submit\" class=\"button govuk-button--secondary\" (click)=\"cancelRemoval()\">\n Cancel\n </button>\n <button type=\"submit\" class=\"button\"\n [disabled]=\"isRemoveBtnDisabled\"\n [ngClass]='isRemoveBtnDisabled ? \"button button--disabled govuk-!-margin-right-1\" : \"button govuk-!-margin-right-1\"'\n (click)=\"removeFee(feeId)\">\n Remove\n </button>\n </form>\n</div>\n</ng-container>\n\n<div class=\"over-payment\">\n <ng-container *ngIf=\"viewCompStatus === 'overpayment'\">\n <input #myInput type='hidden' id='iFrameDrivenImageValue' value='OVERPAYMENTPAGE'> \n <h1 class=\"heading-large\">Issue refund</h1>\n <h1 class=\"heading-medium\">Case reference: {{ccdCaseNumber | ccdHyphens }}</h1>\n <span id=\"how-contacted-conditional-hint govuk-font19px\" class=\"form-hint\">\n Payment reference: {{paymentGroupList?.payments[0]?.reference}}\n </span>\n <div class=\"govuk-form-group\">\n <fieldset class=\"govuk-fieldset\">\n <legend class=\"govuk-fieldset__legend govuk-fieldset__legend--l\">\n <b>\n Select payment to refund\n </b>\n </legend>\n <div class=\"govuk-radios\" data-module=\"govuk-radios\">\n <div class=\"govuk-radios__item\">\n <input class=\"govuk-radios__input\" id=\"over-payment\" name=\"over-payment\" type=\"radio\" (click)=\"selectPymentOption('op')\" value=\"op\">\n <label class=\"govuk-label govuk-radios__label govuk-font19px\" for=\"where-do-you-live\">\n Over payment \u00A3{{getOverPaymentValue() | number:'.2'}}\n </label>\n </div>\n <div class=\"govuk-radios__item\">\n <input class=\"govuk-radios__input\" id=\"full-payment\" name=\"over-payment\" type=\"radio\" (click)=\"selectPymentOption('fp')\" value=\"fp\">\n <label class=\"govuk-label govuk-radios__label govuk-font19px\" for=\"where-do-you-live-2\">\n Full payment \u00A3{{paymentGroupList?.payments[0]?.amount | number:'.2'}}\n </label>\n </div>\n </div>\n <button class=\"govuk-button govuk-button--secondary over-payment-alignment govuk-font19px\"\n (click)=\"goToPaymentViewComp()\"> Previous</button>\n <button \n (click)=\"continuePayment(paymentGroupList)\"\n [disabled]=\"isContinueBtnDisabled\"\n [ngClass]='isContinueBtnDisabled ? \"button button--disabled govuk-!-margin-right-1 govuk-font19px\" : \"button govuk-!-margin-right-1 govuk-font19px\"'\n class=\"govuk-button\"> Continue</button>\n </fieldset>\n </div>\n </ng-container>\n \n <ng-container *ngIf=\"viewCompStatus === 'overPaymentAddressCapture'\">\n <input #myInput type='hidden' id='iFrameDrivenImageValue' value='OVERPAYMENTADDRESSCAPTUREPAGE'> \n <h1 class=\"govuk-heading-l\">Issue refund</h1>\n <h2 class=\"govuk-heading-m govuk-font19px\">Case reference: {{ccdCaseNumber | ccdHyphens }}</h2>\n <span id=\"how-contacted-conditional-hint\" class=\"govuk-hint govuk-font19px\">\n Payment reference: {{paymentGroupList?.payments[0]?.reference}}\n </span>\n <ccpay-contact-details \n [addressObj] = notification\n (assignContactDetails)=\"getContactDetails($event)\"\n (redirectToIssueRefund)=\"gotoPaymentSelectPage($event)\" ></ccpay-contact-details>\n <p>\n <a (click)=\"goToCaseTransationPage($event)\" class=\"govuk-link\" data-module=\"govuk-button\">\n Cancel\n </a>\n </p>\n </ng-container>\n \n <ng-container *ngIf=\"viewCompStatus === 'overpaymentcheckandanswer'\">\n <input #myInput type='hidden' id='iFrameDrivenImageValue' value='ADDREFUNDFORREMISSION'> \n <div class=\"govuk-warning-text\">\n \n <h1 class=\"heading-large\"> Check your answers</h1>\n </div>\n <table class=\"govuk-table govuk-table-mb\">\n <tr class=\"govuk-table__row\">\n <td class=\"govuk-table__cell govuk-!-font-weight-bold\">Payment reference</td>\n <td class=\"govuk-table__cell\"> {{paymentGroupList.payments[0].reference}} </td>\n </tr>\n <tr class=\"govuk-table__row\">\n <td class=\"govuk-table__cell govuk-!-font-weight-bold\">Payment amount</td>\n <td class=\"govuk-table__cell\">{{paymentGroupList.payments[0].amount | currency:'GBP':'symbol-narrow':'1.2-2'}}</td>\n </tr>\n <tr class=\"govuk-table__row\">\n <td class=\"govuk-table__cell govuk-!-font-weight-bold\">Fee amount</td>\n <td class=\"govuk-table__cell\">{{paymentGroupList?.fees[0]?.net_amount | currency:'GBP':'symbol-narrow':'1.2-2'}}</td>\n </tr>\n <tr class=\"govuk-table__row\">\n <td class=\"govuk-table__cell govuk-!-font-weight-bold\">Refund amount</td>\n <td class=\"govuk-table__cell\">{{getOverPaymentValue() | currency:'GBP':'symbol-narrow':'1.2-2'}}</td>\n </tr>\n <tr class=\"govuk-table__row\">\n <td class=\"govuk-table__cell govuk-!-font-weight-bold\">Refund reason</td>\n <td class=\"govuk-table__cell\">Over payment</td>\n </tr>\n <tr class=\"govuk-table__row\">\n <td class=\"govuk-table__cell govuk-!-font-weight-bold\">Send to</td>\n <td class=\"govuk-table__cell\">{{orderParty}}</td>\n </tr>\n <tr class=\"govuk-table__row\">\n <td class=\"govuk-table__cell govuk-!-font-weight-bold\">Send via</td>\n <td class=\"govuk-table__cell\">\n <div *ngIf=\"contactDetailsObj?.notification_type === 'EMAIL'\" class=\"contactDetails-width\">\n <strong>Email</strong>\n <br/>\n {{contactDetailsObj?.email}}\n </div>\n <div *ngIf=\"contactDetailsObj?.notification_type === 'LETTER'\" class=\"contactDetails-width\">\n <strong>Post</strong>\n <br/>\n {{contactDetailsObj?.address_line}} {{contactDetailsObj?.city}} {{contactDetailsObj?.county}} {{contactDetailsObj?.country}} {{contactDetailsObj?.postal_code}}\n </div>\n <a (click)=\"gotoAddressPage(contactDetailsObj)\" class=\"govuk-link right margin-top--size\" >Change</a>\n </td>\n </table>\n <button type=\"submit\" class=\"button govuk-button--secondary over-payment-alignment govuk-font19px\" (click)=\"gotoAddressPage(contactDetailsObj)\">Previous</button>\n <button type=\"submit\"\n [ngClass]='isContinueBtnDisabled ? \"button button--disabled govuk-!-margin-right-1 govuk-font19px\" : \"button govuk-!-margin-right-1 govuk-font19px\"'\n (click)=\"processRefund()\">\n Submit refund\n </button>\n <p>\n <a href=\"javascript:void(0)\" (click)=\"goToCaseTransationPage($event)\" class=\"govuk-link govuk-font19px\" data-module=\"govuk-button\">\n Cancel\n </a>\n </p>\n \n </ng-container>\n <ng-container *ngIf=\"viewStatus === 'refundconfirmationpage' && viewCompStatus !== 'overpayment' && viewCompStatus !== 'overPaymentAddressCapture' && viewCompStatus !== 'overpaymentcheckandanswer'\">\n <input #myInput type='hidden' id='iFrameDrivenImageValue' value='RETROREMISSIONREFUNDCONFIRMATIONPAGE'> \n <div class=\"govuk-grid-row\">\n <div >\n <div class=\"govuk-panel govuk-panel--confirmation\">\n <h1 class=\"govuk-panel__title\">\n Refund submitted\n </h1>\n \n <div class=\"govuk-panel__body\">\n <p class=\"govuk-body white\"><strong>Refund reference: {{refundReference}}</strong></p>\n </div>\n \n </div>\n <h2 class=\"govuk-heading-l\">What happens next</h2>\n <p class=\"govuk-body\">\n A refund request for {{refundAmount | currency:'GBP':'symbol-narrow':'1.2-2' }} has been created and will be passed to a team leader to approve.\n </p>\n <p class=\"govuk-body\">\n <a href=\"javascript:void(0)\" (click)=\"goToCaseTransationPage($event)\" class=\"govuk-link pointer\" data-module=\"govuk-button\">\n Return to case\n </a>\n </p>\n </div>\n </div>\n \n </ng-container>\n </div>",
|
|
573
|
+
styles: [".govuk-grid-column-full--gr{position:relative;margin-bottom:10px}.disable{text-decoration:none;cursor:default;color:#fff;background-color:grey;pointer-events:none}.govuk-grid__surplus-payments{margin:20px 0}.govuk-grid__surplus-payments>.govuk-grid-column-full{padding:0}.govuk-grid__surplus-payments-col1{margin-bottom:10px}.govuk-inset-text__no-border{border-left:0}.govuk-hidetext{font-size:22px;padding-bottom:10px}.lowercase{text-transform:lowercase}.channel::first-letter{text-transform:uppercase}.govuk-heading-xl{font-size:48px;margin-bottom:1px}.govuk-section-break--visible{border-bottom:2px solid #000}.totalpayments.govuk-table__row{border-bottom:2px solid #000!important}.govuk-inset-text{margin-left:1em}.govuk-button{font-size:19px;margin-bottom:0!important}.govuk-table__cell.govuk-table__cell--col6.govuk-table__custom--col6,.groupamount.govuk-table__header{text-align:right}.feeclass{padding-left:.7em}.align-center{text-align:center}details summary{display:list-item}.case-transaction__color{color:#a71414;font-weight:700;text-align:center}.capitalize::first-letter{text-transform:uppercase}.govuk-inset-text__no-left-margin{margin-left:0;padding-left:0}.whitespace-inherit{white-space:inherit!important}.govuk-section-records-break{margin:10px;border-bottom:2px solid #000!important}.exisitng-fees{margin-left:12px}.add-telephony-payment{margin-top:-2em;margin-left:-2em}.govuk-table__header--custom{text-align:center}.disable-link{cursor:default;pointer-events:none;color:#8e8c8c}.panel-no--style{border-left-style:none}.col-28{width:28%!important}.col-8{width:8%!important}.col-60{width:60%!important}.col-32{width:32%!important}.col-34{width:34%!important}#bckLnksize{font-size:16px!important}.col-15{width:15%!important;padding-right:0!important;padding-left:0!important}.col-16{width:16%!important}.col-14{width:14%!important}.col-17{width:17%!important}.col-12{width:12%!important}.col-9{width:9%!important}.col-10{width:10%!important}.col-11{width:11%!important}.col-13{width:13%!important}.col-21{width:21%!important}.col-20{width:20%!important}.col-24{width:24%!important}.govuk-table__cell,.govuk-table__header{padding:10px 10px 10px 0}.col-27{width:27%!important}td{white-space:nowrap;overflow:hidden!important}.col-19{width:19%!important;padding-left:0!important}.col-18{width:18%!important;padding-left:0!important;padding-right:0!important}.col-37{width:37%!important}.col-55{width:55%!important}.govuk-table{margin-bottom:1px}.hmcts-banner>.hmcts-banner__message{font-size:19px;line-height:1.25}.summary-table-font{font-size:36px}.order-class{padding-top:3em}.govuk-table__cell:last-child,.govuk-table__header:last-child{text-align:right}.govuk-grid-column-two-thirds{width:64%!important;padding:0!important}.govuk-heading-l{font-size:36px;margin-bottom:10px}.paymentrequest{margin-top:1em}.mar-17{margin-left:17px}.col-61{width:61px!important;padding:0!important}.error{width:960px;margin:auto}.summarypage{padding-left:36em;margin-top:2em}.summarypagealign{width:100%;text-align:right;margin-top:2em}.govuk-inset-text{font-size:2.1875rem}table{table-layout:fixed;width:100%}td,th{word-wrap:break-word}.totalPay{padding-right:14px;float:right;margin-top:2em}.govuk-back-link{font-size:1.5rem!important}.totalfees{float:right;margin-top:2em}.refundBtn{text-align:right;width:18%}.col-25{width:25%!important}.col-51{width:51%!important}.alignright{text-align:right}.alignleft{text-align:left}.alignself{align-self:flex-end}.maxwidth{width:100%}.over-payment .govuk-table-mb{margin-bottom:20px}.over-payment .contactDetails-width{width:70%}.over-payment .margin-top10px{margin-top:20px}.over-payment .govuk-font19px{font-size:19px!important}.over-payment .margin-top--size{margin-top:-30px}.over-payment .over-payment-alignment{margin-right:10px}.over-payment .govuk-button{font-size:19px;float:left;margin-top:2em}.over-payment td.govuk-table__cell{width:50%;text-align:left}.over-payment .govuk-label--s,.over-payment .govuk-warning-text__text,.over-payment .hmcts-currency-input__symbol{font-size:19px;font-weight:400}.over-payment .inline-error-class{outline:#a71414 solid 3px;outline-offset:0;border-color:#a71414}.over-payment .inline-error-message{color:#a71414;border-color:#a71414;font-weight:700;margin-top:10px;font-size:20px}.over-payment .govuk-button-group{padding-top:2em}.over-payment .heading-medium{margin-top:.875em}.over-payment .heading-large{margin-top:.25em}.over-payment .govuk-panel--confirmation{color:#fff;background:#00703c}.over-payment .govuk-panel__title{font-size:5rem}.over-payment .govuk-body,.over-payment .govuk-body-m{font-size:2.1875rem}.over-payment .govuk-link{cursor:pointer}.over-payment .govuk-radios__conditional{padding-top:12px!important}.over-payment .right{float:right;cursor:pointer}.over-payment .radio{float:right}.over-payment .white{color:#fff}"]
|
|
574
574
|
}] }
|
|
575
575
|
];
|
|
576
576
|
/** @nocollapse */
|
|
@@ -795,4 +795,4 @@ if (false) {
|
|
|
795
795
|
*/
|
|
796
796
|
ServiceRequestComponent.prototype.router;
|
|
797
797
|
}
|
|
798
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1yZXF1ZXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BobWN0cy9jY3BheS13ZWItY29tcG9uZW50LyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvc2VydmljZS1yZXF1ZXN0L3NlcnZpY2UtcmVxdWVzdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFPbEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRXRFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBRXJGO0lBNEZFLGlDQUNVLG1CQUF3QyxFQUN4QyxrQkFBc0MsRUFDdEMsaUJBQW9DLEVBQ3BDLEVBQXFCLEVBQ3JCLE1BQWM7UUFKZCx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBNUVkLCtCQUEwQixHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBTTdFLGtCQUFhLEdBQVUsRUFBRSxDQUFDO1FBQzFCLGFBQVEsR0FBZSxFQUFFLENBQUM7UUFDMUIsZ0JBQVcsR0FBZSxFQUFFLENBQUM7UUFDN0IsZ0JBQVcsR0FBZSxFQUFFLENBQUM7UUFDN0IsZUFBVSxHQUFpQixFQUFFLENBQUM7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d0NBQXVCOztJQUN2Qix5REFBd0M7O0lBQ3hDLDJEQUEwQzs7SUFDMUMsNkRBQTRDOztJQUM1Qyw2REFBNkU7O0lBQzdFLDJEQUFrQzs7SUFDbEMsaURBQXVCOztJQUN2QixrREFBd0I7O0lBQ3hCLHdEQUFzQzs7SUFDdEMsZ0RBQXVCOzs7OztJQUdyQixzREFBZ0Q7Ozs7O0lBQ2hELHFEQUE4Qzs7Ozs7SUFDOUMsb0RBQTRDOzs7OztJQUM1QyxxQ0FBNkI7Ozs7O0lBQzdCLHlDQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRISVNfRVhQUiB9IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyL3NyYy9vdXRwdXQvb3V0cHV0X2FzdCc7XG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUGF5bWVudExpYkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3BheW1lbnQtbGliLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJUGF5bWVudCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSVBheW1lbnQnO1xuaW1wb3J0IHsgSVJlbWlzc2lvbiB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSVJlbWlzc2lvbic7XG5pbXBvcnQgeyBJUGF5bWVudFZpZXcgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0lQYXltZW50Vmlldyc7XG5pbXBvcnQgeyBJT3JkZXJSZWZlcmVuY2VGZWUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0lPcmRlclJlZmVyZW5jZUZlZSc7XG5pbXBvcnQgeyBJRmVlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9JRmVlJztcbmltcG9ydCB7IElQYXltZW50R3JvdXAgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0lQYXltZW50R3JvdXAnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFBheW1lbnRWaWV3U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3BheW1lbnQtdmlldy9wYXltZW50LXZpZXcuc2VydmljZSc7XG5pbXBvcnQgeyBPcmRlcnNsaXN0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL29yZGVyc2xpc3Quc2VydmljZSc7XG5pbXBvcnQgeyBJUmVmdW5kQ29udGFjdERldGFpbHMgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0lSZWZ1bmRDb250YWN0RGV0YWlscyc7XG5pbXBvcnQgeyBQb3N0UmVmdW5kUmV0cm9SZW1pc3Npb24gfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL1Bvc3RSZWZ1bmRSZXRyb1JlbWlzc2lvbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjcGF5LXNlcnZpY2UtcmVxdWVzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZXJ2aWNlLXJlcXVlc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZXJ2aWNlLXJlcXVlc3QuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBTZXJ2aWNlUmVxdWVzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgnTE9HR0VESU5VU0VSUk9MRVMnKSBMT0dHRURJTlVTRVJST0xFUzogc3RyaW5nW107XG4gIEBJbnB1dCgndmlld1N0YXR1cycpIHZpZXdTdGF0dXM6IHN0cmluZztcbiAgQElucHV0KCdvcmRlckRldGFpbCcpIG9yZGVyRGV0YWlsOiBhbnlbXTtcbiAgQElucHV0KCdvcmRlclJlZicpIG9yZGVyUmVmOiBzdHJpbmc7XG4gIEBJbnB1dCgnb3JkZXJTdGF0dXMnKSBvcmRlclN0YXR1czogc3RyaW5nO1xuICBASW5wdXQoJ29yZGVyUGFydHknKSBvcmRlclBhcnR5OiBzdHJpbmc7XG4gIEBJbnB1dCgnb3JkZXJDcmVhdGVkJykgb3JkZXJDcmVhdGVkOiBEYXRlO1xuICBASW5wdXQoJ29yZGVyQ0NERXZlbnQnKSBvcmRlckNDREV2ZW50OiBzdHJpbmc7XG4gIEBJbnB1dCgnb3JkZXJGZWVzVG90YWwnKSBvcmRlckZlZXNUb3RhbDogbnVtYmVyO1xuICBASW5wdXQoJ29yZGVyVG90YWxQYXltZW50cycpIG9yZGVyVG90YWxQYXltZW50czogbnVtYmVyO1xuICBASW5wdXQoJ29yZGVyUmVtaXNzaW9uVG90YWwnKSBvcmRlclJlbWlzc2lvblRvdGFsOiBudW1iZXI7XG4gIEBJbnB1dCgncGF5bWVudEdyb3VwTGlzdCcpIHBheW1lbnRHcm91cExpc3Q6IElQYXltZW50R3JvdXA7XG4gIEBJbnB1dCgndGFrZVBheW1lbnQnKSB0YWtlUGF5bWVudDogYm9vbGVhbjtcbiAgQElucHV0KCdjY2RDYXNlTnVtYmVyJykgY2NkQ2FzZU51bWJlcjogYm9vbGVhbjtcbiAgQElucHV0KFwiaXNTZXJ2aWNlUmVxdWVzdFwiKSBpc1NlcnZpY2VSZXF1ZXN0OiBzdHJpbmc7XG4gIEBPdXRwdXQoKSBnb1RvU2VydmljZVJxdWVzdENvbXBvbmVudDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgdmlld0NvbXBTdGF0dXM7XG4gIHNlcnZpY2VyZXF1ZXN0OiBzdHJpbmc7XG4gIHBheW1lbnRUeXBlOiBzdHJpbmc7XG4gIGV4Y1JlZmVyZW5jZTogc3RyaW5nO1xuICBwYXltZW50R3JvdXBzOiBhbnlbXSA9IFtdO1xuICBwYXltZW50czogSVBheW1lbnRbXSA9IFtdO1xuICBub25QYXltZW50czogSVBheW1lbnRbXSA9IFtdO1xuICBhbGxQYXltZW50czogSVBheW1lbnRbXSA9IFtdO1xuICByZW1pc3Npb25zOiBJUmVtaXNzaW9uW10gPSBbXTtcbiAgcGF5bWVudEZlZXM6IElGZWVbXTtcbiAgZmVlczogYW55O1xuICBlcnJvck1lc3NhZ2U6IHN0cmluZztcbiAgdG90YWxGZWVzOiBudW1iZXI7XG4gIHRvdGFsUGF5bWVudHM6IG51bWJlcjtcbiAgdG90YWxOb25PZmZQYXltZW50czogbnVtYmVyO1xuICB0b3RhbFJlbWlzc2lvbnM6IG51bWJlcjtcbiAgc2VsZWN0ZWRPcHRpb246IHN0cmluZztcbiAgZGNuTnVtYmVyOiBzdHJpbmc7XG4gIHBheW1lbnRSZWY6IHN0cmluZztcbiAgaXNUdXJuT2ZmOiBib29sZWFuO1xuICBpc05ld1BjaXBhbE9mZjogYm9vbGVhbjtcbiAgaXNSZWZ1bmRSZW1pc3Npb246IGJvb2xlYW4gPSB0cnVlO1xuICBpc09sZFBjaXBhbE9mZjogYm9vbGVhbjtcbiAgaXNTdHJhdGVnaWNGaXhFbmFibGU6IGJvb2xlYW47XG4gIGlzQWRkRmVlQnRuRW5hYmxlZDogYm9vbGVhbiA9IHRydWU7XG4gIGlzRXhjZXB0aW9uUmVjb3JkOiBib29sZWFuID0gZmFsc2U7XG4gIGlzVW5wcm9jZXNzZWRSZWNvcmRTZWxlY3RlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBleGNlcHRpb25SZWNvcmRSZWZlcmVuY2U6IHN0cmluZztcbiAgaXNBbnlGZWVHcm91cEF2aWxhYmxlOiBib29sZWFuID0gdHJ1ZTtcbiAgaXNIaXN0b3JpY0dyb3VwQXZhaWxhYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIGlzQnVsa1NjYW5FbmFibGU7XG4gIGlzUmVtaXNzaW9uc01hdGNoOiBib29sZWFuO1xuICBpc1JlbW92ZUJ0bkRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gIGZlZUlkOiBJRmVlO1xuICBjbEFtb3VudER1ZTogbnVtYmVyID0gMDtcbiAgdW5wcm9jZXNzZWRSZWNvcmRDb3VudDogbnVtYmVyO1xuICBpc0ZlZVJlY29yZHNFeGlzdDogYm9vbGVhbiA9IGZhbHNlO1xuICBpc0dycE91dHN0YW5kaW5nQW10UG9zaXRpdmU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgdG90YWxSZWZ1bmRBbW91bnQ6IE51bWJlcjtcbiAgY2FzZVR5cGU6IFN0cmluZztcbiAgaXNDb25maXJtYXRpb25CdG5EaXNhYmxlZDogYm9vbGVhbjtcbiAgcmVmdW5kUmVmZXJlbmNlOiBzdHJpbmc7XG4gIHJlZnVuZEFtb3VudDogc3RyaW5nO1xuICBwYXltZW50OiBJUGF5bWVudDtcbiAgcGF5bWVudEdyb3VwOiBJUGF5bWVudEdyb3VwO1xuICBwYXltZW50VmlldzogSVBheW1lbnRWaWV3O1xuXG4gIGlzQWRkUmVtaXNzaW9uRW5hYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIG9yZGVyUmVtaXNzaW9uRGV0YWlsczogYW55W10gPSBbXTtcbiAgb3JkZXJMZXZlbEZlZXM6IElPcmRlclJlZmVyZW5jZUZlZVtdID0gW107XG4gIGNwb0RldGFpbHM6IGFueSA9IG51bGw7XG4gIHNlcnZpY2VSZXF1ZXN0VmFsdWU6IHN0cmluZztcbiAgb3JkZXJBZGRCdG5FbmFibGU6IGJvb2xlYW47XG4gIGlzRnJvbVBheW1lbnREZXRhaWxQYWdlOiBib29sZWFuO1xuICBjb250YWN0RGV0YWlsc09iajogSVJlZnVuZENvbnRhY3REZXRhaWxzXG4gIG5vdGlmaWNhdGlvbjogYW55O1xuICBpc0NQT0Rvd246IGJvb2xlYW47XG4gIHRlc3Q6IGJvb2xlYW47XG4gIGlzUEJBOiBib29sZWFuID0gZmFsc2U7XG4gIGlzSXNzdWVSZWZ1bmZCdG5FbmFibGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNBZGRSZW1pc3Npb25CdG5FbmFibGVkOiBib29sZWFuID0gZmFsc2U7XG4gIGlzUmVmdW5kUmVtaXNzaW9uQnRuRW5hYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIGFsbG93ZWRSb2xlc1RvQWNjZXNzUmVmdW5kID0gWydwYXltZW50cy1yZWZ1bmQtYXBwcm92ZXInLCAncGF5bWVudHMtcmVmdW5kJ107XG4gIGlzRnJvbVNlcnZpY2VSZXF1ZXN0UGFnZTogYm9vbGVhbjtcbiAgbmF2aWdhdGlvbnBhZ2U6IHN0cmluZztcbiAgcmVtaXNzaW9uRmVlQW10OiBudW1iZXI7XG4gIGlzQ29udGludWVCdG5EaXNhYmxlZDogYm9vbGVhbiA9IHRydWU7XG4gIGlzRnVsbHlSZWZ1bmQ6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBwYXltZW50TGliQ29tcG9uZW50OiBQYXltZW50TGliQ29tcG9uZW50LFxuICAgIHByaXZhdGUgcGF5bWVudFZpZXdTZXJ2aWNlOiBQYXltZW50Vmlld1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBPcmRlcnNsaXN0U2VydmljZTogT3JkZXJzbGlzdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5pc1R1cm5PZmYgPSB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuSVNUVVJOT0ZGO1xuICAgIHRoaXMuaXNTZXJ2aWNlUmVxdWVzdCA9ICdmYWxzZSc7XG4gICAgaWYgKHRoaXMudmlld1N0YXR1cyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnZpZXdTdGF0dXMgPSB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQudmlld05hbWU7XG4gICAgfVxuICAgIGlmKHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5pc0Zyb21TZXJ2aWNlUmVxdWVzdFBhZ2UgJiYgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LmlzRnJvbVBheW1lbnREZXRhaWxQYWdlKSB7XG4gICAgICBpZih0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuaXNGcm9tUGF5bWVudERldGFpbFBhZ2UgJiYgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LmlzRnJvbVNlcnZpY2VSZXF1ZXN0UGFnZSkge1xuICAgICAgdGhpcy5PcmRlcnNsaXN0U2VydmljZS5nZXRvcmRlclJlZnMoKS5zdWJzY3JpYmUoKGRhdGEpID0+IHRoaXMub3JkZXJSZWYgPSBkYXRhKTtcbiAgICAgIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2UuZ2V0b3JkZXJDQ0RFdmVudHMoKS5zdWJzY3JpYmUoKGRhdGEpID0+IHRoaXMub3JkZXJDQ0RFdmVudCA9IGRhdGEpO1xuICAgICAgdGhpcy5PcmRlcnNsaXN0U2VydmljZS5nZXRvcmRlckNyZWF0ZWRzKCkuc3Vic2NyaWJlKChkYXRhKSA9PiB0aGlzLm9yZGVyQ3JlYXRlZCA9IGRhdGEpO1xuICAgICAgdGhpcy5PcmRlcnNsaXN0U2VydmljZS5nZXRvcmRlckRldGFpbCgpLnN1YnNjcmliZSgoZGF0YSkgPT4gdGhpcy5vcmRlckRldGFpbCA9IGRhdGEpO1xuICAgICAgdGhpcy5PcmRlcnNsaXN0U2VydmljZS5nZXRvcmRlclBhcnR5cygpLnN1YnNjcmliZSgoZGF0YSkgPT4gdGhpcy5vcmRlclBhcnR5ID0gZGF0YSk7XG4gICAgICB0aGlzLk9yZGVyc2xpc3RTZXJ2aWNlLmdldG9yZGVyUmVtaXNzaW9uVG90YWxzKCkuc3Vic2NyaWJlKChkYXRhKSA9PiB0aGlzLm9yZGVyUmVtaXNzaW9uVG90YWwgPSBkYXRhKTtcbiAgICAgIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2UuZ2V0b3JkZXJGZWVzVG90YWxzKCkuc3Vic2NyaWJlKChkYXRhKSA9PiB0aGlzLm9yZGVyRmVlc1RvdGFsID0gZGF0YSk7XG4gICAgICB0aGlzLk9yZGVyc2xpc3RTZXJ2aWNlLmdldG9vcmRlclRvdGFsUGF5bWVudHNzKCkuc3Vic2NyaWJlKChkYXRhKSA9PiB0aGlzLm9yZGVyVG90YWxQYXltZW50cyA9IGRhdGEpO1xuICAgIH1cbiAgIFxuICAgIFxuICAgIH1cbiAgICBpZih0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuaXNGcm9tU2VydmljZVJlcXVlc3RQYWdlICYmIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5UQUtFUEFZTUVOVCkge1xuICAgICAgdGhpcy5pc1NlcnZpY2VSZXF1ZXN0ID0gJ2ZhbHNlJztcbiAgICB9XG5cblxuICB9XG4gIGdvVG9TZXJ2aWNlUmVxdWVzdFBhZ2UoKSB7XG4gICAgdGhpcy5nb1RvU2VydmljZVJxdWVzdENvbXBvbmVudC5lbWl0KCk7XG4gIH1cblxuICBnb1RvQ2FzZVRyYW5zYXRpb25QYWdlKGV2ZW50OiBhbnkpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2Uuc2V0bmF2aWdhdGlvblBhZ2UoJ3NlcnZpY2VyZXF1ZXN0cGFnZScpO1xuICAgIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2Uuc2V0aXNGcm9tU2VydmljZVJlcXVlc3RQYWdlKGZhbHNlKTtcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQudmlld05hbWUgPSAnY2FzZS10cmFuc2FjdGlvbnMnO1xuICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5JU0JTRU5BQkxFID0gdHJ1ZTtcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuaXNUYWtlUGF5bWVudCA9IHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5UQUtFUEFZTUVOVDtcbiAgICBpZiAodGhpcy50YWtlUGF5bWVudCkge1xuICAgICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LmlzVGFrZVBheW1lbnQgPSB0aGlzLnRha2VQYXltZW50O1xuICAgIH1cbiAgICAvL3RoaXMucGF5bWVudExpYkNvbXBvbmVudC5TRVJWSUNFUkVRVUVTVCA9IFwidHJ1ZVwiO1xuICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5pc0Zyb21TZXJ2aWNlUmVxdWVzdFBhZ2UgPSBmYWxzZTtcbiAgICBpZih0aGlzLmlzU2VydmljZVJlcXVlc3QgIT09ICdmYWxzZScpIHtcbiAgICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5pc0Zyb21TZXJ2aWNlUmVxdWVzdFBhZ2UgPSB0cnVlO1xuICAgIH1cbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuaXNGcm9tUmVmdW5kU3RhdHVzUGFnZSA9IGZhbHNlO1xuICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC52aWV3TmFtZSA9ICdjYXNlLXRyYW5zYWN0aW9ucyc7XG4gICAgdGhpcy5yZXNldE9yZGVyRGF0YSgpO1xuICAgbGV0ICBwYXJ0VXJsID0gdGhpcy5wYXltZW50TGliQ29tcG9uZW50LklTQlNFTkFCTEUgPyAnJmlzQnVsa1NjYW5uaW5nPUVuYWJsZScgOiAnJmlzQnVsa1NjYW5uaW5nPURpc2FibGUnO1xuICAgIHBhcnRVcmwgKz0gdGhpcy5wYXltZW50TGliQ29tcG9uZW50LklTVFVSTk9GRiA/ICcmaXNUdXJuT2ZmPUVuYWJsZScgOiAnJmlzVHVybk9mZj1EaXNhYmxlJztcbiAgICBpZih0aGlzLmlzU2VydmljZVJlcXVlc3QgPT09ICdmYWxzZScpIHtcbiAgICAgIHBhcnRVcmwgKz0gdGhpcy5wYXltZW50TGliQ29tcG9uZW50LlRBS0VQQVlNRU5UID8gJyZ0YWtlUGF5bWVudD10cnVlJyA6ICcmdGFrZVBheW1lbnQ9ZmFsc2UnO1xuICAgIH1cbiAgICBwYXJ0VXJsICs9IHRoaXMuaXNTdHJhdGVnaWNGaXhFbmFibGUgPyAnJmlzU3RGaXhFbmFibGU9RW5hYmxlJyA6ICcmaXNTdEZpeEVuYWJsZT1EaXNhYmxlJztcbiAgICBwYXJ0VXJsICs9IHRoaXMuaXNTZXJ2aWNlUmVxdWVzdCAhPT0gJ2ZhbHNlJyA/ICcmc2VydmljZXJlcXVlc3Q9dHJ1ZScgOiAnJnNlcnZpY2VyZXF1ZXN0PWZhbHNlJztcbiAgICBwYXJ0VXJsICs9IGAmY2FzZVR5cGU9JHt0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuQ0FTRVRZUEV9YDtcbiAgICBwYXJ0VXJsICs9IHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5JU05FV1BDSVBBTE9GRiA/ICcmaXNOZXdQY2lwYWxPZmY9RW5hYmxlJyA6ICcmaXNOZXdQY2lwYWxPZmY9RGlzYWJsZSc7XG4gICAgcGFydFVybCArPSB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuSVNPTERQQ0lQQUxPRkYgPyAnJmlzT2xkUGNpcGFsT2ZmPUVuYWJsZScgOiAnJmlzT2xkUGNpcGFsT2ZmPURpc2FibGUnO1xuICAgIGNvbnN0IHVybCA9IGAvcGF5bWVudC1oaXN0b3J5LyR7dGhpcy5wYXltZW50TGliQ29tcG9uZW50LkNDRF9DQVNFX05VTUJFUn0/dmlldz1jYXNlLXRyYW5zYWN0aW9ucyZzZWxlY3RlZE9wdGlvbj0ke3RoaXMucGF5bWVudExpYkNvbXBvbmVudC5TRUxFQ1RFRF9PUFRJT059JHtwYXJ0VXJsfWA7XG4gICAgICB0aGlzLnJvdXRlci5yb3V0ZVJldXNlU3RyYXRlZ3kuc2hvdWxkUmV1c2VSb3V0ZSA9ICgpID0+IGZhbHNlO1xuICAgICAgdGhpcy5yb3V0ZXIub25TYW1lVXJsTmF2aWdhdGlvbiA9ICdyZWxvYWQnO1xuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCh1cmwpO1xuICB9XG5cbiAgYWRkUmVtaXNzaW9uKGZlZTogSUZlZSkge1xuICAgIGlmKHRoaXMuY2hrSXNBZGRSZW1pc3Npb25CdG5FbmFibGUoZmVlKSkge1xuICAgIHRoaXMuZmVlSWQgPSBmZWU7XG4gICAgdGhpcy52aWV3U3RhdHVzID0gJ2FkZHJlbWlzc2lvbic7XG4gICAgdGhpcy5wYXltZW50ID0gdGhpcy5vcmRlckRldGFpbFswXS5wYXltZW50c1swXTtcbiAgICB0aGlzLnBheW1lbnRWaWV3U2VydmljZS5nZXRBcHBvcnRpb25QYXltZW50RGV0YWlscyh0aGlzLm9yZGVyRGV0YWlsWzBdLnBheW1lbnRzWzBdLnJlZmVyZW5jZSkuc3Vic2NyaWJlKFxuICAgICAgcGF5bWVudEdyb3VwID0+IHtcbiAgICAgICAgdGhpcy5wYXltZW50R3JvdXAgPSBwYXltZW50R3JvdXA7XG5cbiAgICAgICAgdGhpcy5wYXltZW50R3JvdXAucGF5bWVudHMgPSB0aGlzLnBheW1lbnRHcm91cC5wYXltZW50cy5maWx0ZXJcbiAgICAgICAgICAocGF5bWVudEdyb3VwT2JqID0+IHBheW1lbnRHcm91cE9ialsncmVmZXJlbmNlJ10uaW5jbHVkZXModGhpcy5wYXltZW50TGliQ29tcG9uZW50LnBheW1lbnRSZWZlcmVuY2UpKTtcbiAgICAgICAgdGhpcy5wYXltZW50ID0gdGhpcy5wYXltZW50R3JvdXAucGF5bWVudHNbMF07XG4gICAgICAgXG4gICAgICAgICAgLy8gIGNvbnN0IHBheW1lbnRBbGxvY2F0aW9uID0gdGhpcy5wYXltZW50R3JvdXAucGF5bWVudHNbMF0ucGF5bWVudF9hbGxvY2F0aW9uO1xuICAgICAgICAgIC8vICB0aGlzLmlzU3RhdHVzQWxsb2NhdGVkID0gcGF5bWVudEFsbG9jYXRpb24ubGVuZ3RoID4gMCAmJiBwYXltZW50QWxsb2NhdGlvblswXS5hbGxvY2F0aW9uX3N0YXR1cyA9PT0gJ0FsbG9jYXRlZCcgfHwgcGF5bWVudEFsbG9jYXRpb24ubGVuZ3RoID09PSAwO1xuICAgICAgICBcbiAgICAgIH0sXG4gICAgICAoZXJyb3I6IGFueSkgPT4gdGhpcy5lcnJvck1lc3NhZ2UgPSBlcnJvci5yZXBsYWNlKC9cIi9nLFwiXCIpXG4gICAgKTtcbiAgfVxuICB9XG5cbiAgYWRkUmVmdW5kRm9yUmVtaXNzaW9uKHBheW1lbnQ6IElQYXltZW50LCByZW1pc3Npb246IElSZW1pc3Npb25bXSxmZWVzOmFueSkge1xuICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5pc0Zyb21TZXJ2aWNlUmVxdWVzdFBhZ2UgPSB0cnVlO1xuICAgIHRoaXMucGF5bWVudFZpZXdTZXJ2aWNlLmdldEFwcG9ydGlvblBheW1lbnREZXRhaWxzKHBheW1lbnQucmVmZXJlbmNlKS5zdWJzY3JpYmUoXG4gICAgICBwYXltZW50R3JvdXAgPT4ge1xuICAgICAgICB0aGlzLnBheW1lbnRHcm91cCA9IHBheW1lbnRHcm91cDtcbiAgICAgICAgdGhpcy5wYXltZW50R3JvdXAucGF5bWVudHMgPSB0aGlzLnBheW1lbnRHcm91cC5wYXltZW50cy5maWx0ZXJcbiAgICAgICAgICAocGF5bWVudEdyb3VwT2JqID0+IHBheW1lbnRHcm91cE9iai5yZWZlcmVuY2UgPT09IHBheW1lbnQucmVmZXJlbmNlKTtcbiAgICAgICAgdGhpcy5wYXltZW50ID0gdGhpcy5wYXltZW50R3JvdXAucGF5bWVudHNbMF07XG4gICAgICAgIHRoaXMucmVtaXNzaW9ucyA9IHJlbWlzc2lvbjtcbiAgICAgICAgdGhpcy5yZW1pc3Npb25GZWVBbXQgPSBmZWVzLmZpbHRlcihkYXRhPT5kYXRhLmNvZGUgPT09IHRoaXMucmVtaXNzaW9uc1snZmVlX2NvZGUnXSlbMF0ubmV0X2Ftb3VudDtcbiAgICAgICAgdGhpcy52aWV3U3RhdHVzID0gJ2FkZHJlZnVuZGZvcnJlbWlzc2lvbic7XG4gICAgICAgIC8vIGNvbnN0IHBheW1lbnRBbGxvY2F0aW9uID0gdGhpcy5wYXltZW50R3JvdXAucGF5bWVudHNbMF0ucGF5bWVudF9hbGxvY2F0aW9uO1xuICAgICAgICAvLyB0aGlzLmlzU3RhdHVzQWxsb2NhdGVkID0gcGF5bWVudEFsbG9jYXRpb24ubGVuZ3RoID4gMCAmJiBwYXltZW50QWxsb2NhdGlvblswXS5hbGxvY2F0aW9uX3N0YXR1cyA9PT0gJ0FsbG9jYXRlZCcgfHwgcGF5bWVudEFsbG9jYXRpb24ubGVuZ3RoID09PSAwO1xuICAgICAgfSxcbiAgICAgIChlcnJvcjogYW55KSA9PiB0aGlzLmVycm9yTWVzc2FnZSA9IGVycm9yXG4gICAgKTtcbiAgfVxuICBjYW5jZWxSZW1vdmFsKCkge1xuICAgIHRoaXMudmlld1N0YXR1cyA9ICdtYWluJztcbiAgfVxuXG4gIHJlbW92ZUZlZShmZWU6IGFueSkge1xuICAgIHRoaXMuaXNSZW1vdmVCdG5EaXNhYmxlZCA9IHRydWU7XG4gICAgdGhpcy5wYXltZW50Vmlld1NlcnZpY2UuZGVsZXRlRmVlRnJvbVBheW1lbnRHcm91cChmZWUpLnN1YnNjcmliZShcbiAgICAgIChzdWNjZXNzOiBhbnkpID0+IHtcbiAgICAgICAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xuICAgICAgfSxcbiAgICAgIChlcnJvcjogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gZXJyb3I7XG4gICAgICAgIHRoaXMuaXNSZW1vdmVCdG5EaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBpc3N1ZVJlZnVuZChwYXltZW50OiBJUGF5bWVudCkge1xuICAgIGlmIChwYXltZW50ICE9PSBudWxsICYmIHBheW1lbnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYoIHRoaXMuY2hrSXNJc3N1ZVJlZnVuZEJ0bkVuYWJsZShwYXltZW50KSkge1xuICAgICAgICB0aGlzLnBheW1lbnRWaWV3U2VydmljZS5nZXRBcHBvcnRpb25QYXltZW50RGV0YWlscyhwYXltZW50LnJlZmVyZW5jZSkuc3Vic2NyaWJlKFxuICAgICAgICBwYXltZW50R3JvdXAgPT4ge1xuICAgICAgICAgIHBheW1lbnRHcm91cC5wYXltZW50cyA9IHBheW1lbnRHcm91cC5wYXltZW50cy5maWx0ZXJcbiAgICAgICAgICAocGF5bWVudEdyb3VwT2JqID0+IHBheW1lbnRHcm91cE9ialsncmVmZXJlbmNlJ10uaW5jbHVkZXMocGF5bWVudC5yZWZlcmVuY2UpKTtcbiAgICAgICAgICBpZihwYXltZW50Lm92ZXJfcGF5bWVudCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMudmlld1N0YXR1cyA9ICcnO1xuICAgICAgICAgICAgdGhpcy5wYXltZW50ID0gcGF5bWVudDtcbiAgICAgICAgICAgIHRoaXMucGF5bWVudEdyb3VwTGlzdCA9IHBheW1lbnRHcm91cDtcbiAgICAgICAgICAgIHRoaXMudmlld0NvbXBTdGF0dXMgID0gJ292ZXJwYXltZW50JztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy52aWV3U3RhdHVzID0gJ2lzc3VlcmVmdW5kJztcbiAgICAgICAgICAgIHRoaXMudmlld0NvbXBTdGF0dXMgPSAnJztcbiAgICAgICAgICAgIHRoaXMucGF5bWVudEZlZXMgPSBwYXltZW50R3JvdXAuZmVlcztcbiAgICAgICAgICAgIHRoaXMucGF5bWVudCA9IHBheW1lbnQ7XG4gICAgICAgICAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuaXNGcm9tU2VydmljZVJlcXVlc3RQYWdlID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuaXNSZWZ1bmRSZW1pc3Npb24gPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgKGVycm9yOiBhbnkpID0+IHRoaXMuZXJyb3JNZXNzYWdlID0gZXJyb3JcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnb1RvUGF5ZW1lbnRWaWV3KHBheW1lbnRHcm91cFJlZmVyZW5jZTogc3RyaW5nLCBwYXltZW50UmVmZXJlbmNlOiBzdHJpbmcsIHBheW1lbnRNZXRob2Q6IHN0cmluZykge1xuICAgIHRoaXMuZ29Ub1BheW1lbnRWaWV3Q29tcG9uZW50KHsgcGF5bWVudEdyb3VwUmVmZXJlbmNlLCBwYXltZW50UmVmZXJlbmNlLCBwYXltZW50TWV0aG9kIH0pO1xuICB9XG5cbiAgZ29Ub1BheW1lbnRWaWV3Q29tcG9uZW50KHBheW1lbnRHcm91cDogYW55KSB7XG4gICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LnBheW1lbnRNZXRob2QgPSBwYXltZW50R3JvdXAucGF5bWVudE1ldGhvZDtcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuaXNGcm9tU2VydmljZVJlcXVlc3RQYWdlID0gdHJ1ZTtcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQucGF5bWVudEdyb3VwUmVmZXJlbmNlID0gcGF5bWVudEdyb3VwLnBheW1lbnRHcm91cFJlZmVyZW5jZTtcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQucGF5bWVudFJlZmVyZW5jZSA9IHBheW1lbnRHcm91cC5wYXltZW50UmVmZXJlbmNlO1xuICAgIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2Uuc2V0T3JkZXJSZWYodGhpcy5vcmRlclJlZik7XG4gICAgdGhpcy5PcmRlcnNsaXN0U2VydmljZS5zZXRvcmRlckNDREV2ZW50KHRoaXMub3JkZXJDQ0RFdmVudCk7XG4gICAgdGhpcy5PcmRlcnNsaXN0U2VydmljZS5zZXRvcmRlckNyZWF0ZWQodGhpcy5vcmRlckNyZWF0ZWQpO1xuICAgIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2Uuc2V0b3JkZXJEZXRhaWwodGhpcy5vcmRlckRldGFpbCk7XG4gICAgdGhpcy5PcmRlcnNsaXN0U2VydmljZS5zZXRvcmRlclBhcnR5KHRoaXMub3JkZXJQYXJ0eSk7XG4gICAgdGhpcy5PcmRlcnNsaXN0U2VydmljZS5zZXRvcmRlclRvdGFsUGF5bWVudHModGhpcy5vcmRlclRvdGFsUGF5bWVudHMpO1xuICAgIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2Uuc2V0b3JkZXJSZW1pc3Npb25Ub3RhbCh0aGlzLm9yZGVyUmVtaXNzaW9uVG90YWwpO1xuICAgIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2Uuc2V0b3JkZXJGZWVzVG90YWwodGhpcy5vcmRlckZlZXNUb3RhbCk7XG4gICAgdGhpcy52aWV3U3RhdHVzID0gJ3BheW1lbnQtdmlldyc7XG4gIH1cblxuICBjaGtJc0lzc3VlUmVmdW5kQnRuRW5hYmxlKHBheW1lbnQ6IElQYXltZW50KTogYm9vbGVhbiB7XG4gICAgaWYgKHBheW1lbnQgIT09IG51bGwgJiYgcGF5bWVudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gcGF5bWVudC5pc3N1ZV9yZWZ1bmQgJiYgcGF5bWVudC5yZWZ1bmRfZW5hYmxlXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBjaGtJc0FkZFJlZnVuZEJ0bkVuYWJsZShyZW1pc3Npb246IElSZW1pc3Npb24pOiBib29sZWFuIHtcbiAgICBpZiAocmVtaXNzaW9uICE9PSBudWxsICYmIHJlbWlzc2lvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gcmVtaXNzaW9uLmFkZF9yZWZ1bmQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBjaGtJc0FkZFJlbWlzc2lvbkJ0bkVuYWJsZShmZWU6IElGZWUpOiBib29sZWFuIHtcbiAgICBpZiAoZmVlICE9PSBudWxsICYmIGZlZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gZmVlLmFkZF9yZW1pc3Npb24gJiYgZmVlLnJlbWlzc2lvbl9lbmFibGU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgfVxuICByZXNldE9yZGVyRGF0YSgpIHtcbiAgICB0aGlzLk9yZGVyc2xpc3RTZXJ2aWNlLnNldE9yZGVyUmVmKG51bGwpO1xuICAgIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2Uuc2V0b3JkZXJDQ0RFdmVudChudWxsKTtcbiAgICB0aGlzLk9yZGVyc2xpc3RTZXJ2aWNlLnNldG9yZGVyQ3JlYXRlZChudWxsKTtcbiAgICB0aGlzLk9yZGVyc2xpc3RTZXJ2aWNlLnNldG9yZGVyRGV0YWlsKG51bGwpO1xuICAgIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2Uuc2V0b3JkZXJQYXJ0eShudWxsKTtcbiAgICB0aGlzLk9yZGVyc2xpc3RTZXJ2aWNlLnNldG9yZGVyVG90YWxQYXltZW50cyhudWxsKTtcbiAgICB0aGlzLk9yZGVyc2xpc3RTZXJ2aWNlLnNldG9yZGVyUmVtaXNzaW9uVG90YWwobnVsbCk7XG4gICAgdGhpcy5PcmRlcnNsaXN0U2VydmljZS5zZXRvcmRlckZlZXNUb3RhbChudWxsKTtcbiAgfVxuXG4gIHNlbGVjdFB5bWVudE9wdGlvbihwYXltZW50VHlwZTogc3RyaW5nKSB7XG4gICAgdGhpcy5wYXltZW50VHlwZSA9IHBheW1lbnRUeXBlO1xuICAgIHRoaXMuaXNDb250aW51ZUJ0bkRpc2FibGVkID0gZmFsc2U7XG4gIH1cbiAgZ29Ub1BheW1lbnRWaWV3Q29tcCgpIHtcbiAgICB0aGlzLnZpZXdDb21wU3RhdHVzICA9ICcnO1xuICAgIHRoaXMudmlld1N0YXR1cyA9ICdwYXltZW50dmlldyc7XG4gIH1cbiAgY29udGludWVQYXltZW50KHBheW1lbnRncnA6IElQYXltZW50R3JvdXApIHtcbiAgICBcbiAgICBpZiAodGhpcy5wYXltZW50VHlwZSA9PT0gJ29wJykge1xuICAgICAgdGhpcy5pc0Z1bGx5UmVmdW5kID0gZmFsc2VcbiAgICAgIHRoaXMudmlld1N0YXR1cyA9ICcnO1xuICAgICAgdGhpcy52aWV3Q29tcFN0YXR1cyAgPSAnb3ZlclBheW1lbnRBZGRyZXNzQ2FwdHVyZSc7XG4gICAgfSBlbHNlIGlmKHRoaXMucGF5bWVudFR5cGUgPT09ICdmcCcpIHtcbiAgICAgIHRoaXMuaXNGdWxseVJlZnVuZCA9IHRydWVcbiAgICAgIHRoaXMucGF5bWVudEdyb3VwTGlzdCA9IHBheW1lbnRncnA7XG4gICAgICB0aGlzLnZpZXdTdGF0dXMgPSAnaXNzdWVyZWZ1bmQnO1xuICAgICAgdGhpcy52aWV3Q29tcFN0YXR1cyA9IFwiXCI7XG4gICAgICB0aGlzLmlzUmVmdW5kUmVtaXNzaW9uID0gdHJ1ZTtcbiAgICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5pc0Zyb21QYXltZW50RGV0YWlsUGFnZSA9IHRydWU7XG4gICAgICB0aGlzLmlzRnJvbVBheW1lbnREZXRhaWxQYWdlID0gdHJ1ZTtcbiAgICAgIHRoaXMuaXNGcm9tU2VydmljZVJlcXVlc3RQYWdlID0gdGhpcy5wYXltZW50TGliQ29tcG9uZW50LmlzRnJvbVNlcnZpY2VSZXF1ZXN0UGFnZTtcbiAgICB9XG4gIH1cbiAgZ2V0Q29udGFjdERldGFpbHMob2JqOklSZWZ1bmRDb250YWN0RGV0YWlscykge1xuICAgIHRoaXMuY29udGFjdERldGFpbHNPYmogPSBvYmo7XG4gICAgdGhpcy52aWV3U3RhdHVzID0gJyc7XG4gICAgdGhpcy52aWV3Q29tcFN0YXR1cyA9ICdvdmVycGF5bWVudGNoZWNrYW5kYW5zd2VyJztcbiAgfVxuICBnb3RvUGF5bWVudFNlbGVjdFBhZ2UoZXZlbnQ6IEV2ZW50KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLnZpZXdTdGF0dXMgPSAnJztcbiAgICB0aGlzLnZpZXdDb21wU3RhdHVzICA9ICdvdmVycGF5bWVudCc7XG4gIH1cbiAgZ290b0FkZHJlc3NQYWdlKG5vdGU/OiBJUmVmdW5kQ29udGFjdERldGFpbHMpIHtcbiAgICBpZiAobm90ZSkge1xuICAgICAgdGhpcy5ub3RpZmljYXRpb24gPSB7IGNvbnRhY3RfZGV0YWlsczogbm90ZSwgbm90aWZpY2F0aW9uX3R5cGU6IG5vdGUubm90aWZpY2F0aW9uX3R5cGUgfTtcbiAgICB9XG4gICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnJztcbiAgICB0aGlzLnZpZXdTdGF0dXMgPSAnJztcbiAgICB0aGlzLnZpZXdDb21wU3RhdHVzID0gJ292ZXJQYXltZW50QWRkcmVzc0NhcHR1cmUnO1xuICB9XG4gIHByb2Nlc3NSZWZ1bmQoKSB7XG4gICAgdGhpcy5pc0NvbmZpcm1hdGlvbkJ0bkRpc2FibGVkID0gdHJ1ZTtcbiAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICcnO1xuICAgIGNvbnN0IG9iaiA9IHRoaXMucGF5bWVudEdyb3VwTGlzdC5mZWVzWzBdO1xuICAgIHRoaXMuZmVlcyAgPSBbeyBpZDogb2JqLmlkLCBcbiAgICAgIGNvZGU6IG9iai5jb2RlLFxuICAgICAgdmVyc2lvbjpvYmoudmVyc2lvbiwgXG4gICAgICBhcHBvcnRpb25fYW1vdW50OiBvYmouYXBwb3J0aW9uX2Ftb3VudCxcbiAgICAgIGNhbGN1bGF0ZWRfYW1vdW50OiBvYmouY2FsY3VsYXRlZF9hbW91bnQsXG4gICAgICB1cGRhdGVkX3ZvbHVtZTogb2JqLnVwZGF0ZWRfdm9sdW1lID8gb2JqLnVwZGF0ZWRfdm9sdW1lIDogb2JqLnZvbHVtZSxcbiAgICAgIHZvbHVtZTogb2JqLnZvbHVtZSxcbiAgICAgIHJlZnVuZF9hbW91bnQ6IHRoaXMuZ2V0T3ZlclBheW1lbnRWYWx1ZSgpIH1dO1xuICAgIGNvbnN0IHJlcXVlc3RCb2R5ID0gbmV3IFBvc3RSZWZ1bmRSZXRyb1JlbWlzc2lvbih0aGlzLmNvbnRhY3REZXRhaWxzT2JqLHRoaXMuZmVlcywgdGhpcy5wYXltZW50R3JvdXBMaXN0LnBheW1lbnRzWzBdLnJlZmVyZW5jZSwgJ1JSMDM3JywgXG4gICAgdGhpcy5nZXRPdmVyUGF5bWVudFZhbHVlKCkpO1xuICAgIHRoaXMucGF5bWVudFZpZXdTZXJ2aWNlLnBvc3RSZWZ1bmRzUmVhc29uKHJlcXVlc3RCb2R5KS5zdWJzY3JpYmUoXG4gICAgICByZXNwb25zZSA9PiB7XG4gICAgICAgICAgaWYgKEpTT04ucGFyc2UocmVzcG9uc2UpKSB7XG4gICAgICAgICAgICB0aGlzLnZpZXdDb21wU3RhdHVzICA9ICcnO1xuICAgICAgICAgICAgdGhpcy52aWV3U3RhdHVzID0gJ3JlZnVuZGNvbmZpcm1hdGlvbnBhZ2UnO1xuICAgICAgICAgICAgdGhpcy5yZWZ1bmRSZWZlcmVuY2UgPSBKU09OLnBhcnNlKHJlc3BvbnNlKS5yZWZ1bmRfcmVmZXJlbmNlO1xuICAgICAgICAgICAgdGhpcy5yZWZ1bmRBbW91bnQgPSBKU09OLnBhcnNlKHJlc3BvbnNlKS5yZWZ1bmRfYW1vdW50O1xuICAgICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAoZXJyb3I6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IGVycm9yO1xuICAgICAgICB0aGlzLmlzQ29uZmlybWF0aW9uQnRuRGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KVxuICB9XG5cbiAgZ2V0T3ZlclBheW1lbnRWYWx1ZSgpIHtcbiAgICBsZXQgZmVlc092ZXJQYXltZW50ID0gMDtcbiAgICB0aGlzLnBheW1lbnRHcm91cExpc3QuZmVlcy5mb3JFYWNoKGZlZSA9PiB7XG4gICAgICBmZWVzT3ZlclBheW1lbnQgKz0gZmVlLm92ZXJfcGF5bWVudDtcbiAgICB9KTtcbiAgICByZXR1cm4gZmVlc092ZXJQYXltZW50ID4gMCA/IGZlZXNPdmVyUGF5bWVudCA6IHRoaXMucGF5bWVudEdyb3VwTGlzdC5wYXltZW50c1swXS5vdmVyX3BheW1lbnQ7XG5cbiAgfVxufSJdfQ==
|
|
798
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1yZXF1ZXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BobWN0cy9jY3BheS13ZWItY29tcG9uZW50LyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvc2VydmljZS1yZXF1ZXN0L3NlcnZpY2UtcmVxdWVzdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFPbEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRXRFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBRXJGO0lBNEZFLGlDQUNVLG1CQUF3QyxFQUN4QyxrQkFBc0MsRUFDdEMsaUJBQW9DLEVBQ3BDLEVBQXFCLEVBQ3JCLE1BQWM7UUFKZCx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBNUVkLCtCQUEwQixHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBTTdFLGtCQUFhLEdBQVUsRUFBRSxDQUFDO1FBQzFCLGFBQVEsR0FBZSxFQUFFLENBQUM7UUFDMUIsZ0JBQVcsR0FBZSxFQUFFLENBQUM7UUFDN0IsZ0JBQVcsR0FBZSxFQUFFLENBQUM7UUFDN0IsZUFBVSxHQUFpQixFQUFFLENBQUM7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QUFjOztJQUNkLHdDQUF1Qjs7SUFDdkIseURBQXdDOztJQUN4QywyREFBMEM7O0lBQzFDLDZEQUE0Qzs7SUFDNUMsNkRBQTZFOztJQUM3RSwyREFBa0M7O0lBQ2xDLGlEQUF1Qjs7SUFDdkIsa0RBQXdCOztJQUN4Qix3REFBc0M7O0lBQ3RDLGdEQUF1Qjs7Ozs7SUFHckIsc0RBQWdEOzs7OztJQUNoRCxxREFBOEM7Ozs7O0lBQzlDLG9EQUE0Qzs7Ozs7SUFDNUMscUNBQTZCOzs7OztJQUM3Qix5Q0FBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUSElTX0VYUFIgfSBmcm9tICdAYW5ndWxhci9jb21waWxlci9zcmMvb3V0cHV0L291dHB1dF9hc3QnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBheW1lbnRMaWJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9wYXltZW50LWxpYi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSVBheW1lbnQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0lQYXltZW50JztcbmltcG9ydCB7IElSZW1pc3Npb24gfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0lSZW1pc3Npb24nO1xuaW1wb3J0IHsgSVBheW1lbnRWaWV3IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9JUGF5bWVudFZpZXcnO1xuaW1wb3J0IHsgSU9yZGVyUmVmZXJlbmNlRmVlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9JT3JkZXJSZWZlcmVuY2VGZWUnO1xuaW1wb3J0IHsgSUZlZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSUZlZSc7XG5pbXBvcnQgeyBJUGF5bWVudEdyb3VwIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9JUGF5bWVudEdyb3VwJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBQYXltZW50Vmlld1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9wYXltZW50LXZpZXcvcGF5bWVudC12aWV3LnNlcnZpY2UnO1xuaW1wb3J0IHsgT3JkZXJzbGlzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9vcmRlcnNsaXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgSVJlZnVuZENvbnRhY3REZXRhaWxzIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9JUmVmdW5kQ29udGFjdERldGFpbHMnO1xuaW1wb3J0IHsgUG9zdFJlZnVuZFJldHJvUmVtaXNzaW9uIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9Qb3N0UmVmdW5kUmV0cm9SZW1pc3Npb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY3BheS1zZXJ2aWNlLXJlcXVlc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VydmljZS1yZXF1ZXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2VydmljZS1yZXF1ZXN0LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU2VydmljZVJlcXVlc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoJ0xPR0dFRElOVVNFUlJPTEVTJykgTE9HR0VESU5VU0VSUk9MRVM6IHN0cmluZ1tdO1xuICBASW5wdXQoJ3ZpZXdTdGF0dXMnKSB2aWV3U3RhdHVzOiBzdHJpbmc7XG4gIEBJbnB1dCgnb3JkZXJEZXRhaWwnKSBvcmRlckRldGFpbDogYW55W107XG4gIEBJbnB1dCgnb3JkZXJSZWYnKSBvcmRlclJlZjogc3RyaW5nO1xuICBASW5wdXQoJ29yZGVyU3RhdHVzJykgb3JkZXJTdGF0dXM6IHN0cmluZztcbiAgQElucHV0KCdvcmRlclBhcnR5Jykgb3JkZXJQYXJ0eTogc3RyaW5nO1xuICBASW5wdXQoJ29yZGVyQ3JlYXRlZCcpIG9yZGVyQ3JlYXRlZDogRGF0ZTtcbiAgQElucHV0KCdvcmRlckNDREV2ZW50Jykgb3JkZXJDQ0RFdmVudDogc3RyaW5nO1xuICBASW5wdXQoJ29yZGVyRmVlc1RvdGFsJykgb3JkZXJGZWVzVG90YWw6IG51bWJlcjtcbiAgQElucHV0KCdvcmRlclRvdGFsUGF5bWVudHMnKSBvcmRlclRvdGFsUGF5bWVudHM6IG51bWJlcjtcbiAgQElucHV0KCdvcmRlclJlbWlzc2lvblRvdGFsJykgb3JkZXJSZW1pc3Npb25Ub3RhbDogbnVtYmVyO1xuICBASW5wdXQoJ3BheW1lbnRHcm91cExpc3QnKSBwYXltZW50R3JvdXBMaXN0OiBJUGF5bWVudEdyb3VwO1xuICBASW5wdXQoJ3Rha2VQYXltZW50JykgdGFrZVBheW1lbnQ6IGJvb2xlYW47XG4gIEBJbnB1dCgnY2NkQ2FzZU51bWJlcicpIGNjZENhc2VOdW1iZXI6IGJvb2xlYW47XG4gIEBJbnB1dChcImlzU2VydmljZVJlcXVlc3RcIikgaXNTZXJ2aWNlUmVxdWVzdDogc3RyaW5nO1xuICBAT3V0cHV0KCkgZ29Ub1NlcnZpY2VScXVlc3RDb21wb25lbnQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHZpZXdDb21wU3RhdHVzO1xuICBzZXJ2aWNlcmVxdWVzdDogc3RyaW5nO1xuICBwYXltZW50VHlwZTogc3RyaW5nO1xuICBleGNSZWZlcmVuY2U6IHN0cmluZztcbiAgcGF5bWVudEdyb3VwczogYW55W10gPSBbXTtcbiAgcGF5bWVudHM6IElQYXltZW50W10gPSBbXTtcbiAgbm9uUGF5bWVudHM6IElQYXltZW50W10gPSBbXTtcbiAgYWxsUGF5bWVudHM6IElQYXltZW50W10gPSBbXTtcbiAgcmVtaXNzaW9uczogSVJlbWlzc2lvbltdID0gW107XG4gIHBheW1lbnRGZWVzOiBJRmVlW107XG4gIGZlZXM6IGFueTtcbiAgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XG4gIHRvdGFsRmVlczogbnVtYmVyO1xuICB0b3RhbFBheW1lbnRzOiBudW1iZXI7XG4gIHRvdGFsTm9uT2ZmUGF5bWVudHM6IG51bWJlcjtcbiAgdG90YWxSZW1pc3Npb25zOiBudW1iZXI7XG4gIHNlbGVjdGVkT3B0aW9uOiBzdHJpbmc7XG4gIGRjbk51bWJlcjogc3RyaW5nO1xuICBwYXltZW50UmVmOiBzdHJpbmc7XG4gIGlzVHVybk9mZjogYm9vbGVhbjtcbiAgaXNOZXdQY2lwYWxPZmY6IGJvb2xlYW47XG4gIGlzUmVmdW5kUmVtaXNzaW9uOiBib29sZWFuID0gdHJ1ZTtcbiAgaXNPbGRQY2lwYWxPZmY6IGJvb2xlYW47XG4gIGlzU3RyYXRlZ2ljRml4RW5hYmxlOiBib29sZWFuO1xuICBpc0FkZEZlZUJ0bkVuYWJsZWQ6IGJvb2xlYW4gPSB0cnVlO1xuICBpc0V4Y2VwdGlvblJlY29yZDogYm9vbGVhbiA9IGZhbHNlO1xuICBpc1VucHJvY2Vzc2VkUmVjb3JkU2VsZWN0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZXhjZXB0aW9uUmVjb3JkUmVmZXJlbmNlOiBzdHJpbmc7XG4gIGlzQW55RmVlR3JvdXBBdmlsYWJsZTogYm9vbGVhbiA9IHRydWU7XG4gIGlzSGlzdG9yaWNHcm91cEF2YWlsYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBpc0J1bGtTY2FuRW5hYmxlO1xuICBpc1JlbWlzc2lvbnNNYXRjaDogYm9vbGVhbjtcbiAgaXNSZW1vdmVCdG5EaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBmZWVJZDogSUZlZTtcbiAgY2xBbW91bnREdWU6IG51bWJlciA9IDA7XG4gIHVucHJvY2Vzc2VkUmVjb3JkQ291bnQ6IG51bWJlcjtcbiAgaXNGZWVSZWNvcmRzRXhpc3Q6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNHcnBPdXRzdGFuZGluZ0FtdFBvc2l0aXZlOiBib29sZWFuID0gZmFsc2U7XG4gIHRvdGFsUmVmdW5kQW1vdW50OiBOdW1iZXI7XG4gIGNhc2VUeXBlOiBTdHJpbmc7XG4gIGlzQ29uZmlybWF0aW9uQnRuRGlzYWJsZWQ6IGJvb2xlYW47XG4gIHJlZnVuZFJlZmVyZW5jZTogc3RyaW5nO1xuICByZWZ1bmRBbW91bnQ6IHN0cmluZztcbiAgcGF5bWVudDogSVBheW1lbnQ7XG4gIHBheW1lbnRHcm91cDogSVBheW1lbnRHcm91cDtcbiAgcGF5bWVudFZpZXc6IElQYXltZW50VmlldztcblxuICBpc0FkZFJlbWlzc2lvbkVuYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBvcmRlclJlbWlzc2lvbkRldGFpbHM6IGFueVtdID0gW107XG4gIG9yZGVyTGV2ZWxGZWVzOiBJT3JkZXJSZWZlcmVuY2VGZWVbXSA9IFtdO1xuICBjcG9EZXRhaWxzOiBhbnkgPSBudWxsO1xuICBzZXJ2aWNlUmVxdWVzdFZhbHVlOiBzdHJpbmc7XG4gIG9yZGVyQWRkQnRuRW5hYmxlOiBib29sZWFuO1xuICBpc0Zyb21QYXltZW50RGV0YWlsUGFnZTogYm9vbGVhbjtcbiAgY29udGFjdERldGFpbHNPYmo6IElSZWZ1bmRDb250YWN0RGV0YWlsc1xuICBub3RpZmljYXRpb246IGFueTtcbiAgaXNDUE9Eb3duOiBib29sZWFuO1xuICB0ZXN0OiBib29sZWFuO1xuICBpc1BCQTogYm9vbGVhbiA9IGZhbHNlO1xuICBpc0lzc3VlUmVmdW5mQnRuRW5hYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIGlzQWRkUmVtaXNzaW9uQnRuRW5hYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBpc1JlZnVuZFJlbWlzc2lvbkJ0bkVuYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBhbGxvd2VkUm9sZXNUb0FjY2Vzc1JlZnVuZCA9IFsncGF5bWVudHMtcmVmdW5kLWFwcHJvdmVyJywgJ3BheW1lbnRzLXJlZnVuZCddO1xuICBpc0Zyb21TZXJ2aWNlUmVxdWVzdFBhZ2U6IGJvb2xlYW47XG4gIG5hdmlnYXRpb25wYWdlOiBzdHJpbmc7XG4gIHJlbWlzc2lvbkZlZUFtdDogbnVtYmVyO1xuICBpc0NvbnRpbnVlQnRuRGlzYWJsZWQ6IGJvb2xlYW4gPSB0cnVlO1xuICBpc0Z1bGx5UmVmdW5kOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcGF5bWVudExpYkNvbXBvbmVudDogUGF5bWVudExpYkNvbXBvbmVudCxcbiAgICBwcml2YXRlIHBheW1lbnRWaWV3U2VydmljZTogUGF5bWVudFZpZXdTZXJ2aWNlLFxuICAgIHByaXZhdGUgT3JkZXJzbGlzdFNlcnZpY2U6IE9yZGVyc2xpc3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIpIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuaXNUdXJuT2ZmID0gdGhpcy5wYXltZW50TGliQ29tcG9uZW50LklTVFVSTk9GRjtcbiAgICB0aGlzLmlzU2VydmljZVJlcXVlc3QgPSAnZmFsc2UnO1xuICAgIGlmICh0aGlzLnZpZXdTdGF0dXMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy52aWV3U3RhdHVzID0gdGhpcy5wYXltZW50TGliQ29tcG9uZW50LnZpZXdOYW1lO1xuICAgIH1cbiAgICBpZih0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuaXNGcm9tU2VydmljZVJlcXVlc3RQYWdlICYmIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5pc0Zyb21QYXltZW50RGV0YWlsUGFnZSkge1xuICAgICAgaWYodGhpcy5wYXltZW50TGliQ29tcG9uZW50LmlzRnJvbVBheW1lbnREZXRhaWxQYWdlICYmIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5pc0Zyb21TZXJ2aWNlUmVxdWVzdFBhZ2UpIHtcbiAgICAgIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2UuZ2V0b3JkZXJSZWZzKCkuc3Vic2NyaWJlKChkYXRhKSA9PiB0aGlzLm9yZGVyUmVmID0gZGF0YSk7XG4gICAgICB0aGlzLk9yZGVyc2xpc3RTZXJ2aWNlLmdldG9yZGVyQ0NERXZlbnRzKCkuc3Vic2NyaWJlKChkYXRhKSA9PiB0aGlzLm9yZGVyQ0NERXZlbnQgPSBkYXRhKTtcbiAgICAgIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2UuZ2V0b3JkZXJDcmVhdGVkcygpLnN1YnNjcmliZSgoZGF0YSkgPT4gdGhpcy5vcmRlckNyZWF0ZWQgPSBkYXRhKTtcbiAgICAgIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2UuZ2V0b3JkZXJEZXRhaWwoKS5zdWJzY3JpYmUoKGRhdGEpID0+IHRoaXMub3JkZXJEZXRhaWwgPSBkYXRhKTtcbiAgICAgIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2UuZ2V0b3JkZXJQYXJ0eXMoKS5zdWJzY3JpYmUoKGRhdGEpID0+IHRoaXMub3JkZXJQYXJ0eSA9IGRhdGEpO1xuICAgICAgdGhpcy5PcmRlcnNsaXN0U2VydmljZS5nZXRvcmRlclJlbWlzc2lvblRvdGFscygpLnN1YnNjcmliZSgoZGF0YSkgPT4gdGhpcy5vcmRlclJlbWlzc2lvblRvdGFsID0gZGF0YSk7XG4gICAgICB0aGlzLk9yZGVyc2xpc3RTZXJ2aWNlLmdldG9yZGVyRmVlc1RvdGFscygpLnN1YnNjcmliZSgoZGF0YSkgPT4gdGhpcy5vcmRlckZlZXNUb3RhbCA9IGRhdGEpO1xuICAgICAgdGhpcy5PcmRlcnNsaXN0U2VydmljZS5nZXRvb3JkZXJUb3RhbFBheW1lbnRzcygpLnN1YnNjcmliZSgoZGF0YSkgPT4gdGhpcy5vcmRlclRvdGFsUGF5bWVudHMgPSBkYXRhKTtcbiAgICB9XG4gICBcbiAgICBcbiAgICB9XG4gICAgaWYodGhpcy5wYXltZW50TGliQ29tcG9uZW50LmlzRnJvbVNlcnZpY2VSZXF1ZXN0UGFnZSAmJiB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuVEFLRVBBWU1FTlQpIHtcbiAgICAgIHRoaXMuaXNTZXJ2aWNlUmVxdWVzdCA9ICdmYWxzZSc7XG4gICAgfVxuXG5cbiAgfVxuICBnb1RvU2VydmljZVJlcXVlc3RQYWdlKCkge1xuICAgIHRoaXMuZ29Ub1NlcnZpY2VScXVlc3RDb21wb25lbnQuZW1pdCgpO1xuICB9XG5cbiAgZ29Ub0Nhc2VUcmFuc2F0aW9uUGFnZShldmVudDogYW55KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLk9yZGVyc2xpc3RTZXJ2aWNlLnNldG5hdmlnYXRpb25QYWdlKCdzZXJ2aWNlcmVxdWVzdHBhZ2UnKTtcbiAgICB0aGlzLk9yZGVyc2xpc3RTZXJ2aWNlLnNldGlzRnJvbVNlcnZpY2VSZXF1ZXN0UGFnZShmYWxzZSk7XG4gICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LnZpZXdOYW1lID0gJ2Nhc2UtdHJhbnNhY3Rpb25zJztcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuSVNCU0VOQUJMRSA9IHRydWU7XG4gICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LmlzVGFrZVBheW1lbnQgPSB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuVEFLRVBBWU1FTlQ7XG4gICAgaWYgKHRoaXMudGFrZVBheW1lbnQpIHtcbiAgICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5pc1Rha2VQYXltZW50ID0gdGhpcy50YWtlUGF5bWVudDtcbiAgICB9XG4gICAgLy90aGlzLnBheW1lbnRMaWJDb21wb25lbnQuU0VSVklDRVJFUVVFU1QgPSBcInRydWVcIjtcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuaXNGcm9tU2VydmljZVJlcXVlc3RQYWdlID0gZmFsc2U7XG4gICAgaWYodGhpcy5pc1NlcnZpY2VSZXF1ZXN0ICE9PSAnZmFsc2UnKSB7XG4gICAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuaXNGcm9tU2VydmljZVJlcXVlc3RQYWdlID0gdHJ1ZTtcbiAgICB9XG4gICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LmlzRnJvbVJlZnVuZFN0YXR1c1BhZ2UgPSBmYWxzZTtcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQudmlld05hbWUgPSAnY2FzZS10cmFuc2FjdGlvbnMnO1xuICAgIHRoaXMucmVzZXRPcmRlckRhdGEoKTtcbiAgIGxldCAgcGFydFVybCA9IHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5JU0JTRU5BQkxFID8gJyZpc0J1bGtTY2FubmluZz1FbmFibGUnIDogJyZpc0J1bGtTY2FubmluZz1EaXNhYmxlJztcbiAgICBwYXJ0VXJsICs9IHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5JU1RVUk5PRkYgPyAnJmlzVHVybk9mZj1FbmFibGUnIDogJyZpc1R1cm5PZmY9RGlzYWJsZSc7XG4gICAgaWYodGhpcy5pc1NlcnZpY2VSZXF1ZXN0ID09PSAnZmFsc2UnKSB7XG4gICAgICBwYXJ0VXJsICs9IHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5UQUtFUEFZTUVOVCA/ICcmdGFrZVBheW1lbnQ9dHJ1ZScgOiAnJnRha2VQYXltZW50PWZhbHNlJztcbiAgICB9XG4gICAgcGFydFVybCArPSB0aGlzLmlzU3RyYXRlZ2ljRml4RW5hYmxlID8gJyZpc1N0Rml4RW5hYmxlPUVuYWJsZScgOiAnJmlzU3RGaXhFbmFibGU9RGlzYWJsZSc7XG4gICAgcGFydFVybCArPSB0aGlzLmlzU2VydmljZVJlcXVlc3QgIT09ICdmYWxzZScgPyAnJnNlcnZpY2VyZXF1ZXN0PXRydWUnIDogJyZzZXJ2aWNlcmVxdWVzdD1mYWxzZSc7XG4gICAgcGFydFVybCArPSBgJmNhc2VUeXBlPSR7dGhpcy5wYXltZW50TGliQ29tcG9uZW50LkNBU0VUWVBFfWA7XG4gICAgcGFydFVybCArPSB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuSVNORVdQQ0lQQUxPRkYgPyAnJmlzTmV3UGNpcGFsT2ZmPUVuYWJsZScgOiAnJmlzTmV3UGNpcGFsT2ZmPURpc2FibGUnO1xuICAgIHBhcnRVcmwgKz0gdGhpcy5wYXltZW50TGliQ29tcG9uZW50LklTT0xEUENJUEFMT0ZGID8gJyZpc09sZFBjaXBhbE9mZj1FbmFibGUnIDogJyZpc09sZFBjaXBhbE9mZj1EaXNhYmxlJztcbiAgICBjb25zdCB1cmwgPSBgL3BheW1lbnQtaGlzdG9yeS8ke3RoaXMucGF5bWVudExpYkNvbXBvbmVudC5DQ0RfQ0FTRV9OVU1CRVJ9P3ZpZXc9Y2FzZS10cmFuc2FjdGlvbnMmc2VsZWN0ZWRPcHRpb249JHt0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuU0VMRUNURURfT1BUSU9OfSR7cGFydFVybH1gO1xuICAgICAgdGhpcy5yb3V0ZXIucm91dGVSZXVzZVN0cmF0ZWd5LnNob3VsZFJldXNlUm91dGUgPSAoKSA9PiBmYWxzZTtcbiAgICAgIHRoaXMucm91dGVyLm9uU2FtZVVybE5hdmlnYXRpb24gPSAncmVsb2FkJztcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwodXJsKTtcbiAgfVxuXG4gIGFkZFJlbWlzc2lvbihmZWU6IElGZWUpIHtcbiAgICBpZih0aGlzLmNoa0lzQWRkUmVtaXNzaW9uQnRuRW5hYmxlKGZlZSkpIHtcbiAgICB0aGlzLmZlZUlkID0gZmVlO1xuICAgIHRoaXMudmlld1N0YXR1cyA9ICdhZGRyZW1pc3Npb24nO1xuICAgIHRoaXMucGF5bWVudCA9IHRoaXMub3JkZXJEZXRhaWxbMF0ucGF5bWVudHNbMF07XG4gICAgdGhpcy5wYXltZW50Vmlld1NlcnZpY2UuZ2V0QXBwb3J0aW9uUGF5bWVudERldGFpbHModGhpcy5vcmRlckRldGFpbFswXS5wYXltZW50c1swXS5yZWZlcmVuY2UpLnN1YnNjcmliZShcbiAgICAgIHBheW1lbnRHcm91cCA9PiB7XG4gICAgICAgIHRoaXMucGF5bWVudEdyb3VwID0gcGF5bWVudEdyb3VwO1xuXG4gICAgICAgIHRoaXMucGF5bWVudEdyb3VwLnBheW1lbnRzID0gdGhpcy5wYXltZW50R3JvdXAucGF5bWVudHMuZmlsdGVyXG4gICAgICAgICAgKHBheW1lbnRHcm91cE9iaiA9PiBwYXltZW50R3JvdXBPYmpbJ3JlZmVyZW5jZSddLmluY2x1ZGVzKHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5wYXltZW50UmVmZXJlbmNlKSk7XG4gICAgICAgIHRoaXMucGF5bWVudCA9IHRoaXMucGF5bWVudEdyb3VwLnBheW1lbnRzWzBdO1xuICAgICAgIFxuICAgICAgICAgIC8vICBjb25zdCBwYXltZW50QWxsb2NhdGlvbiA9IHRoaXMucGF5bWVudEdyb3VwLnBheW1lbnRzWzBdLnBheW1lbnRfYWxsb2NhdGlvbjtcbiAgICAgICAgICAvLyAgdGhpcy5pc1N0YXR1c0FsbG9jYXRlZCA9IHBheW1lbnRBbGxvY2F0aW9uLmxlbmd0aCA+IDAgJiYgcGF5bWVudEFsbG9jYXRpb25bMF0uYWxsb2NhdGlvbl9zdGF0dXMgPT09ICdBbGxvY2F0ZWQnIHx8IHBheW1lbnRBbGxvY2F0aW9uLmxlbmd0aCA9PT0gMDtcbiAgICAgICAgXG4gICAgICB9LFxuICAgICAgKGVycm9yOiBhbnkpID0+IHRoaXMuZXJyb3JNZXNzYWdlID0gZXJyb3IucmVwbGFjZSgvXCIvZyxcIlwiKVxuICAgICk7XG4gIH1cbiAgfVxuXG4gIGFkZFJlZnVuZEZvclJlbWlzc2lvbihwYXltZW50OiBJUGF5bWVudCwgcmVtaXNzaW9uOiBJUmVtaXNzaW9uW10sZmVlczphbnkpIHtcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuaXNGcm9tU2VydmljZVJlcXVlc3RQYWdlID0gdHJ1ZTtcbiAgICB0aGlzLnBheW1lbnRWaWV3U2VydmljZS5nZXRBcHBvcnRpb25QYXltZW50RGV0YWlscyhwYXltZW50LnJlZmVyZW5jZSkuc3Vic2NyaWJlKFxuICAgICAgcGF5bWVudEdyb3VwID0+IHtcbiAgICAgICAgdGhpcy5wYXltZW50R3JvdXAgPSBwYXltZW50R3JvdXA7XG4gICAgICAgIHRoaXMucGF5bWVudEdyb3VwLnBheW1lbnRzID0gdGhpcy5wYXltZW50R3JvdXAucGF5bWVudHMuZmlsdGVyXG4gICAgICAgICAgKHBheW1lbnRHcm91cE9iaiA9PiBwYXltZW50R3JvdXBPYmoucmVmZXJlbmNlID09PSBwYXltZW50LnJlZmVyZW5jZSk7XG4gICAgICAgIHRoaXMucGF5bWVudCA9IHRoaXMucGF5bWVudEdyb3VwLnBheW1lbnRzWzBdO1xuICAgICAgICB0aGlzLnJlbWlzc2lvbnMgPSByZW1pc3Npb247XG4gICAgICAgIHRoaXMucmVtaXNzaW9uRmVlQW10ID0gZmVlcy5maWx0ZXIoZGF0YT0+ZGF0YS5jb2RlID09PSB0aGlzLnJlbWlzc2lvbnNbJ2ZlZV9jb2RlJ10pWzBdLm5ldF9hbW91bnQ7XG4gICAgICAgIHRoaXMudmlld1N0YXR1cyA9ICdhZGRyZWZ1bmRmb3JyZW1pc3Npb24nO1xuICAgICAgICAvLyBjb25zdCBwYXltZW50QWxsb2NhdGlvbiA9IHRoaXMucGF5bWVudEdyb3VwLnBheW1lbnRzWzBdLnBheW1lbnRfYWxsb2NhdGlvbjtcbiAgICAgICAgLy8gdGhpcy5pc1N0YXR1c0FsbG9jYXRlZCA9IHBheW1lbnRBbGxvY2F0aW9uLmxlbmd0aCA+IDAgJiYgcGF5bWVudEFsbG9jYXRpb25bMF0uYWxsb2NhdGlvbl9zdGF0dXMgPT09ICdBbGxvY2F0ZWQnIHx8IHBheW1lbnRBbGxvY2F0aW9uLmxlbmd0aCA9PT0gMDtcbiAgICAgIH0sXG4gICAgICAoZXJyb3I6IGFueSkgPT4gdGhpcy5lcnJvck1lc3NhZ2UgPSBlcnJvclxuICAgICk7XG4gIH1cbiAgY2FuY2VsUmVtb3ZhbCgpIHtcbiAgICB0aGlzLnZpZXdTdGF0dXMgPSAnbWFpbic7XG4gIH1cblxuICByZW1vdmVGZWUoZmVlOiBhbnkpIHtcbiAgICB0aGlzLmlzUmVtb3ZlQnRuRGlzYWJsZWQgPSB0cnVlO1xuICAgIHRoaXMucGF5bWVudFZpZXdTZXJ2aWNlLmRlbGV0ZUZlZUZyb21QYXltZW50R3JvdXAoZmVlKS5zdWJzY3JpYmUoXG4gICAgICAoc3VjY2VzczogYW55KSA9PiB7XG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcbiAgICAgIH0sXG4gICAgICAoZXJyb3I6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IGVycm9yO1xuICAgICAgICB0aGlzLmlzUmVtb3ZlQnRuRGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgaXNzdWVSZWZ1bmQocGF5bWVudDogSVBheW1lbnQpIHtcbiAgICBpZiAocGF5bWVudCAhPT0gbnVsbCAmJiBwYXltZW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmKCB0aGlzLmNoa0lzSXNzdWVSZWZ1bmRCdG5FbmFibGUocGF5bWVudCkpIHtcbiAgICAgICAgdGhpcy5wYXltZW50Vmlld1NlcnZpY2UuZ2V0QXBwb3J0aW9uUGF5bWVudERldGFpbHMocGF5bWVudC5yZWZlcmVuY2UpLnN1YnNjcmliZShcbiAgICAgICAgcGF5bWVudEdyb3VwID0+IHtcbiAgICAgICAgICBwYXltZW50R3JvdXAucGF5bWVudHMgPSBwYXltZW50R3JvdXAucGF5bWVudHMuZmlsdGVyXG4gICAgICAgICAgKHBheW1lbnRHcm91cE9iaiA9PiBwYXltZW50R3JvdXBPYmpbJ3JlZmVyZW5jZSddLmluY2x1ZGVzKHBheW1lbnQucmVmZXJlbmNlKSk7XG4gICAgICAgICAgaWYocGF5bWVudC5vdmVyX3BheW1lbnQgPiAwKSB7XG4gICAgICAgICAgICB0aGlzLnZpZXdTdGF0dXMgPSAnJztcbiAgICAgICAgICAgIHRoaXMucGF5bWVudCA9IHBheW1lbnQ7XG4gICAgICAgICAgICB0aGlzLnBheW1lbnRHcm91cExpc3QgPSBwYXltZW50R3JvdXA7XG4gICAgICAgICAgICB0aGlzLnZpZXdDb21wU3RhdHVzICA9ICdvdmVycGF5bWVudCc7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudmlld1N0YXR1cyA9ICdpc3N1ZXJlZnVuZCc7XG4gICAgICAgICAgICB0aGlzLnZpZXdDb21wU3RhdHVzID0gJyc7XG4gICAgICAgICAgICB0aGlzLnBheW1lbnRGZWVzID0gcGF5bWVudEdyb3VwLmZlZXM7XG4gICAgICAgICAgICB0aGlzLnBheW1lbnQgPSBwYXltZW50O1xuICAgICAgICAgICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LmlzRnJvbVNlcnZpY2VSZXF1ZXN0UGFnZSA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmlzUmVmdW5kUmVtaXNzaW9uID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIChlcnJvcjogYW55KSA9PiB0aGlzLmVycm9yTWVzc2FnZSA9IGVycm9yXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZ29Ub1BheWVtZW50VmlldyhwYXltZW50R3JvdXBSZWZlcmVuY2U6IHN0cmluZywgcGF5bWVudFJlZmVyZW5jZTogc3RyaW5nLCBwYXltZW50TWV0aG9kOiBzdHJpbmcpIHtcbiAgICB0aGlzLmdvVG9QYXltZW50Vmlld0NvbXBvbmVudCh7IHBheW1lbnRHcm91cFJlZmVyZW5jZSwgcGF5bWVudFJlZmVyZW5jZSwgcGF5bWVudE1ldGhvZCB9KTtcbiAgfVxuXG4gIGdvVG9QYXltZW50Vmlld0NvbXBvbmVudChwYXltZW50R3JvdXA6IGFueSkge1xuICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5wYXltZW50TWV0aG9kID0gcGF5bWVudEdyb3VwLnBheW1lbnRNZXRob2Q7XG4gICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LmlzRnJvbVNlcnZpY2VSZXF1ZXN0UGFnZSA9IHRydWU7XG4gICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LnBheW1lbnRHcm91cFJlZmVyZW5jZSA9IHBheW1lbnRHcm91cC5wYXltZW50R3JvdXBSZWZlcmVuY2U7XG4gICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LnBheW1lbnRSZWZlcmVuY2UgPSBwYXltZW50R3JvdXAucGF5bWVudFJlZmVyZW5jZTtcbiAgICB0aGlzLk9yZGVyc2xpc3RTZXJ2aWNlLnNldE9yZGVyUmVmKHRoaXMub3JkZXJSZWYpO1xuICAgIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2Uuc2V0b3JkZXJDQ0RFdmVudCh0aGlzLm9yZGVyQ0NERXZlbnQpO1xuICAgIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2Uuc2V0b3JkZXJDcmVhdGVkKHRoaXMub3JkZXJDcmVhdGVkKTtcbiAgICB0aGlzLk9yZGVyc2xpc3RTZXJ2aWNlLnNldG9yZGVyRGV0YWlsKHRoaXMub3JkZXJEZXRhaWwpO1xuICAgIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2Uuc2V0b3JkZXJQYXJ0eSh0aGlzLm9yZGVyUGFydHkpO1xuICAgIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2Uuc2V0b3JkZXJUb3RhbFBheW1lbnRzKHRoaXMub3JkZXJUb3RhbFBheW1lbnRzKTtcbiAgICB0aGlzLk9yZGVyc2xpc3RTZXJ2aWNlLnNldG9yZGVyUmVtaXNzaW9uVG90YWwodGhpcy5vcmRlclJlbWlzc2lvblRvdGFsKTtcbiAgICB0aGlzLk9yZGVyc2xpc3RTZXJ2aWNlLnNldG9yZGVyRmVlc1RvdGFsKHRoaXMub3JkZXJGZWVzVG90YWwpO1xuICAgIHRoaXMudmlld1N0YXR1cyA9ICdwYXltZW50LXZpZXcnO1xuICB9XG5cbiAgY2hrSXNJc3N1ZVJlZnVuZEJ0bkVuYWJsZShwYXltZW50OiBJUGF5bWVudCk6IGJvb2xlYW4ge1xuICAgIGlmIChwYXltZW50ICE9PSBudWxsICYmIHBheW1lbnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHBheW1lbnQuaXNzdWVfcmVmdW5kICYmIHBheW1lbnQucmVmdW5kX2VuYWJsZVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgY2hrSXNBZGRSZWZ1bmRCdG5FbmFibGUocmVtaXNzaW9uOiBJUmVtaXNzaW9uKTogYm9vbGVhbiB7XG4gICAgaWYgKHJlbWlzc2lvbiAhPT0gbnVsbCAmJiByZW1pc3Npb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHJlbWlzc2lvbi5hZGRfcmVmdW5kO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgY2hrSXNBZGRSZW1pc3Npb25CdG5FbmFibGUoZmVlOiBJRmVlKTogYm9vbGVhbiB7XG4gICAgaWYgKGZlZSAhPT0gbnVsbCAmJiBmZWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGZlZS5hZGRfcmVtaXNzaW9uICYmIGZlZS5yZW1pc3Npb25fZW5hYmxlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG4gIH1cbiAgcmVzZXRPcmRlckRhdGEoKSB7XG4gICAgdGhpcy5PcmRlcnNsaXN0U2VydmljZS5zZXRPcmRlclJlZihudWxsKTtcbiAgICB0aGlzLk9yZGVyc2xpc3RTZXJ2aWNlLnNldG9yZGVyQ0NERXZlbnQobnVsbCk7XG4gICAgdGhpcy5PcmRlcnNsaXN0U2VydmljZS5zZXRvcmRlckNyZWF0ZWQobnVsbCk7XG4gICAgdGhpcy5PcmRlcnNsaXN0U2VydmljZS5zZXRvcmRlckRldGFpbChudWxsKTtcbiAgICB0aGlzLk9yZGVyc2xpc3RTZXJ2aWNlLnNldG9yZGVyUGFydHkobnVsbCk7XG4gICAgdGhpcy5PcmRlcnNsaXN0U2VydmljZS5zZXRvcmRlclRvdGFsUGF5bWVudHMobnVsbCk7XG4gICAgdGhpcy5PcmRlcnNsaXN0U2VydmljZS5zZXRvcmRlclJlbWlzc2lvblRvdGFsKG51bGwpO1xuICAgIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2Uuc2V0b3JkZXJGZWVzVG90YWwobnVsbCk7XG4gIH1cblxuICBzZWxlY3RQeW1lbnRPcHRpb24ocGF5bWVudFR5cGU6IHN0cmluZykge1xuICAgIHRoaXMucGF5bWVudFR5cGUgPSBwYXltZW50VHlwZTtcbiAgICB0aGlzLmlzQ29udGludWVCdG5EaXNhYmxlZCA9IGZhbHNlO1xuICB9XG4gIGdvVG9QYXltZW50Vmlld0NvbXAoKSB7XG4gICAgdGhpcy52aWV3Q29tcFN0YXR1cyAgPSAnJztcbiAgICB0aGlzLnZpZXdTdGF0dXMgPSAncGF5bWVudHZpZXcnO1xuICB9XG4gIGNvbnRpbnVlUGF5bWVudChwYXltZW50Z3JwOiBJUGF5bWVudEdyb3VwKSB7XG4gICAgXG4gICAgaWYgKHRoaXMucGF5bWVudFR5cGUgPT09ICdvcCcpIHtcbiAgICAgIHRoaXMuaXNGdWxseVJlZnVuZCA9IGZhbHNlXG4gICAgICB0aGlzLnZpZXdTdGF0dXMgPSAnJztcbiAgICAgIHRoaXMudmlld0NvbXBTdGF0dXMgID0gJ292ZXJQYXltZW50QWRkcmVzc0NhcHR1cmUnO1xuICAgIH0gZWxzZSBpZih0aGlzLnBheW1lbnRUeXBlID09PSAnZnAnKSB7XG4gICAgICB0aGlzLmlzRnVsbHlSZWZ1bmQgPSB0cnVlXG4gICAgICB0aGlzLnBheW1lbnRHcm91cExpc3QgPSBwYXltZW50Z3JwO1xuICAgICAgdGhpcy52aWV3U3RhdHVzID0gJ2lzc3VlcmVmdW5kJztcbiAgICAgIHRoaXMudmlld0NvbXBTdGF0dXMgPSBcIlwiO1xuICAgICAgdGhpcy5pc1JlZnVuZFJlbWlzc2lvbiA9IHRydWU7XG4gICAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuaXNGcm9tUGF5bWVudERldGFpbFBhZ2UgPSB0cnVlO1xuICAgICAgdGhpcy5pc0Zyb21QYXltZW50RGV0YWlsUGFnZSA9IHRydWU7XG4gICAgICB0aGlzLmlzRnJvbVNlcnZpY2VSZXF1ZXN0UGFnZSA9IHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5pc0Zyb21TZXJ2aWNlUmVxdWVzdFBhZ2U7XG4gICAgfVxuICB9XG4gIGdldENvbnRhY3REZXRhaWxzKG9iajpJUmVmdW5kQ29udGFjdERldGFpbHMpIHtcbiAgICB0aGlzLmNvbnRhY3REZXRhaWxzT2JqID0gb2JqO1xuICAgIHRoaXMudmlld1N0YXR1cyA9ICcnO1xuICAgIHRoaXMudmlld0NvbXBTdGF0dXMgPSAnb3ZlcnBheW1lbnRjaGVja2FuZGFuc3dlcic7XG4gIH1cbiAgZ290b1BheW1lbnRTZWxlY3RQYWdlKGV2ZW50OiBFdmVudCkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy52aWV3U3RhdHVzID0gJyc7XG4gICAgdGhpcy52aWV3Q29tcFN0YXR1cyAgPSAnb3ZlcnBheW1lbnQnO1xuICB9XG4gIGdvdG9BZGRyZXNzUGFnZShub3RlPzogSVJlZnVuZENvbnRhY3REZXRhaWxzKSB7XG4gICAgaWYgKG5vdGUpIHtcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uID0geyBjb250YWN0X2RldGFpbHM6IG5vdGUsIG5vdGlmaWNhdGlvbl90eXBlOiBub3RlLm5vdGlmaWNhdGlvbl90eXBlIH07XG4gICAgfVxuICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJyc7XG4gICAgdGhpcy52aWV3U3RhdHVzID0gJyc7XG4gICAgdGhpcy52aWV3Q29tcFN0YXR1cyA9ICdvdmVyUGF5bWVudEFkZHJlc3NDYXB0dXJlJztcbiAgfVxuICBwcm9jZXNzUmVmdW5kKCkge1xuICAgIHRoaXMuaXNDb25maXJtYXRpb25CdG5EaXNhYmxlZCA9IHRydWU7XG4gICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnJztcbiAgICBjb25zdCBvYmogPSB0aGlzLnBheW1lbnRHcm91cExpc3QuZmVlc1swXTtcbiAgICB0aGlzLmZlZXMgID0gW3sgaWQ6IG9iai5pZCwgXG4gICAgICBjb2RlOiBvYmouY29kZSxcbiAgICAgIHZlcnNpb246b2JqLnZlcnNpb24sIFxuICAgICAgYXBwb3J0aW9uX2Ftb3VudDogb2JqLmFwcG9ydGlvbl9hbW91bnQsXG4gICAgICBjYWxjdWxhdGVkX2Ftb3VudDogb2JqLmNhbGN1bGF0ZWRfYW1vdW50LFxuICAgICAgdXBkYXRlZF92b2x1bWU6IG9iai51cGRhdGVkX3ZvbHVtZSA/IG9iai51cGRhdGVkX3ZvbHVtZSA6IG9iai52b2x1bWUsXG4gICAgICB2b2x1bWU6IG9iai52b2x1bWUsXG4gICAgICByZWZ1bmRfYW1vdW50OiB0aGlzLmdldE92ZXJQYXltZW50VmFsdWUoKSB9XTtcbiAgICBjb25zdCByZXF1ZXN0Qm9keSA9IG5ldyBQb3N0UmVmdW5kUmV0cm9SZW1pc3Npb24odGhpcy5jb250YWN0RGV0YWlsc09iaix0aGlzLmZlZXMsIHRoaXMucGF5bWVudEdyb3VwTGlzdC5wYXltZW50c1swXS5yZWZlcmVuY2UsICdSUjAzNycsIFxuICAgIHRoaXMuZ2V0T3ZlclBheW1lbnRWYWx1ZSgpLCAnb3AnKTtcbiAgICB0aGlzLnBheW1lbnRWaWV3U2VydmljZS5wb3N0UmVmdW5kc1JlYXNvbihyZXF1ZXN0Qm9keSkuc3Vic2NyaWJlKFxuICAgICAgcmVzcG9uc2UgPT4ge1xuICAgICAgICAgIGlmIChKU09OLnBhcnNlKHJlc3BvbnNlKSkge1xuICAgICAgICAgICAgdGhpcy52aWV3Q29tcFN0YXR1cyAgPSAnJztcbiAgICAgICAgICAgIHRoaXMudmlld1N0YXR1cyA9ICdyZWZ1bmRjb25maXJtYXRpb25wYWdlJztcbiAgICAgICAgICAgIHRoaXMucmVmdW5kUmVmZXJlbmNlID0gSlNPTi5wYXJzZShyZXNwb25zZSkucmVmdW5kX3JlZmVyZW5jZTtcbiAgICAgICAgICAgIHRoaXMucmVmdW5kQW1vdW50ID0gSlNPTi5wYXJzZShyZXNwb25zZSkucmVmdW5kX2Ftb3VudDtcbiAgICAgICAgICB9XG4gICAgICB9LFxuICAgICAgKGVycm9yOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSBlcnJvcjtcbiAgICAgICAgdGhpcy5pc0NvbmZpcm1hdGlvbkJ0bkRpc2FibGVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfSlcbiAgfVxuXG4gIGdldE92ZXJQYXltZW50VmFsdWUoKSB7XG4gICAgbGV0IGZlZXNPdmVyUGF5bWVudCA9IDA7XG4gICAgdGhpcy5wYXltZW50R3JvdXBMaXN0LmZlZXMuZm9yRWFjaChmZWUgPT4ge1xuICAgICAgZmVlc092ZXJQYXltZW50ICs9IGZlZS5vdmVyX3BheW1lbnQ7XG4gICAgfSk7XG4gICAgcmV0dXJuIGZlZXNPdmVyUGF5bWVudCA+IDAgPyBmZWVzT3ZlclBheW1lbnQgOiB0aGlzLnBheW1lbnRHcm91cExpc3QucGF5bWVudHNbMF0ub3Zlcl9wYXltZW50O1xuXG4gIH1cbn0iXX0=
|
|
@@ -3,12 +3,13 @@
|
|
|
3
3
|
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
4
|
*/
|
|
5
5
|
var PostRefundRetroRemission = /** @class */ (function () {
|
|
6
|
-
function PostRefundRetroRemission(contact_details, fees, payment_reference, refund_reason, total_refund_amount) {
|
|
6
|
+
function PostRefundRetroRemission(contact_details, fees, payment_reference, refund_reason, total_refund_amount, is_over_payment) {
|
|
7
7
|
this.contact_details = contact_details;
|
|
8
8
|
this.fees = fees;
|
|
9
9
|
this.payment_reference = payment_reference;
|
|
10
10
|
this.refund_reason = refund_reason;
|
|
11
11
|
this.total_refund_amount = total_refund_amount;
|
|
12
|
+
this.is_over_payment = is_over_payment === 'op';
|
|
12
13
|
}
|
|
13
14
|
return PostRefundRetroRemission;
|
|
14
15
|
}());
|
|
@@ -25,6 +26,8 @@ if (false) {
|
|
|
25
26
|
/** @type {?} */
|
|
26
27
|
PostRefundRetroRemission.prototype.fees;
|
|
27
28
|
/** @type {?} */
|
|
29
|
+
PostRefundRetroRemission.prototype.is_over_payment;
|
|
30
|
+
/** @type {?} */
|
|
28
31
|
PostRefundRetroRemission.prototype.contact_details;
|
|
29
32
|
}
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUG9zdFJlZnVuZFJldHJvUmVtaXNzaW9uLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGhtY3RzL2NjcGF5LXdlYi1jb21wb25lbnQvIiwic291cmNlcyI6WyJsaWIvaW50ZXJmYWNlcy9Qb3N0UmVmdW5kUmV0cm9SZW1pc3Npb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUdBO0lBU0ksa0NBQVksZUFBbUIsRUFBQyxJQUFXLEVBQUUsaUJBQTBCLEVBQUMsYUFBb0IsRUFBRSxtQkFBMEIsRUFBRSxlQUF1QjtRQUMvSSxJQUFJLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQztRQUN2QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsaUJBQWlCLEdBQUUsaUJBQWlCLENBQUM7UUFDMUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7UUFDcEMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLG1CQUFtQixDQUFDO1FBQzlDLElBQUksQ0FBQyxlQUFlLEdBQUcsZUFBZSxLQUFLLElBQUksQ0FBQztJQUNsRCxDQUFDO0lBQ0wsK0JBQUM7QUFBRCxDQUFDLEFBakJELElBaUJDOzs7O0lBaEJDLG1EQUF3Qjs7SUFDeEIscURBQTBCOztJQUMxQixpREFBc0I7O0lBQ3RCLHVEQUF5Qjs7SUFDekIsd0NBQVk7O0lBQ1osbURBQXlCOztJQUN6QixtREFBc0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJRmVlIH0gZnJvbSBcIi4vSUZlZVwiO1xuaW1wb3J0IHsgSVJlZnVuZENvbnRhY3REZXRhaWxzIH0gZnJvbSBcIi4vSVJlZnVuZENvbnRhY3REZXRhaWxzXCI7XG5cbmV4cG9ydCBjbGFzcyBQb3N0UmVmdW5kUmV0cm9SZW1pc3Npb24ge1xuICBjY2RfY2FzZV9udW1iZXI6IHN0cmluZztcbiAgcGF5bWVudF9yZWZlcmVuY2U6IHN0cmluZztcbiAgcmVmdW5kX3JlYXNvbjogc3RyaW5nO1xuICB0b3RhbF9yZWZ1bmRfYW1vdW50OiBhbnk7XG4gIGZlZXM6IGFueVtdO1xuICBpc19vdmVyX3BheW1lbnQ6IGJvb2xlYW47XG4gIGNvbnRhY3RfZGV0YWlsczogSVJlZnVuZENvbnRhY3REZXRhaWxzXG4gIFxuICAgIGNvbnN0cnVjdG9yKGNvbnRhY3RfZGV0YWlsczphbnksZmVlczogYW55W10sIHBheW1lbnRfcmVmZXJlbmNlIDogc3RyaW5nLHJlZnVuZF9yZWFzb246c3RyaW5nLCB0b3RhbF9yZWZ1bmRfYW1vdW50IDogIGFueSwgaXNfb3Zlcl9wYXltZW50OiBzdHJpbmcgKSB7XG4gICAgICB0aGlzLmNvbnRhY3RfZGV0YWlscyA9IGNvbnRhY3RfZGV0YWlscztcbiAgICAgIHRoaXMuZmVlcyA9IGZlZXM7XG4gICAgICB0aGlzLnBheW1lbnRfcmVmZXJlbmNlPSBwYXltZW50X3JlZmVyZW5jZTtcbiAgICAgIHRoaXMucmVmdW5kX3JlYXNvbiA9IHJlZnVuZF9yZWFzb247XG5cdCAgICB0aGlzLnRvdGFsX3JlZnVuZF9hbW91bnQgPSB0b3RhbF9yZWZ1bmRfYW1vdW50O1xuICAgICAgdGhpcy5pc19vdmVyX3BheW1lbnQgPSBpc19vdmVyX3BheW1lbnQgPT09ICdvcCc7XG4gICAgfSBcbn0iXX0=
|