ezlibrary_v2 2.0.0
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/README.md +24 -0
- package/esm2020/ezlibrary_v2.mjs +5 -0
- package/esm2020/lib/admin-service/admin-service.service.mjs +34 -0
- package/esm2020/lib/analysis-search/analysis-search.component.mjs +1077 -0
- package/esm2020/lib/assort-service/assort-service.service.mjs +28 -0
- package/esm2020/lib/attribute-definition/attribute-definition.component.mjs +225 -0
- package/esm2020/lib/auth/auth.guard.mjs +37 -0
- package/esm2020/lib/bi-service/bi.service.mjs +57 -0
- package/esm2020/lib/call-info/callinfo.component.mjs +125 -0
- package/esm2020/lib/comman-service/comman-service.service.mjs +678 -0
- package/esm2020/lib/comman-service/share-data-service.service.mjs +23 -0
- package/esm2020/lib/contact-search/contact-search.component.mjs +690 -0
- package/esm2020/lib/contact-service/contact-service.service.mjs +45 -0
- package/esm2020/lib/ez-lib.component.mjs +26 -0
- package/esm2020/lib/ez-lib.module.mjs +232 -0
- package/esm2020/lib/ez-lib.service.mjs +14 -0
- package/esm2020/lib/ezheader/header.component.mjs +400 -0
- package/esm2020/lib/file-upload/fileupload.component.mjs +918 -0
- package/esm2020/lib/file-upload-log/file-upload-log.component.mjs +169 -0
- package/esm2020/lib/fileupload-module/fileupload-dashboard/fileupload-dashboard.component.mjs +14 -0
- package/esm2020/lib/fileupload-module/fileupload-routing.module.mjs +28 -0
- package/esm2020/lib/fileupload-module/fileupload.module.mjs +80 -0
- package/esm2020/lib/footer/footer.component.mjs +18 -0
- package/esm2020/lib/globle/common-pdf.service.mjs +28 -0
- package/esm2020/lib/globle/globle-env.service.mjs +45 -0
- package/esm2020/lib/globle/memo-report.service.mjs +2798 -0
- package/esm2020/lib/globle/shared-services.service.mjs +25 -0
- package/esm2020/lib/globle/upload-service.service.mjs +63 -0
- package/esm2020/lib/header/header.component.mjs +172 -0
- package/esm2020/lib/invalid/invalid.component.mjs +70 -0
- package/esm2020/lib/logout/logout.component.mjs +104 -0
- package/esm2020/lib/menu-right/menu-right.component.mjs +258 -0
- package/esm2020/lib/pipes/number-with-commas.pipe.mjs +24 -0
- package/esm2020/lib/pipes/order-by-pipe.pipe.mjs +17 -0
- package/esm2020/lib/pipes/selectedCount.mjs +19 -0
- package/esm2020/lib/pipes/sum.pipe.mjs +17 -0
- package/esm2020/lib/pkt-data/pkt-data.component.mjs +1109 -0
- package/esm2020/lib/pricing-service/pricing.service.mjs +64 -0
- package/esm2020/lib/qa-analysis/qa-analysis.component.mjs +1028 -0
- package/esm2020/lib/report-format/report-format.component.mjs +403 -0
- package/esm2020/lib/sessionend/session-end.guard.mjs +27 -0
- package/esm2020/lib/stock-service/lazyload.service.mjs +21 -0
- package/esm2020/lib/stock-service/stock-service.service.mjs +58 -0
- package/esm2020/lib/system-module/subform/subform.component.mjs +2817 -0
- package/esm2020/lib/system-module/system/system.component.mjs +970 -0
- package/esm2020/lib/system-module/system-service/system-service.service.mjs +83 -0
- package/esm2020/lib/system-module/system-service/upload-file.service.mjs +83 -0
- package/esm2020/lib/utility/app-no-dbl-click.directive.mjs +24 -0
- package/esm2020/lib/utility/constants.mjs +5 -0
- package/esm2020/lib/utility/contact-table-search.pipe.mjs +25 -0
- package/esm2020/lib/utility/formate-num-field.pipe.mjs +19 -0
- package/esm2020/lib/utility/search-pipe.pipe.mjs +26 -0
- package/esm2020/lib/utility/selective-preloading-strategy.mjs +23 -0
- package/esm2020/lib/utility/table-search.pipe.mjs +25 -0
- package/esm2020/lib/utility/tranform.directive.mjs +27 -0
- package/esm2020/lib/websearch-history/websearch-history.component.mjs +273 -0
- package/esm2020/public-api.mjs +59 -0
- package/ezlibrary_v2.d.ts +5 -0
- package/fesm2015/ezlibrary_v2.mjs +15300 -0
- package/fesm2015/ezlibrary_v2.mjs.map +1 -0
- package/fesm2020/ezlibrary_v2.mjs +15291 -0
- package/fesm2020/ezlibrary_v2.mjs.map +1 -0
- package/lib/admin-service/admin-service.service.d.ts +13 -0
- package/lib/analysis-search/analysis-search.component.d.ts +118 -0
- package/lib/assort-service/assort-service.service.d.ts +12 -0
- package/lib/attribute-definition/attribute-definition.component.d.ts +43 -0
- package/lib/auth/auth.guard.d.ts +14 -0
- package/lib/bi-service/bi.service.d.ts +16 -0
- package/lib/call-info/callinfo.component.d.ts +26 -0
- package/lib/comman-service/comman-service.service.d.ts +106 -0
- package/lib/comman-service/share-data-service.service.d.ts +10 -0
- package/lib/contact-search/contact-search.component.d.ts +111 -0
- package/lib/contact-service/contact-service.service.d.ts +15 -0
- package/lib/ez-lib.component.d.ts +8 -0
- package/lib/ez-lib.module.d.ts +43 -0
- package/lib/ez-lib.service.d.ts +6 -0
- package/lib/ezheader/header.component.d.ts +57 -0
- package/lib/file-upload/fileupload.component.d.ts +127 -0
- package/lib/file-upload-log/file-upload-log.component.d.ts +49 -0
- package/lib/fileupload-module/fileupload-dashboard/fileupload-dashboard.component.d.ts +8 -0
- package/lib/fileupload-module/fileupload-routing.module.d.ts +7 -0
- package/lib/fileupload-module/fileupload.module.d.ts +15 -0
- package/lib/footer/footer.component.d.ts +9 -0
- package/lib/globle/common-pdf.service.d.ts +9 -0
- package/lib/globle/globle-env.service.d.ts +16 -0
- package/lib/globle/memo-report.service.d.ts +107 -0
- package/lib/globle/shared-services.service.d.ts +12 -0
- package/lib/globle/upload-service.service.d.ts +16 -0
- package/lib/header/header.component.d.ts +41 -0
- package/lib/invalid/invalid.component.d.ts +12 -0
- package/lib/logout/logout.component.d.ts +19 -0
- package/lib/menu-right/menu-right.component.d.ts +43 -0
- package/lib/pipes/number-with-commas.pipe.d.ts +7 -0
- package/lib/pipes/order-by-pipe.pipe.d.ts +7 -0
- package/lib/pipes/selectedCount.d.ts +7 -0
- package/lib/pipes/sum.pipe.d.ts +7 -0
- package/lib/pkt-data/pkt-data.component.d.ts +184 -0
- package/lib/pricing-service/pricing.service.d.ts +16 -0
- package/lib/qa-analysis/qa-analysis.component.d.ts +95 -0
- package/lib/report-format/report-format.component.d.ts +74 -0
- package/lib/sessionend/session-end.guard.d.ts +10 -0
- package/lib/stock-service/lazyload.service.d.ts +7 -0
- package/lib/stock-service/stock-service.service.d.ts +15 -0
- package/lib/system-module/subform/subform.component.d.ts +222 -0
- package/lib/system-module/system/system.component.d.ts +109 -0
- package/lib/system-module/system-service/system-service.service.d.ts +23 -0
- package/lib/system-module/system-service/upload-file.service.d.ts +12 -0
- package/lib/utility/app-no-dbl-click.directive.d.ts +7 -0
- package/lib/utility/constants.d.ts +4 -0
- package/lib/utility/contact-table-search.pipe.d.ts +7 -0
- package/lib/utility/formate-num-field.pipe.d.ts +7 -0
- package/lib/utility/search-pipe.pipe.d.ts +7 -0
- package/lib/utility/selective-preloading-strategy.d.ts +9 -0
- package/lib/utility/table-search.pipe.d.ts +7 -0
- package/lib/utility/tranform.directive.d.ts +10 -0
- package/lib/websearch-history/websearch-history.component.d.ts +56 -0
- package/package.json +31 -0
- package/public-api.d.ts +54 -0
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
// import { FlashMessagesService } from 'angular2-flash-messages';
|
|
3
|
+
import { Cookie } from 'ng2-cookies/ng2-cookies';
|
|
4
|
+
// import { AsyncLocalStorage } from 'async_hooks';
|
|
5
|
+
import { document } from 'ngx-bootstrap';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@angular/router";
|
|
8
|
+
import * as i2 from "../stock-service/stock-service.service";
|
|
9
|
+
import * as i3 from "../system-module/system-service/system-service.service";
|
|
10
|
+
import * as i4 from "../comman-service/comman-service.service";
|
|
11
|
+
import * as i5 from "@ng-select/ng-select";
|
|
12
|
+
import * as i6 from "ngx-pagination";
|
|
13
|
+
import * as i7 from "@angular/forms";
|
|
14
|
+
import * as i8 from "@angular/common";
|
|
15
|
+
import * as i9 from "../utility/app-no-dbl-click.directive";
|
|
16
|
+
import * as i10 from "ngx-order-pipe";
|
|
17
|
+
import * as i11 from "../utility/table-search.pipe";
|
|
18
|
+
export class WebsearchHistoryComponent {
|
|
19
|
+
constructor(router, route,
|
|
20
|
+
// private flashMessagesService: FlashMessagesService,
|
|
21
|
+
ss,
|
|
22
|
+
// private spinnerService: Ng4LoadingSpinnerService,
|
|
23
|
+
sysS,
|
|
24
|
+
// private ps: PdfServiceService,
|
|
25
|
+
cs) {
|
|
26
|
+
this.router = router;
|
|
27
|
+
this.route = route;
|
|
28
|
+
this.ss = ss;
|
|
29
|
+
this.sysS = sysS;
|
|
30
|
+
this.cs = cs;
|
|
31
|
+
this.resultView = [];
|
|
32
|
+
this.searchResultDtlList = [];
|
|
33
|
+
this.isOpen = true;
|
|
34
|
+
this.icon = 'fa fa-dedent';
|
|
35
|
+
this.order = '';
|
|
36
|
+
this.reverse = true;
|
|
37
|
+
this.pageSize = 10;
|
|
38
|
+
this.p = 1;
|
|
39
|
+
this.pokey = '';
|
|
40
|
+
this.buyerList = [];
|
|
41
|
+
this.lovs = [];
|
|
42
|
+
this.sqlArray = {};
|
|
43
|
+
this.noData = true;
|
|
44
|
+
this.resultlength = 0;
|
|
45
|
+
this.scrollDistance = 1;
|
|
46
|
+
this.scrollUpDistance = 2;
|
|
47
|
+
this.startIndex = 0;
|
|
48
|
+
this.endIndex = 30;
|
|
49
|
+
this.loadResult = [];
|
|
50
|
+
}
|
|
51
|
+
setOrder(value, i) {
|
|
52
|
+
this.showarr = i;
|
|
53
|
+
if (this.order === value) {
|
|
54
|
+
this.reverse = !this.reverse;
|
|
55
|
+
}
|
|
56
|
+
this.order = value;
|
|
57
|
+
}
|
|
58
|
+
onPageSizeChange(p) {
|
|
59
|
+
if (p == 'All') {
|
|
60
|
+
this.pageSize = this.searchResultDtlList.length;
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
this.pageSize = p;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
getLovList(tblF, page_item_idn) {
|
|
67
|
+
// this.spinnerService.show();
|
|
68
|
+
let reqObj = {};
|
|
69
|
+
reqObj['page_item_idn'] = page_item_idn;
|
|
70
|
+
this.header['method'] = 'getDataByItemIdn';
|
|
71
|
+
// let options = new RequestOptions({ headers: this.header });
|
|
72
|
+
let options = { headers: this.header };
|
|
73
|
+
this.sysS.getData(reqObj, options).then((response) => {
|
|
74
|
+
if (response.status == 'SUCCESS') {
|
|
75
|
+
this.lovs = response.kv;
|
|
76
|
+
this.sqlArray[tblF] = this.lovs;
|
|
77
|
+
// this.spinnerService.hide();
|
|
78
|
+
// console.log(this.lovs);
|
|
79
|
+
// console.log(tblF, this.sqlArray);
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
// this.spinnerService.hide();
|
|
83
|
+
// this.flashMessagesService.show(response.message, { cssClass: 'alert-danger', timeout: 3000 });
|
|
84
|
+
}
|
|
85
|
+
}).catch((err) => {
|
|
86
|
+
// this.spinnerService.hide();
|
|
87
|
+
// this.flashMessagesService.show(err.message, { cssClass: 'alert-danger', timeout: 3000 });
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
loadBuyer(searchTerm) {
|
|
91
|
+
// this.spinnerService.show();
|
|
92
|
+
let reqObj = {};
|
|
93
|
+
reqObj['likeStr'] = searchTerm;
|
|
94
|
+
this.header['method'] = 'loadBuyer';
|
|
95
|
+
// let options = new RequestOptions({ headers: this.header });
|
|
96
|
+
let options = { headers: this.header };
|
|
97
|
+
this.ss.load(reqObj, options, 'marketing/search').then((response) => {
|
|
98
|
+
if (response.status == 'SUCCESS') {
|
|
99
|
+
let result = response.result;
|
|
100
|
+
this.buyerList = result.buyerList.map(option => ({
|
|
101
|
+
value: option.k,
|
|
102
|
+
label: option.v
|
|
103
|
+
}));
|
|
104
|
+
// this.spinnerService.hide();
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
// this.spinnerService.hide();
|
|
108
|
+
// this.flashMessagesService.show(response.message, { cssClass: 'alert-danger', timeout: 3000 });
|
|
109
|
+
}
|
|
110
|
+
}).catch((err) => {
|
|
111
|
+
// this.spinnerService.hide();
|
|
112
|
+
// this.flashMessagesService.show(err.message, { cssClass: 'alert-danger', timeout: 3000 });
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
loadFrmFields() {
|
|
116
|
+
// this.spinnerService.show();
|
|
117
|
+
let reqObj = {};
|
|
118
|
+
reqObj['formNme'] = this.route.snapshot.params['frmnme']; //'searchDtlDscrForm';
|
|
119
|
+
reqObj['requestSrc'] = this.route.snapshot.params['src']; // 'online';
|
|
120
|
+
// if (this.route.snapshot.params['src'] != null && this.route.snapshot.params['src'] != undefined && this.route.snapshot.params['src'] != "") {
|
|
121
|
+
// reqObj['requestSrc'] ='ez';// ['qs', 'qs'];
|
|
122
|
+
// }
|
|
123
|
+
// else {
|
|
124
|
+
// reqObj['requestSrc'] = 'online';
|
|
125
|
+
// }
|
|
126
|
+
this.header['method'] = 'getSearchDetails';
|
|
127
|
+
// console.log(reqObj);
|
|
128
|
+
// let options = new RequestOptions({ headers: this.header });
|
|
129
|
+
let options = { headers: this.header };
|
|
130
|
+
this.ss.load(reqObj, options, 'marketing/search').then((response) => {
|
|
131
|
+
if (response.status == 'SUCCESS') {
|
|
132
|
+
// this.isOpen = true;
|
|
133
|
+
let result = response.result;
|
|
134
|
+
this.pageDefination = result.pageDefination;
|
|
135
|
+
this.sourceList = result.sourceList;
|
|
136
|
+
this.pageDefination.form_field.forEach(element => {
|
|
137
|
+
if (element.form_field_typ == 's') {
|
|
138
|
+
this.getLovList(element.form_field, element.page_item_idn);
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
// this.spinnerService.hide();
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
// this.spinnerService.hide();
|
|
145
|
+
// this.flashMessagesService.show(response.message, { cssClass: 'alert-danger', timeout: 3000 });
|
|
146
|
+
}
|
|
147
|
+
}).catch((err) => {
|
|
148
|
+
// this.spinnerService.hide();
|
|
149
|
+
// this.flashMessagesService.show(err.message, { cssClass: 'alert-danger', timeout: 3000 });
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
openTog() {
|
|
153
|
+
this.isOpen = !this.isOpen;
|
|
154
|
+
if (this.isOpen == true) {
|
|
155
|
+
this.icon = 'fa fa-dedent';
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
this.icon = 'fa fa-indent';
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
exportToCSV() {
|
|
162
|
+
let modifiedObjArr = this.cs.modifyDataByHeader(this.searchResultDtlList, this.resultView, this.resultViewDtl);
|
|
163
|
+
this.cs.CSVConvertor(modifiedObjArr, "Web_Search_History", true);
|
|
164
|
+
}
|
|
165
|
+
loadResults(formVal) {
|
|
166
|
+
this.loadResult = [];
|
|
167
|
+
// this.startIndex = 0;
|
|
168
|
+
// this.endIndex = 30;
|
|
169
|
+
// this.spinnerService.show();
|
|
170
|
+
let reqObj = {};
|
|
171
|
+
reqObj['formNme'] = this.route.snapshot.params['frmnme']; //'searchDtlDscrForm';
|
|
172
|
+
if (formVal != null) {
|
|
173
|
+
//reqObj['formNme'] = 'searchDtlDscrForm';
|
|
174
|
+
reqObj['empIdnList'] = formVal.employee != null ? [formVal.employee] : [];
|
|
175
|
+
reqObj['buyerIdnList'] = formVal.buyer != null ? [formVal.buyer] : [];
|
|
176
|
+
reqObj['dateFrom'] = formVal.fromDate != null ? this.cs.formatDate(formVal.fromDate) : '';
|
|
177
|
+
reqObj['dateTo'] = formVal.toDate != null ? this.cs.formatDate(formVal.toDate) : '';
|
|
178
|
+
}
|
|
179
|
+
// if (this.route.snapshot.params['src'] != null && this.route.snapshot.params['src'] != undefined && this.route.snapshot.params['src'] != "") {
|
|
180
|
+
// reqObj['requestSrc'] = 'ez';//['qs', 'qs'];
|
|
181
|
+
// }
|
|
182
|
+
// else {
|
|
183
|
+
// reqObj['requestSrc'] = 'online';
|
|
184
|
+
// }
|
|
185
|
+
reqObj['requestSrc'] = this.route.snapshot.params['src'];
|
|
186
|
+
this.header['method'] = 'getSearchDetails';
|
|
187
|
+
console.log(JSON.stringify(reqObj));
|
|
188
|
+
// let options = new RequestOptions({ headers: this.header });
|
|
189
|
+
let options = { headers: this.header };
|
|
190
|
+
this.ss.load(reqObj, options, 'marketing/search').then((response) => {
|
|
191
|
+
if (response.status == 'SUCCESS') {
|
|
192
|
+
console.log(response);
|
|
193
|
+
this.isOpen = false;
|
|
194
|
+
let result = response.result;
|
|
195
|
+
if (result != undefined && result != null) {
|
|
196
|
+
this.noData = false;
|
|
197
|
+
this.pageDefination = result.pageDefination;
|
|
198
|
+
this.resultView = result.resultView || [];
|
|
199
|
+
this.resultViewDtl = result.resultViewDtl || {};
|
|
200
|
+
this.searchResultDtlList = result.searchResultDtlList || [];
|
|
201
|
+
this.resultlength = this.searchResultDtlList.length;
|
|
202
|
+
// if (this.endIndex > this.resultlength)
|
|
203
|
+
// this.endIndex = this.resultlength
|
|
204
|
+
// this.addItems();
|
|
205
|
+
this.loadResult = this.searchResultDtlList;
|
|
206
|
+
document.getElementById("wrap").addEventListener("scroll", function () {
|
|
207
|
+
var translate = "translate(0," + this.scrollTop + "px)";
|
|
208
|
+
this.querySelector("thead").style.transform = translate;
|
|
209
|
+
});
|
|
210
|
+
this.searchF = this.sourceVal;
|
|
211
|
+
}
|
|
212
|
+
else {
|
|
213
|
+
this.noData = true;
|
|
214
|
+
this.isOpen = true;
|
|
215
|
+
}
|
|
216
|
+
// this.spinnerService.hide();
|
|
217
|
+
}
|
|
218
|
+
else {
|
|
219
|
+
// this.spinnerService.hide();
|
|
220
|
+
// this.flashMessagesService.show(response.message, { cssClass: 'alert-danger', timeout: 3000 });
|
|
221
|
+
}
|
|
222
|
+
}).catch((err) => {
|
|
223
|
+
// this.spinnerService.hide();
|
|
224
|
+
// this.flashMessagesService.show(err.message, { cssClass: 'alert-danger', timeout: 3000 });
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
// onScrollDown() {
|
|
228
|
+
// if (this.endIndex <= this.resultlength)
|
|
229
|
+
// this.addItems()
|
|
230
|
+
// document.getElementById("wrap").addEventListener("scroll", function () {
|
|
231
|
+
// var translate = "translate(0," + this.scrollTop + "px)";
|
|
232
|
+
// this.querySelector("thead").style.transform = translate;
|
|
233
|
+
// });
|
|
234
|
+
// }
|
|
235
|
+
// addItems() {
|
|
236
|
+
// for (let i = this.startIndex; i < this.endIndex; i++) {
|
|
237
|
+
// this.loadResult[i] = this.searchResultDtlList[i];
|
|
238
|
+
// }
|
|
239
|
+
// this.startIndex = this.endIndex;
|
|
240
|
+
// this.endIndex = this.endIndex + 30;
|
|
241
|
+
// if (this.endIndex > this.resultlength) {
|
|
242
|
+
// this.endIndex = this.resultlength;
|
|
243
|
+
// }
|
|
244
|
+
// }
|
|
245
|
+
onSubmit(formVal) {
|
|
246
|
+
var t = Object.keys(formVal.form.controls).forEach(field => {
|
|
247
|
+
const control = formVal.form.get(field);
|
|
248
|
+
});
|
|
249
|
+
this.loadResults(formVal.value);
|
|
250
|
+
}
|
|
251
|
+
ngOnInit() {
|
|
252
|
+
// let mdlk = JSON.parse(AsyncLocalStorage.arguments('mdlKey'));
|
|
253
|
+
let mdlk;
|
|
254
|
+
this.cUrl = this.router.url;
|
|
255
|
+
this.header = {
|
|
256
|
+
'clientkey': Cookie.get('_ck'),
|
|
257
|
+
'Content-Type': 'application/json',
|
|
258
|
+
'modulekey': mdlk[this.cUrl.split('/')[1]],
|
|
259
|
+
'loginid': Cookie.get('_logid'),
|
|
260
|
+
'source': 'qs'
|
|
261
|
+
};
|
|
262
|
+
this.loadResults(null);
|
|
263
|
+
this.loadFrmFields();
|
|
264
|
+
this.cDt = new Date();
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
WebsearchHistoryComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: WebsearchHistoryComponent, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }, { token: i2.StockServiceService }, { token: i3.SystemServiceService }, { token: i4.CommanServiceService }], target: i0.ɵɵFactoryTarget.Component });
|
|
268
|
+
WebsearchHistoryComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: WebsearchHistoryComponent, selector: "app-websearch-history", ngImport: i0, template: "<div class=\"mt\" style=\"background: #fff;\">\r\n <div class=\"panel panel-default\">\r\n <div class=\"panel-heading\">\r\n <h3 class=\"panel-title\">{{pageDefination?.title}}\r\n <span class=\"f-12\">({{cDt | date:'medium'}})</span>\r\n </h3>\r\n </div>\r\n </div>\r\n <div class=\"content-frame\">\r\n <div class=\"innerD\">\r\n <div class=\"row\" style=\"padding: 10px;\">\r\n <form class=\"form-inline\" #f=\"ngForm\" (ngSubmit)=\"onSubmit(f)\" name=\"appForm\">\r\n <div [ngClass]=\"isOpen == true ? 'col-md-4' : 'hidden'\">\r\n <div class=\"row\">\r\n <div class=\"col-md-12\" *ngFor=\"let fl of pageDefination?.form_field\">\r\n <div class=\"form-group w-100\" *ngIf=\"fl?.form_field_typ == 'sb'\">\r\n <label class=\"col-md-5 control-label\" style=\"padding-left: 2px;\">{{fl?.form_field_title}}</label>\r\n <div class=\"col-md-7\">\r\n <div class=\"input-group w-100\">\r\n <ng-select style=\"z-index: 3;\" placeholder=\"Select Buyers\" [options]=\"buyerList\"\r\n [(ngModel)]=\"fl.default_value\" name=\"buyer\" (filterInputChanged)=\"loadBuyer($event)\">\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group w-100\" *ngIf=\"fl?.form_field_typ == 's'\">\r\n <label class=\"col-md-5 control-label\" style=\"padding-left: 2px;\">{{fl?.form_field_title}}</label>\r\n <div class=\"col-md-7\">\r\n <div class=\"input-group w-100\">\r\n <select class=\"form-control\" name=\"{{fl?.form_field}}\" [value]=\"fl?.default_value\"\r\n [(ngModel)]=\"fl.default_value\" #lInput=\"ngModel\">\r\n <option *ngFor=\"let lov of sqlArray[fl.form_field]\" value=\"{{lov.k}}\">{{lov.v}}</option>\r\n </select>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group w-100\" *ngIf=\"fl?.form_field_typ == 't' && fl?.dta_typ=='d'\">\r\n <label class=\"col-md-5 control-label\" style=\"padding-left: 2px;\">{{fl?.form_field_title}}</label>\r\n <div class=\"col-md-7\">\r\n <div class=\"input-group w-100\">\r\n <input name=\"{{fl?.form_field}}\" [(ngModel)]=\"fl.default_value\" onfocus=\"(this.type='date')\"\r\n onblur=\"(this.type='text')\" class=\"form-control\" placeholder=\"dd/mm/yyyy\" />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group w-100\" *ngIf=\"sourceList != null\">\r\n <label class=\"col-md-5 control-label\" style=\"padding-left: 2px;\">Source</label>\r\n <div class=\"col-md-7\">\r\n <div class=\"input-group w-100\">\r\n <select class=\"form-control\" name=\"source\" [(ngModel)]=\"sourceVal\">\r\n <option *ngFor=\"let option of sourceList\" value=\"{{option.k}}\">{{option.v}}</option>\r\n </select>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n <div [ngClass]=\"isOpen == false ? 'col-md-12 custCls' : 'col-md-8 custCls'\">\r\n <div class=\"row\" *ngIf=\"searchResultDtlList.length>0\">\r\n <div class=\"col-sm-6\">\r\n <form class=\"form-inline pull-left\">\r\n </form>\r\n <form class=\"form-inline pull-left\">\r\n <div class=\"form-group\">\r\n <label for=\"ddlPagesize\">Page Size </label>\r\n <select class=\"form-control\" name=\"pageSize\" [(ngModel)]=\"pageSize\"\r\n (change)=\"onPageSizeChange(pageSize)\">\r\n <option value=\"All\">All</option>\r\n <option value=\"10\">10</option>\r\n <option value=\"25\">25</option>\r\n <option value=\"50\">50</option>\r\n <option value=\"100\">100</option>\r\n </select>\r\n </div>\r\n </form>\r\n\r\n <button *ngIf=\"searchResultDtlList.length>0\" class=\"btn btn-default\"\r\n style=\"padding: 4px 15px 4px 20px;margin-left: 10px;\" data-toggle=\"tooltip\" data-placement=\"right\"\r\n title=\"Filter results\" (click)=\"openTog();\">\r\n <span class=\"{{icon}}\" style=\"color:#3b5998;\"></span>\r\n </button>\r\n\r\n <button *ngIf=\"!noData\" class=\"btn btn-default\" style=\"padding: 4px 15px 4px 20px;margin-left: 10px;\"\r\n data-toggle=\"tooltip\" data-placement=\"right\" title=\"Refresh\" (click)=\"ngOnInit();\">\r\n <span class=\"fa fa-refresh\"></span>\r\n </button>\r\n <button *ngIf=\"!noData\" class=\"btn btn-default\" style=\"padding: 4px 15px 4px 20px;margin-left: 10px;\"\r\n data-toggle=\"tooltip\" data-placement=\"right\" title=\"Download Excel\" (click)=\"exportToCSV();\">\r\n <span class=\"fa fa-file-excel-o\" style=\"color:green;\"></span>\r\n </button>\r\n\r\n </div>\r\n <div *ngIf=\"!noData\" class=\"col-md-6\">\r\n <form class=\"form-inline pull-right\">\r\n <div class=\"form-group\">\r\n <label for=\"exampleInputName2\">Search </label>\r\n <input type=\"text\" class=\"form-control\" id=\"exampleInputName2\" name=\"schtxt\" [(ngModel)]=\"searchF\" />\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n <div id=\"wrap\" style=\"overflow: auto;width: 100%;height: calc(100vh - 210px);\">\r\n <table class=\"displayTable\" *ngIf=\"!noData\">\r\n <thead>\r\n <tr class=\"posrel\">\r\n <ng-container *ngFor=\"let hdr of resultView ;let j=index;\">\r\n <th *ngIf=\"hdr != 'request_attr' && hdr != 'request_attrVal'\" nowrap (click)=\"setOrder(hdr,j)\">\r\n {{resultViewDtl[hdr]}}\r\n <span [hidden]=\"reverse\" *ngIf=\"showarr === j\">\r\n <i class=\"fa fa-arrow-down\" aria-hidden=\"true\"></i>\r\n </span>\r\n <span [hidden]=\"!reverse\" *ngIf=\"showarr === j\">\r\n <i class=\"fa fa-arrow-up\" aria-hidden=\"true\"></i>\r\n </span>\r\n </th>\r\n </ng-container>\r\n </tr>\r\n </thead>\r\n <tbody style=\"height:400px;overflow:auto;\">\r\n <ng-container\r\n *ngFor=\"let pktdtl of loadResult | tableSearch:searchF | orderBy: order:reverse | paginate: { itemsPerPage: pageSize, currentPage: p }; let pkti = index ;trackBy:stock_idn\">\r\n\r\n <tr [ngClass]=\"{'even':pkti%2==0,'odd':pkti%2==1}\">\r\n <ng-container *ngFor=\"let att of resultView; let j = index;\">\r\n <td *ngIf=\"att != 'request_attr' && att != 'request_attrVal'\"\r\n style=\"max-width: 300px;white-space: normal;\"\r\n [ngStyle]=\"{'word-break' : att == 'dscr' ? 'break-word': 'normal','white-space': att != 'dscr'? 'nowrap':'normal'}\">\r\n <span>{{pktdtl[att]}}</span>\r\n </td>\r\n </ng-container>\r\n </tr>\r\n </ng-container>\r\n </tbody>\r\n </table>\r\n <p *ngIf=\"searchResultDtlList.length==0\" style=\"text-align: center\"><b> No Data Found !</b></p>\r\n <!-- \"max-width: 300px;white-space: normal;word-break: break-word; -->\r\n <!-- <pagination-controls (pageChange)=\"p = $event\" *ngIf=\"processDetails.length>0\" class=\"pull-right\"></pagination-controls> -->\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"actionFooter\">\r\n <button type=\"submit\" class=\"btn btn-success cBtn pull-left\" appAppNoDblClick (click)=\"onSubmit(f)\">Fetch</button>\r\n <pagination-controls style=\"background: white;\" (pageChange)=\"p=$event\" class=\"pull-right\"></pagination-controls>\r\n </div>\r\n</div>", styles: [".mb10p{margin-bottom:10px}.picn{padding:3px;margin-left:20px;font-size:16px;cursor:pointer}.divstyle{background:#fff;padding:2px}td,th{text-align:left}.ta-right{text-align:right!important}.ta-center{text-align:center!important}.p-cursor{cursor:pointer!important}.custCls{position:relative}.custCls:after{content:\"\";position:absolute;border-right:1px solid #ccc;height:85vh;width:20px;left:-25px;top:0px}.actionFooter{position:fixed;bottom:0;width:100%;text-align:right;padding:10px;background:#1b1e24}.innerD{min-height:calc(100vh - 100px);overflow:auto;background:#fff}table.wrp{table-layout:auto}\n"], components: [{ type: i5.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { type: i6.PaginationControlsComponent, selector: "pagination-controls", inputs: ["maxSize", "previousLabel", "nextLabel", "screenReaderPaginationLabel", "screenReaderPageLabel", "screenReaderCurrentLabel", "directionLinks", "autoHide", "responsive", "id"], outputs: ["pageChange", "pageBoundsCorrection"] }], directives: [{ type: i7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i7.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i8.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i7.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { type: i7.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i7.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i8.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i9.AppNoDblClickDirective, selector: "[appAppNoDblClick]" }], pipes: { "date": i8.DatePipe, "paginate": i6.PaginatePipe, "orderBy": i10.OrderPipe, "tableSearch": i11.TableSearchPipe } });
|
|
269
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: WebsearchHistoryComponent, decorators: [{
|
|
270
|
+
type: Component,
|
|
271
|
+
args: [{ selector: 'app-websearch-history', template: "<div class=\"mt\" style=\"background: #fff;\">\r\n <div class=\"panel panel-default\">\r\n <div class=\"panel-heading\">\r\n <h3 class=\"panel-title\">{{pageDefination?.title}}\r\n <span class=\"f-12\">({{cDt | date:'medium'}})</span>\r\n </h3>\r\n </div>\r\n </div>\r\n <div class=\"content-frame\">\r\n <div class=\"innerD\">\r\n <div class=\"row\" style=\"padding: 10px;\">\r\n <form class=\"form-inline\" #f=\"ngForm\" (ngSubmit)=\"onSubmit(f)\" name=\"appForm\">\r\n <div [ngClass]=\"isOpen == true ? 'col-md-4' : 'hidden'\">\r\n <div class=\"row\">\r\n <div class=\"col-md-12\" *ngFor=\"let fl of pageDefination?.form_field\">\r\n <div class=\"form-group w-100\" *ngIf=\"fl?.form_field_typ == 'sb'\">\r\n <label class=\"col-md-5 control-label\" style=\"padding-left: 2px;\">{{fl?.form_field_title}}</label>\r\n <div class=\"col-md-7\">\r\n <div class=\"input-group w-100\">\r\n <ng-select style=\"z-index: 3;\" placeholder=\"Select Buyers\" [options]=\"buyerList\"\r\n [(ngModel)]=\"fl.default_value\" name=\"buyer\" (filterInputChanged)=\"loadBuyer($event)\">\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group w-100\" *ngIf=\"fl?.form_field_typ == 's'\">\r\n <label class=\"col-md-5 control-label\" style=\"padding-left: 2px;\">{{fl?.form_field_title}}</label>\r\n <div class=\"col-md-7\">\r\n <div class=\"input-group w-100\">\r\n <select class=\"form-control\" name=\"{{fl?.form_field}}\" [value]=\"fl?.default_value\"\r\n [(ngModel)]=\"fl.default_value\" #lInput=\"ngModel\">\r\n <option *ngFor=\"let lov of sqlArray[fl.form_field]\" value=\"{{lov.k}}\">{{lov.v}}</option>\r\n </select>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group w-100\" *ngIf=\"fl?.form_field_typ == 't' && fl?.dta_typ=='d'\">\r\n <label class=\"col-md-5 control-label\" style=\"padding-left: 2px;\">{{fl?.form_field_title}}</label>\r\n <div class=\"col-md-7\">\r\n <div class=\"input-group w-100\">\r\n <input name=\"{{fl?.form_field}}\" [(ngModel)]=\"fl.default_value\" onfocus=\"(this.type='date')\"\r\n onblur=\"(this.type='text')\" class=\"form-control\" placeholder=\"dd/mm/yyyy\" />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group w-100\" *ngIf=\"sourceList != null\">\r\n <label class=\"col-md-5 control-label\" style=\"padding-left: 2px;\">Source</label>\r\n <div class=\"col-md-7\">\r\n <div class=\"input-group w-100\">\r\n <select class=\"form-control\" name=\"source\" [(ngModel)]=\"sourceVal\">\r\n <option *ngFor=\"let option of sourceList\" value=\"{{option.k}}\">{{option.v}}</option>\r\n </select>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n <div [ngClass]=\"isOpen == false ? 'col-md-12 custCls' : 'col-md-8 custCls'\">\r\n <div class=\"row\" *ngIf=\"searchResultDtlList.length>0\">\r\n <div class=\"col-sm-6\">\r\n <form class=\"form-inline pull-left\">\r\n </form>\r\n <form class=\"form-inline pull-left\">\r\n <div class=\"form-group\">\r\n <label for=\"ddlPagesize\">Page Size </label>\r\n <select class=\"form-control\" name=\"pageSize\" [(ngModel)]=\"pageSize\"\r\n (change)=\"onPageSizeChange(pageSize)\">\r\n <option value=\"All\">All</option>\r\n <option value=\"10\">10</option>\r\n <option value=\"25\">25</option>\r\n <option value=\"50\">50</option>\r\n <option value=\"100\">100</option>\r\n </select>\r\n </div>\r\n </form>\r\n\r\n <button *ngIf=\"searchResultDtlList.length>0\" class=\"btn btn-default\"\r\n style=\"padding: 4px 15px 4px 20px;margin-left: 10px;\" data-toggle=\"tooltip\" data-placement=\"right\"\r\n title=\"Filter results\" (click)=\"openTog();\">\r\n <span class=\"{{icon}}\" style=\"color:#3b5998;\"></span>\r\n </button>\r\n\r\n <button *ngIf=\"!noData\" class=\"btn btn-default\" style=\"padding: 4px 15px 4px 20px;margin-left: 10px;\"\r\n data-toggle=\"tooltip\" data-placement=\"right\" title=\"Refresh\" (click)=\"ngOnInit();\">\r\n <span class=\"fa fa-refresh\"></span>\r\n </button>\r\n <button *ngIf=\"!noData\" class=\"btn btn-default\" style=\"padding: 4px 15px 4px 20px;margin-left: 10px;\"\r\n data-toggle=\"tooltip\" data-placement=\"right\" title=\"Download Excel\" (click)=\"exportToCSV();\">\r\n <span class=\"fa fa-file-excel-o\" style=\"color:green;\"></span>\r\n </button>\r\n\r\n </div>\r\n <div *ngIf=\"!noData\" class=\"col-md-6\">\r\n <form class=\"form-inline pull-right\">\r\n <div class=\"form-group\">\r\n <label for=\"exampleInputName2\">Search </label>\r\n <input type=\"text\" class=\"form-control\" id=\"exampleInputName2\" name=\"schtxt\" [(ngModel)]=\"searchF\" />\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n <div id=\"wrap\" style=\"overflow: auto;width: 100%;height: calc(100vh - 210px);\">\r\n <table class=\"displayTable\" *ngIf=\"!noData\">\r\n <thead>\r\n <tr class=\"posrel\">\r\n <ng-container *ngFor=\"let hdr of resultView ;let j=index;\">\r\n <th *ngIf=\"hdr != 'request_attr' && hdr != 'request_attrVal'\" nowrap (click)=\"setOrder(hdr,j)\">\r\n {{resultViewDtl[hdr]}}\r\n <span [hidden]=\"reverse\" *ngIf=\"showarr === j\">\r\n <i class=\"fa fa-arrow-down\" aria-hidden=\"true\"></i>\r\n </span>\r\n <span [hidden]=\"!reverse\" *ngIf=\"showarr === j\">\r\n <i class=\"fa fa-arrow-up\" aria-hidden=\"true\"></i>\r\n </span>\r\n </th>\r\n </ng-container>\r\n </tr>\r\n </thead>\r\n <tbody style=\"height:400px;overflow:auto;\">\r\n <ng-container\r\n *ngFor=\"let pktdtl of loadResult | tableSearch:searchF | orderBy: order:reverse | paginate: { itemsPerPage: pageSize, currentPage: p }; let pkti = index ;trackBy:stock_idn\">\r\n\r\n <tr [ngClass]=\"{'even':pkti%2==0,'odd':pkti%2==1}\">\r\n <ng-container *ngFor=\"let att of resultView; let j = index;\">\r\n <td *ngIf=\"att != 'request_attr' && att != 'request_attrVal'\"\r\n style=\"max-width: 300px;white-space: normal;\"\r\n [ngStyle]=\"{'word-break' : att == 'dscr' ? 'break-word': 'normal','white-space': att != 'dscr'? 'nowrap':'normal'}\">\r\n <span>{{pktdtl[att]}}</span>\r\n </td>\r\n </ng-container>\r\n </tr>\r\n </ng-container>\r\n </tbody>\r\n </table>\r\n <p *ngIf=\"searchResultDtlList.length==0\" style=\"text-align: center\"><b> No Data Found !</b></p>\r\n <!-- \"max-width: 300px;white-space: normal;word-break: break-word; -->\r\n <!-- <pagination-controls (pageChange)=\"p = $event\" *ngIf=\"processDetails.length>0\" class=\"pull-right\"></pagination-controls> -->\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"actionFooter\">\r\n <button type=\"submit\" class=\"btn btn-success cBtn pull-left\" appAppNoDblClick (click)=\"onSubmit(f)\">Fetch</button>\r\n <pagination-controls style=\"background: white;\" (pageChange)=\"p=$event\" class=\"pull-right\"></pagination-controls>\r\n </div>\r\n</div>", styles: [".mb10p{margin-bottom:10px}.picn{padding:3px;margin-left:20px;font-size:16px;cursor:pointer}.divstyle{background:#fff;padding:2px}td,th{text-align:left}.ta-right{text-align:right!important}.ta-center{text-align:center!important}.p-cursor{cursor:pointer!important}.custCls{position:relative}.custCls:after{content:\"\";position:absolute;border-right:1px solid #ccc;height:85vh;width:20px;left:-25px;top:0px}.actionFooter{position:fixed;bottom:0;width:100%;text-align:right;padding:10px;background:#1b1e24}.innerD{min-height:calc(100vh - 100px);overflow:auto;background:#fff}table.wrp{table-layout:auto}\n"] }]
|
|
272
|
+
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i1.ActivatedRoute }, { type: i2.StockServiceService }, { type: i3.SystemServiceService }, { type: i4.CommanServiceService }]; } });
|
|
273
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vic2VhcmNoLWhpc3RvcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXotbGliL3NyYy9saWIvd2Vic2VhcmNoLWhpc3Rvcnkvd2Vic2VhcmNoLWhpc3RvcnkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXotbGliL3NyYy9saWIvd2Vic2VhcmNoLWhpc3Rvcnkvd2Vic2VhcmNoLWhpc3RvcnkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBaUMsTUFBTSxlQUFlLENBQUM7QUFRekUsa0VBQWtFO0FBQ2xFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQU1qRCxtREFBbUQ7QUFDbkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7Ozs7OztBQU96QyxNQUFNLE9BQU8seUJBQXlCO0lBRXBDLFlBQ1MsTUFBYyxFQUNiLEtBQXFCO0lBQzdCLHNEQUFzRDtJQUM5QyxFQUF1QjtJQUMvQixvREFBb0Q7SUFDNUMsSUFBMEI7SUFDbEMsaUNBQWlDO0lBQ3pCLEVBQXdCO1FBUHpCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDYixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUVyQixPQUFFLEdBQUYsRUFBRSxDQUFxQjtRQUV2QixTQUFJLEdBQUosSUFBSSxDQUFzQjtRQUUxQixPQUFFLEdBQUYsRUFBRSxDQUFzQjtRQU1sQyxlQUFVLEdBQUcsRUFBRSxDQUFDO1FBRWhCLHdCQUFtQixHQUFHLEVBQUUsQ0FBQztRQUN6QixXQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ2QsU0FBSSxHQUFHLGNBQWMsQ0FBQztRQUV0QixVQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ1gsWUFBTyxHQUFHLElBQUksQ0FBQztRQUNmLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFDZCxNQUFDLEdB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LEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN6RCxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQyxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFDRCxRQUFRO1FBQ04sZ0VBQWdFO1FBQ2hFLElBQUksSUFBSSxDQUFFO1FBQ1YsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQztRQUU1QixJQUFJLENBQUMsTUFBTSxHQUFHO1lBQ1osV0FBVyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO1lBQzlCLGNBQWMsRUFBRSxrQkFBa0I7WUFDbEMsV0FBVyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMxQyxTQUFTLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7WUFDL0IsUUFBUSxFQUFFLElBQUk7U0FDZixDQUFDO1FBQ0YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO0lBQ3hCLENBQUM7O3VIQW5RVSx5QkFBeUI7MkdBQXpCLHlCQUF5Qiw2REN2QnRDLG9qUkFvSk07NEZEN0hPLHlCQUF5QjtrQkFMckMsU0FBUzsrQkFDRSx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgVmlld0NoaWxkLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbi8vIGltcG9ydCB7IFJlcXVlc3RPcHRpb25zIH0gZnJvbSAnQGFuZ3VsYXIvaHR0cCc7XHJcbmltcG9ydCB7IEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBSb3V0ZXIsIEFjdGl2YXRlZFJvdXRlLCBQYXJhbXMsIE5hdmlnYXRpb25FbmQgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBOZ1NlbGVjdE1vZHVsZSB9IGZyb20gJ0BuZy1zZWxlY3Qvbmctc2VsZWN0JztcclxuLy8gaW1wb3J0IHsgU2VsZWN0TW9kdWxlIH0gZnJvbSAnbmctc2VsZWN0L3B1YmxpY19hcGknOyBcclxuXHJcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbi8vIGltcG9ydCB7IEZsYXNoTWVzc2FnZXNTZXJ2aWNlIH0gZnJvbSAnYW5ndWxhcjItZmxhc2gtbWVzc2FnZXMnO1xyXG5pbXBvcnQgeyBDb29raWUgfSBmcm9tICduZzItY29va2llcy9uZzItY29va2llcyc7XHJcbi8vIGltcG9ydCB7IE5nNExvYWRpbmdTcGlubmVyU2VydmljZSB9IGZyb20gJ25nNC1sb2FkaW5nLXNwaW5uZXInO1xyXG5pbXBvcnQgeyBTdG9ja1NlcnZpY2VTZXJ2aWNlIH0gZnJvbSAnLi4vc3RvY2stc2VydmljZS9zdG9jay1zZXJ2aWNlLnNlcnZpY2UnXHJcbmltcG9ydCB7IFN5c3RlbVNlcnZpY2VTZXJ2aWNlIH0gZnJvbSAnLi4vc3lzdGVtLW1vZHVsZS9zeXN0ZW0tc2VydmljZS9zeXN0ZW0tc2VydmljZS5zZXJ2aWNlJztcclxuLy8gaW1wb3J0IHsgUGRmU2VydmljZVNlcnZpY2UgfSBmcm9tICcuLi9nbG9ibGUvcGRmLXNlcnZpY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IENvbW1hblNlcnZpY2VTZXJ2aWNlIH0gZnJvbSAnLi4vY29tbWFuLXNlcnZpY2UvY29tbWFuLXNlcnZpY2Uuc2VydmljZSc7XHJcbi8vIGltcG9ydCB7IEFzeW5jTG9jYWxTdG9yYWdlIH0gZnJvbSAnYXN5bmNfaG9va3MnO1xyXG5pbXBvcnQgeyBkb2N1bWVudCB9IGZyb20gJ25neC1ib290c3RyYXAnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtd2Vic2VhcmNoLWhpc3RvcnknLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi93ZWJzZWFyY2gtaGlzdG9yeS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vd2Vic2VhcmNoLWhpc3RvcnkuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBXZWJzZWFyY2hIaXN0b3J5Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgIC8vIHByaXZhdGUgZmxhc2hNZXNzYWdlc1NlcnZpY2U6IEZsYXNoTWVzc2FnZXNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBzczogU3RvY2tTZXJ2aWNlU2VydmljZSxcclxuICAgIC8vIHByaXZhdGUgc3Bpbm5lclNlcnZpY2U6IE5nNExvYWRpbmdTcGlubmVyU2VydmljZSxcclxuICAgIHByaXZhdGUgc3lzUzogU3lzdGVtU2VydmljZVNlcnZpY2UsXHJcbiAgICAvLyBwcml2YXRlIHBzOiBQZGZTZXJ2aWNlU2VydmljZSxcclxuICAgIHByaXZhdGUgY3M6IENvbW1hblNlcnZpY2VTZXJ2aWNlXHJcbiAgKSB7IH1cclxuICBjRHQ7XHJcbiAgY1VybDtcclxuICBoZWFkZXI7XHJcbiAgcGFnZURlZmluYXRpb247XHJcbiAgcmVzdWx0VmlldyA9IFtdO1xyXG4gIHJlc3VsdFZpZXdEdGw7XHJcbiAgc2VhcmNoUmVzdWx0RHRsTGlzdCA9IFtdO1xyXG4gIGlzT3BlbiA9IHRydWU7XHJcbiAgaWNvbiA9ICdmYSBmYS1kZWRlbnQnO1xyXG4gIHNob3dhcnI7XHJcbiAgb3JkZXIgPSAnJztcclxuICByZXZlcnNlID0gdHJ1ZTtcclxuICBwYWdlU2l6ZSA9IDEwO1xyXG4gIHAgPSAxO1xyXG4gIHBva2V5ID0gJyc7XHJcbiAgc2VhcmNoRjtcclxuICBjdXJJbmR4O1xyXG4gIGJ1eWVyTGlzdCA9IFtdO1xyXG4gIGxvdnMgPSBbXTtcclxuICBzcWxBcnJheSA9IHt9O1xyXG4gIG5vRGF0YSA9IHRydWU7XHJcbiAgc291cmNlVmFsO1xyXG4gIHNvdXJjZUxpc3Q7XHJcbiAgc3RvY2tfaWRuO1xyXG5cclxuICByZXN1bHRsZW5ndGggPSAwO1xyXG4gIHNjcm9sbERpc3RhbmNlID0gMTtcclxuICBzY3JvbGxVcERpc3RhbmNlID0gMjtcclxuICBzdGFydEluZGV4ID0gMDtcclxuICBlbmRJbmRleCA9IDMwO1xyXG4gIGxvYWRSZXN1bHQgPSBbXTtcclxuICBzZXRPcmRlcih2YWx1ZTogc3RyaW5nLCBpKSB7XHJcbiAgICB0aGlzLnNob3dhcnIgPSBpO1xyXG4gICAgaWYgKHRoaXMub3JkZXIgPT09IHZhbHVlKSB7XHJcbiAgICAgIHRoaXMucmV2ZXJzZSA9ICF0aGlzLnJldmVyc2U7XHJcbiAgICB9XHJcbiAgICB0aGlzLm9yZGVyID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBvblBhZ2VTaXplQ2hhbmdlKHApIHtcclxuICAgIGlmIChwID09ICdBbGwnKSB7XHJcbiAgICAgIHRoaXMucGFnZVNpemUgPSB0aGlzLnNlYXJjaFJlc3VsdER0bExpc3QubGVuZ3RoO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5wYWdlU2l6ZSA9IHA7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldExvdkxpc3QodGJsRiwgcGFnZV9pdGVtX2lkbikge1xyXG4gICAgLy8gdGhpcy5zcGlubmVyU2VydmljZS5zaG93KCk7XHJcbiAgICBsZXQgcmVxT2JqID0ge307XHJcbiAgICByZXFPYmpbJ3BhZ2VfaXRlbV9pZG4nXSA9IHBhZ2VfaXRlbV9pZG47XHJcbiAgICB0aGlzLmhlYWRlclsnbWV0aG9kJ10gPSAnZ2V0RGF0YUJ5SXRlbUlkbic7XHJcbiAgICAvLyBsZXQgb3B0aW9ucyA9IG5ldyBSZXF1ZXN0T3B0aW9ucyh7IGhlYWRlcnM6IHRoaXMuaGVhZGVyIH0pO1xyXG4gICAgbGV0IG9wdGlvbnMgPSB7IGhlYWRlcnM6IHRoaXMuaGVhZGVyIH07XHJcbiAgICB0aGlzLnN5c1MuZ2V0RGF0YShyZXFPYmosIG9wdGlvbnMpLnRoZW4oKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PSAnU1VDQ0VTUycpIHtcclxuICAgICAgICB0aGlzLmxvdnMgPSByZXNwb25zZS5rdjtcclxuICAgICAgICB0aGlzLnNxbEFycmF5W3RibEZdID0gdGhpcy5sb3ZzO1xyXG4gICAgICAgIC8vIHRoaXMuc3Bpbm5lclNlcnZpY2UuaGlkZSgpO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKHRoaXMubG92cyk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2codGJsRiwgdGhpcy5zcWxBcnJheSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gdGhpcy5zcGlubmVyU2VydmljZS5oaWRlKCk7XHJcbiAgICAgICAgLy8gdGhpcy5mbGFzaE1lc3NhZ2VzU2VydmljZS5zaG93KHJlc3BvbnNlLm1lc3NhZ2UsIHsgY3NzQ2xhc3M6ICdhbGVydC1kYW5nZXInLCB0aW1lb3V0OiAzMDAwIH0pO1xyXG4gICAgICB9XHJcbiAgICB9KS5jYXRjaCgoZXJyOiBhbnkpID0+IHtcclxuICAgICAgLy8gdGhpcy5zcGlubmVyU2VydmljZS5oaWRlKCk7XHJcbiAgICAgIC8vIHRoaXMuZmxhc2hNZXNzYWdlc1NlcnZpY2Uuc2hvdyhlcnIubWVzc2FnZSwgeyBjc3NDbGFzczogJ2FsZXJ0LWRhbmdlcicsIHRpbWVvdXQ6IDMwMDAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgbG9hZEJ1eWVyKHNlYXJjaFRlcm0pIHtcclxuICAgIC8vIHRoaXMuc3Bpbm5lclNlcnZpY2Uuc2hvdygpO1xyXG4gICAgbGV0IHJlcU9iaiA9IHt9O1xyXG4gICAgcmVxT2JqWydsaWtlU3RyJ10gPSBzZWFyY2hUZXJtO1xyXG4gICAgdGhpcy5oZWFkZXJbJ21ldGhvZCddID0gJ2xvYWRCdXllcic7XHJcbiAgICAvLyBsZXQgb3B0aW9ucyA9IG5ldyBSZXF1ZXN0T3B0aW9ucyh7IGhlYWRlcnM6IHRoaXMuaGVhZGVyIH0pO1xyXG4gICAgbGV0IG9wdGlvbnMgPSB7IGhlYWRlcnM6IHRoaXMuaGVhZGVyIH07XHJcbiAgICB0aGlzLnNzLmxvYWQocmVxT2JqLCBvcHRpb25zLCAnbWFya2V0aW5nL3NlYXJjaCcpLnRoZW4oKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PSAnU1VDQ0VTUycpIHtcclxuICAgICAgICBsZXQgcmVzdWx0ID0gcmVzcG9uc2UucmVzdWx0O1xyXG4gICAgICAgIHRoaXMuYnV5ZXJMaXN0ID0gcmVzdWx0LmJ1eWVyTGlzdC5tYXAob3B0aW9uID0+ICh7XHJcbiAgICAgICAgICB2YWx1ZTogb3B0aW9uLmssXHJcbiAgICAgICAgICBsYWJlbDogb3B0aW9uLnZcclxuICAgICAgICB9KSk7XHJcbiAgICAgICAgLy8gdGhpcy5zcGlubmVyU2VydmljZS5oaWRlKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gdGhpcy5zcGlubmVyU2VydmljZS5oaWRlKCk7XHJcbiAgICAgICAgLy8gdGhpcy5mbGFzaE1lc3NhZ2VzU2VydmljZS5zaG93KHJlc3BvbnNlLm1lc3NhZ2UsIHsgY3NzQ2xhc3M6ICdhbGVydC1kYW5nZXInLCB0aW1lb3V0OiAzMDAwIH0pO1xyXG4gICAgICB9XHJcbiAgICB9KS5jYXRjaCgoZXJyOiBhbnkpID0+IHtcclxuICAgICAgLy8gdGhpcy5zcGlubmVyU2VydmljZS5oaWRlKCk7XHJcbiAgICAgIC8vIHRoaXMuZmxhc2hNZXNzYWdlc1NlcnZpY2Uuc2hvdyhlcnIubWVzc2FnZSwgeyBjc3NDbGFzczogJ2FsZXJ0LWRhbmdlcicsIHRpbWVvdXQ6IDMwMDAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgbG9hZEZybUZpZWxkcygpIHtcclxuICAgIC8vIHRoaXMuc3Bpbm5lclNlcnZpY2Uuc2hvdygpO1xyXG4gICAgbGV0IHJlcU9iaiA9IHt9O1xyXG4gICAgcmVxT2JqWydmb3JtTm1lJ10gPSB0aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtc1snZnJtbm1lJ107Ly8nc2VhcmNoRHRsRHNjckZvcm0nO1xyXG4gICAgcmVxT2JqWydyZXF1ZXN0U3JjJ10gPSB0aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtc1snc3JjJ107Ly8gJ29ubGluZSc7XHJcbiAgICAvLyBpZiAodGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXNbJ3NyYyddICE9IG51bGwgJiYgdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXNbJ3NyYyddICE9IHVuZGVmaW5lZCAmJiB0aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtc1snc3JjJ10gIT0gXCJcIikge1xyXG4gICAgLy8gICByZXFPYmpbJ3JlcXVlc3RTcmMnXSA9J2V6JzsvLyBbJ3FzJywgJ3FzJ107XHJcbiAgICAvLyB9XHJcbiAgICAvLyBlbHNlIHtcclxuICAgIC8vICAgcmVxT2JqWydyZXF1ZXN0U3JjJ10gPSAnb25saW5lJztcclxuICAgIC8vIH1cclxuICAgIHRoaXMuaGVhZGVyWydtZXRob2QnXSA9ICdnZXRTZWFyY2hEZXRhaWxzJztcclxuICAgIC8vIGNvbnNvbGUubG9nKHJlcU9iaik7XHJcbiAgICAvLyBsZXQgb3B0aW9ucyA9IG5ldyBSZXF1ZXN0T3B0aW9ucyh7IGhlYWRlcnM6IHRoaXMuaGVhZGVyIH0pO1xyXG4gICAgbGV0IG9wdGlvbnMgPSB7IGhlYWRlcnM6IHRoaXMuaGVhZGVyIH07XHJcbiAgICB0aGlzLnNzLmxvYWQocmVxT2JqLCBvcHRpb25zLCAnbWFya2V0aW5nL3NlYXJjaCcpLnRoZW4oKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PSAnU1VDQ0VTUycpIHtcclxuICAgICAgICAvLyAgdGhpcy5pc09wZW4gPSB0cnVlO1xyXG4gICAgICAgIGxldCByZXN1bHQgPSByZXNwb25zZS5yZXN1bHQ7XHJcbiAgICAgICAgdGhpcy5wYWdlRGVmaW5hdGlvbiA9IHJlc3VsdC5wYWdlRGVmaW5hdGlvbjtcclxuICAgICAgICB0aGlzLnNvdXJjZUxpc3QgPSByZXN1bHQuc291cmNlTGlzdDtcclxuICAgICAgICB0aGlzLnBhZ2VEZWZpbmF0aW9uLmZvcm1fZmllbGQuZm9yRWFjaChlbGVtZW50ID0+IHtcclxuICAgICAgICAgIGlmIChlbGVtZW50LmZvcm1fZmllbGRfdHlwID09ICdzJykge1xyXG4gICAgICAgICAgICB0aGlzLmdldExvdkxpc3QoZWxlbWVudC5mb3JtX2ZpZWxkLCBlbGVtZW50LnBhZ2VfaXRlbV9pZG4pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIC8vIHRoaXMuc3Bpbm5lclNlcnZpY2UuaGlkZSgpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIC8vIHRoaXMuc3Bpbm5lclNlcnZpY2UuaGlkZSgpO1xyXG4gICAgICAgIC8vIHRoaXMuZmxhc2hNZXNzYWdlc1NlcnZpY2Uuc2hvdyhyZXNwb25zZS5tZXNzYWdlLCB7IGNzc0NsYXNzOiAnYWxlcnQtZGFuZ2VyJywgdGltZW91dDogMzAwMCB9KTtcclxuICAgICAgfVxyXG4gICAgfSkuY2F0Y2goKGVycjogYW55KSA9PiB7XHJcbiAgICAgIC8vIHRoaXMuc3Bpbm5lclNlcnZpY2UuaGlkZSgpO1xyXG4gICAgICAvLyB0aGlzLmZsYXNoTWVzc2FnZXNTZXJ2aWNlLnNob3coZXJyLm1lc3NhZ2UsIHsgY3NzQ2xhc3M6ICdhbGVydC1kYW5nZXInLCB0aW1lb3V0OiAzMDAwIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIG9wZW5Ub2coKSB7XHJcbiAgICB0aGlzLmlzT3BlbiA9ICF0aGlzLmlzT3BlbjtcclxuICAgIGlmICh0aGlzLmlzT3BlbiA9PSB0cnVlKSB7XHJcbiAgICAgIHRoaXMuaWNvbiA9ICdmYSBmYS1kZWRlbnQnO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5pY29uID0gJ2ZhIGZhLWluZGVudCc7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGV4cG9ydFRvQ1NWKCkge1xyXG4gICAgbGV0IG1vZGlmaWVkT2JqQXJyID0gdGhpcy5jcy5tb2RpZnlEYXRhQnlIZWFkZXIodGhpcy5zZWFyY2hSZXN1bHREdGxMaXN0LCB0aGlzLnJlc3VsdFZpZXcsIHRoaXMucmVzdWx0Vmlld0R0bCk7XHJcbiAgICB0aGlzLmNzLkNTVkNvbnZlcnRvcihtb2RpZmllZE9iakFyciwgXCJXZWJfU2VhcmNoX0hpc3RvcnlcIiwgdHJ1ZSlcclxuICB9XHJcbiAgbG9hZFJlc3VsdHMoZm9ybVZhbCkge1xyXG4gICAgdGhpcy5sb2FkUmVzdWx0ID0gW107XHJcbiAgICAvLyB0aGlzLnN0YXJ0SW5kZXggPSAwO1xyXG4gICAgLy8gdGhpcy5lbmRJbmRleCA9IDMwO1xyXG4gICAgLy8gdGhpcy5zcGlubmVyU2VydmljZS5zaG93KCk7XHJcbiAgICBsZXQgcmVxT2JqID0ge307XHJcbiAgICByZXFPYmpbJ2Zvcm1ObWUnXSA9IHRoaXMucm91dGUuc25hcHNob3QucGFyYW1zWydmcm1ubWUnXTsvLydzZWFyY2hEdGxEc2NyRm9ybSc7XHJcbiAgICBpZiAoZm9ybVZhbCAhPSBudWxsKSB7XHJcbiAgICAgIC8vcmVxT2JqWydmb3JtTm1lJ10gPSAnc2VhcmNoRHRsRHNjckZvcm0nO1xyXG4gICAgICByZXFPYmpbJ2VtcElkbkxpc3QnXSA9IGZvcm1WYWwuZW1wbG95ZWUgIT0gbnVsbCA/IFtmb3JtVmFsLmVtcGxveWVlXSA6IFtdO1xyXG4gICAgICByZXFPYmpbJ2J1eWVySWRuTGlzdCddID0gZm9ybVZhbC5idXllciAhPSBudWxsID8gW2Zvcm1WYWwuYnV5ZXJdIDogW107XHJcbiAgICAgIHJlcU9ialsnZGF0ZUZyb20nXSA9IGZvcm1WYWwuZnJvbURhdGUgIT0gbnVsbCA/IHRoaXMuY3MuZm9ybWF0RGF0ZShmb3JtVmFsLmZyb21EYXRlKSA6ICcnO1xyXG4gICAgICByZXFPYmpbJ2RhdGVUbyddID0gZm9ybVZhbC50b0RhdGUgIT0gbnVsbCA/IHRoaXMuY3MuZm9ybWF0RGF0ZShmb3JtVmFsLnRvRGF0ZSkgOiAnJztcclxuICAgIH1cclxuICAgIC8vIGlmICh0aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtc1snc3JjJ10gIT0gbnVsbCAmJiB0aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtc1snc3JjJ10gIT0gdW5kZWZpbmVkICYmIHRoaXMucm91dGUuc25hcHNob3QucGFyYW1zWydzcmMnXSAhPSBcIlwiKSB7XHJcbiAgICAvLyAgIHJlcU9ialsncmVxdWVzdFNyYyddID0gJ2V6JzsvL1sncXMnLCAncXMnXTtcclxuICAgIC8vIH1cclxuICAgIC8vIGVsc2Uge1xyXG4gICAgLy8gICByZXFPYmpbJ3JlcXVlc3RTcmMnXSA9ICdvbmxpbmUnO1xyXG4gICAgLy8gfVxyXG4gICAgcmVxT2JqWydyZXF1ZXN0U3JjJ10gPSB0aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtc1snc3JjJ107XHJcbiAgICB0aGlzLmhlYWRlclsnbWV0aG9kJ10gPSAnZ2V0U2VhcmNoRGV0YWlscyc7XHJcbiAgICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeShyZXFPYmopKTtcclxuICAgIC8vIGxldCBvcHRpb25zID0gbmV3IFJlcXVlc3RPcHRpb25zKHsgaGVhZGVyczogdGhpcy5oZWFkZXIgfSk7XHJcbiAgICBsZXQgb3B0aW9ucyA9IHsgaGVhZGVyczogdGhpcy5oZWFkZXIgfTtcclxuICAgIHRoaXMuc3MubG9hZChyZXFPYmosIG9wdGlvbnMsICdtYXJrZXRpbmcvc2VhcmNoJykudGhlbigocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09ICdTVUNDRVNTJykge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKHJlc3BvbnNlKTtcclxuICAgICAgICB0aGlzLmlzT3BlbiA9IGZhbHNlO1xyXG4gICAgICAgIGxldCByZXN1bHQgPSByZXNwb25zZS5yZXN1bHQ7XHJcbiAgICAgICAgaWYgKHJlc3VsdCAhPSB1bmRlZmluZWQgJiYgcmVzdWx0ICE9IG51bGwpIHtcclxuICAgICAgICAgIHRoaXMubm9EYXRhID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnBhZ2VEZWZpbmF0aW9uID0gcmVzdWx0LnBhZ2VEZWZpbmF0aW9uO1xyXG4gICAgICAgICAgdGhpcy5yZXN1bHRWaWV3ID0gcmVzdWx0LnJlc3VsdFZpZXcgfHwgW107XHJcbiAgICAgICAgICB0aGlzLnJlc3VsdFZpZXdEdGwgPSByZXN1bHQucmVzdWx0Vmlld0R0bCB8fCB7fTtcclxuICAgICAgICAgIHRoaXMuc2VhcmNoUmVzdWx0RHRsTGlzdCA9IHJlc3VsdC5zZWFyY2hSZXN1bHREdGxMaXN0IHx8W107XHJcblxyXG4gICAgICAgICAgdGhpcy5yZXN1bHRsZW5ndGggPSB0aGlzLnNlYXJjaFJlc3VsdER0bExpc3QubGVuZ3RoO1xyXG5cclxuICAgICAgICAgIC8vIGlmICh0aGlzLmVuZEluZGV4ID4gdGhpcy5yZXN1bHRsZW5ndGgpXHJcbiAgICAgICAgICAgIC8vIHRoaXMuZW5kSW5kZXggPSB0aGlzLnJlc3VsdGxlbmd0aFxyXG4gICAgICAgICAgLy8gdGhpcy5hZGRJdGVtcygpO1xyXG4gICAgICAgICAgdGhpcy5sb2FkUmVzdWx0ID0gdGhpcy5zZWFyY2hSZXN1bHREdGxMaXN0O1xyXG4gICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJ3cmFwXCIpLmFkZEV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICB2YXIgdHJhbnNsYXRlID0gXCJ0cmFuc2xhdGUoMCxcIiArIHRoaXMuc2Nyb2xsVG9wICsgXCJweClcIjtcclxuICAgICAgICAgICAgdGhpcy5xdWVyeVNlbGVjdG9yKFwidGhlYWRcIikuc3R5bGUudHJhbnNmb3JtID0gdHJhbnNsYXRlO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB0aGlzLnNlYXJjaEYgPSB0aGlzLnNvdXJjZVZhbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLm5vRGF0YSA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLmlzT3BlbiA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIHRoaXMuc3Bpbm5lclNlcnZpY2UuaGlkZSgpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIC8vIHRoaXMuc3Bpbm5lclNlcnZpY2UuaGlkZSgpO1xyXG4gICAgICAgIC8vIHRoaXMuZmxhc2hNZXNzYWdlc1NlcnZpY2Uuc2hvdyhyZXNwb25zZS5tZXNzYWdlLCB7IGNzc0NsYXNzOiAnYWxlcnQtZGFuZ2VyJywgdGltZW91dDogMzAwMCB9KTtcclxuICAgICAgfVxyXG4gICAgfSkuY2F0Y2goKGVycjogYW55KSA9PiB7XHJcbiAgICAgIC8vIHRoaXMuc3Bpbm5lclNlcnZpY2UuaGlkZSgpO1xyXG4gICAgICAvLyB0aGlzLmZsYXNoTWVzc2FnZXNTZXJ2aWNlLnNob3coZXJyLm1lc3NhZ2UsIHsgY3NzQ2xhc3M6ICdhbGVydC1kYW5nZXInLCB0aW1lb3V0OiAzMDAwIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy8gb25TY3JvbGxEb3duKCkge1xyXG4gIC8vICAgaWYgKHRoaXMuZW5kSW5kZXggPD0gdGhpcy5yZXN1bHRsZW5ndGgpXHJcbiAgLy8gICAgIHRoaXMuYWRkSXRlbXMoKVxyXG4gIC8vICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJ3cmFwXCIpLmFkZEV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgZnVuY3Rpb24gKCkge1xyXG4gIC8vICAgICB2YXIgdHJhbnNsYXRlID0gXCJ0cmFuc2xhdGUoMCxcIiArIHRoaXMuc2Nyb2xsVG9wICsgXCJweClcIjtcclxuICAvLyAgICAgdGhpcy5xdWVyeVNlbGVjdG9yKFwidGhlYWRcIikuc3R5bGUudHJhbnNmb3JtID0gdHJhbnNsYXRlO1xyXG4gIC8vICAgfSk7XHJcbiAgLy8gfVxyXG5cclxuICAvLyBhZGRJdGVtcygpIHtcclxuICAvLyAgIGZvciAobGV0IGkgPSB0aGlzLnN0YXJ0SW5kZXg7IGkgPCB0aGlzLmVuZEluZGV4OyBpKyspIHtcclxuICAvLyAgICAgdGhpcy5sb2FkUmVzdWx0W2ldID0gdGhpcy5zZWFyY2hSZXN1bHREdGxMaXN0W2ldO1xyXG4gIC8vICAgfVxyXG4gIC8vICAgdGhpcy5zdGFydEluZGV4ID0gdGhpcy5lbmRJbmRleDtcclxuICAvLyAgIHRoaXMuZW5kSW5kZXggPSB0aGlzLmVuZEluZGV4ICsgMzA7XHJcbiAgLy8gICBpZiAodGhpcy5lbmRJbmRleCA+IHRoaXMucmVzdWx0bGVuZ3RoKSB7XHJcbiAgLy8gICAgIHRoaXMuZW5kSW5kZXggPSB0aGlzLnJlc3VsdGxlbmd0aDtcclxuICAvLyAgIH1cclxuICAvLyB9XHJcblxyXG4gIG9uU3VibWl0KGZvcm1WYWwpIHtcclxuICAgIHZhciB0ID0gT2JqZWN0LmtleXMoZm9ybVZhbC5mb3JtLmNvbnRyb2xzKS5mb3JFYWNoKGZpZWxkID0+IHtcclxuICAgICAgY29uc3QgY29udHJvbCA9IGZvcm1WYWwuZm9ybS5nZXQoZmllbGQpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmxvYWRSZXN1bHRzKGZvcm1WYWwudmFsdWUpO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIC8vIGxldCBtZGxrID0gSlNPTi5wYXJzZShBc3luY0xvY2FsU3RvcmFnZS5hcmd1bWVudHMoJ21kbEtleScpKTtcclxuICAgIGxldCBtZGxrIDtcclxuICAgIHRoaXMuY1VybCA9IHRoaXMucm91dGVyLnVybDtcclxuXHJcbiAgICB0aGlzLmhlYWRlciA9IHtcclxuICAgICAgJ2NsaWVudGtleSc6IENvb2tpZS5nZXQoJ19jaycpLFxyXG4gICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxyXG4gICAgICAnbW9kdWxla2V5JzogbWRsa1t0aGlzLmNVcmwuc3BsaXQoJy8nKVsxXV0sXHJcbiAgICAgICdsb2dpbmlkJzogQ29va2llLmdldCgnX2xvZ2lkJyksXHJcbiAgICAgICdzb3VyY2UnOiAncXMnXHJcbiAgICB9O1xyXG4gICAgdGhpcy5sb2FkUmVzdWx0cyhudWxsKTtcclxuICAgIHRoaXMubG9hZEZybUZpZWxkcygpO1xyXG4gICAgdGhpcy5jRHQgPSBuZXcgRGF0ZSgpO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIm10XCIgc3R5bGU9XCJiYWNrZ3JvdW5kOiAjZmZmO1wiPlxyXG4gIDxkaXYgY2xhc3M9XCJwYW5lbCBwYW5lbC1kZWZhdWx0XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicGFuZWwtaGVhZGluZ1wiPlxyXG4gICAgICA8aDMgY2xhc3M9XCJwYW5lbC10aXRsZVwiPnt7cGFnZURlZmluYXRpb24/LnRpdGxlfX1cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImYtMTJcIj4oe3tjRHQgfCBkYXRlOidtZWRpdW0nfX0pPC9zcGFuPlxyXG4gICAgICA8L2gzPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImNvbnRlbnQtZnJhbWVcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJpbm5lckRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiIHN0eWxlPVwicGFkZGluZzogMTBweDtcIj5cclxuICAgICAgICA8Zm9ybSBjbGFzcz1cImZvcm0taW5saW5lXCIgI2Y9XCJuZ0Zvcm1cIiAobmdTdWJtaXQpPVwib25TdWJtaXQoZilcIiBuYW1lPVwiYXBwRm9ybVwiPlxyXG4gICAgICAgICAgPGRpdiBbbmdDbGFzc109XCJpc09wZW4gPT0gdHJ1ZSA/ICdjb2wtbWQtNCcgOiAnaGlkZGVuJ1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiICpuZ0Zvcj1cImxldCBmbCBvZiBwYWdlRGVmaW5hdGlvbj8uZm9ybV9maWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgdy0xMDBcIiAqbmdJZj1cImZsPy5mb3JtX2ZpZWxkX3R5cCA9PSAnc2InXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImNvbC1tZC01IGNvbnRyb2wtbGFiZWxcIiBzdHlsZT1cInBhZGRpbmctbGVmdDogMnB4O1wiPnt7Zmw/LmZvcm1fZmllbGRfdGl0bGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtN1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cCB3LTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPG5nLXNlbGVjdCBzdHlsZT1cInotaW5kZXg6IDM7XCIgcGxhY2Vob2xkZXI9XCJTZWxlY3QgQnV5ZXJzXCIgW29wdGlvbnNdPVwiYnV5ZXJMaXN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmbC5kZWZhdWx0X3ZhbHVlXCIgbmFtZT1cImJ1eWVyXCIgKGZpbHRlcklucHV0Q2hhbmdlZCk9XCJsb2FkQnV5ZXIoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9uZy1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCB3LTEwMFwiICpuZ0lmPVwiZmw/LmZvcm1fZmllbGRfdHlwID09ICdzJ1wiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjb2wtbWQtNSBjb250cm9sLWxhYmVsXCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDJweDtcIj57e2ZsPy5mb3JtX2ZpZWxkX3RpdGxlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAgdy0xMDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBuYW1lPVwie3tmbD8uZm9ybV9maWVsZH19XCIgW3ZhbHVlXT1cImZsPy5kZWZhdWx0X3ZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmbC5kZWZhdWx0X3ZhbHVlXCIgI2xJbnB1dD1cIm5nTW9kZWxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgbG92IG9mIHNxbEFycmF5W2ZsLmZvcm1fZmllbGRdXCIgdmFsdWU9XCJ7e2xvdi5rfX1cIj57e2xvdi52fX08L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgdy0xMDBcIiAqbmdJZj1cImZsPy5mb3JtX2ZpZWxkX3R5cCA9PSAndCcgJiYgZmw/LmR0YV90eXA9PSdkJ1wiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjb2wtbWQtNSBjb250cm9sLWxhYmVsXCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDJweDtcIj57e2ZsPy5mb3JtX2ZpZWxkX3RpdGxlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAgdy0xMDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBuYW1lPVwie3tmbD8uZm9ybV9maWVsZH19XCIgWyhuZ01vZGVsKV09XCJmbC5kZWZhdWx0X3ZhbHVlXCIgb25mb2N1cz1cIih0aGlzLnR5cGU9J2RhdGUnKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uYmx1cj1cIih0aGlzLnR5cGU9J3RleHQnKVwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgcGxhY2Vob2xkZXI9XCJkZC9tbS95eXl5XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCB3LTEwMFwiICpuZ0lmPVwic291cmNlTGlzdCAhPSBudWxsXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjb2wtbWQtNSBjb250cm9sLWxhYmVsXCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDJweDtcIj5Tb3VyY2U8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC03XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cCB3LTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBuYW1lPVwic291cmNlXCIgWyhuZ01vZGVsKV09XCJzb3VyY2VWYWxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBzb3VyY2VMaXN0XCIgdmFsdWU9XCJ7e29wdGlvbi5rfX1cIj57e29wdGlvbi52fX08L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Zvcm0+XHJcbiAgICAgICAgPGRpdiBbbmdDbGFzc109XCJpc09wZW4gPT0gZmFsc2UgPyAnY29sLW1kLTEyIGN1c3RDbHMnIDogJ2NvbC1tZC04IGN1c3RDbHMnXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCIgKm5nSWY9XCJzZWFyY2hSZXN1bHREdGxMaXN0Lmxlbmd0aD4wXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tNlwiPlxyXG4gICAgICAgICAgICAgIDxmb3JtIGNsYXNzPVwiZm9ybS1pbmxpbmUgcHVsbC1sZWZ0XCI+XHJcbiAgICAgICAgICAgICAgPC9mb3JtPlxyXG4gICAgICAgICAgICAgIDxmb3JtIGNsYXNzPVwiZm9ybS1pbmxpbmUgcHVsbC1sZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZGRsUGFnZXNpemVcIj5QYWdlIFNpemUgJm5ic3A7ICZuYnNwOzwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBuYW1lPVwicGFnZVNpemVcIiBbKG5nTW9kZWwpXT1cInBhZ2VTaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIm9uUGFnZVNpemVDaGFuZ2UocGFnZVNpemUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIkFsbFwiPkFsbDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIxMFwiPjEwPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjI1XCI+MjU8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiNTBcIj41MDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIxMDBcIj4xMDA8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Zvcm0+XHJcblxyXG4gICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJzZWFyY2hSZXN1bHREdGxMaXN0Lmxlbmd0aD4wXCIgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHRcIlxyXG4gICAgICAgICAgICAgICAgc3R5bGU9XCJwYWRkaW5nOiA0cHggMTVweCA0cHggMjBweDttYXJnaW4tbGVmdDogMTBweDtcIiBkYXRhLXRvZ2dsZT1cInRvb2x0aXBcIiBkYXRhLXBsYWNlbWVudD1cInJpZ2h0XCJcclxuICAgICAgICAgICAgICAgIHRpdGxlPVwiRmlsdGVyIHJlc3VsdHNcIiAoY2xpY2spPVwib3BlblRvZygpO1wiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ7e2ljb259fVwiIHN0eWxlPVwiY29sb3I6IzNiNTk5ODtcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCIhbm9EYXRhXCIgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHRcIiBzdHlsZT1cInBhZGRpbmc6IDRweCAxNXB4IDRweCAyMHB4O21hcmdpbi1sZWZ0OiAxMHB4O1wiXHJcbiAgICAgICAgICAgICAgICBkYXRhLXRvZ2dsZT1cInRvb2x0aXBcIiBkYXRhLXBsYWNlbWVudD1cInJpZ2h0XCIgdGl0bGU9XCJSZWZyZXNoXCIgKGNsaWNrKT1cIm5nT25Jbml0KCk7XCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZhIGZhLXJlZnJlc2hcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cIiFub0RhdGFcIiBjbGFzcz1cImJ0biBidG4tZGVmYXVsdFwiIHN0eWxlPVwicGFkZGluZzogNHB4IDE1cHggNHB4IDIwcHg7bWFyZ2luLWxlZnQ6IDEwcHg7XCJcclxuICAgICAgICAgICAgICAgIGRhdGEtdG9nZ2xlPVwidG9vbHRpcFwiIGRhdGEtcGxhY2VtZW50PVwicmlnaHRcIiB0aXRsZT1cIkRvd25sb2FkIEV4Y2VsXCIgKGNsaWNrKT1cImV4cG9ydFRvQ1NWKCk7XCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZhIGZhLWZpbGUtZXhjZWwtb1wiIHN0eWxlPVwiY29sb3I6Z3JlZW47XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhbm9EYXRhXCIgY2xhc3M9XCJjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICAgIDxmb3JtIGNsYXNzPVwiZm9ybS1pbmxpbmUgcHVsbC1yaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImV4YW1wbGVJbnB1dE5hbWUyXCI+U2VhcmNoICZuYnNwOyZuYnNwOzwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgaWQ9XCJleGFtcGxlSW5wdXROYW1lMlwiIG5hbWU9XCJzY2h0eHRcIiBbKG5nTW9kZWwpXT1cInNlYXJjaEZcIiAvPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9mb3JtPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBpZD1cIndyYXBcIiBzdHlsZT1cIm92ZXJmbG93OiBhdXRvO3dpZHRoOiAxMDAlO2hlaWdodDogY2FsYygxMDB2aCAtIDIxMHB4KTtcIj5cclxuICAgICAgICAgICAgPHRhYmxlIGNsYXNzPVwiZGlzcGxheVRhYmxlXCIgKm5nSWY9XCIhbm9EYXRhXCI+XHJcbiAgICAgICAgICAgICAgPHRoZWFkPlxyXG4gICAgICAgICAgICAgICAgPHRyIGNsYXNzPVwicG9zcmVsXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGhkciBvZiByZXN1bHRWaWV3IDtsZXQgaj1pbmRleDtcIj5cclxuICAgICAgICAgICAgICAgICAgICA8dGggKm5nSWY9XCJoZHIgIT0gJ3JlcXVlc3RfYXR0cicgJiYgaGRyICE9ICdyZXF1ZXN0X2F0dHJWYWwnXCIgbm93cmFwIChjbGljayk9XCJzZXRPcmRlcihoZHIsailcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIHt7cmVzdWx0Vmlld0R0bFtoZHJdfX1cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIFtoaWRkZW5dPVwicmV2ZXJzZVwiICpuZ0lmPVwic2hvd2FyciA9PT0galwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWFycm93LWRvd25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbaGlkZGVuXT1cIiFyZXZlcnNlXCIgKm5nSWY9XCJzaG93YXJyID09PSBqXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtYXJyb3ctdXBcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgIDwvdGhlYWQ+XHJcbiAgICAgICAgICAgICAgPHRib2R5IHN0eWxlPVwiaGVpZ2h0OjQwMHB4O292ZXJmbG93OmF1dG87XCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBwa3RkdGwgb2YgbG9hZFJlc3VsdCB8IHRhYmxlU2VhcmNoOnNlYXJjaEYgfCBvcmRlckJ5OiBvcmRlcjpyZXZlcnNlIHwgcGFnaW5hdGU6IHsgaXRlbXNQZXJQYWdlOiBwYWdlU2l6ZSwgY3VycmVudFBhZ2U6IHAgfTsgbGV0IHBrdGkgPSBpbmRleCA7dHJhY2tCeTpzdG9ja19pZG5cIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgIDx0ciBbbmdDbGFzc109XCJ7J2V2ZW4nOnBrdGklMj09MCwnb2RkJzpwa3RpJTI9PTF9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYXR0IG9mIHJlc3VsdFZpZXc7IGxldCBqID0gaW5kZXg7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGQgKm5nSWY9XCJhdHQgIT0gJ3JlcXVlc3RfYXR0cicgJiYgYXR0ICE9ICdyZXF1ZXN0X2F0dHJWYWwnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJtYXgtd2lkdGg6IDMwMHB4O3doaXRlLXNwYWNlOiBub3JtYWw7XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyd3b3JkLWJyZWFrJyA6IGF0dCA9PSAnZHNjcicgID8gJ2JyZWFrLXdvcmQnOiAnbm9ybWFsJywnd2hpdGUtc3BhY2UnOiBhdHQgIT0gJ2RzY3InPyAnbm93cmFwJzonbm9ybWFsJ31cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3twa3RkdGxbYXR0XX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDwvdGJvZHk+XHJcbiAgICAgICAgICAgIDwvdGFibGU+XHJcbiAgICAgICAgICAgIDxwICpuZ0lmPVwic2VhcmNoUmVzdWx0RHRsTGlzdC5sZW5ndGg9PTBcIiBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlclwiPjxiPiBObyBEYXRhIEZvdW5kICE8L2I+PC9wPlxyXG4gICAgICAgICAgICA8IS0tIFwibWF4LXdpZHRoOiAzMDBweDt3aGl0ZS1zcGFjZTogbm9ybWFsO3dvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7IC0tPlxyXG4gICAgICAgICAgICA8IS0tIDxwYWdpbmF0aW9uLWNvbnRyb2xzIChwYWdlQ2hhbmdlKT1cInAgPSAkZXZlbnRcIiAqbmdJZj1cInByb2Nlc3NEZXRhaWxzLmxlbmd0aD4wXCIgY2xhc3M9XCJwdWxsLXJpZ2h0XCI+PC9wYWdpbmF0aW9uLWNvbnRyb2xzPiAtLT5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJhY3Rpb25Gb290ZXJcIj5cclxuICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiYnRuIGJ0bi1zdWNjZXNzIGNCdG4gcHVsbC1sZWZ0XCIgYXBwQXBwTm9EYmxDbGljayAoY2xpY2spPVwib25TdWJtaXQoZilcIj5GZXRjaDwvYnV0dG9uPlxyXG4gICAgPHBhZ2luYXRpb24tY29udHJvbHMgc3R5bGU9XCJiYWNrZ3JvdW5kOiB3aGl0ZTtcIiAocGFnZUNoYW5nZSk9XCJwPSRldmVudFwiIGNsYXNzPVwicHVsbC1yaWdodFwiPjwvcGFnaW5hdGlvbi1jb250cm9scz5cclxuICA8L2Rpdj5cclxuPC9kaXY+Il19
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Public API Surface of ez-lib
|
|
3
|
+
*/
|
|
4
|
+
export * from './lib/ez-lib.service';
|
|
5
|
+
export * from './lib/ez-lib.component';
|
|
6
|
+
export * from './lib/ez-lib.module';
|
|
7
|
+
export * from './lib/auth/auth.guard';
|
|
8
|
+
export * from './lib/admin-service/admin-service.service';
|
|
9
|
+
export * from './lib/assort-service/assort-service.service';
|
|
10
|
+
export * from './lib/attribute-definition/attribute-definition.component';
|
|
11
|
+
export * from './lib/analysis-search/analysis-search.component';
|
|
12
|
+
export * from './lib/bi-service/bi.service';
|
|
13
|
+
export * from './lib/call-info/callinfo.component';
|
|
14
|
+
export * from './lib/comman-service/comman-service.service';
|
|
15
|
+
export * from './lib/comman-service/share-data-service.service';
|
|
16
|
+
export * from './lib/contact-service/contact-service.service';
|
|
17
|
+
export * from './lib/contact-search/contact-search.component';
|
|
18
|
+
export * from './lib/ezheader/header.component';
|
|
19
|
+
export * from './lib/file-upload/fileupload.component';
|
|
20
|
+
export * from './lib/file-upload-log/file-upload-log.component';
|
|
21
|
+
export * from './lib/fileupload-module/fileupload-dashboard/fileupload-dashboard.component';
|
|
22
|
+
export * from './lib/fileupload-module/fileupload.module';
|
|
23
|
+
export * from './lib/fileupload-module/fileupload-routing.module';
|
|
24
|
+
export * from './lib/footer/footer.component';
|
|
25
|
+
export * from './lib/globle/upload-service.service';
|
|
26
|
+
export * from './lib/globle/common-pdf.service';
|
|
27
|
+
export * from './lib/globle/globle-env.service';
|
|
28
|
+
export * from './lib/globle/memo-report.service';
|
|
29
|
+
// export * from './lib/globle/pdf-service.service';
|
|
30
|
+
export * from './lib/globle/shared-services.service';
|
|
31
|
+
export * from './lib/header/header.component';
|
|
32
|
+
export * from './lib/invalid/invalid.component';
|
|
33
|
+
export * from './lib/logout/logout.component';
|
|
34
|
+
export * from './lib/menu-right/menu-right.component';
|
|
35
|
+
export * from './lib/pipes/number-with-commas.pipe';
|
|
36
|
+
export * from './lib/pipes/order-by-pipe.pipe';
|
|
37
|
+
export * from './lib/pipes/selectedCount';
|
|
38
|
+
export * from './lib/pipes/sum.pipe';
|
|
39
|
+
export * from './lib/pricing-service/pricing.service';
|
|
40
|
+
export * from './lib/pkt-data/pkt-data.component';
|
|
41
|
+
export * from './lib/qa-analysis/qa-analysis.component';
|
|
42
|
+
export * from './lib/report-format/report-format.component';
|
|
43
|
+
export * from './lib/sessionend/session-end.guard';
|
|
44
|
+
export * from './lib/stock-service/lazyload.service';
|
|
45
|
+
export * from './lib/stock-service/stock-service.service';
|
|
46
|
+
export * from './lib/system-module/system/system.component';
|
|
47
|
+
export * from './lib/system-module/system-service/system-service.service';
|
|
48
|
+
export * from './lib/system-module/system-service/upload-file.service';
|
|
49
|
+
export * from './lib/system-module/subform/subform.component';
|
|
50
|
+
export * from './lib/utility/app-no-dbl-click.directive';
|
|
51
|
+
export * from './lib/utility/constants';
|
|
52
|
+
export * from './lib/utility/formate-num-field.pipe';
|
|
53
|
+
export * from './lib/utility/search-pipe.pipe';
|
|
54
|
+
export * from './lib/utility/table-search.pipe';
|
|
55
|
+
export * from './lib/utility/tranform.directive';
|
|
56
|
+
export * from './lib/utility/contact-table-search.pipe';
|
|
57
|
+
export * from './lib/utility/selective-preloading-strategy';
|
|
58
|
+
export * from './lib/websearch-history/websearch-history.component';
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2V6LWxpYi9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLHFCQUFxQixDQUFDO0FBRXBDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsMkRBQTJELENBQUM7QUFDMUUsY0FBYyxpREFBaUQsQ0FBQztBQUVoRSxjQUFjLDZCQUE2QixDQUFDO0FBRTVDLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYywrQ0FBK0MsQ0FBQztBQUU5RCxjQUFjLGlDQUFpQyxDQUFDO0FBRWhELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLDZFQUE2RSxDQUFDO0FBQzVGLGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLCtCQUErQixDQUFDO0FBRTlDLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsb0RBQW9EO0FBQ3BELGNBQWMsc0NBQXNDLENBQUM7QUFFckQsY0FBYywrQkFBK0IsQ0FBQztBQUU5QyxjQUFjLGlDQUFpQyxDQUFDO0FBRWhELGNBQWMsK0JBQStCLENBQUM7QUFFOUMsY0FBYyx1Q0FBdUMsQ0FBQztBQUV0RCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyxtQ0FBbUMsQ0FBQztBQUVsRCxjQUFjLHlDQUF5QyxDQUFDO0FBRXhELGNBQWMsNkNBQTZDLENBQUM7QUFFNUQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsMkNBQTJDLENBQUM7QUFHMUQsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLDJEQUEyRCxDQUFDO0FBQzFFLGNBQWMsd0RBQXdELENBQUM7QUFDdkUsY0FBYywrQ0FBK0MsQ0FBQztBQUU5RCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsNkNBQTZDLENBQUM7QUFFNUQsY0FBYyxxREFBcUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgZXotbGliXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvZXotbGliLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZXotbGliLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9lei1saWIubW9kdWxlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXV0aC9hdXRoLmd1YXJkJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FkbWluLXNlcnZpY2UvYWRtaW4tc2VydmljZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Fzc29ydC1zZXJ2aWNlL2Fzc29ydC1zZXJ2aWNlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXR0cmlidXRlLWRlZmluaXRpb24vYXR0cmlidXRlLWRlZmluaXRpb24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FuYWx5c2lzLXNlYXJjaC9hbmFseXNpcy1zZWFyY2guY29tcG9uZW50JztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvYmktc2VydmljZS9iaS5zZXJ2aWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvY2FsbC1pbmZvL2NhbGxpbmZvLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21tYW4tc2VydmljZS9jb21tYW4tc2VydmljZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbW1hbi1zZXJ2aWNlL3NoYXJlLWRhdGEtc2VydmljZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbnRhY3Qtc2VydmljZS9jb250YWN0LXNlcnZpY2Uuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb250YWN0LXNlYXJjaC9jb250YWN0LXNlYXJjaC5jb21wb25lbnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9lemhlYWRlci9oZWFkZXIuY29tcG9uZW50JztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvZmlsZS11cGxvYWQvZmlsZXVwbG9hZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmlsZS11cGxvYWQtbG9nL2ZpbGUtdXBsb2FkLWxvZy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmlsZXVwbG9hZC1tb2R1bGUvZmlsZXVwbG9hZC1kYXNoYm9hcmQvZmlsZXVwbG9hZC1kYXNoYm9hcmQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpbGV1cGxvYWQtbW9kdWxlL2ZpbGV1cGxvYWQubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpbGV1cGxvYWQtbW9kdWxlL2ZpbGV1cGxvYWQtcm91dGluZy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZm9vdGVyL2Zvb3Rlci5jb21wb25lbnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9nbG9ibGUvdXBsb2FkLXNlcnZpY2Uuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9nbG9ibGUvY29tbW9uLXBkZi5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2dsb2JsZS9nbG9ibGUtZW52LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZ2xvYmxlL21lbW8tcmVwb3J0LnNlcnZpY2UnO1xuLy8gZXhwb3J0ICogZnJvbSAnLi9saWIvZ2xvYmxlL3BkZi1zZXJ2aWNlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZ2xvYmxlL3NoYXJlZC1zZXJ2aWNlcy5zZXJ2aWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvaGVhZGVyL2hlYWRlci5jb21wb25lbnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbnZhbGlkL2ludmFsaWQuY29tcG9uZW50JztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvbG9nb3V0L2xvZ291dC5jb21wb25lbnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tZW51LXJpZ2h0L21lbnUtcmlnaHQuY29tcG9uZW50JztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvcGlwZXMvbnVtYmVyLXdpdGgtY29tbWFzLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcGlwZXMvb3JkZXItYnktcGlwZS5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BpcGVzL3NlbGVjdGVkQ291bnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcGlwZXMvc3VtLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcHJpY2luZy1zZXJ2aWNlL3ByaWNpbmcuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wa3QtZGF0YS9wa3QtZGF0YS5jb21wb25lbnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9xYS1hbmFseXNpcy9xYS1hbmFseXNpcy5jb21wb25lbnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9yZXBvcnQtZm9ybWF0L3JlcG9ydC1mb3JtYXQuY29tcG9uZW50JztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2Vzc2lvbmVuZC9zZXNzaW9uLWVuZC5ndWFyZCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zdG9jay1zZXJ2aWNlL2xhenlsb2FkLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc3RvY2stc2VydmljZS9zdG9jay1zZXJ2aWNlLnNlcnZpY2UnO1xuXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3N5c3RlbS1tb2R1bGUvc3lzdGVtL3N5c3RlbS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc3lzdGVtLW1vZHVsZS9zeXN0ZW0tc2VydmljZS9zeXN0ZW0tc2VydmljZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3N5c3RlbS1tb2R1bGUvc3lzdGVtLXNlcnZpY2UvdXBsb2FkLWZpbGUuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zeXN0ZW0tbW9kdWxlL3N1YmZvcm0vc3ViZm9ybS5jb21wb25lbnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlsaXR5L2FwcC1uby1kYmwtY2xpY2suZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxpdHkvY29uc3RhbnRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxpdHkvZm9ybWF0ZS1udW0tZmllbGQucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlsaXR5L3NlYXJjaC1waXBlLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXRpbGl0eS90YWJsZS1zZWFyY2gucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlsaXR5L3RyYW5mb3JtLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlsaXR5L2NvbnRhY3QtdGFibGUtc2VhcmNoLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXRpbGl0eS9zZWxlY3RpdmUtcHJlbG9hZGluZy1zdHJhdGVneSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3dlYnNlYXJjaC1oaXN0b3J5L3dlYnNlYXJjaC1oaXN0b3J5LmNvbXBvbmVudCc7XG5cblxuIl19
|