ezlibrary_v2 0.0.1
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/ezlibrary_v2.mjs +5 -0
- package/esm2020/lib/admin-service/admin-service.service.mjs +36 -0
- package/esm2020/lib/analysis-search/analysis-search.component.mjs +1083 -0
- package/esm2020/lib/assort-service/assort-service.service.mjs +31 -0
- package/esm2020/lib/attribute-definition/attribute-definition.component.mjs +231 -0
- package/esm2020/lib/auth/auth.guard.mjs +40 -0
- package/esm2020/lib/bi-service/bi.service.mjs +58 -0
- package/esm2020/lib/call-info/callinfo.component.mjs +126 -0
- package/esm2020/lib/comman-service/comman-service.service.mjs +679 -0
- package/esm2020/lib/comman-service/share-data-service.service.mjs +23 -0
- package/esm2020/lib/contact-search/contact-search.component.mjs +679 -0
- package/esm2020/lib/contact-service/contact-service.service.mjs +47 -0
- package/esm2020/lib/ezheader/header.component.mjs +383 -0
- package/esm2020/lib/ezlib.module.mjs +220 -0
- package/esm2020/lib/file-upload/fileupload.component.mjs +920 -0
- package/esm2020/lib/file-upload-log/file-upload-log.component.mjs +175 -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/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 +2800 -0
- package/esm2020/lib/globle/pdf-service.service.mjs +18848 -0
- package/esm2020/lib/globle/shared-services.service.mjs +27 -0
- package/esm2020/lib/globle/upload-service.service.mjs +69 -0
- package/esm2020/lib/header/header.component.mjs +179 -0
- package/esm2020/lib/invalid/invalid.component.mjs +71 -0
- package/esm2020/lib/logout/logout.component.mjs +107 -0
- package/esm2020/lib/menu-right/menu-right.component.mjs +252 -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 +16 -0
- package/esm2020/lib/pkt-data/pkt-data.component.mjs +1107 -0
- package/esm2020/lib/pricing-service/pricing.service.mjs +58 -0
- package/esm2020/lib/qa-analysis/qa-analysis.component.mjs +1035 -0
- package/esm2020/lib/report-format/report-format.component.mjs +400 -0
- package/esm2020/lib/sessionend/session-end.guard.mjs +28 -0
- package/esm2020/lib/stock-service/lazyload.service.mjs +21 -0
- package/esm2020/lib/stock-service/stock-service.service.mjs +62 -0
- package/esm2020/lib/system-module/subform/subform.component.mjs +2481 -0
- package/esm2020/lib/system-module/system/system.component.mjs +959 -0
- package/esm2020/lib/system-module/system-service/system-service.service.mjs +85 -0
- package/esm2020/lib/system-module/system-service/upload-file.service.mjs +86 -0
- package/esm2020/lib/utility/app-no-dbl-click.directive.mjs +23 -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 +57 -0
- package/ezlibrary_v2.d.ts +5 -0
- package/fesm2015/ezlibrary_v2.mjs +33543 -0
- package/fesm2015/ezlibrary_v2.mjs.map +1 -0
- package/fesm2020/ezlibrary_v2.mjs +33533 -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 +122 -0
- package/lib/assort-service/assort-service.service.d.ts +12 -0
- package/lib/attribute-definition/attribute-definition.component.d.ts +47 -0
- package/lib/auth/auth.guard.d.ts +16 -0
- package/lib/bi-service/bi.service.d.ts +20 -0
- package/lib/call-info/callinfo.component.d.ts +30 -0
- package/lib/comman-service/comman-service.service.d.ts +111 -0
- package/lib/comman-service/share-data-service.service.d.ts +10 -0
- package/lib/contact-search/contact-search.component.d.ts +115 -0
- package/lib/contact-service/contact-service.service.d.ts +15 -0
- package/lib/ezheader/header.component.d.ts +61 -0
- package/lib/ezlib.module.d.ts +47 -0
- package/lib/file-upload/fileupload.component.d.ts +131 -0
- package/lib/file-upload-log/file-upload-log.component.d.ts +53 -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/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/pdf-service.service.d.ts +459 -0
- package/lib/globle/shared-services.service.d.ts +12 -0
- package/lib/globle/upload-service.service.d.ts +20 -0
- package/lib/header/header.component.d.ts +45 -0
- package/lib/invalid/invalid.component.d.ts +12 -0
- package/lib/logout/logout.component.d.ts +21 -0
- package/lib/menu-right/menu-right.component.d.ts +47 -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 +189 -0
- package/lib/pricing-service/pricing.service.d.ts +20 -0
- package/lib/qa-analysis/qa-analysis.component.d.ts +99 -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 +19 -0
- package/lib/system-module/subform/subform.component.d.ts +227 -0
- package/lib/system-module/system/system.component.d.ts +113 -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 +62 -0
- package/package.json +48 -0
- package/public_api.d.ts +52 -0
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { HttpHeaders } from '@angular/common/http';
|
|
3
|
+
import { Router, ActivatedRoute } from '@angular/router';
|
|
4
|
+
import { ToastrService } from 'ngx-toastr';
|
|
5
|
+
import { Cookie } from 'ng2-cookies/ng2-cookies';
|
|
6
|
+
import { NgxSpinnerService } from "ngx-spinner";
|
|
7
|
+
import { StockServiceService } from '../stock-service/stock-service.service';
|
|
8
|
+
import { SystemServiceService } from '../system-module/system-service/system-service.service';
|
|
9
|
+
import { PdfServiceService } from '../globle/pdf-service.service';
|
|
10
|
+
import { CommanServiceService } from '../comman-service/comman-service.service';
|
|
11
|
+
import * as i0 from "@angular/core";
|
|
12
|
+
import * as i1 from "@angular/router";
|
|
13
|
+
import * as i2 from "ngx-toastr";
|
|
14
|
+
import * as i3 from "../stock-service/stock-service.service";
|
|
15
|
+
import * as i4 from "ngx-spinner";
|
|
16
|
+
import * as i5 from "../system-module/system-service/system-service.service";
|
|
17
|
+
import * as i6 from "../globle/pdf-service.service";
|
|
18
|
+
import * as i7 from "../comman-service/comman-service.service";
|
|
19
|
+
import * as i8 from "ng-select";
|
|
20
|
+
import * as i9 from "ngx-pagination";
|
|
21
|
+
import * as i10 from "@angular/forms";
|
|
22
|
+
import * as i11 from "@angular/common";
|
|
23
|
+
import * as i12 from "../utility/app-no-dbl-click.directive";
|
|
24
|
+
import * as i13 from "ngx-order-pipe";
|
|
25
|
+
import * as i14 from "../utility/table-search.pipe";
|
|
26
|
+
export class WebsearchHistoryComponent {
|
|
27
|
+
constructor(router, route, toastr, ss, spinnerService, sysS, ps, cs) {
|
|
28
|
+
this.router = router;
|
|
29
|
+
this.route = route;
|
|
30
|
+
this.toastr = toastr;
|
|
31
|
+
this.ss = ss;
|
|
32
|
+
this.spinnerService = spinnerService;
|
|
33
|
+
this.sysS = sysS;
|
|
34
|
+
this.ps = ps;
|
|
35
|
+
this.cs = cs;
|
|
36
|
+
this.resultView = [];
|
|
37
|
+
this.searchResultDtlList = [];
|
|
38
|
+
this.isOpen = true;
|
|
39
|
+
this.icon = 'fa fa-dedent';
|
|
40
|
+
this.order = '';
|
|
41
|
+
this.reverse = true;
|
|
42
|
+
this.pageSize = 10;
|
|
43
|
+
this.p = 1;
|
|
44
|
+
this.pokey = '';
|
|
45
|
+
this.buyerList = [];
|
|
46
|
+
this.lovs = [];
|
|
47
|
+
this.sqlArray = {};
|
|
48
|
+
this.noData = true;
|
|
49
|
+
this.resultlength = 0;
|
|
50
|
+
this.scrollDistance = 1;
|
|
51
|
+
this.scrollUpDistance = 2;
|
|
52
|
+
this.startIndex = 0;
|
|
53
|
+
this.endIndex = 30;
|
|
54
|
+
this.loadResult = [];
|
|
55
|
+
}
|
|
56
|
+
setOrder(value, i) {
|
|
57
|
+
this.showarr = i;
|
|
58
|
+
if (this.order === value) {
|
|
59
|
+
this.reverse = !this.reverse;
|
|
60
|
+
}
|
|
61
|
+
this.order = value;
|
|
62
|
+
}
|
|
63
|
+
onPageSizeChange(p) {
|
|
64
|
+
if (p == 'All') {
|
|
65
|
+
this.pageSize = this.searchResultDtlList.length;
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
this.pageSize = p;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
getLovList(tblF, page_item_idn) {
|
|
72
|
+
this.spinnerService.show();
|
|
73
|
+
let reqObj = {};
|
|
74
|
+
reqObj['page_item_idn'] = page_item_idn;
|
|
75
|
+
this.header['method'] = 'getDataByItemIdn';
|
|
76
|
+
let options = ({ headers: new HttpHeaders(this.header) });
|
|
77
|
+
this.sysS.getData(reqObj, options).then((response) => {
|
|
78
|
+
if (response.status == 'SUCCESS') {
|
|
79
|
+
this.lovs = response.kv;
|
|
80
|
+
this.sqlArray[tblF] = this.lovs;
|
|
81
|
+
this.spinnerService.hide();
|
|
82
|
+
// console.log(this.lovs);
|
|
83
|
+
// console.log(tblF, this.sqlArray);
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
this.spinnerService.hide();
|
|
87
|
+
this.toastr.error(response.message);
|
|
88
|
+
}
|
|
89
|
+
}).catch((err) => {
|
|
90
|
+
this.spinnerService.hide();
|
|
91
|
+
this.toastr.error(err.message);
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
loadBuyer(searchTerm) {
|
|
95
|
+
this.spinnerService.show();
|
|
96
|
+
let reqObj = {};
|
|
97
|
+
reqObj['likeStr'] = searchTerm;
|
|
98
|
+
this.header['method'] = 'loadBuyer';
|
|
99
|
+
let options = ({ headers: new HttpHeaders(this.header) });
|
|
100
|
+
this.ss.load(reqObj, options, 'marketing/search').then((response) => {
|
|
101
|
+
if (response.status == 'SUCCESS') {
|
|
102
|
+
let result = response.result;
|
|
103
|
+
this.buyerList = result.buyerList.map(option => ({
|
|
104
|
+
value: option.k,
|
|
105
|
+
label: option.v
|
|
106
|
+
}));
|
|
107
|
+
this.spinnerService.hide();
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
this.spinnerService.hide();
|
|
111
|
+
this.toastr.error(response.message);
|
|
112
|
+
}
|
|
113
|
+
}).catch((err) => {
|
|
114
|
+
this.spinnerService.hide();
|
|
115
|
+
this.toastr.error(err.message);
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
loadFrmFields() {
|
|
119
|
+
this.spinnerService.show();
|
|
120
|
+
let reqObj = {};
|
|
121
|
+
reqObj['formNme'] = this.route.snapshot.params['frmnme']; //'searchDtlDscrForm';
|
|
122
|
+
reqObj['requestSrc'] = this.route.snapshot.params['src']; // 'online';
|
|
123
|
+
// if (this.route.snapshot.params['src'] != null && this.route.snapshot.params['src'] != undefined && this.route.snapshot.params['src'] != "") {
|
|
124
|
+
// reqObj['requestSrc'] ='ez';// ['qs', 'qs'];
|
|
125
|
+
// }
|
|
126
|
+
// else {
|
|
127
|
+
// reqObj['requestSrc'] = 'online';
|
|
128
|
+
// }
|
|
129
|
+
this.header['method'] = 'getSearchDetails';
|
|
130
|
+
// console.log(reqObj);
|
|
131
|
+
let options = ({ headers: new HttpHeaders(this.header) });
|
|
132
|
+
this.ss.load(reqObj, options, 'marketing/search').then((response) => {
|
|
133
|
+
if (response.status == 'SUCCESS') {
|
|
134
|
+
// this.isOpen = true;
|
|
135
|
+
let result = response.result;
|
|
136
|
+
this.pageDefination = result.pageDefination;
|
|
137
|
+
this.sourceList = result.sourceList;
|
|
138
|
+
this.pageDefination.form_field.forEach(element => {
|
|
139
|
+
if (element.form_field_typ == 's') {
|
|
140
|
+
this.getLovList(element.form_field, element.page_item_idn);
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
this.spinnerService.hide();
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
this.spinnerService.hide();
|
|
147
|
+
this.toastr.error(response.message);
|
|
148
|
+
}
|
|
149
|
+
}).catch((err) => {
|
|
150
|
+
this.spinnerService.hide();
|
|
151
|
+
this.toastr.error(err.message);
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
openTog() {
|
|
155
|
+
this.isOpen = !this.isOpen;
|
|
156
|
+
if (this.isOpen == true) {
|
|
157
|
+
this.icon = 'fa fa-dedent';
|
|
158
|
+
}
|
|
159
|
+
else {
|
|
160
|
+
this.icon = 'fa fa-indent';
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
exportToCSV() {
|
|
164
|
+
let modifiedObjArr = this.cs.modifyDataByHeader(this.searchResultDtlList, this.resultView, this.resultViewDtl);
|
|
165
|
+
this.cs.CSVConvertor(modifiedObjArr, "Web_Search_History", true);
|
|
166
|
+
}
|
|
167
|
+
loadResults(formVal) {
|
|
168
|
+
this.loadResult = [];
|
|
169
|
+
// this.startIndex = 0;
|
|
170
|
+
// this.endIndex = 30;
|
|
171
|
+
this.spinnerService.show();
|
|
172
|
+
let reqObj = {};
|
|
173
|
+
reqObj['formNme'] = this.route.snapshot.params['frmnme']; //'searchDtlDscrForm';
|
|
174
|
+
if (formVal != null) {
|
|
175
|
+
//reqObj['formNme'] = 'searchDtlDscrForm';
|
|
176
|
+
reqObj['empIdnList'] = formVal.employee != null ? [formVal.employee] : [];
|
|
177
|
+
reqObj['buyerIdnList'] = formVal.buyer != null ? [formVal.buyer] : [];
|
|
178
|
+
reqObj['dateFrom'] = formVal.fromDate != null ? this.cs.formatDate(formVal.fromDate) : '';
|
|
179
|
+
reqObj['dateTo'] = formVal.toDate != null ? this.cs.formatDate(formVal.toDate) : '';
|
|
180
|
+
}
|
|
181
|
+
// if (this.route.snapshot.params['src'] != null && this.route.snapshot.params['src'] != undefined && this.route.snapshot.params['src'] != "") {
|
|
182
|
+
// reqObj['requestSrc'] = 'ez';//['qs', 'qs'];
|
|
183
|
+
// }
|
|
184
|
+
// else {
|
|
185
|
+
// reqObj['requestSrc'] = 'online';
|
|
186
|
+
// }
|
|
187
|
+
reqObj['requestSrc'] = this.route.snapshot.params['src'];
|
|
188
|
+
this.header['method'] = 'getSearchDetails';
|
|
189
|
+
console.log(JSON.stringify(reqObj));
|
|
190
|
+
let options = ({ headers: new HttpHeaders(this.header) });
|
|
191
|
+
this.ss.load(reqObj, options, 'marketing/search').then((response) => {
|
|
192
|
+
if (response.status == 'SUCCESS') {
|
|
193
|
+
console.log(response);
|
|
194
|
+
this.isOpen = false;
|
|
195
|
+
let result = response.result;
|
|
196
|
+
if (result != undefined && result != null) {
|
|
197
|
+
this.noData = false;
|
|
198
|
+
this.pageDefination = result.pageDefination;
|
|
199
|
+
this.resultView = result.resultView || [];
|
|
200
|
+
this.resultViewDtl = result.resultViewDtl || {};
|
|
201
|
+
this.searchResultDtlList = result.searchResultDtlList || [];
|
|
202
|
+
this.resultlength = this.searchResultDtlList.length;
|
|
203
|
+
// if (this.endIndex > this.resultlength)
|
|
204
|
+
// this.endIndex = this.resultlength
|
|
205
|
+
// this.addItems();
|
|
206
|
+
this.loadResult = this.searchResultDtlList;
|
|
207
|
+
document.getElementById("wrap").addEventListener("scroll", function () {
|
|
208
|
+
var translate = "translate(0," + this.scrollTop + "px)";
|
|
209
|
+
this.querySelector("thead").style.transform = translate;
|
|
210
|
+
});
|
|
211
|
+
this.searchF = this.sourceVal;
|
|
212
|
+
}
|
|
213
|
+
else {
|
|
214
|
+
this.noData = true;
|
|
215
|
+
this.isOpen = true;
|
|
216
|
+
}
|
|
217
|
+
this.spinnerService.hide();
|
|
218
|
+
}
|
|
219
|
+
else {
|
|
220
|
+
this.spinnerService.hide();
|
|
221
|
+
this.toastr.error(response.message);
|
|
222
|
+
}
|
|
223
|
+
}).catch((err) => {
|
|
224
|
+
this.spinnerService.hide();
|
|
225
|
+
this.toastr.error(err.message);
|
|
226
|
+
});
|
|
227
|
+
}
|
|
228
|
+
// onScrollDown() {
|
|
229
|
+
// if (this.endIndex <= this.resultlength)
|
|
230
|
+
// this.addItems()
|
|
231
|
+
// document.getElementById("wrap").addEventListener("scroll", function () {
|
|
232
|
+
// var translate = "translate(0," + this.scrollTop + "px)";
|
|
233
|
+
// this.querySelector("thead").style.transform = translate;
|
|
234
|
+
// });
|
|
235
|
+
// }
|
|
236
|
+
// addItems() {
|
|
237
|
+
// for (let i = this.startIndex; i < this.endIndex; i++) {
|
|
238
|
+
// this.loadResult[i] = this.searchResultDtlList[i];
|
|
239
|
+
// }
|
|
240
|
+
// this.startIndex = this.endIndex;
|
|
241
|
+
// this.endIndex = this.endIndex + 30;
|
|
242
|
+
// if (this.endIndex > this.resultlength) {
|
|
243
|
+
// this.endIndex = this.resultlength;
|
|
244
|
+
// }
|
|
245
|
+
// }
|
|
246
|
+
onSubmit(formVal) {
|
|
247
|
+
var t = Object.keys(formVal.form.controls).forEach(field => {
|
|
248
|
+
const control = formVal.form.get(field);
|
|
249
|
+
});
|
|
250
|
+
this.loadResults(formVal.value);
|
|
251
|
+
}
|
|
252
|
+
ngOnInit() {
|
|
253
|
+
let mdlk = JSON.parse(localStorage.getItem('mdlKey'));
|
|
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
|
+
/** @nocollapse */ /** @nocollapse */ WebsearchHistoryComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: WebsearchHistoryComponent, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }, { token: i2.ToastrService }, { token: i3.StockServiceService }, { token: i4.NgxSpinnerService }, { token: i5.SystemServiceService }, { token: i6.PdfServiceService }, { token: i7.CommanServiceService }], target: i0.ɵɵFactoryTarget.Component });
|
|
268
|
+
/** @nocollapse */ /** @nocollapse */ WebsearchHistoryComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", 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:0}.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: i8.SelectComponent, selector: "ng-select", inputs: ["options", "allowClear", "disabled", "multiple", "noFilter", "notFoundMsg", "placeholder", "filterPlaceholder", "label", "highlightColor", "highlightTextColor"], outputs: ["opened", "closed", "selected", "deselected", "focus", "blur", "noOptionsFound", "filterInputChanged"] }, { type: i9.PaginationControlsComponent, selector: "pagination-controls", inputs: ["maxSize", "previousLabel", "nextLabel", "screenReaderPaginationLabel", "screenReaderPageLabel", "screenReaderCurrentLabel", "directionLinks", "autoHide", "responsive", "id"], outputs: ["pageChange"] }], directives: [{ type: i10.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i10.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i10.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i11.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i11.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i11.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i10.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i10.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { type: i10.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i10.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i10.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: i11.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i12.AppNoDblClickDirective, selector: "[appAppNoDblClick]" }], pipes: { "date": i11.DatePipe, "paginate": i9.PaginatePipe, "orderBy": i13.OrderPipe, "tableSearch": i14.TableSearchPipe } });
|
|
269
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", 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:0}.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.ToastrService }, { type: i3.StockServiceService }, { type: i4.NgxSpinnerService }, { type: i5.SystemServiceService }, { type: i6.PdfServiceService }, { type: i7.CommanServiceService }]; } });
|
|
273
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vic2VhcmNoLWhpc3RvcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXpsaWIvc3JjL2xpYi93ZWJzZWFyY2gtaGlzdG9yeS93ZWJzZWFyY2gtaGlzdG9yeS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lemxpYi9zcmMvbGliL3dlYnNlYXJjaC1oaXN0b3J5L3dlYnNlYXJjaC1oaXN0b3J5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWlDLE1BQU0sZUFBZSxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxXQUFXLEVBQUcsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBeUIsTUFBTSxpQkFBaUIsQ0FBQztBQUVoRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDaEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0NBQXdDLENBQUE7QUFDNUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDOUYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMENBQTBDLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7QUFPaEYsTUFBTSxPQUFPLHlCQUF5QjtJQUVwQyxZQUNTLE1BQWMsRUFDYixLQUFxQixFQUNyQixNQUFxQixFQUNyQixFQUF1QixFQUN2QixjQUFpQyxFQUNqQyxJQUEwQixFQUMxQixFQUFxQixFQUNyQixFQUF3QjtRQVB6QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2IsVUFB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QUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDMUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO1lBQy9CLFFBQVEsRUFBRSxJQUFJO1NBQ2YsQ0FBQztRQUNGLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztJQUN4QixDQUFDOzs0SkE5UFUseUJBQXlCO2dKQUF6Qix5QkFBeUIsNkRDakJ0QyxvalJBb0pNOzJGRG5JTyx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0UsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwSGVhZGVycyAgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IFJvdXRlciwgQWN0aXZhdGVkUm91dGUsIFBhcmFtcywgTmF2aWdhdGlvbkVuZCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFRvYXN0clNlcnZpY2UgfSBmcm9tICduZ3gtdG9hc3RyJztcclxuaW1wb3J0IHsgQ29va2llIH0gZnJvbSAnbmcyLWNvb2tpZXMvbmcyLWNvb2tpZXMnO1xyXG5pbXBvcnQgeyBOZ3hTcGlubmVyU2VydmljZSB9IGZyb20gXCJuZ3gtc3Bpbm5lclwiO1xyXG5pbXBvcnQgeyBTdG9ja1NlcnZpY2VTZXJ2aWNlIH0gZnJvbSAnLi4vc3RvY2stc2VydmljZS9zdG9jay1zZXJ2aWNlLnNlcnZpY2UnXHJcbmltcG9ydCB7IFN5c3RlbVNlcnZpY2VTZXJ2aWNlIH0gZnJvbSAnLi4vc3lzdGVtLW1vZHVsZS9zeXN0ZW0tc2VydmljZS9zeXN0ZW0tc2VydmljZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUGRmU2VydmljZVNlcnZpY2UgfSBmcm9tICcuLi9nbG9ibGUvcGRmLXNlcnZpY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IENvbW1hblNlcnZpY2VTZXJ2aWNlIH0gZnJvbSAnLi4vY29tbWFuLXNlcnZpY2UvY29tbWFuLXNlcnZpY2Uuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC13ZWJzZWFyY2gtaGlzdG9yeScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3dlYnNlYXJjaC1oaXN0b3J5LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi93ZWJzZWFyY2gtaGlzdG9yeS5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFdlYnNlYXJjaEhpc3RvcnlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgcHJpdmF0ZSB0b2FzdHI6IFRvYXN0clNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHNzOiBTdG9ja1NlcnZpY2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBzcGlubmVyU2VydmljZTogTmd4U3Bpbm5lclNlcnZpY2UgLFxyXG4gICAgcHJpdmF0ZSBzeXNTOiBTeXN0ZW1TZXJ2aWNlU2VydmljZSxcclxuICAgIHByaXZhdGUgcHM6IFBkZlNlcnZpY2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjczogQ29tbWFuU2VydmljZVNlcnZpY2VcclxuICApIHsgfVxyXG4gIGNEdDtcclxuICBjVXJsO1xyXG4gIGhlYWRlcjtcclxuICBwYWdlRGVmaW5hdGlvbjtcclxuICByZXN1bHRWaWV3ID0gW107XHJcbiAgcmVzdWx0Vmlld0R0bDtcclxuICBzZWFyY2hSZXN1bHREdGxMaXN0ID0gW107XHJcbiAgaXNPcGVuID0gdHJ1ZTtcclxuICBpY29uID0gJ2ZhIGZhLWRlZGVudCc7XHJcbiAgc2hvd2FycjtcclxuICBvcmRlciA9ICcnO1xyXG4gIHJldmVyc2UgPSB0cnVlO1xyXG4gIHBhZ2VTaXplID0gMTA7XHJcbiAgcCA9IDE7XHJcbiAgcG9rZXkgPSAnJztcclxuICBzZWFyY2hGO1xyXG4gIGN1ckluZHg7XHJcbiAgYnV5ZXJMaXN0ID0gW107XHJcbiAgbG92cyA9IFtdO1xyXG4gIHNxbEFycmF5ID0ge307XHJcbiAgbm9EYXRhID0gdHJ1ZTtcclxuICBzb3VyY2VWYWw7XHJcbiAgc291cmNlTGlzdDtcclxuICBzdG9ja19pZG47XHJcblxyXG4gIHJlc3VsdGxlbmd0aCA9IDA7XHJcbiAgc2Nyb2xsRGlzdGFuY2UgPSAxO1xyXG4gIHNjcm9sbFVwRGlzdGFuY2UgPSAyO1xyXG4gIHN0YXJ0SW5kZXggPSAwO1xyXG4gIGVuZEluZGV4ID0gMzA7XHJcbiAgbG9hZFJlc3VsdCA9IFtdO1xyXG4gIHNldE9yZGVyKHZhbHVlOiBzdHJpbmcsIGkpIHtcclxuICAgIHRoaXMuc2hvd2FyciA9IGk7XHJcbiAgICBpZiAodGhpcy5vcmRlciA9PT0gdmFsdWUpIHtcclxuICAgICAgdGhpcy5yZXZlcnNlID0gIXRoaXMucmV2ZXJzZTtcclxuICAgIH1cclxuICAgIHRoaXMub3JkZXIgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIG9uUGFnZVNpemVDaGFuZ2UocCkge1xyXG4gICAgaWYgKHAgPT0gJ0FsbCcpIHtcclxuICAgICAgdGhpcy5wYWdlU2l6ZSA9IHRoaXMuc2VhcmNoUmVzdWx0RHRsTGlzdC5sZW5ndGg7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnBhZ2VTaXplID0gcDtcclxuICAgIH1cclxuICB9XHJcbiAgZ2V0TG92TGlzdCh0YmxGLCBwYWdlX2l0ZW1faWRuKSB7XHJcbiAgICB0aGlzLnNwaW5uZXJTZXJ2aWNlLnNob3coKTtcclxuICAgIGxldCByZXFPYmogPSB7fTtcclxuICAgIHJlcU9ialsncGFnZV9pdGVtX2lkbiddID0gcGFnZV9pdGVtX2lkbjtcclxuICAgIHRoaXMuaGVhZGVyWydtZXRob2QnXSA9ICdnZXREYXRhQnlJdGVtSWRuJztcclxuICAgIGxldCBvcHRpb25zID0gKHsgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHRoaXMuaGVhZGVyKSB9KTtcclxuICAgIHRoaXMuc3lzUy5nZXREYXRhKHJlcU9iaiwgb3B0aW9ucykudGhlbigocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09ICdTVUNDRVNTJykge1xyXG4gICAgICAgIHRoaXMubG92cyA9IHJlc3BvbnNlLmt2O1xyXG4gICAgICAgIHRoaXMuc3FsQXJyYXlbdGJsRl0gPSB0aGlzLmxvdnM7XHJcbiAgICAgICAgdGhpcy5zcGlubmVyU2VydmljZS5oaWRlKCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2codGhpcy5sb3ZzKTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyh0YmxGLCB0aGlzLnNxbEFycmF5KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNwaW5uZXJTZXJ2aWNlLmhpZGUoKTtcclxuICAgICAgIHRoaXMudG9hc3RyLmVycm9yKHJlc3BvbnNlLm1lc3NhZ2UpXHJcbiAgICAgIH1cclxuICAgIH0pLmNhdGNoKChlcnI6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLnNwaW5uZXJTZXJ2aWNlLmhpZGUoKTtcclxuICAgICAgdGhpcy50b2FzdHIuZXJyb3IoZXJyLm1lc3NhZ2UpXHJcbiAgICB9KTtcclxuICB9XHJcbiAgbG9hZEJ1eWVyKHNlYXJjaFRlcm0pIHtcclxuICAgIHRoaXMuc3Bpbm5lclNlcnZpY2Uuc2hvdygpO1xyXG4gICAgbGV0IHJlcU9iaiA9IHt9O1xyXG4gICAgcmVxT2JqWydsaWtlU3RyJ10gPSBzZWFyY2hUZXJtO1xyXG4gICAgdGhpcy5oZWFkZXJbJ21ldGhvZCddID0gJ2xvYWRCdXllcic7XHJcbiAgICBsZXQgb3B0aW9ucyA9ICh7IGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh0aGlzLmhlYWRlcikgfSk7XHJcbiAgICB0aGlzLnNzLmxvYWQocmVxT2JqLCBvcHRpb25zLCAnbWFya2V0aW5nL3NlYXJjaCcpLnRoZW4oKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PSAnU1VDQ0VTUycpIHtcclxuICAgICAgICBsZXQgcmVzdWx0ID0gcmVzcG9uc2UucmVzdWx0O1xyXG4gICAgICAgIHRoaXMuYnV5ZXJMaXN0ID0gcmVzdWx0LmJ1eWVyTGlzdC5tYXAob3B0aW9uID0+ICh7XHJcbiAgICAgICAgICB2YWx1ZTogb3B0aW9uLmssXHJcbiAgICAgICAgICBsYWJlbDogb3B0aW9uLnZcclxuICAgICAgICB9KSk7XHJcbiAgICAgICAgdGhpcy5zcGlubmVyU2VydmljZS5oaWRlKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zcGlubmVyU2VydmljZS5oaWRlKCk7XHJcbiAgICAgICB0aGlzLnRvYXN0ci5lcnJvcihyZXNwb25zZS5tZXNzYWdlKVxyXG4gICAgICB9XHJcbiAgICB9KS5jYXRjaCgoZXJyOiBhbnkpID0+IHtcclxuICAgICAgdGhpcy5zcGlubmVyU2VydmljZS5oaWRlKCk7XHJcbiAgICAgIHRoaXMudG9hc3RyLmVycm9yKGVyci5tZXNzYWdlKVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGxvYWRGcm1GaWVsZHMoKSB7XHJcbiAgICB0aGlzLnNwaW5uZXJTZXJ2aWNlLnNob3coKTtcclxuICAgIGxldCByZXFPYmogPSB7fTtcclxuICAgIHJlcU9ialsnZm9ybU5tZSddID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXNbJ2ZybW5tZSddOy8vJ3NlYXJjaER0bERzY3JGb3JtJztcclxuICAgIHJlcU9ialsncmVxdWVzdFNyYyddID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXNbJ3NyYyddOy8vICdvbmxpbmUnO1xyXG4gICAgLy8gaWYgKHRoaXMucm91dGUuc25hcHNob3QucGFyYW1zWydzcmMnXSAhPSBudWxsICYmIHRoaXMucm91dGUuc25hcHNob3QucGFyYW1zWydzcmMnXSAhPSB1bmRlZmluZWQgJiYgdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXNbJ3NyYyddICE9IFwiXCIpIHtcclxuICAgIC8vICAgcmVxT2JqWydyZXF1ZXN0U3JjJ10gPSdleic7Ly8gWydxcycsICdxcyddO1xyXG4gICAgLy8gfVxyXG4gICAgLy8gZWxzZSB7XHJcbiAgICAvLyAgIHJlcU9ialsncmVxdWVzdFNyYyddID0gJ29ubGluZSc7XHJcbiAgICAvLyB9XHJcbiAgICB0aGlzLmhlYWRlclsnbWV0aG9kJ10gPSAnZ2V0U2VhcmNoRGV0YWlscyc7XHJcbiAgICAvLyBjb25zb2xlLmxvZyhyZXFPYmopO1xyXG4gICAgbGV0IG9wdGlvbnMgPSAoeyBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnModGhpcy5oZWFkZXIpIH0pO1xyXG4gICAgdGhpcy5zcy5sb2FkKHJlcU9iaiwgb3B0aW9ucywgJ21hcmtldGluZy9zZWFyY2gnKS50aGVuKChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT0gJ1NVQ0NFU1MnKSB7XHJcbiAgICAgICAgLy8gIHRoaXMuaXNPcGVuID0gdHJ1ZTtcclxuICAgICAgICBsZXQgcmVzdWx0ID0gcmVzcG9uc2UucmVzdWx0O1xyXG4gICAgICAgIHRoaXMucGFnZURlZmluYXRpb24gPSByZXN1bHQucGFnZURlZmluYXRpb247XHJcbiAgICAgICAgdGhpcy5zb3VyY2VMaXN0ID0gcmVzdWx0LnNvdXJjZUxpc3Q7XHJcbiAgICAgICAgdGhpcy5wYWdlRGVmaW5hdGlvbi5mb3JtX2ZpZWxkLmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgICAgICBpZiAoZWxlbWVudC5mb3JtX2ZpZWxkX3R5cCA9PSAncycpIHtcclxuICAgICAgICAgICAgdGhpcy5nZXRMb3ZMaXN0KGVsZW1lbnQuZm9ybV9maWVsZCwgZWxlbWVudC5wYWdlX2l0ZW1faWRuKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLnNwaW5uZXJTZXJ2aWNlLmhpZGUoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNwaW5uZXJTZXJ2aWNlLmhpZGUoKTtcclxuICAgICAgIHRoaXMudG9hc3RyLmVycm9yKHJlc3BvbnNlLm1lc3NhZ2UpXHJcbiAgICAgIH1cclxuICAgIH0pLmNhdGNoKChlcnI6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLnNwaW5uZXJTZXJ2aWNlLmhpZGUoKTtcclxuICAgICAgdGhpcy50b2FzdHIuZXJyb3IoZXJyLm1lc3NhZ2UpXHJcbiAgICB9KTtcclxuICB9XHJcbiAgb3BlblRvZygpIHtcclxuICAgIHRoaXMuaXNPcGVuID0gIXRoaXMuaXNPcGVuO1xyXG4gICAgaWYgKHRoaXMuaXNPcGVuID09IHRydWUpIHtcclxuICAgICAgdGhpcy5pY29uID0gJ2ZhIGZhLWRlZGVudCc7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmljb24gPSAnZmEgZmEtaW5kZW50JztcclxuICAgIH1cclxuICB9XHJcbiAgZXhwb3J0VG9DU1YoKSB7XHJcbiAgICBsZXQgbW9kaWZpZWRPYmpBcnIgPSB0aGlzLmNzLm1vZGlmeURhdGFCeUhlYWRlcih0aGlzLnNlYXJjaFJlc3VsdER0bExpc3QsIHRoaXMucmVzdWx0VmlldywgdGhpcy5yZXN1bHRWaWV3RHRsKTtcclxuICAgIHRoaXMuY3MuQ1NWQ29udmVydG9yKG1vZGlmaWVkT2JqQXJyLCBcIldlYl9TZWFyY2hfSGlzdG9yeVwiLCB0cnVlKVxyXG4gIH1cclxuICBsb2FkUmVzdWx0cyhmb3JtVmFsKSB7XHJcbiAgICB0aGlzLmxvYWRSZXN1bHQgPSBbXTtcclxuICAgIC8vIHRoaXMuc3RhcnRJbmRleCA9IDA7XHJcbiAgICAvLyB0aGlzLmVuZEluZGV4ID0gMzA7XHJcbiAgICB0aGlzLnNwaW5uZXJTZXJ2aWNlLnNob3coKTtcclxuICAgIGxldCByZXFPYmogPSB7fTtcclxuICAgIHJlcU9ialsnZm9ybU5tZSddID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXNbJ2ZybW5tZSddOy8vJ3NlYXJjaER0bERzY3JGb3JtJztcclxuICAgIGlmIChmb3JtVmFsICE9IG51bGwpIHtcclxuICAgICAgLy9yZXFPYmpbJ2Zvcm1ObWUnXSA9ICdzZWFyY2hEdGxEc2NyRm9ybSc7XHJcbiAgICAgIHJlcU9ialsnZW1wSWRuTGlzdCddID0gZm9ybVZhbC5lbXBsb3llZSAhPSBudWxsID8gW2Zvcm1WYWwuZW1wbG95ZWVdIDogW107XHJcbiAgICAgIHJlcU9ialsnYnV5ZXJJZG5MaXN0J10gPSBmb3JtVmFsLmJ1eWVyICE9IG51bGwgPyBbZm9ybVZhbC5idXllcl0gOiBbXTtcclxuICAgICAgcmVxT2JqWydkYXRlRnJvbSddID0gZm9ybVZhbC5mcm9tRGF0ZSAhPSBudWxsID8gdGhpcy5jcy5mb3JtYXREYXRlKGZvcm1WYWwuZnJvbURhdGUpIDogJyc7XHJcbiAgICAgIHJlcU9ialsnZGF0ZVRvJ10gPSBmb3JtVmFsLnRvRGF0ZSAhPSBudWxsID8gdGhpcy5jcy5mb3JtYXREYXRlKGZvcm1WYWwudG9EYXRlKSA6ICcnO1xyXG4gICAgfVxyXG4gICAgLy8gaWYgKHRoaXMucm91dGUuc25hcHNob3QucGFyYW1zWydzcmMnXSAhPSBudWxsICYmIHRoaXMucm91dGUuc25hcHNob3QucGFyYW1zWydzcmMnXSAhPSB1bmRlZmluZWQgJiYgdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXNbJ3NyYyddICE9IFwiXCIpIHtcclxuICAgIC8vICAgcmVxT2JqWydyZXF1ZXN0U3JjJ10gPSAnZXonOy8vWydxcycsICdxcyddO1xyXG4gICAgLy8gfVxyXG4gICAgLy8gZWxzZSB7XHJcbiAgICAvLyAgIHJlcU9ialsncmVxdWVzdFNyYyddID0gJ29ubGluZSc7XHJcbiAgICAvLyB9XHJcbiAgICByZXFPYmpbJ3JlcXVlc3RTcmMnXSA9IHRoaXMucm91dGUuc25hcHNob3QucGFyYW1zWydzcmMnXTtcclxuICAgIHRoaXMuaGVhZGVyWydtZXRob2QnXSA9ICdnZXRTZWFyY2hEZXRhaWxzJztcclxuICAgIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KHJlcU9iaikpO1xyXG4gICAgbGV0IG9wdGlvbnMgPSAoeyBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnModGhpcy5oZWFkZXIpIH0pO1xyXG4gICAgdGhpcy5zcy5sb2FkKHJlcU9iaiwgb3B0aW9ucywgJ21hcmtldGluZy9zZWFyY2gnKS50aGVuKChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT0gJ1NVQ0NFU1MnKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2cocmVzcG9uc2UpO1xyXG4gICAgICAgIHRoaXMuaXNPcGVuID0gZmFsc2U7XHJcbiAgICAgICAgbGV0IHJlc3VsdCA9IHJlc3BvbnNlLnJlc3VsdDtcclxuICAgICAgICBpZiAocmVzdWx0ICE9IHVuZGVmaW5lZCAmJiByZXN1bHQgIT0gbnVsbCkge1xyXG4gICAgICAgICAgdGhpcy5ub0RhdGEgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMucGFnZURlZmluYXRpb24gPSByZXN1bHQucGFnZURlZmluYXRpb247XHJcbiAgICAgICAgICB0aGlzLnJlc3VsdFZpZXcgPSByZXN1bHQucmVzdWx0VmlldyB8fCBbXTtcclxuICAgICAgICAgIHRoaXMucmVzdWx0Vmlld0R0bCA9IHJlc3VsdC5yZXN1bHRWaWV3RHRsIHx8IHt9O1xyXG4gICAgICAgICAgdGhpcy5zZWFyY2hSZXN1bHREdGxMaXN0ID0gcmVzdWx0LnNlYXJjaFJlc3VsdER0bExpc3QgfHxbXTtcclxuXHJcbiAgICAgICAgICB0aGlzLnJlc3VsdGxlbmd0aCA9IHRoaXMuc2VhcmNoUmVzdWx0RHRsTGlzdC5sZW5ndGg7XHJcblxyXG4gICAgICAgICAgLy8gaWYgKHRoaXMuZW5kSW5kZXggPiB0aGlzLnJlc3VsdGxlbmd0aClcclxuICAgICAgICAgICAgLy8gdGhpcy5lbmRJbmRleCA9IHRoaXMucmVzdWx0bGVuZ3RoXHJcbiAgICAgICAgICAvLyB0aGlzLmFkZEl0ZW1zKCk7XHJcbiAgICAgICAgICB0aGlzLmxvYWRSZXN1bHQgPSB0aGlzLnNlYXJjaFJlc3VsdER0bExpc3Q7XHJcbiAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcIndyYXBcIikuYWRkRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIHZhciB0cmFuc2xhdGUgPSBcInRyYW5zbGF0ZSgwLFwiICsgdGhpcy5zY3JvbGxUb3AgKyBcInB4KVwiO1xyXG4gICAgICAgICAgICB0aGlzLnF1ZXJ5U2VsZWN0b3IoXCJ0aGVhZFwiKS5zdHlsZS50cmFuc2Zvcm0gPSB0cmFuc2xhdGU7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHRoaXMuc2VhcmNoRiA9IHRoaXMuc291cmNlVmFsO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubm9EYXRhID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMuaXNPcGVuID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zcGlubmVyU2VydmljZS5oaWRlKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zcGlubmVyU2VydmljZS5oaWRlKCk7XHJcbiAgICAgICB0aGlzLnRvYXN0ci5lcnJvcihyZXNwb25zZS5tZXNzYWdlKVxyXG4gICAgICB9XHJcbiAgICB9KS5jYXRjaCgoZXJyOiBhbnkpID0+IHtcclxuICAgICAgdGhpcy5zcGlubmVyU2VydmljZS5oaWRlKCk7XHJcbiAgICAgIHRoaXMudG9hc3RyLmVycm9yKGVyci5tZXNzYWdlKVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy8gb25TY3JvbGxEb3duKCkge1xyXG4gIC8vICAgaWYgKHRoaXMuZW5kSW5kZXggPD0gdGhpcy5yZXN1bHRsZW5ndGgpXHJcbiAgLy8gICAgIHRoaXMuYWRkSXRlbXMoKVxyXG4gIC8vICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJ3cmFwXCIpLmFkZEV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgZnVuY3Rpb24gKCkge1xyXG4gIC8vICAgICB2YXIgdHJhbnNsYXRlID0gXCJ0cmFuc2xhdGUoMCxcIiArIHRoaXMuc2Nyb2xsVG9wICsgXCJweClcIjtcclxuICAvLyAgICAgdGhpcy5xdWVyeVNlbGVjdG9yKFwidGhlYWRcIikuc3R5bGUudHJhbnNmb3JtID0gdHJhbnNsYXRlO1xyXG4gIC8vICAgfSk7XHJcbiAgLy8gfVxyXG5cclxuICAvLyBhZGRJdGVtcygpIHtcclxuICAvLyAgIGZvciAobGV0IGkgPSB0aGlzLnN0YXJ0SW5kZXg7IGkgPCB0aGlzLmVuZEluZGV4OyBpKyspIHtcclxuICAvLyAgICAgdGhpcy5sb2FkUmVzdWx0W2ldID0gdGhpcy5zZWFyY2hSZXN1bHREdGxMaXN0W2ldO1xyXG4gIC8vICAgfVxyXG4gIC8vICAgdGhpcy5zdGFydEluZGV4ID0gdGhpcy5lbmRJbmRleDtcclxuICAvLyAgIHRoaXMuZW5kSW5kZXggPSB0aGlzLmVuZEluZGV4ICsgMzA7XHJcbiAgLy8gICBpZiAodGhpcy5lbmRJbmRleCA+IHRoaXMucmVzdWx0bGVuZ3RoKSB7XHJcbiAgLy8gICAgIHRoaXMuZW5kSW5kZXggPSB0aGlzLnJlc3VsdGxlbmd0aDtcclxuICAvLyAgIH1cclxuICAvLyB9XHJcblxyXG4gIG9uU3VibWl0KGZvcm1WYWwpIHtcclxuICAgIHZhciB0ID0gT2JqZWN0LmtleXMoZm9ybVZhbC5mb3JtLmNvbnRyb2xzKS5mb3JFYWNoKGZpZWxkID0+IHtcclxuICAgICAgY29uc3QgY29udHJvbCA9IGZvcm1WYWwuZm9ybS5nZXQoZmllbGQpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmxvYWRSZXN1bHRzKGZvcm1WYWwudmFsdWUpO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGxldCBtZGxrID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbWRsS2V5JykpO1xyXG4gICAgdGhpcy5jVXJsID0gdGhpcy5yb3V0ZXIudXJsO1xyXG5cclxuICAgIHRoaXMuaGVhZGVyID0ge1xyXG4gICAgICAnY2xpZW50a2V5JzogQ29va2llLmdldCgnX2NrJyksXHJcbiAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXHJcbiAgICAgICdtb2R1bGVrZXknOiBtZGxrW3RoaXMuY1VybC5zcGxpdCgnLycpWzFdXSxcclxuICAgICAgJ2xvZ2luaWQnOiBDb29raWUuZ2V0KCdfbG9naWQnKSxcclxuICAgICAgJ3NvdXJjZSc6ICdxcydcclxuICAgIH07XHJcbiAgICB0aGlzLmxvYWRSZXN1bHRzKG51bGwpO1xyXG4gICAgdGhpcy5sb2FkRnJtRmllbGRzKCk7XHJcbiAgICB0aGlzLmNEdCA9IG5ldyBEYXRlKCk7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwibXRcIiBzdHlsZT1cImJhY2tncm91bmQ6ICNmZmY7XCI+XHJcbiAgPGRpdiBjbGFzcz1cInBhbmVsIHBhbmVsLWRlZmF1bHRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJwYW5lbC1oZWFkaW5nXCI+XHJcbiAgICAgIDxoMyBjbGFzcz1cInBhbmVsLXRpdGxlXCI+e3twYWdlRGVmaW5hdGlvbj8udGl0bGV9fVxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZi0xMlwiPih7e2NEdCB8IGRhdGU6J21lZGl1bSd9fSk8L3NwYW4+XHJcbiAgICAgIDwvaDM+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiY29udGVudC1mcmFtZVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImlubmVyRFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicm93XCIgc3R5bGU9XCJwYWRkaW5nOiAxMHB4O1wiPlxyXG4gICAgICAgIDxmb3JtIGNsYXNzPVwiZm9ybS1pbmxpbmVcIiAjZj1cIm5nRm9ybVwiIChuZ1N1Ym1pdCk9XCJvblN1Ym1pdChmKVwiIG5hbWU9XCJhcHBGb3JtXCI+XHJcbiAgICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cImlzT3BlbiA9PSB0cnVlID8gJ2NvbC1tZC00JyA6ICdoaWRkZW4nXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCIgKm5nRm9yPVwibGV0IGZsIG9mIHBhZ2VEZWZpbmF0aW9uPy5mb3JtX2ZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCB3LTEwMFwiICpuZ0lmPVwiZmw/LmZvcm1fZmllbGRfdHlwID09ICdzYidcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY29sLW1kLTUgY29udHJvbC1sYWJlbFwiIHN0eWxlPVwicGFkZGluZy1sZWZ0OiAycHg7XCI+e3tmbD8uZm9ybV9maWVsZF90aXRsZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC03XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwIHctMTAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bmctc2VsZWN0IHN0eWxlPVwiei1pbmRleDogMztcIiBwbGFjZWhvbGRlcj1cIlNlbGVjdCBCdXllcnNcIiBbb3B0aW9uc109XCJidXllckxpc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZsLmRlZmF1bHRfdmFsdWVcIiBuYW1lPVwiYnV5ZXJcIiAoZmlsdGVySW5wdXRDaGFuZ2VkKT1cImxvYWRCdXllcigkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L25nLXNlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIHctMTAwXCIgKm5nSWY9XCJmbD8uZm9ybV9maWVsZF90eXAgPT0gJ3MnXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImNvbC1tZC01IGNvbnRyb2wtbGFiZWxcIiBzdHlsZT1cInBhZGRpbmctbGVmdDogMnB4O1wiPnt7Zmw/LmZvcm1fZmllbGRfdGl0bGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtN1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cCB3LTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tY29udHJvbFwiIG5hbWU9XCJ7e2ZsPy5mb3JtX2ZpZWxkfX1cIiBbdmFsdWVdPVwiZmw/LmRlZmF1bHRfdmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZsLmRlZmF1bHRfdmFsdWVcIiAjbElucHV0PVwibmdNb2RlbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBsb3Ygb2Ygc3FsQXJyYXlbZmwuZm9ybV9maWVsZF1cIiB2YWx1ZT1cInt7bG92Lmt9fVwiPnt7bG92LnZ9fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCB3LTEwMFwiICpuZ0lmPVwiZmw/LmZvcm1fZmllbGRfdHlwID09ICd0JyAmJiBmbD8uZHRhX3R5cD09J2QnXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImNvbC1tZC01IGNvbnRyb2wtbGFiZWxcIiBzdHlsZT1cInBhZGRpbmctbGVmdDogMnB4O1wiPnt7Zmw/LmZvcm1fZmllbGRfdGl0bGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtN1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cCB3LTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG5hbWU9XCJ7e2ZsPy5mb3JtX2ZpZWxkfX1cIiBbKG5nTW9kZWwpXT1cImZsLmRlZmF1bHRfdmFsdWVcIiBvbmZvY3VzPVwiKHRoaXMudHlwZT0nZGF0ZScpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgb25ibHVyPVwiKHRoaXMudHlwZT0ndGV4dCcpXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBwbGFjZWhvbGRlcj1cImRkL21tL3l5eXlcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIHctMTAwXCIgKm5nSWY9XCJzb3VyY2VMaXN0ICE9IG51bGxcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImNvbC1tZC01IGNvbnRyb2wtbGFiZWxcIiBzdHlsZT1cInBhZGRpbmctbGVmdDogMnB4O1wiPlNvdXJjZTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTdcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwIHctMTAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tY29udHJvbFwiIG5hbWU9XCJzb3VyY2VcIiBbKG5nTW9kZWwpXT1cInNvdXJjZVZhbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIHNvdXJjZUxpc3RcIiB2YWx1ZT1cInt7b3B0aW9uLmt9fVwiPnt7b3B0aW9uLnZ9fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZm9ybT5cclxuICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cImlzT3BlbiA9PSBmYWxzZSA/ICdjb2wtbWQtMTIgY3VzdENscycgOiAnY29sLW1kLTggY3VzdENscydcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIiAqbmdJZj1cInNlYXJjaFJlc3VsdER0bExpc3QubGVuZ3RoPjBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS02XCI+XHJcbiAgICAgICAgICAgICAgPGZvcm0gY2xhc3M9XCJmb3JtLWlubGluZSBwdWxsLWxlZnRcIj5cclxuICAgICAgICAgICAgICA8L2Zvcm0+XHJcbiAgICAgICAgICAgICAgPGZvcm0gY2xhc3M9XCJmb3JtLWlubGluZSBwdWxsLWxlZnRcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJkZGxQYWdlc2l6ZVwiPlBhZ2UgU2l6ZSAmbmJzcDsgJm5ic3A7PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tY29udHJvbFwiIG5hbWU9XCJwYWdlU2l6ZVwiIFsobmdNb2RlbCldPVwicGFnZVNpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwib25QYWdlU2l6ZUNoYW5nZShwYWdlU2l6ZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiQWxsXCI+QWxsPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjEwXCI+MTA8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMjVcIj4yNTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCI1MFwiPjUwPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjEwMFwiPjEwMDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZm9ybT5cclxuXHJcbiAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cInNlYXJjaFJlc3VsdER0bExpc3QubGVuZ3RoPjBcIiBjbGFzcz1cImJ0biBidG4tZGVmYXVsdFwiXHJcbiAgICAgICAgICAgICAgICBzdHlsZT1cInBhZGRpbmc6IDRweCAxNXB4IDRweCAyMHB4O21hcmdpbi1sZWZ0OiAxMHB4O1wiIGRhdGEtdG9nZ2xlPVwidG9vbHRpcFwiIGRhdGEtcGxhY2VtZW50PVwicmlnaHRcIlxyXG4gICAgICAgICAgICAgICAgdGl0bGU9XCJGaWx0ZXIgcmVzdWx0c1wiIChjbGljayk9XCJvcGVuVG9nKCk7XCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInt7aWNvbn19XCIgc3R5bGU9XCJjb2xvcjojM2I1OTk4O1wiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cIiFub0RhdGFcIiBjbGFzcz1cImJ0biBidG4tZGVmYXVsdFwiIHN0eWxlPVwicGFkZGluZzogNHB4IDE1cHggNHB4IDIwcHg7bWFyZ2luLWxlZnQ6IDEwcHg7XCJcclxuICAgICAgICAgICAgICAgIGRhdGEtdG9nZ2xlPVwidG9vbHRpcFwiIGRhdGEtcGxhY2VtZW50PVwicmlnaHRcIiB0aXRsZT1cIlJlZnJlc2hcIiAoY2xpY2spPVwibmdPbkluaXQoKTtcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmEgZmEtcmVmcmVzaFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiIW5vRGF0YVwiIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0XCIgc3R5bGU9XCJwYWRkaW5nOiA0cHggMTVweCA0cHggMjBweDttYXJnaW4tbGVmdDogMTBweDtcIlxyXG4gICAgICAgICAgICAgICAgZGF0YS10b2dnbGU9XCJ0b29sdGlwXCIgZGF0YS1wbGFjZW1lbnQ9XCJyaWdodFwiIHRpdGxlPVwiRG93bmxvYWQgRXhjZWxcIiAoY2xpY2spPVwiZXhwb3J0VG9DU1YoKTtcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmEgZmEtZmlsZS1leGNlbC1vXCIgc3R5bGU9XCJjb2xvcjpncmVlbjtcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFub0RhdGFcIiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgICAgPGZvcm0gY2xhc3M9XCJmb3JtLWlubGluZSBwdWxsLXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZXhhbXBsZUlucHV0TmFtZTJcIj5TZWFyY2ggJm5ic3A7Jm5ic3A7PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBpZD1cImV4YW1wbGVJbnB1dE5hbWUyXCIgbmFtZT1cInNjaHR4dFwiIFsobmdNb2RlbCldPVwic2VhcmNoRlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Zvcm0+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGlkPVwid3JhcFwiIHN0eWxlPVwib3ZlcmZsb3c6IGF1dG87d2lkdGg6IDEwMCU7aGVpZ2h0OiBjYWxjKDEwMHZoIC0gMjEwcHgpO1wiPlxyXG4gICAgICAgICAgICA8dGFibGUgY2xhc3M9XCJkaXNwbGF5VGFibGVcIiAqbmdJZj1cIiFub0RhdGFcIj5cclxuICAgICAgICAgICAgICA8dGhlYWQ+XHJcbiAgICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJwb3NyZWxcIj5cclxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaGRyIG9mIHJlc3VsdFZpZXcgO2xldCBqPWluZGV4O1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0aCAqbmdJZj1cImhkciAhPSAncmVxdWVzdF9hdHRyJyAmJiBoZHIgIT0gJ3JlcXVlc3RfYXR0clZhbCdcIiBub3dyYXAgKGNsaWNrKT1cInNldE9yZGVyKGhkcixqKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAge3tyZXN1bHRWaWV3RHRsW2hkcl19fVxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW2hpZGRlbl09XCJyZXZlcnNlXCIgKm5nSWY9XCJzaG93YXJyID09PSBqXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtYXJyb3ctZG93blwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIFtoaWRkZW5dPVwiIXJldmVyc2VcIiAqbmdJZj1cInNob3dhcnIgPT09IGpcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1hcnJvdy11cFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgPC90aGVhZD5cclxuICAgICAgICAgICAgICA8dGJvZHkgc3R5bGU9XCJoZWlnaHQ6NDAwcHg7b3ZlcmZsb3c6YXV0bztcIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHBrdGR0bCBvZiBsb2FkUmVzdWx0IHwgdGFibGVTZWFyY2g6c2VhcmNoRiB8IG9yZGVyQnk6IG9yZGVyOnJldmVyc2UgfCBwYWdpbmF0ZTogeyBpdGVtc1BlclBhZ2U6IHBhZ2VTaXplLCBjdXJyZW50UGFnZTogcCB9OyBsZXQgcGt0aSA9IGluZGV4IDt0cmFja0J5OnN0b2NrX2lkblwiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgPHRyIFtuZ0NsYXNzXT1cInsnZXZlbic6cGt0aSUyPT0wLCdvZGQnOnBrdGklMj09MX1cIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhdHQgb2YgcmVzdWx0VmlldzsgbGV0IGogPSBpbmRleDtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZCAqbmdJZj1cImF0dCAhPSAncmVxdWVzdF9hdHRyJyAmJiBhdHQgIT0gJ3JlcXVlc3RfYXR0clZhbCdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIm1heC13aWR0aDogMzAwcHg7d2hpdGUtc3BhY2U6IG5vcm1hbDtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7J3dvcmQtYnJlYWsnIDogYXR0ID09ICdkc2NyJyAgPyAnYnJlYWstd29yZCc6ICdub3JtYWwnLCd3aGl0ZS1zcGFjZSc6IGF0dCAhPSAnZHNjcic/ICdub3dyYXAnOidub3JtYWwnfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57e3BrdGR0bFthdHRdfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgPC90Ym9keT5cclxuICAgICAgICAgICAgPC90YWJsZT5cclxuICAgICAgICAgICAgPHAgKm5nSWY9XCJzZWFyY2hSZXN1bHREdGxMaXN0Lmxlbmd0aD09MFwiIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyXCI+PGI+IE5vIERhdGEgRm91bmQgITwvYj48L3A+XHJcbiAgICAgICAgICAgIDwhLS0gXCJtYXgtd2lkdGg6IDMwMHB4O3doaXRlLXNwYWNlOiBub3JtYWw7d29yZC1icmVhazogYnJlYWstd29yZDsgLS0+XHJcbiAgICAgICAgICAgIDwhLS0gPHBhZ2luYXRpb24tY29udHJvbHMgKHBhZ2VDaGFuZ2UpPVwicCA9ICRldmVudFwiICpuZ0lmPVwicHJvY2Vzc0RldGFpbHMubGVuZ3RoPjBcIiBjbGFzcz1cInB1bGwtcmlnaHRcIj48L3BhZ2luYXRpb24tY29udHJvbHM+IC0tPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImFjdGlvbkZvb3RlclwiPlxyXG4gICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJidG4gYnRuLXN1Y2Nlc3MgY0J0biBwdWxsLWxlZnRcIiBhcHBBcHBOb0RibENsaWNrIChjbGljayk9XCJvblN1Ym1pdChmKVwiPkZldGNoPC9idXR0b24+XHJcbiAgICA8cGFnaW5hdGlvbi1jb250cm9scyBzdHlsZT1cImJhY2tncm91bmQ6IHdoaXRlO1wiIChwYWdlQ2hhbmdlKT1cInA9JGV2ZW50XCIgY2xhc3M9XCJwdWxsLXJpZ2h0XCI+PC9wYWdpbmF0aW9uLWNvbnRyb2xzPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj4iXX0=
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Public API Surface of ezlib
|
|
3
|
+
*/
|
|
4
|
+
export * from './lib/ezlib.module';
|
|
5
|
+
export * from './lib/auth/auth.guard';
|
|
6
|
+
export * from './lib/call-info/callinfo.component';
|
|
7
|
+
export * from './lib/comman-service/comman-service.service';
|
|
8
|
+
export * from './lib/comman-service/share-data-service.service';
|
|
9
|
+
export * from './lib/ezheader/header.component';
|
|
10
|
+
export * from './lib/file-upload/fileupload.component';
|
|
11
|
+
export * from './lib/file-upload-log/file-upload-log.component';
|
|
12
|
+
export * from './lib/globle/upload-service.service';
|
|
13
|
+
export * from './lib/fileupload-module/fileupload-dashboard/fileupload-dashboard.component';
|
|
14
|
+
// export * from './lib/fileupload-module/fileupload.module';
|
|
15
|
+
export * from './lib/fileupload-module/fileupload-routing.module';
|
|
16
|
+
export * from './lib/footer/footer.component';
|
|
17
|
+
export * from './lib/globle/common-pdf.service';
|
|
18
|
+
export * from './lib/globle/globle-env.service';
|
|
19
|
+
export * from './lib/globle/memo-report.service';
|
|
20
|
+
export * from './lib/globle/pdf-service.service';
|
|
21
|
+
export * from './lib/globle/shared-services.service';
|
|
22
|
+
export * from './lib/header/header.component';
|
|
23
|
+
export * from './lib/invalid/invalid.component';
|
|
24
|
+
export * from './lib/logout/logout.component';
|
|
25
|
+
export * from './lib/sessionend/session-end.guard';
|
|
26
|
+
export * from './lib/stock-service/lazyload.service';
|
|
27
|
+
export * from './lib/stock-service/stock-service.service';
|
|
28
|
+
export * from './lib/contact-service/contact-service.service';
|
|
29
|
+
export * from './lib/pricing-service/pricing.service';
|
|
30
|
+
export * from './lib/bi-service/bi.service';
|
|
31
|
+
export * from './lib/utility/app-no-dbl-click.directive';
|
|
32
|
+
export * from './lib/utility/constants';
|
|
33
|
+
export * from './lib/utility/formate-num-field.pipe';
|
|
34
|
+
export * from './lib/utility/search-pipe.pipe';
|
|
35
|
+
export * from './lib/utility/table-search.pipe';
|
|
36
|
+
export * from './lib/utility/tranform.directive';
|
|
37
|
+
export * from './lib/utility/contact-table-search.pipe';
|
|
38
|
+
export * from './lib/pipes/number-with-commas.pipe';
|
|
39
|
+
export * from './lib/pipes/order-by-pipe.pipe';
|
|
40
|
+
export * from './lib/pipes/selectedCount';
|
|
41
|
+
export * from './lib/pipes/sum.pipe';
|
|
42
|
+
export * from './lib/utility/selective-preloading-strategy';
|
|
43
|
+
export * from './lib/menu-right/menu-right.component';
|
|
44
|
+
export * from './lib/report-format/report-format.component';
|
|
45
|
+
export * from './lib/admin-service/admin-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/contact-search/contact-search.component';
|
|
51
|
+
export * from './lib/websearch-history/websearch-history.component';
|
|
52
|
+
export * from './lib/attribute-definition/attribute-definition.component';
|
|
53
|
+
export * from './lib/analysis-search/analysis-search.component';
|
|
54
|
+
export * from './lib/pkt-data/pkt-data.component';
|
|
55
|
+
export * from './lib/qa-analysis/qa-analysis.component';
|
|
56
|
+
export * from './lib/assort-service/assort-service.service';
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2V6bGliL3NyYy9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyw2RUFBNkUsQ0FBQztBQUM1Riw2REFBNkQ7QUFDN0QsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsMkRBQTJELENBQUM7QUFDMUUsY0FBYyx3REFBd0QsQ0FBQztBQUN2RSxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyxxREFBcUQsQ0FBQztBQUNwRSxjQUFjLDJEQUEyRCxDQUFDO0FBQzFFLGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsNkNBQTZDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgZXpsaWJcclxuICovXHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9lemxpYi5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdXRoL2F1dGguZ3VhcmQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jYWxsLWluZm8vY2FsbGluZm8uY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tbWFuLXNlcnZpY2UvY29tbWFuLXNlcnZpY2Uuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbW1hbi1zZXJ2aWNlL3NoYXJlLWRhdGEtc2VydmljZS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZXpoZWFkZXIvaGVhZGVyLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpbGUtdXBsb2FkL2ZpbGV1cGxvYWQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZmlsZS11cGxvYWQtbG9nL2ZpbGUtdXBsb2FkLWxvZy5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9nbG9ibGUvdXBsb2FkLXNlcnZpY2Uuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpbGV1cGxvYWQtbW9kdWxlL2ZpbGV1cGxvYWQtZGFzaGJvYXJkL2ZpbGV1cGxvYWQtZGFzaGJvYXJkLmNvbXBvbmVudCc7XHJcbi8vIGV4cG9ydCAqIGZyb20gJy4vbGliL2ZpbGV1cGxvYWQtbW9kdWxlL2ZpbGV1cGxvYWQubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZmlsZXVwbG9hZC1tb2R1bGUvZmlsZXVwbG9hZC1yb3V0aW5nLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Zvb3Rlci9mb290ZXIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZ2xvYmxlL2NvbW1vbi1wZGYuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2dsb2JsZS9nbG9ibGUtZW52LnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9nbG9ibGUvbWVtby1yZXBvcnQuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2dsb2JsZS9wZGYtc2VydmljZS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZ2xvYmxlL3NoYXJlZC1zZXJ2aWNlcy5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvaGVhZGVyL2hlYWRlci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbnZhbGlkL2ludmFsaWQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbG9nb3V0L2xvZ291dC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXNzaW9uZW5kL3Nlc3Npb24tZW5kLmd1YXJkJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc3RvY2stc2VydmljZS9sYXp5bG9hZC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc3RvY2stc2VydmljZS9zdG9jay1zZXJ2aWNlLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb250YWN0LXNlcnZpY2UvY29udGFjdC1zZXJ2aWNlLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9wcmljaW5nLXNlcnZpY2UvcHJpY2luZy5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYmktc2VydmljZS9iaS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdXRpbGl0eS9hcHAtbm8tZGJsLWNsaWNrLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxpdHkvY29uc3RhbnRzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdXRpbGl0eS9mb3JtYXRlLW51bS1maWVsZC5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdXRpbGl0eS9zZWFyY2gtcGlwZS5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdXRpbGl0eS90YWJsZS1zZWFyY2gucGlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxpdHkvdHJhbmZvcm0uZGlyZWN0aXZlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdXRpbGl0eS9jb250YWN0LXRhYmxlLXNlYXJjaC5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvcGlwZXMvbnVtYmVyLXdpdGgtY29tbWFzLnBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9waXBlcy9vcmRlci1ieS1waXBlLnBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9waXBlcy9zZWxlY3RlZENvdW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvcGlwZXMvc3VtLnBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlsaXR5L3NlbGVjdGl2ZS1wcmVsb2FkaW5nLXN0cmF0ZWd5JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbWVudS1yaWdodC9tZW51LXJpZ2h0LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3JlcG9ydC1mb3JtYXQvcmVwb3J0LWZvcm1hdC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hZG1pbi1zZXJ2aWNlL2FkbWluLXNlcnZpY2Uuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3N5c3RlbS1tb2R1bGUvc3lzdGVtL3N5c3RlbS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zeXN0ZW0tbW9kdWxlL3N5c3RlbS1zZXJ2aWNlL3N5c3RlbS1zZXJ2aWNlLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zeXN0ZW0tbW9kdWxlL3N5c3RlbS1zZXJ2aWNlL3VwbG9hZC1maWxlLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zeXN0ZW0tbW9kdWxlL3N1YmZvcm0vc3ViZm9ybS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb250YWN0LXNlYXJjaC9jb250YWN0LXNlYXJjaC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi93ZWJzZWFyY2gtaGlzdG9yeS93ZWJzZWFyY2gtaGlzdG9yeS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdHRyaWJ1dGUtZGVmaW5pdGlvbi9hdHRyaWJ1dGUtZGVmaW5pdGlvbi5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hbmFseXNpcy1zZWFyY2gvYW5hbHlzaXMtc2VhcmNoLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BrdC1kYXRhL3BrdC1kYXRhLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3FhLWFuYWx5c2lzL3FhLWFuYWx5c2lzLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Fzc29ydC1zZXJ2aWNlL2Fzc29ydC1zZXJ2aWNlLnNlcnZpY2UnO1xyXG4iXX0=
|