@hitsoft/e-donusum 100.1.2-Edo-Test → 100.1.4-Edo-Test
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/esm2020/lib/business-partners/business-partner/components/business-partner.component.mjs +59 -12
- package/esm2020/lib/components/hit-business-partners/hit-business-partner.component.mjs +57 -10
- package/esm2020/lib/components/hit-inbound-invoices/hit-inbound-invoice.component.mjs +4 -4
- package/esm2020/lib/hit-proxy/hit-business-partners/hit-business-partner.service.mjs +10 -1
- package/fesm2015/hitsoft-e-donusum.mjs +195 -95
- package/fesm2015/hitsoft-e-donusum.mjs.map +1 -1
- package/fesm2020/hitsoft-e-donusum.mjs +183 -83
- package/fesm2020/hitsoft-e-donusum.mjs.map +1 -1
- package/lib/business-partners/business-partner/components/business-partner.component.d.ts +14 -4
- package/lib/components/hit-business-partners/hit-business-partner.component.d.ts +12 -3
- package/lib/hit-proxy/hit-business-partners/hit-business-partner.service.d.ts +4 -0
- package/package.json +1 -1
package/esm2020/lib/business-partners/business-partner/components/business-partner.component.mjs
CHANGED
|
@@ -10,19 +10,22 @@ import * as i1 from "@abp/ng.core";
|
|
|
10
10
|
import * as i2 from "../../../proxy/business-partners/business-partner.service";
|
|
11
11
|
import * as i3 from "@abp/ng.theme.shared";
|
|
12
12
|
import * as i4 from "@angular/forms";
|
|
13
|
-
import * as i5 from "
|
|
14
|
-
import * as i6 from "@
|
|
15
|
-
import * as i7 from "@
|
|
16
|
-
import * as i8 from "@
|
|
17
|
-
import * as i9 from "@
|
|
18
|
-
import * as i10 from "@
|
|
13
|
+
import * as i5 from "../../../hit-proxy/hit-business-partners/hit-business-partner.service";
|
|
14
|
+
import * as i6 from "@angular/common";
|
|
15
|
+
import * as i7 from "@swimlane/ngx-datatable";
|
|
16
|
+
import * as i8 from "@volo/abp.commercial.ng.ui";
|
|
17
|
+
import * as i9 from "@ngx-validate/core";
|
|
18
|
+
import * as i10 from "@ng-bootstrap/ng-bootstrap";
|
|
19
|
+
import * as i11 from "@abp/ng.components/page";
|
|
19
20
|
export class BusinessPartnerComponent {
|
|
20
|
-
constructor(list, track, service, confirmation, fb) {
|
|
21
|
+
constructor(list, track, service, confirmation, fb, hitBusinessPartnerService, toasterService) {
|
|
21
22
|
this.list = list;
|
|
22
23
|
this.track = track;
|
|
23
24
|
this.service = service;
|
|
24
25
|
this.confirmation = confirmation;
|
|
25
26
|
this.fb = fb;
|
|
27
|
+
this.hitBusinessPartnerService = hitBusinessPartnerService;
|
|
28
|
+
this.toasterService = toasterService;
|
|
26
29
|
this.data = {
|
|
27
30
|
items: [],
|
|
28
31
|
totalCount: 0,
|
|
@@ -31,6 +34,10 @@ export class BusinessPartnerComponent {
|
|
|
31
34
|
this.isFiltersHidden = true;
|
|
32
35
|
this.isModalBusy = false;
|
|
33
36
|
this.isModalOpen = false;
|
|
37
|
+
this.isTriggerGetBusinessPartnerBusy = false;
|
|
38
|
+
this.triggerElapsedSeconds = 0;
|
|
39
|
+
this._pollingInterval = null;
|
|
40
|
+
this._elapsedInterval = null;
|
|
34
41
|
}
|
|
35
42
|
ngOnInit() {
|
|
36
43
|
const getData = (query) => this.service.getList({
|
|
@@ -102,11 +109,51 @@ export class BusinessPartnerComponent {
|
|
|
102
109
|
.pipe(filter(status => status === Confirmation.Status.confirm), switchMap(() => this.service.delete(record.businessPartner.id)))
|
|
103
110
|
.subscribe(this.list.get);
|
|
104
111
|
}
|
|
112
|
+
triggerGetBusinessPartnerFromConnector() {
|
|
113
|
+
if (this.isTriggerGetBusinessPartnerBusy)
|
|
114
|
+
return;
|
|
115
|
+
this.isTriggerGetBusinessPartnerBusy = true;
|
|
116
|
+
this.triggerElapsedSeconds = 0;
|
|
117
|
+
this.hitBusinessPartnerService.triggerGetBusinessPartnerFromConnector().subscribe({
|
|
118
|
+
next: (jobId) => {
|
|
119
|
+
this._elapsedInterval = setInterval(() => {
|
|
120
|
+
this.triggerElapsedSeconds++;
|
|
121
|
+
}, 1000);
|
|
122
|
+
this._pollingInterval = setInterval(() => {
|
|
123
|
+
this.hitBusinessPartnerService.getBusinessPartnerJobStatus(jobId).subscribe(response => {
|
|
124
|
+
if (response.state === 'Succeeded') {
|
|
125
|
+
this._stopPolling();
|
|
126
|
+
this.toasterService.success("Cariler başarıyla getirildi");
|
|
127
|
+
this.list.get();
|
|
128
|
+
}
|
|
129
|
+
else if (response.state === 'Failed') {
|
|
130
|
+
this._stopPolling();
|
|
131
|
+
this.toasterService.error("Cari getirme işlemi başarısız oldu");
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
}, 3000);
|
|
135
|
+
},
|
|
136
|
+
error: () => {
|
|
137
|
+
this.isTriggerGetBusinessPartnerBusy = false;
|
|
138
|
+
}
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
_stopPolling() {
|
|
142
|
+
clearInterval(this._pollingInterval);
|
|
143
|
+
clearInterval(this._elapsedInterval);
|
|
144
|
+
this._pollingInterval = null;
|
|
145
|
+
this._elapsedInterval = null;
|
|
146
|
+
this.isTriggerGetBusinessPartnerBusy = false;
|
|
147
|
+
this.triggerElapsedSeconds = 0;
|
|
148
|
+
}
|
|
149
|
+
ngOnDestroy() {
|
|
150
|
+
this._stopPolling();
|
|
151
|
+
}
|
|
105
152
|
}
|
|
106
|
-
BusinessPartnerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: BusinessPartnerComponent, deps: [{ token: i1.ListService }, { token: i1.TrackByService }, { token: i2.BusinessPartnerService }, { token: i3.ConfirmationService }, { token: i4.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
|
|
107
|
-
BusinessPartnerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: BusinessPartnerComponent, selector: "lib-business-partner", providers: [ListService, { provide: NgbDateAdapter, useClass: DateAdapter }], ngImport: i0, template: "<abp-page [title]=\"'eDonusum::BusinessPartners' | abpLocalization\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"text-lg-end pt-2\">\r\n <button\r\n *abpPermission=\"'eDonusum.BusinessPartners.Create!'\"\r\n class=\"btn btn-primary btn-sm\"\r\n type=\"button\"\r\n (click)=\"create()\"\r\n >\r\n <i class=\"fa fa-plus me-1\" aria-hidden=\"true\"></i>\r\n {{ 'eDonusum::NewBusinessPartner' | abpLocalization }}\r\n </button>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <abp-advanced-entity-filters localizationSourceName=\"eDonusum\" [list]=\"list\">\r\n <abp-advanced-entity-filters-form>\r\n <form #filterForm (keyup.enter)=\"list.get()\">\r\n <div class=\"row\">\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"erpEntegrationTypeFilter\">\r\n {{ 'eDonusum::ErpEntegrationType' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"erpEntegrationTypeFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.erpEntegrationType\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"erpIdFilter\">\r\n {{ 'eDonusum::ErpId' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"erpIdFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.erpId\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"cardTypeFilter\">\r\n {{ 'eDonusum::CardType' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"cardTypeFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.cardType\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"cardCodeFilter\">\r\n {{ 'eDonusum::CardCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"cardCodeFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.cardCode\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"cardNameFilter\">\r\n {{ 'eDonusum::CardName' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"cardNameFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.cardName\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"foreignNameFilter\">\r\n {{ 'eDonusum::ForeignName' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"foreignNameFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.foreignName\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"isEInvoiceFilter\">\r\n {{ 'eDonusum::IsEInvoice' | abpLocalization }}\r\n </label>\r\n\r\n <select\r\n name=\"isEInvoice\"\r\n id=\"isEInvoiceFilter\"\r\n class=\"form-select form-control\"\r\n [(ngModel)]=\"filters.isEInvoice\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n (change)=\"list.get()\"\r\n >\r\n <option [ngValue]=\"\"></option>\r\n <option [ngValue]=\"true\">{{ 'AbpUi::Yes' | abpLocalization }}</option>\r\n <option [ngValue]=\"false\">{{ 'AbpUi::No' | abpLocalization }}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"defaultEInvoicePkFilter\">\r\n {{ 'eDonusum::DefaultEInvoicePk' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"defaultEInvoicePkFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.defaultEInvoicePk\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"isEDespactFilter\">\r\n {{ 'eDonusum::IsEDespact' | abpLocalization }}\r\n </label>\r\n\r\n <select\r\n name=\"isEDespact\"\r\n id=\"isEDespactFilter\"\r\n class=\"form-select form-control\"\r\n [(ngModel)]=\"filters.isEDespact\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n (change)=\"list.get()\"\r\n >\r\n <option [ngValue]=\"\"></option>\r\n <option [ngValue]=\"true\">{{ 'AbpUi::Yes' | abpLocalization }}</option>\r\n <option [ngValue]=\"false\">{{ 'AbpUi::No' | abpLocalization }}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"defaultEDespactPkFilter\">\r\n {{ 'eDonusum::DefaultEDespactPk' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"defaultEDespactPkFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.defaultEDespactPk\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"tckn_VKNFilter\">\r\n {{ 'eDonusum::TCKN_VKN' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"tckn_VKNFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.tckn_VKN\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"businessPartnerGroupIdFilter\">\r\n {{ 'eDonusum::BusinessPartnerGroup' | abpLocalization }}\r\n </label>\r\n <abp-lookup-input\r\n cid=\"businessPartnerGroupIdFilter\"\r\n displayNameProp=\"groupName\"\r\n lookupNameProp=\"displayName\"\r\n [getFn]=\"service.getBusinessPartnerGroupLookup\"\r\n [(ngModel)]=\"filters.businessPartnerGroupId\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n ></abp-lookup-input>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto align-self-end mb-3\">\r\n <div class=\"row\">\r\n <div class=\"col-6 col-sm-auto d-grid\">\r\n <button type=\"button\" class=\"btn btn-outline-primary\" (click)=\"clearFilters()\">\r\n <span>{{ 'AbpUi::Clear' | abpLocalization }}</span>\r\n </button>\r\n </div>\r\n <div class=\"col-6 col-sm-auto d-grid\">\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"list.get()\">\r\n <span>{{ 'AbpUi::Refresh' | abpLocalization }}</span>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n </abp-advanced-entity-filters-form>\r\n </abp-advanced-entity-filters>\r\n\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <ngx-datatable [rows]=\"data.items\" [count]=\"data.totalCount\" [list]=\"list\" default>\r\n <ngx-datatable-column\r\n [name]=\"'AbpUi::Actions' | abpLocalization\"\r\n [maxWidth]=\"150\"\r\n [width]=\"150\"\r\n [sortable]=\"false\"\r\n >\r\n <ng-template let-row=\"row\" let-i=\"rowIndex\" ngx-datatable-cell-template>\r\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n <button\r\n class=\"btn btn-primary btn-sm dropdown-toggle\"\r\n data-toggle=\"dropdown\"\r\n aria-haspopup=\"true\"\r\n ngbDropdownToggle\r\n >\r\n <i class=\"fa fa-cog me-1\" aria-hidden=\"true\"></i>\r\n {{ 'AbpUi::Actions' | abpLocalization }}\r\n </button>\r\n\r\n <div ngbDropdownMenu>\r\n <button\r\n ngbDropdownItem\r\n *abpPermission=\"'eDonusum.BusinessPartners.Edit'\"\r\n (click)=\"update(row)\"\r\n >\r\n {{ 'AbpUi::Edit' | abpLocalization }}\r\n </button>\r\n\r\n <button\r\n ngbDropdownItem\r\n *abpPermission=\"'eDonusum.BusinessPartners.Delete'\"\r\n (click)=\"delete(row)\"\r\n >\r\n {{ 'AbpUi::Delete' | abpLocalization }}\r\n </button>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::ErpEntegrationType' | abpLocalization }}\"\r\n prop=\"businessPartner.erpEntegrationType\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.businessPartner.erpEntegrationType }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::ErpId' | abpLocalization }}\"\r\n prop=\"businessPartner.erpId\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.businessPartner.erpId }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::CardType' | abpLocalization }}\"\r\n prop=\"businessPartner.cardType\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.businessPartner.cardType }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::CardCode' | abpLocalization }}\"\r\n prop=\"businessPartner.cardCode\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.businessPartner.cardCode }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::CardName' | abpLocalization }}\"\r\n prop=\"businessPartner.cardName\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.businessPartner.cardName }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::ForeignName' | abpLocalization }}\"\r\n prop=\"businessPartner.foreignName\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.businessPartner.foreignName }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::IsEInvoice' | abpLocalization }}\"\r\n prop=\"businessPartner.isEInvoice\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n <ng-template\r\n [ngIf]=\"row.businessPartner.isEInvoice\"\r\n [ngIfThen]=\"yes\"\r\n [ngIfElse]=\"no\"\r\n ></ng-template>\r\n\r\n <ng-template #yes>\r\n <div class=\"text-success\">\r\n <span [title]=\"'AbpUi::Yes' | abpLocalization\">\r\n <i class=\"fa fa-check\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #no>\r\n <div class=\"text-danger\">\r\n <span [title]=\"'AbpUi::No' | abpLocalization\">\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::DefaultEInvoicePk' | abpLocalization }}\"\r\n prop=\"businessPartner.defaultEInvoicePk\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.businessPartner.defaultEInvoicePk }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::IsEDespact' | abpLocalization }}\"\r\n prop=\"businessPartner.isEDespact\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n <ng-template\r\n [ngIf]=\"row.businessPartner.isEDespact\"\r\n [ngIfThen]=\"yes\"\r\n [ngIfElse]=\"no\"\r\n ></ng-template>\r\n\r\n <ng-template #yes>\r\n <div class=\"text-success\">\r\n <span [title]=\"'AbpUi::Yes' | abpLocalization\">\r\n <i class=\"fa fa-check\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #no>\r\n <div class=\"text-danger\">\r\n <span [title]=\"'AbpUi::No' | abpLocalization\">\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::DefaultEDespactPk' | abpLocalization }}\"\r\n prop=\"businessPartner.defaultEDespactPk\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.businessPartner.defaultEDespactPk }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::TCKN_VKN' | abpLocalization }}\"\r\n prop=\"businessPartner.tckN_VKN\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.businessPartner.tckN_VKN }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::BusinessPartnerGroup' | abpLocalization }}\"\r\n prop=\"businessPartnerGroup.groupName\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.businessPartnerGroup?.groupName }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n </ngx-datatable>\r\n </div>\r\n </div>\r\n</abp-page>\r\n\r\n<abp-modal [busy]=\"isModalBusy\" [(visible)]=\"isModalOpen\">\r\n <ng-template #abpHeader>\r\n <h3>\r\n {{ (selected ? 'AbpUi::Edit' : 'eDonusum::NewBusinessPartner') | abpLocalization }}\r\n </h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <form [formGroup]=\"form\" id=\"business-partner\" (ngSubmit)=\"submitForm()\" validateOnSubmit>\r\n <div class=\"mt-2 fade-in-top\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"business-partner-erp-entegration-type\">\r\n {{ 'eDonusum::ErpEntegrationType' | abpLocalization }} *\r\n </label>\r\n\r\n <input\r\n id=\"business-partner-erp-entegration-type\"\r\n formControlName=\"erpEntegrationType\"\r\n class=\"form-control\"\r\n maxlength=\"8\"\r\n autofocus\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"business-partner-erp-id\">\r\n {{ 'eDonusum::ErpId' | abpLocalization }} *\r\n </label>\r\n\r\n <input\r\n id=\"business-partner-erp-id\"\r\n formControlName=\"erpId\"\r\n class=\"form-control\"\r\n maxlength=\"8\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"business-partner-card-type\">\r\n {{ 'eDonusum::CardType' | abpLocalization }} *\r\n </label>\r\n\r\n <input\r\n id=\"business-partner-card-type\"\r\n formControlName=\"cardType\"\r\n class=\"form-control\"\r\n maxlength=\"16\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"business-partner-card-code\">\r\n {{ 'eDonusum::CardCode' | abpLocalization }} *\r\n </label>\r\n\r\n <input\r\n id=\"business-partner-card-code\"\r\n formControlName=\"cardCode\"\r\n class=\"form-control\"\r\n maxlength=\"128\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"business-partner-card-name\">\r\n {{ 'eDonusum::CardName' | abpLocalization }} *\r\n </label>\r\n\r\n <input\r\n id=\"business-partner-card-name\"\r\n formControlName=\"cardName\"\r\n class=\"form-control\"\r\n maxlength=\"256\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"business-partner-foreign-name\">\r\n {{ 'eDonusum::ForeignName' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"business-partner-foreign-name\"\r\n formControlName=\"foreignName\"\r\n class=\"form-control\"\r\n maxlength=\"256\"\r\n />\r\n </div>\r\n <div class=\"form-check mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"business-partner-is-einvoice\"\r\n formControlName=\"isEInvoice\"\r\n class=\"form-check-input\"\r\n />\r\n\r\n <label for=\"business-partner-is-einvoice\" class=\"form-check-label\">\r\n {{ 'eDonusum::IsEInvoice' | abpLocalization }}\r\n </label>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"business-partner-default-einvoice-pk\">\r\n {{ 'eDonusum::DefaultEInvoicePk' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"business-partner-default-einvoice-pk\"\r\n formControlName=\"defaultEInvoicePk\"\r\n class=\"form-control\"\r\n maxlength=\"128\"\r\n />\r\n </div>\r\n <div class=\"form-check mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"business-partner-is-edespact\"\r\n formControlName=\"isEDespact\"\r\n class=\"form-check-input\"\r\n />\r\n\r\n <label for=\"business-partner-is-edespact\" class=\"form-check-label\">\r\n {{ 'eDonusum::IsEDespact' | abpLocalization }}\r\n </label>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"business-partner-default-edespact-pk\">\r\n {{ 'eDonusum::DefaultEDespactPk' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"business-partner-default-edespact-pk\"\r\n formControlName=\"defaultEDespactPk\"\r\n class=\"form-control\"\r\n maxlength=\"128\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"business-partner-tckn-vkn\">\r\n {{ 'eDonusum::TCKN_VKN' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"business-partner-tckn-vkn\"\r\n formControlName=\"tckn_VKN\"\r\n class=\"form-control\"\r\n maxlength=\"16\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"business-partner-business-partner-group-id\">\r\n {{ 'eDonusum::BusinessPartnerGroup' | abpLocalization }} *\r\n </label>\r\n <abp-lookup-input\r\n cid=\"business-partner-business-partner-group-id\"\r\n formControlName=\"businessPartnerGroupId\"\r\n displayNameProp=\"groupName\"\r\n lookupNameProp=\"displayName\"\r\n [getFn]=\"service.getBusinessPartnerGroupLookup\"\r\n [editingData]=\"selected?.businessPartnerGroup\"\r\n ></abp-lookup-input>\r\n </div>\r\n </div>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>\r\n {{ 'AbpUi::Cancel' | abpLocalization }}\r\n </button>\r\n\r\n <abp-button iconClass=\"fa fa-check\" buttonType=\"submit\" formName=\"business-partner\">\r\n {{ 'AbpUi::Save' | abpLocalization }}\r\n </abp-button>\r\n </ng-template>\r\n</abp-modal>\r\n", dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i4.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.AutofocusDirective, selector: "[autofocus]", inputs: ["autofocus"] }, { kind: "directive", type: i1.FormSubmitDirective, selector: "form[ngSubmit][formGroup]", inputs: ["debounce", "notValidateOnSubmit", "markAsDirtyWhenSubmit"], outputs: ["ngSubmit"] }, { kind: "directive", type: i1.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission", "abpPermissionRunChangeDetection"] }, { kind: "component", type: i6.DatatableComponent, selector: "ngx-datatable", inputs: ["targetMarkerTemplate", "rows", "groupRowsBy", "groupedRows", "columns", "selected", "scrollbarV", "scrollbarH", "rowHeight", "columnMode", "headerHeight", "footerHeight", "externalPaging", "externalSorting", "limit", "count", "offset", "loadingIndicator", "selectionType", "reorderable", "swapColumns", "sortType", "sorts", "cssClasses", "messages", "rowClass", "selectCheck", "displayCheck", "groupExpansionDefault", "trackByProp", "selectAllRowsOnPage", "virtualization", "treeFromRelation", "treeToRelation", "summaryRow", "summaryHeight", "summaryPosition", "rowIdentity"], outputs: ["scroll", "activate", "select", "sort", "page", "reorder", "resize", "tableContextmenu", "treeAction"] }, { kind: "directive", type: i6.DataTableColumnDirective, selector: "ngx-datatable-column", inputs: ["name", "prop", "frozenLeft", "frozenRight", "flexGrow", "resizeable", "comparator", "pipe", "sortable", "draggable", "canAutoResize", "minWidth", "width", "maxWidth", "checkboxable", "headerCheckboxable", "headerClass", "cellClass", "isTreeColumn", "treeLevelIndent", "summaryFunc", "summaryTemplate", "cellTemplate", "headerTemplate", "treeToggleTemplate"] }, { kind: "directive", type: i6.DataTableColumnCellDirective, selector: "[ngx-datatable-cell-template]" }, { kind: "component", type: i3.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }, { kind: "component", type: i3.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { kind: "directive", type: i3.NgxDatatableDefaultDirective, selector: "ngx-datatable[default]", inputs: ["class"], exportAs: ["ngxDatatableDefault"] }, { kind: "directive", type: i3.NgxDatatableListDirective, selector: "ngx-datatable[list]", inputs: ["list"], exportAs: ["ngxDatatableList"] }, { kind: "directive", type: i3.ModalCloseDirective, selector: "[abpClose]" }, { kind: "component", type: i7.LookupInputComponent, selector: "abp-lookup-input", inputs: ["getFn", "lookupNameProp", "displayNameProp", "editingData", "pickButton", "clearButton", "cid"] }, { kind: "component", type: i7.AdvancedEntityFiltersComponent, selector: "abp-advanced-entity-filters", inputs: ["list", "localizationSourceName", "entityFilterPlaceholder"] }, { kind: "component", type: i7.AdvancedEntityFiltersFormComponent, selector: "abp-advanced-entity-filters-form" }, { kind: "directive", type: i8.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i8.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "directive", type: i9.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i9.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i9.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i9.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["disabled"] }, { kind: "component", type: i10.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: i10.PageToolbarContainerComponent, selector: "abp-page-toolbar-container" }, { kind: "pipe", type: i1.LocalizationPipe, name: "abpLocalization" }], changeDetection: i0.ChangeDetectionStrategy.Default });
|
|
153
|
+
BusinessPartnerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: BusinessPartnerComponent, deps: [{ token: i1.ListService }, { token: i1.TrackByService }, { token: i2.BusinessPartnerService }, { token: i3.ConfirmationService }, { token: i4.FormBuilder }, { token: i5.HitBusinessPartnerService }, { token: i3.ToasterService }], target: i0.ɵɵFactoryTarget.Component });
|
|
154
|
+
BusinessPartnerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: BusinessPartnerComponent, selector: "lib-business-partner", providers: [ListService, { provide: NgbDateAdapter, useClass: DateAdapter }], ngImport: i0, template: "<abp-page [title]=\"'eDonusum::BusinessPartners' | abpLocalization\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"text-lg-end pt-2\">\r\n <button *abpPermission=\"'eDonusum.BusinessPartners.Create!'\" class=\"btn btn-info btn-sm\" type=\"button\"\r\n style=\"margin-right: 5px;\"\r\n (click)=\"triggerGetBusinessPartnerFromConnector()\"\r\n [disabled]=\"isTriggerGetBusinessPartnerBusy\">\r\n <i class=\"fa fa-download me-1\" aria-hidden=\"true\"></i>\r\n <ng-container *ngIf=\"!isTriggerGetBusinessPartnerBusy\">SAP'den Carileri \u00C7ek</ng-container>\r\n <ng-container *ngIf=\"isTriggerGetBusinessPartnerBusy\">SAP'den \u00C7ekiliyor... ({{ triggerElapsedSeconds }}s)</ng-container>\r\n </button>\r\n <button\r\n *abpPermission=\"'eDonusum.BusinessPartners.Create!'\"\r\n class=\"btn btn-primary btn-sm\"\r\n type=\"button\"\r\n (click)=\"create()\"\r\n >\r\n <i class=\"fa fa-plus me-1\" aria-hidden=\"true\"></i>\r\n {{ 'eDonusum::NewBusinessPartner' | abpLocalization }}\r\n </button>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <abp-advanced-entity-filters localizationSourceName=\"eDonusum\" [list]=\"list\">\r\n <abp-advanced-entity-filters-form>\r\n <form #filterForm (keyup.enter)=\"list.get()\">\r\n <div class=\"row\">\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"erpEntegrationTypeFilter\">\r\n {{ 'eDonusum::ErpEntegrationType' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"erpEntegrationTypeFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.erpEntegrationType\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"erpIdFilter\">\r\n {{ 'eDonusum::ErpId' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"erpIdFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.erpId\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"cardTypeFilter\">\r\n {{ 'eDonusum::CardType' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"cardTypeFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.cardType\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"cardCodeFilter\">\r\n {{ 'eDonusum::CardCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"cardCodeFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.cardCode\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"cardNameFilter\">\r\n {{ 'eDonusum::CardName' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"cardNameFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.cardName\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"foreignNameFilter\">\r\n {{ 'eDonusum::ForeignName' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"foreignNameFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.foreignName\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"isEInvoiceFilter\">\r\n {{ 'eDonusum::IsEInvoice' | abpLocalization }}\r\n </label>\r\n\r\n <select\r\n name=\"isEInvoice\"\r\n id=\"isEInvoiceFilter\"\r\n class=\"form-select form-control\"\r\n [(ngModel)]=\"filters.isEInvoice\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n (change)=\"list.get()\"\r\n >\r\n <option [ngValue]=\"\"></option>\r\n <option [ngValue]=\"true\">{{ 'AbpUi::Yes' | abpLocalization }}</option>\r\n <option [ngValue]=\"false\">{{ 'AbpUi::No' | abpLocalization }}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"defaultEInvoicePkFilter\">\r\n {{ 'eDonusum::DefaultEInvoicePk' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"defaultEInvoicePkFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.defaultEInvoicePk\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"isEDespactFilter\">\r\n {{ 'eDonusum::IsEDespact' | abpLocalization }}\r\n </label>\r\n\r\n <select\r\n name=\"isEDespact\"\r\n id=\"isEDespactFilter\"\r\n class=\"form-select form-control\"\r\n [(ngModel)]=\"filters.isEDespact\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n (change)=\"list.get()\"\r\n >\r\n <option [ngValue]=\"\"></option>\r\n <option [ngValue]=\"true\">{{ 'AbpUi::Yes' | abpLocalization }}</option>\r\n <option [ngValue]=\"false\">{{ 'AbpUi::No' | abpLocalization }}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"defaultEDespactPkFilter\">\r\n {{ 'eDonusum::DefaultEDespactPk' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"defaultEDespactPkFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.defaultEDespactPk\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"tckn_VKNFilter\">\r\n {{ 'eDonusum::TCKN_VKN' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"tckn_VKNFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.tckn_VKN\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"businessPartnerGroupIdFilter\">\r\n {{ 'eDonusum::BusinessPartnerGroup' | abpLocalization }}\r\n </label>\r\n <abp-lookup-input\r\n cid=\"businessPartnerGroupIdFilter\"\r\n displayNameProp=\"groupName\"\r\n lookupNameProp=\"displayName\"\r\n [getFn]=\"service.getBusinessPartnerGroupLookup\"\r\n [(ngModel)]=\"filters.businessPartnerGroupId\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n ></abp-lookup-input>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto align-self-end mb-3\">\r\n <div class=\"row\">\r\n <div class=\"col-6 col-sm-auto d-grid\">\r\n <button type=\"button\" class=\"btn btn-outline-primary\" (click)=\"clearFilters()\">\r\n <span>{{ 'AbpUi::Clear' | abpLocalization }}</span>\r\n </button>\r\n </div>\r\n <div class=\"col-6 col-sm-auto d-grid\">\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"list.get()\">\r\n <span>{{ 'AbpUi::Refresh' | abpLocalization }}</span>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n </abp-advanced-entity-filters-form>\r\n </abp-advanced-entity-filters>\r\n\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <ngx-datatable [rows]=\"data.items\" [count]=\"data.totalCount\" [list]=\"list\" default>\r\n <ngx-datatable-column\r\n [name]=\"'AbpUi::Actions' | abpLocalization\"\r\n [maxWidth]=\"150\"\r\n [width]=\"150\"\r\n [sortable]=\"false\"\r\n >\r\n <ng-template let-row=\"row\" let-i=\"rowIndex\" ngx-datatable-cell-template>\r\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n <button\r\n class=\"btn btn-primary btn-sm dropdown-toggle\"\r\n data-toggle=\"dropdown\"\r\n aria-haspopup=\"true\"\r\n ngbDropdownToggle\r\n >\r\n <i class=\"fa fa-cog me-1\" aria-hidden=\"true\"></i>\r\n {{ 'AbpUi::Actions' | abpLocalization }}\r\n </button>\r\n\r\n <div ngbDropdownMenu>\r\n <button\r\n ngbDropdownItem\r\n *abpPermission=\"'eDonusum.BusinessPartners.Edit'\"\r\n (click)=\"update(row)\"\r\n >\r\n {{ 'AbpUi::Edit' | abpLocalization }}\r\n </button>\r\n\r\n <button\r\n ngbDropdownItem\r\n *abpPermission=\"'eDonusum.BusinessPartners.Delete'\"\r\n (click)=\"delete(row)\"\r\n >\r\n {{ 'AbpUi::Delete' | abpLocalization }}\r\n </button>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::ErpEntegrationType' | abpLocalization }}\"\r\n prop=\"businessPartner.erpEntegrationType\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.businessPartner.erpEntegrationType }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::ErpId' | abpLocalization }}\"\r\n prop=\"businessPartner.erpId\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.businessPartner.erpId }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::CardType' | abpLocalization }}\"\r\n prop=\"businessPartner.cardType\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.businessPartner.cardType }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::CardCode' | abpLocalization }}\"\r\n prop=\"businessPartner.cardCode\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.businessPartner.cardCode }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::CardName' | abpLocalization }}\"\r\n prop=\"businessPartner.cardName\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.businessPartner.cardName }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::ForeignName' | abpLocalization }}\"\r\n prop=\"businessPartner.foreignName\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.businessPartner.foreignName }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::IsEInvoice' | abpLocalization }}\"\r\n prop=\"businessPartner.isEInvoice\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n <ng-template\r\n [ngIf]=\"row.businessPartner.isEInvoice\"\r\n [ngIfThen]=\"yes\"\r\n [ngIfElse]=\"no\"\r\n ></ng-template>\r\n\r\n <ng-template #yes>\r\n <div class=\"text-success\">\r\n <span [title]=\"'AbpUi::Yes' | abpLocalization\">\r\n <i class=\"fa fa-check\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #no>\r\n <div class=\"text-danger\">\r\n <span [title]=\"'AbpUi::No' | abpLocalization\">\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::DefaultEInvoicePk' | abpLocalization }}\"\r\n prop=\"businessPartner.defaultEInvoicePk\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.businessPartner.defaultEInvoicePk }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::IsEDespact' | abpLocalization }}\"\r\n prop=\"businessPartner.isEDespact\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n <ng-template\r\n [ngIf]=\"row.businessPartner.isEDespact\"\r\n [ngIfThen]=\"yes\"\r\n [ngIfElse]=\"no\"\r\n ></ng-template>\r\n\r\n <ng-template #yes>\r\n <div class=\"text-success\">\r\n <span [title]=\"'AbpUi::Yes' | abpLocalization\">\r\n <i class=\"fa fa-check\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #no>\r\n <div class=\"text-danger\">\r\n <span [title]=\"'AbpUi::No' | abpLocalization\">\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::DefaultEDespactPk' | abpLocalization }}\"\r\n prop=\"businessPartner.defaultEDespactPk\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.businessPartner.defaultEDespactPk }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::TCKN_VKN' | abpLocalization }}\"\r\n prop=\"businessPartner.tckN_VKN\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.businessPartner.tckN_VKN }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::BusinessPartnerGroup' | abpLocalization }}\"\r\n prop=\"businessPartnerGroup.groupName\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.businessPartnerGroup?.groupName }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n </ngx-datatable>\r\n </div>\r\n </div>\r\n</abp-page>\r\n\r\n<abp-modal [busy]=\"isModalBusy\" [(visible)]=\"isModalOpen\">\r\n <ng-template #abpHeader>\r\n <h3>\r\n {{ (selected ? 'AbpUi::Edit' : 'eDonusum::NewBusinessPartner') | abpLocalization }}\r\n </h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <form [formGroup]=\"form\" id=\"business-partner\" (ngSubmit)=\"submitForm()\" validateOnSubmit>\r\n <div class=\"mt-2 fade-in-top\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"business-partner-erp-entegration-type\">\r\n {{ 'eDonusum::ErpEntegrationType' | abpLocalization }} *\r\n </label>\r\n\r\n <input\r\n id=\"business-partner-erp-entegration-type\"\r\n formControlName=\"erpEntegrationType\"\r\n class=\"form-control\"\r\n maxlength=\"8\"\r\n autofocus\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"business-partner-erp-id\">\r\n {{ 'eDonusum::ErpId' | abpLocalization }} *\r\n </label>\r\n\r\n <input\r\n id=\"business-partner-erp-id\"\r\n formControlName=\"erpId\"\r\n class=\"form-control\"\r\n maxlength=\"8\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"business-partner-card-type\">\r\n {{ 'eDonusum::CardType' | abpLocalization }} *\r\n </label>\r\n\r\n <input\r\n id=\"business-partner-card-type\"\r\n formControlName=\"cardType\"\r\n class=\"form-control\"\r\n maxlength=\"16\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"business-partner-card-code\">\r\n {{ 'eDonusum::CardCode' | abpLocalization }} *\r\n </label>\r\n\r\n <input\r\n id=\"business-partner-card-code\"\r\n formControlName=\"cardCode\"\r\n class=\"form-control\"\r\n maxlength=\"128\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"business-partner-card-name\">\r\n {{ 'eDonusum::CardName' | abpLocalization }} *\r\n </label>\r\n\r\n <input\r\n id=\"business-partner-card-name\"\r\n formControlName=\"cardName\"\r\n class=\"form-control\"\r\n maxlength=\"256\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"business-partner-foreign-name\">\r\n {{ 'eDonusum::ForeignName' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"business-partner-foreign-name\"\r\n formControlName=\"foreignName\"\r\n class=\"form-control\"\r\n maxlength=\"256\"\r\n />\r\n </div>\r\n <div class=\"form-check mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"business-partner-is-einvoice\"\r\n formControlName=\"isEInvoice\"\r\n class=\"form-check-input\"\r\n />\r\n\r\n <label for=\"business-partner-is-einvoice\" class=\"form-check-label\">\r\n {{ 'eDonusum::IsEInvoice' | abpLocalization }}\r\n </label>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"business-partner-default-einvoice-pk\">\r\n {{ 'eDonusum::DefaultEInvoicePk' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"business-partner-default-einvoice-pk\"\r\n formControlName=\"defaultEInvoicePk\"\r\n class=\"form-control\"\r\n maxlength=\"128\"\r\n />\r\n </div>\r\n <div class=\"form-check mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"business-partner-is-edespact\"\r\n formControlName=\"isEDespact\"\r\n class=\"form-check-input\"\r\n />\r\n\r\n <label for=\"business-partner-is-edespact\" class=\"form-check-label\">\r\n {{ 'eDonusum::IsEDespact' | abpLocalization }}\r\n </label>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"business-partner-default-edespact-pk\">\r\n {{ 'eDonusum::DefaultEDespactPk' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"business-partner-default-edespact-pk\"\r\n formControlName=\"defaultEDespactPk\"\r\n class=\"form-control\"\r\n maxlength=\"128\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"business-partner-tckn-vkn\">\r\n {{ 'eDonusum::TCKN_VKN' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"business-partner-tckn-vkn\"\r\n formControlName=\"tckn_VKN\"\r\n class=\"form-control\"\r\n maxlength=\"16\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"business-partner-business-partner-group-id\">\r\n {{ 'eDonusum::BusinessPartnerGroup' | abpLocalization }} *\r\n </label>\r\n <abp-lookup-input\r\n cid=\"business-partner-business-partner-group-id\"\r\n formControlName=\"businessPartnerGroupId\"\r\n displayNameProp=\"groupName\"\r\n lookupNameProp=\"displayName\"\r\n [getFn]=\"service.getBusinessPartnerGroupLookup\"\r\n [editingData]=\"selected?.businessPartnerGroup\"\r\n ></abp-lookup-input>\r\n </div>\r\n </div>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>\r\n {{ 'AbpUi::Cancel' | abpLocalization }}\r\n </button>\r\n\r\n <abp-button iconClass=\"fa fa-check\" buttonType=\"submit\" formName=\"business-partner\">\r\n {{ 'AbpUi::Save' | abpLocalization }}\r\n </abp-button>\r\n </ng-template>\r\n</abp-modal>\r\n", dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i4.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.AutofocusDirective, selector: "[autofocus]", inputs: ["autofocus"] }, { kind: "directive", type: i1.FormSubmitDirective, selector: "form[ngSubmit][formGroup]", inputs: ["debounce", "notValidateOnSubmit", "markAsDirtyWhenSubmit"], outputs: ["ngSubmit"] }, { kind: "directive", type: i1.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission", "abpPermissionRunChangeDetection"] }, { kind: "component", type: i7.DatatableComponent, selector: "ngx-datatable", inputs: ["targetMarkerTemplate", "rows", "groupRowsBy", "groupedRows", "columns", "selected", "scrollbarV", "scrollbarH", "rowHeight", "columnMode", "headerHeight", "footerHeight", "externalPaging", "externalSorting", "limit", "count", "offset", "loadingIndicator", "selectionType", "reorderable", "swapColumns", "sortType", "sorts", "cssClasses", "messages", "rowClass", "selectCheck", "displayCheck", "groupExpansionDefault", "trackByProp", "selectAllRowsOnPage", "virtualization", "treeFromRelation", "treeToRelation", "summaryRow", "summaryHeight", "summaryPosition", "rowIdentity"], outputs: ["scroll", "activate", "select", "sort", "page", "reorder", "resize", "tableContextmenu", "treeAction"] }, { kind: "directive", type: i7.DataTableColumnDirective, selector: "ngx-datatable-column", inputs: ["name", "prop", "frozenLeft", "frozenRight", "flexGrow", "resizeable", "comparator", "pipe", "sortable", "draggable", "canAutoResize", "minWidth", "width", "maxWidth", "checkboxable", "headerCheckboxable", "headerClass", "cellClass", "isTreeColumn", "treeLevelIndent", "summaryFunc", "summaryTemplate", "cellTemplate", "headerTemplate", "treeToggleTemplate"] }, { kind: "directive", type: i7.DataTableColumnCellDirective, selector: "[ngx-datatable-cell-template]" }, { kind: "component", type: i3.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }, { kind: "component", type: i3.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { kind: "directive", type: i3.NgxDatatableDefaultDirective, selector: "ngx-datatable[default]", inputs: ["class"], exportAs: ["ngxDatatableDefault"] }, { kind: "directive", type: i3.NgxDatatableListDirective, selector: "ngx-datatable[list]", inputs: ["list"], exportAs: ["ngxDatatableList"] }, { kind: "directive", type: i3.ModalCloseDirective, selector: "[abpClose]" }, { kind: "component", type: i8.LookupInputComponent, selector: "abp-lookup-input", inputs: ["getFn", "lookupNameProp", "displayNameProp", "editingData", "pickButton", "clearButton", "cid"] }, { kind: "component", type: i8.AdvancedEntityFiltersComponent, selector: "abp-advanced-entity-filters", inputs: ["list", "localizationSourceName", "entityFilterPlaceholder"] }, { kind: "component", type: i8.AdvancedEntityFiltersFormComponent, selector: "abp-advanced-entity-filters-form" }, { kind: "directive", type: i9.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i9.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "directive", type: i10.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i10.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i10.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i10.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["disabled"] }, { kind: "component", type: i11.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: i11.PageToolbarContainerComponent, selector: "abp-page-toolbar-container" }, { kind: "pipe", type: i1.LocalizationPipe, name: "abpLocalization" }], changeDetection: i0.ChangeDetectionStrategy.Default });
|
|
108
155
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: BusinessPartnerComponent, decorators: [{
|
|
109
156
|
type: Component,
|
|
110
|
-
args: [{ selector: 'lib-business-partner', changeDetection: ChangeDetectionStrategy.Default, providers: [ListService, { provide: NgbDateAdapter, useClass: DateAdapter }], template: "<abp-page [title]=\"'eDonusum::BusinessPartners' | abpLocalization\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"text-lg-end pt-2\">\r\n <button\r\n *abpPermission=\"'eDonusum.BusinessPartners.Create!'\"\r\n class=\"btn btn-primary btn-sm\"\r\n type=\"button\"\r\n (click)=\"create()\"\r\n >\r\n <i class=\"fa fa-plus me-1\" aria-hidden=\"true\"></i>\r\n {{ 'eDonusum::NewBusinessPartner' | abpLocalization }}\r\n </button>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <abp-advanced-entity-filters localizationSourceName=\"eDonusum\" [list]=\"list\">\r\n <abp-advanced-entity-filters-form>\r\n <form #filterForm (keyup.enter)=\"list.get()\">\r\n <div class=\"row\">\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"erpEntegrationTypeFilter\">\r\n {{ 'eDonusum::ErpEntegrationType' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"erpEntegrationTypeFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.erpEntegrationType\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"erpIdFilter\">\r\n {{ 'eDonusum::ErpId' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"erpIdFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.erpId\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"cardTypeFilter\">\r\n {{ 'eDonusum::CardType' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"cardTypeFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.cardType\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"cardCodeFilter\">\r\n {{ 'eDonusum::CardCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"cardCodeFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.cardCode\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"cardNameFilter\">\r\n {{ 'eDonusum::CardName' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"cardNameFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.cardName\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"foreignNameFilter\">\r\n {{ 'eDonusum::ForeignName' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"foreignNameFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.foreignName\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"isEInvoiceFilter\">\r\n {{ 'eDonusum::IsEInvoice' | abpLocalization }}\r\n </label>\r\n\r\n <select\r\n name=\"isEInvoice\"\r\n id=\"isEInvoiceFilter\"\r\n class=\"form-select form-control\"\r\n [(ngModel)]=\"filters.isEInvoice\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n (change)=\"list.get()\"\r\n >\r\n <option [ngValue]=\"\"></option>\r\n <option [ngValue]=\"true\">{{ 'AbpUi::Yes' | abpLocalization }}</option>\r\n <option [ngValue]=\"false\">{{ 'AbpUi::No' | abpLocalization }}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"defaultEInvoicePkFilter\">\r\n {{ 'eDonusum::DefaultEInvoicePk' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"defaultEInvoicePkFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.defaultEInvoicePk\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"isEDespactFilter\">\r\n {{ 'eDonusum::IsEDespact' | abpLocalization }}\r\n </label>\r\n\r\n <select\r\n name=\"isEDespact\"\r\n id=\"isEDespactFilter\"\r\n class=\"form-select form-control\"\r\n [(ngModel)]=\"filters.isEDespact\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n (change)=\"list.get()\"\r\n >\r\n <option [ngValue]=\"\"></option>\r\n <option [ngValue]=\"true\">{{ 'AbpUi::Yes' | abpLocalization }}</option>\r\n <option [ngValue]=\"false\">{{ 'AbpUi::No' | abpLocalization }}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"defaultEDespactPkFilter\">\r\n {{ 'eDonusum::DefaultEDespactPk' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"defaultEDespactPkFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.defaultEDespactPk\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"tckn_VKNFilter\">\r\n {{ 'eDonusum::TCKN_VKN' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"tckn_VKNFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.tckn_VKN\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"businessPartnerGroupIdFilter\">\r\n {{ 'eDonusum::BusinessPartnerGroup' | abpLocalization }}\r\n </label>\r\n <abp-lookup-input\r\n cid=\"businessPartnerGroupIdFilter\"\r\n displayNameProp=\"groupName\"\r\n lookupNameProp=\"displayName\"\r\n [getFn]=\"service.getBusinessPartnerGroupLookup\"\r\n [(ngModel)]=\"filters.businessPartnerGroupId\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n ></abp-lookup-input>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto align-self-end mb-3\">\r\n <div class=\"row\">\r\n <div class=\"col-6 col-sm-auto d-grid\">\r\n <button type=\"button\" class=\"btn btn-outline-primary\" (click)=\"clearFilters()\">\r\n <span>{{ 'AbpUi::Clear' | abpLocalization }}</span>\r\n </button>\r\n </div>\r\n <div class=\"col-6 col-sm-auto d-grid\">\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"list.get()\">\r\n <span>{{ 'AbpUi::Refresh' | abpLocalization }}</span>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n </abp-advanced-entity-filters-form>\r\n </abp-advanced-entity-filters>\r\n\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <ngx-datatable [rows]=\"data.items\" [count]=\"data.totalCount\" [list]=\"list\" default>\r\n <ngx-datatable-column\r\n [name]=\"'AbpUi::Actions' | abpLocalization\"\r\n [maxWidth]=\"150\"\r\n [width]=\"150\"\r\n [sortable]=\"false\"\r\n >\r\n <ng-template let-row=\"row\" let-i=\"rowIndex\" ngx-datatable-cell-template>\r\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n <button\r\n class=\"btn btn-primary btn-sm dropdown-toggle\"\r\n data-toggle=\"dropdown\"\r\n aria-haspopup=\"true\"\r\n ngbDropdownToggle\r\n >\r\n <i class=\"fa fa-cog me-1\" aria-hidden=\"true\"></i>\r\n {{ 'AbpUi::Actions' | abpLocalization }}\r\n </button>\r\n\r\n <div ngbDropdownMenu>\r\n <button\r\n ngbDropdownItem\r\n *abpPermission=\"'eDonusum.BusinessPartners.Edit'\"\r\n (click)=\"update(row)\"\r\n >\r\n {{ 'AbpUi::Edit' | abpLocalization }}\r\n </button>\r\n\r\n <button\r\n ngbDropdownItem\r\n *abpPermission=\"'eDonusum.BusinessPartners.Delete'\"\r\n (click)=\"delete(row)\"\r\n >\r\n {{ 'AbpUi::Delete' | abpLocalization }}\r\n </button>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::ErpEntegrationType' | abpLocalization }}\"\r\n prop=\"businessPartner.erpEntegrationType\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.businessPartner.erpEntegrationType }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::ErpId' | abpLocalization }}\"\r\n prop=\"businessPartner.erpId\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.businessPartner.erpId }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::CardType' | abpLocalization }}\"\r\n prop=\"businessPartner.cardType\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.businessPartner.cardType }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::CardCode' | abpLocalization }}\"\r\n prop=\"businessPartner.cardCode\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.businessPartner.cardCode }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::CardName' | abpLocalization }}\"\r\n prop=\"businessPartner.cardName\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.businessPartner.cardName }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::ForeignName' | abpLocalization }}\"\r\n prop=\"businessPartner.foreignName\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.businessPartner.foreignName }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::IsEInvoice' | abpLocalization }}\"\r\n prop=\"businessPartner.isEInvoice\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n <ng-template\r\n [ngIf]=\"row.businessPartner.isEInvoice\"\r\n [ngIfThen]=\"yes\"\r\n [ngIfElse]=\"no\"\r\n ></ng-template>\r\n\r\n <ng-template #yes>\r\n <div class=\"text-success\">\r\n <span [title]=\"'AbpUi::Yes' | abpLocalization\">\r\n <i class=\"fa fa-check\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #no>\r\n <div class=\"text-danger\">\r\n <span [title]=\"'AbpUi::No' | abpLocalization\">\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::DefaultEInvoicePk' | abpLocalization }}\"\r\n prop=\"businessPartner.defaultEInvoicePk\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.businessPartner.defaultEInvoicePk }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::IsEDespact' | abpLocalization }}\"\r\n prop=\"businessPartner.isEDespact\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n <ng-template\r\n [ngIf]=\"row.businessPartner.isEDespact\"\r\n [ngIfThen]=\"yes\"\r\n [ngIfElse]=\"no\"\r\n ></ng-template>\r\n\r\n <ng-template #yes>\r\n <div class=\"text-success\">\r\n <span [title]=\"'AbpUi::Yes' | abpLocalization\">\r\n <i class=\"fa fa-check\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #no>\r\n <div class=\"text-danger\">\r\n <span [title]=\"'AbpUi::No' | abpLocalization\">\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::DefaultEDespactPk' | abpLocalization }}\"\r\n prop=\"businessPartner.defaultEDespactPk\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.businessPartner.defaultEDespactPk }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::TCKN_VKN' | abpLocalization }}\"\r\n prop=\"businessPartner.tckN_VKN\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.businessPartner.tckN_VKN }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::BusinessPartnerGroup' | abpLocalization }}\"\r\n prop=\"businessPartnerGroup.groupName\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.businessPartnerGroup?.groupName }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n </ngx-datatable>\r\n </div>\r\n </div>\r\n</abp-page>\r\n\r\n<abp-modal [busy]=\"isModalBusy\" [(visible)]=\"isModalOpen\">\r\n <ng-template #abpHeader>\r\n <h3>\r\n {{ (selected ? 'AbpUi::Edit' : 'eDonusum::NewBusinessPartner') | abpLocalization }}\r\n </h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <form [formGroup]=\"form\" id=\"business-partner\" (ngSubmit)=\"submitForm()\" validateOnSubmit>\r\n <div class=\"mt-2 fade-in-top\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"business-partner-erp-entegration-type\">\r\n {{ 'eDonusum::ErpEntegrationType' | abpLocalization }} *\r\n </label>\r\n\r\n <input\r\n id=\"business-partner-erp-entegration-type\"\r\n formControlName=\"erpEntegrationType\"\r\n class=\"form-control\"\r\n maxlength=\"8\"\r\n autofocus\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"business-partner-erp-id\">\r\n {{ 'eDonusum::ErpId' | abpLocalization }} *\r\n </label>\r\n\r\n <input\r\n id=\"business-partner-erp-id\"\r\n formControlName=\"erpId\"\r\n class=\"form-control\"\r\n maxlength=\"8\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"business-partner-card-type\">\r\n {{ 'eDonusum::CardType' | abpLocalization }} *\r\n </label>\r\n\r\n <input\r\n id=\"business-partner-card-type\"\r\n formControlName=\"cardType\"\r\n class=\"form-control\"\r\n maxlength=\"16\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"business-partner-card-code\">\r\n {{ 'eDonusum::CardCode' | abpLocalization }} *\r\n </label>\r\n\r\n <input\r\n id=\"business-partner-card-code\"\r\n formControlName=\"cardCode\"\r\n class=\"form-control\"\r\n maxlength=\"128\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"business-partner-card-name\">\r\n {{ 'eDonusum::CardName' | abpLocalization }} *\r\n </label>\r\n\r\n <input\r\n id=\"business-partner-card-name\"\r\n formControlName=\"cardName\"\r\n class=\"form-control\"\r\n maxlength=\"256\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"business-partner-foreign-name\">\r\n {{ 'eDonusum::ForeignName' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"business-partner-foreign-name\"\r\n formControlName=\"foreignName\"\r\n class=\"form-control\"\r\n maxlength=\"256\"\r\n />\r\n </div>\r\n <div class=\"form-check mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"business-partner-is-einvoice\"\r\n formControlName=\"isEInvoice\"\r\n class=\"form-check-input\"\r\n />\r\n\r\n <label for=\"business-partner-is-einvoice\" class=\"form-check-label\">\r\n {{ 'eDonusum::IsEInvoice' | abpLocalization }}\r\n </label>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"business-partner-default-einvoice-pk\">\r\n {{ 'eDonusum::DefaultEInvoicePk' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"business-partner-default-einvoice-pk\"\r\n formControlName=\"defaultEInvoicePk\"\r\n class=\"form-control\"\r\n maxlength=\"128\"\r\n />\r\n </div>\r\n <div class=\"form-check mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"business-partner-is-edespact\"\r\n formControlName=\"isEDespact\"\r\n class=\"form-check-input\"\r\n />\r\n\r\n <label for=\"business-partner-is-edespact\" class=\"form-check-label\">\r\n {{ 'eDonusum::IsEDespact' | abpLocalization }}\r\n </label>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"business-partner-default-edespact-pk\">\r\n {{ 'eDonusum::DefaultEDespactPk' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"business-partner-default-edespact-pk\"\r\n formControlName=\"defaultEDespactPk\"\r\n class=\"form-control\"\r\n maxlength=\"128\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"business-partner-tckn-vkn\">\r\n {{ 'eDonusum::TCKN_VKN' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"business-partner-tckn-vkn\"\r\n formControlName=\"tckn_VKN\"\r\n class=\"form-control\"\r\n maxlength=\"16\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"business-partner-business-partner-group-id\">\r\n {{ 'eDonusum::BusinessPartnerGroup' | abpLocalization }} *\r\n </label>\r\n <abp-lookup-input\r\n cid=\"business-partner-business-partner-group-id\"\r\n formControlName=\"businessPartnerGroupId\"\r\n displayNameProp=\"groupName\"\r\n lookupNameProp=\"displayName\"\r\n [getFn]=\"service.getBusinessPartnerGroupLookup\"\r\n [editingData]=\"selected?.businessPartnerGroup\"\r\n ></abp-lookup-input>\r\n </div>\r\n </div>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>\r\n {{ 'AbpUi::Cancel' | abpLocalization }}\r\n </button>\r\n\r\n <abp-button iconClass=\"fa fa-check\" buttonType=\"submit\" formName=\"business-partner\">\r\n {{ 'AbpUi::Save' | abpLocalization }}\r\n </abp-button>\r\n </ng-template>\r\n</abp-modal>\r\n" }]
|
|
111
|
-
}], ctorParameters: function () { return [{ type: i1.ListService }, { type: i1.TrackByService }, { type: i2.BusinessPartnerService }, { type: i3.ConfirmationService }, { type: i4.FormBuilder }]; } });
|
|
112
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVzaW5lc3MtcGFydG5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lLWRvbnVzdW0vc3JjL2xpYi9idXNpbmVzcy1wYXJ0bmVycy9idXNpbmVzcy1wYXJ0bmVyL2NvbXBvbmVudHMvYnVzaW5lc3MtcGFydG5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lLWRvbnVzdW0vc3JjL2xpYi9idXNpbmVzcy1wYXJ0bmVycy9idXNpbmVzcy1wYXJ0bmVyL2NvbXBvbmVudHMvYnVzaW5lc3MtcGFydG5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQU8sV0FBVyxFQUFrQyxNQUFNLGNBQWMsQ0FBQztBQUNoRixPQUFPLEVBQUUsWUFBWSxFQUF1QixNQUFNLHNCQUFzQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBMEIsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7O0FBYWxFLE1BQU0sT0FBTyx3QkFBd0I7SUFrQm5DLFlBQ2tCLElBQWlCLEVBQ2pCLEtBQXFCLEVBQ3JCLE9BQStCLEVBQ3ZDLFlBQWlDLEVBQ2pDLEVBQWU7UUFKUCxTQUFJLEdBQUosSUFBSSxDQUFhO1FBQ2pCLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLFlBQU8sR0FBUCxPQUFPLENBQXdCO1FBQ3ZDLGlCQUFZLEdBQVosWUFBWSxD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ZWRSZXN1bHREdG8sIFRyYWNrQnlTZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHsgQ29uZmlybWF0aW9uLCBDb25maXJtYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xyXG5pbXBvcnQgeyBEYXRlQWRhcHRlciB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkL2V4dGVuc2lvbnMnO1xyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTmdiRGF0ZUFkYXB0ZXIgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IGZpbHRlciwgZmluYWxpemUsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgdHlwZSB7XHJcbiAgR2V0QnVzaW5lc3NQYXJ0bmVyc0lucHV0LFxyXG4gIEJ1c2luZXNzUGFydG5lcldpdGhOYXZpZ2F0aW9uUHJvcGVydGllc0R0byxcclxufSBmcm9tICcuLi8uLi8uLi9wcm94eS9idXNpbmVzcy1wYXJ0bmVycy9tb2RlbHMnO1xyXG5pbXBvcnQgeyBCdXNpbmVzc1BhcnRuZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJveHkvYnVzaW5lc3MtcGFydG5lcnMvYnVzaW5lc3MtcGFydG5lci5zZXJ2aWNlJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItYnVzaW5lc3MtcGFydG5lcicsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5EZWZhdWx0LFxyXG4gIHByb3ZpZGVyczogW0xpc3RTZXJ2aWNlLCB7IHByb3ZpZGU6IE5nYkRhdGVBZGFwdGVyLCB1c2VDbGFzczogRGF0ZUFkYXB0ZXIgfV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2J1c2luZXNzLXBhcnRuZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlczogW10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCdXNpbmVzc1BhcnRuZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGRhdGE6IFBhZ2VkUmVzdWx0RHRvPEJ1c2luZXNzUGFydG5lcldpdGhOYXZpZ2F0aW9uUHJvcGVydGllc0R0bz4gPSB7XHJcbiAgICBpdGVtczogW10sXHJcbiAgICB0b3RhbENvdW50OiAwLFxyXG4gIH07XHJcblxyXG4gIGZpbHRlcnMgPSB7fSBhcyBHZXRCdXNpbmVzc1BhcnRuZXJzSW5wdXQ7XHJcblxyXG4gIGZvcm06IEZvcm1Hcm91cDtcclxuXHJcbiAgaXNGaWx0ZXJzSGlkZGVuID0gdHJ1ZTtcclxuXHJcbiAgaXNNb2RhbEJ1c3kgPSBmYWxzZTtcclxuXHJcbiAgaXNNb2RhbE9wZW4gPSBmYWxzZTtcclxuXHJcbiAgc2VsZWN0ZWQ/OiBCdXNpbmVzc1BhcnRuZXJXaXRoTmF2aWdhdGlvblByb3BlcnRpZXNEdG87XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHJlYWRvbmx5IGxpc3Q6IExpc3RTZXJ2aWNlLFxyXG4gICAgcHVibGljIHJlYWRvbmx5IHRyYWNrOiBUcmFja0J5U2VydmljZSxcclxuICAgIHB1YmxpYyByZWFkb25seSBzZXJ2aWNlOiBCdXNpbmVzc1BhcnRuZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjb25maXJtYXRpb246IENvbmZpcm1hdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlclxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBjb25zdCBnZXREYXRhID0gKHF1ZXJ5OiBBQlAuUGFnZVF1ZXJ5UGFyYW1zKSA9PlxyXG4gICAgICB0aGlzLnNlcnZpY2UuZ2V0TGlzdCh7XHJcbiAgICAgICAgLi4ucXVlcnksXHJcbiAgICAgICAgLi4udGhpcy5maWx0ZXJzLFxyXG4gICAgICAgIGZpbHRlclRleHQ6IHF1ZXJ5LmZpbHRlcixcclxuICAgICAgfSk7XHJcblxyXG4gICAgY29uc3Qgc2V0RGF0YSA9IChsaXN0OiBQYWdlZFJlc3VsdER0bzxCdXNpbmVzc1BhcnRuZXJXaXRoTmF2aWdhdGlvblByb3BlcnRpZXNEdG8+KSA9PlxyXG4gICAgICAodGhpcy5kYXRhID0gbGlzdCk7XHJcblxyXG4gICAgdGhpcy5saXN0Lmhvb2tUb1F1ZXJ5KGdldERhdGEpLnN1YnNjcmliZShzZXREYXRhKTtcclxuICB9XHJcblxyXG4gIGNsZWFyRmlsdGVycygpIHtcclxuICAgIHRoaXMuZmlsdGVycyA9IHt9IGFzIEdldEJ1c2luZXNzUGFydG5lcnNJbnB1dDtcclxuICB9XHJcblxyXG4gIGJ1aWxkRm9ybSgpIHtcclxuICAgIGNvbnN0IHtcclxuICAgICAgZXJwRW50ZWdyYXRpb25UeXBlLFxyXG4gICAgICBlcnBJZCxcclxuICAgICAgY2FyZFR5cGUsXHJcbiAgICAgIGNhcmRDb2RlLFxyXG4gICAgICBjYXJkTmFtZSxcclxuICAgICAgZm9yZWlnbk5hbWUsXHJcbiAgICAgIGlzRUludm9pY2UsXHJcbiAgICAgIGRlZmF1bHRFSW52b2ljZVBrLFxyXG4gICAgICBpc0VEZXNwYWN0LFxyXG4gICAgICBkZWZhdWx0RURlc3BhY3RQayxcclxuICAgICAgdGNrbl9WS04sXHJcbiAgICAgIGJ1c2luZXNzUGFydG5lckdyb3VwSWQsXHJcbiAgICB9ID0gdGhpcy5zZWxlY3RlZD8uYnVzaW5lc3NQYXJ0bmVyIHx8IHt9O1xyXG5cclxuICAgIHRoaXMuZm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICBlcnBFbnRlZ3JhdGlvblR5cGU6IFtcclxuICAgICAgICBlcnBFbnRlZ3JhdGlvblR5cGUgPz8gbnVsbCxcclxuICAgICAgICBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoOCldLFxyXG4gICAgICBdLFxyXG4gICAgICBlcnBJZDogW2VycElkID8/IG51bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1heExlbmd0aCg4KV1dLFxyXG4gICAgICBjYXJkVHlwZTogW2NhcmRUeXBlID8/IG51bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1heExlbmd0aCgxNildXSxcclxuICAgICAgY2FyZENvZGU6IFtjYXJkQ29kZSA/PyBudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMTI4KV1dLFxyXG4gICAgICBjYXJkTmFtZTogW2NhcmROYW1lID8/IG51bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1heExlbmd0aCgyNTYpXV0sXHJcbiAgICAgIGZvcmVpZ25OYW1lOiBbZm9yZWlnbk5hbWUgPz8gbnVsbCwgW1ZhbGlkYXRvcnMubWF4TGVuZ3RoKDI1NildXSxcclxuICAgICAgaXNFSW52b2ljZTogW2ZhbHNlLCBbXV0sXHJcbiAgICAgIGRlZmF1bHRFSW52b2ljZVBrOiBbZGVmYXVsdEVJbnZvaWNlUGsgPz8gbnVsbCwgW1ZhbGlkYXRvcnMubWF4TGVuZ3RoKDEyOCldXSxcclxuICAgICAgaXNFRGVzcGFjdDogW2ZhbHNlLCBbXV0sXHJcbiAgICAgIGRlZmF1bHRFRGVzcGFjdFBrOiBbZGVmYXVsdEVEZXNwYWN0UGsgPz8gbnVsbCwgW1ZhbGlkYXRvcnMubWF4TGVuZ3RoKDEyOCldXSxcclxuICAgICAgdGNrbl9WS046IFt0Y2tuX1ZLTiA/PyBudWxsLCBbVmFsaWRhdG9ycy5tYXhMZW5ndGgoMTYpXV0sXHJcbiAgICAgIGJ1c2luZXNzUGFydG5lckdyb3VwSWQ6IFtidXNpbmVzc1BhcnRuZXJHcm91cElkID8/IG51bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGhpZGVGb3JtKCkge1xyXG4gICAgdGhpcy5pc01vZGFsT3BlbiA9IGZhbHNlO1xyXG4gICAgdGhpcy5mb3JtLnJlc2V0KCk7XHJcbiAgfVxyXG5cclxuICBzaG93Rm9ybSgpIHtcclxuICAgIHRoaXMuYnVpbGRGb3JtKCk7XHJcbiAgICB0aGlzLmlzTW9kYWxPcGVuID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHN1Ym1pdEZvcm0oKSB7XHJcbiAgICBpZiAodGhpcy5mb3JtLmludmFsaWQpIHJldHVybjtcclxuXHJcbiAgICBjb25zdCByZXF1ZXN0ID0gdGhpcy5zZWxlY3RlZFxyXG4gICAgICA/IHRoaXMuc2VydmljZS51cGRhdGUodGhpcy5zZWxlY3RlZC5idXNpbmVzc1BhcnRuZXIuaWQsIHtcclxuICAgICAgICAgIC4uLnRoaXMuZm9ybS52YWx1ZSxcclxuICAgICAgICAgIGNvbmN1cnJlbmN5U3RhbXA6IHRoaXMuc2VsZWN0ZWQuYnVzaW5lc3NQYXJ0bmVyLmNvbmN1cnJlbmN5U3RhbXAsXHJcbiAgICAgICAgfSlcclxuICAgICAgOiB0aGlzLnNlcnZpY2UuY3JlYXRlKHRoaXMuZm9ybS52YWx1ZSk7XHJcblxyXG4gICAgdGhpcy5pc01vZGFsQnVzeSA9IHRydWU7XHJcblxyXG4gICAgcmVxdWVzdFxyXG4gICAgICAucGlwZShcclxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiAodGhpcy5pc01vZGFsQnVzeSA9IGZhbHNlKSksXHJcbiAgICAgICAgdGFwKCgpID0+IHRoaXMuaGlkZUZvcm0oKSlcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKHRoaXMubGlzdC5nZXQpO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlKCkge1xyXG4gICAgdGhpcy5zZWxlY3RlZCA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMuc2hvd0Zvcm0oKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZShyZWNvcmQ6IEJ1c2luZXNzUGFydG5lcldpdGhOYXZpZ2F0aW9uUHJvcGVydGllc0R0bykge1xyXG4gICAgdGhpcy5zZWxlY3RlZCA9IHJlY29yZDtcclxuICAgIHRoaXMuc2hvd0Zvcm0oKTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZShyZWNvcmQ6IEJ1c2luZXNzUGFydG5lcldpdGhOYXZpZ2F0aW9uUHJvcGVydGllc0R0bykge1xyXG4gICAgdGhpcy5jb25maXJtYXRpb25cclxuICAgICAgLndhcm4oJ2VEb251c3VtOjpEZWxldGVDb25maXJtYXRpb25NZXNzYWdlJywgJ2VEb251c3VtOjpBcmVZb3VTdXJlJywge1xyXG4gICAgICAgIG1lc3NhZ2VMb2NhbGl6YXRpb25QYXJhbXM6IFtdLFxyXG4gICAgICB9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBmaWx0ZXIoc3RhdHVzID0+IHN0YXR1cyA9PT0gQ29uZmlybWF0aW9uLlN0YXR1cy5jb25maXJtKSxcclxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5zZXJ2aWNlLmRlbGV0ZShyZWNvcmQuYnVzaW5lc3NQYXJ0bmVyLmlkKSlcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKHRoaXMubGlzdC5nZXQpO1xyXG4gIH1cclxufVxyXG4iLCI8YWJwLXBhZ2UgW3RpdGxlXT1cIidlRG9udXN1bTo6QnVzaW5lc3NQYXJ0bmVycycgfCBhYnBMb2NhbGl6YXRpb25cIj5cclxuICA8YWJwLXBhZ2UtdG9vbGJhci1jb250YWluZXIgY2xhc3M9XCJjb2xcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWxnLWVuZCBwdC0yXCI+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICAqYWJwUGVybWlzc2lvbj1cIidlRG9udXN1bS5CdXNpbmVzc1BhcnRuZXJzLkNyZWF0ZSEnXCJcclxuICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc21cIlxyXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgIChjbGljayk9XCJjcmVhdGUoKVwiXHJcbiAgICAgID5cclxuICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXBsdXMgbWUtMVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICB7eyAnZURvbnVzdW06Ok5ld0J1c2luZXNzUGFydG5lcicgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICA8L2FicC1wYWdlLXRvb2xiYXItY29udGFpbmVyPlxyXG5cclxuICA8YWJwLWFkdmFuY2VkLWVudGl0eS1maWx0ZXJzIGxvY2FsaXphdGlvblNvdXJjZU5hbWU9XCJlRG9udXN1bVwiIFtsaXN0XT1cImxpc3RcIj5cclxuICAgIDxhYnAtYWR2YW5jZWQtZW50aXR5LWZpbHRlcnMtZm9ybT5cclxuICAgICAgPGZvcm0gI2ZpbHRlckZvcm0gKGtleXVwLmVudGVyKT1cImxpc3QuZ2V0KClcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImVycEVudGVncmF0aW9uVHlwZUZpbHRlclwiPlxyXG4gICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpFcnBFbnRlZ3JhdGlvblR5cGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICBpZD1cImVycEVudGVncmF0aW9uVHlwZUZpbHRlclwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMuZXJwRW50ZWdyYXRpb25UeXBlXCJcclxuICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLWF1dG9cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiZXJwSWRGaWx0ZXJcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6RXJwSWQnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICBpZD1cImVycElkRmlsdGVyXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5lcnBJZFwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImNhcmRUeXBlRmlsdGVyXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OkNhcmRUeXBlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgaWQ9XCJjYXJkVHlwZUZpbHRlclwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMuY2FyZFR5cGVcIlxyXG4gICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJjYXJkQ29kZUZpbHRlclwiPlxyXG4gICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpDYXJkQ29kZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIGlkPVwiY2FyZENvZGVGaWx0ZXJcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLmNhcmRDb2RlXCJcclxuICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLWF1dG9cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiY2FyZE5hbWVGaWx0ZXJcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6Q2FyZE5hbWUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICBpZD1cImNhcmROYW1lRmlsdGVyXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5jYXJkTmFtZVwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImZvcmVpZ25OYW1lRmlsdGVyXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OkZvcmVpZ25OYW1lJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgaWQ9XCJmb3JlaWduTmFtZUZpbHRlclwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMuZm9yZWlnbk5hbWVcIlxyXG4gICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJpc0VJbnZvaWNlRmlsdGVyXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OklzRUludm9pY2UnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgPHNlbGVjdFxyXG4gICAgICAgICAgICAgICAgbmFtZT1cImlzRUludm9pY2VcIlxyXG4gICAgICAgICAgICAgICAgaWQ9XCJpc0VJbnZvaWNlRmlsdGVyXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1zZWxlY3QgZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5pc0VJbnZvaWNlXCJcclxuICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgICAoY2hhbmdlKT1cImxpc3QuZ2V0KClcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxvcHRpb24gW25nVmFsdWVdPVwiXCI+PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uIFtuZ1ZhbHVlXT1cInRydWVcIj57eyAnQWJwVWk6OlllcycgfCBhYnBMb2NhbGl6YXRpb24gfX08L29wdGlvbj5cclxuICAgICAgICAgICAgICAgIDxvcHRpb24gW25nVmFsdWVdPVwiZmFsc2VcIj57eyAnQWJwVWk6Ok5vJyB8IGFicExvY2FsaXphdGlvbiB9fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJkZWZhdWx0RUludm9pY2VQa0ZpbHRlclwiPlxyXG4gICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpEZWZhdWx0RUludm9pY2VQaycgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIGlkPVwiZGVmYXVsdEVJbnZvaWNlUGtGaWx0ZXJcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLmRlZmF1bHRFSW52b2ljZVBrXCJcclxuICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLWF1dG9cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaXNFRGVzcGFjdEZpbHRlclwiPlxyXG4gICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpJc0VEZXNwYWN0JyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxzZWxlY3RcclxuICAgICAgICAgICAgICAgIG5hbWU9XCJpc0VEZXNwYWN0XCJcclxuICAgICAgICAgICAgICAgIGlkPVwiaXNFRGVzcGFjdEZpbHRlclwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tc2VsZWN0IGZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMuaXNFRGVzcGFjdFwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJsaXN0LmdldCgpXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uIFtuZ1ZhbHVlXT1cIlwiPjwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgPG9wdGlvbiBbbmdWYWx1ZV09XCJ0cnVlXCI+e3sgJ0FicFVpOjpZZXMnIHwgYWJwTG9jYWxpemF0aW9uIH19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uIFtuZ1ZhbHVlXT1cImZhbHNlXCI+e3sgJ0FicFVpOjpObycgfCBhYnBMb2NhbGl6YXRpb24gfX08L29wdGlvbj5cclxuICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLWF1dG9cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiZGVmYXVsdEVEZXNwYWN0UGtGaWx0ZXJcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6RGVmYXVsdEVEZXNwYWN0UGsnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICBpZD1cImRlZmF1bHRFRGVzcGFjdFBrRmlsdGVyXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5kZWZhdWx0RURlc3BhY3RQa1wiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cInRja25fVktORmlsdGVyXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OlRDS05fVktOJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgaWQ9XCJ0Y2tuX1ZLTkZpbHRlclwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMudGNrbl9WS05cIlxyXG4gICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJidXNpbmVzc1BhcnRuZXJHcm91cElkRmlsdGVyXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OkJ1c2luZXNzUGFydG5lckdyb3VwJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGFicC1sb29rdXAtaW5wdXRcclxuICAgICAgICAgICAgICAgIGNpZD1cImJ1c2luZXNzUGFydG5lckdyb3VwSWRGaWx0ZXJcIlxyXG4gICAgICAgICAgICAgICAgZGlzcGxheU5hbWVQcm9wPVwiZ3JvdXBOYW1lXCJcclxuICAgICAgICAgICAgICAgIGxvb2t1cE5hbWVQcm9wPVwiZGlzcGxheU5hbWVcIlxyXG4gICAgICAgICAgICAgICAgW2dldEZuXT1cInNlcnZpY2UuZ2V0QnVzaW5lc3NQYXJ0bmVyR3JvdXBMb29rdXBcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLmJ1c2luZXNzUGFydG5lckdyb3VwSWRcIlxyXG4gICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcclxuICAgICAgICAgICAgICA+PC9hYnAtbG9va3VwLWlucHV0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLWF1dG8gYWxpZ24tc2VsZi1lbmQgbWItM1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC02IGNvbC1zbS1hdXRvIGQtZ3JpZFwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtcHJpbWFyeVwiIChjbGljayk9XCJjbGVhckZpbHRlcnMoKVwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3Bhbj57eyAnQWJwVWk6OkNsZWFyJyB8IGFicExvY2FsaXphdGlvbiB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNiBjb2wtc20tYXV0byBkLWdyaWRcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgKGNsaWNrKT1cImxpc3QuZ2V0KClcIj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgJ0FicFVpOjpSZWZyZXNoJyB8IGFicExvY2FsaXphdGlvbiB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Zvcm0+XHJcbiAgICA8L2FicC1hZHZhbmNlZC1lbnRpdHktZmlsdGVycy1mb3JtPlxyXG4gIDwvYWJwLWFkdmFuY2VkLWVudGl0eS1maWx0ZXJzPlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiY2FyZFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPlxyXG4gICAgICA8bmd4LWRhdGF0YWJsZSBbcm93c109XCJkYXRhLml0ZW1zXCIgW2NvdW50XT1cImRhdGEudG90YWxDb3VudFwiIFtsaXN0XT1cImxpc3RcIiBkZWZhdWx0PlxyXG4gICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtblxyXG4gICAgICAgICAgW25hbWVdPVwiJ0FicFVpOjpBY3Rpb25zJyB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgICBbbWF4V2lkdGhdPVwiMTUwXCJcclxuICAgICAgICAgIFt3aWR0aF09XCIxNTBcIlxyXG4gICAgICAgICAgW3NvcnRhYmxlXT1cImZhbHNlXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIGxldC1pPVwicm93SW5kZXhcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDxkaXYgbmdiRHJvcGRvd24gY29udGFpbmVyPVwiYm9keVwiIGNsYXNzPVwiZC1pbmxpbmUtYmxvY2tcIj5cclxuICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc20gZHJvcGRvd24tdG9nZ2xlXCJcclxuICAgICAgICAgICAgICAgIGRhdGEtdG9nZ2xlPVwiZHJvcGRvd25cIlxyXG4gICAgICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgbmdiRHJvcGRvd25Ub2dnbGVcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWNvZyBtZS0xXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAge3sgJ0FicFVpOjpBY3Rpb25zJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IG5nYkRyb3Bkb3duTWVudT5cclxuICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgbmdiRHJvcGRvd25JdGVtXHJcbiAgICAgICAgICAgICAgICAgICphYnBQZXJtaXNzaW9uPVwiJ2VEb251c3VtLkJ1c2luZXNzUGFydG5lcnMuRWRpdCdcIlxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwidXBkYXRlKHJvdylcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICB7eyAnQWJwVWk6OkVkaXQnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgIG5nYkRyb3Bkb3duSXRlbVxyXG4gICAgICAgICAgICAgICAgICAqYWJwUGVybWlzc2lvbj1cIidlRG9udXN1bS5CdXNpbmVzc1BhcnRuZXJzLkRlbGV0ZSdcIlxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZGVsZXRlKHJvdylcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICB7eyAnQWJwVWk6OkRlbGV0ZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuXHJcbiAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uXHJcbiAgICAgICAgICBuYW1lPVwie3sgJ2VEb251c3VtOjpFcnBFbnRlZ3JhdGlvblR5cGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcclxuICAgICAgICAgIHByb3A9XCJidXNpbmVzc1BhcnRuZXIuZXJwRW50ZWdyYXRpb25UeXBlXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAge3sgcm93LmJ1c2luZXNzUGFydG5lci5lcnBFbnRlZ3JhdGlvblR5cGUgfX1cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuXHJcbiAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uXHJcbiAgICAgICAgICBuYW1lPVwie3sgJ2VEb251c3VtOjpFcnBJZCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cIlxyXG4gICAgICAgICAgcHJvcD1cImJ1c2luZXNzUGFydG5lci5lcnBJZFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIHt7IHJvdy5idXNpbmVzc1BhcnRuZXIuZXJwSWQgfX1cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuXHJcbiAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uXHJcbiAgICAgICAgICBuYW1lPVwie3sgJ2VEb251c3VtOjpDYXJkVHlwZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cIlxyXG4gICAgICAgICAgcHJvcD1cImJ1c2luZXNzUGFydG5lci5jYXJkVHlwZVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIHt7IHJvdy5idXNpbmVzc1BhcnRuZXIuY2FyZFR5cGUgfX1cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuXHJcbiAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uXHJcbiAgICAgICAgICBuYW1lPVwie3sgJ2VEb251c3VtOjpDYXJkQ29kZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cIlxyXG4gICAgICAgICAgcHJvcD1cImJ1c2luZXNzUGFydG5lci5jYXJkQ29kZVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIHt7IHJvdy5idXNpbmVzc1BhcnRuZXIuY2FyZENvZGUgfX1cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuXHJcbiAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uXHJcbiAgICAgICAgICBuYW1lPVwie3sgJ2VEb251c3VtOjpDYXJkTmFtZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cIlxyXG4gICAgICAgICAgcHJvcD1cImJ1c2luZXNzUGFydG5lci5jYXJkTmFtZVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIHt7IHJvdy5idXNpbmVzc1BhcnRuZXIuY2FyZE5hbWUgfX1cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuXHJcbiAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uXHJcbiAgICAgICAgICBuYW1lPVwie3sgJ2VEb251c3VtOjpGb3JlaWduTmFtZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cIlxyXG4gICAgICAgICAgcHJvcD1cImJ1c2luZXNzUGFydG5lci5mb3JlaWduTmFtZVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIHt7IHJvdy5idXNpbmVzc1BhcnRuZXIuZm9yZWlnbk5hbWUgfX1cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuXHJcbiAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uXHJcbiAgICAgICAgICBuYW1lPVwie3sgJ2VEb251c3VtOjpJc0VJbnZvaWNlJyB8IGFicExvY2FsaXphdGlvbiB9fVwiXHJcbiAgICAgICAgICBwcm9wPVwiYnVzaW5lc3NQYXJ0bmVyLmlzRUludm9pY2VcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGVcclxuICAgICAgICAgICAgICBbbmdJZl09XCJyb3cuYnVzaW5lc3NQYXJ0bmVyLmlzRUludm9pY2VcIlxyXG4gICAgICAgICAgICAgIFtuZ0lmVGhlbl09XCJ5ZXNcIlxyXG4gICAgICAgICAgICAgIFtuZ0lmRWxzZV09XCJub1wiXHJcbiAgICAgICAgICAgID48L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICN5ZXM+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc3VjY2Vzc1wiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gW3RpdGxlXT1cIidBYnBVaTo6WWVzJyB8IGFicExvY2FsaXphdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWNoZWNrXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNubz5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1kYW5nZXJcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIFt0aXRsZV09XCInQWJwVWk6Ok5vJyB8IGFicExvY2FsaXphdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXRpbWVzXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG5cclxuICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW5cclxuICAgICAgICAgIG5hbWU9XCJ7eyAnZURvbnVzdW06OkRlZmF1bHRFSW52b2ljZVBrJyB8IGFicExvY2FsaXphdGlvbiB9fVwiXHJcbiAgICAgICAgICBwcm9wPVwiYnVzaW5lc3NQYXJ0bmVyLmRlZmF1bHRFSW52b2ljZVBrXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAge3sgcm93LmJ1c2luZXNzUGFydG5lci5kZWZhdWx0RUludm9pY2VQayB9fVxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG5cclxuICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW5cclxuICAgICAgICAgIG5hbWU9XCJ7eyAnZURvbnVzdW06OklzRURlc3BhY3QnIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcclxuICAgICAgICAgIHByb3A9XCJidXNpbmVzc1BhcnRuZXIuaXNFRGVzcGFjdFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxyXG4gICAgICAgICAgICAgIFtuZ0lmXT1cInJvdy5idXNpbmVzc1BhcnRuZXIuaXNFRGVzcGFjdFwiXHJcbiAgICAgICAgICAgICAgW25nSWZUaGVuXT1cInllc1wiXHJcbiAgICAgICAgICAgICAgW25nSWZFbHNlXT1cIm5vXCJcclxuICAgICAgICAgICAgPjwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI3llcz5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zdWNjZXNzXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBbdGl0bGVdPVwiJ0FicFVpOjpZZXMnIHwgYWJwTG9jYWxpemF0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtY2hlY2tcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWRhbmdlclwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gW3RpdGxlXT1cIidBYnBVaTo6Tm8nIHwgYWJwTG9jYWxpemF0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcblxyXG4gICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtblxyXG4gICAgICAgICAgbmFtZT1cInt7ICdlRG9udXN1bTo6RGVmYXVsdEVEZXNwYWN0UGsnIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcclxuICAgICAgICAgIHByb3A9XCJidXNpbmVzc1BhcnRuZXIuZGVmYXVsdEVEZXNwYWN0UGtcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICB7eyByb3cuYnVzaW5lc3NQYXJ0bmVyLmRlZmF1bHRFRGVzcGFjdFBrIH19XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcblxyXG4gICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtblxyXG4gICAgICAgICAgbmFtZT1cInt7ICdlRG9udXN1bTo6VENLTl9WS04nIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcclxuICAgICAgICAgIHByb3A9XCJidXNpbmVzc1BhcnRuZXIudGNrTl9WS05cIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICB7eyByb3cuYnVzaW5lc3NQYXJ0bmVyLnRja05fVktOIH19XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcblxyXG4gICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtblxyXG4gICAgICAgICAgbmFtZT1cInt7ICdlRG9udXN1bTo6QnVzaW5lc3NQYXJ0bmVyR3JvdXAnIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcclxuICAgICAgICAgIHByb3A9XCJidXNpbmVzc1BhcnRuZXJHcm91cC5ncm91cE5hbWVcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICB7eyByb3cuYnVzaW5lc3NQYXJ0bmVyR3JvdXA/Lmdyb3VwTmFtZSB9fVxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG4gICAgICA8L25neC1kYXRhdGFibGU+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9hYnAtcGFnZT5cclxuXHJcbjxhYnAtbW9kYWwgW2J1c3ldPVwiaXNNb2RhbEJ1c3lcIiBbKHZpc2libGUpXT1cImlzTW9kYWxPcGVuXCI+XHJcbiAgPG5nLXRlbXBsYXRlICNhYnBIZWFkZXI+XHJcbiAgICA8aDM+XHJcbiAgICAgIHt7IChzZWxlY3RlZCA/ICdBYnBVaTo6RWRpdCcgOiAnZURvbnVzdW06Ok5ld0J1c2luZXNzUGFydG5lcicpIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICA8L2gzPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gIDxuZy10ZW1wbGF0ZSAjYWJwQm9keT5cclxuICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiIGlkPVwiYnVzaW5lc3MtcGFydG5lclwiIChuZ1N1Ym1pdCk9XCJzdWJtaXRGb3JtKClcIiB2YWxpZGF0ZU9uU3VibWl0PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibXQtMiBmYWRlLWluLXRvcFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiYnVzaW5lc3MtcGFydG5lci1lcnAtZW50ZWdyYXRpb24tdHlwZVwiPlxyXG4gICAgICAgICAgICB7eyAnZURvbnVzdW06OkVycEVudGVncmF0aW9uVHlwZScgfCBhYnBMb2NhbGl6YXRpb24gfX0gKlxyXG4gICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgaWQ9XCJidXNpbmVzcy1wYXJ0bmVyLWVycC1lbnRlZ3JhdGlvbi10eXBlXCJcclxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZXJwRW50ZWdyYXRpb25UeXBlXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICBtYXhsZW5ndGg9XCI4XCJcclxuICAgICAgICAgICAgYXV0b2ZvY3VzXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiYnVzaW5lc3MtcGFydG5lci1lcnAtaWRcIj5cclxuICAgICAgICAgICAge3sgJ2VEb251c3VtOjpFcnBJZCcgfCBhYnBMb2NhbGl6YXRpb24gfX0gKlxyXG4gICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgaWQ9XCJidXNpbmVzcy1wYXJ0bmVyLWVycC1pZFwiXHJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImVycElkXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICBtYXhsZW5ndGg9XCI4XCJcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJidXNpbmVzcy1wYXJ0bmVyLWNhcmQtdHlwZVwiPlxyXG4gICAgICAgICAgICB7eyAnZURvbnVzdW06OkNhcmRUeXBlJyB8IGFicExvY2FsaXphdGlvbiB9fSAqXHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICBpZD1cImJ1c2luZXNzLXBhcnRuZXItY2FyZC10eXBlXCJcclxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY2FyZFR5cGVcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgIG1heGxlbmd0aD1cIjE2XCJcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJidXNpbmVzcy1wYXJ0bmVyLWNhcmQtY29kZVwiPlxyXG4gICAgICAgICAgICB7eyAnZURvbnVzdW06OkNhcmRDb2RlJyB8IGFicExvY2FsaXphdGlvbiB9fSAqXHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICBpZD1cImJ1c2luZXNzLXBhcnRuZXItY2FyZC1jb2RlXCJcclxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY2FyZENvZGVcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgIG1heGxlbmd0aD1cIjEyOFwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiYnVzaW5lc3MtcGFydG5lci1jYXJkLW5hbWVcIj5cclxuICAgICAgICAgICAge3sgJ2VEb251c3VtOjpDYXJkTmFtZScgfCBhYnBMb2NhbGl6YXRpb24gfX0gKlxyXG4gICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgaWQ9XCJidXNpbmVzcy1wYXJ0bmVyLWNhcmQtbmFtZVwiXHJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImNhcmROYW1lXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICBtYXhsZW5ndGg9XCIyNTZcIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImJ1c2luZXNzLXBhcnRuZXItZm9yZWlnbi1uYW1lXCI+XHJcbiAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6Rm9yZWlnbk5hbWUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICBpZD1cImJ1c2luZXNzLXBhcnRuZXItZm9yZWlnbi1uYW1lXCJcclxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZm9yZWlnbk5hbWVcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgIG1heGxlbmd0aD1cIjI1NlwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIG1iLTNcIj5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICBpZD1cImJ1c2luZXNzLXBhcnRuZXItaXMtZWludm9pY2VcIlxyXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJpc0VJbnZvaWNlXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCJcclxuICAgICAgICAgIC8+XHJcblxyXG4gICAgICAgICAgPGxhYmVsIGZvcj1cImJ1c2luZXNzLXBhcnRuZXItaXMtZWludm9pY2VcIiBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIj5cclxuICAgICAgICAgICAge3sgJ2VEb251c3VtOjpJc0VJbnZvaWNlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImJ1c2luZXNzLXBhcnRuZXItZGVmYXVsdC1laW52b2ljZS1wa1wiPlxyXG4gICAgICAgICAgICB7eyAnZURvbnVzdW06OkRlZmF1bHRFSW52b2ljZVBrJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgaWQ9XCJidXNpbmVzcy1wYXJ0bmVyLWRlZmF1bHQtZWludm9pY2UtcGtcIlxyXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJkZWZhdWx0RUludm9pY2VQa1wiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgbWF4bGVuZ3RoPVwiMTI4XCJcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgbWItM1wiPlxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgIGlkPVwiYnVzaW5lc3MtcGFydG5lci1pcy1lZGVzcGFjdFwiXHJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImlzRURlc3BhY3RcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIlxyXG4gICAgICAgICAgLz5cclxuXHJcbiAgICAgICAgICA8bGFiZWwgZm9yPVwiYnVzaW5lc3MtcGFydG5lci1pcy1lZGVzcGFjdFwiIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiPlxyXG4gICAgICAgICAgICB7eyAnZURvbnVzdW06OklzRURlc3BhY3QnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiYnVzaW5lc3MtcGFydG5lci1kZWZhdWx0LWVkZXNwYWN0LXBrXCI+XHJcbiAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6RGVmYXVsdEVEZXNwYWN0UGsnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICBpZD1cImJ1c2luZXNzLXBhcnRuZXItZGVmYXVsdC1lZGVzcGFjdC1wa1wiXHJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImRlZmF1bHRFRGVzcGFjdFBrXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICBtYXhsZW5ndGg9XCIxMjhcIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImJ1c2luZXNzLXBhcnRuZXItdGNrbi12a25cIj5cclxuICAgICAgICAgICAge3sgJ2VEb251c3VtOjpUQ0tOX1ZLTicgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIGlkPVwiYnVzaW5lc3MtcGFydG5lci10Y2tuLXZrblwiXHJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInRja25fVktOXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICBtYXhsZW5ndGg9XCIxNlwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiYnVzaW5lc3MtcGFydG5lci1idXNpbmVzcy1wYXJ0bmVyLWdyb3VwLWlkXCI+XHJcbiAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6QnVzaW5lc3NQYXJ0bmVyR3JvdXAnIHwgYWJwTG9jYWxpemF0aW9uIH19ICpcclxuICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICA8YWJwLWxvb2t1cC1pbnB1dFxyXG4gICAgICAgICAgICBjaWQ9XCJidXNpbmVzcy1wYXJ0bmVyLWJ1c2luZXNzLXBhcnRuZXItZ3JvdXAtaWRcIlxyXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJidXNpbmVzc1BhcnRuZXJHcm91cElkXCJcclxuICAgICAgICAgICAgZGlzcGxheU5hbWVQcm9wPVwiZ3JvdXBOYW1lXCJcclxuICAgICAgICAgICAgbG9va3VwTmFtZVByb3A9XCJkaXNwbGF5TmFtZVwiXHJcbiAgICAgICAgICAgIFtnZXRGbl09XCJzZXJ2aWNlLmdldEJ1c2luZXNzUGFydG5lckdyb3VwTG9va3VwXCJcclxuICAgICAgICAgICAgW2VkaXRpbmdEYXRhXT1cInNlbGVjdGVkPy5idXNpbmVzc1BhcnRuZXJHcm91cFwiXHJcbiAgICAgICAgICA+PC9hYnAtbG9va3VwLWlucHV0PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZm9ybT5cclxuICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICA8bmctdGVtcGxhdGUgI2FicEZvb3Rlcj5cclxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnlcIiBhYnBDbG9zZT5cclxuICAgICAge3sgJ0FicFVpOjpDYW5jZWwnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICA8L2J1dHRvbj5cclxuXHJcbiAgICA8YWJwLWJ1dHRvbiBpY29uQ2xhc3M9XCJmYSBmYS1jaGVja1wiIGJ1dHRvblR5cGU9XCJzdWJtaXRcIiBmb3JtTmFtZT1cImJ1c2luZXNzLXBhcnRuZXJcIj5cclxuICAgICAge3sgJ0FicFVpOjpTYXZlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgPC9hYnAtYnV0dG9uPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbjwvYWJwLW1vZGFsPlxyXG4iXX0=
|
|
157
|
+
args: [{ selector: 'lib-business-partner', changeDetection: ChangeDetectionStrategy.Default, providers: [ListService, { provide: NgbDateAdapter, useClass: DateAdapter }], template: "<abp-page [title]=\"'eDonusum::BusinessPartners' | abpLocalization\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"text-lg-end pt-2\">\r\n <button *abpPermission=\"'eDonusum.BusinessPartners.Create!'\" class=\"btn btn-info btn-sm\" type=\"button\"\r\n style=\"margin-right: 5px;\"\r\n (click)=\"triggerGetBusinessPartnerFromConnector()\"\r\n [disabled]=\"isTriggerGetBusinessPartnerBusy\">\r\n <i class=\"fa fa-download me-1\" aria-hidden=\"true\"></i>\r\n <ng-container *ngIf=\"!isTriggerGetBusinessPartnerBusy\">SAP'den Carileri \u00C7ek</ng-container>\r\n <ng-container *ngIf=\"isTriggerGetBusinessPartnerBusy\">SAP'den \u00C7ekiliyor... ({{ triggerElapsedSeconds }}s)</ng-container>\r\n </button>\r\n <button\r\n *abpPermission=\"'eDonusum.BusinessPartners.Create!'\"\r\n class=\"btn btn-primary btn-sm\"\r\n type=\"button\"\r\n (click)=\"create()\"\r\n >\r\n <i class=\"fa fa-plus me-1\" aria-hidden=\"true\"></i>\r\n {{ 'eDonusum::NewBusinessPartner' | abpLocalization }}\r\n </button>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <abp-advanced-entity-filters localizationSourceName=\"eDonusum\" [list]=\"list\">\r\n <abp-advanced-entity-filters-form>\r\n <form #filterForm (keyup.enter)=\"list.get()\">\r\n <div class=\"row\">\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"erpEntegrationTypeFilter\">\r\n {{ 'eDonusum::ErpEntegrationType' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"erpEntegrationTypeFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.erpEntegrationType\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"erpIdFilter\">\r\n {{ 'eDonusum::ErpId' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"erpIdFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.erpId\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"cardTypeFilter\">\r\n {{ 'eDonusum::CardType' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"cardTypeFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.cardType\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"cardCodeFilter\">\r\n {{ 'eDonusum::CardCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"cardCodeFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.cardCode\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"cardNameFilter\">\r\n {{ 'eDonusum::CardName' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"cardNameFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.cardName\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"foreignNameFilter\">\r\n {{ 'eDonusum::ForeignName' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"foreignNameFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.foreignName\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"isEInvoiceFilter\">\r\n {{ 'eDonusum::IsEInvoice' | abpLocalization }}\r\n </label>\r\n\r\n <select\r\n name=\"isEInvoice\"\r\n id=\"isEInvoiceFilter\"\r\n class=\"form-select form-control\"\r\n [(ngModel)]=\"filters.isEInvoice\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n (change)=\"list.get()\"\r\n >\r\n <option [ngValue]=\"\"></option>\r\n <option [ngValue]=\"true\">{{ 'AbpUi::Yes' | abpLocalization }}</option>\r\n <option [ngValue]=\"false\">{{ 'AbpUi::No' | abpLocalization }}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"defaultEInvoicePkFilter\">\r\n {{ 'eDonusum::DefaultEInvoicePk' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"defaultEInvoicePkFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.defaultEInvoicePk\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"isEDespactFilter\">\r\n {{ 'eDonusum::IsEDespact' | abpLocalization }}\r\n </label>\r\n\r\n <select\r\n name=\"isEDespact\"\r\n id=\"isEDespactFilter\"\r\n class=\"form-select form-control\"\r\n [(ngModel)]=\"filters.isEDespact\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n (change)=\"list.get()\"\r\n >\r\n <option [ngValue]=\"\"></option>\r\n <option [ngValue]=\"true\">{{ 'AbpUi::Yes' | abpLocalization }}</option>\r\n <option [ngValue]=\"false\">{{ 'AbpUi::No' | abpLocalization }}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"defaultEDespactPkFilter\">\r\n {{ 'eDonusum::DefaultEDespactPk' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"defaultEDespactPkFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.defaultEDespactPk\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"tckn_VKNFilter\">\r\n {{ 'eDonusum::TCKN_VKN' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"tckn_VKNFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.tckn_VKN\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"businessPartnerGroupIdFilter\">\r\n {{ 'eDonusum::BusinessPartnerGroup' | abpLocalization }}\r\n </label>\r\n <abp-lookup-input\r\n cid=\"businessPartnerGroupIdFilter\"\r\n displayNameProp=\"groupName\"\r\n lookupNameProp=\"displayName\"\r\n [getFn]=\"service.getBusinessPartnerGroupLookup\"\r\n [(ngModel)]=\"filters.businessPartnerGroupId\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n ></abp-lookup-input>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto align-self-end mb-3\">\r\n <div class=\"row\">\r\n <div class=\"col-6 col-sm-auto d-grid\">\r\n <button type=\"button\" class=\"btn btn-outline-primary\" (click)=\"clearFilters()\">\r\n <span>{{ 'AbpUi::Clear' | abpLocalization }}</span>\r\n </button>\r\n </div>\r\n <div class=\"col-6 col-sm-auto d-grid\">\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"list.get()\">\r\n <span>{{ 'AbpUi::Refresh' | abpLocalization }}</span>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n </abp-advanced-entity-filters-form>\r\n </abp-advanced-entity-filters>\r\n\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <ngx-datatable [rows]=\"data.items\" [count]=\"data.totalCount\" [list]=\"list\" default>\r\n <ngx-datatable-column\r\n [name]=\"'AbpUi::Actions' | abpLocalization\"\r\n [maxWidth]=\"150\"\r\n [width]=\"150\"\r\n [sortable]=\"false\"\r\n >\r\n <ng-template let-row=\"row\" let-i=\"rowIndex\" ngx-datatable-cell-template>\r\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n <button\r\n class=\"btn btn-primary btn-sm dropdown-toggle\"\r\n data-toggle=\"dropdown\"\r\n aria-haspopup=\"true\"\r\n ngbDropdownToggle\r\n >\r\n <i class=\"fa fa-cog me-1\" aria-hidden=\"true\"></i>\r\n {{ 'AbpUi::Actions' | abpLocalization }}\r\n </button>\r\n\r\n <div ngbDropdownMenu>\r\n <button\r\n ngbDropdownItem\r\n *abpPermission=\"'eDonusum.BusinessPartners.Edit'\"\r\n (click)=\"update(row)\"\r\n >\r\n {{ 'AbpUi::Edit' | abpLocalization }}\r\n </button>\r\n\r\n <button\r\n ngbDropdownItem\r\n *abpPermission=\"'eDonusum.BusinessPartners.Delete'\"\r\n (click)=\"delete(row)\"\r\n >\r\n {{ 'AbpUi::Delete' | abpLocalization }}\r\n </button>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::ErpEntegrationType' | abpLocalization }}\"\r\n prop=\"businessPartner.erpEntegrationType\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.businessPartner.erpEntegrationType }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::ErpId' | abpLocalization }}\"\r\n prop=\"businessPartner.erpId\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.businessPartner.erpId }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::CardType' | abpLocalization }}\"\r\n prop=\"businessPartner.cardType\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.businessPartner.cardType }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::CardCode' | abpLocalization }}\"\r\n prop=\"businessPartner.cardCode\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.businessPartner.cardCode }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::CardName' | abpLocalization }}\"\r\n prop=\"businessPartner.cardName\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.businessPartner.cardName }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::ForeignName' | abpLocalization }}\"\r\n prop=\"businessPartner.foreignName\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.businessPartner.foreignName }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::IsEInvoice' | abpLocalization }}\"\r\n prop=\"businessPartner.isEInvoice\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n <ng-template\r\n [ngIf]=\"row.businessPartner.isEInvoice\"\r\n [ngIfThen]=\"yes\"\r\n [ngIfElse]=\"no\"\r\n ></ng-template>\r\n\r\n <ng-template #yes>\r\n <div class=\"text-success\">\r\n <span [title]=\"'AbpUi::Yes' | abpLocalization\">\r\n <i class=\"fa fa-check\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #no>\r\n <div class=\"text-danger\">\r\n <span [title]=\"'AbpUi::No' | abpLocalization\">\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::DefaultEInvoicePk' | abpLocalization }}\"\r\n prop=\"businessPartner.defaultEInvoicePk\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.businessPartner.defaultEInvoicePk }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::IsEDespact' | abpLocalization }}\"\r\n prop=\"businessPartner.isEDespact\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n <ng-template\r\n [ngIf]=\"row.businessPartner.isEDespact\"\r\n [ngIfThen]=\"yes\"\r\n [ngIfElse]=\"no\"\r\n ></ng-template>\r\n\r\n <ng-template #yes>\r\n <div class=\"text-success\">\r\n <span [title]=\"'AbpUi::Yes' | abpLocalization\">\r\n <i class=\"fa fa-check\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #no>\r\n <div class=\"text-danger\">\r\n <span [title]=\"'AbpUi::No' | abpLocalization\">\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::DefaultEDespactPk' | abpLocalization }}\"\r\n prop=\"businessPartner.defaultEDespactPk\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.businessPartner.defaultEDespactPk }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::TCKN_VKN' | abpLocalization }}\"\r\n prop=\"businessPartner.tckN_VKN\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.businessPartner.tckN_VKN }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'eDonusum::BusinessPartnerGroup' | abpLocalization }}\"\r\n prop=\"businessPartnerGroup.groupName\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.businessPartnerGroup?.groupName }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n </ngx-datatable>\r\n </div>\r\n </div>\r\n</abp-page>\r\n\r\n<abp-modal [busy]=\"isModalBusy\" [(visible)]=\"isModalOpen\">\r\n <ng-template #abpHeader>\r\n <h3>\r\n {{ (selected ? 'AbpUi::Edit' : 'eDonusum::NewBusinessPartner') | abpLocalization }}\r\n </h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <form [formGroup]=\"form\" id=\"business-partner\" (ngSubmit)=\"submitForm()\" validateOnSubmit>\r\n <div class=\"mt-2 fade-in-top\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"business-partner-erp-entegration-type\">\r\n {{ 'eDonusum::ErpEntegrationType' | abpLocalization }} *\r\n </label>\r\n\r\n <input\r\n id=\"business-partner-erp-entegration-type\"\r\n formControlName=\"erpEntegrationType\"\r\n class=\"form-control\"\r\n maxlength=\"8\"\r\n autofocus\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"business-partner-erp-id\">\r\n {{ 'eDonusum::ErpId' | abpLocalization }} *\r\n </label>\r\n\r\n <input\r\n id=\"business-partner-erp-id\"\r\n formControlName=\"erpId\"\r\n class=\"form-control\"\r\n maxlength=\"8\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"business-partner-card-type\">\r\n {{ 'eDonusum::CardType' | abpLocalization }} *\r\n </label>\r\n\r\n <input\r\n id=\"business-partner-card-type\"\r\n formControlName=\"cardType\"\r\n class=\"form-control\"\r\n maxlength=\"16\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"business-partner-card-code\">\r\n {{ 'eDonusum::CardCode' | abpLocalization }} *\r\n </label>\r\n\r\n <input\r\n id=\"business-partner-card-code\"\r\n formControlName=\"cardCode\"\r\n class=\"form-control\"\r\n maxlength=\"128\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"business-partner-card-name\">\r\n {{ 'eDonusum::CardName' | abpLocalization }} *\r\n </label>\r\n\r\n <input\r\n id=\"business-partner-card-name\"\r\n formControlName=\"cardName\"\r\n class=\"form-control\"\r\n maxlength=\"256\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"business-partner-foreign-name\">\r\n {{ 'eDonusum::ForeignName' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"business-partner-foreign-name\"\r\n formControlName=\"foreignName\"\r\n class=\"form-control\"\r\n maxlength=\"256\"\r\n />\r\n </div>\r\n <div class=\"form-check mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"business-partner-is-einvoice\"\r\n formControlName=\"isEInvoice\"\r\n class=\"form-check-input\"\r\n />\r\n\r\n <label for=\"business-partner-is-einvoice\" class=\"form-check-label\">\r\n {{ 'eDonusum::IsEInvoice' | abpLocalization }}\r\n </label>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"business-partner-default-einvoice-pk\">\r\n {{ 'eDonusum::DefaultEInvoicePk' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"business-partner-default-einvoice-pk\"\r\n formControlName=\"defaultEInvoicePk\"\r\n class=\"form-control\"\r\n maxlength=\"128\"\r\n />\r\n </div>\r\n <div class=\"form-check mb-3\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"business-partner-is-edespact\"\r\n formControlName=\"isEDespact\"\r\n class=\"form-check-input\"\r\n />\r\n\r\n <label for=\"business-partner-is-edespact\" class=\"form-check-label\">\r\n {{ 'eDonusum::IsEDespact' | abpLocalization }}\r\n </label>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"business-partner-default-edespact-pk\">\r\n {{ 'eDonusum::DefaultEDespactPk' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"business-partner-default-edespact-pk\"\r\n formControlName=\"defaultEDespactPk\"\r\n class=\"form-control\"\r\n maxlength=\"128\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"business-partner-tckn-vkn\">\r\n {{ 'eDonusum::TCKN_VKN' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"business-partner-tckn-vkn\"\r\n formControlName=\"tckn_VKN\"\r\n class=\"form-control\"\r\n maxlength=\"16\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"business-partner-business-partner-group-id\">\r\n {{ 'eDonusum::BusinessPartnerGroup' | abpLocalization }} *\r\n </label>\r\n <abp-lookup-input\r\n cid=\"business-partner-business-partner-group-id\"\r\n formControlName=\"businessPartnerGroupId\"\r\n displayNameProp=\"groupName\"\r\n lookupNameProp=\"displayName\"\r\n [getFn]=\"service.getBusinessPartnerGroupLookup\"\r\n [editingData]=\"selected?.businessPartnerGroup\"\r\n ></abp-lookup-input>\r\n </div>\r\n </div>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>\r\n {{ 'AbpUi::Cancel' | abpLocalization }}\r\n </button>\r\n\r\n <abp-button iconClass=\"fa fa-check\" buttonType=\"submit\" formName=\"business-partner\">\r\n {{ 'AbpUi::Save' | abpLocalization }}\r\n </abp-button>\r\n </ng-template>\r\n</abp-modal>\r\n" }]
|
|
158
|
+
}], ctorParameters: function () { return [{ type: i1.ListService }, { type: i1.TrackByService }, { type: i2.BusinessPartnerService }, { type: i3.ConfirmationService }, { type: i4.FormBuilder }, { type: i5.HitBusinessPartnerService }, { type: i3.ToasterService }]; } });
|
|
159
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVzaW5lc3MtcGFydG5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lLWRvbnVzdW0vc3JjL2xpYi9idXNpbmVzcy1wYXJ0bmVycy9idXNpbmVzcy1wYXJ0bmVyL2NvbXBvbmVudHMvYnVzaW5lc3MtcGFydG5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lLWRvbnVzdW0vc3JjL2xpYi9idXNpbmVzcy1wYXJ0bmVycy9idXNpbmVzcy1wYXJ0bmVyL2NvbXBvbmVudHMvYnVzaW5lc3MtcGFydG5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQU8sV0FBVyxFQUFrQyxNQUFNLGNBQWMsQ0FBQztBQUNoRixPQUFPLEVBQUUsWUFBWSxFQUF1QyxNQUFNLHNCQUFzQixDQUFDO0FBQ3pGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUN0RixPQUFPLEVBQTBCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFjbEUsTUFBTSxPQUFPLHdCQUF3QjtJQXVCbkMsWUFDa0IsSUFBaUIsRUFDakIsS0FBcUIsRUFDckIsT0FBK0IsRUFDdkMsWUFBaUMsRUFDakMsRUFBZSxFQUNmLHlCQUFvRCxFQUNwRCxjQUE4QjtRQU50QixTQUFJLEdBQUosSUFBSSxDQUFhO1FBQ2pCLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLFlBQU8sR0FBUCxPQUFPLENB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QUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFDN0IsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztRQUM3QixJQUFJLENBQUMsK0JBQStCLEdBQUcsS0FBSyxDQUFDO1FBQzdDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQzs7cUhBakxVLHdCQUF3Qjt5R0FBeEIsd0JBQXdCLCtDQUp4QixDQUFDLFdBQVcsRUFBRSxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxDQUFDLDBCQ2hCOUUsdzF0QkFnbEJBOzJGRDVqQmEsd0JBQXdCO2tCQVBwQyxTQUFTOytCQUNFLHNCQUFzQixtQkFDZix1QkFBdUIsQ0FBQyxPQUFPLGFBQ3JDLENBQUMsV0FBVyxFQUFFLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBQlAsIExpc3RTZXJ2aWNlLCBQYWdlZFJlc3VsdER0bywgVHJhY2tCeVNlcnZpY2UgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQgeyBDb25maXJtYXRpb24sIENvbmZpcm1hdGlvblNlcnZpY2UsIFRvYXN0ZXJTZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xyXG5pbXBvcnQgeyBEYXRlQWRhcHRlciB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkL2V4dGVuc2lvbnMnO1xyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBOZ2JEYXRlQWRhcHRlciB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgZmlsdGVyLCBmaW5hbGl6ZSwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB0eXBlIHtcclxuICBHZXRCdXNpbmVzc1BhcnRuZXJzSW5wdXQsXHJcbiAgQnVzaW5lc3NQYXJ0bmVyV2l0aE5hdmlnYXRpb25Qcm9wZXJ0aWVzRHRvLFxyXG59IGZyb20gJy4uLy4uLy4uL3Byb3h5L2J1c2luZXNzLXBhcnRuZXJzL21vZGVscyc7XHJcbmltcG9ydCB7IEJ1c2luZXNzUGFydG5lclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9wcm94eS9idXNpbmVzcy1wYXJ0bmVycy9idXNpbmVzcy1wYXJ0bmVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBIaXRCdXNpbmVzc1BhcnRuZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vaGl0LXByb3h5L2hpdC1idXNpbmVzcy1wYXJ0bmVycy9oaXQtYnVzaW5lc3MtcGFydG5lci5zZXJ2aWNlJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItYnVzaW5lc3MtcGFydG5lcicsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5EZWZhdWx0LFxyXG4gIHByb3ZpZGVyczogW0xpc3RTZXJ2aWNlLCB7IHByb3ZpZGU6IE5nYkRhdGVBZGFwdGVyLCB1c2VDbGFzczogRGF0ZUFkYXB0ZXIgfV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2J1c2luZXNzLXBhcnRuZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlczogW10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCdXNpbmVzc1BhcnRuZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgZGF0YTogUGFnZWRSZXN1bHREdG88QnVzaW5lc3NQYXJ0bmVyV2l0aE5hdmlnYXRpb25Qcm9wZXJ0aWVzRHRvPiA9IHtcclxuICAgIGl0ZW1zOiBbXSxcclxuICAgIHRvdGFsQ291bnQ6IDAsXHJcbiAgfTtcclxuXHJcbiAgZmlsdGVycyA9IHt9IGFzIEdldEJ1c2luZXNzUGFydG5lcnNJbnB1dDtcclxuXHJcbiAgZm9ybTogRm9ybUdyb3VwO1xyXG5cclxuICBpc0ZpbHRlcnNIaWRkZW4gPSB0cnVlO1xyXG5cclxuICBpc01vZGFsQnVzeSA9IGZhbHNlO1xyXG5cclxuICBpc01vZGFsT3BlbiA9IGZhbHNlO1xyXG5cclxuICBzZWxlY3RlZD86IEJ1c2luZXNzUGFydG5lcldpdGhOYXZpZ2F0aW9uUHJvcGVydGllc0R0bztcclxuXHJcbiAgaXNUcmlnZ2VyR2V0QnVzaW5lc3NQYXJ0bmVyQnVzeSA9IGZhbHNlO1xyXG4gIHRyaWdnZXJFbGFwc2VkU2Vjb25kcyA9IDA7XHJcbiAgcHJpdmF0ZSBfcG9sbGluZ0ludGVydmFsOiBhbnkgPSBudWxsO1xyXG4gIHByaXZhdGUgX2VsYXBzZWRJbnRlcnZhbDogYW55ID0gbnVsbDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgbGlzdDogTGlzdFNlcnZpY2UsXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgdHJhY2s6IFRyYWNrQnlTZXJ2aWNlLFxyXG4gICAgcHVibGljIHJlYWRvbmx5IHNlcnZpY2U6IEJ1c2luZXNzUGFydG5lclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNvbmZpcm1hdGlvbjogQ29uZmlybWF0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgcHJpdmF0ZSBoaXRCdXNpbmVzc1BhcnRuZXJTZXJ2aWNlOiBIaXRCdXNpbmVzc1BhcnRuZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB0b2FzdGVyU2VydmljZTogVG9hc3RlclNlcnZpY2VcclxuICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgY29uc3QgZ2V0RGF0YSA9IChxdWVyeTogQUJQLlBhZ2VRdWVyeVBhcmFtcykgPT5cclxuICAgICAgdGhpcy5zZXJ2aWNlLmdldExpc3Qoe1xyXG4gICAgICAgIC4uLnF1ZXJ5LFxyXG4gICAgICAgIC4uLnRoaXMuZmlsdGVycyxcclxuICAgICAgICBmaWx0ZXJUZXh0OiBxdWVyeS5maWx0ZXIsXHJcbiAgICAgIH0pO1xyXG5cclxuICAgIGNvbnN0IHNldERhdGEgPSAobGlzdDogUGFnZWRSZXN1bHREdG88QnVzaW5lc3NQYXJ0bmVyV2l0aE5hdmlnYXRpb25Qcm9wZXJ0aWVzRHRvPikgPT5cclxuICAgICAgKHRoaXMuZGF0YSA9IGxpc3QpO1xyXG5cclxuICAgIHRoaXMubGlzdC5ob29rVG9RdWVyeShnZXREYXRhKS5zdWJzY3JpYmUoc2V0RGF0YSk7XHJcbiAgfVxyXG5cclxuICBjbGVhckZpbHRlcnMoKSB7XHJcbiAgICB0aGlzLmZpbHRlcnMgPSB7fSBhcyBHZXRCdXNpbmVzc1BhcnRuZXJzSW5wdXQ7XHJcbiAgfVxyXG5cclxuICBidWlsZEZvcm0oKSB7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIGVycEVudGVncmF0aW9uVHlwZSxcclxuICAgICAgZXJwSWQsXHJcbiAgICAgIGNhcmRUeXBlLFxyXG4gICAgICBjYXJkQ29kZSxcclxuICAgICAgY2FyZE5hbWUsXHJcbiAgICAgIGZvcmVpZ25OYW1lLFxyXG4gICAgICBpc0VJbnZvaWNlLFxyXG4gICAgICBkZWZhdWx0RUludm9pY2VQayxcclxuICAgICAgaXNFRGVzcGFjdCxcclxuICAgICAgZGVmYXVsdEVEZXNwYWN0UGssXHJcbiAgICAgIHRja25fVktOLFxyXG4gICAgICBidXNpbmVzc1BhcnRuZXJHcm91cElkLFxyXG4gICAgfSA9IHRoaXMuc2VsZWN0ZWQ/LmJ1c2luZXNzUGFydG5lciB8fCB7fTtcclxuXHJcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgZXJwRW50ZWdyYXRpb25UeXBlOiBbXHJcbiAgICAgICAgZXJwRW50ZWdyYXRpb25UeXBlID8/IG51bGwsXHJcbiAgICAgICAgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDgpXSxcclxuICAgICAgXSxcclxuICAgICAgZXJwSWQ6IFtlcnBJZCA/PyBudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoOCldXSxcclxuICAgICAgY2FyZFR5cGU6IFtjYXJkVHlwZSA/PyBudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMTYpXV0sXHJcbiAgICAgIGNhcmRDb2RlOiBbY2FyZENvZGUgPz8gbnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDEyOCldXSxcclxuICAgICAgY2FyZE5hbWU6IFtjYXJkTmFtZSA/PyBudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMjU2KV1dLFxyXG4gICAgICBmb3JlaWduTmFtZTogW2ZvcmVpZ25OYW1lID8/IG51bGwsIFtWYWxpZGF0b3JzLm1heExlbmd0aCgyNTYpXV0sXHJcbiAgICAgIGlzRUludm9pY2U6IFtmYWxzZSwgW11dLFxyXG4gICAgICBkZWZhdWx0RUludm9pY2VQazogW2RlZmF1bHRFSW52b2ljZVBrID8/IG51bGwsIFtWYWxpZGF0b3JzLm1heExlbmd0aCgxMjgpXV0sXHJcbiAgICAgIGlzRURlc3BhY3Q6IFtmYWxzZSwgW11dLFxyXG4gICAgICBkZWZhdWx0RURlc3BhY3RQazogW2RlZmF1bHRFRGVzcGFjdFBrID8/IG51bGwsIFtWYWxpZGF0b3JzLm1heExlbmd0aCgxMjgpXV0sXHJcbiAgICAgIHRja25fVktOOiBbdGNrbl9WS04gPz8gbnVsbCwgW1ZhbGlkYXRvcnMubWF4TGVuZ3RoKDE2KV1dLFxyXG4gICAgICBidXNpbmVzc1BhcnRuZXJHcm91cElkOiBbYnVzaW5lc3NQYXJ0bmVyR3JvdXBJZCA/PyBudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBoaWRlRm9ybSgpIHtcclxuICAgIHRoaXMuaXNNb2RhbE9wZW4gPSBmYWxzZTtcclxuICAgIHRoaXMuZm9ybS5yZXNldCgpO1xyXG4gIH1cclxuXHJcbiAgc2hvd0Zvcm0oKSB7XHJcbiAgICB0aGlzLmJ1aWxkRm9ybSgpO1xyXG4gICAgdGhpcy5pc01vZGFsT3BlbiA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBzdWJtaXRGb3JtKCkge1xyXG4gICAgaWYgKHRoaXMuZm9ybS5pbnZhbGlkKSByZXR1cm47XHJcblxyXG4gICAgY29uc3QgcmVxdWVzdCA9IHRoaXMuc2VsZWN0ZWRcclxuICAgICAgPyB0aGlzLnNlcnZpY2UudXBkYXRlKHRoaXMuc2VsZWN0ZWQuYnVzaW5lc3NQYXJ0bmVyLmlkLCB7XHJcbiAgICAgICAgICAuLi50aGlzLmZvcm0udmFsdWUsXHJcbiAgICAgICAgICBjb25jdXJyZW5jeVN0YW1wOiB0aGlzLnNlbGVjdGVkLmJ1c2luZXNzUGFydG5lci5jb25jdXJyZW5jeVN0YW1wLFxyXG4gICAgICAgIH0pXHJcbiAgICAgIDogdGhpcy5zZXJ2aWNlLmNyZWF0ZSh0aGlzLmZvcm0udmFsdWUpO1xyXG5cclxuICAgIHRoaXMuaXNNb2RhbEJ1c3kgPSB0cnVlO1xyXG5cclxuICAgIHJlcXVlc3RcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgZmluYWxpemUoKCkgPT4gKHRoaXMuaXNNb2RhbEJ1c3kgPSBmYWxzZSkpLFxyXG4gICAgICAgIHRhcCgoKSA9PiB0aGlzLmhpZGVGb3JtKCkpXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSh0aGlzLmxpc3QuZ2V0KTtcclxuICB9XHJcblxyXG4gIGNyZWF0ZSgpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWQgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLnNob3dGb3JtKCk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGUocmVjb3JkOiBCdXNpbmVzc1BhcnRuZXJXaXRoTmF2aWdhdGlvblByb3BlcnRpZXNEdG8pIHtcclxuICAgIHRoaXMuc2VsZWN0ZWQgPSByZWNvcmQ7XHJcbiAgICB0aGlzLnNob3dGb3JtKCk7XHJcbiAgfVxyXG5cclxuICBkZWxldGUocmVjb3JkOiBCdXNpbmVzc1BhcnRuZXJXaXRoTmF2aWdhdGlvblByb3BlcnRpZXNEdG8pIHtcclxuICAgIHRoaXMuY29uZmlybWF0aW9uXHJcbiAgICAgIC53YXJuKCdlRG9udXN1bTo6RGVsZXRlQ29uZmlybWF0aW9uTWVzc2FnZScsICdlRG9udXN1bTo6QXJlWW91U3VyZScsIHtcclxuICAgICAgICBtZXNzYWdlTG9jYWxpemF0aW9uUGFyYW1zOiBbXSxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgZmlsdGVyKHN0YXR1cyA9PiBzdGF0dXMgPT09IENvbmZpcm1hdGlvbi5TdGF0dXMuY29uZmlybSksXHJcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuc2VydmljZS5kZWxldGUocmVjb3JkLmJ1c2luZXNzUGFydG5lci5pZCkpXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSh0aGlzLmxpc3QuZ2V0KTtcclxuICB9XHJcblxyXG4gIHRyaWdnZXJHZXRCdXNpbmVzc1BhcnRuZXJGcm9tQ29ubmVjdG9yKCkge1xyXG4gICAgaWYgKHRoaXMuaXNUcmlnZ2VyR2V0QnVzaW5lc3NQYXJ0bmVyQnVzeSkgcmV0dXJuO1xyXG4gICAgdGhpcy5pc1RyaWdnZXJHZXRCdXNpbmVzc1BhcnRuZXJCdXN5ID0gdHJ1ZTtcclxuICAgIHRoaXMudHJpZ2dlckVsYXBzZWRTZWNvbmRzID0gMDtcclxuICAgIHRoaXMuaGl0QnVzaW5lc3NQYXJ0bmVyU2VydmljZS50cmlnZ2VyR2V0QnVzaW5lc3NQYXJ0bmVyRnJvbUNvbm5lY3RvcigpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChqb2JJZDogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgdGhpcy5fZWxhcHNlZEludGVydmFsID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy50cmlnZ2VyRWxhcHNlZFNlY29uZHMrKztcclxuICAgICAgICB9LCAxMDAwKTtcclxuICAgICAgICB0aGlzLl9wb2xsaW5nSW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmhpdEJ1c2luZXNzUGFydG5lclNlcnZpY2UuZ2V0QnVzaW5lc3NQYXJ0bmVySm9iU3RhdHVzKGpvYklkKS5zdWJzY3JpYmUocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdGUgPT09ICdTdWNjZWVkZWQnKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5fc3RvcFBvbGxpbmcoKTtcclxuICAgICAgICAgICAgICB0aGlzLnRvYXN0ZXJTZXJ2aWNlLnN1Y2Nlc3MoXCJDYXJpbGVyIGJhxZ9hcsSxeWxhIGdldGlyaWxkaVwiKTtcclxuICAgICAgICAgICAgICB0aGlzLmxpc3QuZ2V0KCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAocmVzcG9uc2Uuc3RhdGUgPT09ICdGYWlsZWQnKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5fc3RvcFBvbGxpbmcoKTtcclxuICAgICAgICAgICAgICB0aGlzLnRvYXN0ZXJTZXJ2aWNlLmVycm9yKFwiQ2FyaSBnZXRpcm1lIGnFn2xlbWkgYmHFn2FyxLFzxLF6IG9sZHVcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0sIDMwMDApO1xyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuaXNUcmlnZ2VyR2V0QnVzaW5lc3NQYXJ0bmVyQnVzeSA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3N0b3BQb2xsaW5nKCkge1xyXG4gICAgY2xlYXJJbnRlcnZhbCh0aGlzLl9wb2xsaW5nSW50ZXJ2YWwpO1xyXG4gICAgY2xlYXJJbnRlcnZhbCh0aGlzLl9lbGFwc2VkSW50ZXJ2YWwpO1xyXG4gICAgdGhpcy5fcG9sbGluZ0ludGVydmFsID0gbnVsbDtcclxuICAgIHRoaXMuX2VsYXBzZWRJbnRlcnZhbCA9IG51bGw7XHJcbiAgICB0aGlzLmlzVHJpZ2dlckdldEJ1c2luZXNzUGFydG5lckJ1c3kgPSBmYWxzZTtcclxuICAgIHRoaXMudHJpZ2dlckVsYXBzZWRTZWNvbmRzID0gMDtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5fc3RvcFBvbGxpbmcoKTtcclxuICB9XHJcbn1cclxuIiwiPGFicC1wYWdlIFt0aXRsZV09XCInZURvbnVzdW06OkJ1c2luZXNzUGFydG5lcnMnIHwgYWJwTG9jYWxpemF0aW9uXCI+XHJcbiAgPGFicC1wYWdlLXRvb2xiYXItY29udGFpbmVyIGNsYXNzPVwiY29sXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwidGV4dC1sZy1lbmQgcHQtMlwiPlxyXG4gICAgICA8YnV0dG9uICphYnBQZXJtaXNzaW9uPVwiJ2VEb251c3VtLkJ1c2luZXNzUGFydG5lcnMuQ3JlYXRlISdcIiBjbGFzcz1cImJ0biBidG4taW5mbyBidG4tc21cIiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICBzdHlsZT1cIm1hcmdpbi1yaWdodDogNXB4O1wiXHJcbiAgICAgICAgKGNsaWNrKT1cInRyaWdnZXJHZXRCdXNpbmVzc1BhcnRuZXJGcm9tQ29ubmVjdG9yKClcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJpc1RyaWdnZXJHZXRCdXNpbmVzc1BhcnRuZXJCdXN5XCI+XHJcbiAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1kb3dubG9hZCBtZS0xXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNUcmlnZ2VyR2V0QnVzaW5lc3NQYXJ0bmVyQnVzeVwiPlNBUCdkZW4gQ2FyaWxlcmkgw4dlazwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1RyaWdnZXJHZXRCdXNpbmVzc1BhcnRuZXJCdXN5XCI+U0FQJ2RlbiDDh2VraWxpeW9yLi4uICh7eyB0cmlnZ2VyRWxhcHNlZFNlY29uZHMgfX1zKTwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgICphYnBQZXJtaXNzaW9uPVwiJ2VEb251c3VtLkJ1c2luZXNzUGFydG5lcnMuQ3JlYXRlISdcIlxyXG4gICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbVwiXHJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgKGNsaWNrKT1cImNyZWF0ZSgpXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtcGx1cyBtZS0xXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgIHt7ICdlRG9udXN1bTo6TmV3QnVzaW5lc3NQYXJ0bmVyJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvYWJwLXBhZ2UtdG9vbGJhci1jb250YWluZXI+XHJcblxyXG4gIDxhYnAtYWR2YW5jZWQtZW50aXR5LWZpbHRlcnMgbG9jYWxpemF0aW9uU291cmNlTmFtZT1cImVEb251c3VtXCIgW2xpc3RdPVwibGlzdFwiPlxyXG4gICAgPGFicC1hZHZhbmNlZC1lbnRpdHktZmlsdGVycy1mb3JtPlxyXG4gICAgICA8Zm9ybSAjZmlsdGVyRm9ybSAoa2V5dXAuZW50ZXIpPVwibGlzdC5nZXQoKVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLWF1dG9cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiZXJwRW50ZWdyYXRpb25UeXBlRmlsdGVyXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OkVycEVudGVncmF0aW9uVHlwZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIGlkPVwiZXJwRW50ZWdyYXRpb25UeXBlRmlsdGVyXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5lcnBFbnRlZ3JhdGlvblR5cGVcIlxyXG4gICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJlcnBJZEZpbHRlclwiPlxyXG4gICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpFcnBJZCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIGlkPVwiZXJwSWRGaWx0ZXJcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLmVycElkXCJcclxuICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLWF1dG9cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiY2FyZFR5cGVGaWx0ZXJcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6Q2FyZFR5cGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICBpZD1cImNhcmRUeXBlRmlsdGVyXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5jYXJkVHlwZVwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImNhcmRDb2RlRmlsdGVyXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OkNhcmRDb2RlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgaWQ9XCJjYXJkQ29kZUZpbHRlclwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMuY2FyZENvZGVcIlxyXG4gICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJjYXJkTmFtZUZpbHRlclwiPlxyXG4gICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpDYXJkTmFtZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIGlkPVwiY2FyZE5hbWVGaWx0ZXJcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLmNhcmROYW1lXCJcclxuICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLWF1dG9cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiZm9yZWlnbk5hbWVGaWx0ZXJcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6Rm9yZWlnbk5hbWUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICBpZD1cImZvcmVpZ25OYW1lRmlsdGVyXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5mb3JlaWduTmFtZVwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImlzRUludm9pY2VGaWx0ZXJcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6SXNFSW52b2ljZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8c2VsZWN0XHJcbiAgICAgICAgICAgICAgICBuYW1lPVwiaXNFSW52b2ljZVwiXHJcbiAgICAgICAgICAgICAgICBpZD1cImlzRUludm9pY2VGaWx0ZXJcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLXNlbGVjdCBmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLmlzRUludm9pY2VcIlxyXG4gICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcclxuICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwibGlzdC5nZXQoKVwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPG9wdGlvbiBbbmdWYWx1ZV09XCJcIj48L29wdGlvbj5cclxuICAgICAgICAgICAgICAgIDxvcHRpb24gW25nVmFsdWVdPVwidHJ1ZVwiPnt7ICdBYnBVaTo6WWVzJyB8IGFicExvY2FsaXphdGlvbiB9fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgPG9wdGlvbiBbbmdWYWx1ZV09XCJmYWxzZVwiPnt7ICdBYnBVaTo6Tm8nIHwgYWJwTG9jYWxpemF0aW9uIH19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImRlZmF1bHRFSW52b2ljZVBrRmlsdGVyXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OkRlZmF1bHRFSW52b2ljZVBrJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgaWQ9XCJkZWZhdWx0RUludm9pY2VQa0ZpbHRlclwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMuZGVmYXVsdEVJbnZvaWNlUGtcIlxyXG4gICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJpc0VEZXNwYWN0RmlsdGVyXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OklzRURlc3BhY3QnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgPHNlbGVjdFxyXG4gICAgICAgICAgICAgICAgbmFtZT1cImlzRURlc3BhY3RcIlxyXG4gICAgICAgICAgICAgICAgaWQ9XCJpc0VEZXNwYWN0RmlsdGVyXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1zZWxlY3QgZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5pc0VEZXNwYWN0XCJcclxuICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgICAoY2hhbmdlKT1cImxpc3QuZ2V0KClcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxvcHRpb24gW25nVmFsdWVdPVwiXCI+PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uIFtuZ1ZhbHVlXT1cInRydWVcIj57eyAnQWJwVWk6OlllcycgfCBhYnBMb2NhbGl6YXRpb24gfX08L29wdGlvbj5cclxuICAgICAgICAgICAgICAgIDxvcHRpb24gW25nVmFsdWVdPVwiZmFsc2VcIj57eyAnQWJwVWk6Ok5vJyB8IGFicExvY2FsaXphdGlvbiB9fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJkZWZhdWx0RURlc3BhY3RQa0ZpbHRlclwiPlxyXG4gICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpEZWZhdWx0RURlc3BhY3RQaycgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIGlkPVwiZGVmYXVsdEVEZXNwYWN0UGtGaWx0ZXJcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLmRlZmF1bHRFRGVzcGFjdFBrXCJcclxuICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXNtLWF1dG9cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwidGNrbl9WS05GaWx0ZXJcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6VENLTl9WS04nIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICBpZD1cInRja25fVktORmlsdGVyXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy50Y2tuX1ZLTlwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImJ1c2luZXNzUGFydG5lckdyb3VwSWRGaWx0ZXJcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6QnVzaW5lc3NQYXJ0bmVyR3JvdXAnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICA8YWJwLWxvb2t1cC1pbnB1dFxyXG4gICAgICAgICAgICAgICAgY2lkPVwiYnVzaW5lc3NQYXJ0bmVyR3JvdXBJZEZpbHRlclwiXHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZVByb3A9XCJncm91cE5hbWVcIlxyXG4gICAgICAgICAgICAgICAgbG9va3VwTmFtZVByb3A9XCJkaXNwbGF5TmFtZVwiXHJcbiAgICAgICAgICAgICAgICBbZ2V0Rm5dPVwic2VydmljZS5nZXRCdXNpbmVzc1BhcnRuZXJHcm91cExvb2t1cFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMuYnVzaW5lc3NQYXJ0bmVyR3JvdXBJZFwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgID48L2FicC1sb29rdXAtaW5wdXQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0byBhbGlnbi1zZWxmLWVuZCBtYi0zXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTYgY29sLXNtLWF1dG8gZC1ncmlkXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tb3V0bGluZS1wcmltYXJ5XCIgKGNsaWNrKT1cImNsZWFyRmlsdGVycygpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuPnt7ICdBYnBVaTo6Q2xlYXInIHwgYWJwTG9jYWxpemF0aW9uIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC02IGNvbC1zbS1hdXRvIGQtZ3JpZFwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiAoY2xpY2spPVwibGlzdC5nZXQoKVwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3Bhbj57eyAnQWJwVWk6OlJlZnJlc2gnIHwgYWJwTG9jYWxpemF0aW9uIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZm9ybT5cclxuICAgIDwvYWJwLWFkdmFuY2VkLWVudGl0eS1maWx0ZXJzLWZvcm0+XHJcbiAgPC9hYnAtYWR2YW5jZWQtZW50aXR5LWZpbHRlcnM+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJjYXJkXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCI+XHJcbiAgICAgIDxuZ3gtZGF0YXRhYmxlIFtyb3dzXT1cImRhdGEuaXRlbXNcIiBbY291bnRdPVwiZGF0YS50b3RhbENvdW50XCIgW2xpc3RdPVwibGlzdFwiIGRlZmF1bHQ+XHJcbiAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uXHJcbiAgICAgICAgICBbbmFtZV09XCInQWJwVWk6OkFjdGlvbnMnIHwgYWJwTG9jYWxpemF0aW9uXCJcclxuICAgICAgICAgIFttYXhXaWR0aF09XCIxNTBcIlxyXG4gICAgICAgICAgW3dpZHRoXT1cIjE1MFwiXHJcbiAgICAgICAgICBbc29ydGFibGVdPVwiZmFsc2VcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbGV0LWk9XCJyb3dJbmRleFwiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPGRpdiBuZ2JEcm9wZG93biBjb250YWluZXI9XCJib2R5XCIgY2xhc3M9XCJkLWlubGluZS1ibG9ja1wiPlxyXG4gICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbSBkcm9wZG93bi10b2dnbGVcIlxyXG4gICAgICAgICAgICAgICAgZGF0YS10b2dnbGU9XCJkcm9wZG93blwiXHJcbiAgICAgICAgICAgICAgICBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICBuZ2JEcm9wZG93blRvZ2dsZVxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtY29nIG1lLTFcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICB7eyAnQWJwVWk6OkFjdGlvbnMnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgbmdiRHJvcGRvd25NZW51PlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICBuZ2JEcm9wZG93bkl0ZW1cclxuICAgICAgICAgICAgICAgICAgKmFicFBlcm1pc3Npb249XCInZURvbnVzdW0uQnVzaW5lc3NQYXJ0bmVycy5FZGl0J1wiXHJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ1cGRhdGUocm93KVwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIHt7ICdBYnBVaTo6RWRpdCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgbmdiRHJvcGRvd25JdGVtXHJcbiAgICAgICAgICAgICAgICAgICphYnBQZXJtaXNzaW9uPVwiJ2VEb251c3VtLkJ1c2luZXNzUGFydG5lcnMuRGVsZXRlJ1wiXHJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJkZWxldGUocm93KVwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIHt7ICdBYnBVaTo6RGVsZXRlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG5cclxuICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW5cclxuICAgICAgICAgIG5hbWU9XCJ7eyAnZURvbnVzdW06OkVycEVudGVncmF0aW9uVHlwZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cIlxyXG4gICAgICAgICAgcHJvcD1cImJ1c2luZXNzUGFydG5lci5lcnBFbnRlZ3JhdGlvblR5cGVcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICB7eyByb3cuYnVzaW5lc3NQYXJ0bmVyLmVycEVudGVncmF0aW9uVHlwZSB9fVxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG5cclxuICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW5cclxuICAgICAgICAgIG5hbWU9XCJ7eyAnZURvbnVzdW06OkVycElkJyB8IGFicExvY2FsaXphdGlvbiB9fVwiXHJcbiAgICAgICAgICBwcm9wPVwiYnVzaW5lc3NQYXJ0bmVyLmVycElkXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAge3sgcm93LmJ1c2luZXNzUGFydG5lci5lcnBJZCB9fVxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG5cclxuICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW5cclxuICAgICAgICAgIG5hbWU9XCJ7eyAnZURvbnVzdW06OkNhcmRUeXBlJyB8IGFicExvY2FsaXphdGlvbiB9fVwiXHJcbiAgICAgICAgICBwcm9wPVwiYnVzaW5lc3NQYXJ0bmVyLmNhcmRUeXBlXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAge3sgcm93LmJ1c2luZXNzUGFydG5lci5jYXJkVHlwZSB9fVxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG5cclxuICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW5cclxuICAgICAgICAgIG5hbWU9XCJ7eyAnZURvbnVzdW06OkNhcmRDb2RlJyB8IGFicExvY2FsaXphdGlvbiB9fVwiXHJcbiAgICAgICAgICBwcm9wPVwiYnVzaW5lc3NQYXJ0bmVyLmNhcmRDb2RlXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAge3sgcm93LmJ1c2luZXNzUGFydG5lci5jYXJkQ29kZSB9fVxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG5cclxuICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW5cclxuICAgICAgICAgIG5hbWU9XCJ7eyAnZURvbnVzdW06OkNhcmROYW1lJyB8IGFicExvY2FsaXphdGlvbiB9fVwiXHJcbiAgICAgICAgICBwcm9wPVwiYnVzaW5lc3NQYXJ0bmVyLmNhcmROYW1lXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAge3sgcm93LmJ1c2luZXNzUGFydG5lci5jYXJkTmFtZSB9fVxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG5cclxuICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW5cclxuICAgICAgICAgIG5hbWU9XCJ7eyAnZURvbnVzdW06OkZvcmVpZ25OYW1lJyB8IGFicExvY2FsaXphdGlvbiB9fVwiXHJcbiAgICAgICAgICBwcm9wPVwiYnVzaW5lc3NQYXJ0bmVyLmZvcmVpZ25OYW1lXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAge3sgcm93LmJ1c2luZXNzUGFydG5lci5mb3JlaWduTmFtZSB9fVxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG5cclxuICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW5cclxuICAgICAgICAgIG5hbWU9XCJ7eyAnZURvbnVzdW06OklzRUludm9pY2UnIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcclxuICAgICAgICAgIHByb3A9XCJidXNpbmVzc1BhcnRuZXIuaXNFSW52b2ljZVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxyXG4gICAgICAgICAgICAgIFtuZ0lmXT1cInJvdy5idXNpbmVzc1BhcnRuZXIuaXNFSW52b2ljZVwiXHJcbiAgICAgICAgICAgICAgW25nSWZUaGVuXT1cInllc1wiXHJcbiAgICAgICAgICAgICAgW25nSWZFbHNlXT1cIm5vXCJcclxuICAgICAgICAgICAgPjwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI3llcz5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zdWNjZXNzXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBbdGl0bGVdPVwiJ0FicFVpOjpZZXMnIHwgYWJwTG9jYWxpemF0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtY2hlY2tcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWRhbmdlclwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gW3RpdGxlXT1cIidBYnBVaTo6Tm8nIHwgYWJwTG9jYWxpemF0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcblxyXG4gICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtblxyXG4gICAgICAgICAgbmFtZT1cInt7ICdlRG9udXN1bTo6RGVmYXVsdEVJbnZvaWNlUGsnIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcclxuICAgICAgICAgIHByb3A9XCJidXNpbmVzc1BhcnRuZXIuZGVmYXVsdEVJbnZvaWNlUGtcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICB7eyByb3cuYnVzaW5lc3NQYXJ0bmVyLmRlZmF1bHRFSW52b2ljZVBrIH19XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcblxyXG4gICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtblxyXG4gICAgICAgICAgbmFtZT1cInt7ICdlRG9udXN1bTo6SXNFRGVzcGFjdCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cIlxyXG4gICAgICAgICAgcHJvcD1cImJ1c2luZXNzUGFydG5lci5pc0VEZXNwYWN0XCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlXHJcbiAgICAgICAgICAgICAgW25nSWZdPVwicm93LmJ1c2luZXNzUGFydG5lci5pc0VEZXNwYWN0XCJcclxuICAgICAgICAgICAgICBbbmdJZlRoZW5dPVwieWVzXCJcclxuICAgICAgICAgICAgICBbbmdJZkVsc2VdPVwibm9cIlxyXG4gICAgICAgICAgICA+PC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjeWVzPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXN1Y2Nlc3NcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIFt0aXRsZV09XCInQWJwVWk6OlllcycgfCBhYnBMb2NhbGl6YXRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1jaGVja1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm8+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZGFuZ2VyXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBbdGl0bGVdPVwiJ0FicFVpOjpObycgfCBhYnBMb2NhbGl6YXRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS10aW1lc1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuXHJcbiAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uXHJcbiAgICAgICAgICBuYW1lPVwie3sgJ2VEb251c3VtOjpEZWZhdWx0RURlc3BhY3RQaycgfCBhYnBMb2NhbGl6YXRpb24gfX1cIlxyXG4gICAgICAgICAgcHJvcD1cImJ1c2luZXNzUGFydG5lci5kZWZhdWx0RURlc3BhY3RQa1wiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIHt7IHJvdy5idXNpbmVzc1BhcnRuZXIuZGVmYXVsdEVEZXNwYWN0UGsgfX1cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuXHJcbiAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uXHJcbiAgICAgICAgICBuYW1lPVwie3sgJ2VEb251c3VtOjpUQ0tOX1ZLTicgfCBhYnBMb2NhbGl6YXRpb24gfX1cIlxyXG4gICAgICAgICAgcHJvcD1cImJ1c2luZXNzUGFydG5lci50Y2tOX1ZLTlwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIHt7IHJvdy5idXNpbmVzc1BhcnRuZXIudGNrTl9WS04gfX1cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuXHJcbiAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uXHJcbiAgICAgICAgICBuYW1lPVwie3sgJ2VEb251c3VtOjpCdXNpbmVzc1BhcnRuZXJHcm91cCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cIlxyXG4gICAgICAgICAgcHJvcD1cImJ1c2luZXNzUGFydG5lckdyb3VwLmdyb3VwTmFtZVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIHt7IHJvdy5idXNpbmVzc1BhcnRuZXJHcm91cD8uZ3JvdXBOYW1lIH19XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcbiAgICAgIDwvbmd4LWRhdGF0YWJsZT5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2FicC1wYWdlPlxyXG5cclxuPGFicC1tb2RhbCBbYnVzeV09XCJpc01vZGFsQnVzeVwiIFsodmlzaWJsZSldPVwiaXNNb2RhbE9wZW5cIj5cclxuICA8bmctdGVtcGxhdGUgI2FicEhlYWRlcj5cclxuICAgIDxoMz5cclxuICAgICAge3sgKHNlbGVjdGVkID8gJ0FicFVpOjpFZGl0JyA6ICdlRG9udXN1bTo6TmV3QnVzaW5lc3NQYXJ0bmVyJykgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgIDwvaDM+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgPG5nLXRlbXBsYXRlICNhYnBCb2R5PlxyXG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCIgaWQ9XCJidXNpbmVzcy1wYXJ0bmVyXCIgKG5nU3VibWl0KT1cInN1Ym1pdEZvcm0oKVwiIHZhbGlkYXRlT25TdWJtaXQ+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtdC0yIGZhZGUtaW4tdG9wXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJidXNpbmVzcy1wYXJ0bmVyLWVycC1lbnRlZ3JhdGlvbi10eXBlXCI+XHJcbiAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6RXJwRW50ZWdyYXRpb25UeXBlJyB8IGFicExvY2FsaXphdGlvbiB9fSAqXHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICBpZD1cImJ1c2luZXNzLXBhcnRuZXItZXJwLWVudGVncmF0aW9uLXR5cGVcIlxyXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJlcnBFbnRlZ3JhdGlvblR5cGVcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgIG1heGxlbmd0aD1cIjhcIlxyXG4gICAgICAgICAgICBhdXRvZm9jdXNcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJidXNpbmVzcy1wYXJ0bmVyLWVycC1pZFwiPlxyXG4gICAgICAgICAgICB7eyAnZURvbnVzdW06OkVycElkJyB8IGFicExvY2FsaXphdGlvbiB9fSAqXHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICBpZD1cImJ1c2luZXNzLXBhcnRuZXItZXJwLWlkXCJcclxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZXJwSWRcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgIG1heGxlbmd0aD1cIjhcIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImJ1c2luZXNzLXBhcnRuZXItY2FyZC10eXBlXCI+XHJcbiAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6Q2FyZFR5cGUnIHwgYWJwTG9jYWxpemF0aW9uIH19ICpcclxuICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIGlkPVwiYnVzaW5lc3MtcGFydG5lci1jYXJkLXR5cGVcIlxyXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjYXJkVHlwZVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgbWF4bGVuZ3RoPVwiMTZcIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImJ1c2luZXNzLXBhcnRuZXItY2FyZC1jb2RlXCI+XHJcbiAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6Q2FyZENvZGUnIHwgYWJwTG9jYWxpemF0aW9uIH19ICpcclxuICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIGlkPVwiYnVzaW5lc3MtcGFydG5lci1jYXJkLWNvZGVcIlxyXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjYXJkQ29kZVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgbWF4bGVuZ3RoPVwiMTI4XCJcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJidXNpbmVzcy1wYXJ0bmVyLWNhcmQtbmFtZVwiPlxyXG4gICAgICAgICAgICB7eyAnZURvbnVzdW06OkNhcmROYW1lJyB8IGFicExvY2FsaXphdGlvbiB9fSAqXHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICBpZD1cImJ1c2luZXNzLXBhcnRuZXItY2FyZC1uYW1lXCJcclxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY2FyZE5hbWVcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgIG1heGxlbmd0aD1cIjI1NlwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiYnVzaW5lc3MtcGFydG5lci1mb3JlaWduLW5hbWVcIj5cclxuICAgICAgICAgICAge3sgJ2VEb251c3VtOjpGb3JlaWduTmFtZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIGlkPVwiYnVzaW5lc3MtcGFydG5lci1mb3JlaWduLW5hbWVcIlxyXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJmb3JlaWduTmFtZVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgbWF4bGVuZ3RoPVwiMjU2XCJcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgbWItM1wiPlxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgIGlkPVwiYnVzaW5lc3MtcGFydG5lci1pcy1laW52b2ljZVwiXHJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImlzRUludm9pY2VcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIlxyXG4gICAgICAgICAgLz5cclxuXHJcbiAgICAgICAgICA8bGFiZWwgZm9yPVwiYnVzaW5lc3MtcGFydG5lci1pcy1laW52b2ljZVwiIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiPlxyXG4gICAgICAgICAgICB7eyAnZURvbnVzdW06OklzRUludm9pY2UnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiYnVzaW5lc3MtcGFydG5lci1kZWZhdWx0LWVpbnZvaWNlLXBrXCI+XHJcbiAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6RGVmYXVsdEVJbnZvaWNlUGsnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICBpZD1cImJ1c2luZXNzLXBhcnRuZXItZGVmYXVsdC1laW52b2ljZS1wa1wiXHJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImRlZmF1bHRFSW52b2ljZVBrXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICBtYXhsZW5ndGg9XCIxMjhcIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBtYi0zXCI+XHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgaWQ9XCJidXNpbmVzcy1wYXJ0bmVyLWlzLWVkZXNwYWN0XCJcclxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiaXNFRGVzcGFjdFwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiXHJcbiAgICAgICAgICAvPlxyXG5cclxuICAgICAgICAgIDxsYWJlbCBmb3I9XCJidXNpbmVzcy1wYXJ0bmVyLWlzLWVkZXNwYWN0XCIgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCI+XHJcbiAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6SXNFRGVzcGFjdCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJidXNpbmVzcy1wYXJ0bmVyLWRlZmF1bHQtZWRlc3BhY3QtcGtcIj5cclxuICAgICAgICAgICAge3sgJ2VEb251c3VtOjpEZWZhdWx0RURlc3BhY3RQaycgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIGlkPVwiYnVzaW5lc3MtcGFydG5lci1kZWZhdWx0LWVkZXNwYWN0LXBrXCJcclxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZGVmYXVsdEVEZXNwYWN0UGtcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgIG1heGxlbmd0aD1cIjEyOFwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiYnVzaW5lc3MtcGFydG5lci10Y2tuLXZrblwiPlxyXG4gICAgICAgICAgICB7eyAnZURvbnVzdW06OlRDS05fVktOJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgaWQ9XCJidXNpbmVzcy1wYXJ0bmVyLXRja24tdmtuXCJcclxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidGNrbl9WS05cIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgIG1heGxlbmd0aD1cIjE2XCJcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJidXNpbmVzcy1wYXJ0bmVyLWJ1c2luZXNzLXBhcnRuZXItZ3JvdXAtaWRcIj5cclxuICAgICAgICAgICAge3sgJ2VEb251c3VtOjpCdXNpbmVzc1BhcnRuZXJHcm91cCcgfCBhYnBMb2NhbGl6YXRpb24gfX0gKlxyXG4gICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgIDxhYnAtbG9va3VwLWlucHV0XHJcbiAgICAgICAgICAgIGNpZD1cImJ1c2luZXNzLXBhcnRuZXItYnVzaW5lc3MtcGFydG5lci1ncm91cC1pZFwiXHJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImJ1c2luZXNzUGFydG5lckdyb3VwSWRcIlxyXG4gICAgICAgICAgICBkaXNwbGF5TmFtZVByb3A9XCJncm91cE5hbWVcIlxyXG4gICAgICAgICAgICBsb29rdXBOYW1lUHJvcD1cImRpc3BsYXlOYW1lXCJcclxuICAgICAgICAgICAgW2dldEZuXT1cInNlcnZpY2UuZ2V0QnVzaW5lc3NQYXJ0bmVyR3JvdXBMb29rdXBcIlxyXG4gICAgICAgICAgICBbZWRpdGluZ0RhdGFdPVwic2VsZWN0ZWQ/LmJ1c2luZXNzUGFydG5lckdyb3VwXCJcclxuICAgICAgICAgID48L2FicC1sb29rdXAtaW5wdXQ+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9mb3JtPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gIDxuZy10ZW1wbGF0ZSAjYWJwRm9vdGVyPlxyXG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiIGFicENsb3NlPlxyXG4gICAgICB7eyAnQWJwVWk6OkNhbmNlbCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgIDwvYnV0dG9uPlxyXG5cclxuICAgIDxhYnAtYnV0dG9uIGljb25DbGFzcz1cImZhIGZhLWNoZWNrXCIgYnV0dG9uVHlwZT1cInN1Ym1pdFwiIGZvcm1OYW1lPVwiYnVzaW5lc3MtcGFydG5lclwiPlxyXG4gICAgICB7eyAnQWJwVWk6OlNhdmUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICA8L2FicC1idXR0b24+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuPC9hYnAtbW9kYWw+XHJcbiJdfQ==
|