@sachin9822/reports-lib 0.0.209 → 0.0.211
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/components/acc-gl-details-enquiry-report/acc-gl-details-enquiry-report.component.mjs +13 -12
- package/esm2020/lib/components/accounting-report/accounting-report.component.mjs +4 -3
- package/esm2020/lib/components/branch-activity-receive-report/branch-activity-receive-report.component.mjs +1 -1
- package/esm2020/lib/components/branch-activity-send-report/branch-activity-send-report.component.mjs +1 -1
- package/esm2020/lib/components/branch-activity-send-summary-report/branch-activity-send-summary-report.component.mjs +700 -0
- package/esm2020/lib/components/cancellation-transaction-report/cancellation-transaction-report.component.mjs +1 -1
- package/esm2020/lib/components/credit-limit-status-enquiry-report/credit-limit-status-enquiry-report.component.mjs +3 -3
- package/esm2020/lib/components/funding-report/funding-report.component.mjs +3 -3
- package/esm2020/lib/components/revenue-per-transaction-report/revenue-per-transaction-report.component.mjs +4 -3
- package/esm2020/lib/components/statement-of-accounts-report/statement-of-accounts-report.component.mjs +3 -3
- package/esm2020/lib/components/transaction-enquiry-report/transaction-enquiry-report.component.mjs +1 -1
- package/esm2020/lib/components/transaction-monitoring-report/transaction-monitoring-report.component.mjs +311 -0
- package/esm2020/lib/components/trial-balance-accounts-report/trial-balance-accounts-report.component.mjs +7 -6
- package/esm2020/lib/models/branch-activity-report/branch-activity-send-report.mjs +1 -1
- package/esm2020/lib/models/transaction-monitoring-report/transaction-monitoring-report-request-domain-model.mjs +6 -0
- package/esm2020/lib/models/transaction-monitoring-report/transaction-monitoring-report.mjs +5 -0
- package/esm2020/lib/reports-lib.module.mjs +15 -5
- package/esm2020/lib/services/report.service.mjs +62 -4
- package/esm2020/lib/shared/export-generic.service.mjs +10 -1
- package/esm2020/lib/shared/search-filter/search-filter.component.mjs +525 -189
- package/esm2020/public-api.mjs +5 -1
- package/fesm2015/sachin9822-reports-lib.mjs +1715 -330
- package/fesm2015/sachin9822-reports-lib.mjs.map +1 -1
- package/fesm2020/sachin9822-reports-lib.mjs +1721 -329
- package/fesm2020/sachin9822-reports-lib.mjs.map +1 -1
- package/lib/assets/images/Search.svg +9 -9
- package/lib/assets/svg-loaders/blue-tail-spin.svg +31 -31
- package/lib/components/branch-activity-send-summary-report/branch-activity-send-summary-report.component.d.ts +78 -0
- package/lib/components/transaction-monitoring-report/transaction-monitoring-report.component.d.ts +68 -0
- package/lib/components/trial-balance-accounts-report/trial-balance-accounts-report.component.d.ts +1 -1
- package/lib/models/branch-activity-report/branch-activity-send-report.d.ts +4 -0
- package/lib/models/transaction-monitoring-report/transaction-monitoring-report-request-domain-model.d.ts +13 -0
- package/lib/models/transaction-monitoring-report/transaction-monitoring-report.d.ts +23 -0
- package/lib/reports-lib.module.d.ts +12 -10
- package/lib/services/report.service.d.ts +11 -1
- package/lib/shared/search-filter/search-filter.component.d.ts +7 -5
- package/package.json +1 -1
- package/public-api.d.ts +4 -0
|
@@ -24,6 +24,8 @@ import { AccountingReportComponent } from './components/accounting-report/accoun
|
|
|
24
24
|
import { CreditLimitStatusEnquiryReportComponent } from './components/credit-limit-status-enquiry-report/credit-limit-status-enquiry-report.component';
|
|
25
25
|
import { FundingReportComponent } from './components/funding-report/funding-report.component';
|
|
26
26
|
import { TrialBalanceAccountsReportComponent } from './components/trial-balance-accounts-report/trial-balance-accounts-report.component';
|
|
27
|
+
import { BranchActivitySendSummaryReportComponent } from './components/branch-activity-send-summary-report/branch-activity-send-summary-report.component';
|
|
28
|
+
import { TransactionMonitoringReportComponent } from './components/transaction-monitoring-report/transaction-monitoring-report.component';
|
|
27
29
|
import * as i0 from "@angular/core";
|
|
28
30
|
export function initializeApp(config) {
|
|
29
31
|
const configFile = '/assets/config/app-config.json';
|
|
@@ -46,7 +48,9 @@ ReportsLibModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", versio
|
|
|
46
48
|
AccountingReportComponent,
|
|
47
49
|
CreditLimitStatusEnquiryReportComponent,
|
|
48
50
|
FundingReportComponent,
|
|
49
|
-
TrialBalanceAccountsReportComponent
|
|
51
|
+
TrialBalanceAccountsReportComponent,
|
|
52
|
+
BranchActivitySendSummaryReportComponent,
|
|
53
|
+
TransactionMonitoringReportComponent], imports: [AgGridModule,
|
|
50
54
|
ReportsLibRoutingModule,
|
|
51
55
|
CommonModule,
|
|
52
56
|
RouterModule,
|
|
@@ -71,7 +75,9 @@ ReportsLibModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", versio
|
|
|
71
75
|
AccountingReportComponent,
|
|
72
76
|
FundingReportComponent,
|
|
73
77
|
CreditLimitStatusEnquiryReportComponent,
|
|
74
|
-
TrialBalanceAccountsReportComponent
|
|
78
|
+
TrialBalanceAccountsReportComponent,
|
|
79
|
+
BranchActivitySendSummaryReportComponent,
|
|
80
|
+
TransactionMonitoringReportComponent] });
|
|
75
81
|
ReportsLibModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ReportsLibModule, providers: [
|
|
76
82
|
ConfigService,
|
|
77
83
|
{
|
|
@@ -115,7 +121,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
115
121
|
AccountingReportComponent,
|
|
116
122
|
CreditLimitStatusEnquiryReportComponent,
|
|
117
123
|
FundingReportComponent,
|
|
118
|
-
TrialBalanceAccountsReportComponent
|
|
124
|
+
TrialBalanceAccountsReportComponent,
|
|
125
|
+
BranchActivitySendSummaryReportComponent,
|
|
126
|
+
TransactionMonitoringReportComponent
|
|
119
127
|
],
|
|
120
128
|
imports: [
|
|
121
129
|
AgGridModule,
|
|
@@ -155,8 +163,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
155
163
|
AccountingReportComponent,
|
|
156
164
|
FundingReportComponent,
|
|
157
165
|
CreditLimitStatusEnquiryReportComponent,
|
|
158
|
-
TrialBalanceAccountsReportComponent
|
|
166
|
+
TrialBalanceAccountsReportComponent,
|
|
167
|
+
BranchActivitySendSummaryReportComponent,
|
|
168
|
+
TransactionMonitoringReportComponent
|
|
159
169
|
]
|
|
160
170
|
}]
|
|
161
171
|
}] });
|
|
162
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0cy1saWIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcmVwb3J0cy1saWIvc3JjL2xpYi9yZXBvcnRzLWxpYi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sb0ZBQW9GLENBQUM7QUFDeEksT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRXZFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sZ0ZBQWdGLENBQUM7QUFDbkksT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUE7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDL0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDakUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDhFQUE4RSxDQUFDO0FBQzNILE9BQU8sRUFBRSxxQkFBcUIs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d0JBQ25CLFlBQVk7d0JBQ1IsYUFBYTt3QkFDYixZQUFZO3dCQUNaLHVCQUF1Qjt3QkFDdkIsV0FBVzt3QkFDWCxZQUFZO3dCQUNaLFNBQVM7d0JBQ1QsbUJBQW1CO3dCQUNuQixjQUFjO3dCQUNsQixtQkFBbUI7d0JBQ25CLFNBQVM7d0JBQ1QsY0FBYztxQkFDZjtvQkFDRCxTQUFTLEVBQUU7d0JBQ1QsYUFBYTt3QkFDYjs0QkFDRSxPQUFPLEVBQUUsZUFBZTs0QkFDeEIsVUFBVSxFQUFFLGFBQWE7NEJBQ3pCLElBQUksRUFBRSxDQUFDLGFBQWEsQ0FBQzs0QkFDckIsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLG1CQUFtQjt3QkFDbkIsa0NBQWtDO3dCQUNsQyxpQ0FBaUM7d0JBQ2pDLDJCQUEyQjt3QkFDM0Isc0NBQXNDO3dCQUN0QyxrQ0FBa0M7d0JBQ2xDLHlCQUF5Qjt3QkFDekIsc0JBQXNCO3dCQUN0Qix1Q0FBdUM7d0JBQ3ZDLG1DQUFtQztxQkFDcEM7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBUFBfSU5JVElBTElaRVIsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjY0dsRGV0YWlsc0VucXVpcnlSZXBvcnRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWNjLWdsLWRldGFpbHMtZW5xdWlyeS1yZXBvcnQvYWNjLWdsLWRldGFpbHMtZW5xdWlyeS1yZXBvcnQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQWdHcmlkTW9kdWxlIH0gZnJvbSAnYWctZ3JpZC1hbmd1bGFyJztcclxuaW1wb3J0IHsgUmVwb3J0c0xpYlJvdXRpbmdNb2R1bGUgfSBmcm9tICcuL3JlcG9ydHMtbGliLXJvdXRpbmcubW9kdWxlJztcclxuXHJcbmltcG9ydCB7IEJyb3dzZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEJyYW5jaEFjdGl2aXR5U2VuZFJlcG9ydENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9icmFuY2gtYWN0aXZpdHktc2VuZC1yZXBvcnQvYnJhbmNoLWFjdGl2aXR5LXNlbmQtcmVwb3J0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE5nYk1vZHVsZSB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgTmdTZWxlY3RNb2R1bGUgfSBmcm9tICdAbmctc2VsZWN0L25nLXNlbGVjdCc7XHJcbmltcG9ydCB7IExvYWRlckNvbXBvbmVudCB9IGZyb20gJy4vc2hhcmVkL2xvYWRlci9sb2FkZXIuY29tcG9uZW50J1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vbGliL3NlcnZpY2VzL2NvbmZpZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTmdiRGF0ZXBpY2tlck1vZHVsZSB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgU2hhcmVkTW9kdWxlIH0gZnJvbSAnLi9zaGFyZWQvc2hhcmVkLm1vZHVsZSc7XHJcbmltcG9ydCB7IFRyYW5zYWN0aW9uRW5xdWlyeUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90cmFuc2FjdGlvbi1lbnF1aXJ5LXJlcG9ydC90cmFuc2FjdGlvbi1lbnF1aXJ5LXJlcG9ydC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTZWFyY2hGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuL3NoYXJlZC9zZWFyY2gtZmlsdGVyL3NlYXJjaC1maWx0ZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUmVwb3J0c0xpYkNvbXBvbmVudCB9IGZyb20gJy4vcmVwb3J0cy1saWIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQnJhbmNoQWN0aXZpdHlSZWNlaXZlUmVwb3J0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2JyYW5jaC1hY3Rpdml0eS1yZWNlaXZlLXJlcG9ydC9icmFuY2gtYWN0aXZpdHktcmVjZWl2ZS1yZXBvcnQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ2FuY2VsbGF0aW9uVHJhbnNhY3Rpb25SZXBvcnRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2FuY2VsbGF0aW9uLXRyYW5zYWN0aW9uLXJlcG9ydC9jYW5jZWxsYXRpb24tdHJhbnNhY3Rpb24tcmVwb3J0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFJldmVudWVQZXJUcmFuc2FjdGlvblJlcG9ydENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9yZXZlbnVlLXBlci10cmFuc2FjdGlvbi1yZXBvcnQvcmV2ZW51ZS1wZXItdHJhbnNhY3Rpb24tcmVwb3J0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFN0YXRlbWVudE9mQWNjb3VudHNSZXBvcnRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc3RhdGVtZW50LW9mLWFjY291bnRzLXJlcG9ydC9zdGF0ZW1lbnQtb2YtYWNjb3VudHMtcmVwb3J0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFjY291bnRpbmdSZXBvcnRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWNjb3VudGluZy1yZXBvcnQvYWNjb3VudGluZy1yZXBvcnQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ3JlZGl0TGltaXRTdGF0dXNFbnF1aXJ5UmVwb3J0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NyZWRpdC1saW1pdC1zdGF0dXMtZW5xdWlyeS1yZXBvcnQvY3JlZGl0LWxpbWl0LXN0YXR1cy1lbnF1aXJ5LXJlcG9ydC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGdW5kaW5nUmVwb3J0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Z1bmRpbmctcmVwb3J0L2Z1bmRpbmctcmVwb3J0LmNvbXBvbmVudCc7XHJcblxyXG5pbXBvcnQgeyBUcmlhbEJhbGFuY2VBY2NvdW50c1JlcG9ydENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90cmlhbC1iYWxhbmNlLWFjY291bnRzLXJlcG9ydC90cmlhbC1iYWxhbmNlLWFjY291bnRzLXJlcG9ydC5jb21wb25lbnQnO1xyXG5leHBvcnQgZnVuY3Rpb24gaW5pdGlhbGl6ZUFwcChjb25maWc6IENvbmZpZ1NlcnZpY2UpIHtcclxuICBjb25zdCBjb25maWdGaWxlID0gJy9hc3NldHMvY29uZmlnL2FwcC1jb25maWcuanNvbic7XHJcblxyXG4gIHJldHVybiAoKSA9PiBjb25maWcubG9hZChjb25maWdGaWxlKS50b1Byb21pc2UoKTtcclxufVxyXG5cclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBSZXBvcnRzTGliQ29tcG9uZW50LFxyXG4gICAgQWNjR2xEZXRhaWxzRW5xdWlyeVJlcG9ydENvbXBvbmVudCxcclxuICAgIEJyYW5jaEFjdGl2aXR5U2VuZFJlcG9ydENvbXBvbmVudCxcclxuICAgIExvYWRlckNvbXBvbmVudCxcclxuICAgIFRyYW5zYWN0aW9uRW5xdWlyeUNvbXBvbmVudCxcclxuICAgIExvYWRlckNvbXBvbmVudCxcclxuICAgIFNlYXJjaEZpbHRlckNvbXBvbmVudCxcclxuICAgIEJyYW5jaEFjdGl2aXR5UmVjZWl2ZVJlcG9ydENvbXBvbmVudCxcclxuICAgIENhbmNlbGxhdGlvblRyYW5zYWN0aW9uUmVwb3J0Q29tcG9uZW50LFxyXG4gICAgUmV2ZW51ZVBlclRyYW5zYWN0aW9uUmVwb3J0Q29tcG9uZW50LFxyXG4gICAgU3RhdGVtZW50T2ZBY2NvdW50c1JlcG9ydENvbXBvbmVudCxcclxuICAgIEFjY291bnRpbmdSZXBvcnRDb21wb25lbnQsXHJcbiAgICBDcmVkaXRMaW1pdFN0YXR1c0VucXVpcnlSZXBvcnRDb21wb25lbnQsXHJcbiAgICBGdW5kaW5nUmVwb3J0Q29tcG9uZW50LFxyXG4gICAgVHJpYWxCYWxhbmNlQWNjb3VudHNSZXBvcnRDb21wb25lbnRcclxuICBdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIEFnR3JpZE1vZHVsZSxcclxuICAgIFJlcG9ydHNMaWJSb3V0aW5nTW9kdWxlLFxyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgUm91dGVyTW9kdWxlLFxyXG4gICAgTmdiRGF0ZXBpY2tlck1vZHVsZSxcclxuICAgIFNoYXJlZE1vZHVsZSxcclxuICAgICAgICBCcm93c2VyTW9kdWxlLFxyXG4gICAgICAgIEFnR3JpZE1vZHVsZSxcclxuICAgICAgICBSZXBvcnRzTGliUm91dGluZ01vZHVsZSxcclxuICAgICAgICBGb3Jtc01vZHVsZSxcclxuICAgICAgICBBZ0dyaWRNb2R1bGUsXHJcbiAgICAgICAgTmdiTW9kdWxlLFxyXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICAgICAgTmdTZWxlY3RNb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgTmdiTW9kdWxlLFxyXG4gICAgTmdTZWxlY3RNb2R1bGVcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAgQ29uZmlnU2VydmljZSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxyXG4gICAgICB1c2VGYWN0b3J5OiBpbml0aWFsaXplQXBwLFxyXG4gICAgICBkZXBzOiBbQ29uZmlnU2VydmljZV0sXHJcbiAgICAgIG11bHRpOiB0cnVlXHJcbiAgICB9XHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBSZXBvcnRzTGliQ29tcG9uZW50LFxyXG4gICAgQWNjR2xEZXRhaWxzRW5xdWlyeVJlcG9ydENvbXBvbmVudCxcclxuICAgIEJyYW5jaEFjdGl2aXR5U2VuZFJlcG9ydENvbXBvbmVudCxcclxuICAgIFRyYW5zYWN0aW9uRW5xdWlyeUNvbXBvbmVudCxcclxuICAgIENhbmNlbGxhdGlvblRyYW5zYWN0aW9uUmVwb3J0Q29tcG9uZW50LFxyXG4gICAgU3RhdGVtZW50T2ZBY2NvdW50c1JlcG9ydENvbXBvbmVudCxcclxuICAgIEFjY291bnRpbmdSZXBvcnRDb21wb25lbnQsXHJcbiAgICBGdW5kaW5nUmVwb3J0Q29tcG9uZW50LFxyXG4gICAgQ3JlZGl0TGltaXRTdGF0dXNFbnF1aXJ5UmVwb3J0Q29tcG9uZW50LFxyXG4gICAgVHJpYWxCYWxhbmNlQWNjb3VudHNSZXBvcnRDb21wb25lbnRcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZXBvcnRzTGliTW9kdWxlIHsgfVxyXG4iXX0=
|
|
172
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0cy1saWIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcmVwb3J0cy1saWIvc3JjL2xpYi9yZXBvcnRzLWxpYi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sb0ZBQW9GLENBQUM7QUFDeEksT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRXZFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sZ0ZBQWdGLENBQUM7QUFDbkksT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUE7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDL0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDakUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDhFQUE4RSxDQUFDO0FBQzNILE9BQU8sRUFBRSxxQkFBcUIs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a0M7d0JBQ2xDLHlCQUF5Qjt3QkFDekIsdUNBQXVDO3dCQUN2QyxzQkFBc0I7d0JBQ3RCLG1DQUFtQzt3QkFDbkMsd0NBQXdDO3dCQUN4QyxvQ0FBb0M7cUJBRXJDO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLHVCQUF1Qjt3QkFDdkIsWUFBWTt3QkFDWixZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsWUFBWTt3QkFDUixhQUFhO3dCQUNiLFlBQVk7d0JBQ1osdUJBQXVCO3dCQUN2QixXQUFXO3dCQUNYLFlBQVk7d0JBQ1osU0FBUzt3QkFDVCxtQkFBbUI7d0JBQ25CLGNBQWM7d0JBQ2xCLG1CQUFtQjt3QkFDbkIsU0FBUzt3QkFDVCxjQUFjO3FCQUNmO29CQUNELFNBQVMsRUFBRTt3QkFDVCxhQUFhO3dCQUNiOzRCQUNFLE9BQU8sRUFBRSxlQUFlOzRCQUN4QixVQUFVLEVBQUUsYUFBYTs0QkFDekIsSUFBSSxFQUFFLENBQUMsYUFBYSxDQUFDOzRCQUNyQixLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsbUJBQW1CO3dCQUNuQixrQ0FBa0M7d0JBQ2xDLGlDQUFpQzt3QkFDakMsMkJBQTJCO3dCQUMzQixzQ0FBc0M7d0JBQ3RDLGtDQUFrQzt3QkFDbEMseUJBQXlCO3dCQUN6QixzQkFBc0I7d0JBQ3RCLHVDQUF1Qzt3QkFDdkMsbUNBQW1DO3dCQUNuQyx3Q0FBd0M7d0JBQ3hDLG9DQUFvQztxQkFDckM7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBUFBfSU5JVElBTElaRVIsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjY0dsRGV0YWlsc0VucXVpcnlSZXBvcnRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWNjLWdsLWRldGFpbHMtZW5xdWlyeS1yZXBvcnQvYWNjLWdsLWRldGFpbHMtZW5xdWlyeS1yZXBvcnQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQWdHcmlkTW9kdWxlIH0gZnJvbSAnYWctZ3JpZC1hbmd1bGFyJztcclxuaW1wb3J0IHsgUmVwb3J0c0xpYlJvdXRpbmdNb2R1bGUgfSBmcm9tICcuL3JlcG9ydHMtbGliLXJvdXRpbmcubW9kdWxlJztcclxuXHJcbmltcG9ydCB7IEJyb3dzZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEJyYW5jaEFjdGl2aXR5U2VuZFJlcG9ydENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9icmFuY2gtYWN0aXZpdHktc2VuZC1yZXBvcnQvYnJhbmNoLWFjdGl2aXR5LXNlbmQtcmVwb3J0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE5nYk1vZHVsZSB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgTmdTZWxlY3RNb2R1bGUgfSBmcm9tICdAbmctc2VsZWN0L25nLXNlbGVjdCc7XHJcbmltcG9ydCB7IExvYWRlckNvbXBvbmVudCB9IGZyb20gJy4vc2hhcmVkL2xvYWRlci9sb2FkZXIuY29tcG9uZW50J1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vbGliL3NlcnZpY2VzL2NvbmZpZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTmdiRGF0ZXBpY2tlck1vZHVsZSB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgU2hhcmVkTW9kdWxlIH0gZnJvbSAnLi9zaGFyZWQvc2hhcmVkLm1vZHVsZSc7XHJcbmltcG9ydCB7IFRyYW5zYWN0aW9uRW5xdWlyeUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90cmFuc2FjdGlvbi1lbnF1aXJ5LXJlcG9ydC90cmFuc2FjdGlvbi1lbnF1aXJ5LXJlcG9ydC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTZWFyY2hGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuL3NoYXJlZC9zZWFyY2gtZmlsdGVyL3NlYXJjaC1maWx0ZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUmVwb3J0c0xpYkNvbXBvbmVudCB9IGZyb20gJy4vcmVwb3J0cy1saWIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQnJhbmNoQWN0aXZpdHlSZWNlaXZlUmVwb3J0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2JyYW5jaC1hY3Rpdml0eS1yZWNlaXZlLXJlcG9ydC9icmFuY2gtYWN0aXZpdHktcmVjZWl2ZS1yZXBvcnQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ2FuY2VsbGF0aW9uVHJhbnNhY3Rpb25SZXBvcnRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2FuY2VsbGF0aW9uLXRyYW5zYWN0aW9uLXJlcG9ydC9jYW5jZWxsYXRpb24tdHJhbnNhY3Rpb24tcmVwb3J0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFJldmVudWVQZXJUcmFuc2FjdGlvblJlcG9ydENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9yZXZlbnVlLXBlci10cmFuc2FjdGlvbi1yZXBvcnQvcmV2ZW51ZS1wZXItdHJhbnNhY3Rpb24tcmVwb3J0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFN0YXRlbWVudE9mQWNjb3VudHNSZXBvcnRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc3RhdGVtZW50LW9mLWFjY291bnRzLXJlcG9ydC9zdGF0ZW1lbnQtb2YtYWNjb3VudHMtcmVwb3J0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFjY291bnRpbmdSZXBvcnRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWNjb3VudGluZy1yZXBvcnQvYWNjb3VudGluZy1yZXBvcnQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ3JlZGl0TGltaXRTdGF0dXNFbnF1aXJ5UmVwb3J0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NyZWRpdC1saW1pdC1zdGF0dXMtZW5xdWlyeS1yZXBvcnQvY3JlZGl0LWxpbWl0LXN0YXR1cy1lbnF1aXJ5LXJlcG9ydC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGdW5kaW5nUmVwb3J0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Z1bmRpbmctcmVwb3J0L2Z1bmRpbmctcmVwb3J0LmNvbXBvbmVudCc7XHJcblxyXG5pbXBvcnQgeyBUcmlhbEJhbGFuY2VBY2NvdW50c1JlcG9ydENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90cmlhbC1iYWxhbmNlLWFjY291bnRzLXJlcG9ydC90cmlhbC1iYWxhbmNlLWFjY291bnRzLXJlcG9ydC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCcmFuY2hBY3Rpdml0eVNlbmRTdW1tYXJ5UmVwb3J0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2JyYW5jaC1hY3Rpdml0eS1zZW5kLXN1bW1hcnktcmVwb3J0L2JyYW5jaC1hY3Rpdml0eS1zZW5kLXN1bW1hcnktcmVwb3J0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRyYW5zYWN0aW9uTW9uaXRvcmluZ1JlcG9ydENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90cmFuc2FjdGlvbi1tb25pdG9yaW5nLXJlcG9ydC90cmFuc2FjdGlvbi1tb25pdG9yaW5nLXJlcG9ydC5jb21wb25lbnQnO1xyXG5leHBvcnQgZnVuY3Rpb24gaW5pdGlhbGl6ZUFwcChjb25maWc6IENvbmZpZ1NlcnZpY2UpIHtcclxuICBjb25zdCBjb25maWdGaWxlID0gJy9hc3NldHMvY29uZmlnL2FwcC1jb25maWcuanNvbic7XHJcblxyXG4gIHJldHVybiAoKSA9PiBjb25maWcubG9hZChjb25maWdGaWxlKS50b1Byb21pc2UoKTtcclxufVxyXG5cclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBSZXBvcnRzTGliQ29tcG9uZW50LFxyXG4gICAgQWNjR2xEZXRhaWxzRW5xdWlyeVJlcG9ydENvbXBvbmVudCxcclxuICAgIEJyYW5jaEFjdGl2aXR5U2VuZFJlcG9ydENvbXBvbmVudCxcclxuICAgIExvYWRlckNvbXBvbmVudCxcclxuICAgIFRyYW5zYWN0aW9uRW5xdWlyeUNvbXBvbmVudCxcclxuICAgIExvYWRlckNvbXBvbmVudCxcclxuICAgIFNlYXJjaEZpbHRlckNvbXBvbmVudCxcclxuICAgIEJyYW5jaEFjdGl2aXR5UmVjZWl2ZVJlcG9ydENvbXBvbmVudCxcclxuICAgIENhbmNlbGxhdGlvblRyYW5zYWN0aW9uUmVwb3J0Q29tcG9uZW50LFxyXG4gICAgUmV2ZW51ZVBlclRyYW5zYWN0aW9uUmVwb3J0Q29tcG9uZW50LFxyXG4gICAgU3RhdGVtZW50T2ZBY2NvdW50c1JlcG9ydENvbXBvbmVudCxcclxuICAgIEFjY291bnRpbmdSZXBvcnRDb21wb25lbnQsXHJcbiAgICBDcmVkaXRMaW1pdFN0YXR1c0VucXVpcnlSZXBvcnRDb21wb25lbnQsXHJcbiAgICBGdW5kaW5nUmVwb3J0Q29tcG9uZW50LFxyXG4gICAgVHJpYWxCYWxhbmNlQWNjb3VudHNSZXBvcnRDb21wb25lbnQsXHJcbiAgICBCcmFuY2hBY3Rpdml0eVNlbmRTdW1tYXJ5UmVwb3J0Q29tcG9uZW50LFxyXG4gICAgVHJhbnNhY3Rpb25Nb25pdG9yaW5nUmVwb3J0Q29tcG9uZW50XHJcblxyXG4gIF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQWdHcmlkTW9kdWxlLFxyXG4gICAgUmVwb3J0c0xpYlJvdXRpbmdNb2R1bGUsXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBSb3V0ZXJNb2R1bGUsXHJcbiAgICBOZ2JEYXRlcGlja2VyTW9kdWxlLFxyXG4gICAgU2hhcmVkTW9kdWxlLFxyXG4gICAgICAgIEJyb3dzZXJNb2R1bGUsXHJcbiAgICAgICAgQWdHcmlkTW9kdWxlLFxyXG4gICAgICAgIFJlcG9ydHNMaWJSb3V0aW5nTW9kdWxlLFxyXG4gICAgICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgICAgIEFnR3JpZE1vZHVsZSxcclxuICAgICAgICBOZ2JNb2R1bGUsXHJcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgICAgICBOZ1NlbGVjdE1vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBOZ2JNb2R1bGUsXHJcbiAgICBOZ1NlbGVjdE1vZHVsZVxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICBDb25maWdTZXJ2aWNlLFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXHJcbiAgICAgIHVzZUZhY3Rvcnk6IGluaXRpYWxpemVBcHAsXHJcbiAgICAgIGRlcHM6IFtDb25maWdTZXJ2aWNlXSxcclxuICAgICAgbXVsdGk6IHRydWVcclxuICAgIH1cclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIFJlcG9ydHNMaWJDb21wb25lbnQsXHJcbiAgICBBY2NHbERldGFpbHNFbnF1aXJ5UmVwb3J0Q29tcG9uZW50LFxyXG4gICAgQnJhbmNoQWN0aXZpdHlTZW5kUmVwb3J0Q29tcG9uZW50LFxyXG4gICAgVHJhbnNhY3Rpb25FbnF1aXJ5Q29tcG9uZW50LFxyXG4gICAgQ2FuY2VsbGF0aW9uVHJhbnNhY3Rpb25SZXBvcnRDb21wb25lbnQsXHJcbiAgICBTdGF0ZW1lbnRPZkFjY291bnRzUmVwb3J0Q29tcG9uZW50LFxyXG4gICAgQWNjb3VudGluZ1JlcG9ydENvbXBvbmVudCxcclxuICAgIEZ1bmRpbmdSZXBvcnRDb21wb25lbnQsXHJcbiAgICBDcmVkaXRMaW1pdFN0YXR1c0VucXVpcnlSZXBvcnRDb21wb25lbnQsXHJcbiAgICBUcmlhbEJhbGFuY2VBY2NvdW50c1JlcG9ydENvbXBvbmVudCxcclxuICAgIEJyYW5jaEFjdGl2aXR5U2VuZFN1bW1hcnlSZXBvcnRDb21wb25lbnQgLFxyXG4gICAgVHJhbnNhY3Rpb25Nb25pdG9yaW5nUmVwb3J0Q29tcG9uZW50XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVwb3J0c0xpYk1vZHVsZSB7IH1cclxuIl19
|
|
@@ -210,9 +210,9 @@ export class ReportService {
|
|
|
210
210
|
const apiPath = `${this.reportServiceUrl}/api/v1/Report/TrialBalanceAccountsReport/GetTrialBalanceAccountsReport`;
|
|
211
211
|
return this.http.post(apiPath, object).pipe(map(response => response || undefined));
|
|
212
212
|
}
|
|
213
|
-
// Api 2 - Get Business
|
|
214
|
-
|
|
215
|
-
const apiPath = `${this.reportServiceUrl}/api/v1/Report/TrialBalanceAccountsReport/
|
|
213
|
+
// Api 2 - Get Business Unit
|
|
214
|
+
GetBusinessUnitForTrialBalanceAccountsReport() {
|
|
215
|
+
const apiPath = `${this.reportServiceUrl}/api/v1/Report/TrialBalanceAccountsReport/GetBusinessUnit`;
|
|
216
216
|
return this.http.get(apiPath).pipe(map(response => {
|
|
217
217
|
return response;
|
|
218
218
|
}));
|
|
@@ -304,6 +304,64 @@ export class ReportService {
|
|
|
304
304
|
const url = `${this.reportServiceUrl}/api/v1/Report/Funding/viewReport`;
|
|
305
305
|
return this.http.post(url, criteria).pipe(map(response => response || {}));
|
|
306
306
|
}
|
|
307
|
+
//Branch Activity Send Summary Report
|
|
308
|
+
getPayInAgentforSendSummaryReport() {
|
|
309
|
+
const apiPath = `${this.reportServiceUrl}/api/v1/Report/SendSummaryReport/GetAllPayInAgents`;
|
|
310
|
+
return this.http.get(apiPath).pipe(map(response => {
|
|
311
|
+
return response;
|
|
312
|
+
}));
|
|
313
|
+
}
|
|
314
|
+
getBranchByAgentForSendSummaryReport(code) {
|
|
315
|
+
const apiPath = `${this.reportServiceUrl}/api/v1/Report/SendSummaryReport/GetBranchByAgent/${code}/BH`;
|
|
316
|
+
return this.http.get(apiPath).pipe(map(response => {
|
|
317
|
+
retry(2),
|
|
318
|
+
map(response => response);
|
|
319
|
+
return response;
|
|
320
|
+
}));
|
|
321
|
+
}
|
|
322
|
+
getParamsForSendSummaryReport() {
|
|
323
|
+
const apiPath = `${this.reportServiceUrl}/api/v1/Report/SendSummaryReport/GetBranchActivitySendSummaryReportParams`;
|
|
324
|
+
return this.http.get(apiPath).pipe(map(response => {
|
|
325
|
+
retry(2),
|
|
326
|
+
map(response => response);
|
|
327
|
+
return response;
|
|
328
|
+
}));
|
|
329
|
+
}
|
|
330
|
+
getBranchActivitySendSummaryReport(data) {
|
|
331
|
+
const apiPath = `${this.reportServiceUrl}/api/v1/Report/SendSummaryReport/GetBranchActivitySendSummaryReport`;
|
|
332
|
+
return this.http.post(apiPath, data).pipe(map(response => {
|
|
333
|
+
return response;
|
|
334
|
+
}));
|
|
335
|
+
}
|
|
336
|
+
//Transaction monitoring Report.
|
|
337
|
+
getParamsForTransactionMonitoringReport() {
|
|
338
|
+
const apiPath = `${this.reportServiceUrl}/api/v1/Report/TransactionMonitoringReport/TransactionMonitoringReportParams`;
|
|
339
|
+
return this.http.get(apiPath).pipe(map(response => {
|
|
340
|
+
retry(2),
|
|
341
|
+
map(response => response);
|
|
342
|
+
return response;
|
|
343
|
+
}));
|
|
344
|
+
}
|
|
345
|
+
getBranchByAgentForTransactionMonitoringReport(code) {
|
|
346
|
+
const apiPath = `${this.reportServiceUrl}/api/v1/Report/TransactionMonitoringReport/GetBranchByAgent/${code}/BH`;
|
|
347
|
+
return this.http.get(apiPath).pipe(map(response => {
|
|
348
|
+
retry(2),
|
|
349
|
+
map(response => response);
|
|
350
|
+
return response;
|
|
351
|
+
}));
|
|
352
|
+
}
|
|
353
|
+
getPayInAgentforTransactionMonitoringReport() {
|
|
354
|
+
const apiPath = `${this.reportServiceUrl}/api/v1/Report/TransactionMonitoringReport/GetAllPayInAgents`;
|
|
355
|
+
return this.http.get(apiPath).pipe(map(response => {
|
|
356
|
+
return response;
|
|
357
|
+
}));
|
|
358
|
+
}
|
|
359
|
+
getTransactionMonitoringReport(data) {
|
|
360
|
+
const apiPath = `${this.reportServiceUrl}/api/v1/Report/TransactionMonitoringReport/GetTransactionMonitoringReport`;
|
|
361
|
+
return this.http.post(apiPath, data).pipe(map(response => {
|
|
362
|
+
return response;
|
|
363
|
+
}));
|
|
364
|
+
}
|
|
307
365
|
}
|
|
308
366
|
ReportService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ReportService, deps: [{ token: i1.HttpClient }, { token: i2.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
309
367
|
ReportService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ReportService, providedIn: 'root' });
|
|
@@ -313,4 +371,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
313
371
|
providedIn: 'root'
|
|
314
372
|
}]
|
|
315
373
|
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.ConfigService }]; } });
|
|
316
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yZXBvcnRzLWxpYi9zcmMvbGliL3NlcnZpY2VzL3JlcG9ydC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQWdCNUMsTUFBTSxPQUFPLGFBQWE7SUFHeEIsd0NBQXdDO0lBQ3hDLDBFQUEwRTtJQUUxRSxZQUFvQixJQUFnQixFQUFVLE1BQXFCO1FBQS9DLFNBQUksR0FBSixJQUFJLENBQVk7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ2pFLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLDBGQUEwRixDQUFDLENBQUM7U0FDN0c7UUFDRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUM7SUFDM0QsQ0FBQztJQUVNLHFCQUFxQixDQUFDLGFBQWlDLEVBQUUsUUFBZ0I7UUFDOUUsTUFBTSxPQUFPLEdBQUcsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLHlFQUF5RSxhQUFhLElBQUksUUFBUSxFQUFFLENBQUM7UUFDN0ksT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBaUMsT0FBTyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELGNBQWM7UUFDWixNQUFNLE9BQU8sR0FBRyxHQUFHLElBQUksQ0FBQyxnQkFBZ0Isa0NBQWtDLENBQUM7UUFDM0UsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ2hE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QUcsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUN4RCxPQUFjLFFBQVEsQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ0wsQ0FBQztJQUNELGdCQUFnQjtJQUNoQixnQkFBZ0IsQ0FBQyxRQUFhO1FBQzVCLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixtQ0FBbUMsQ0FBQztRQUN4RSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQ3ZDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUMsQ0FDaEMsQ0FBQztJQUNKLENBQUM7OzBHQXBYVSxhQUFhOzhHQUFiLGFBQWEsY0FGWixNQUFNOzJGQUVQLGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY2NHbERldGFpbHNFbnF1aXJ5UmVwb3J0TW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvYWNjLWdsLWRldGFpbHMtZW5xdWlyeS1yZXBvcnQvYWNjZ2wtZGV0YWlscy1lbnF1aXJ5LXJlcG9ydG1vZGVsJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAsIHJldHJ5IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBCcmFuY2hBY3Rpdml0eVNlbmRSZXBvcnRSZXF1ZXN0RG9tYWluTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvYnJhbmNoLWFjdGl2aXR5LXJlcG9ydC9icmFuY2gtYWN0aXZpdHktc2VuZC1yZXBvcnQtcmVxdWVzdC1kb21haW4tbW9kZWwnO1xyXG5pbXBvcnQgeyBCcmFuY2hBY3Rpdml0eVJlcG9ydCB9IGZyb20gJy4uL21vZGVscy9icmFuY2gtYWN0aXZpdHktcmVwb3J0L2JyYW5jaC1hY3Rpdml0eS1zZW5kLXJlcG9ydCc7XHJcbmltcG9ydCB7IFByb2R1Y3QsIFVzZXIsIEJyYW5jaCwgVHJhbnNhY3Rpb25EYXRhLCBQYWdlTG9hZERhdGFSZXNwb25zZSwgU2VhcmNoQ3JpdGVyaWEgfSBmcm9tICcuLi9tb2RlbHMvdHJhbnNhY3Rpb24tZW5xdWlyeS1yZXBvcnQvdHJhbnNhY3Rpb24tZW5xdWlyeS5tb2RlbCc7XHJcbmltcG9ydCB7IENvbmZpZ1NlcnZpY2UgfSBmcm9tICcuL2NvbmZpZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQnJhbmNoQWN0aXZpdHlSZWNlaXZlUmVwb3J0TW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvYnJhbmNoLWFjdGl2aXR5LXJlY2VpdmUtcmVwb3J0L2JyYW5jaC1hY3Rpdml0eS1yZWNlaXZlLm1vZGVsJztcclxuaW1wb3J0IHsgQ2FuY2VsbGF0aW9uVHJhbnNhY3Rpb24gfSBmcm9tICcuLi9tb2RlbHMvY2FuY2VsbGF0aW9uLXRyYW5zYWN0aW9uLXJlcG9ydC9jYW5jZWxsYXRpb24tdHJhbnNhY3Rpb24ubW9kZWwnO1xyXG5pbXBvcnQgeyBSZXZlbnVlUGVyVHJhbnNhY3Rpb25SZXNwb25zZU1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL3JldmVudWUtcGVyLXRyYW5zYWN0aW9uLXJlcG9ydC9yZXZlbnVlLXBlci10cmFuc2FjdGlvbi5tb2RlbCc7XHJcbmltcG9ydCB7IFN0YXRlbWVudE9mQWNjb3VudFJlcXVlc3QsIFN0YXRlbWVudE9mQWNjb3VudFJlc3BvbnNlIH0gZnJvbSAnLi4vbW9kZWxzL3N0YXRlbWVudC1vZi1hY2NvdW50LXJlcG9ydC9zdGF0ZW1lbnQtb2YtYWNjb3VudHMubW9kZWwnO1xyXG5pbXBvcnQgeyBBY2NvdW50aW5nUmVwb3J0TW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvYWNjb3VudGluZy1yZXBvcnQvYWNjb3VudGluZy1yZXBvcnQtbW9kZWwnO1xyXG5pbXBvcnQgeyBUcmlhbEJhbGFuY2VSZXBvcnQgfSBmcm9tICcuLi9tb2RlbHMvdHJpYWwtYmFsYW5jZS1hY2NvdW50cy1yZXBvcnQvdHJpYWwtYmFsYW5jZS1hY2NvdW50cy5tb2RlbHMnO1xyXG5cclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFJlcG9ydFNlcnZpY2Uge1xyXG5cclxuICBwcml2YXRlIHJlcG9ydFNlcnZpY2VVcmw6IHN0cmluZztcclxuICAvLyBwcml2YXRlIHJlcG9ydFVybCA9ICcvYXBpL3YxL1JlcG9ydCc7XHJcbiAgLy8gcHJpdmF0ZSBzeXN0ZW1SZXBvcnRVcmwgPSAnL2FwaS92MS9Db21wYW55Q29uZmlndXJhdGlvbi9TeXN0ZW1SZXBvcnRzJztcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LCBwcml2YXRlIGNvbmZpZzogQ29uZmlnU2VydmljZSkge1xyXG4gICAgaWYgKCF0aGlzLmNvbmZpZy5nZXQpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb25maWdTZXJ2aWNlIGlzIG5vdCBpbml0aWFsaXplZC4gRW5zdXJlIEFQUF9JTklUSUFMSVpFUiByYW4gYmVmb3JlIHVzaW5nIFJlcG9ydFNlcnZpY2UuJyk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnJlcG9ydFNlcnZpY2VVcmwgPSB0aGlzLmNvbmZpZy5nZXQucmVwb3J0U2VydmljZVVybDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRBY2NHTERldGFpbHNSZXBvcnQoZm9ybWF0dGVkRGF0ZTogc3RyaW5nIHwgdW5kZWZpbmVkLCBkYXRlVHlwZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxBY2NHbERldGFpbHNFbnF1aXJ5UmVwb3J0TW9kZWw+IHtcclxuICAgIGNvbnN0IGFwaVBhdGggPSBgJHt0aGlzLnJlcG9ydFNlcnZpY2VVcmx9L2FwaS92MS9SZXBvcnQvQWNjR2xEZXRhaWxzRW5xdWlyeVJlcG9ydC9HZXRBY2NHTERldGFpbHNFbnF1aXJ5UmVwb3J0LyR7Zm9ybWF0dGVkRGF0ZX0vJHtkYXRlVHlwZX1gO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QWNjR2xEZXRhaWxzRW5xdWlyeVJlcG9ydE1vZGVsPihhcGlQYXRoKTtcclxuICB9XHJcblxyXG4gIGdldFBheUluQWdlbnRzKCk6IE9ic2VydmFibGU8YW55W10+IHtcclxuICAgIGNvbnN0IGFwaVBhdGggPSBgJHt0aGlzLnJlcG9ydFNlcnZpY2VVcmx9L2FwaS92MS9SZXBvcnQvR2V0QWxsUGF5SW5BZ2VudHNgO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYXBpUGF0aCkucGlwZShtYXAocmVzcG9uc2UgPT4ge1xyXG4gICAgICByZXR1cm4gPGFueVtdPnJlc3BvbnNlO1xyXG4gICAgfSkpO1xyXG4gIH1cclxuXHJcbiAgZ2V0QnJhbmNoQnlBZ2VudChjb2RlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueVtdPiB7XHJcbiAgICBjb25zdCBhcGlQYXRoID0gYCR7dGhpcy5yZXBvcnRTZXJ2aWNlVXJsfS9hcGkvdjEvUmVwb3J0L0dldEJyYW5jaEJ5QWdlbnQvJHtjb2RlfS9CSGA7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChhcGlQYXRoKS5waXBlKG1hcChyZXNwb25zZSA9PiB7XHJcbiAgICAgIHJldHJ5KDIpLFxyXG4gICAgICAgIG1hcChyZXNwb25zZSA9PiByZXNwb25zZSlcclxuICAgICAgcmV0dXJuIDxhbnlbXT5yZXNwb25zZTtcclxuICAgIH0pKTtcclxuICB9XHJcblxyXG4gIGdldFBhcmFtcygpOiBPYnNlcnZhYmxlPGFueVtdPiB7XHJcbiAgICBjb25zdCBhcGlQYXRoID0gYCR7dGhpcy5yZXBvcnRTZXJ2aWNlVXJsfS9hcGkvdjEvUmVwb3J0L0dldEJyYW5jaEFjdGl2aXR5U2VuZFJlcG9ydFBhcmFtc2A7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChhcGlQYXRoKS5waXBlKG1hcChyZXNwb25zZSA9PiB7XHJcbiAgICAgIHJldHJ5KDIpLFxyXG4gICAgICAgIG1hcChyZXNwb25zZSA9PiByZXNwb25zZSlcclxuICAgICAgcmV0dXJuIDxhbnlbXT5yZXNwb25zZTtcclxuICAgIH0pKTtcclxuICB9XHJcblxyXG4gIGdldEJyYW5jaEFjdGl2aXR5UmVwb3J0KGRhdGE6IEJyYW5jaEFjdGl2aXR5U2VuZFJlcG9ydFJlcXVlc3REb21haW5Nb2RlbCB8IGFueSk6IE9ic2VydmFibGU8UmVjb3JkPHN0cmluZywgQnJhbmNoQWN0aXZpdHlSZXBvcnRbXT4+IHtcclxuICAgIGNvbnN0IGFwaVBhdGggPSBgJHt0aGlzLnJlcG9ydFNlcnZpY2VVcmx9L2FwaS92MS9SZXBvcnQvR2V0QnJhbmNoQWN0aXZpdHlTZW5kUmVwb3J0YDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChhcGlQYXRoLCBkYXRhKS5waXBlKG1hcChyZXNwb25zZSA9PiB7XHJcbiAgICAgIHJldHVybiA8UmVjb3JkPHN0cmluZywgQnJhbmNoQWN0aXZpdHlSZXBvcnRbXT4+cmVzcG9uc2U7XHJcbiAgICB9KSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0VXNlck5hbWVGcm9tU2Vzc2lvblN0b3JhZ2UoKTogc3RyaW5nIHtcclxuICAgIGxldCBmb3NzaWxVc2VyTmFtZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ2Zvc3NpbHVzZXJuYW1lJyk7XHJcbiAgICBsZXQgZXpyZW1pdHVzZXJuYW1lID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnZXpyZW1pdHVzZXJuYW1lJyk7XHJcbiAgICBpZiAoZm9zc2lsVXNlck5hbWUpIHtcclxuICAgICAgcmV0dXJuIGZvc3NpbFVzZXJOYW1lLnJlcGxhY2UoL15cIiguKilcIiQvLCAnJDEnKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBlenJlbWl0dXNlcm5hbWUucmVwbGFjZSgvXlwiKC4qKVwiJC8sICckMScpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy9UcmFzYWN0aW9uIEVucXVpcnkgUmVwb3J0IEFwaXNcclxuICAvLyBBUEkgMTogR2V0IGluaXRpYWwgcGFnZSBsb2FkIGRhdGFcclxuICBnZXRQYWdlTG9hZERhdGEoKTogT2JzZXJ2YWJsZTxQYWdlTG9hZERhdGFSZXNwb25zZT4ge1xyXG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5yZXBvcnRTZXJ2aWNlVXJsfS9hcGkvdjEvUmVwb3J0L1RyYW5zYWN0aW9uRW5xdWlyeS9wYWdlTG9hZERhdGFgO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodXJsKS5waXBlKFxyXG4gICAgICBtYXAocmVzcG9uc2UgPT4gPFBhZ2VMb2FkRGF0YVJlc3BvbnNlPnJlc3BvbnNlKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8vIEFQSSAyOiBHZXQgYnJhbmNoZXMgYnkgYWdlbnRcclxuICBnZXRCcmFuY2hlc0J5QWdlbnQoYWdlbnRDb2RlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEJyYW5jaFtdPiB7XHJcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLnJlcG9ydFNlcnZpY2VVcmx9L2FwaS92MS9SZXBvcnQvVHJhbnNhY3Rpb25FbnF1aXJ5L2JyYW5jaGVzLyR7YWdlbnRDb2RlfWA7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCh1cmwpLnBpcGUoXHJcbiAgICAgIG1hcChyZXNwb25zZSA9PiA8QnJhbmNoW10+cmVzcG9uc2UpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLy8gQVBJIDQ6IEdldCB1c2VycyBieSBicmFuY2hcclxuICBnZXRVc2Vyc0J5QnJhbmNoKGJ1c2luZXNzUGFydG5lckNvZGU6IHN0cmluZywgYnJhbmNoQ29kZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxVc2VyW10+IHtcclxuICAgIGNvbnN0IHVybCA9IGAke3RoaXMucmVwb3J0U2VydmljZVVybH0vYXBpL3YxL1JlcG9ydC9UcmFuc2FjdGlvbkVucXVpcnkvdXNlcnMvJHtidXNpbmVzc1BhcnRuZXJDb2RlfS8ke2JyYW5jaENvZGV9YDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHVybCkucGlwZShcclxuICAgICAgbWFwKHJlc3BvbnNlID0+IDxVc2VyW10+cmVzcG9uc2UpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLy8gQVBJIDU6IFNlYXJjaCB0cmFuc2FjdGlvbnNcclxuICBzZWFyY2hUcmFuc2FjdGlvbnMoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxUcmFuc2FjdGlvbkRhdGFbXT4ge1xyXG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5yZXBvcnRTZXJ2aWNlVXJsfS9hcGkvdjEvUmVwb3J0L1RyYW5zYWN0aW9uRW5xdWlyeS92aWV3UmVwb3J0YDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh1cmwsIGRhdGEpLnBpcGUoXHJcbiAgICAgIG1hcChyZXNwb25zZSA9PiA8VHJhbnNhY3Rpb25EYXRhW10+cmVzcG9uc2UpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLy8gQnJhbmNoIEFjdGl2aXR5IFJlY2VpdmUgUmVwb3J0IEFQSVxyXG4gIGdldEFsbFBheU91dEFnZW50cygpOiBPYnNlcnZhYmxlPGFueVtdPiB7XHJcbiAgICBjb25zdCBhcGlQYXRoID0gYCR7dGhpcy5yZXBvcnRTZXJ2aWNlVXJsfS9hcGkvdjEvUmVwb3J0L0JyYW5jaEFjdGl2aXR5UmVjZWl2ZS9HZXRBbGxQYXlvdXRBZ2VudHMvYDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGFwaVBhdGgpLnBpcGUobWFwKHJlc3BvbnNlID0+IHtcclxuICAgICAgcmV0dXJuIDxhbnlbXT5yZXNwb25zZTtcclxuICAgIH0pKVxyXG4gIH1cclxuXHJcbiAgZ2V0QnJhbmNoQWN0aXZpdHlSZWNlaXZlUGFyYW1zKCk6IE9ic2VydmFibGU8YW55W10+IHtcclxuICAgIGNvbnN0IGFwaVBhdGggPSBgJHt0aGlzLnJlcG9ydFNlcnZpY2VVcmx9L2FwaS92MS9SZXBvcnQvQnJhbmNoQWN0aXZpdHlSZWNlaXZlL0dldEJyYW5jaEFjdGl2aXR5UmVjZWl2ZVJlcG9ydFBhcmFtc2A7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChhcGlQYXRoKS5waXBlKG1hcChyZXNwb25zZSA9PiB7XHJcbiAgICAgIHJldHVybiA8YW55W10+cmVzcG9uc2U7XHJcbiAgICB9KSk7XHJcbiAgfVxyXG5cclxuICBnZXRCcmFuY2hBY3Rpdml0eVJlY2VpdmVQYXlvdXRBZ2VudEJyYW5jaChjb2RlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueVtdPiB7XHJcbiAgICBjb25zdCBhcGlQYXRoID0gYCR7dGhpcy5yZXBvcnRTZXJ2aWNlVXJsfS9hcGkvdjEvUmVwb3J0L0JyYW5jaEFjdGl2aXR5UmVjZWl2ZS9HZXRCcmFuY2hCeVBheW91dEFnZW50LyR7Y29kZX0vQkhgO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYXBpUGF0aCkucGlwZShtYXAocmVzcG9uc2UgPT4ge1xyXG4gICAgICByZXRyeSgyKSxcclxuICAgICAgICBtYXAocmVzcG9uc2UgPT4gcmVzcG9uc2UpXHJcbiAgICAgIHJldHVybiA8YW55W10+cmVzcG9uc2U7XHJcbiAgICB9KSk7XHJcbiAgfVxyXG5cclxuICBnZXRCcmFuY2hBY3Rpdml0eVJlY2VpdmVSZXBvcnQoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxSZWNvcmQ8c3RyaW5nLCBCcmFuY2hBY3Rpdml0eVJlY2VpdmVSZXBvcnRNb2RlbFtdPj4ge1xyXG4gICAgY29uc3QgYXBpUGF0aCA9IGAke3RoaXMucmVwb3J0U2VydmljZVVybH0vYXBpL3YxL1JlcG9ydC9CcmFuY2hBY3Rpdml0eVJlY2VpdmUvR2V0QnJhbmNoQWN0aXZpdHlSZWNlaXZlUmVwb3J0YDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChhcGlQYXRoLCBkYXRhKS5waXBlKG1hcChyZXNwb25zZSA9PiB7XHJcbiAgICAgIHJldHVybiA8UmVjb3JkPHN0cmluZywgQnJhbmNoQWN0aXZpdHlSZWNlaXZlUmVwb3J0TW9kZWxbXT4+cmVzcG9uc2U7XHJcbiAgICB9KSk7XHJcbiAgfVxyXG5cclxuICAvL0NhbmNlbGxhdGlvbiBUcmFuc2FjdGlvbiBSZXBvcnQgYXBpc1xyXG4gIC8vQXBpIDFcclxuICBsb2FkRGF0YWZvckNhbmNhbGxhdGlvbigpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgYXBpUGF0aCA9IGAke3RoaXMucmVwb3J0U2VydmljZVVybH0vYXBpL3YxL1JlcG9ydC9DYW5jZWxsYXRpb25UcmFuc2FjdGlvblJlcG9ydC9wYWdlTG9hZERhdGFgO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihhcGlQYXRoKTtcclxuICB9XHJcblxyXG4gIC8qKiBBcGkgMiAtIEdldCBsaXN0IG9mIGJyYW5jaGVzIGZvciBhbiBhZ2VudCAqL1xyXG4gIGdldEJyYW5jaGVzKGFnZW50Q29kZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxCcmFuY2hbXT4ge1xyXG4gICAgY29uc3QgYXBpUGF0aCA9IGAke3RoaXMucmVwb3J0U2VydmljZVVybH0vYXBpL3YxL1JlcG9ydC9DYW5jZWxsYXRpb25UcmFuc2FjdGlvblJlcG9ydC9icmFuY2hlcy8ke2FnZW50Q29kZX1gO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QnJhbmNoW10+KGFwaVBhdGgpLnBpcGUoXHJcbiAgICAgIG1hcChyZXNwb25zZSA9PiByZXNwb25zZSB8fCBbXSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvL0FwaSAzXHJcbiAgZ2V0Q2FuY2VsbGF0aW9uUmVwb3J0KGNyaXRlcmlhOiBhbnkpOiBPYnNlcnZhYmxlPFJlY29yZDxzdHJpbmcsIENhbmNlbGxhdGlvblRyYW5zYWN0aW9uW10+PiB7XHJcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLnJlcG9ydFNlcnZpY2VVcmx9L2FwaS92MS9SZXBvcnQvQ2FuY2VsbGF0aW9uVHJhbnNhY3Rpb25SZXBvcnQvdmlld1JlcG9ydGA7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodXJsLCBjcml0ZXJpYSkucGlwZShtYXAocmVzcG9uc2UgPT4ge1xyXG4gICAgICByZXR1cm4gPFJlY29yZDxzdHJpbmcsIENhbmNlbGxhdGlvblRyYW5zYWN0aW9uW10+PnJlc3BvbnNlO1xyXG4gICAgfSkpO1xyXG4gIH1cclxuXHJcbiAgLy8gUmV2ZW51ZSBQZXIgVHJhbnNhY3Rpb24gUmVwb3J0IEFQSVxyXG4gIGdldEFnZW50c0ZvclJldmVudWVQZXJUcmFuc2FjdGlvbigpOiBPYnNlcnZhYmxlPGFueVtdPiB7XHJcbiAgICBjb25zdCBhcGlQYXRoID0gYCR7dGhpcy5yZXBvcnRTZXJ2aWNlVXJsfS9hcGkvdjEvUmVwb3J0L1JldmVudWVQZXJUcmFuc2FjdGlvbi9HZXRBZ2VudHNGb3JSZXZlbnVlUGVyVHJhbnNhY3Rpb25gO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYXBpUGF0aCkucGlwZShtYXAocmVzcG9uc2UgPT4ge1xyXG4gICAgICByZXR1cm4gPGFueVtdPnJlc3BvbnNlO1xyXG4gICAgfSkpXHJcbiAgfVxyXG5cclxuICBnZXRSZXZlbnVlUGVyVHJhbnNhY3Rpb25SZXBvcnRQYXJhbXMoKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IGFwaVBhdGggPSBgJHt0aGlzLnJlcG9ydFNlcnZpY2VVcmx9L2FwaS92MS9SZXBvcnQvUmV2ZW51ZVBlclRyYW5zYWN0aW9uL0dldFJldmVudWVQZXJUcmFuc2FjdGlvblBhcmFtc2A7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChhcGlQYXRoKTtcclxuICB9XHJcblxyXG4gIGdldFJldmVudWVQZXJUcmFuc2FjdGlvblJlcG9ydChkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPFJldmVudWVQZXJUcmFuc2FjdGlvblJlc3BvbnNlTW9kZWxbXT4ge1xyXG4gICAgY29uc3QgYXBpUGF0aCA9IGAke3RoaXMucmVwb3J0U2VydmljZVVybH0vYXBpL3YxL1JlcG9ydC9SZXZlbnVlUGVyVHJhbnNhY3Rpb24vR2V0UmV2ZW51ZVBlclRyYW5zYWN0aW9uUmVwb3J0YDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChhcGlQYXRoLCBkYXRhKS5waXBlKFxyXG4gICAgICBtYXAocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgIHJldHVybiA8UmV2ZW51ZVBlclRyYW5zYWN0aW9uUmVzcG9uc2VNb2RlbFtdPnJlc3BvbnNlO1xyXG4gICAgICB9KVxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgLy9TdGF0ZW1lbnQgb2YgQWNjb3VudHMgUmVwb3J0XHJcbiAgbG9hZENsaWVudHNGb3JTdGF0ZW1lbnRPZkFjY291bnRzKCk6IE9ic2VydmFibGU8YW55W10+IHtcclxuICAgIGNvbnN0IGFwaVBhdGggPSBgJHt0aGlzLnJlcG9ydFNlcnZpY2VVcmx9L2FwaS92MS9SZXBvcnQvU3RhdGVtZW50b2ZBY2NvdW50cy9DbGllbnRzYDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueVtdPihhcGlQYXRoKTtcclxuICB9XHJcblxyXG4gIGNoZWNrQ2xpZW50Rm9yU3RhdGVtZW50T2ZBY2NvdW50cyhjbGllbnRJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTx7IHJlc3VsdDogc3RyaW5nIH0+IHtcclxuICAgIGNvbnN0IGFwaVBhdGggPSBgJHt0aGlzLnJlcG9ydFNlcnZpY2VVcmx9L2FwaS92MS9SZXBvcnQvU3RhdGVtZW50b2ZBY2NvdW50cy9jaGVja0NsaWVudC8ke2NsaWVudElkfWA7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDx7IHJlc3VsdDogc3RyaW5nIH0+KGFwaVBhdGgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0U3RhdGVtZW50T2ZBY2NvdW50KGNyaXRlcmlhOiBTdGF0ZW1lbnRPZkFjY291bnRSZXF1ZXN0KTogT2JzZXJ2YWJsZTxTdGF0ZW1lbnRPZkFjY291bnRSZXNwb25zZT4ge1xyXG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5yZXBvcnRTZXJ2aWNlVXJsfS9hcGkvdjEvUmVwb3J0L1N0YXRlbWVudG9mQWNjb3VudHMvc3RhdGVtZW50T2ZBY2NvdW50YDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxTdGF0ZW1lbnRPZkFjY291bnRSZXNwb25zZT4odXJsLCBjcml0ZXJpYSkucGlwZShcclxuICAgICAgbWFwKHJlc3BvbnNlID0+IHJlc3BvbnNlIHx8IHtcclxuICAgICAgICBvcGVuaW5nQmFsQW5kRnVuZGluZzogW10sXHJcbiAgICAgICAgc2VuZERldGFpbHM6IFtdLFxyXG4gICAgICAgIHJlY2VpdmVEZXRhaWxzOiBbXVxyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgLy8gQWNjb3VudGluZyBSZXBvcnRcclxuXHJcbiAgLy8gQXBpIDEgLSBnZXQgYWNjb3VudGluZyByZXBvcnRcclxuICBnZXRBY2NvdW50aW5nUmVwb3J0KG9iamVjdDogYW55KTogT2JzZXJ2YWJsZTxBY2NvdW50aW5nUmVwb3J0TW9kZWw+IHtcclxuICAgIGNvbnN0IGFwaVBhdGggPSBgJHt0aGlzLnJlcG9ydFNlcnZpY2VVcmx9L2FwaS92MS9SZXBvcnQvQWNjb3VudGluZ1JlcG9ydC9HZXRBY2NvdW50aW5nUmVwb3J0YDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBY2NvdW50aW5nUmVwb3J0TW9kZWw+KGFwaVBhdGgsIG9iamVjdCkucGlwZShcclxuICAgICAgbWFwKHJlc3BvbnNlID0+IHJlc3BvbnNlIHx8IHVuZGVmaW5lZClcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvLyBBcGkgMiAtIGdldCBBbGwgY2xpZW50c1xyXG4gIGdldENsaWVudHNGb3JBY2NvdW50aW5nUmVwb3J0KHN5c1VzZXJJRDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnlbXT4ge1xyXG4gICAgY29uc3QgYXBpUGF0aCA9IGAke3RoaXMucmVwb3J0U2VydmljZVVybH0vYXBpL3YxL1JlcG9ydC9BY2NvdW50aW5nUmVwb3J0L0dldEFsbFBheUluQWdlbnRzLyR7c3lzVXNlcklEfWA7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChhcGlQYXRoKS5waXBlKG1hcChyZXNwb25zZSA9PiB7XHJcbiAgICAgIHJldHVybiA8YW55W10+cmVzcG9uc2U7XHJcbiAgICB9KSlcclxuICB9XHJcblxyXG4gIC8vIEFwaSAzIC0gZ2V0IGJyYW5jaCBieSBhZ2VudCBvciBjbGllbnRcclxuICBnZXRCcmFuY2hCeUFnZW50Rm9yQWNjb3VudGluZ1JlcG9ydChzeXNVc2VySWQ6IHN0cmluZywgY29kZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnlbXT4ge1xyXG4gICAgY29uc3QgYXBpUGF0aCA9IGAke3RoaXMucmVwb3J0U2VydmljZVVybH0vYXBpL3YxL1JlcG9ydC9BY2NvdW50aW5nUmVwb3J0L0dldEJyYW5jaEJ5QWdlbnQvJHtjb2RlfS8ke3N5c1VzZXJJZH0vQkhgO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYXBpUGF0aCkucGlwZShtYXAocmVzcG9uc2UgPT4ge1xyXG4gICAgICByZXRyeSgyKSxcclxuICAgICAgICBtYXAocmVzcG9uc2UgPT4gcmVzcG9uc2UpXHJcbiAgICAgIHJldHVybiA8YW55W10+cmVzcG9uc2U7XHJcbiAgICB9KSk7XHJcbiAgfVxyXG5cclxuICAvLyBBcGkgNCAtIGdldCBBbGwgdHJhbnNhY3Rpb24gdHlwZXMgKCBwcm9kdWN0cyApXHJcbiAgZ2V0VHJhbnNhY3Rpb25UeXBlc0ZvckFjY291bnRpbmdSZXBvcnQoKTogT2JzZXJ2YWJsZTxQcm9kdWN0W10+IHtcclxuICAgIGNvbnN0IHVybCA9IGAke3RoaXMucmVwb3J0U2VydmljZVVybH0vYXBpL3YxL1JlcG9ydC9BY2NvdW50aW5nUmVwb3J0L2dldFRyYW5zYWN0aW9uVHlwZXNgO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodXJsKS5waXBlKFxyXG4gICAgICBtYXAocmVzcG9uc2UgPT4gPFByb2R1Y3RbXT5yZXNwb25zZSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvLyBBcGkgNSAtIGdldCBBbGwgY3VycmVuY2llc1xyXG4gIGdldEFsbEN1cnJlbmNpZXNGb3JBY2NvdW50aW5nUmVwb3J0KCk6IE9ic2VydmFibGU8YW55W10+IHtcclxuICAgIGNvbnN0IGFwaVBhdGggPSBgJHt0aGlzLnJlcG9ydFNlcnZpY2VVcmx9L2FwaS92MS9SZXBvcnQvQWNjb3VudGluZ1JlcG9ydC9nZXRBbGxDdXJyZW5jaWVzYDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGFwaVBhdGgpLnBpcGUobWFwKHJlc3BvbnNlID0+IHtcclxuICAgICAgcmV0dXJuIDxhbnlbXT5yZXNwb25zZTtcclxuICAgIH0pKVxyXG4gIH1cclxuXHJcbiAgLy8gQXBpIDYgLSBnZXQgQWxsIFRyYW5zYWN0aW9uIFN0YXR1c1xyXG4gIGdldEFsbFRyYW5zYWN0aW9uU3RhdHVzRm9yQWNjb3VudGluZ1JlcG9ydCgpOiBPYnNlcnZhYmxlPGFueVtdPiB7XHJcbiAgICBjb25zdCBhcGlQYXRoID0gYCR7dGhpcy5yZXBvcnRTZXJ2aWNlVXJsfS9hcGkvdjEvUmVwb3J0L0FjY291bnRpbmdSZXBvcnQvR2V0QWxsVHJhbnNhY3Rpb25TdGF0dXNgO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYXBpUGF0aCkucGlwZShtYXAocmVzcG9uc2UgPT4ge1xyXG4gICAgICByZXR1cm4gPGFueVtdPnJlc3BvbnNlO1xyXG4gICAgfSkpXHJcbiAgfVxyXG5cclxuICAvLyBBcGkgNyAtIGdldCBBbGwgQ291bnRyaWVzXHJcbiAgZ2V0QWxsQ291bnRyaWVzRm9yQWNjb3VudGluZ1JlcG9ydCgpOiBPYnNlcnZhYmxlPGFueVtdPiB7XHJcbiAgICBjb25zdCBhcGlQYXRoID0gYCR7dGhpcy5yZXBvcnRTZXJ2aWNlVXJsfS9hcGkvdjEvUmVwb3J0L0FjY291bnRpbmdSZXBvcnQvR2V0QWxsQ291bnRyaWVzYDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGFwaVBhdGgpLnBpcGUobWFwKHJlc3BvbnNlID0+IHtcclxuICAgICAgcmV0dXJuIDxhbnlbXT5yZXNwb25zZTtcclxuICAgIH0pKVxyXG4gIH1cclxuXHJcblxyXG4gIC8vIFRyaWFsIEJhbGFuY2UgLSBBY2NvdW50cyBSZXBvcnRcclxuXHJcbiAgLy8gQXBpIDEgLSBHZXQgVHJpYWwgQmFsYW5jZSAtIEFjY291bnRzIHJlcG9ydFxyXG4gIGdldFRyaWFsQmFsYW5jZUFjY291bnRzUmVwb3J0KG9iamVjdDogYW55KTogT2JzZXJ2YWJsZTxUcmlhbEJhbGFuY2VSZXBvcnQ+IHtcclxuICAgIGNvbnN0IGFwaVBhdGggPSBgJHt0aGlzLnJlcG9ydFNlcnZpY2VVcmx9L2FwaS92MS9SZXBvcnQvVHJpYWxCYWxhbmNlQWNjb3VudHNSZXBvcnQvR2V0VHJpYWxCYWxhbmNlQWNjb3VudHNSZXBvcnRgO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFRyaWFsQmFsYW5jZVJlcG9ydD4oYXBpUGF0aCwgb2JqZWN0KS5waXBlKFxyXG4gICAgICBtYXAocmVzcG9uc2UgPT4gcmVzcG9uc2UgfHwgdW5kZWZpbmVkKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8vIEFwaSAyIC0gR2V0IEJ1c2luZXNzIExpbmVcclxuICBHZXRCdXNpbmVzc0xpbmVGb3JUcmlhbEJhbGFuY2VBY2NvdW50c1JlcG9ydCgpOiBPYnNlcnZhYmxlPGFueVtdPiB7XHJcbiAgICBjb25zdCBhcGlQYXRoID0gYCR7dGhpcy5yZXBvcnRTZXJ2aWNlVXJsfS9hcGkvdjEvUmVwb3J0L1RyaWFsQmFsYW5jZUFjY291bnRzUmVwb3J0L0dldEJ1c2luZXNzTGluZWA7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChhcGlQYXRoKS5waXBlKG1hcChyZXNwb25zZSA9PiB7XHJcbiAgICAgIHJldHVybiA8YW55W10+cmVzcG9uc2U7XHJcbiAgICB9KSlcclxuICB9XHJcblxyXG4gIC8vIEFwaSAzIC0gR2V0IEFjY291bnQgU3RhdHVzXHJcbiAgR2V0QWNjb3VudFN0YXR1c0ZvclRyaWFsQmFsYW5jZUFjY291bnRzUmVwb3J0KCk6IE9ic2VydmFibGU8YW55W10+IHtcclxuICAgIGNvbnN0IGFwaVBhdGggPSBgJHt0aGlzLnJlcG9ydFNlcnZpY2VVcmx9L2FwaS92MS9SZXBvcnQvVHJpYWxCYWxhbmNlQWNjb3VudHNSZXBvcnQvR2V0QWNjb3VudFN0YXR1c2A7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChhcGlQYXRoKS5waXBlKG1hcChyZXNwb25zZSA9PiB7XHJcbiAgICAgIHJldHVybiA8YW55W10+cmVzcG9uc2U7XHJcbiAgICB9KSlcclxuICB9XHJcblxyXG4gIC8vIEFwaSA0IC0gR2V0IERhdGUgVHlwZVxyXG4gIEdldERhdGVUeXBlRm9yVHJpYWxCYWxhbmNlQWNjb3VudHNSZXBvcnQoKTogT2JzZXJ2YWJsZTxhbnlbXT4ge1xyXG4gICAgY29uc3QgYXBpUGF0aCA9IGAke3RoaXMucmVwb3J0U2VydmljZVVybH0vYXBpL3YxL1JlcG9ydC9UcmlhbEJhbGFuY2VBY2NvdW50c1JlcG9ydC9HZXREYXRlVHlwZWA7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChhcGlQYXRoKS5waXBlKG1hcChyZXNwb25zZSA9PiB7XHJcbiAgICAgIHJldHVybiA8YW55W10+cmVzcG9uc2U7XHJcbiAgICB9KSlcclxuICB9XHJcblxyXG4gIC8vIEFwaSA1IC0gR2V0IFllYXJcclxuICBHZXRZZWFyRm9yVHJpYWxCYWxhbmNlQWNjb3VudHNSZXBvcnQoKTogT2JzZXJ2YWJsZTxhbnlbXT4ge1xyXG4gICAgY29uc3QgYXBpUGF0aCA9IGAke3RoaXMucmVwb3J0U2VydmljZVVybH0vYXBpL3YxL1JlcG9ydC9UcmlhbEJhbGFuY2VBY2NvdW50c1JlcG9ydC9HZXRGaW5hbmNpYWxZZWFyYDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGFwaVBhdGgpLnBpcGUobWFwKHJlc3BvbnNlID0+IHtcclxuICAgICAgcmV0dXJuIDxhbnlbXT5yZXNwb25zZTtcclxuICAgIH0pKVxyXG4gIH1cclxuXHJcbiAgLy8gQXBpIDYgLSBHZXQgRnJvbSBNb250aHNcclxuICBHZXRGcm9tTW9udGhzRm9yVHJpYWxCYWxhbmNlQWNjb3VudHNSZXBvcnQoKTogT2JzZXJ2YWJsZTxhbnlbXT4ge1xyXG4gICAgY29uc3QgYXBpUGF0aCA9IGAke3RoaXMucmVwb3J0U2VydmljZVVybH0vYXBpL3YxL1JlcG9ydC9UcmlhbEJhbGFuY2VBY2NvdW50c1JlcG9ydC9HZXRGcm9tTW9udGhzYDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGFwaVBhdGgpLnBpcGUobWFwKHJlc3BvbnNlID0+IHtcclxuICAgICAgcmV0dXJuIDxhbnlbXT5yZXNwb25zZTtcclxuICAgIH0pKVxyXG4gIH1cclxuXHJcbiAgLy8gQXBpIDcgLSBHZXQgVG8gTW9udGhzXHJcbiAgR2V0VG9Nb250aHNGb3JUcmlhbEJhbGFuY2VBY2NvdW50c1JlcG9ydCh5ZWFyOiBudW1iZXIsIG1vbnRoOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueVtdPiB7XHJcbiAgICBjb25zdCBhcGlQYXRoID0gYCR7dGhpcy5yZXBvcnRTZXJ2aWNlVXJsfS9hcGkvdjEvUmVwb3J0L1RyaWFsQmFsYW5jZUFjY291bnRzUmVwb3J0L0dldFRvTW9udGhzLyR7eWVhcn0vJHttb250aH1gO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYXBpUGF0aCkucGlwZShtYXAocmVzcG9uc2UgPT4ge1xyXG4gICAgICByZXR1cm4gPGFueVtdPnJlc3BvbnNlO1xyXG4gICAgfSkpXHJcbiAgfVxyXG5cclxuICAvLyBBcGkgOCAtIEdldCBGcm9tIERhdGVzXHJcbiAgR2V0RnJvbURhdGVzRm9yVHJpYWxCYWxhbmNlQWNjb3VudHNSZXBvcnQoeWVhcjogbnVtYmVyLCBmcm9tTW9udGhMYWJlbDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnlbXT4ge1xyXG4gICAgY29uc3QgYXBpUGF0aCA9IGAke3RoaXMucmVwb3J0U2VydmljZVVybH0vYXBpL3YxL1JlcG9ydC9UcmlhbEJhbGFuY2VBY2NvdW50c1JlcG9ydC9HZXRGcm9tRGF0ZXMvJHt5ZWFyfS8ke2Zyb21Nb250aExhYmVsfWA7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChhcGlQYXRoKS5waXBlKG1hcChyZXNwb25zZSA9PiB7XHJcbiAgICAgIHJldHVybiA8YW55W10+cmVzcG9uc2U7XHJcbiAgICB9KSlcclxuICB9XHJcblxyXG4gIC8vIEFwaSA5IC0gR2V0IFRvIERhdGVzXHJcbiAgR2V0VG9EYXRlc0ZvclRyaWFsQmFsYW5jZUFjY291bnRzUmVwb3J0KG9iamVjdDogYW55KTogT2JzZXJ2YWJsZTxhbnlbXT4ge1xyXG4gICAgY29uc3QgYXBpUGF0aCA9IGAke3RoaXMucmVwb3J0U2VydmljZVVybH0vYXBpL3YxL1JlcG9ydC9UcmlhbEJhbGFuY2VBY2NvdW50c1JlcG9ydC9HZXRUb0RhdGVzYDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChhcGlQYXRoLCBvYmplY3QpLnBpcGUobWFwKHJlc3BvbnNlID0+IHtcclxuICAgICAgcmV0dXJuIDxhbnlbXT5yZXNwb25zZTtcclxuICAgIH0pKVxyXG4gIH1cclxuXHJcbiAgLy8gQXBpIDEwIC0gR2V0IEN1cnJlbmNpZXNcclxuICBHZXRDdXJyZW5jaWVzRm9yVHJpYWxCYWxhbmNlQWNjb3VudHNSZXBvcnQoKTogT2JzZXJ2YWJsZTxhbnlbXT4ge1xyXG4gICAgY29uc3QgYXBpUGF0aCA9IGAke3RoaXMucmVwb3J0U2VydmljZVVybH0vYXBpL3YxL1JlcG9ydC9UcmlhbEJhbGFuY2VBY2NvdW50c1JlcG9ydC9HZXRDdXJyZW5jaWVzYDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGFwaVBhdGgpLnBpcGUobWFwKHJlc3BvbnNlID0+IHtcclxuICAgICAgcmV0dXJuIDxhbnlbXT5yZXNwb25zZTtcclxuICAgIH0pKVxyXG4gIH1cclxuXHJcbiAgLy8gQXBpIDExIC0gR2V0IGRlZmF1bHQgbW9udGgseWVhclxyXG4gIEdldFBhcmFtRGF0ZURlZmF1bHRGb3JUcmlhbEJhbGFuY2VBY2NvdW50c1JlcG9ydCgpOiBPYnNlcnZhYmxlPGFueVtdPiB7XHJcbiAgICBjb25zdCBhcGlQYXRoID0gYCR7dGhpcy5yZXBvcnRTZXJ2aWNlVXJsfS9hcGkvdjEvUmVwb3J0L1RyaWFsQmFsYW5jZUFjY291bnRzUmVwb3J0L0dldFBhcmFtRGF0ZURlZmF1bHRgO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYXBpUGF0aCkucGlwZShtYXAocmVzcG9uc2UgPT4ge1xyXG4gICAgICByZXR1cm4gPGFueVtdPnJlc3BvbnNlO1xyXG4gICAgfSkpXHJcbiAgfVxyXG5cclxuXHJcbiAgICAvL0NyZWRpdCBMaW1pdCBTdGF0dXMgRW5xdWlyeSBSZXBvcnQgQVBJc1xyXG4gIGdldENsaWVudHNGb3JDcmVkaXRMaW1pdFN0YXR1c0VucXVpcnlSZXBvcnQoKTogT2JzZXJ2YWJsZTxhbnlbXT4ge1xyXG4gICAgY29uc3QgYXBpUGF0aCA9IGAke3RoaXMucmVwb3J0U2VydmljZVVybH0vYXBpL3YxL1JlcG9ydC9DcmVkaXRMaW1pdFN0YXR1c0VucXVpcnkvR2V0QnVzaW5lc3NQYXJ0bmVyc2A7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChhcGlQYXRoKS5waXBlKG1hcChyZXNwb25zZSA9PiB7XHJcbiAgICAgIHJldHVybiA8YW55W10+cmVzcG9uc2U7XHJcbiAgICB9KSk7XHJcbiAgfVxyXG4gIFxyXG4gIGdldFRyYW5zYWN0aW9uVHlwZXNGb3JDcmVkaXRMaW1pdFN0YXR1c0VucXVpcnlSZXBvcnQoKTogT2JzZXJ2YWJsZTxhbnlbXT4ge1xyXG4gICAgY29uc3QgYXBpUGF0aCA9IGAke3RoaXMucmVwb3J0U2VydmljZVVybH0vYXBpL3YxL1JlcG9ydC9DcmVkaXRMaW1pdFN0YXR1c0VucXVpcnkvR2V0VHJhbnNhY3Rpb25TdGF0dXNgO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYXBpUGF0aCkucGlwZShtYXAocmVzcG9uc2UgPT4ge1xyXG4gICAgICByZXR1cm4gPGFueVtdPnJlc3BvbnNlO1xyXG4gICAgfSkpO1xyXG4gICAgfVxyXG5cclxuICBnZXRDcmVkaXRMaW1pdFN0YXR1c0VucXVpcnlSZXBvcnQobW9kZWw6IGFueSk6IE9ic2VydmFibGU8YW55W10+IHtcclxuICAgIGNvbnN0IGFwaVBhdGggPSBgJHt0aGlzLnJlcG9ydFNlcnZpY2VVcmx9L2FwaS92MS9SZXBvcnQvQ3JlZGl0TGltaXRTdGF0dXNFbnF1aXJ5L0dldENyZWRpdExpbWl0U3RhdHVzRW5xdWlyeVJlcG9ydGA7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYXBpUGF0aCwgbW9kZWwpLnBpcGUobWFwKHJlc3BvbnNlID0+IHtcclxuICAgICAgcmV0dXJuIDxhbnlbXT5yZXNwb25zZTtcclxuICAgIH0pKVxyXG4gIH1cclxuICAvL0Z1bmRpbmcgUmVwb3J0XHJcbiAgZ2V0RnVuZGluZ1JlcG9ydChjcml0ZXJpYTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IHVybCA9IGAke3RoaXMucmVwb3J0U2VydmljZVVybH0vYXBpL3YxL1JlcG9ydC9GdW5kaW5nL3ZpZXdSZXBvcnRgO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHVybCwgY3JpdGVyaWEpLnBpcGUoXHJcbiAgICAgIG1hcChyZXNwb25zZSA9PiByZXNwb25zZSB8fCB7fSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
|
|
374
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yZXBvcnRzLWxpYi9zcmMvbGliL3NlcnZpY2VzL3JlcG9ydC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQWtCNUMsTUFBTSxPQUFPLGFBQWE7SUFHeEIsd0NBQXdDO0lBQ3hDLDBFQUEwRTtJQUUxRSxZQUFvQixJQUFnQixFQUFVLE1BQXFCO1FBQS9DLFNBQUksR0FBSixJQUFJLENBQVk7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ2pFLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLDBGQUEwRixDQUFDLENBQUM7U0FDN0c7UUFDRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUM7SUFDM0QsQ0FBQztJQUVNLHFCQUFxQixDQUFDLGFBQWlDLEVBQUUsUUFBZ0I7UUFDOUUsTUFBTSxPQUFPLEdBQUcsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLHlFQUF5RSxhQUFhLElBQUksUUFBUSxFQUFFLENBQUM7UUFDN0ksT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBaUMsT0FBTyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELGNBQWM7UUFDWixNQUFNLE9BQU8sR0FBRyxHQUFHLElBQUksQ0FBQyxnQkFBZ0Isa0NBQWtDLENBQUM7UUFDM0UsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ2hE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SUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ2hELEtBQUssQ0FBQyxDQUFDLENBQUM7Z0JBQ04sR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUE7WUFDM0IsT0FBYyxRQUFRLENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7SUFFRCwyQ0FBMkM7UUFDekMsTUFBTSxPQUFPLEdBQUcsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLDhEQUE4RCxDQUFDO1FBQ3ZHLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNoRCxPQUFjLFFBQVEsQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUdELDhCQUE4QixDQUFDLElBQW1EO1FBQ2hGLE1BQU0sT0FBTyxHQUFHLEdBQUcsSUFBSSxDQUFDLGdCQUFnQiwyRUFBMkUsQ0FBQztRQUNwSCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3ZELE9BQXNELFFBQVEsQ0FBQztRQUNqRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQzs7MEdBdmJVLGFBQWE7OEdBQWIsYUFBYSxjQUZaLE1BQU07MkZBRVAsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjY0dsRGV0YWlsc0VucXVpcnlSZXBvcnRNb2RlbCB9IGZyb20gJy4uL21vZGVscy9hY2MtZ2wtZGV0YWlscy1lbnF1aXJ5LXJlcG9ydC9hY2NnbC1kZXRhaWxzLWVucXVpcnktcmVwb3J0bW9kZWwnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCwgcmV0cnkgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEJyYW5jaEFjdGl2aXR5U2VuZFJlcG9ydFJlcXVlc3REb21haW5Nb2RlbCB9IGZyb20gJy4uL21vZGVscy9icmFuY2gtYWN0aXZpdHktcmVwb3J0L2JyYW5jaC1hY3Rpdml0eS1zZW5kLXJlcG9ydC1yZXF1ZXN0LWRvbWFpbi1tb2RlbCc7XHJcbmltcG9ydCB7IEJyYW5jaEFjdGl2aXR5UmVwb3J0IH0gZnJvbSAnLi4vbW9kZWxzL2JyYW5jaC1hY3Rpdml0eS1yZXBvcnQvYnJhbmNoLWFjdGl2aXR5LXNlbmQtcmVwb3J0JztcclxuaW1wb3J0IHsgUHJvZHVjdCwgVXNlciwgQnJhbmNoLCBUcmFuc2FjdGlvbkRhdGEsIFBhZ2VMb2FkRGF0YVJlc3BvbnNlLCBTZWFyY2hDcml0ZXJpYSB9IGZyb20gJy4uL21vZGVscy90cmFuc2FjdGlvbi1lbnF1aXJ5LXJlcG9ydC90cmFuc2FjdGlvbi1lbnF1aXJ5Lm1vZGVsJztcclxuaW1wb3J0IHsgQ29uZmlnU2VydmljZSB9IGZyb20gJy4vY29uZmlnLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBCcmFuY2hBY3Rpdml0eVJlY2VpdmVSZXBvcnRNb2RlbCB9IGZyb20gJy4uL21vZGVscy9icmFuY2gtYWN0aXZpdHktcmVjZWl2ZS1yZXBvcnQvYnJhbmNoLWFjdGl2aXR5LXJlY2VpdmUubW9kZWwnO1xyXG5pbXBvcnQgeyBDYW5jZWxsYXRpb25UcmFuc2FjdGlvbiB9IGZyb20gJy4uL21vZGVscy9jYW5jZWxsYXRpb24tdHJhbnNhY3Rpb24tcmVwb3J0L2NhbmNlbGxhdGlvbi10cmFuc2FjdGlvbi5tb2RlbCc7XHJcbmltcG9ydCB7IFJldmVudWVQZXJUcmFuc2FjdGlvblJlc3BvbnNlTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvcmV2ZW51ZS1wZXItdHJhbnNhY3Rpb24tcmVwb3J0L3JldmVudWUtcGVyLXRyYW5zYWN0aW9uLm1vZGVsJztcclxuaW1wb3J0IHsgU3RhdGVtZW50T2ZBY2NvdW50UmVxdWVzdCwgU3RhdGVtZW50T2ZBY2NvdW50UmVzcG9uc2UgfSBmcm9tICcuLi9tb2RlbHMvc3RhdGVtZW50LW9mLWFjY291bnQtcmVwb3J0L3N0YXRlbWVudC1vZi1hY2NvdW50cy5tb2RlbCc7XHJcbmltcG9ydCB7IEFjY291bnRpbmdSZXBvcnRNb2RlbCB9IGZyb20gJy4uL21vZGVscy9hY2NvdW50aW5nLXJlcG9ydC9hY2NvdW50aW5nLXJlcG9ydC1tb2RlbCc7XHJcbmltcG9ydCB7IFRyaWFsQmFsYW5jZVJlcG9ydCB9IGZyb20gJy4uL21vZGVscy90cmlhbC1iYWxhbmNlLWFjY291bnRzLXJlcG9ydC90cmlhbC1iYWxhbmNlLWFjY291bnRzLm1vZGVscyc7XHJcbmltcG9ydCB7IFRyYW5zYWN0aW9uTW9uaXRvcmluZ1JlcXVlc3REb21haW5Nb2RlbCB9IGZyb20gJy4uL21vZGVscy90cmFuc2FjdGlvbi1tb25pdG9yaW5nLXJlcG9ydC90cmFuc2FjdGlvbi1tb25pdG9yaW5nLXJlcG9ydC1yZXF1ZXN0LWRvbWFpbi1tb2RlbCc7XHJcbmltcG9ydCB7IFRyYW5zYWN0aW9uTW9uaXRvcmluZ1JlcG9ydCB9IGZyb20gJy4uL21vZGVscy90cmFuc2FjdGlvbi1tb25pdG9yaW5nLXJlcG9ydC90cmFuc2FjdGlvbi1tb25pdG9yaW5nLXJlcG9ydCc7XHJcblxyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVwb3J0U2VydmljZSB7XHJcblxyXG4gIHByaXZhdGUgcmVwb3J0U2VydmljZVVybDogc3RyaW5nO1xyXG4gIC8vIHByaXZhdGUgcmVwb3J0VXJsID0gJy9hcGkvdjEvUmVwb3J0JztcclxuICAvLyBwcml2YXRlIHN5c3RlbVJlcG9ydFVybCA9ICcvYXBpL3YxL0NvbXBhbnlDb25maWd1cmF0aW9uL1N5c3RlbVJlcG9ydHMnO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsIHByaXZhdGUgY29uZmlnOiBDb25maWdTZXJ2aWNlKSB7XHJcbiAgICBpZiAoIXRoaXMuY29uZmlnLmdldCkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvbmZpZ1NlcnZpY2UgaXMgbm90IGluaXRpYWxpemVkLiBFbnN1cmUgQVBQX0lOSVRJQUxJWkVSIHJhbiBiZWZvcmUgdXNpbmcgUmVwb3J0U2VydmljZS4nKTtcclxuICAgIH1cclxuICAgIHRoaXMucmVwb3J0U2VydmljZVVybCA9IHRoaXMuY29uZmlnLmdldC5yZXBvcnRTZXJ2aWNlVXJsO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldEFjY0dMRGV0YWlsc1JlcG9ydChmb3JtYXR0ZWREYXRlOiBzdHJpbmcgfCB1bmRlZmluZWQsIGRhdGVUeXBlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEFjY0dsRGV0YWlsc0VucXVpcnlSZXBvcnRNb2RlbD4ge1xyXG4gICAgY29uc3QgYXBpUGF0aCA9IGAke3RoaXMucmVwb3J0U2VydmljZVVybH0vYXBpL3YxL1JlcG9ydC9BY2NHbERldGFpbHNFbnF1aXJ5UmVwb3J0L0dldEFjY0dMRGV0YWlsc0VucXVpcnlSZXBvcnQvJHtmb3JtYXR0ZWREYXRlfS8ke2RhdGVUeXBlfWA7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBY2NHbERldGFpbHNFbnF1aXJ5UmVwb3J0TW9kZWw+KGFwaVBhdGgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0UGF5SW5BZ2VudHMoKTogT2JzZXJ2YWJsZTxhbnlbXT4ge1xyXG4gICAgY29uc3QgYXBpUGF0aCA9IGAke3RoaXMucmVwb3J0U2VydmljZVVybH0vYXBpL3YxL1JlcG9ydC9HZXRBbGxQYXlJbkFnZW50c2A7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChhcGlQYXRoKS5waXBlKG1hcChyZXNwb25zZSA9PiB7XHJcbiAgICAgIHJldHVybiA8YW55W10+cmVzcG9uc2U7XHJcbiAgICB9KSk7XHJcbiAgfVxyXG5cclxuICBnZXRCcmFuY2hCeUFnZW50KGNvZGU6IHN0cmluZyk6IE9ic2VydmFibGU8YW55W10+IHtcclxuICAgIGNvbnN0IGFwaVBhdGggPSBgJHt0aGlzLnJlcG9ydFNlcnZpY2VVcmx9L2FwaS92MS9SZXBvcnQvR2V0QnJhbmNoQnlBZ2VudC8ke2NvZGV9L0JIYDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGFwaVBhdGgpLnBpcGUobWFwKHJlc3BvbnNlID0+IHtcclxuICAgICAgcmV0cnkoMiksXHJcbiAgICAgICAgbWFwKHJlc3BvbnNlID0+IHJlc3BvbnNlKVxyXG4gICAgICByZXR1cm4gPGFueVtdPnJlc3BvbnNlO1xyXG4gICAgfSkpO1xyXG4gIH1cclxuXHJcbiAgZ2V0UGFyYW1zKCk6IE9ic2VydmFibGU8YW55W10+IHtcclxuICAgIGNvbnN0IGFwaVBhdGggPSBgJHt0aGlzLnJlcG9ydFNlcnZpY2VVcmx9L2FwaS92MS9SZXBvcnQvR2V0QnJhbmNoQWN0aXZpdHlTZW5kUmVwb3J0UGFyYW1zYDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGFwaVBhdGgpLnBpcGUobWFwKHJlc3BvbnNlID0+IHtcclxuICAgICAgcmV0cnkoMiksXHJcbiAgICAgICAgbWFwKHJlc3BvbnNlID0+IHJlc3BvbnNlKVxyXG4gICAgICByZXR1cm4gPGFueVtdPnJlc3BvbnNlO1xyXG4gICAgfSkpO1xyXG4gIH1cclxuXHJcbiAgZ2V0QnJhbmNoQWN0aXZpdHlSZXBvcnQoZGF0YTogQnJhbmNoQWN0aXZpdHlTZW5kUmVwb3J0UmVxdWVzdERvbWFpbk1vZGVsIHwgYW55KTogT2JzZXJ2YWJsZTxSZWNvcmQ8c3RyaW5nLCBCcmFuY2hBY3Rpdml0eVJlcG9ydFtdPj4ge1xyXG4gICAgY29uc3QgYXBpUGF0aCA9IGAke3RoaXMucmVwb3J0U2VydmljZVVybH0vYXBpL3YxL1JlcG9ydC9HZXRCcmFuY2hBY3Rpdml0eVNlbmRSZXBvcnRgO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGFwaVBhdGgsIGRhdGEpLnBpcGUobWFwKHJlc3BvbnNlID0+IHtcclxuICAgICAgcmV0dXJuIDxSZWNvcmQ8c3RyaW5nLCBCcmFuY2hBY3Rpdml0eVJlcG9ydFtdPj5yZXNwb25zZTtcclxuICAgIH0pKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRVc2VyTmFtZUZyb21TZXNzaW9uU3RvcmFnZSgpOiBzdHJpbmcge1xyXG4gICAgbGV0IGZvc3NpbFVzZXJOYW1lID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnZm9zc2lsdXNlcm5hbWUnKTtcclxuICAgIGxldCBlenJlbWl0dXNlcm5hbWUgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdlenJlbWl0dXNlcm5hbWUnKTtcclxuICAgIGlmIChmb3NzaWxVc2VyTmFtZSkge1xyXG4gICAgICByZXR1cm4gZm9zc2lsVXNlck5hbWUucmVwbGFjZSgvXlwiKC4qKVwiJC8sICckMScpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGV6cmVtaXR1c2VybmFtZS5yZXBsYWNlKC9eXCIoLiopXCIkLywgJyQxJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvL1RyYXNhY3Rpb24gRW5xdWlyeSBSZXBvcnQgQXBpc1xyXG4gIC8vIEFQSSAxOiBHZXQgaW5pdGlhbCBwYWdlIGxvYWQgZGF0YVxyXG4gIGdldFBhZ2VMb2FkRGF0YSgpOiBPYnNlcnZhYmxlPFBhZ2VMb2FkRGF0YVJlc3BvbnNlPiB7XHJcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLnJlcG9ydFNlcnZpY2VVcmx9L2FwaS92MS9SZXBvcnQvVHJhbnNhY3Rpb25FbnF1aXJ5L3BhZ2VMb2FkRGF0YWA7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCh1cmwpLnBpcGUoXHJcbiAgICAgIG1hcChyZXNwb25zZSA9PiA8UGFnZUxvYWREYXRhUmVzcG9uc2U+cmVzcG9uc2UpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLy8gQVBJIDI6IEdldCBicmFuY2hlcyBieSBhZ2VudFxyXG4gIGdldEJyYW5jaGVzQnlBZ2VudChhZ2VudENvZGU6IHN0cmluZyk6IE9ic2VydmFibGU8QnJhbmNoW10+IHtcclxuICAgIGNvbnN0IHVybCA9IGAke3RoaXMucmVwb3J0U2VydmljZVVybH0vYXBpL3YxL1JlcG9ydC9UcmFuc2FjdGlvbkVucXVpcnkvYnJhbmNoZXMvJHthZ2VudENvZGV9YDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHVybCkucGlwZShcclxuICAgICAgbWFwKHJlc3BvbnNlID0+IDxCcmFuY2hbXT5yZXNwb25zZSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvLyBBUEkgNDogR2V0IHVzZXJzIGJ5IGJyYW5jaFxyXG4gIGdldFVzZXJzQnlCcmFuY2goYnVzaW5lc3NQYXJ0bmVyQ29kZTogc3RyaW5nLCBicmFuY2hDb2RlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFVzZXJbXT4ge1xyXG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5yZXBvcnRTZXJ2aWNlVXJsfS9hcGkvdjEvUmVwb3J0L1RyYW5zYWN0aW9uRW5xdWlyeS91c2Vycy8ke2J1c2luZXNzUGFydG5lckNvZGV9LyR7YnJhbmNoQ29kZX1gO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodXJsKS5waXBlKFxyXG4gICAgICBtYXAocmVzcG9uc2UgPT4gPFVzZXJbXT5yZXNwb25zZSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvLyBBUEkgNTogU2VhcmNoIHRyYW5zYWN0aW9uc1xyXG4gIHNlYXJjaFRyYW5zYWN0aW9ucyhkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPFRyYW5zYWN0aW9uRGF0YVtdPiB7XHJcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLnJlcG9ydFNlcnZpY2VVcmx9L2FwaS92MS9SZXBvcnQvVHJhbnNhY3Rpb25FbnF1aXJ5L3ZpZXdSZXBvcnRgO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHVybCwgZGF0YSkucGlwZShcclxuICAgICAgbWFwKHJlc3BvbnNlID0+IDxUcmFuc2FjdGlvbkRhdGFbXT5yZXNwb25zZSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvLyBCcmFuY2ggQWN0aXZpdHkgUmVjZWl2ZSBSZXBvcnQgQVBJXHJcbiAgZ2V0QWxsUGF5T3V0QWdlbnRzKCk6IE9ic2VydmFibGU8YW55W10+IHtcclxuICAgIGNvbnN0IGFwaVBhdGggPSBgJHt0aGlzLnJlcG9ydFNlcnZpY2VVcmx9L2FwaS92MS9SZXBvcnQvQnJhbmNoQWN0aXZpdHlSZWNlaXZlL0dldEFsbFBheW91dEFnZW50cy9gO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYXBpUGF0aCkucGlwZShtYXAocmVzcG9uc2UgPT4ge1xyXG4gICAgICByZXR1cm4gPGFueVtdPnJlc3BvbnNlO1xyXG4gICAgfSkpXHJcbiAgfVxyXG5cclxuICBnZXRCcmFuY2hBY3Rpdml0eVJlY2VpdmVQYXJhbXMoKTogT2JzZXJ2YWJsZTxhbnlbXT4ge1xyXG4gICAgY29uc3QgYXBpUGF0aCA9IGAke3RoaXMucmVwb3J0U2VydmljZVVybH0vYXBpL3YxL1JlcG9ydC9CcmFuY2hBY3Rpdml0eVJlY2VpdmUvR2V0QnJhbmNoQWN0aXZpdHlSZWNlaXZlUmVwb3J0UGFyYW1zYDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGFwaVBhdGgpLnBpcGUobWFwKHJlc3BvbnNlID0+IHtcclxuICAgICAgcmV0dXJuIDxhbnlbXT5yZXNwb25zZTtcclxuICAgIH0pKTtcclxuICB9XHJcblxyXG4gIGdldEJyYW5jaEFjdGl2aXR5UmVjZWl2ZVBheW91dEFnZW50QnJhbmNoKGNvZGU6IHN0cmluZyk6IE9ic2VydmFibGU8YW55W10+IHtcclxuICAgIGNvbnN0IGFwaVBhdGggPSBgJHt0aGlzLnJlcG9ydFNlcnZpY2VVcmx9L2FwaS92MS9SZXBvcnQvQnJhbmNoQWN0aXZpdHlSZWNlaXZlL0dldEJyYW5jaEJ5UGF5b3V0QWdlbnQvJHtjb2RlfS9CSGA7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChhcGlQYXRoKS5waXBlKG1hcChyZXNwb25zZSA9PiB7XHJcbiAgICAgIHJldHJ5KDIpLFxyXG4gICAgICAgIG1hcChyZXNwb25zZSA9PiByZXNwb25zZSlcclxuICAgICAgcmV0dXJuIDxhbnlbXT5yZXNwb25zZTtcclxuICAgIH0pKTtcclxuICB9XHJcblxyXG4gIGdldEJyYW5jaEFjdGl2aXR5UmVjZWl2ZVJlcG9ydChkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPFJlY29yZDxzdHJpbmcsIEJyYW5jaEFjdGl2aXR5UmVjZWl2ZVJlcG9ydE1vZGVsW10+PiB7XHJcbiAgICBjb25zdCBhcGlQYXRoID0gYCR7dGhpcy5yZXBvcnRTZXJ2aWNlVXJsfS9hcGkvdjEvUmVwb3J0L0JyYW5jaEFjdGl2aXR5UmVjZWl2ZS9HZXRCcmFuY2hBY3Rpdml0eVJlY2VpdmVSZXBvcnRgO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGFwaVBhdGgsIGRhdGEpLnBpcGUobWFwKHJlc3BvbnNlID0+IHtcclxuICAgICAgcmV0dXJuIDxSZWNvcmQ8c3RyaW5nLCBCcmFuY2hBY3Rpdml0eVJlY2VpdmVSZXBvcnRNb2RlbFtdPj5yZXNwb25zZTtcclxuICAgIH0pKTtcclxuICB9XHJcblxyXG4gIC8vQ2FuY2VsbGF0aW9uIFRyYW5zYWN0aW9uIFJlcG9ydCBhcGlzXHJcbiAgLy9BcGkgMVxyXG4gIGxvYWREYXRhZm9yQ2FuY2FsbGF0aW9uKCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBjb25zdCBhcGlQYXRoID0gYCR7dGhpcy5yZXBvcnRTZXJ2aWNlVXJsfS9hcGkvdjEvUmVwb3J0L0NhbmNlbGxhdGlvblRyYW5zYWN0aW9uUmVwb3J0L3BhZ2VMb2FkRGF0YWA7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGFwaVBhdGgpO1xyXG4gIH1cclxuXHJcbiAgLyoqIEFwaSAyIC0gR2V0IGxpc3Qgb2YgYnJhbmNoZXMgZm9yIGFuIGFnZW50ICovXHJcbiAgZ2V0QnJhbmNoZXMoYWdlbnRDb2RlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEJyYW5jaFtdPiB7XHJcbiAgICBjb25zdCBhcGlQYXRoID0gYCR7dGhpcy5yZXBvcnRTZXJ2aWNlVXJsfS9hcGkvdjEvUmVwb3J0L0NhbmNlbGxhdGlvblRyYW5zYWN0aW9uUmVwb3J0L2JyYW5jaGVzLyR7YWdlbnRDb2RlfWA7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxCcmFuY2hbXT4oYXBpUGF0aCkucGlwZShcclxuICAgICAgbWFwKHJlc3BvbnNlID0+IHJlc3BvbnNlIHx8IFtdKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8vQXBpIDNcclxuICBnZXRDYW5jZWxsYXRpb25SZXBvcnQoY3JpdGVyaWE6IGFueSk6IE9ic2VydmFibGU8UmVjb3JkPHN0cmluZywgQ2FuY2VsbGF0aW9uVHJhbnNhY3Rpb25bXT4+IHtcclxuICAgIGNvbnN0IHVybCA9IGAke3RoaXMucmVwb3J0U2VydmljZVVybH0vYXBpL3YxL1JlcG9ydC9DYW5jZWxsYXRpb25UcmFuc2FjdGlvblJlcG9ydC92aWV3UmVwb3J0YDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh1cmwsIGNyaXRlcmlhKS5waXBlKG1hcChyZXNwb25zZSA9PiB7XHJcbiAgICAgIHJldHVybiA8UmVjb3JkPHN0cmluZywgQ2FuY2VsbGF0aW9uVHJhbnNhY3Rpb25bXT4+cmVzcG9uc2U7XHJcbiAgICB9KSk7XHJcbiAgfVxyXG5cclxuICAvLyBSZXZlbnVlIFBlciBUcmFuc2FjdGlvbiBSZXBvcnQgQVBJXHJcbiAgZ2V0QWdlbnRzRm9yUmV2ZW51ZVBlclRyYW5zYWN0aW9uKCk6IE9ic2VydmFibGU8YW55W10+IHtcclxuICAgIGNvbnN0IGFwaVBhdGggPSBgJHt0aGlzLnJlcG9ydFNlcnZpY2VVcmx9L2FwaS92MS9SZXBvcnQvUmV2ZW51ZVBlclRyYW5zYWN0aW9uL0dldEFnZW50c0ZvclJldmVudWVQZXJUcmFuc2FjdGlvbmA7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChhcGlQYXRoKS5waXBlKG1hcChyZXNwb25zZSA9PiB7XHJcbiAgICAgIHJldHVybiA8YW55W10+cmVzcG9uc2U7XHJcbiAgICB9KSlcclxuICB9XHJcblxyXG4gIGdldFJldmVudWVQZXJUcmFuc2FjdGlvblJlcG9ydFBhcmFtcygpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgYXBpUGF0aCA9IGAke3RoaXMucmVwb3J0U2VydmljZVVybH0vYXBpL3YxL1JlcG9ydC9SZXZlbnVlUGVyVHJhbnNhY3Rpb24vR2V0UmV2ZW51ZVBlclRyYW5zYWN0aW9uUGFyYW1zYDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGFwaVBhdGgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0UmV2ZW51ZVBlclRyYW5zYWN0aW9uUmVwb3J0KGRhdGE6IGFueSk6IE9ic2VydmFibGU8UmV2ZW51ZVBlclRyYW5zYWN0aW9uUmVzcG9uc2VNb2RlbFtdPiB7XHJcbiAgICBjb25zdCBhcGlQYXRoID0gYCR7dGhpcy5yZXBvcnRTZXJ2aWNlVXJsfS9hcGkvdjEvUmVwb3J0L1JldmVudWVQZXJUcmFuc2FjdGlvbi9HZXRSZXZlbnVlUGVyVHJhbnNhY3Rpb25SZXBvcnRgO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGFwaVBhdGgsIGRhdGEpLnBpcGUoXHJcbiAgICAgIG1hcChyZXNwb25zZSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIDxSZXZlbnVlUGVyVHJhbnNhY3Rpb25SZXNwb25zZU1vZGVsW10+cmVzcG9uc2U7XHJcbiAgICAgIH0pXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICAvL1N0YXRlbWVudCBvZiBBY2NvdW50cyBSZXBvcnRcclxuICBsb2FkQ2xpZW50c0ZvclN0YXRlbWVudE9mQWNjb3VudHMoKTogT2JzZXJ2YWJsZTxhbnlbXT4ge1xyXG4gICAgY29uc3QgYXBpUGF0aCA9IGAke3RoaXMucmVwb3J0U2VydmljZVVybH0vYXBpL3YxL1JlcG9ydC9TdGF0ZW1lbnRvZkFjY291bnRzL0NsaWVudHNgO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55W10+KGFwaVBhdGgpO1xyXG4gIH1cclxuXHJcbiAgY2hlY2tDbGllbnRGb3JTdGF0ZW1lbnRPZkFjY291bnRzKGNsaWVudElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHsgcmVzdWx0OiBzdHJpbmcgfT4ge1xyXG4gICAgY29uc3QgYXBpUGF0aCA9IGAke3RoaXMucmVwb3J0U2VydmljZVVybH0vYXBpL3YxL1JlcG9ydC9TdGF0ZW1lbnRvZkFjY291bnRzL2NoZWNrQ2xpZW50LyR7Y2xpZW50SWR9YDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PHsgcmVzdWx0OiBzdHJpbmcgfT4oYXBpUGF0aCk7XHJcbiAgfVxyXG5cclxuICBnZXRTdGF0ZW1lbnRPZkFjY291bnQoY3JpdGVyaWE6IFN0YXRlbWVudE9mQWNjb3VudFJlcXVlc3QpOiBPYnNlcnZhYmxlPFN0YXRlbWVudE9mQWNjb3VudFJlc3BvbnNlPiB7XHJcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLnJlcG9ydFNlcnZpY2VVcmx9L2FwaS92MS9SZXBvcnQvU3RhdGVtZW50b2ZBY2NvdW50cy9zdGF0ZW1lbnRPZkFjY291bnRgO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFN0YXRlbWVudE9mQWNjb3VudFJlc3BvbnNlPih1cmwsIGNyaXRlcmlhKS5waXBlKFxyXG4gICAgICBtYXAocmVzcG9uc2UgPT4gcmVzcG9uc2UgfHwge1xyXG4gICAgICAgIG9wZW5pbmdCYWxBbmRGdW5kaW5nOiBbXSxcclxuICAgICAgICBzZW5kRGV0YWlsczogW10sXHJcbiAgICAgICAgcmVjZWl2ZURldGFpbHM6IFtdXHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcblxyXG5cclxuICAvLyBBY2NvdW50aW5nIFJlcG9ydFxyXG5cclxuICAvLyBBcGkgMSAtIGdldCBhY2NvdW50aW5nIHJlcG9ydFxyXG4gIGdldEFjY291bnRpbmdSZXBvcnQob2JqZWN0OiBhbnkpOiBPYnNlcnZhYmxlPEFjY291bnRpbmdSZXBvcnRNb2RlbD4ge1xyXG4gICAgY29uc3QgYXBpUGF0aCA9IGAke3RoaXMucmVwb3J0U2VydmljZVVybH0vYXBpL3YxL1JlcG9ydC9BY2NvdW50aW5nUmVwb3J0L0dldEFjY291bnRpbmdSZXBvcnRgO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFjY291bnRpbmdSZXBvcnRNb2RlbD4oYXBpUGF0aCwgb2JqZWN0KS5waXBlKFxyXG4gICAgICBtYXAocmVzcG9uc2UgPT4gcmVzcG9uc2UgfHwgdW5kZWZpbmVkKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8vIEFwaSAyIC0gZ2V0IEFsbCBjbGllbnRzXHJcbiAgZ2V0Q2xpZW50c0ZvckFjY291bnRpbmdSZXBvcnQoc3lzVXNlcklEOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueVtdPiB7XHJcbiAgICBjb25zdCBhcGlQYXRoID0gYCR7dGhpcy5yZXBvcnRTZXJ2aWNlVXJsfS9hcGkvdjEvUmVwb3J0L0FjY291bnRpbmdSZXBvcnQvR2V0QWxsUGF5SW5BZ2VudHMvJHtzeXNVc2VySUR9YDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGFwaVBhdGgpLnBpcGUobWFwKHJlc3BvbnNlID0+IHtcclxuICAgICAgcmV0dXJuIDxhbnlbXT5yZXNwb25zZTtcclxuICAgIH0pKVxyXG4gIH1cclxuXHJcbiAgLy8gQXBpIDMgLSBnZXQgYnJhbmNoIGJ5IGFnZW50IG9yIGNsaWVudFxyXG4gIGdldEJyYW5jaEJ5QWdlbnRGb3JBY2NvdW50aW5nUmVwb3J0KHN5c1VzZXJJZDogc3RyaW5nLCBjb2RlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueVtdPiB7XHJcbiAgICBjb25zdCBhcGlQYXRoID0gYCR7dGhpcy5yZXBvcnRTZXJ2aWNlVXJsfS9hcGkvdjEvUmVwb3J0L0FjY291bnRpbmdSZXBvcnQvR2V0QnJhbmNoQnlBZ2VudC8ke2NvZGV9LyR7c3lzVXNlcklkfS9CSGA7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChhcGlQYXRoKS5waXBlKG1hcChyZXNwb25zZSA9PiB7XHJcbiAgICAgIHJldHJ5KDIpLFxyXG4gICAgICAgIG1hcChyZXNwb25zZSA9PiByZXNwb25zZSlcclxuICAgICAgcmV0dXJuIDxhbnlbXT5yZXNwb25zZTtcclxuICAgIH0pKTtcclxuICB9XHJcblxyXG4gIC8vIEFwaSA0IC0gZ2V0IEFsbCB0cmFuc2FjdGlvbiB0eXBlcyAoIHByb2R1Y3RzIClcclxuICBnZXRUcmFuc2FjdGlvblR5cGVzRm9yQWNjb3VudGluZ1JlcG9ydCgpOiBPYnNlcnZhYmxlPFByb2R1Y3RbXT4ge1xyXG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5yZXBvcnRTZXJ2aWNlVXJsfS9hcGkvdjEvUmVwb3J0L0FjY291bnRpbmdSZXBvcnQvZ2V0VHJhbnNhY3Rpb25UeXBlc2A7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCh1cmwpLnBpcGUoXHJcbiAgICAgIG1hcChyZXNwb25zZSA9PiA8UHJvZHVjdFtdPnJlc3BvbnNlKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8vIEFwaSA1IC0gZ2V0IEFsbCBjdXJyZW5jaWVzXHJcbiAgZ2V0QWxsQ3VycmVuY2llc0ZvckFjY291bnRpbmdSZXBvcnQoKTogT2JzZXJ2YWJsZTxhbnlbXT4ge1xyXG4gICAgY29uc3QgYXBpUGF0aCA9IGAke3RoaXMucmVwb3J0U2VydmljZVVybH0vYXBpL3YxL1JlcG9ydC9BY2NvdW50aW5nUmVwb3J0L2dldEFsbEN1cnJlbmNpZXNgO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYXBpUGF0aCkucGlwZShtYXAocmVzcG9uc2UgPT4ge1xyXG4gICAgICByZXR1cm4gPGFueVtdPnJlc3BvbnNlO1xyXG4gICAgfSkpXHJcbiAgfVxyXG5cclxuICAvLyBBcGkgNiAtIGdldCBBbGwgVHJhbnNhY3Rpb24gU3RhdHVzXHJcbiAgZ2V0QWxsVHJhbnNhY3Rpb25TdGF0dXNGb3JBY2NvdW50aW5nUmVwb3J0KCk6IE9ic2VydmFibGU8YW55W10+IHtcclxuICAgIGNvbnN0IGFwaVBhdGggPSBgJHt0aGlzLnJlcG9ydFNlcnZpY2VVcmx9L2FwaS92MS9SZXBvcnQvQWNjb3VudGluZ1JlcG9ydC9HZXRBbGxUcmFuc2FjdGlvblN0YXR1c2A7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChhcGlQYXRoKS5waXBlKG1hcChyZXNwb25zZSA9PiB7XHJcbiAgICAgIHJldHVybiA8YW55W10+cmVzcG9uc2U7XHJcbiAgICB9KSlcclxuICB9XHJcblxyXG4gIC8vIEFwaSA3IC0gZ2V0IEFsbCBDb3VudHJpZXNcclxuICBnZXRBbGxDb3VudHJpZXNGb3JBY2NvdW50aW5nUmVwb3J0KCk6IE9ic2VydmFibGU8YW55W10+IHtcclxuICAgIGNvbnN0IGFwaVBhdGggPSBgJHt0aGlzLnJlcG9ydFNlcnZpY2VVcmx9L2FwaS92MS9SZXBvcnQvQWNjb3VudGluZ1JlcG9ydC9HZXRBbGxDb3VudHJpZXNgO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYXBpUGF0aCkucGlwZShtYXAocmVzcG9uc2UgPT4ge1xyXG4gICAgICByZXR1cm4gPGFueVtdPnJlc3BvbnNlO1xyXG4gICAgfSkpXHJcbiAgfVxyXG5cclxuXHJcbiAgLy8gVHJpYWwgQmFsYW5jZSAtIEFjY291bnRzIFJlcG9ydFxyXG5cclxuICAvLyBBcGkgMSAtIEdldCBUcmlhbCBCYWxhbmNlIC0gQWNjb3VudHMgcmVwb3J0XHJcbiAgZ2V0VHJpYWxCYWxhbmNlQWNjb3VudHNSZXBvcnQob2JqZWN0OiBhbnkpOiBPYnNlcnZhYmxlPFRyaWFsQmFsYW5jZVJlcG9ydD4ge1xyXG4gICAgY29uc3QgYXBpUGF0aCA9IGAke3RoaXMucmVwb3J0U2VydmljZVVybH0vYXBpL3YxL1JlcG9ydC9UcmlhbEJhbGFuY2VBY2NvdW50c1JlcG9ydC9HZXRUcmlhbEJhbGFuY2VBY2NvdW50c1JlcG9ydGA7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8VHJpYWxCYWxhbmNlUmVwb3J0PihhcGlQYXRoLCBvYmplY3QpLnBpcGUoXHJcbiAgICAgIG1hcChyZXNwb25zZSA9PiByZXNwb25zZSB8fCB1bmRlZmluZWQpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLy8gQXBpIDIgLSBHZXQgQnVzaW5lc3MgVW5pdFxyXG4gIEdldEJ1c2luZXNzVW5pdEZvclRyaWFsQmFsYW5jZUFjY291bnRzUmVwb3J0KCk6IE9ic2VydmFibGU8YW55W10+IHtcclxuICAgIGNvbnN0IGFwaVBhdGggPSBgJHt0aGlzLnJlcG9ydFNlcnZpY2VVcmx9L2FwaS92MS9SZXBvcnQvVHJpYWxCYWxhbmNlQWNjb3VudHNSZXBvcnQvR2V0QnVzaW5lc3NVbml0YDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGFwaVBhdGgpLnBpcGUobWFwKHJlc3BvbnNlID0+IHtcclxuICAgICAgcmV0dXJuIDxhbnlbXT5yZXNwb25zZTtcclxuICAgIH0pKVxyXG4gIH1cclxuXHJcbiAgLy8gQXBpIDMgLSBHZXQgQWNjb3VudCBTdGF0dXNcclxuICBHZXRBY2NvdW50U3RhdHVzRm9yVHJpYWxCYWxhbmNlQWNjb3VudHNSZXBvcnQoKTogT2JzZXJ2YWJsZTxhbnlbXT4ge1xyXG4gICAgY29uc3QgYXBpUGF0aCA9IGAke3RoaXMucmVwb3J0U2VydmljZVVybH0vYXBpL3YxL1JlcG9ydC9UcmlhbEJhbGFuY2VBY2NvdW50c1JlcG9ydC9HZXRBY2NvdW50U3RhdHVzYDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGFwaVBhdGgpLnBpcGUobWFwKHJlc3BvbnNlID0+IHtcclxuICAgICAgcmV0dXJuIDxhbnlbXT5yZXNwb25zZTtcclxuICAgIH0pKVxyXG4gIH1cclxuXHJcbiAgLy8gQXBpIDQgLSBHZXQgRGF0ZSBUeXBlXHJcbiAgR2V0RGF0ZVR5cGVGb3JUcmlhbEJhbGFuY2VBY2NvdW50c1JlcG9ydCgpOiBPYnNlcnZhYmxlPGFueVtdPiB7XHJcbiAgICBjb25zdCBhcGlQYXRoID0gYCR7dGhpcy5yZXBvcnRTZXJ2aWNlVXJsfS9hcGkvdjEvUmVwb3J0L1RyaWFsQmFsYW5jZUFjY291bnRzUmVwb3J0L0dldERhdGVUeXBlYDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGFwaVBhdGgpLnBpcGUobWFwKHJlc3BvbnNlID0+IHtcclxuICAgICAgcmV0dXJuIDxhbnlbXT5yZXNwb25zZTtcclxuICAgIH0pKVxyXG4gIH1cclxuXHJcbiAgLy8gQXBpIDUgLSBHZXQgWWVhclxyXG4gIEdldFllYXJGb3JUcmlhbEJhbGFuY2VBY2NvdW50c1JlcG9ydCgpOiBPYnNlcnZhYmxlPGFueVtdPiB7XHJcbiAgICBjb25zdCBhcGlQYXRoID0gYCR7dGhpcy5yZXBvcnRTZXJ2aWNlVXJsfS9hcGkvdjEvUmVwb3J0L1RyaWFsQmFsYW5jZUFjY291bnRzUmVwb3J0L0dldEZpbmFuY2lhbFllYXJgO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYXBpUGF0aCkucGlwZShtYXAocmVzcG9uc2UgPT4ge1xyXG4gICAgICByZXR1cm4gPGFueVtdPnJlc3BvbnNlO1xyXG4gICAgfSkpXHJcbiAgfVxyXG5cclxuICAvLyBBcGkgNiAtIEdldCBGcm9tIE1vbnRoc1xyXG4gIEdldEZyb21Nb250aHNGb3JUcmlhbEJhbGFuY2VBY2NvdW50c1JlcG9ydCgpOiBPYnNlcnZhYmxlPGFueVtdPiB7XHJcbiAgICBjb25zdCBhcGlQYXRoID0gYCR7dGhpcy5yZXBvcnRTZXJ2aWNlVXJsfS9hcGkvdjEvUmVwb3J0L1RyaWFsQmFsYW5jZUFjY291bnRzUmVwb3J0L0dldEZyb21Nb250aHNgO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYXBpUGF0aCkucGlwZShtYXAocmVzcG9uc2UgPT4ge1xyXG4gICAgICByZXR1cm4gPGFueVtdPnJlc3BvbnNlO1xyXG4gICAgfSkpXHJcbiAgfVxyXG5cclxuICAvLyBBcGkgNyAtIEdldCBUbyBNb250aHNcclxuICBHZXRUb01vbnRoc0ZvclRyaWFsQmFsYW5jZUFjY291bnRzUmVwb3J0KHllYXI6IG51bWJlciwgbW9udGg6IG51bWJlcik6IE9ic2VydmFibGU8YW55W10+IHtcclxuICAgIGNvbnN0IGFwaVBhdGggPSBgJHt0aGlzLnJlcG9ydFNlcnZpY2VVcmx9L2FwaS92MS9SZXBvcnQvVHJpYWxCYWxhbmNlQWNjb3VudHNSZXBvcnQvR2V0VG9Nb250aHMvJHt5ZWFyfS8ke21vbnRofWA7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChhcGlQYXRoKS5waXBlKG1hcChyZXNwb25zZSA9PiB7XHJcbiAgICAgIHJldHVybiA8YW55W10+cmVzcG9uc2U7XHJcbiAgICB9KSlcclxuICB9XHJcblxyXG4gIC8vIEFwaSA4IC0gR2V0IEZyb20gRGF0ZXNcclxuICBHZXRGcm9tRGF0ZXNGb3JUcmlhbEJhbGFuY2VBY2NvdW50c1JlcG9ydCh5ZWFyOiBudW1iZXIsIGZyb21Nb250aExhYmVsOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueVtdPiB7XHJcbiAgICBjb25zdCBhcGlQYXRoID0gYCR7dGhpcy5yZXBvcnRTZXJ2aWNlVXJsfS9hcGkvdjEvUmVwb3J0L1RyaWFsQmFsYW5jZUFjY291bnRzUmVwb3J0L0dldEZyb21EYXRlcy8ke3llYXJ9LyR7ZnJvbU1vbnRoTGFiZWx9YDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGFwaVBhdGgpLnBpcGUobWFwKHJlc3BvbnNlID0+IHtcclxuICAgICAgcmV0dXJuIDxhbnlbXT5yZXNwb25zZTtcclxuICAgIH0pKVxyXG4gIH1cclxuXHJcbiAgLy8gQXBpIDkgLSBHZXQgVG8gRGF0ZXNcclxuICBHZXRUb0RhdGVzRm9yVHJpYWxCYWxhbmNlQWNjb3VudHNSZXBvcnQob2JqZWN0OiBhbnkpOiBPYnNlcnZhYmxlPGFueVtdPiB7XHJcbiAgICBjb25zdCBhcGlQYXRoID0gYCR7dGhpcy5yZXBvcnRTZXJ2aWNlVXJsfS9hcGkvdjEvUmVwb3J0L1RyaWFsQmFsYW5jZUFjY291bnRzUmVwb3J0L0dldFRvRGF0ZXNgO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGFwaVBhdGgsIG9iamVjdCkucGlwZShtYXAocmVzcG9uc2UgPT4ge1xyXG4gICAgICByZXR1cm4gPGFueVtdPnJlc3BvbnNlO1xyXG4gICAgfSkpXHJcbiAgfVxyXG5cclxuICAvLyBBcGkgMTAgLSBHZXQgQ3VycmVuY2llc1xyXG4gIEdldEN1cnJlbmNpZXNGb3JUcmlhbEJhbGFuY2VBY2NvdW50c1JlcG9ydCgpOiBPYnNlcnZhYmxlPGFueVtdPiB7XHJcbiAgICBjb25zdCBhcGlQYXRoID0gYCR7dGhpcy5yZXBvcnRTZXJ2aWNlVXJsfS9hcGkvdjEvUmVwb3J0L1RyaWFsQmFsYW5jZUFjY291bnRzUmVwb3J0L0dldEN1cnJlbmNpZXNgO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYXBpUGF0aCkucGlwZShtYXAocmVzcG9uc2UgPT4ge1xyXG4gICAgICByZXR1cm4gPGFueVtdPnJlc3BvbnNlO1xyXG4gICAgfSkpXHJcbiAgfVxyXG5cclxuICAvLyBBcGkgMTEgLSBHZXQgZGVmYXVsdCBtb250aCx5ZWFyXHJcbiAgR2V0UGFyYW1EYXRlRGVmYXVsdEZvclRyaWFsQmFsYW5jZUFjY291bnRzUmVwb3J0KCk6IE9ic2VydmFibGU8YW55W10+IHtcclxuICAgIGNvbnN0IGFwaVBhdGggPSBgJHt0aGlzLnJlcG9ydFNlcnZpY2VVcmx9L2FwaS92MS9SZXBvcnQvVHJpYWxCYWxhbmNlQWNjb3VudHNSZXBvcnQvR2V0UGFyYW1EYXRlRGVmYXVsdGA7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChhcGlQYXRoKS5waXBlKG1hcChyZXNwb25zZSA9PiB7XHJcbiAgICAgIHJldHVybiA8YW55W10+cmVzcG9uc2U7XHJcbiAgICB9KSlcclxuICB9XHJcblxyXG5cclxuICAgIC8vQ3JlZGl0IExpbWl0IFN0YXR1cyBFbnF1aXJ5IFJlcG9ydCBBUElzXHJcbiAgZ2V0Q2xpZW50c0ZvckNyZWRpdExpbWl0U3RhdHVzRW5xdWlyeVJlcG9ydCgpOiBPYnNlcnZhYmxlPGFueVtdPiB7XHJcbiAgICBjb25zdCBhcGlQYXRoID0gYCR7dGhpcy5yZXBvcnRTZXJ2aWNlVXJsfS9hcGkvdjEvUmVwb3J0L0NyZWRpdExpbWl0U3RhdHVzRW5xdWlyeS9HZXRCdXNpbmVzc1BhcnRuZXJzYDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGFwaVBhdGgpLnBpcGUobWFwKHJlc3BvbnNlID0+IHtcclxuICAgICAgcmV0dXJuIDxhbnlbXT5yZXNwb25zZTtcclxuICAgIH0pKTtcclxuICB9XHJcbiAgXHJcbiAgZ2V0VHJhbnNhY3Rpb25UeXBlc0ZvckNyZWRpdExpbWl0U3RhdHVzRW5xdWlyeVJlcG9ydCgpOiBPYnNlcnZhYmxlPGFueVtdPiB7XHJcbiAgICBjb25zdCBhcGlQYXRoID0gYCR7dGhpcy5yZXBvcnRTZXJ2aWNlVXJsfS9hcGkvdjEvUmVwb3J0L0NyZWRpdExpbWl0U3RhdHVzRW5xdWlyeS9HZXRUcmFuc2FjdGlvblN0YXR1c2A7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChhcGlQYXRoKS5waXBlKG1hcChyZXNwb25zZSA9PiB7XHJcbiAgICAgIHJldHVybiA8YW55W10+cmVzcG9uc2U7XHJcbiAgICB9KSk7XHJcbiAgICB9XHJcblxyXG4gIGdldENyZWRpdExpbWl0U3RhdHVzRW5xdWlyeVJlcG9ydChtb2RlbDogYW55KTogT2JzZXJ2YWJsZTxhbnlbXT4ge1xyXG4gICAgY29uc3QgYXBpUGF0aCA9IGAke3RoaXMucmVwb3J0U2VydmljZVVybH0vYXBpL3YxL1JlcG9ydC9DcmVkaXRMaW1pdFN0YXR1c0VucXVpcnkvR2V0Q3JlZGl0TGltaXRTdGF0dXNFbnF1aXJ5UmVwb3J0YDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChhcGlQYXRoLCBtb2RlbCkucGlwZShtYXAocmVzcG9uc2UgPT4ge1xyXG4gICAgICByZXR1cm4gPGFueVtdPnJlc3BvbnNlO1xyXG4gICAgfSkpXHJcbiAgfVxyXG4gIC8vRnVuZGluZyBSZXBvcnRcclxuICBnZXRGdW5kaW5nUmVwb3J0KGNyaXRlcmlhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5yZXBvcnRTZXJ2aWNlVXJsfS9hcGkvdjEvUmVwb3J0L0Z1bmRpbmcvdmlld1JlcG9ydGA7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodXJsLCBjcml0ZXJpYSkucGlwZShcclxuICAgICAgbWFwKHJlc3BvbnNlID0+IHJlc3BvbnNlIHx8IHt9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8vQnJhbmNoIEFjdGl2aXR5IFNlbmQgU3VtbWFyeSBSZXBvcnRcclxuICAgZ2V0UGF5SW5BZ2VudGZvclNlbmRTdW1tYXJ5UmVwb3J0KCk6IE9ic2VydmFibGU8YW55W10+IHtcclxuICAgICAgY29uc3QgYXBpUGF0aCA9IGAke3RoaXMucmVwb3J0U2VydmljZVVybH0vYXBpL3YxL1JlcG9ydC9TZW5kU3VtbWFyeVJlcG9ydC9HZXRBbGxQYXlJbkFnZW50c2A7XHJcbiAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGFwaVBhdGgpLnBpcGUobWFwKHJlc3BvbnNlID0+IHtcclxuICAgICAgICByZXR1cm4gPGFueVtdPnJlc3BvbnNlO1xyXG4gICAgICB9KSk7XHJcbiAgICB9XHJcbiAgXHJcbiAgICBnZXRCcmFuY2hCeUFnZW50Rm9yU2VuZFN1bW1hcnlSZXBvcnQoY29kZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnlbXT4ge1xyXG4gICAgICBjb25zdCBhcGlQYXRoID0gYCR7dGhpcy5yZXBvcnRTZXJ2aWNlVXJsfS9hcGkvdjEvUmVwb3J0L1NlbmRTdW1tYXJ5UmVwb3J0L0dldEJyYW5jaEJ5QWdlbnQvJHtjb2RlfS9CSGA7XHJcbiAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGFwaVBhdGgpLnBpcGUobWFwKHJlc3BvbnNlID0+IHtcclxuICAgICAgICByZXRyeSgyKSxcclxuICAgICAgICAgIG1hcChyZXNwb25zZSA9PiByZXNwb25zZSlcclxuICAgICAgICByZXR1cm4gPGFueVtdPnJlc3BvbnNlO1xyXG4gICAgICB9KSk7XHJcbiAgICB9XHJcbiAgXHJcbiAgICBnZXRQYXJhbXNGb3JTZW5kU3VtbWFyeVJlcG9ydCgpOiBPYnNlcnZhYmxlPGFueVtdPiB7XHJcbiAgICAgIGNvbnN0IGFwaVBhdGggPSBgJHt0aGlzLnJlcG9ydFNlcnZpY2VVcmx9L2FwaS92MS9SZXBvcnQvU2VuZFN1bW1hcnlSZXBvcnQvR2V0QnJhbmNoQWN0aXZpdHlTZW5kU3VtbWFyeVJlcG9ydFBhcmFtc2A7XHJcbiAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGFwaVBhdGgpLnBpcGUobWFwKHJlc3BvbnNlID0+IHtcclxuICAgICAgICByZXRyeSgyKSxcclxuICAgICAgICAgIG1hcChyZXNwb25zZSA9PiByZXNwb25zZSlcclxuICAgICAgICByZXR1cm4gPGFueVtdPnJlc3BvbnNlO1xyXG4gICAgICB9KSk7XHJcbiAgICB9XHJcbiAgXHJcbiAgICBnZXRCcmFuY2hBY3Rpdml0eVNlbmRTdW1tYXJ5UmVwb3J0KGRhdGE6IEJyYW5jaEFjdGl2aXR5U2VuZFJlcG9ydFJlcXVlc3REb21haW5Nb2RlbCB8IGFueSk6IE9ic2VydmFibGU8UmVjb3JkPHN0cmluZywgQnJhbmNoQWN0aXZpdHlSZXBvcnRbXT4+IHtcclxuICAgICAgY29uc3QgYXBpUGF0aCA9IGAke3RoaXMucmVwb3J0U2VydmljZVVybH0vYXBpL3YxL1JlcG9ydC9TZW5kU3VtbWFyeVJlcG9ydC9HZXRCcmFuY2hBY3Rpdml0eVNlbmRTdW1tYXJ5UmVwb3J0YDtcclxuICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGFwaVBhdGgsIGRhdGEpLnBpcGUobWFwKHJlc3BvbnNlID0+IHtcclxuICAgICAgICByZXR1cm4gPFJlY29yZDxzdHJpbmcsIEJyYW5jaEFjdGl2aXR5UmVwb3J0W10+PnJlc3BvbnNlO1xyXG4gICAgICB9KSk7XHJcbiAgICB9XHJcbi8vVHJhbnNhY3Rpb24gbW9uaXRvcmluZyBSZXBvcnQuXHJcbiAgXHJcbiAgZ2V0UGFyYW1zRm9yVHJhbnNhY3Rpb25Nb25pdG9yaW5nUmVwb3J0KCk6IE9ic2VydmFibGU8YW55W10+IHtcclxuICAgIGNvbnN0IGFwaVBhdGggPSBgJHt0aGlzLnJlcG9ydFNlcnZpY2VVcmx9L2FwaS92MS9SZXBvcnQvVHJhbnNhY3Rpb25Nb25pdG9yaW5nUmVwb3J0L1RyYW5zYWN0aW9uTW9uaXRvcmluZ1JlcG9ydFBhcmFtc2A7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChhcGlQYXRoKS5waXBlKG1hcChyZXNwb25zZSA9PiB7XHJcbiAgICAgIHJldHJ5KDIpLFxyXG4gICAgICAgIG1hcChyZXNwb25zZSA9PiByZXNwb25zZSlcclxuICAgICAgcmV0dXJuIDxhbnlbXT5yZXNwb25zZTtcclxuICAgIH0pKTtcclxuICB9XHJcblxyXG4gIGdldEJyYW5jaEJ5QWdlbnRGb3JUcmFuc2FjdGlvbk1vbml0b3JpbmdSZXBvcnQoY29kZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnlbXT4ge1xyXG4gICAgY29uc3QgYXBpUGF0aCA9IGAke3RoaXMucmVwb3J0U2VydmljZVVybH0vYXBpL3YxL1JlcG9ydC9UcmFuc2FjdGlvbk1vbml0b3JpbmdSZXBvcnQvR2V0QnJhbmNoQnlBZ2VudC8ke2NvZGV9L0JIYDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGFwaVBhdGgpLnBpcGUobWFwKHJlc3BvbnNlID0+IHtcclxuICAgICAgcmV0cnkoMiksXHJcbiAgICAgICAgbWFwKHJlc3BvbnNlID0+IHJlc3BvbnNlKVxyXG4gICAgICByZXR1cm4gPGFueVtdPnJlc3BvbnNlO1xyXG4gICAgfSkpO1xyXG4gIH1cclxuICBcclxuICBnZXRQYXlJbkFnZW50Zm9yVHJhbnNhY3Rpb25Nb25pdG9yaW5nUmVwb3J0KCk6IE9ic2VydmFibGU8YW55W10+IHtcclxuICAgIGNvbnN0IGFwaVBhdGggPSBgJHt0aGlzLnJlcG9ydFNlcnZpY2VVcmx9L2FwaS92MS9SZXBvcnQvVHJhbnNhY3Rpb25Nb25pdG9yaW5nUmVwb3J0L0dldEFsbFBheUluQWdlbnRzYDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGFwaVBhdGgpLnBpcGUobWFwKHJlc3BvbnNlID0+IHtcclxuICAgICAgcmV0dXJuIDxhbnlbXT5yZXNwb25zZTtcclxuICAgIH0pKTtcclxuICB9XHJcblxyXG5cclxuICBnZXRUcmFuc2FjdGlvbk1vbml0b3JpbmdSZXBvcnQoZGF0YTogVHJhbnNhY3Rpb25Nb25pdG9yaW5nUmVxdWVzdERvbWFpbk1vZGVsIHwgYW55KTogT2JzZXJ2YWJsZTxSZWNvcmQ8c3RyaW5nLCBUcmFuc2FjdGlvbk1vbml0b3JpbmdSZXBvcnRbXT4+IHtcclxuICAgIGNvbnN0IGFwaVBhdGggPSBgJHt0aGlzLnJlcG9ydFNlcnZpY2VVcmx9L2FwaS92MS9SZXBvcnQvVHJhbnNhY3Rpb25Nb25pdG9yaW5nUmVwb3J0L0dldFRyYW5zYWN0aW9uTW9uaXRvcmluZ1JlcG9ydGA7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYXBpUGF0aCwgZGF0YSkucGlwZShtYXAocmVzcG9uc2UgPT4ge1xyXG4gICAgICByZXR1cm4gPFJlY29yZDxzdHJpbmcsIFRyYW5zYWN0aW9uTW9uaXRvcmluZ1JlcG9ydFtdPj5yZXNwb25zZTtcclxuICAgIH0pKTtcclxuICB9XHJcbn1cclxuIl19
|