ngx-render-material-forms 1.7.9 → 1.8.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/lib/components/add-on-products/add-on-products.component.mjs +9 -5
- package/esm2020/lib/components/common.service.mjs +76 -3
- package/esm2020/lib/components/datagrid/datagrid.component.mjs +2 -2
- package/esm2020/lib/components/select/select.component.mjs +39 -38
- package/fesm2015/ngx-render-material-forms.js +123 -43
- package/fesm2015/ngx-render-material-forms.mjs.map +1 -1
- package/fesm2020/ngx-render-material-forms.js +123 -43
- package/fesm2020/ngx-render-material-forms.mjs.map +1 -1
- package/lib/components/add-on-products/add-on-products.component.d.ts +1 -0
- package/lib/components/common.service.d.ts +46 -0
- package/lib/components/select/select.component.d.ts +0 -4
- package/package.json +1 -1
|
@@ -13,9 +13,60 @@ export class CommonService {
|
|
|
13
13
|
this.dropdownflag$ = this.setFlag.asObservable(); // Observable that emits the boolean value
|
|
14
14
|
this.holy = '';
|
|
15
15
|
this.grail = '';
|
|
16
|
+
//static sort_5 = '4sw==';
|
|
17
|
+
this.sort_5 = 'oOA==';
|
|
18
|
+
this.Lsort_5 = 'L/w==';
|
|
19
|
+
this.Jsort_5 = 'BaQ==';
|
|
20
|
+
this.Psort_5 = 'WVQ==';
|
|
21
|
+
//static sales_2 = '2+T2NX';
|
|
22
|
+
this.sales_2 = 'gupVC1';
|
|
23
|
+
this.Lsales_2 = 'DyLI+G';
|
|
24
|
+
this.Jsales_2 = '5g63ak';
|
|
25
|
+
this.Psales_2 = 'HFQDgE';
|
|
26
|
+
//static Mobile_4 = 'RR12R';
|
|
27
|
+
this.Mobile_4 = 'NV9VK';
|
|
28
|
+
this.LMobile_4 = '+P91l';
|
|
29
|
+
this.JMobile_4 = 'N+Bxw';
|
|
30
|
+
this.PMobile_4 = 'j4UMt';
|
|
31
|
+
//static Id_2 = 'qUBQE';
|
|
32
|
+
this.Id_2 = 'W7TJv';
|
|
33
|
+
this.LId_2 = 'kAJ87';
|
|
34
|
+
this.JId_2 = 'I4PMB';
|
|
35
|
+
this.PId_2 = '4Ha4U';
|
|
36
|
+
// static Name_1 = '8F/';
|
|
37
|
+
this.Name_1 = 'd3u';
|
|
38
|
+
this.LName_1 = 'UwX';
|
|
39
|
+
this.JName_1 = 'mCc';
|
|
40
|
+
this.PName_1 = 'nyP';
|
|
41
|
+
this.city = 'Vq'; //1
|
|
42
|
+
this.state = 'drA2'; //4
|
|
43
|
+
this.region = 'E/f'; //2
|
|
44
|
+
this.territory = 'gZnA=='; //6
|
|
45
|
+
this.country = '2sMK'; //5
|
|
46
|
+
this.continent = 'Q5N2X'; //3
|
|
47
|
+
this.Jcity = 'lk'; //1
|
|
48
|
+
this.Jstate = 'rswL'; //4
|
|
49
|
+
this.Jregion = 'xsH'; //2
|
|
50
|
+
this.Jterritory = 'Xsow=='; //6
|
|
51
|
+
this.Jcountry = 'n0bs'; //5
|
|
52
|
+
this.Jcontinent = 'hQOoI'; //3
|
|
53
|
+
this.Lcity = 'Aw'; //1
|
|
54
|
+
this.Lstate = 'hrmx'; //4
|
|
55
|
+
this.Lregion = 'MMC'; //2
|
|
56
|
+
this.Lterritory = 'vVGQ=='; //6
|
|
57
|
+
this.Lcountry = 'IqPc'; //5
|
|
58
|
+
this.Lcontinent = 'CttR+'; //3
|
|
59
|
+
this.Pcity = '7h'; //1
|
|
60
|
+
this.Pstate = 'JtNz'; //4
|
|
61
|
+
this.Pregion = 'FTl'; //2
|
|
62
|
+
this.Pterritory = '/v+g=='; //6
|
|
63
|
+
this.Pcountry = 'WFDd'; //5
|
|
64
|
+
this.Pcontinent = 'sDt6N'; //3
|
|
16
65
|
this.currentUser = JSON.parse(localStorage.getItem('currentUser'));
|
|
17
|
-
this.holy = CryptoJS.enc.Base64.parse('8F/2+T2NXqUBQERR12R4sw==');
|
|
18
|
-
this.grail = CryptoJS.enc.Base64.parse('yE0CgQbYzK5wqeoKTVzhOQ==');
|
|
66
|
+
// this.holy = CryptoJS.enc.Base64.parse('8F/2+T2NXqUBQERR12R4sw==');
|
|
67
|
+
//this.grail = CryptoJS.enc.Base64.parse('yE0CgQbYzK5wqeoKTVzhOQ==');
|
|
68
|
+
this.holy = CryptoJS.enc.Base64.parse(this.getcombodeal());
|
|
69
|
+
this.grail = CryptoJS.enc.Base64.parse(this.getglobedata());
|
|
19
70
|
this.paramsData = JSON.parse(localStorage.getItem('productPickerParams'));
|
|
20
71
|
}
|
|
21
72
|
getBaseApiUrl() {
|
|
@@ -158,6 +209,28 @@ export class CommonService {
|
|
|
158
209
|
return newProductPickerFlag && Object.keys(newProductPickerFlag).some(key => key.toLocaleLowerCase() === attributeName.toLowerCase() &&
|
|
159
210
|
newProductPickerFlag[key].toLowerCase() === "true");
|
|
160
211
|
}
|
|
212
|
+
getglobedata() {
|
|
213
|
+
const hostMappings = {
|
|
214
|
+
'stage.vartopia.com': this.city + this.region + this.continent + this.state + this.country + this.territory,
|
|
215
|
+
'lincoln.vartopia.com': this.Lcity + this.Lregion + this.Lcontinent + this.Lstate + this.Lcountry + this.Lterritory,
|
|
216
|
+
'jackson.vartopia.com': this.Jcity + this.Jregion + this.Jcontinent + this.Jstate + this.Jcountry + this.Jterritory,
|
|
217
|
+
'my.vartopia.com': this.Pcity + this.Pregion + this.Pcontinent + this.Pstate + this.Pcountry + this.Pterritory,
|
|
218
|
+
'localhost': this.city + this.region + this.continent + this.state + this.country + this.territory,
|
|
219
|
+
};
|
|
220
|
+
const hostname = window.location.hostname;
|
|
221
|
+
return hostMappings[hostname] || '';
|
|
222
|
+
}
|
|
223
|
+
getcombodeal() {
|
|
224
|
+
const hostMappings = {
|
|
225
|
+
'stage.vartopia.com': this.Name_1 + this.sales_2 + this.Id_2 + this.Mobile_4 + this.sort_5,
|
|
226
|
+
'lincoln.vartopia.com': this.LName_1 + this.Lsales_2 + this.LId_2 + this.LMobile_4 + this.Lsort_5,
|
|
227
|
+
'jackson.vartopia.com': this.JName_1 + this.Jsales_2 + this.JId_2 + this.JMobile_4 + this.Jsort_5,
|
|
228
|
+
'my.vartopia.com': this.PName_1 + this.Psales_2 + this.PId_2 + this.PMobile_4 + this.Psort_5,
|
|
229
|
+
'localhost': this.Name_1 + this.sales_2 + this.Id_2 + this.Mobile_4 + this.sort_5,
|
|
230
|
+
};
|
|
231
|
+
const hostname = window.location.hostname;
|
|
232
|
+
return hostMappings[hostname] || '';
|
|
233
|
+
}
|
|
161
234
|
}
|
|
162
235
|
CommonService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: CommonService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
163
236
|
CommonService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: CommonService, providedIn: 'root' });
|
|
@@ -167,4 +240,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
|
|
|
167
240
|
providedIn: 'root'
|
|
168
241
|
}]
|
|
169
242
|
}], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
|
|
170
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmVuZGVyLW1hdGVyaWFsLWZvcm1zL3NyYy9saWIvY29tcG9uZW50cy9jb21tb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN6QyxPQUFPLEtBQUssUUFBUSxNQUFNLFdBQVcsQ0FBQztBQUV0QyxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDOzs7QUFVbkQsTUFBTSxPQUFPLGFBQWE7SUFZeEIsWUFBbUIsSUFBZ0I7UUFBaEIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQU4zQix5QkFBb0IsR0FBRyxJQUFJLGVBQWUsQ0FBUSxFQUFFLENBQUMsQ0FBQztRQUM5RCxtQkFBYyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNsRCxZQUFPLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUMsQ0FBQyx3QkFBd0I7UUFDL0Usa0JBQWEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsMENBQTBDO1FBQ3ZGLFNBQUksR0FBUSxFQUFFLENBQUM7UUFDZixVQUFLLEdBQVEsRUFBRSxDQUFDO1FBRWQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztRQUNuRSxJQUFJLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBQ2xFLElBQUksQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxNQUFN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LElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUMxRSxHQUFHLENBQUMsaUJBQWlCLEVBQUUsS0FBSyxhQUFhLENBQUMsV0FBVyxFQUFFO1lBQ3ZELG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxLQUFLLE1BQU0sQ0FDbkQsQ0FBQztJQUNKLENBQUM7OzBHQXBMVSxhQUFhOzhHQUFiLGFBQWEsY0FGWixNQUFNOzJGQUVQLGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBpc051bGxPclVuZGVmaW5lZCB9IGZyb20gJ3V0aWwnO1xyXG5pbXBvcnQgKiBhcyBDcnlwdG9KUyBmcm9tICdjcnlwdG8tanMnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmludGVyZmFjZSBWZW5kb3JQcm9kdWN0c1Jlc3BvbnNlIHtcclxuICBjb2RlOiBudW1iZXI7XHJcbiAgZGF0YTogYW55O1xyXG4gIG1lc3NhZ2U6IHN0cmluZztcclxuICBzdGF0dXNDb2RlOiBudW1iZXI7XHJcbn1cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29tbW9uU2VydmljZSB7XHJcbiAgcGFyYW1zRGF0YTogYW55O1xyXG4gIGluY2x1ZGVEZXNjcmlwdGlvbjogYW55O1xyXG4gIHZlbmRvcklkOiBhbnk7XHJcbiAgb25seUFjdGl2ZTogYW55O1xyXG4gIGN1cnJlbnRVc2VyOiBhbnk7XHJcbiAgcHJpdmF0ZSBkcm9wZG93bkl0ZW1zU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55W10+KFtdKTtcclxuICBkcm9wZG93bkl0ZW1zJCA9IHRoaXMuZHJvcGRvd25JdGVtc1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XHJcbiAgcHJpdmF0ZSBzZXRGbGFnID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7IC8vIEluaXRpYWxpemUgd2l0aCBmYWxzZVxyXG4gIGRyb3Bkb3duZmxhZyQgPSB0aGlzLnNldEZsYWcuYXNPYnNlcnZhYmxlKCk7IC8vIE9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgYm9vbGVhbiB2YWx1ZVxyXG4gIGhvbHk6IGFueSA9ICcnO1xyXG4gIGdyYWlsOiBhbnkgPSAnJztcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgaHR0cDogSHR0cENsaWVudCkge1xyXG4gICAgdGhpcy5jdXJyZW50VXNlciA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2N1cnJlbnRVc2VyJykpO1xyXG4gICAgdGhpcy5ob2x5ID0gQ3J5cHRvSlMuZW5jLkJhc2U2NC5wYXJzZSgnOEYvMitUMk5YcVVCUUVSUjEyUjRzdz09Jyk7XHJcbiAgICB0aGlzLmdyYWlsID0gQ3J5cHRvSlMuZW5jLkJhc2U2NC5wYXJzZSgneUUwQ2dRYll6SzV3cWVvS1RWemhPUT09Jyk7XHJcbiAgICB0aGlzLnBhcmFtc0RhdGEgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdwcm9kdWN0UGlja2VyUGFyYW1zJykpO1xyXG4gIH1cclxuXHJcbiAgZ2V0QmFzZUFwaVVybCgpOiBzdHJpbmcgfCBudWxsIHtcclxuICAgIGNvbnN0IGJhc2VVcmxNYXBwaW5nID0ge1xyXG4gICAgICAnbG9jYWxob3N0JzogJ2h0dHA6Ly9sb2NhbGhvc3Q6NTg1MDQnLFxyXG4gICAgICAnbGluY29sbi52YXJ0b3BpYS5jb20nOiAnaHR0cHM6Ly9saW5jb2xuLWFwaS52YXJ0b3BpYS5jb20nLFxyXG4gICAgICAnc3RhZ2UudmFydG9waWEuY29tJzogJ2h0dHBzOi8vc3RhZ2UtYXBpLnZhcnRvcGlhLmNvbScsXHJcbiAgICAgICdteS52YXJ0b3BpYS5jb20nOiAnaHR0cHM6Ly9yZWFnYW4tYXBpLnZhcnRvcGlhLmNvbScsXHJcbiAgICAgICdqYWNrc29uLnZhcnRvcGlhLmNvbSc6ICdodHRwczovL2phY2tzb24tYXBpLnZhcnRvcGlhLmNvbSdcclxuICAgIH07XHJcblxyXG4gICAgLy8gR2V0IHRoZSBjdXJyZW50IGhvc3RuYW1lXHJcbiAgICBjb25zdCBob3N0bmFtZSA9IHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZTtcclxuICAgIHJldHVybiBiYXNlVXJsTWFwcGluZ1tob3N0bmFtZV0gfHwgbnVsbDtcclxuICB9XHJcblxyXG4gIHNjcnVtYmxlKG1zZykge1xyXG4gICAgaWYgKCFpc051bGxPclVuZGVmaW5lZChtc2cpKSB7XHJcbiAgICAgIHZhciBjb25jZWFsID0gdGhpcy5nZXRjYW1wYWlnbihtc2csIHRoaXMuaG9seSwgdGhpcy5ncmFpbCk7XHJcbiAgICAgIHZhciBzaGEyNTYgPSBDcnlwdG9KUy5IbWFjU0hBMjU2KENyeXB0b0pTLmVuYy5CYXNlNjQuc3RyaW5naWZ5KHRoaXMuZ3JhaWwpICsgY29uY2VhbC50b1N0cmluZygpLCBDcnlwdG9KUy5lbmMuQmFzZTY0LnN0cmluZ2lmeSh0aGlzLmhvbHkpKTtcclxuICAgICAgdmFyIGhhc2hJbkJhc2U2NCA9IENyeXB0b0pTLmVuYy5CYXNlNjQuc3RyaW5naWZ5KHNoYTI1Nik7XHJcbiAgICAgIGxldCBrZXlWYWx1ZSA9IHtcclxuICAgICAgICBcInZhbHVlXCI6IGNvbmNlYWwudG9TdHJpbmcoKSxcclxuICAgICAgICBcIm1hY1wiOiBoYXNoSW5CYXNlNjRcclxuICAgICAgfTtcclxuICAgICAgdmFyIHJlc3VsdCA9IEpTT04uc3RyaW5naWZ5KGtleVZhbHVlKTtcclxuICAgICAgdmFyIGp1bWJsZWQgPSBDcnlwdG9KUy5lbmMuVXRmOC5wYXJzZShyZXN1bHQpO1xyXG4gICAgICByZXR1cm4gQ3J5cHRvSlMuZW5jLkJhc2U2NC5zdHJpbmdpZnkoanVtYmxlZCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRjYW1wYWlnbihkYXRhOiBhbnksIGhvbHk6IGFueSwgZ3JhaWw6IGFueSkge1xyXG4gICAgcmV0dXJuIENyeXB0b0pTLkFFUy5lbmNyeXB0KGRhdGEudG9TdHJpbmcoKSwgaG9seSxcclxuICAgICAge1xyXG4gICAgICAgIGJsb2NrU2l6ZTogMTI4LFxyXG4gICAgICAgIGl2OiBncmFpbCxcclxuICAgICAgICBtb2RlOiBDcnlwdG9KUy5tb2RlLkNCQyxcclxuICAgICAgICBwYWRkaW5nOiBDcnlwdG9KUy5wYWQuUGtjczdcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKiBJbnRpYWxpemF0aW9uIG9mIGFwaSBwYXRoIGFuZCBxdWVyeXBhcmFtcyAqL1xyXG4gIGluaXRpYWxpemVBcGlQYXRoKGdldFVybCwgcXVlcnlQYXJhbXM6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBpZiAocXVlcnlQYXJhbXM/Lmxlbmd0aCkge1xyXG4gICAgICBjb25zdCBjaGFuZ2VUb09iamVjdCA9IHRoaXMuY29udmVydFRvT2JqZWN0KHF1ZXJ5UGFyYW1zKTtcclxuICAgICAgaWYgKE9iamVjdC5rZXlzKGNoYW5nZVRvT2JqZWN0KS5sZW5ndGgpIHtcclxuICAgICAgICBjb25zdCBxdWVyeVN0cmluZyA9IHRoaXMuY29udmVydFRvUXVlcnlTdHJpbmcoY2hhbmdlVG9PYmplY3QpO1xyXG4gICAgICAgIGNvbnN0IGJhc2VBcGlVcmwgPSB0aGlzLmdldEJhc2VBcGlVcmwoKTtcclxuICAgICAgICB2YXIgYXBpVXJsID0gYCR7YmFzZUFwaVVybH0vYXBpL2AgKyBnZXRVcmw7XHJcbiAgICAgICAgYXBpVXJsICs9ICc/JyArIHF1ZXJ5U3RyaW5nO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFZlbmRvclByb2R1Y3RzUmVzcG9uc2U+KGFwaVVybCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qIEZ1bmN0b24gZm9yIGNvbnZlcnQgYXJyYXkgdG8gb2JqZWN0ICovXHJcbiAgY29udmVydFRvT2JqZWN0KHF1ZXJ5UGFyYW1zKSB7XHJcbiAgICBpZiAocXVlcnlQYXJhbXMubGVuZ3RoKSB7XHJcbiAgICAgIHZhciBvYmogPSB7fTtcclxuICAgICAgcXVlcnlQYXJhbXMuZm9yRWFjaChmdW5jdGlvbiAoaXRlbSkge1xyXG4gICAgICAgIG9ialtpdGVtLmtleV0gPSBpdGVtLnZhbHVlO1xyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIG9iajtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGxvYWRQcm9kdWN0cyhwYWdlTnVtYmVyLCBwYXplU2l6ZSwgc2VhcmNoOiBzdHJpbmcgPSAnJywgb25seUFjdGl2ZTogYm9vbGVhbiA9IHRydWUsIGRlc2NyaXB0aW9uOiBib29sZWFuID0gZmFsc2UsIGxldmVsT25lSWQ6IGFueSwgbGV2ZWxUd29JZDogYW55LCBsZXZlbFRocmVlSWQ6IGFueSwgbGV2ZWxGb3VySWQ6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBjb25zdCBiYXNlQXBpVXJsID0gdGhpcy5nZXRCYXNlQXBpVXJsKCk7XHJcbiAgICBjb25zdCB2ZW5kb3JJZCA9IHRoaXMuZ2V0VmFsdWVCeUtleSh0aGlzLnBhcmFtc0RhdGEsICd2ZW5kb3JJZCcpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8VmVuZG9yUHJvZHVjdHNSZXNwb25zZT4oYCR7YmFzZUFwaVVybH0vYXBpL1ZlbmRvckZvcm1CdWlsZGVyL0dldFZlbmRvclByb2R1Y3RzVjI/dmVuZG9ySWQ9JHt2ZW5kb3JJZH0mcGFnZU51bWJlcj0ke3BhZ2VOdW1iZXJ9JnBhZ2VTaXplPSR7cGF6ZVNpemV9JnNlYXJjaD0ke3NlYXJjaH0mb25seUFjdGl2ZT0ke29ubHlBY3RpdmV9JmluY2x1ZGVEZXNjcmlwdGlvbj0ke2Rlc2NyaXB0aW9ufSZsZXZlbE9uZT0ke2xldmVsT25lSWR9JmxldmVsVHdvPSR7bGV2ZWxUd29JZH0mbGV2ZWxUaHJlZT0ke2xldmVsVGhyZWVJZH0mbGV2ZWxGb3VyPSR7bGV2ZWxGb3VySWR9YCk7XHJcbiAgfVxyXG5cclxuICBsaXN0U3ViQ2F0ZWdvcnkoY2F0ZWdvcnk6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBjb25zdCB2ZW5kb3JJZCA9IHRoaXMuZ2V0VmFsdWVCeUtleSh0aGlzLnBhcmFtc0RhdGEsICd2ZW5kb3JJZCcpO1xyXG4gICAgY29uc3QgYmFzZUFwaVVybCA9IHRoaXMuZ2V0QmFzZUFwaVVybCgpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8VmVuZG9yUHJvZHVjdHNSZXNwb25zZT4oYCR7YmFzZUFwaVVybH0vYXBpL1ZlbmRvckZvcm1CdWlsZGVyL0dldFByb2R1Y3RzU3ViQ2F0ZWdvcnk/dmVuZG9ySWQ9JHt2ZW5kb3JJZH0mY2F0ZWdvcnlOYW1lPSR7Y2F0ZWdvcnl9YClcclxuICB9XHJcblxyXG4gIC8qIEFwcGVuZCBrZXkgYW5kIHZhbHVlIHRvIHF1ZXJ5IHN0cmluZyAqL1xyXG4gIGNvbnZlcnRUb1F1ZXJ5U3RyaW5nKHF1ZXJ5UGFyYW1zKSB7XHJcbiAgICBjb25zdCBxdWVyeVN0cmluZyA9IE9iamVjdC5rZXlzKHF1ZXJ5UGFyYW1zKVxyXG4gICAgICAubWFwKGtleSA9PiB7XHJcbiAgICAgICAgaWYgKHF1ZXJ5UGFyYW1zW2tleV0gIT09ICcnICYmIHF1ZXJ5UGFyYW1zW2tleV0gIT09IG51bGwpIHtcclxuICAgICAgICAgIHJldHVybiBlbmNvZGVVUklDb21wb25lbnQoa2V5KSArICc9JyArIGVuY29kZVVSSUNvbXBvbmVudChxdWVyeVBhcmFtc1trZXldKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaWYgKHF1ZXJ5UGFyYW1zLmhhc093blByb3BlcnR5KCdzZWFyY2gnKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KGtleSkgKyAnPScgKyBlbmNvZGVVUklDb21wb25lbnQocXVlcnlQYXJhbXNba2V5XSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgICAuam9pbignJicpO1xyXG4gICAgcmV0dXJuIHF1ZXJ5U3RyaW5nO1xyXG4gIH1cclxuXHJcbiAgbGlzdFByb2R1Y3RDYXRlZ29yeSgpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgdmVuZG9ySWQgPSB0aGlzLmdldFZhbHVlQnlLZXkodGhpcy5wYXJhbXNEYXRhLCAndmVuZG9ySWQnKTtcclxuICAgIGNvbnN0IGJhc2VBcGlVcmwgPSB0aGlzLmdldEJhc2VBcGlVcmwoKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFZlbmRvclByb2R1Y3RzUmVzcG9uc2U+KGAke2Jhc2VBcGlVcmx9L2FwaS9WZW5kb3JGb3JtQnVpbGRlci9HZXRQcm9kdWN0c0NhdGVnb3J5P3ZlbmRvcklkPSR7dmVuZG9ySWR9YCk7XHJcbiAgfVxyXG5cclxuICBwcm9kdWN0TGV2ZWxPbmUoKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IGJhc2VBcGlVcmwgPSB0aGlzLmdldEJhc2VBcGlVcmwoKTtcclxuICAgIGNvbnN0IHZlbmRvcklkID0gdGhpcy5nZXRWYWx1ZUJ5S2V5KHRoaXMucGFyYW1zRGF0YSwgJ3ZlbmRvcklkJyk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxWZW5kb3JQcm9kdWN0c1Jlc3BvbnNlPihgJHtiYXNlQXBpVXJsfS9hcGkvVmVuZG9yRm9ybUJ1aWxkZXIvR2V0UHJvZHVjdExldmVsT25lP3ZlbmRvcklkPSR7dmVuZG9ySWR9YCk7XHJcbiAgfVxyXG5cclxuICBwcm9kdWN0TGV2ZWxUd28obGV2ZWxPbmVJZDogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IGJhc2VBcGlVcmwgPSB0aGlzLmdldEJhc2VBcGlVcmwoKTtcclxuICAgIGNvbnN0IHZlbmRvcklkID0gdGhpcy5nZXRWYWx1ZUJ5S2V5KHRoaXMucGFyYW1zRGF0YSwgJ3ZlbmRvcklkJyk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxWZW5kb3JQcm9kdWN0c1Jlc3BvbnNlPihgJHtiYXNlQXBpVXJsfS9hcGkvVmVuZG9yRm9ybUJ1aWxkZXIvR2V0UHJvZHVjdExldmVsVHdvP2xldmVsT25lSWQ9JHtsZXZlbE9uZUlkfSZ2ZW5kb3JJZD0ke3ZlbmRvcklkfWApO1xyXG4gIH1cclxuXHJcbiAgcHJvZHVjdExldmVsVGhyZWUobGV2ZWxPbmVJZDogYW55LCBsZXZlbFR3b0lkOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgYmFzZUFwaVVybCA9IHRoaXMuZ2V0QmFzZUFwaVVybCgpO1xyXG4gICAgY29uc3QgdmVuZG9ySWQgPSB0aGlzLmdldFZhbHVlQnlLZXkodGhpcy5wYXJhbXNEYXRhLCAndmVuZG9ySWQnKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFZlbmRvclByb2R1Y3RzUmVzcG9uc2U+KGAke2Jhc2VBcGlVcmx9L2FwaS9WZW5kb3JGb3JtQnVpbGRlci9HZXRQcm9kdWN0TGV2ZWxUaHJlZT9sZXZlbE9uZUlkPSR7bGV2ZWxPbmVJZH0mbGV2ZWxUd29JZD0ke2xldmVsVHdvSWR9JnZlbmRvcklkPSR7dmVuZG9ySWR9YCk7XHJcbiAgfVxyXG5cclxuICBwcm9kdWN0TGV2ZWxGb3VyKGxldmVsT25lSWQ6IGFueSwgbGV2ZWxUd29JZDogYW55LCBsZXZlbFRocmVlSWQ6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBjb25zdCBiYXNlQXBpVXJsID0gdGhpcy5nZXRCYXNlQXBpVXJsKCk7XHJcbiAgICBjb25zdCB2ZW5kb3JJZCA9IHRoaXMuZ2V0VmFsdWVCeUtleSh0aGlzLnBhcmFtc0RhdGEsICd2ZW5kb3JJZCcpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8VmVuZG9yUHJvZHVjdHNSZXNwb25zZT4oYCR7YmFzZUFwaVVybH0vYXBpL1ZlbmRvckZvcm1CdWlsZGVyL0dldFByb2R1Y3RMZXZlbEZvdXI/bGV2ZWxPbmVJZD0ke2xldmVsT25lSWR9JmxldmVsVHdvSWQ9JHtsZXZlbFR3b0lkfSZsZXZlbFRocmVlSWQ9JHtsZXZlbFRocmVlSWR9JnZlbmRvcklkPSR7dmVuZG9ySWR9YCk7XHJcbiAgfVxyXG5cclxuICAvLyBGdW5jdGlvbiB0byBnZXQgdmFsdWUgYnkga2V5IGZyb20gdGhlIGFycmF5XHJcbiAgZ2V0VmFsdWVCeUtleShkYXRhLCBrZXkpIHtcclxuICAgIGlmICghZGF0YSB8fCBkYXRhLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIGNvbnN0IGl0ZW0gPSBkYXRhLmZpbmQoa3YgPT4ga3Yua2V5LnRvTG93ZXJDYXNlKCkgPT09IGtleS50b0xvd2VyQ2FzZSgpKTtcclxuICAgIHJldHVybiBpdGVtID8gaXRlbS52YWx1ZSA6IG51bGw7XHJcbiAgfVxyXG5cclxuICAvKiBGdW5jdGlvbiBmb3IgdmVyaWZ5IG51bWJlcnMgYW5kIG51bWJlcnMgd2l0aCBjb21tYSBzZXBlcmF0ZWQgdmFsdWVzICovXHJcbiAgb25seU51bWJlcnMoc3RyKSB7XHJcbiAgICBpZiAoc3RyKSB7XHJcbiAgICAgIHJldHVybiAvXlswLTkuLF0rJC8udGVzdChzdHIpO1xyXG4gICAgfVxyXG4gIH1cclxuICAvKiBFbmQgKi9cclxuXHJcbiAgc2V0RHJvcGRvd25JdGVtcyhpdGVtczogYW55W10pIHtcclxuICAgIHRoaXMuZHJvcGRvd25JdGVtc1N1YmplY3QubmV4dChpdGVtcyk7XHJcbiAgfVxyXG5cclxuICBnZXREcm9wZG93bkl0ZW1zKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZHJvcGRvd25JdGVtc1N1YmplY3QuZ2V0VmFsdWUoKTtcclxuICB9XHJcblxyXG4gIHNldERyb3BEb3duRmxhZyhmbGFnOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLnNldEZsYWcubmV4dChmbGFnKVxyXG4gIH1cclxuXHJcbiAgZ2V0RHJvcERvd25GbGFnKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2V0RmxhZy5nZXRWYWx1ZSgpO1xyXG4gIH1cclxuXHJcbiAgLypGdW50aW9uIHRvIGNoZWNrIGlmIHByb3BlcnR5IGlzIG1hdGNoZWQgd2l0aCBnaXZlbiBhdHRyaWJ1dGVzIGluIGZvcm1CdWlsZGVyIG9yIG5vdCAqL1xyXG4gIGNoZWNrSXNBdHRyaWJ1dGVUcnVlKG5ld1Byb2R1Y3RQaWNrZXJGbGFnLCBhdHRyaWJ1dGVOYW1lKSB7XHJcbiAgICByZXR1cm4gbmV3UHJvZHVjdFBpY2tlckZsYWcgJiYgT2JqZWN0LmtleXMobmV3UHJvZHVjdFBpY2tlckZsYWcpLnNvbWUoa2V5ID0+XHJcbiAgICAgIGtleS50b0xvY2FsZUxvd2VyQ2FzZSgpID09PSBhdHRyaWJ1dGVOYW1lLnRvTG93ZXJDYXNlKCkgJiZcclxuICAgICAgbmV3UHJvZHVjdFBpY2tlckZsYWdba2V5XS50b0xvd2VyQ2FzZSgpID09PSBcInRydWVcIlxyXG4gICAgKTtcclxuICB9XHJcbn0iXX0=
|
|
243
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmVuZGVyLW1hdGVyaWFsLWZvcm1zL3NyYy9saWIvY29tcG9uZW50cy9jb21tb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN6QyxPQUFPLEtBQUssUUFBUSxNQUFNLFdBQVcsQ0FBQztBQUV0QyxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDOzs7QUFVbkQsTUFBTSxPQUFPLGFBQWE7SUFvRXhCLFlBQW1CLElBQWdCO1FBQWhCLFNBQUksR0FBSixJQUFJLENBQVk7UUE5RDNCLHlCQUFvQixHQUFHLElBQUksZUFBZSxDQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQzlELG1CQUFjLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ2xELFlBQU8sR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQyxDQUFDLHdCQUF3QjtRQUMvRSxrQkFBYSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQywwQ0FBMEM7UUFDdkYsU0FBSSxHQUFRLEVBQUUsQ0FBQztRQUNmLFVBQUssR0FBUSxFQUFFLENBQUM7UUFDaEIsMEJBQTBCO1FBQ2xCLFdBQU0sR0FBRyxPQUFPLENBQUM7UUFDakIsWUFBTyxHQUFHLE9BQU8sQ0FBQztRQUNsQixZQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ2xCLFlBQU8sR0FBRyxPQUFPLENBQUM7UUFFMUIsNEJBQTRCO1FBQ3BCLFlBQU8sR0FBRyxRQUFRLENBQUM7UUFDbkIsYUFBUSxHQUFHLFFBQVEsQ0FBQztRQUNwQixhQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3BCLGFB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Q0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTztZQUNqRyxzQkFBc0IsRUFBRSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPO1lBQ2pHLGlCQUFpQixFQUFFLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU87WUFDNUYsV0FBVyxFQUFFLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU07U0FDbEYsQ0FBQztRQUNGLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDO1FBQzFDLE9BQU8sWUFBWSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN0QyxDQUFDOzswR0F2UVUsYUFBYTs4R0FBYixhQUFhLGNBRlosTUFBTTsyRkFFUCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgaXNOdWxsT3JVbmRlZmluZWQgfSBmcm9tICd1dGlsJztcclxuaW1wb3J0ICogYXMgQ3J5cHRvSlMgZnJvbSAnY3J5cHRvLWpzJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbnRlcmZhY2UgVmVuZG9yUHJvZHVjdHNSZXNwb25zZSB7XHJcbiAgY29kZTogbnVtYmVyO1xyXG4gIGRhdGE6IGFueTtcclxuICBtZXNzYWdlOiBzdHJpbmc7XHJcbiAgc3RhdHVzQ29kZTogbnVtYmVyO1xyXG59XHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIENvbW1vblNlcnZpY2Uge1xyXG4gIHBhcmFtc0RhdGE6IGFueTtcclxuICBpbmNsdWRlRGVzY3JpcHRpb246IGFueTtcclxuICB2ZW5kb3JJZDogYW55O1xyXG4gIG9ubHlBY3RpdmU6IGFueTtcclxuICBjdXJyZW50VXNlcjogYW55O1xyXG4gIHByaXZhdGUgZHJvcGRvd25JdGVtc1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueVtdPihbXSk7XHJcbiAgZHJvcGRvd25JdGVtcyQgPSB0aGlzLmRyb3Bkb3duSXRlbXNTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG4gIHByaXZhdGUgc2V0RmxhZyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpOyAvLyBJbml0aWFsaXplIHdpdGggZmFsc2VcclxuICBkcm9wZG93bmZsYWckID0gdGhpcy5zZXRGbGFnLmFzT2JzZXJ2YWJsZSgpOyAvLyBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGJvb2xlYW4gdmFsdWVcclxuICBob2x5OiBhbnkgPSAnJztcclxuICBncmFpbDogYW55ID0gJyc7XHJcbiAgLy9zdGF0aWMgc29ydF81ID0gJzRzdz09JztcclxuICBwcml2YXRlIHNvcnRfNSA9ICdvT0E9PSc7XHJcbiAgcHJpdmF0ZSBMc29ydF81ID0gJ0wvdz09JztcclxuICBwcml2YXRlIEpzb3J0XzUgPSAnQmFRPT0nO1xyXG4gIHByaXZhdGUgUHNvcnRfNSA9ICdXVlE9PSc7XHJcblxyXG4gIC8vc3RhdGljIHNhbGVzXzIgPSAnMitUMk5YJztcclxuICBwcml2YXRlIHNhbGVzXzIgPSAnZ3VwVkMxJztcclxuICBwcml2YXRlIExzYWxlc18yID0gJ0R5TEkrRyc7XHJcbiAgcHJpdmF0ZSBKc2FsZXNfMiA9ICc1ZzYzYWsnO1xyXG4gIHByaXZhdGUgUHNhbGVzXzIgPSAnSEZRRGdFJztcclxuXHJcbiAgLy9zdGF0aWMgTW9iaWxlXzQgPSAnUlIxMlInO1xyXG4gIHByaXZhdGUgTW9iaWxlXzQgPSAnTlY5VksnO1xyXG4gIHByaXZhdGUgTE1vYmlsZV80ID0gJytQOTFsJztcclxuICBwcml2YXRlIEpNb2JpbGVfNCA9ICdOK0J4dyc7XHJcbiAgcHJpdmF0ZSBQTW9iaWxlXzQgPSAnajRVTXQnO1xyXG5cclxuICAvL3N0YXRpYyBJZF8yID0gJ3FVQlFFJztcclxuICBwcml2YXRlIElkXzIgPSAnVzdUSnYnO1xyXG4gIHByaXZhdGUgTElkXzIgPSAna0FKODcnO1xyXG4gIHByaXZhdGUgSklkXzIgPSAnSTRQTUInO1xyXG4gIHByaXZhdGUgUElkXzIgPSAnNEhhNFUnO1xyXG5cclxuICAvLyBzdGF0aWMgTmFtZV8xID0gJzhGLyc7XHJcbiAgcHJpdmF0ZSBOYW1lXzEgPSAnZDN1JztcclxuICBwcml2YXRlIExOYW1lXzEgPSAnVXdYJztcclxuICBwcml2YXRlIEpOYW1lXzEgPSAnbUNjJztcclxuICBwcml2YXRlIFBOYW1lXzEgPSAnbnlQJztcclxuXHJcbiAgcHJpdmF0ZSBjaXR5ID0gJ1ZxJzsvLzFcclxuICBwcml2YXRlIHN0YXRlID0gJ2RyQTInOy8vNFxyXG4gIHByaXZhdGUgcmVnaW9uID0gJ0UvZic7Ly8yXHJcbiAgcHJpdmF0ZSB0ZXJyaXRvcnkgPSAnZ1puQT09JzsvLzZcclxuICBwcml2YXRlIGNvdW50cnkgPSAnMnNNSyc7Ly81XHJcbiAgcHJpdmF0ZSBjb250aW5lbnQgPSAnUTVOMlgnOy8vM1xyXG4gIHByaXZhdGUgSmNpdHkgPSAnbGsnOy8vMVxyXG4gIHByaXZhdGUgSnN0YXRlID0gJ3Jzd0wnOy8vNFxyXG4gIHByaXZhdGUgSnJlZ2lvbiA9ICd4c0gnOy8vMlxyXG4gIHByaXZhdGUgSnRlcnJpdG9yeSA9ICdYc293PT0nOy8vNlxyXG4gIHByaXZhdGUgSmNvdW50cnkgPSAnbjBicyc7Ly81XHJcbiAgcHJpdmF0ZSBKY29udGluZW50ID0gJ2hRT29JJzsvLzNcclxuXHJcbiAgcHJpdmF0ZSBMY2l0eSA9ICdBdyc7Ly8xXHJcbiAgcHJpdmF0ZSBMc3RhdGUgPSAnaHJteCc7Ly80XHJcbiAgcHJpdmF0ZSBMcmVnaW9uID0gJ01NQyc7Ly8yXHJcbiAgcHJpdmF0ZSBMdGVycml0b3J5ID0gJ3ZWR1E9PSc7Ly82XHJcbiAgcHJpdmF0ZSBMY291bnRyeSA9ICdJcVBjJzsvLzVcclxuICBwcml2YXRlIExjb250aW5lbnQgPSAnQ3R0UisnOy8vM1xyXG5cclxuICBwcml2YXRlIFBjaXR5ID0gJzdoJzsvLzFcclxuICBwcml2YXRlIFBzdGF0ZSA9ICdKdE56JzsvLzRcclxuICBwcml2YXRlIFByZWdpb24gPSAnRlRsJzsvLzJcclxuICBwcml2YXRlIFB0ZXJyaXRvcnkgPSAnL3YrZz09JzsvLzZcclxuICBwcml2YXRlIFBjb3VudHJ5ID0gJ1dGRGQnOy8vNVxyXG4gIHByaXZhdGUgUGNvbnRpbmVudCA9ICdzRHQ2Tic7Ly8zXHJcbiAgY29uc3RydWN0b3IocHVibGljIGh0dHA6IEh0dHBDbGllbnQpIHtcclxuICAgIHRoaXMuY3VycmVudFVzZXIgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdjdXJyZW50VXNlcicpKTtcclxuICAgIC8vIHRoaXMuaG9seSA9IENyeXB0b0pTLmVuYy5CYXNlNjQucGFyc2UoJzhGLzIrVDJOWHFVQlFFUlIxMlI0c3c9PScpO1xyXG4gICAgLy90aGlzLmdyYWlsID0gQ3J5cHRvSlMuZW5jLkJhc2U2NC5wYXJzZSgneUUwQ2dRYll6SzV3cWVvS1RWemhPUT09Jyk7XHJcbiAgICB0aGlzLmhvbHkgPSBDcnlwdG9KUy5lbmMuQmFzZTY0LnBhcnNlKHRoaXMuZ2V0Y29tYm9kZWFsKCkpO1xyXG4gICAgdGhpcy5ncmFpbCA9IENyeXB0b0pTLmVuYy5CYXNlNjQucGFyc2UodGhpcy5nZXRnbG9iZWRhdGEoKSk7XHJcblxyXG4gICAgdGhpcy5wYXJhbXNEYXRhID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgncHJvZHVjdFBpY2tlclBhcmFtcycpKTtcclxuICB9XHJcblxyXG4gIGdldEJhc2VBcGlVcmwoKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICBjb25zdCBiYXNlVXJsTWFwcGluZyA9IHtcclxuICAgICAgJ2xvY2FsaG9zdCc6ICdodHRwOi8vbG9jYWxob3N0OjU4NTA0JyxcclxuICAgICAgJ2xpbmNvbG4udmFydG9waWEuY29tJzogJ2h0dHBzOi8vbGluY29sbi1hcGkudmFydG9waWEuY29tJyxcclxuICAgICAgJ3N0YWdlLnZhcnRvcGlhLmNvbSc6ICdodHRwczovL3N0YWdlLWFwaS52YXJ0b3BpYS5jb20nLFxyXG4gICAgICAnbXkudmFydG9waWEuY29tJzogJ2h0dHBzOi8vcmVhZ2FuLWFwaS52YXJ0b3BpYS5jb20nLFxyXG4gICAgICAnamFja3Nvbi52YXJ0b3BpYS5jb20nOiAnaHR0cHM6Ly9qYWNrc29uLWFwaS52YXJ0b3BpYS5jb20nXHJcbiAgICB9O1xyXG5cclxuICAgIC8vIEdldCB0aGUgY3VycmVudCBob3N0bmFtZVxyXG4gICAgY29uc3QgaG9zdG5hbWUgPSB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWU7XHJcbiAgICByZXR1cm4gYmFzZVVybE1hcHBpbmdbaG9zdG5hbWVdIHx8IG51bGw7XHJcbiAgfVxyXG5cclxuICBzY3J1bWJsZShtc2cpIHtcclxuICAgIGlmICghaXNOdWxsT3JVbmRlZmluZWQobXNnKSkge1xyXG4gICAgICB2YXIgY29uY2VhbCA9IHRoaXMuZ2V0Y2FtcGFpZ24obXNnLCB0aGlzLmhvbHksIHRoaXMuZ3JhaWwpO1xyXG4gICAgICB2YXIgc2hhMjU2ID0gQ3J5cHRvSlMuSG1hY1NIQTI1NihDcnlwdG9KUy5lbmMuQmFzZTY0LnN0cmluZ2lmeSh0aGlzLmdyYWlsKSArIGNvbmNlYWwudG9TdHJpbmcoKSwgQ3J5cHRvSlMuZW5jLkJhc2U2NC5zdHJpbmdpZnkodGhpcy5ob2x5KSk7XHJcbiAgICAgIHZhciBoYXNoSW5CYXNlNjQgPSBDcnlwdG9KUy5lbmMuQmFzZTY0LnN0cmluZ2lmeShzaGEyNTYpO1xyXG4gICAgICBsZXQga2V5VmFsdWUgPSB7XHJcbiAgICAgICAgXCJ2YWx1ZVwiOiBjb25jZWFsLnRvU3RyaW5nKCksXHJcbiAgICAgICAgXCJtYWNcIjogaGFzaEluQmFzZTY0XHJcbiAgICAgIH07XHJcbiAgICAgIHZhciByZXN1bHQgPSBKU09OLnN0cmluZ2lmeShrZXlWYWx1ZSk7XHJcbiAgICAgIHZhciBqdW1ibGVkID0gQ3J5cHRvSlMuZW5jLlV0ZjgucGFyc2UocmVzdWx0KTtcclxuICAgICAgcmV0dXJuIENyeXB0b0pTLmVuYy5CYXNlNjQuc3RyaW5naWZ5KGp1bWJsZWQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0Y2FtcGFpZ24oZGF0YTogYW55LCBob2x5OiBhbnksIGdyYWlsOiBhbnkpIHtcclxuICAgIHJldHVybiBDcnlwdG9KUy5BRVMuZW5jcnlwdChkYXRhLnRvU3RyaW5nKCksIGhvbHksXHJcbiAgICAgIHtcclxuICAgICAgICBibG9ja1NpemU6IDEyOCxcclxuICAgICAgICBpdjogZ3JhaWwsXHJcbiAgICAgICAgbW9kZTogQ3J5cHRvSlMubW9kZS5DQkMsXHJcbiAgICAgICAgcGFkZGluZzogQ3J5cHRvSlMucGFkLlBrY3M3XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyogSW50aWFsaXphdGlvbiBvZiBhcGkgcGF0aCBhbmQgcXVlcnlwYXJhbXMgKi9cclxuICBpbml0aWFsaXplQXBpUGF0aChnZXRVcmwsIHF1ZXJ5UGFyYW1zOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgaWYgKHF1ZXJ5UGFyYW1zPy5sZW5ndGgpIHtcclxuICAgICAgY29uc3QgY2hhbmdlVG9PYmplY3QgPSB0aGlzLmNvbnZlcnRUb09iamVjdChxdWVyeVBhcmFtcyk7XHJcbiAgICAgIGlmIChPYmplY3Qua2V5cyhjaGFuZ2VUb09iamVjdCkubGVuZ3RoKSB7XHJcbiAgICAgICAgY29uc3QgcXVlcnlTdHJpbmcgPSB0aGlzLmNvbnZlcnRUb1F1ZXJ5U3RyaW5nKGNoYW5nZVRvT2JqZWN0KTtcclxuICAgICAgICBjb25zdCBiYXNlQXBpVXJsID0gdGhpcy5nZXRCYXNlQXBpVXJsKCk7XHJcbiAgICAgICAgdmFyIGFwaVVybCA9IGAke2Jhc2VBcGlVcmx9L2FwaS9gICsgZ2V0VXJsO1xyXG4gICAgICAgIGFwaVVybCArPSAnPycgKyBxdWVyeVN0cmluZztcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxWZW5kb3JQcm9kdWN0c1Jlc3BvbnNlPihhcGlVcmwpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiBGdW5jdG9uIGZvciBjb252ZXJ0IGFycmF5IHRvIG9iamVjdCAqL1xyXG4gIGNvbnZlcnRUb09iamVjdChxdWVyeVBhcmFtcykge1xyXG4gICAgaWYgKHF1ZXJ5UGFyYW1zLmxlbmd0aCkge1xyXG4gICAgICB2YXIgb2JqID0ge307XHJcbiAgICAgIHF1ZXJ5UGFyYW1zLmZvckVhY2goZnVuY3Rpb24gKGl0ZW0pIHtcclxuICAgICAgICBvYmpbaXRlbS5rZXldID0gaXRlbS52YWx1ZTtcclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybiBvYmo7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBsb2FkUHJvZHVjdHMocGFnZU51bWJlciwgcGF6ZVNpemUsIHNlYXJjaDogc3RyaW5nID0gJycsIG9ubHlBY3RpdmU6IGJvb2xlYW4gPSB0cnVlLCBkZXNjcmlwdGlvbjogYm9vbGVhbiA9IGZhbHNlLCBsZXZlbE9uZUlkOiBhbnksIGxldmVsVHdvSWQ6IGFueSwgbGV2ZWxUaHJlZUlkOiBhbnksIGxldmVsRm91cklkOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgYmFzZUFwaVVybCA9IHRoaXMuZ2V0QmFzZUFwaVVybCgpO1xyXG4gICAgY29uc3QgdmVuZG9ySWQgPSB0aGlzLmdldFZhbHVlQnlLZXkodGhpcy5wYXJhbXNEYXRhLCAndmVuZG9ySWQnKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFZlbmRvclByb2R1Y3RzUmVzcG9uc2U+KGAke2Jhc2VBcGlVcmx9L2FwaS9WZW5kb3JGb3JtQnVpbGRlci9HZXRWZW5kb3JQcm9kdWN0c1YyP3ZlbmRvcklkPSR7dmVuZG9ySWR9JnBhZ2VOdW1iZXI9JHtwYWdlTnVtYmVyfSZwYWdlU2l6ZT0ke3BhemVTaXplfSZzZWFyY2g9JHtzZWFyY2h9Jm9ubHlBY3RpdmU9JHtvbmx5QWN0aXZlfSZpbmNsdWRlRGVzY3JpcHRpb249JHtkZXNjcmlwdGlvbn0mbGV2ZWxPbmU9JHtsZXZlbE9uZUlkfSZsZXZlbFR3bz0ke2xldmVsVHdvSWR9JmxldmVsVGhyZWU9JHtsZXZlbFRocmVlSWR9JmxldmVsRm91cj0ke2xldmVsRm91cklkfWApO1xyXG4gIH1cclxuXHJcbiAgbGlzdFN1YkNhdGVnb3J5KGNhdGVnb3J5OiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgdmVuZG9ySWQgPSB0aGlzLmdldFZhbHVlQnlLZXkodGhpcy5wYXJhbXNEYXRhLCAndmVuZG9ySWQnKTtcclxuICAgIGNvbnN0IGJhc2VBcGlVcmwgPSB0aGlzLmdldEJhc2VBcGlVcmwoKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFZlbmRvclByb2R1Y3RzUmVzcG9uc2U+KGAke2Jhc2VBcGlVcmx9L2FwaS9WZW5kb3JGb3JtQnVpbGRlci9HZXRQcm9kdWN0c1N1YkNhdGVnb3J5P3ZlbmRvcklkPSR7dmVuZG9ySWR9JmNhdGVnb3J5TmFtZT0ke2NhdGVnb3J5fWApXHJcbiAgfVxyXG5cclxuICAvKiBBcHBlbmQga2V5IGFuZCB2YWx1ZSB0byBxdWVyeSBzdHJpbmcgKi9cclxuICBjb252ZXJ0VG9RdWVyeVN0cmluZyhxdWVyeVBhcmFtcykge1xyXG4gICAgY29uc3QgcXVlcnlTdHJpbmcgPSBPYmplY3Qua2V5cyhxdWVyeVBhcmFtcylcclxuICAgICAgLm1hcChrZXkgPT4ge1xyXG4gICAgICAgIGlmIChxdWVyeVBhcmFtc1trZXldICE9PSAnJyAmJiBxdWVyeVBhcmFtc1trZXldICE9PSBudWxsKSB7XHJcbiAgICAgICAgICByZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KGtleSkgKyAnPScgKyBlbmNvZGVVUklDb21wb25lbnQocXVlcnlQYXJhbXNba2V5XSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGlmIChxdWVyeVBhcmFtcy5oYXNPd25Qcm9wZXJ0eSgnc2VhcmNoJykpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChrZXkpICsgJz0nICsgZW5jb2RlVVJJQ29tcG9uZW50KHF1ZXJ5UGFyYW1zW2tleV0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgICAgLmpvaW4oJyYnKTtcclxuICAgIHJldHVybiBxdWVyeVN0cmluZztcclxuICB9XHJcblxyXG4gIGxpc3RQcm9kdWN0Q2F0ZWdvcnkoKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IHZlbmRvcklkID0gdGhpcy5nZXRWYWx1ZUJ5S2V5KHRoaXMucGFyYW1zRGF0YSwgJ3ZlbmRvcklkJyk7XHJcbiAgICBjb25zdCBiYXNlQXBpVXJsID0gdGhpcy5nZXRCYXNlQXBpVXJsKCk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxWZW5kb3JQcm9kdWN0c1Jlc3BvbnNlPihgJHtiYXNlQXBpVXJsfS9hcGkvVmVuZG9yRm9ybUJ1aWxkZXIvR2V0UHJvZHVjdHNDYXRlZ29yeT92ZW5kb3JJZD0ke3ZlbmRvcklkfWApO1xyXG4gIH1cclxuXHJcbiAgcHJvZHVjdExldmVsT25lKCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBjb25zdCBiYXNlQXBpVXJsID0gdGhpcy5nZXRCYXNlQXBpVXJsKCk7XHJcbiAgICBjb25zdCB2ZW5kb3JJZCA9IHRoaXMuZ2V0VmFsdWVCeUtleSh0aGlzLnBhcmFtc0RhdGEsICd2ZW5kb3JJZCcpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8VmVuZG9yUHJvZHVjdHNSZXNwb25zZT4oYCR7YmFzZUFwaVVybH0vYXBpL1ZlbmRvckZvcm1CdWlsZGVyL0dldFByb2R1Y3RMZXZlbE9uZT92ZW5kb3JJZD0ke3ZlbmRvcklkfWApO1xyXG4gIH1cclxuXHJcbiAgcHJvZHVjdExldmVsVHdvKGxldmVsT25lSWQ6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBjb25zdCBiYXNlQXBpVXJsID0gdGhpcy5nZXRCYXNlQXBpVXJsKCk7XHJcbiAgICBjb25zdCB2ZW5kb3JJZCA9IHRoaXMuZ2V0VmFsdWVCeUtleSh0aGlzLnBhcmFtc0RhdGEsICd2ZW5kb3JJZCcpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8VmVuZG9yUHJvZHVjdHNSZXNwb25zZT4oYCR7YmFzZUFwaVVybH0vYXBpL1ZlbmRvckZvcm1CdWlsZGVyL0dldFByb2R1Y3RMZXZlbFR3bz9sZXZlbE9uZUlkPSR7bGV2ZWxPbmVJZH0mdmVuZG9ySWQ9JHt2ZW5kb3JJZH1gKTtcclxuICB9XHJcblxyXG4gIHByb2R1Y3RMZXZlbFRocmVlKGxldmVsT25lSWQ6IGFueSwgbGV2ZWxUd29JZDogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IGJhc2VBcGlVcmwgPSB0aGlzLmdldEJhc2VBcGlVcmwoKTtcclxuICAgIGNvbnN0IHZlbmRvcklkID0gdGhpcy5nZXRWYWx1ZUJ5S2V5KHRoaXMucGFyYW1zRGF0YSwgJ3ZlbmRvcklkJyk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxWZW5kb3JQcm9kdWN0c1Jlc3BvbnNlPihgJHtiYXNlQXBpVXJsfS9hcGkvVmVuZG9yRm9ybUJ1aWxkZXIvR2V0UHJvZHVjdExldmVsVGhyZWU/bGV2ZWxPbmVJZD0ke2xldmVsT25lSWR9JmxldmVsVHdvSWQ9JHtsZXZlbFR3b0lkfSZ2ZW5kb3JJZD0ke3ZlbmRvcklkfWApO1xyXG4gIH1cclxuXHJcbiAgcHJvZHVjdExldmVsRm91cihsZXZlbE9uZUlkOiBhbnksIGxldmVsVHdvSWQ6IGFueSwgbGV2ZWxUaHJlZUlkOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgYmFzZUFwaVVybCA9IHRoaXMuZ2V0QmFzZUFwaVVybCgpO1xyXG4gICAgY29uc3QgdmVuZG9ySWQgPSB0aGlzLmdldFZhbHVlQnlLZXkodGhpcy5wYXJhbXNEYXRhLCAndmVuZG9ySWQnKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFZlbmRvclByb2R1Y3RzUmVzcG9uc2U+KGAke2Jhc2VBcGlVcmx9L2FwaS9WZW5kb3JGb3JtQnVpbGRlci9HZXRQcm9kdWN0TGV2ZWxGb3VyP2xldmVsT25lSWQ9JHtsZXZlbE9uZUlkfSZsZXZlbFR3b0lkPSR7bGV2ZWxUd29JZH0mbGV2ZWxUaHJlZUlkPSR7bGV2ZWxUaHJlZUlkfSZ2ZW5kb3JJZD0ke3ZlbmRvcklkfWApO1xyXG4gIH1cclxuXHJcbiAgLy8gRnVuY3Rpb24gdG8gZ2V0IHZhbHVlIGJ5IGtleSBmcm9tIHRoZSBhcnJheVxyXG4gIGdldFZhbHVlQnlLZXkoZGF0YSwga2V5KSB7XHJcbiAgICBpZiAoIWRhdGEgfHwgZGF0YS5sZW5ndGggPT09IDApIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICBjb25zdCBpdGVtID0gZGF0YS5maW5kKGt2ID0+IGt2LmtleS50b0xvd2VyQ2FzZSgpID09PSBrZXkudG9Mb3dlckNhc2UoKSk7XHJcbiAgICByZXR1cm4gaXRlbSA/IGl0ZW0udmFsdWUgOiBudWxsO1xyXG4gIH1cclxuXHJcbiAgLyogRnVuY3Rpb24gZm9yIHZlcmlmeSBudW1iZXJzIGFuZCBudW1iZXJzIHdpdGggY29tbWEgc2VwZXJhdGVkIHZhbHVlcyAqL1xyXG4gIG9ubHlOdW1iZXJzKHN0cikge1xyXG4gICAgaWYgKHN0cikge1xyXG4gICAgICByZXR1cm4gL15bMC05LixdKyQvLnRlc3Qoc3RyKTtcclxuICAgIH1cclxuICB9XHJcbiAgLyogRW5kICovXHJcblxyXG4gIHNldERyb3Bkb3duSXRlbXMoaXRlbXM6IGFueVtdKSB7XHJcbiAgICB0aGlzLmRyb3Bkb3duSXRlbXNTdWJqZWN0Lm5leHQoaXRlbXMpO1xyXG4gIH1cclxuXHJcbiAgZ2V0RHJvcGRvd25JdGVtcygpIHtcclxuICAgIHJldHVybiB0aGlzLmRyb3Bkb3duSXRlbXNTdWJqZWN0LmdldFZhbHVlKCk7XHJcbiAgfVxyXG5cclxuICBzZXREcm9wRG93bkZsYWcoZmxhZzogYm9vbGVhbikge1xyXG4gICAgdGhpcy5zZXRGbGFnLm5leHQoZmxhZylcclxuICB9XHJcblxyXG4gIGdldERyb3BEb3duRmxhZygpIHtcclxuICAgIHJldHVybiB0aGlzLnNldEZsYWcuZ2V0VmFsdWUoKTtcclxuICB9XHJcblxyXG4gIC8qRnVudGlvbiB0byBjaGVjayBpZiBwcm9wZXJ0eSBpcyBtYXRjaGVkIHdpdGggZ2l2ZW4gYXR0cmlidXRlcyBpbiBmb3JtQnVpbGRlciBvciBub3QgKi9cclxuICBjaGVja0lzQXR0cmlidXRlVHJ1ZShuZXdQcm9kdWN0UGlja2VyRmxhZywgYXR0cmlidXRlTmFtZSkge1xyXG4gICAgcmV0dXJuIG5ld1Byb2R1Y3RQaWNrZXJGbGFnICYmIE9iamVjdC5rZXlzKG5ld1Byb2R1Y3RQaWNrZXJGbGFnKS5zb21lKGtleSA9PlxyXG4gICAgICBrZXkudG9Mb2NhbGVMb3dlckNhc2UoKSA9PT0gYXR0cmlidXRlTmFtZS50b0xvd2VyQ2FzZSgpICYmXHJcbiAgICAgIG5ld1Byb2R1Y3RQaWNrZXJGbGFnW2tleV0udG9Mb3dlckNhc2UoKSA9PT0gXCJ0cnVlXCJcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRnbG9iZWRhdGEoKTogU3RyaW5nIHtcclxuICAgIGNvbnN0IGhvc3RNYXBwaW5nczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHtcclxuICAgICAgJ3N0YWdlLnZhcnRvcGlhLmNvbSc6IHRoaXMuY2l0eSArIHRoaXMucmVnaW9uICsgdGhpcy5jb250aW5lbnQgKyB0aGlzLnN0YXRlICsgdGhpcy5jb3VudHJ5ICsgdGhpcy50ZXJyaXRvcnksXHJcbiAgICAgICdsaW5jb2xuLnZhcnRvcGlhLmNvbSc6IHRoaXMuTGNpdHkgKyB0aGlzLkxyZWdpb24gKyB0aGlzLkxjb250aW5lbnQgKyB0aGlzLkxzdGF0ZSArIHRoaXMuTGNvdW50cnkgKyB0aGlzLkx0ZXJyaXRvcnksXHJcbiAgICAgICdqYWNrc29uLnZhcnRvcGlhLmNvbSc6IHRoaXMuSmNpdHkgKyB0aGlzLkpyZWdpb24gKyB0aGlzLkpjb250aW5lbnQgKyB0aGlzLkpzdGF0ZSArIHRoaXMuSmNvdW50cnkgKyB0aGlzLkp0ZXJyaXRvcnksXHJcbiAgICAgICdteS52YXJ0b3BpYS5jb20nOiB0aGlzLlBjaXR5ICsgdGhpcy5QcmVnaW9uICsgdGhpcy5QY29udGluZW50ICsgdGhpcy5Qc3RhdGUgKyB0aGlzLlBjb3VudHJ5ICsgdGhpcy5QdGVycml0b3J5LFxyXG4gICAgICAnbG9jYWxob3N0JzogdGhpcy5jaXR5ICsgdGhpcy5yZWdpb24gKyB0aGlzLmNvbnRpbmVudCArIHRoaXMuc3RhdGUgKyB0aGlzLmNvdW50cnkgKyB0aGlzLnRlcnJpdG9yeSxcclxuICAgIH07XHJcbiAgICBjb25zdCBob3N0bmFtZSA9IHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZTtcclxuICAgIHJldHVybiBob3N0TWFwcGluZ3NbaG9zdG5hbWVdIHx8ICcnO1xyXG4gIH1cclxuXHJcbiAgZ2V0Y29tYm9kZWFsKCk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBob3N0TWFwcGluZ3M6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7XHJcbiAgICAgICdzdGFnZS52YXJ0b3BpYS5jb20nOiB0aGlzLk5hbWVfMSArIHRoaXMuc2FsZXNfMiArIHRoaXMuSWRfMiArIHRoaXMuTW9iaWxlXzQgKyB0aGlzLnNvcnRfNSxcclxuICAgICAgJ2xpbmNvbG4udmFydG9waWEuY29tJzogdGhpcy5MTmFtZV8xICsgdGhpcy5Mc2FsZXNfMiArIHRoaXMuTElkXzIgKyB0aGlzLkxNb2JpbGVfNCArIHRoaXMuTHNvcnRfNSxcclxuICAgICAgJ2phY2tzb24udmFydG9waWEuY29tJzogdGhpcy5KTmFtZV8xICsgdGhpcy5Kc2FsZXNfMiArIHRoaXMuSklkXzIgKyB0aGlzLkpNb2JpbGVfNCArIHRoaXMuSnNvcnRfNSxcclxuICAgICAgJ215LnZhcnRvcGlhLmNvbSc6IHRoaXMuUE5hbWVfMSArIHRoaXMuUHNhbGVzXzIgKyB0aGlzLlBJZF8yICsgdGhpcy5QTW9iaWxlXzQgKyB0aGlzLlBzb3J0XzUsXHJcbiAgICAgICdsb2NhbGhvc3QnOiB0aGlzLk5hbWVfMSArIHRoaXMuc2FsZXNfMiArIHRoaXMuSWRfMiArIHRoaXMuTW9iaWxlXzQgKyB0aGlzLnNvcnRfNSxcclxuICAgIH07XHJcbiAgICBjb25zdCBob3N0bmFtZSA9IHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZTtcclxuICAgIHJldHVybiBob3N0TWFwcGluZ3NbaG9zdG5hbWVdIHx8ICcnO1xyXG4gIH1cclxufSJdfQ==
|
|
@@ -188,7 +188,7 @@ export class MaterialDataGridComponent extends MaterialNestedComponent {
|
|
|
188
188
|
width: '90%',
|
|
189
189
|
maxWidth: '900px',
|
|
190
190
|
autoFocus: false,
|
|
191
|
-
data: { dropdownsFlag: { showNewProductPicker: this.showNewProductPicker, showDialogSubCategory: this.showDialogSubCategory, showDialogSkuNumber: this.showDialogSkuNumber, showDialogCategory: this.showDialogCategory, showDialogPrice: this.showDialogPrice, showDialogQuantity: this.showDialogQuantity, dropdownL1: this.dropdownL1, dropdownL2: this.dropdownL2, dropdownL3: this.dropdownL3, dropdownL4: this.dropdownL4, dropdownL1Label: this.dropdownL1Label, dropdownL2Label: this.dropdownL2Label, dropdownL3Label: this.dropdownL3Label, dropdownL4Label: this.dropdownL4Label }, selectedProducts: this.dataSourceNew }
|
|
191
|
+
data: { dropdownsFlag: { showNewProductPicker: this.showNewProductPicker, showDialogSubCategory: this.showDialogSubCategory, showDialogSkuNumber: this.showDialogSkuNumber, showDialogCategory: this.showDialogCategory, showDialogPrice: this.showDialogPrice, showDialogQuantity: this.showDialogQuantity, dropdownL1: this.dropdownL1, dropdownL2: this.dropdownL2, dropdownL3: this.dropdownL3, dropdownL4: this.dropdownL4, dropdownL1Label: this.dropdownL1Label, dropdownL2Label: this.dropdownL2Label, dropdownL3Label: this.dropdownL3Label, dropdownL4Label: this.dropdownL4Label, checkSubmissionStatus: this.checkSubmissionStatus }, selectedProducts: this.dataSourceNew }
|
|
192
192
|
})
|
|
193
193
|
.afterClosed().subscribe(response => {
|
|
194
194
|
if (response?.data?.status) {
|
|
@@ -530,4 +530,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
|
|
|
530
530
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.MatDialog }, { type: i2.CommonService }]; } });
|
|
531
531
|
DataGridComponent.MaterialComponent = MaterialDataGridComponent;
|
|
532
532
|
export { DataGridComponent };
|
|
533
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWdyaWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJlbmRlci1tYXRlcmlhbC1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvZGF0YWdyaWQvZGF0YWdyaWQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0MsU0FBUyxFQUFjLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3JFLE9BQU8saUJBQWlCLE1BQU0sMENBQTBDLENBQUM7QUFDekUsT0FBTyxFQUFlLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXRFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ25HLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDOzs7Ozs7Ozs7Ozs7O0FBT3RGLE1BQU0sWUFBWSxHQUFjLEVBQy9CLENBQUM7QUFxSUYsTUFBTSxPQUFPLHlCQUEwQixTQUFRLHVCQUF1QjtJQUVwRSxZQUFtQixPQUFtQixFQUFTLEdBQXNCLEVBQVUsTUFBaUIsRUFBUyxhQUE0QjtRQUNuSSxLQUFLLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBREgsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUFTLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUFTLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBTXJJLGVBQVUsR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7UUFDdEMsa0JBQWEsR0FBRyxZQUFZLENBQUM7UUFDN0Isd0JBQW1CLEdBQWEsQ0FBQyxhQUFhLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUs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QUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDNUgsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLEVBQUUsS0FBSyxTQUFTLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDNUgsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLEVBQUUsS0FBSyxTQUFTLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDNUgsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLEVBQUUsS0FBSyxTQUFTLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDNUgsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25CLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO1NBQzNCO1FBQ0QsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25CLElBQUksQ0FBQyxlQUFl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MkZBS1UseUJBQXlCO2tCQXBJckMsU0FBUzsrQkFDRSxxQkFBcUIsWUFDckI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNkhUOztBQTJSSCxpQkFBaUIsQ0FBQyxpQkFBaUIsR0FBRyx5QkFBeUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF0dHJpYnV0ZSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRUYWJsZURhdGFTb3VyY2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XHJcbmltcG9ydCB7IE1hdGVyaWFsTmVzdGVkQ29tcG9uZW50IH0gZnJvbSAnLi4vTWF0ZXJpYWxOZXN0ZWRDb21wb25lbnQnO1xyXG5pbXBvcnQgRGF0YUdyaWRDb21wb25lbnQgZnJvbSAnZm9ybWlvanMvY29tcG9uZW50cy9kYXRhZ3JpZC9EYXRhR3JpZC5qcyc7XHJcbmltcG9ydCB7IENka0RyYWdEcm9wLCBtb3ZlSXRlbUluQXJyYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgQ29uZmlybWF0aW9uRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vY29uZmlybWF0aW9uLWRpYWxvZy9jb25maXJtYXRpb24tZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFkZE9uUHJvZHVjdHNDb21wb25lbnQgfSBmcm9tICcuLi9hZGQtb24tcHJvZHVjdHMvYWRkLW9uLXByb2R1Y3RzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbW1vblNlcnZpY2UgfSBmcm9tICcuLi9jb21tb24uc2VydmljZSc7XHJcbmV4cG9ydCBpbnRlcmZhY2UgUHJvZHVjdCB7XHJcbiAgcHJvZHVjdE5hbWU6IHN0cmluZztcclxuICBxdWFudGl0eTogbnVtYmVyO1xyXG4gIHByaWNlOiBudW1iZXI7XHJcbn1cclxuY29uc3QgRUxFTUVOVF9EQVRBOiBQcm9kdWN0W10gPSBbXHJcbl07XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbWF0LWZvcm1pby1kYXRhZ3JpZCcsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxtYXQtZm9ybWlvLWZvcm0tZmllbGQgW2luc3RhbmNlXT1cImluc3RhbmNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbXBvbmVudFRlbXBsYXRlXT1cImNvbXBvbmVudFRlbXBsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsVGVtcGxhdGVdPVwibGFiZWxUZW1wbGF0ZVwiXHJcbiAgICA+PC9tYXQtZm9ybWlvLWZvcm0tZmllbGQ+XHJcbiAgICA8bmctdGVtcGxhdGUgI2NvbXBvbmVudFRlbXBsYXRlIGxldC1oYXNMYWJlbD5cclxuICAgICAgPG1hdC1jYXJkIGZ4RmlsbD5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGFzTGFiZWxcIj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsYWJlbFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG1hdC1jYXJkLWNvbnRlbnQgKm5nSWY9XCJzaG93RGF0YUdyaWRcIj5cclxuICAgICAgICAgIDxtYXQtY2FyZC1hY3Rpb25zXHJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaW5zdGFuY2UuaGFzQWRkQnV0dG9uKCkgJiYgKGluc3RhbmNlLmNvbXBvbmVudC5hZGRBbm90aGVyUG9zaXRpb24gPT09ICdib3RoJyB8fCBpbnN0YW5jZS5jb21wb25lbnQuYWRkQW5vdGhlclBvc2l0aW9uID09PSAndG9wJylcIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwiYWRkQW5vdGhlcigpXCI+XHJcbiAgICAgICAgICAgICAgPG1hdC1pY29uPmFkZDwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAge3tpbnN0YW5jZS5jb21wb25lbnQuYWRkQW5vdGhlciB8fCAnQWRkIEFub3RoZXInfX1cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8L21hdC1jYXJkLWFjdGlvbnM+XHJcbjxuZy1jb250YWluZXIgKm5nSWY9XCIhc2hvd05ld1Byb2R1Y3RQaWNrZXJcIj5cclxuPGRpdiBjbGFzcz1cIm1hdC1lbGV2YXRpb24tejhcIj5cclxuICAgICAgICAgIDx0YWJsZVxyXG4gICAgICAgICAgICAgICAgICBtYXQtdGFibGVcclxuICAgICAgICAgICAgICAgICAgW2RhdGFTb3VyY2VdPVwiZGF0YVNvdXJjZVwiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWF0LWVsZXZhdGlvbi16OFwiXHJcbiAgICAgICAgICAgICAgICAgIGZ4RmlsbFxyXG4gICAgICAgICAgICAgICAgICBjZGtEcm9wTGlzdFxyXG4gICAgICAgICAgICAgICAgICBbY2RrRHJvcExpc3REYXRhXT1cImRhdGFTb3VyY2VcIlxyXG4gICAgICAgICAgICAgICAgICAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3BUYWJsZSgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGZvcm1Db2x1bW5zXCIgW21hdENvbHVtbkRlZl09XCJjb2x1bW5cIj5cclxuICAgICAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPnt7IGdldENvbHVtbkxhYmVsKGNvbHVtbnNbY29sdW1uXSkgfX08L3RoPlxyXG4gICAgICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBpID0gaW5kZXg7XCIgW2F0dHIucm93SW5kZXhdPVwiaVwiIFthdHRyLmNvbXBvbmVudF09XCJjb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjY29tcG9uZW50cz48L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cIl9fcmVtb3ZlUm93XCI+XHJcbiAgICAgICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj48L3RoPlxyXG4gICAgICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBpID0gaW5kZXg7XCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gKm5nSWY9XCJpbnN0YW5jZS5oYXNSZW1vdmVCdXR0b25zKClcIiAoY2xpY2spPVwicmVtb3ZlUm93KGkpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBhcmlhLWhpZGRlbj1cImZhbHNlXCIgYXJpYS1sYWJlbD1cIlJlbW92ZSByb3dcIj5kZWxldGU8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwicG9zaXRpb25cIiAqbmdJZj1cImluc3RhbmNlLmNvbXBvbmVudC5yZW9yZGVyXCI+XHJcbiAgICAgICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gTm8uPC90aD5cclxuICAgICAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1pY29uIGNka0RyYWdIYW5kbGU+cmVvcmRlcjwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDx0ciBtYXQtaGVhZGVyLXJvdyAqbWF0SGVhZGVyUm93RGVmPVwiZGlzcGxheWVkQ29sdW1uc1wiPjwvdHI+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpbnN0YW5jZT8uY29tcG9uZW50Py5yZW9yZGVyXCI+XHJcbiAgICAgICAgICAgICAgPHRyIGNsYXNzPVwiZGF0YWdyaWQtcm93XCIgbWF0LXJvdyAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogZGlzcGxheWVkQ29sdW1ucztcIiBjZGtEcmFnXHJcbiAgICAgICAgICAgICAgICAgIFtjZGtEcmFnRGF0YV09XCJyb3dcIj48L3RyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFpbnN0YW5jZT8uY29tcG9uZW50Py5yZW9yZGVyXCI+XHJcbiAgICAgICAgICAgICAgPHRyIGNsYXNzPVwiZGF0YWdyaWQtcm93XCIgbWF0LXJvdyAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogZGlzcGxheWVkQ29sdW1ucztcIj48L3RyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvdGFibGU+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPHRhYmxlIG1hdC10YWJsZSBbZGF0YVNvdXJjZV09XCJkYXRhU291cmNlTmV3XCIgY2xhc3M9XCJtYXQtdGFibGVcIiAqbmdJZj1cImRhdGFTb3VyY2VOZXcubGVuZ3RoID4gMCAmJiBzaG93TmV3UHJvZHVjdFBpY2tlcjsgZWxzZSBub0RhdGFcIiA+XHJcbiAgICA8IS0tIFByb2R1Y3QgTmFtZSBDb2x1bW4gLS0+XHJcbiAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInByb2R1Y3ROYW1lXCI+XHJcbiAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+IFByb2R1Y3QgTmFtZSA8L3RoPlxyXG4gICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPiB7e2VsZW1lbnQudGV4dH19IDwvdGQ+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8IS0tIFF1YW50aXR5IENvbHVtbiAtLT5cclxuICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwicXVhbnRpdHlcIiAqbmdJZj1cInNob3dRdWFudGl0eVwiPlxyXG4gICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiBRdWFudGl0eSA8L3RoPlxyXG4gICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPiB7e2VsZW1lbnQucXVhbnRpdHl9fSA8L3RkPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPCEtLSBQcmljZSBDb2x1bW4gLS0+XHJcbiAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInByaWNlXCIgKm5nSWY9XCJzaG93UHJpY2VcIj5cclxuICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gUHJpY2UgPC90aD5cclxuICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj4ge3tlbGVtZW50LnByaWNlfX0gPC90ZD5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICA8IS0tIENhdGVnb3J5IENvbHVtbiAtLT5cclxuICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiY2F0ZWdvcnlcIiAqbmdJZj1cInNob3dDYXRlZ29yeVwiPlxyXG4gICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiBDYXRlZ29yeSA8L3RoPlxyXG4gICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPiB7e2VsZW1lbnQuY2F0ZWdvcnl9fSA8L3RkPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDwhLS0gQ2F0ZWdvcnkgQ29sdW1uIC0tPlxyXG4gICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJzdWJDYXRlZ29yeVwiICpuZ0lmPVwic2hvd1N1YmNhdGVnb3J5XCI+XHJcbiAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+IFN1YiBDYXRlZ29yeSA8L3RoPlxyXG4gICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPiB7e2VsZW1lbnQuc3ViQ2F0ZWdvcnl9fSA8L3RkPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDwhLS0gU0tVIENvbHVtbiAtLT5cclxuICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwic2t1TnVtYmVyXCIgKm5nSWY9XCJzaG93U2t1TnVtYmVyXCI+XHJcbiAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+IFNLVSBOdW1iZXIgPC90aD5cclxuICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj4gI1NrdU51bWJlci17e2VsZW1lbnQudmFsdWV9fSA8L3RkPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJkaXNwbGF5ZWRDb2x1bW5zTmV3XCI+PC90cj5cclxuICAgIDx0ciBtYXQtcm93ICptYXRSb3dEZWY9XCJsZXQgcm93OyBjb2x1bW5zOiBkaXNwbGF5ZWRDb2x1bW5zTmV3O1wiPjwvdHI+XHJcbiAgPC90YWJsZT5cclxuICA8bmctdGVtcGxhdGUgI25vRGF0YT5cclxuICA8ZGl2IGNsYXNzPVwibm8tZGF0YS1tZXNzYWdlXCIgKm5nSWY9XCJzaG93TmV3UHJvZHVjdFBpY2tlclwiPlxyXG4gICAgICBObyBwcm9kdWN0cyBmb3VuZC4gUGxlYXNlIGFkZCBzb21lIHByb2R1Y3RzLlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcblxyXG5cclxuICAgICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgICAgPG1hdC1jYXJkLWFjdGlvbnMgKm5nSWY9XCJpbnN0YW5jZS5oYXNBZGRCdXR0b24oKSAmJiBpbnN0YW5jZS5jb21wb25lbnQuYWRkQW5vdGhlclBvc2l0aW9uICE9PSAndG9wJ1wiPlxyXG4gICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwiYWRkQW5vdGhlcigpXCI+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbj5hZGQ8L21hdC1pY29uPlxyXG4gICAgICAgICAgICB7e2luc3RhbmNlLmNvbXBvbmVudC5hZGRBbm90aGVyIHx8ICdBZGQgQW5vdGhlcid9fVxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9tYXQtY2FyZC1hY3Rpb25zPlxyXG4gICAgICA8L21hdC1jYXJkPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUgI2xhYmVsVGVtcGxhdGU+XHJcbiAgICAgIDxtYXQtY2FyZC10aXRsZT5cclxuICAgICAgICA8c3BhbiBbaW5zdGFuY2VdPVwiaW5zdGFuY2VcIiBtYXRGb3JtaW9MYWJlbD48L3NwYW4+XHJcbiAgICAgIDwvbWF0LWNhcmQtdGl0bGU+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gIGAsXHJcbiAgc3R5bGVzOiBbXHJcbiAgICAnLmRhdGFncmlkLXJvdyB7IGhlaWdodDogYXV0bzsgfSAubWF0LXRhYmxleyB3aWR0aDogMTAwJSB9IC5tYXQtaGVhZGVyLWNlbGwsIC5tYXQtY2VsbHsgcGFkZGluZzogOHB4IH0gLm5vLWRhdGEtbWVzc2FnZSB7ZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IHRleHQtYWxpZ246IGNlbnRlcjsgcGFkZGluZzoyMHB4OyBtYXJnaW46IDAgMjBweCAwOyBmb250LXNpemU6IDE4cHg7Y29sb3I6ICM4ODg7IGhlaWdodDogMTAwJTt9J1xyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIE1hdGVyaWFsRGF0YUdyaWRDb21wb25lbnQgZXh0ZW5kcyBNYXRlcmlhbE5lc3RlZENvbXBvbmVudCB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBlbGVtZW50OiBFbGVtZW50UmVmLCBwdWJsaWMgcmVmOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZywgcHVibGljIGNvbW1vblNlcnZpY2U6IENvbW1vblNlcnZpY2UpIHtcclxuICAgIHN1cGVyKGVsZW1lbnQsIHJlZik7XHJcbiAgfVxyXG4gIGRpc3BsYXllZENvbHVtbnM6IHN0cmluZ1tdO1xyXG4gIGZvcm1Db2x1bW5zOiBzdHJpbmdbXTtcclxuICBjb2x1bW5zOiBhbnk7XHJcbiAgZGF0YVNvdXJjZSA9IG5ldyBNYXRUYWJsZURhdGFTb3VyY2UoKTtcclxuICBkYXRhU291cmNlTmV3ID0gRUxFTUVOVF9EQVRBO1xyXG4gIGRpc3BsYXllZENvbHVtbnNOZXc6IHN0cmluZ1tdID0gWydwcm9kdWN0TmFtZScsICdjYXRlZ29yeScsICdzdWJDYXRlZ29yeScsICdxdWFudGl0eScsICdwcmljZScsICdza3VOdW1iZXInXTtcclxuICBzaG93TmV3UHJvZHVjdFBpY2tlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNob3dDYXRlZ29yeTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNob3dTdWJjYXRlZ29yeTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNob3dQcmljZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgc2hvd1F1YW50aXR5OiBib29sZWFuID0gdHJ1ZTtcclxuICBzaG93U2t1TnVtYmVyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgaGFzSW5pdGlhbGl6ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBjaGVja1N1Ym1pc3Npb25TdGF0dXM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzaG93RGF0YUdyaWQ6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIGhhc1ZhbHVlQW5kRWRpdE1vZGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBkcm9wZG93bkwxOiBib29sZWFuID0gZmFsc2U7XHJcbiAgZHJvcGRvd25MMjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGRyb3Bkb3duTDM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBkcm9wZG93bkw0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2hvd0RpYWxvZ1F1YW50aXR5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2hvd0RpYWxvZ1ByaWNlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2hvd0RpYWxvZ0NhdGVnb3J5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2hvd0RpYWxvZ1NrdU51bWJlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNob3dEaWFsb2dTdWJDYXRlZ29yeTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGRyb3Bkb3duTDFMYWJlbDogc3RyaW5nID0gJyc7XHJcbiAgZHJvcGRvd25MMkxhYmVsOiBzdHJpbmcgPSAnJztcclxuICBkcm9wZG93bkwzTGFiZWw6IHN0cmluZyA9ICcnO1xyXG4gIGRyb3Bkb3duTDRMYWJlbDogc3RyaW5nID0gJyc7XHJcbiAgZGVhbElkOiBhbnk7XHJcbiAgZ2V0Q29sdW1uTGFiZWwoY29sdW1uKSB7XHJcbiAgICByZXR1cm4gY29sdW1uLmxhYmVsIHx8IGNvbHVtbi5rZXk7XHJcbiAgfVxyXG5cclxuICBjaGVja0lzQXR0cmlidXRlVHJ1ZShuZXdQcm9kdWN0UGlja2VyRmxhZywgYXR0cmlidXRlTmFtZSkge1xyXG4gICAgcmV0dXJuIG5ld1Byb2R1Y3RQaWNrZXJGbGFnICYmIE9iamVjdC5rZXlzKG5ld1Byb2R1Y3RQaWNrZXJGbGFnKS5zb21lKGtleSA9PlxyXG4gICAgICBrZXkudG9Mb2NhbGVMb3dlckNhc2UoKSA9PT0gYXR0cmlidXRlTmFtZS50b0xvd2VyQ2FzZSgpICYmXHJcbiAgICAgIG5ld1Byb2R1Y3RQaWNrZXJGbGFnW2tleV0udG9Mb3dlckNhc2UoKSA9PT0gXCJ0cnVlXCJcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRMYWJlbE5hbWUobmV3UHJvZHVjdFBpY2tlckZsYWcsIGF0dHJpYnV0ZU5hbWUpIHtcclxuICAgIGlmIChuZXdQcm9kdWN0UGlja2VyRmxhZyAmJiBPYmplY3Qua2V5cyhuZXdQcm9kdWN0UGlja2VyRmxhZykuc29tZShrZXkgPT5cclxuICAgICAga2V5LnRvTG9jYWxlTG93ZXJDYXNlKCkgPT09IGF0dHJpYnV0ZU5hbWUudG9Mb3dlckNhc2UoKSkpIHtcclxuICAgICAgLy8gRmluZCB0aGUga2V5IHRoYXQgbWF0Y2hlcyBhdHRyaWJ1dGVOYW1lIGNhc2UtaW5zZW5zaXRpdmVseVxyXG4gICAgICBjb25zdCBtYXRjaGluZ0tleSA9IE9iamVjdC5rZXlzKG5ld1Byb2R1Y3RQaWNrZXJGbGFnKS5maW5kKGtleSA9PlxyXG4gICAgICAgIGtleS50b0xvY2FsZUxvd2VyQ2FzZSgpID09PSBhdHRyaWJ1dGVOYW1lLnRvTG93ZXJDYXNlKClcclxuICAgICAgKTtcclxuICAgICAgLy8gUmV0dXJuIHRoZSB2YWx1ZSBvZiB0aGUgbWF0Y2hpbmcga2V5XHJcbiAgICAgIHJldHVybiBuZXdQcm9kdWN0UGlja2VyRmxhZ1ttYXRjaGluZ0tleV07XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuICcnO1xyXG4gIH1cclxuXHJcblxyXG4gIC8vIG5nT25Jbml0KCk6IHZvaWQge1xyXG5cclxuICAvLyB9XHJcblxyXG4gIHNldEluc3RhbmNlKGluc3RhbmNlOiBhbnkpIHtcclxuICAgIC8vY29uc3QgbmV3UHJvZHVjdFBpY2tlckZsYWcgPSBpbnN0YW5jZT8uY29tcG9uZW50Py5hdHRyaWJ1dGVzO1xyXG4gICAgY29uc3QgY2hlY2tBdHRyaWJ1dGUgPSBpbnN0YW5jZT8uY29tcG9uZW50Py5hdHRyaWJ1dGVzO1xyXG4gICAgdGhpcy5zaG93TmV3UHJvZHVjdFBpY2tlciA9IHRoaXMuY2hlY2tJc0F0dHJpYnV0ZVRydWUoY2hlY2tBdHRyaWJ1dGUsIFwibmV3cHJvZHVjdHBpY2tlclwiKTtcclxuICAgIHRoaXMuc2hvd0NhdGVnb3J5ID0gdGhpcy5jaGVja0lzQXR0cmlidXRlVHJ1ZShjaGVja0F0dHJpYnV0ZSwgXCJzaG93Q2F0ZWdvcnlcIik7XHJcbiAgICB0aGlzLnNob3dTdWJjYXRlZ29yeSA9IHRoaXMuY2hlY2tJc0F0dHJpYnV0ZVRydWUoY2hlY2tBdHRyaWJ1dGUsIFwic2hvd1N1YmNhdGVnb3J5XCIpO1xyXG4gICAgdGhpcy5zaG93UHJpY2UgPSB0aGlzLmNoZWNrSXNBdHRyaWJ1dGVUcnVlKGNoZWNrQXR0cmlidXRlLCBcInNob3dQcmljZVwiKTtcclxuICAgIHRoaXMuc2hvd1F1YW50aXR5ID0gdGhpcy5jaGVja0lzQXR0cmlidXRlVHJ1ZShjaGVja0F0dHJpYnV0ZSwgXCJzaG93UXVhbnRpdHlcIik7XHJcbiAgICB0aGlzLnNob3dTa3VOdW1iZXIgPSB0aGlzLmNoZWNrSXNBdHRyaWJ1dGVUcnVlKGNoZWNrQXR0cmlidXRlLCBcInNob3dTa3VOdW1iZXJcIik7XHJcbiAgICB0aGlzLnNob3dEaWFsb2dRdWFudGl0eSA9IHRoaXMuY2hlY2tJc0F0dHJpYnV0ZVRydWUoY2hlY2tBdHRyaWJ1dGUsIFwic2hvd0RpYWxvZ1F1YW50aXR5XCIpO1xyXG4gICAgdGhpcy5zaG93RGlhbG9nUHJpY2UgPSB0aGlzLmNoZWNrSXNBdHRyaWJ1dGVUcnVlKGNoZWNrQXR0cmlidXRlLCBcInNob3dEaWFsb2dQcmljZVwiKTtcclxuICAgIHRoaXMuc2hvd0RpYWxvZ0NhdGVnb3J5ID0gdGhpcy5jaGVja0lzQXR0cmlidXRlVHJ1ZShjaGVja0F0dHJpYnV0ZSwgXCJzaG93RGlhbG9nQ2F0ZWdvcnlcIik7XHJcbiAgICB0aGlzLnNob3dEaWFsb2dTa3VOdW1iZXIgPSB0aGlzLmNoZWNrSXNBdHRyaWJ1dGVUcnVlKGNoZWNrQXR0cmlidXRlLCBcInNob3dEaWFsb2dTa3VOdW1iZXJcIik7XHJcbiAgICB0aGlzLnNob3dEaWFsb2dTdWJDYXRlZ29yeSA9IHRoaXMuY2hlY2tJc0F0dHJpYnV0ZVRydWUoY2hlY2tBdHRyaWJ1dGUsIFwic2hvd0RpYWxvZ1N1YkNhdGVnb3J5XCIpO1xyXG4gICAgY29uc3QgbDEgPSB0aGlzLmdldExhYmVsTmFtZShjaGVja0F0dHJpYnV0ZSwgXCJkcm9wZG93bkwxXCIpO1xyXG4gICAgY29uc3QgbDIgPSB0aGlzLmdldExhYmVsTmFtZShjaGVja0F0dHJpYnV0ZSwgXCJkcm9wZG93bkwyXCIpO1xyXG4gICAgY29uc3QgbDMgPSB0aGlzLmdldExhYmVsTmFtZShjaGVja0F0dHJpYnV0ZSwgXCJkcm9wZG93bkwzXCIpO1xyXG4gICAgY29uc3QgbDQgPSB0aGlzLmdldExhYmVsTmFtZShjaGVja0F0dHJpYnV0ZSwgXCJkcm9wZG93bkw0XCIpO1xyXG4gICAgdGhpcy5kcm9wZG93bkwxID0gbDEgIT09IG51bGwgJiYgbDEgIT09IHVuZGVmaW5lZCAmJiAodHlwZW9mIGwxID09PSAnc3RyaW5nJyA/IGwxLnRyaW0oKSAhPT0gXCJcIiA6IGwxICE9PSBcIlwiKSA/IHRydWUgOiBmYWxzZTtcclxuICAgIHRoaXMuZHJvcGRvd25MMiA9IGwyICE9PSBudWxsICYmIGwyICE9PSB1bmRlZmluZWQgJiYgKHR5cGVvZiBsMiA9PT0gJ3N0cmluZycgPyBsMi50cmltKCkgIT09IFwiXCIgOiBsMiAhPT0gXCJcIikgPyB0cnVlIDogZmFsc2U7XHJcbiAgICB0aGlzLmRyb3Bkb3duTDMgPSBsMyAhPT0gbnVsbCAmJiBsMyAhPT0gdW5kZWZpbmVkICYmICh0eXBlb2YgbDMgPT09ICdzdHJpbmcnID8gbDMudHJpbSgpICE9PSBcIlwiIDogbDMgIT09IFwiXCIpID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgdGhpcy5kcm9wZG93bkw0ID0gbDQgIT09IG51bGwgJiYgbDQgIT09IHVuZGVmaW5lZCAmJiAodHlwZW9mIGw0ID09PSAnc3RyaW5nJyA/IGw0LnRyaW0oKSAhPT0gXCJcIiA6IGw0ICE9PSBcIlwiKSA/IHRydWUgOiBmYWxzZTtcclxuICAgIGlmICh0aGlzLmRyb3Bkb3duTDEpIHtcclxuICAgICAgdGhpcy5kcm9wZG93bkwxTGFiZWwgPSBsMTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmRyb3Bkb3duTDIpIHtcclxuICAgICAgdGhpcy5kcm9wZG93bkwyTGFiZWwgPSBsMjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmRyb3Bkb3duTDMpIHtcclxuICAgICAgdGhpcy5kcm9wZG93bkwzTGFiZWwgPSBsMztcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmRyb3Bkb3duTDQpIHtcclxuICAgICAgdGhpcy5kcm9wZG93bkw0TGFiZWwgPSBsNDtcclxuICAgIH1cclxuICAgIHRoaXMuY2hlY2tTdWJtaXNzaW9uU3RhdHVzID0gdGhpcy5jb21tb25TZXJ2aWNlLmNoZWNrSXNBdHRyaWJ1dGVUcnVlKGNoZWNrQXR0cmlidXRlLCAnaXNQcm9kdWN0T3B0aW9uYWwnKTtcclxuICAgIHRoaXMuaGFzVmFsdWVBbmRFZGl0TW9kZSA9IChjaGVja0F0dHJpYnV0ZT8uaGFzVmFsdWUgPT09ICd5ZXMnKSAmJiAoY2hlY2tBdHRyaWJ1dGU/LmVkaXRNb2RlID09PSAndHJ1ZScpO1xyXG4gICAgc3VwZXIuc2V0SW5zdGFuY2UoaW5zdGFuY2UpO1xyXG4gICAgaWYgKHRoaXMuc2hvd05ld1Byb2R1Y3RQaWNrZXIgJiYgIXRoaXMuaGFzSW5pdGlhbGl6ZWQpIHtcclxuICAgICAgaWYgKCF0aGlzLnNob3dDYXRlZ29yeSkge1xyXG4gICAgICAgIHRoaXMucmVtb3ZlQ29sdW1uKCdjYXRlZ29yeScpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICghdGhpcy5zaG93UXVhbnRpdHkpIHtcclxuICAgICAgICB0aGlzLnJlbW92ZUNvbHVtbigncXVhbnRpdHknKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoIXRoaXMuc2hvd1ByaWNlKSB7XHJcbiAgICAgICAgdGhpcy5yZW1vdmVDb2x1bW4oJ3ByaWNlJyk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKCF0aGlzLnNob3dTdWJjYXRlZ29yeSkge1xyXG4gICAgICAgIHRoaXMucmVtb3ZlQ29sdW1uKCdzdWJDYXRlZ29yeScpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICghdGhpcy5zaG93U2t1TnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5yZW1vdmVDb2x1bW4oJ3NrdU51bWJlcicpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZGVhbElkID0gdGhpcy5nZXRMYWJlbE5hbWUoY2hlY2tBdHRyaWJ1dGUsIFwiZGVhbElkXCIpO1xyXG4gICAgICBjb25zdCBzdG9yZWREYXRhID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oYHNob3dHcmlkUGlja2VyUHJvZHVjdHMtJHt0aGlzLmRlYWxJZH1gKSB8fCAnJztcclxuICAgICAgY29uc3QgcGFyc2VkRGF0YSA9IEpTT04ucGFyc2Uoc3RvcmVkRGF0YSB8fCAnbnVsbCcpO1xyXG4gICAgICB0aGlzLmRhdGFTb3VyY2VOZXcgPSBBcnJheS5pc0FycmF5KHBhcnNlZERhdGEpID8gcGFyc2VkRGF0YSA6IFtdO1xyXG5cclxuICAgICAgLy8gU2V0IGZsYWcgdG8gdHJ1ZSB0byBwcmV2ZW50IGZ1cnRoZXIgZXhlY3V0aW9uXHJcbiAgICAgIHRoaXMuaGFzSW5pdGlhbGl6ZWQgPSB0cnVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5kYXRhU291cmNlLmRhdGEgPSBpbnN0YW5jZS5kYXRhVmFsdWU7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5jaGVja1N1Ym1pc3Npb25TdGF0dXMgJiYgIXRoaXMuaGFzVmFsdWVBbmRFZGl0TW9kZSkge1xyXG4gICAgICB0aGlzLnNob3dEYXRhR3JpZCA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YSA9IFtdXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNob3dEYXRhR3JpZCA9IHRydWU7XHJcbiAgICAgIHRoaXMuZGF0YVNvdXJjZS5kYXRhID0gaW5zdGFuY2UuZGF0YVZhbHVlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jb2x1bW5zID0ge307XHJcbiAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMgPSBbXTtcclxuICAgIHRoaXMuZm9ybUNvbHVtbnMgPSBbXTtcclxuICAgIGluc3RhbmNlLmdldENvbHVtbnMoKS5tYXAoKGNvbHVtbikgPT4ge1xyXG4gICAgICB0aGlzLmZvcm1Db2x1bW5zLnB1c2goY29sdW1uLmtleSk7XHJcbiAgICAgIHRoaXMuZGlzcGxheWVkQ29sdW1ucy5wdXNoKGNvbHVtbi5rZXkpO1xyXG4gICAgICB0aGlzLmNvbHVtbnNbY29sdW1uLmtleV0gPSBjb2x1bW47XHJcbiAgICB9KTtcclxuICAgIHRoaXMuZGlzcGxheWVkQ29sdW1ucy5wdXNoKCdfX3JlbW92ZVJvdycpO1xyXG4gICAgaWYgKHRoaXMuaW5zdGFuY2UuY29tcG9uZW50LnJlb3JkZXIpIHtcclxuICAgICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zLnB1c2goJ3Bvc2l0aW9uJyk7XHJcbiAgICB9XHJcbiAgICBpbnN0YW5jZS52aWV3Q29udGFpbmVyID0gKGNvbXBvbmVudCkgPT4ge1xyXG4gICAgICBsZXQgdmlld0NvbnRhaW5lcjtcclxuICAgICAgaWYgKHRoaXMuaW5zdGFuY2UuY29tcG9uZW50LmRpc2FibGVkKSB7XHJcbiAgICAgICAgY29tcG9uZW50LmNvbXBvbmVudC5kaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy52aWV3Q29udGFpbmVycy5mb3JFYWNoKChjb250YWluZXIpID0+IHtcclxuICAgICAgICBjb25zdCB0ZCA9IGNvbnRhaW5lci5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQucGFyZW50Tm9kZTtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICBjb21wb25lbnQucm93SW5kZXggPT09IHBhcnNlSW50KHRkLmdldEF0dHJpYnV0ZSgncm93SW5kZXgnKSwgMTApICYmXHJcbiAgICAgICAgICBjb21wb25lbnQuY29tcG9uZW50LmtleSA9PT0gdGQuZ2V0QXR0cmlidXRlKCdjb21wb25lbnQnKVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgdmlld0NvbnRhaW5lciA9IGNvbnRhaW5lcjtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgcmV0dXJuIHZpZXdDb250YWluZXIgPyB2aWV3Q29udGFpbmVyIDogbnVsbDtcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICByZW1vdmVDb2x1bW4oY29sdW1uTmFtZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmRpc3BsYXllZENvbHVtbnNOZXcgPSB0aGlzLmRpc3BsYXllZENvbHVtbnNOZXcuZmlsdGVyKGNvbHVtbiA9PiBjb2x1bW4gIT09IGNvbHVtbk5hbWUpO1xyXG4gIH1cclxuXHJcbiAgYWRkQW5vdGhlck9sZCgpIHtcclxuICAgIHRoaXMuc2hvd0RhdGFHcmlkID0gdHJ1ZTtcclxuICAgIHRoaXMuY2hlY2tSb3dzTnVtYmVyKCk7XHJcbiAgICB0aGlzLmluc3RhbmNlLmFkZFJvdygpO1xyXG4gICAgaWYgKHRoaXMuZGF0YVNvdXJjZS5kYXRhLmxlbmd0aCA8IHRoaXMuaW5zdGFuY2Uucm93cy5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5kYXRhU291cmNlLmRhdGEucHVzaCh7fSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YSA9IFsuLi50aGlzLmRhdGFTb3VyY2UuZGF0YV07XHJcbiAgfVxyXG5cclxuICBhZGRBbm90aGVyKCkge1xyXG4gICAgdGhpcy5zaG93RGF0YUdyaWQgPSB0cnVlO1xyXG4gICAgaWYgKHRoaXMuc2hvd05ld1Byb2R1Y3RQaWNrZXIpIHtcclxuICAgICAgY29uc3QgZGlvbG9nZVJlZiA9IHRoaXMuZGlhbG9nLm9wZW4oQWRkT25Qcm9kdWN0c0NvbXBvbmVudCwge1xyXG4gICAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZSxcclxuICAgICAgICB3aWR0aDogJzkwJScsXHJcbiAgICAgICAgbWF4V2lkdGg6ICc5MDBweCcsXHJcbiAgICAgICAgYXV0b0ZvY3VzOiBmYWxzZSxcclxuICAgICAgICBkYXRhOiB7IGRyb3Bkb3duc0ZsYWc6IHsgc2hvd05ld1Byb2R1Y3RQaWNrZXI6IHRoaXMuc2hvd05ld1Byb2R1Y3RQaWNrZXIsIHNob3dEaWFsb2dTdWJDYXRlZ29yeTogdGhpcy5zaG93RGlhbG9nU3ViQ2F0ZWdvcnksIHNob3dEaWFsb2dTa3VOdW1iZXI6IHRoaXMuc2hvd0RpYWxvZ1NrdU51bWJlciwgc2hvd0RpYWxvZ0NhdGVnb3J5OiB0aGlzLnNob3dEaWFsb2dDYXRlZ29yeSwgc2hvd0RpYWxvZ1ByaWNlOiB0aGlzLnNob3dEaWFsb2dQcmljZSwgc2hvd0RpYWxvZ1F1YW50aXR5OiB0aGlzLnNob3dEaWFsb2dRdWFudGl0eSwgZHJvcGRvd25MMTogdGhpcy5kcm9wZG93bkwxLCBkcm9wZG93bkwyOiB0aGlzLmRyb3Bkb3duTDIsIGRyb3Bkb3duTDM6IHRoaXMuZHJvcGRvd25MMywgZHJvcGRvd25MNDogdGhpcy5kcm9wZG93bkw0LCBkcm9wZG93bkwxTGFiZWw6IHRoaXMuZHJvcGRvd25MMUxhYmVsLCBkcm9wZG93bkwyTGFiZWw6IHRoaXMuZHJvcGRvd25MMkxhYmVsLCBkcm9wZG93bkwzTGFiZWw6IHRoaXMuZHJvcGRvd25MM0xhYmVsLCBkcm9wZG93bkw0TGFiZWw6IHRoaXMuZHJvcGRvd25MNExhYmVsIH0sIHNlbGVjdGVkUHJvZHVjdHM6IHRoaXMuZGF0YVNvdXJjZU5ldyB9XHJcbiAgICAgIH0pXHJcbiAgICAgICAgLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcclxuICAgICAgICAgIGlmIChyZXNwb25zZT8uZGF0YT8uc3RhdHVzKSB7XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5zaG93Q2F0ZWdvcnkpIHtcclxuICAgICAgICAgICAgICB0aGlzLnJlbW92ZUNvbHVtbignY2F0ZWdvcnknKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoIXRoaXMuc2hvd1F1YW50aXR5KSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5yZW1vdmVDb2x1bW4oJ3F1YW50aXR5Jyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKCF0aGlzLnNob3dQcmljZSkge1xyXG4gICAgICAgICAgICAgIHRoaXMucmVtb3ZlQ29sdW1uKCdwcmljZScpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5zaG93U3ViY2F0ZWdvcnkpIHtcclxuICAgICAgICAgICAgICB0aGlzLnJlbW92ZUNvbHVtbignc3ViQ2F0ZWdvcnknKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShgc2VsZWN0ZWRQcm9kdWN0cy0ke3RoaXMuZGVhbElkfWAsIEpTT04uc3RyaW5naWZ5KHJlc3BvbnNlLmRhdGEuaXRlbXMuc2VsZWN0ZWRQcm9kdWN0cykpO1xyXG4gICAgICAgICAgICB0aGlzLmRhdGFTb3VyY2VOZXcgPSByZXNwb25zZS5kYXRhLml0ZW1zLnNlbGVjdGVkUHJvZHVjdHM7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd0RhdGFHcmlkID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5pbnN0YW5jZS5jb21wb25lbnQuZGVmYXVsdFZhbHVlID0gcmVzcG9uc2UuZGF0YS5pdGVtcy5zZWxlY3RlZFByb2R1Y3RzO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jaGVja1Jvd3NOdW1iZXIoKTtcclxuICAgICAgdGhpcy5pbnN0YW5jZS5hZGRSb3coKTtcclxuICAgICAgaWYgKHRoaXMuZGF0YVNvdXJjZS5kYXRhLmxlbmd0aCA8IHRoaXMuaW5zdGFuY2Uucm93cy5sZW5ndGgpIHtcclxuICAgICAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YS5wdXNoKHt9KTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YSA9IFsuLi50aGlzLmRhdGFTb3VyY2UuZGF0YV07XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgY2hlY2tSb3dzTnVtYmVyKCkge1xyXG4gICAgd2hpbGUgKHRoaXMuaW5zdGFuY2Uucm93cy5sZW5ndGggPCB0aGlzLmRhdGFTb3VyY2UuZGF0YS5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5pbnN0YW5jZS5hZGRSb3coKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlbW92ZVJvdyhpbmRleCkge1xyXG4gICAgbGV0IG1lc3NhZ2UgPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGlzIHByb2R1Y3Q/JztcclxuICAgIGxldCBzaG93QnV0dG9uID0gdHJ1ZTtcclxuICAgIGlmICh0aGlzLmRhdGFTb3VyY2U/LmRhdGE/Lmxlbmd0aCA9PT0gMSAmJiAhdGhpcy5jaGVja1N1Ym1pc3Npb25TdGF0dXMpIHtcclxuICAgICAgbWVzc2FnZSA9ICdQbGVhc2Ugc2VsZWN0IGF0IGxlYXN0IG9uZSBwcm9kdWN0Lic7XHJcbiAgICAgIHNob3dCdXR0b24gPSBmYWxzZTtcclxuICAgIH1cclxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oQ29uZmlybWF0aW9uRGlhbG9nQ29tcG9uZW50LCB7XHJcbiAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZSxcclxuICAgICAgd2lkdGg6ICc5MCUnLFxyXG4gICAgICBtYXhXaWR0aDogJzQwMHB4JyxcclxuICAgICAgZGF0YTogeyBtZXNzYWdlOiBtZXNzYWdlLCBidXR0b25TdGF0dXM6IHNob3dCdXR0b24gfVxyXG4gICAgfSk7XHJcbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcclxuICAgICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICAgIGlmICh0aGlzLmRhdGFTb3VyY2U/LmRhdGE/Lmxlbmd0aCA9PT0gMSAmJiB0aGlzLmNoZWNrU3VibWlzc2lvblN0YXR1cykge1xyXG4gICAgICAgICAgdGhpcy5zaG93RGF0YUdyaWQgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gVXNlciBjb25maXJtZWQsIHByb2NlZWQgd2l0aCBkZWxldGlvblxyXG4gICAgICAgIHRoaXMuaW5zdGFuY2UucmVtb3ZlUm93KGluZGV4KTtcclxuICAgICAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YS5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZS5kYXRhID0gWy4uLnRoaXMuZGF0YVNvdXJjZS5kYXRhXTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBkcm9wVGFibGUoZXZlbnQ6IENka0RyYWdEcm9wPGFueT4pIHtcclxuICAgIGNvbnN0IHByZXZJbmRleCA9IHRoaXMuZGF0YVNvdXJjZS5kYXRhLmZpbmRJbmRleCgoZCkgPT4gZCA9PT0gZXZlbnQuaXRlbS5kYXRhKTtcclxuICAgIG1vdmVJdGVtSW5BcnJheSh0aGlzLmNvbnRyb2wudmFsdWUsIHByZXZJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcclxuICAgIHRoaXMucmVuZGVyQ29tcG9uZW50cygpO1xyXG4gIH1cclxuXHJcbiAgcmVuZGVyQ29tcG9uZW50cygpIHtcclxuICAgIHRoaXMuaW5zdGFuY2UuZ2V0Um93cygpO1xyXG4gICAgdGhpcy5pbnN0YW5jZS5zZXRWYWx1ZSh0aGlzLmNvbnRyb2wudmFsdWUgfHwgW10pO1xyXG4gIH1cclxuXHJcbiAgc2V0VmFsdWUodmFsdWU6IFtdIHwgbnVsbCkge1xyXG4gICAgY29uc3QgZ3JpZExlbmd0aCA9IHZhbHVlID8gdmFsdWUubGVuZ3RoIDogMDtcclxuICAgIHdoaWxlICh0aGlzLmluc3RhbmNlLnJvd3MubGVuZ3RoIDwgZ3JpZExlbmd0aCkge1xyXG4gICAgICB0aGlzLmFkZEFub3RoZXIoKTtcclxuICAgICAgdGhpcy5pbnN0YW5jZS5kYXRhVmFsdWUgPSB2YWx1ZTtcclxuICAgICAgdGhpcy5pbnN0YW5jZS5zZXRWYWx1ZSh2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCF2YWx1ZSAmJiB0aGlzLmluc3RhbmNlLmNvbXBvbmVudC5jbGVhck9uSGlkZSkge1xyXG4gICAgICB0aGlzLmRhdGFTb3VyY2UgPSBuZXcgTWF0VGFibGVEYXRhU291cmNlKHRoaXMuaW5zdGFuY2UuZGVmYXVsdFZhbHVlKTtcclxuICAgIH1cclxuICAgIHN1cGVyLnNldFZhbHVlKHZhbHVlKTtcclxuICB9XHJcbn1cclxuRGF0YUdyaWRDb21wb25lbnQuTWF0ZXJpYWxDb21wb25lbnQgPSBNYXRlcmlhbERhdGFHcmlkQ29tcG9uZW50O1xyXG5leHBvcnQgeyBEYXRhR3JpZENvbXBvbmVudCB9OyJdfQ==
|
|
533
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWdyaWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJlbmRlci1tYXRlcmlhbC1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvZGF0YWdyaWQvZGF0YWdyaWQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0MsU0FBUyxFQUFjLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3JFLE9BQU8saUJBQWlCLE1BQU0sMENBQTBDLENBQUM7QUFDekUsT0FBTyxFQUFlLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXRFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ25HLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDOzs7Ozs7Ozs7Ozs7O0FBT3RGLE1BQU0sWUFBWSxHQUFjLEVBQy9CLENBQUM7QUFxSUYsTUFBTSxPQUFPLHlCQUEwQixTQUFRLHVCQUF1QjtJQUVwRSxZQUFtQixPQUFtQixFQUFTLEdBQXNCLEVBQVUsTUFBaUIsRUFBUyxhQUE0QjtRQUNuSSxLQUFLLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBREgsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUFTLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUFTLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBTXJJLGVBQVUsR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7UUFDdEMsa0JBQWEsR0FBRyxZQUFZLENBQUM7UUFDN0Isd0JBQW1CLEdBQWEsQ0FBQyxhQUFhLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUs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QUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDNUgsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLEVBQUUsS0FBSyxTQUFTLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDNUgsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLEVBQUUsS0FBSyxTQUFTLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDNUgsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLEVBQUUsS0FBSyxTQUFTLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDNUgsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25CLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO1NBQzNCO1FBQ0QsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25CLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO1NBQzNCO1FBQ0QsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25CLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO1NBQzNCO1FBQ0QsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25CLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO1NBQzNCO1FBQ0QsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsb0JBQW9CLENBQUMsY0FBYyxFQUFFLG1CQUFtQixDQUFDLENBQUM7UUFDMUcsSUFBSSxDQUFDLG1CQUFtQixHQUFHLENBQUMsY0FBYyxFQUFFLFFBQVEsS0FBSyxLQUFLLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxRQUFRLEtBQUssTUFBTSxDQUFDLENBQUM7UUFDekcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM1QixJQUFJLElBQUksQ0FBQyxvQkFBb0IsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDckQsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7Z0JBQ3RCLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDL0I7WUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTtnQkFDdEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUMvQjtZQUNELElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUNuQixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQzVCO1lBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUU7Z0JBQ3pCLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUM7YUFDbEM7WUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRTtnQkFDdkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUNoQztZQUNELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDMUQsTUFBTSxVQUFVLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQywwQkFBMEIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3ZGLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxJQUFJLE1BQU0sQ0FBQyxDQUFDO1lBQ3BELElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFFakUsZ0RBQWdEO1lBQ2hELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1NBQzVCO2FBQU07WUFDTCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDO1NBQzNDO1FBQ0QsSUFBSSxJQUFJLENBQUMscUJBQXFCLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUU7WUFDM0QsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7WUFDMUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFBO1NBQzFCO2FBQU07WUFDTCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztZQUN6QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDO1NBQzNDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUN0QixRQUFRLENBQUMsVUFBVSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDbkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2xDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQztRQUNwQyxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDMUMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUU7WUFDbkMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUN4QztRQUNELFFBQVEsQ0FBQyxhQUFhLEdBQUcsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUNyQyxJQUFJLGFBQWEsQ0FBQztZQUNsQixJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRTtnQkFDcEMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO2FBQ3JDO1lBQ0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtnQkFDeEMsTUFBTSxFQUFFLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDO2dCQUN0RCxJQUNFLFNBQVMsQ0FBQyxRQUFRLEtBQUssUUFBUSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLEVBQUUsRUFBRSxDQUFDO29CQUNoRSxTQUFTLENBQUMsU0FBUyxDQUFDLEdBQUcsS0FBSyxFQUFFLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxFQUN4RDtvQkFDQSxhQUFhLEdBQUcsU0FBUyxDQUFDO2lCQUMzQjtZQUNILENBQUMsQ0FBQyxDQUFDO1lBRUgsT0FBTyxhQUFhLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQzlDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCxZQUFZLENBQUMsVUFBa0I7UUFDN0IsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEtBQUssVUFBVSxDQUFDLENBQUM7SUFDOUYsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN2QixJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDM0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQy9CO1FBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUN6QixJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtZQUM3QixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRTtnQkFDMUQsWUFBWSxFQUFFLElBQUk7Z0JBQ2xCLEtBQUssRUFBRSxLQUFLO2dCQUNaLFFBQVEsRUFBRSxPQUFPO2dCQUNqQixTQUFTLEVBQUUsS0FBSztnQkFDaEIsSUFBSSxFQUFFLEVBQUUsYUFBYSxFQUFFLEVBQUUsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixFQUFFLHFCQUFxQixFQUFFLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxtQkFBbUIsRUFBRSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixFQUFFLGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFLGtCQUFrQixFQUFFLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxlQUFlLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRSxlQUFlLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRSxlQUFlLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRSxlQUFlLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRSxxQkFBcUIsRUFBRSxJQUFJLENBQUMscUJBQXFCLEVBQUUsRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFO2FBQ3pwQixDQUFDO2lCQUNDLFdBQVcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDbEMsSUFBSSxRQUFRLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRTtvQkFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7d0JBQ3RCLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUM7cUJBQy9CO29CQUNELElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFO3dCQUN0QixJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDO3FCQUMvQjtvQkFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTt3QkFDbkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztxQkFDNUI7b0JBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUU7d0JBQ3pCLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUM7cUJBQ2xDO29CQUNELFlBQVksQ0FBQyxPQUFPLENBQUMsb0JBQW9CLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQztvQkFDOUcsSUFBSSxDQUFDLGFBQWEsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQztvQkFDMUQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7b0JBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLFlBQVksR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQztpQkFDN0U7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNOO2FBQU07WUFDTCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN2QixJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQzNELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUMvQjtZQUNELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2xEO0lBRUgsQ0FBQztJQUVELGVBQWU7UUFDYixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDOUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUN4QjtJQUNILENBQUM7SUFFRCxTQUFTLENBQUMsS0FBSztRQUNiLElBQUksT0FBTyxHQUFHLCtDQUErQyxDQUFDO1FBQzlELElBQUksVUFBVSxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLE1BQU0sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUU7WUFDdEUsT0FBTyxHQUFHLHFDQUFxQyxDQUFDO1lBQ2hELFVBQVUsR0FBRyxLQUFLLENBQUM7U0FDcEI7UUFDRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQywyQkFBMkIsRUFBRTtZQUM5RCxZQUFZLEVBQUUsSUFBSTtZQUNsQixLQUFLLEVBQUUsS0FBSztZQUNaLFFBQVEsRUFBRSxPQUFPO1lBQ2pCLElBQUksRUFBRSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRTtTQUNyRCxDQUFDLENBQUM7UUFDSCxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3pDLElBQUksTUFBTSxFQUFFO2dCQUNWLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsTUFBTSxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMscUJBQXFCLEVBQUU7b0JBQ3JFLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO2lCQUMzQjtnQkFDRCx3Q0FBd0M7Z0JBQ3hDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMvQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUN0QyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNsRDtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUF1QjtRQUMvQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9FLGVBQWUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxRQUFRLENBQUMsS0FBZ0I7UUFDdkIsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsVUFBVSxFQUFFO1lBQzdDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDaEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDL0I7UUFFRCxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRTtZQUNqRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUN0RTtRQUNELEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEIsQ0FBQzs7c0hBcFJVLHlCQUF5QjswR0FBekIseUJBQXlCLGtGQWxJMUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNkhUOzJGQUtVLHlCQUF5QjtrQkFwSXJDLFNBQVM7K0JBQ0UscUJBQXFCLFlBQ3JCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTZIVDs7QUEyUkgsaUJBQWlCLENBQUMsaUJBQWlCLEdBQUcseUJBQXlCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdHRyaWJ1dGUsIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0VGFibGVEYXRhU291cmNlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbE5lc3RlZENvbXBvbmVudCB9IGZyb20gJy4uL01hdGVyaWFsTmVzdGVkQ29tcG9uZW50JztcclxuaW1wb3J0IERhdGFHcmlkQ29tcG9uZW50IGZyb20gJ2Zvcm1pb2pzL2NvbXBvbmVudHMvZGF0YWdyaWQvRGF0YUdyaWQuanMnO1xyXG5pbXBvcnQgeyBDZGtEcmFnRHJvcCwgbW92ZUl0ZW1JbkFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IENvbmZpcm1hdGlvbkRpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uL2NvbmZpcm1hdGlvbi1kaWFsb2cvY29uZmlybWF0aW9uLWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBZGRPblByb2R1Y3RzQ29tcG9uZW50IH0gZnJvbSAnLi4vYWRkLW9uLXByb2R1Y3RzL2FkZC1vbi1wcm9kdWN0cy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb21tb25TZXJ2aWNlIH0gZnJvbSAnLi4vY29tbW9uLnNlcnZpY2UnO1xyXG5leHBvcnQgaW50ZXJmYWNlIFByb2R1Y3Qge1xyXG4gIHByb2R1Y3ROYW1lOiBzdHJpbmc7XHJcbiAgcXVhbnRpdHk6IG51bWJlcjtcclxuICBwcmljZTogbnVtYmVyO1xyXG59XHJcbmNvbnN0IEVMRU1FTlRfREFUQTogUHJvZHVjdFtdID0gW1xyXG5dO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ21hdC1mb3JtaW8tZGF0YWdyaWQnLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8bWF0LWZvcm1pby1mb3JtLWZpZWxkIFtpbnN0YW5jZV09XCJpbnN0YW5jZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb21wb25lbnRUZW1wbGF0ZV09XCJjb21wb25lbnRUZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbFRlbXBsYXRlXT1cImxhYmVsVGVtcGxhdGVcIlxyXG4gICAgPjwvbWF0LWZvcm1pby1mb3JtLWZpZWxkPlxyXG4gICAgPG5nLXRlbXBsYXRlICNjb21wb25lbnRUZW1wbGF0ZSBsZXQtaGFzTGFiZWw+XHJcbiAgICAgIDxtYXQtY2FyZCBmeEZpbGw+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhhc0xhYmVsXCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibGFiZWxUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxtYXQtY2FyZC1jb250ZW50ICpuZ0lmPVwic2hvd0RhdGFHcmlkXCI+XHJcbiAgICAgICAgICA8bWF0LWNhcmQtYWN0aW9uc1xyXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cImluc3RhbmNlLmhhc0FkZEJ1dHRvbigpICYmIChpbnN0YW5jZS5jb21wb25lbnQuYWRkQW5vdGhlclBvc2l0aW9uID09PSAnYm90aCcgfHwgaW5zdGFuY2UuY29tcG9uZW50LmFkZEFub3RoZXJQb3NpdGlvbiA9PT0gJ3RvcCcpXCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cImFkZEFub3RoZXIoKVwiPlxyXG4gICAgICAgICAgICAgIDxtYXQtaWNvbj5hZGQ8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgIHt7aW5zdGFuY2UuY29tcG9uZW50LmFkZEFub3RoZXIgfHwgJ0FkZCBBbm90aGVyJ319XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPC9tYXQtY2FyZC1hY3Rpb25zPlxyXG48bmctY29udGFpbmVyICpuZ0lmPVwiIXNob3dOZXdQcm9kdWN0UGlja2VyXCI+XHJcbjxkaXYgY2xhc3M9XCJtYXQtZWxldmF0aW9uLXo4XCI+XHJcbiAgICAgICAgICA8dGFibGVcclxuICAgICAgICAgICAgICAgICAgbWF0LXRhYmxlXHJcbiAgICAgICAgICAgICAgICAgIFtkYXRhU291cmNlXT1cImRhdGFTb3VyY2VcIlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cIm1hdC1lbGV2YXRpb24tejhcIlxyXG4gICAgICAgICAgICAgICAgICBmeEZpbGxcclxuICAgICAgICAgICAgICAgICAgY2RrRHJvcExpc3RcclxuICAgICAgICAgICAgICAgICAgW2Nka0Ryb3BMaXN0RGF0YV09XCJkYXRhU291cmNlXCJcclxuICAgICAgICAgICAgICAgICAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wVGFibGUoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBmb3JtQ29sdW1uc1wiIFttYXRDb2x1bW5EZWZdPVwiY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj57eyBnZXRDb2x1bW5MYWJlbChjb2x1bW5zW2NvbHVtbl0pIH19PC90aD5cclxuICAgICAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgaSA9IGluZGV4O1wiIFthdHRyLnJvd0luZGV4XT1cImlcIiBbYXR0ci5jb21wb25lbnRdPVwiY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2NvbXBvbmVudHM+PC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJfX3JlbW92ZVJvd1wiPlxyXG4gICAgICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+PC90aD5cclxuICAgICAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgaSA9IGluZGV4O1wiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uICpuZ0lmPVwiaW5zdGFuY2UuaGFzUmVtb3ZlQnV0dG9ucygpXCIgKGNsaWNrKT1cInJlbW92ZVJvdyhpKVwiPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWljb24gYXJpYS1oaWRkZW49XCJmYWxzZVwiIGFyaWEtbGFiZWw9XCJSZW1vdmUgcm93XCI+ZGVsZXRlPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInBvc2l0aW9uXCIgKm5nSWY9XCJpbnN0YW5jZS5jb21wb25lbnQucmVvcmRlclwiPlxyXG4gICAgICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+IE5vLjwvdGg+XHJcbiAgICAgICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj5cclxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjZGtEcmFnSGFuZGxlPnJlb3JkZXI8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8dHIgbWF0LWhlYWRlci1yb3cgKm1hdEhlYWRlclJvd0RlZj1cImRpc3BsYXllZENvbHVtbnNcIj48L3RyPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaW5zdGFuY2U/LmNvbXBvbmVudD8ucmVvcmRlclwiPlxyXG4gICAgICAgICAgICAgIDx0ciBjbGFzcz1cImRhdGFncmlkLXJvd1wiIG1hdC1yb3cgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IGRpc3BsYXllZENvbHVtbnM7XCIgY2RrRHJhZ1xyXG4gICAgICAgICAgICAgICAgICBbY2RrRHJhZ0RhdGFdPVwicm93XCI+PC90cj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhaW5zdGFuY2U/LmNvbXBvbmVudD8ucmVvcmRlclwiPlxyXG4gICAgICAgICAgICAgIDx0ciBjbGFzcz1cImRhdGFncmlkLXJvd1wiIG1hdC1yb3cgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IGRpc3BsYXllZENvbHVtbnM7XCI+PC90cj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L3RhYmxlPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbjwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDx0YWJsZSBtYXQtdGFibGUgW2RhdGFTb3VyY2VdPVwiZGF0YVNvdXJjZU5ld1wiIGNsYXNzPVwibWF0LXRhYmxlXCIgKm5nSWY9XCJkYXRhU291cmNlTmV3Lmxlbmd0aCA+IDAgJiYgc2hvd05ld1Byb2R1Y3RQaWNrZXI7IGVsc2Ugbm9EYXRhXCIgPlxyXG4gICAgPCEtLSBQcm9kdWN0IE5hbWUgQ29sdW1uIC0tPlxyXG4gICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJwcm9kdWN0TmFtZVwiPlxyXG4gICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiBQcm9kdWN0IE5hbWUgPC90aD5cclxuICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj4ge3tlbGVtZW50LnRleHR9fSA8L3RkPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPCEtLSBRdWFudGl0eSBDb2x1bW4gLS0+XHJcbiAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInF1YW50aXR5XCIgKm5nSWY9XCJzaG93UXVhbnRpdHlcIj5cclxuICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gUXVhbnRpdHkgPC90aD5cclxuICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj4ge3tlbGVtZW50LnF1YW50aXR5fX0gPC90ZD5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDwhLS0gUHJpY2UgQ29sdW1uIC0tPlxyXG4gICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJwcmljZVwiICpuZ0lmPVwic2hvd1ByaWNlXCI+XHJcbiAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+IFByaWNlIDwvdGg+XHJcbiAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+IHt7ZWxlbWVudC5wcmljZX19IDwvdGQ+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgPCEtLSBDYXRlZ29yeSBDb2x1bW4gLS0+XHJcbiAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImNhdGVnb3J5XCIgKm5nSWY9XCJzaG93Q2F0ZWdvcnlcIj5cclxuICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gQ2F0ZWdvcnkgPC90aD5cclxuICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj4ge3tlbGVtZW50LmNhdGVnb3J5fX0gPC90ZD5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8IS0tIENhdGVnb3J5IENvbHVtbiAtLT5cclxuICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwic3ViQ2F0ZWdvcnlcIiAqbmdJZj1cInNob3dTdWJjYXRlZ29yeVwiPlxyXG4gICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiBTdWIgQ2F0ZWdvcnkgPC90aD5cclxuICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj4ge3tlbGVtZW50LnN1YkNhdGVnb3J5fX0gPC90ZD5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8IS0tIFNLVSBDb2x1bW4gLS0+XHJcbiAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInNrdU51bWJlclwiICpuZ0lmPVwic2hvd1NrdU51bWJlclwiPlxyXG4gICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiBTS1UgTnVtYmVyIDwvdGg+XHJcbiAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+ICNTa3VOdW1iZXIte3tlbGVtZW50LnZhbHVlfX0gPC90ZD5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDx0ciBtYXQtaGVhZGVyLXJvdyAqbWF0SGVhZGVyUm93RGVmPVwiZGlzcGxheWVkQ29sdW1uc05ld1wiPjwvdHI+XHJcbiAgICA8dHIgbWF0LXJvdyAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogZGlzcGxheWVkQ29sdW1uc05ldztcIj48L3RyPlxyXG4gIDwvdGFibGU+XHJcbiAgPG5nLXRlbXBsYXRlICNub0RhdGE+XHJcbiAgPGRpdiBjbGFzcz1cIm5vLWRhdGEtbWVzc2FnZVwiICpuZ0lmPVwic2hvd05ld1Byb2R1Y3RQaWNrZXJcIj5cclxuICAgICAgTm8gcHJvZHVjdHMgZm91bmQuIFBsZWFzZSBhZGQgc29tZSBwcm9kdWN0cy5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG5cclxuXHJcbiAgICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxyXG4gICAgICAgIDxtYXQtY2FyZC1hY3Rpb25zICpuZ0lmPVwiaW5zdGFuY2UuaGFzQWRkQnV0dG9uKCkgJiYgaW5zdGFuY2UuY29tcG9uZW50LmFkZEFub3RoZXJQb3NpdGlvbiAhPT0gJ3RvcCdcIj5cclxuICAgICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cImFkZEFub3RoZXIoKVwiPlxyXG4gICAgICAgICAgICA8bWF0LWljb24+YWRkPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAge3tpbnN0YW5jZS5jb21wb25lbnQuYWRkQW5vdGhlciB8fCAnQWRkIEFub3RoZXInfX1cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvbWF0LWNhcmQtYWN0aW9ucz5cclxuICAgICAgPC9tYXQtY2FyZD5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgPG5nLXRlbXBsYXRlICNsYWJlbFRlbXBsYXRlPlxyXG4gICAgICA8bWF0LWNhcmQtdGl0bGU+XHJcbiAgICAgICAgPHNwYW4gW2luc3RhbmNlXT1cImluc3RhbmNlXCIgbWF0Rm9ybWlvTGFiZWw+PC9zcGFuPlxyXG4gICAgICA8L21hdC1jYXJkLXRpdGxlPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICBgLFxyXG4gIHN0eWxlczogW1xyXG4gICAgJy5kYXRhZ3JpZC1yb3cgeyBoZWlnaHQ6IGF1dG87IH0gLm1hdC10YWJsZXsgd2lkdGg6IDEwMCUgfSAubWF0LWhlYWRlci1jZWxsLCAubWF0LWNlbGx7IHBhZGRpbmc6IDhweCB9IC5uby1kYXRhLW1lc3NhZ2Uge2Rpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogY2VudGVyOyBhbGlnbi1pdGVtczogY2VudGVyOyB0ZXh0LWFsaWduOiBjZW50ZXI7IHBhZGRpbmc6MjBweDsgbWFyZ2luOiAwIDIwcHggMDsgZm9udC1zaXplOiAxOHB4O2NvbG9yOiAjODg4OyBoZWlnaHQ6IDEwMCU7fSdcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNYXRlcmlhbERhdGFHcmlkQ29tcG9uZW50IGV4dGVuZHMgTWF0ZXJpYWxOZXN0ZWRDb21wb25lbnQge1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZWxlbWVudDogRWxlbWVudFJlZiwgcHVibGljIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2csIHB1YmxpYyBjb21tb25TZXJ2aWNlOiBDb21tb25TZXJ2aWNlKSB7XHJcbiAgICBzdXBlcihlbGVtZW50LCByZWYpO1xyXG4gIH1cclxuICBkaXNwbGF5ZWRDb2x1bW5zOiBzdHJpbmdbXTtcclxuICBmb3JtQ29sdW1uczogc3RyaW5nW107XHJcbiAgY29sdW1uczogYW55O1xyXG4gIGRhdGFTb3VyY2UgPSBuZXcgTWF0VGFibGVEYXRhU291cmNlKCk7XHJcbiAgZGF0YVNvdXJjZU5ldyA9IEVMRU1FTlRfREFUQTtcclxuICBkaXNwbGF5ZWRDb2x1bW5zTmV3OiBzdHJpbmdbXSA9IFsncHJvZHVjdE5hbWUnLCAnY2F0ZWdvcnknLCAnc3ViQ2F0ZWdvcnknLCAncXVhbnRpdHknLCAncHJpY2UnLCAnc2t1TnVtYmVyJ107XHJcbiAgc2hvd05ld1Byb2R1Y3RQaWNrZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzaG93Q2F0ZWdvcnk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzaG93U3ViY2F0ZWdvcnk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzaG93UHJpY2U6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHNob3dRdWFudGl0eTogYm9vbGVhbiA9IHRydWU7XHJcbiAgc2hvd1NrdU51bWJlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGhhc0luaXRpYWxpemVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgY2hlY2tTdWJtaXNzaW9uU3RhdHVzOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2hvd0RhdGFHcmlkOiBib29sZWFuID0gdHJ1ZTtcclxuICBoYXNWYWx1ZUFuZEVkaXRNb2RlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgZHJvcGRvd25MMTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGRyb3Bkb3duTDI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBkcm9wZG93bkwzOiBib29sZWFuID0gZmFsc2U7XHJcbiAgZHJvcGRvd25MNDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNob3dEaWFsb2dRdWFudGl0eTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNob3dEaWFsb2dQcmljZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNob3dEaWFsb2dDYXRlZ29yeTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNob3dEaWFsb2dTa3VOdW1iZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzaG93RGlhbG9nU3ViQ2F0ZWdvcnk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBkcm9wZG93bkwxTGFiZWw6IHN0cmluZyA9ICcnO1xyXG4gIGRyb3Bkb3duTDJMYWJlbDogc3RyaW5nID0gJyc7XHJcbiAgZHJvcGRvd25MM0xhYmVsOiBzdHJpbmcgPSAnJztcclxuICBkcm9wZG93bkw0TGFiZWw6IHN0cmluZyA9ICcnO1xyXG4gIGRlYWxJZDogYW55O1xyXG4gIGdldENvbHVtbkxhYmVsKGNvbHVtbikge1xyXG4gICAgcmV0dXJuIGNvbHVtbi5sYWJlbCB8fCBjb2x1bW4ua2V5O1xyXG4gIH1cclxuXHJcbiAgY2hlY2tJc0F0dHJpYnV0ZVRydWUobmV3UHJvZHVjdFBpY2tlckZsYWcsIGF0dHJpYnV0ZU5hbWUpIHtcclxuICAgIHJldHVybiBuZXdQcm9kdWN0UGlja2VyRmxhZyAmJiBPYmplY3Qua2V5cyhuZXdQcm9kdWN0UGlja2VyRmxhZykuc29tZShrZXkgPT5cclxuICAgICAga2V5LnRvTG9jYWxlTG93ZXJDYXNlKCkgPT09IGF0dHJpYnV0ZU5hbWUudG9Mb3dlckNhc2UoKSAmJlxyXG4gICAgICBuZXdQcm9kdWN0UGlja2VyRmxhZ1trZXldLnRvTG93ZXJDYXNlKCkgPT09IFwidHJ1ZVwiXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0TGFiZWxOYW1lKG5ld1Byb2R1Y3RQaWNrZXJGbGFnLCBhdHRyaWJ1dGVOYW1lKSB7XHJcbiAgICBpZiAobmV3UHJvZHVjdFBpY2tlckZsYWcgJiYgT2JqZWN0LmtleXMobmV3UHJvZHVjdFBpY2tlckZsYWcpLnNvbWUoa2V5ID0+XHJcbiAgICAgIGtleS50b0xvY2FsZUxvd2VyQ2FzZSgpID09PSBhdHRyaWJ1dGVOYW1lLnRvTG93ZXJDYXNlKCkpKSB7XHJcbiAgICAgIC8vIEZpbmQgdGhlIGtleSB0aGF0IG1hdGNoZXMgYXR0cmlidXRlTmFtZSBjYXNlLWluc2Vuc2l0aXZlbHlcclxuICAgICAgY29uc3QgbWF0Y2hpbmdLZXkgPSBPYmplY3Qua2V5cyhuZXdQcm9kdWN0UGlja2VyRmxhZykuZmluZChrZXkgPT5cclxuICAgICAgICBrZXkudG9Mb2NhbGVMb3dlckNhc2UoKSA9PT0gYXR0cmlidXRlTmFtZS50b0xvd2VyQ2FzZSgpXHJcbiAgICAgICk7XHJcbiAgICAgIC8vIFJldHVybiB0aGUgdmFsdWUgb2YgdGhlIG1hdGNoaW5nIGtleVxyXG4gICAgICByZXR1cm4gbmV3UHJvZHVjdFBpY2tlckZsYWdbbWF0Y2hpbmdLZXldO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiAnJztcclxuICB9XHJcblxyXG5cclxuICAvLyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHJcbiAgLy8gfVxyXG5cclxuICBzZXRJbnN0YW5jZShpbnN0YW5jZTogYW55KSB7XHJcbiAgICAvL2NvbnN0IG5ld1Byb2R1Y3RQaWNrZXJGbGFnID0gaW5zdGFuY2U/LmNvbXBvbmVudD8uYXR0cmlidXRlcztcclxuICAgIGNvbnN0IGNoZWNrQXR0cmlidXRlID0gaW5zdGFuY2U/LmNvbXBvbmVudD8uYXR0cmlidXRlcztcclxuICAgIHRoaXMuc2hvd05ld1Byb2R1Y3RQaWNrZXIgPSB0aGlzLmNoZWNrSXNBdHRyaWJ1dGVUcnVlKGNoZWNrQXR0cmlidXRlLCBcIm5ld3Byb2R1Y3RwaWNrZXJcIik7XHJcbiAgICB0aGlzLnNob3dDYXRlZ29yeSA9IHRoaXMuY2hlY2tJc0F0dHJpYnV0ZVRydWUoY2hlY2tBdHRyaWJ1dGUsIFwic2hvd0NhdGVnb3J5XCIpO1xyXG4gICAgdGhpcy5zaG93U3ViY2F0ZWdvcnkgPSB0aGlzLmNoZWNrSXNBdHRyaWJ1dGVUcnVlKGNoZWNrQXR0cmlidXRlLCBcInNob3dTdWJjYXRlZ29yeVwiKTtcclxuICAgIHRoaXMuc2hvd1ByaWNlID0gdGhpcy5jaGVja0lzQXR0cmlidXRlVHJ1ZShjaGVja0F0dHJpYnV0ZSwgXCJzaG93UHJpY2VcIik7XHJcbiAgICB0aGlzLnNob3dRdWFudGl0eSA9IHRoaXMuY2hlY2tJc0F0dHJpYnV0ZVRydWUoY2hlY2tBdHRyaWJ1dGUsIFwic2hvd1F1YW50aXR5XCIpO1xyXG4gICAgdGhpcy5zaG93U2t1TnVtYmVyID0gdGhpcy5jaGVja0lzQXR0cmlidXRlVHJ1ZShjaGVja0F0dHJpYnV0ZSwgXCJzaG93U2t1TnVtYmVyXCIpO1xyXG4gICAgdGhpcy5zaG93RGlhbG9nUXVhbnRpdHkgPSB0aGlzLmNoZWNrSXNBdHRyaWJ1dGVUcnVlKGNoZWNrQXR0cmlidXRlLCBcInNob3dEaWFsb2dRdWFudGl0eVwiKTtcclxuICAgIHRoaXMuc2hvd0RpYWxvZ1ByaWNlID0gdGhpcy5jaGVja0lzQXR0cmlidXRlVHJ1ZShjaGVja0F0dHJpYnV0ZSwgXCJzaG93RGlhbG9nUHJpY2VcIik7XHJcbiAgICB0aGlzLnNob3dEaWFsb2dDYXRlZ29yeSA9IHRoaXMuY2hlY2tJc0F0dHJpYnV0ZVRydWUoY2hlY2tBdHRyaWJ1dGUsIFwic2hvd0RpYWxvZ0NhdGVnb3J5XCIpO1xyXG4gICAgdGhpcy5zaG93RGlhbG9nU2t1TnVtYmVyID0gdGhpcy5jaGVja0lzQXR0cmlidXRlVHJ1ZShjaGVja0F0dHJpYnV0ZSwgXCJzaG93RGlhbG9nU2t1TnVtYmVyXCIpO1xyXG4gICAgdGhpcy5zaG93RGlhbG9nU3ViQ2F0ZWdvcnkgPSB0aGlzLmNoZWNrSXNBdHRyaWJ1dGVUcnVlKGNoZWNrQXR0cmlidXRlLCBcInNob3dEaWFsb2dTdWJDYXRlZ29yeVwiKTtcclxuICAgIGNvbnN0IGwxID0gdGhpcy5nZXRMYWJlbE5hbWUoY2hlY2tBdHRyaWJ1dGUsIFwiZHJvcGRvd25MMVwiKTtcclxuICAgIGNvbnN0IGwyID0gdGhpcy5nZXRMYWJlbE5hbWUoY2hlY2tBdHRyaWJ1dGUsIFwiZHJvcGRvd25MMlwiKTtcclxuICAgIGNvbnN0IGwzID0gdGhpcy5nZXRMYWJlbE5hbWUoY2hlY2tBdHRyaWJ1dGUsIFwiZHJvcGRvd25MM1wiKTtcclxuICAgIGNvbnN0IGw0ID0gdGhpcy5nZXRMYWJlbE5hbWUoY2hlY2tBdHRyaWJ1dGUsIFwiZHJvcGRvd25MNFwiKTtcclxuICAgIHRoaXMuZHJvcGRvd25MMSA9IGwxICE9PSBudWxsICYmIGwxICE9PSB1bmRlZmluZWQgJiYgKHR5cGVvZiBsMSA9PT0gJ3N0cmluZycgPyBsMS50cmltKCkgIT09IFwiXCIgOiBsMSAhPT0gXCJcIikgPyB0cnVlIDogZmFsc2U7XHJcbiAgICB0aGlzLmRyb3Bkb3duTDIgPSBsMiAhPT0gbnVsbCAmJiBsMiAhPT0gdW5kZWZpbmVkICYmICh0eXBlb2YgbDIgPT09ICdzdHJpbmcnID8gbDIudHJpbSgpICE9PSBcIlwiIDogbDIgIT09IFwiXCIpID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgdGhpcy5kcm9wZG93bkwzID0gbDMgIT09IG51bGwgJiYgbDMgIT09IHVuZGVmaW5lZCAmJiAodHlwZW9mIGwzID09PSAnc3RyaW5nJyA/IGwzLnRyaW0oKSAhPT0gXCJcIiA6IGwzICE9PSBcIlwiKSA/IHRydWUgOiBmYWxzZTtcclxuICAgIHRoaXMuZHJvcGRvd25MNCA9IGw0ICE9PSBudWxsICYmIGw0ICE9PSB1bmRlZmluZWQgJiYgKHR5cGVvZiBsNCA9PT0gJ3N0cmluZycgPyBsNC50cmltKCkgIT09IFwiXCIgOiBsNCAhPT0gXCJcIikgPyB0cnVlIDogZmFsc2U7XHJcbiAgICBpZiAodGhpcy5kcm9wZG93bkwxKSB7XHJcbiAgICAgIHRoaXMuZHJvcGRvd25MMUxhYmVsID0gbDE7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5kcm9wZG93bkwyKSB7XHJcbiAgICAgIHRoaXMuZHJvcGRvd25MMkxhYmVsID0gbDI7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5kcm9wZG93bkwzKSB7XHJcbiAgICAgIHRoaXMuZHJvcGRvd25MM0xhYmVsID0gbDM7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5kcm9wZG93bkw0KSB7XHJcbiAgICAgIHRoaXMuZHJvcGRvd25MNExhYmVsID0gbDQ7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNoZWNrU3VibWlzc2lvblN0YXR1cyA9IHRoaXMuY29tbW9uU2VydmljZS5jaGVja0lzQXR0cmlidXRlVHJ1ZShjaGVja0F0dHJpYnV0ZSwgJ2lzUHJvZHVjdE9wdGlvbmFsJyk7XHJcbiAgICB0aGlzLmhhc1ZhbHVlQW5kRWRpdE1vZGUgPSAoY2hlY2tBdHRyaWJ1dGU/Lmhhc1ZhbHVlID09PSAneWVzJykgJiYgKGNoZWNrQXR0cmlidXRlPy5lZGl0TW9kZSA9PT0gJ3RydWUnKTtcclxuICAgIHN1cGVyLnNldEluc3RhbmNlKGluc3RhbmNlKTtcclxuICAgIGlmICh0aGlzLnNob3dOZXdQcm9kdWN0UGlja2VyICYmICF0aGlzLmhhc0luaXRpYWxpemVkKSB7XHJcbiAgICAgIGlmICghdGhpcy5zaG93Q2F0ZWdvcnkpIHtcclxuICAgICAgICB0aGlzLnJlbW92ZUNvbHVtbignY2F0ZWdvcnknKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoIXRoaXMuc2hvd1F1YW50aXR5KSB7XHJcbiAgICAgICAgdGhpcy5yZW1vdmVDb2x1bW4oJ3F1YW50aXR5Jyk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKCF0aGlzLnNob3dQcmljZSkge1xyXG4gICAgICAgIHRoaXMucmVtb3ZlQ29sdW1uKCdwcmljZScpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICghdGhpcy5zaG93U3ViY2F0ZWdvcnkpIHtcclxuICAgICAgICB0aGlzLnJlbW92ZUNvbHVtbignc3ViQ2F0ZWdvcnknKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoIXRoaXMuc2hvd1NrdU51bWJlcikge1xyXG4gICAgICAgIHRoaXMucmVtb3ZlQ29sdW1uKCdza3VOdW1iZXInKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmRlYWxJZCA9IHRoaXMuZ2V0TGFiZWxOYW1lKGNoZWNrQXR0cmlidXRlLCBcImRlYWxJZFwiKTtcclxuICAgICAgY29uc3Qgc3RvcmVkRGF0YSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKGBzaG93R3JpZFBpY2tlclByb2R1Y3RzLSR7dGhpcy5kZWFsSWR9YCkgfHwgJyc7XHJcbiAgICAgIGNvbnN0IHBhcnNlZERhdGEgPSBKU09OLnBhcnNlKHN0b3JlZERhdGEgfHwgJ251bGwnKTtcclxuICAgICAgdGhpcy5kYXRhU291cmNlTmV3ID0gQXJyYXkuaXNBcnJheShwYXJzZWREYXRhKSA/IHBhcnNlZERhdGEgOiBbXTtcclxuXHJcbiAgICAgIC8vIFNldCBmbGFnIHRvIHRydWUgdG8gcHJldmVudCBmdXJ0aGVyIGV4ZWN1dGlvblxyXG4gICAgICB0aGlzLmhhc0luaXRpYWxpemVkID0gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZGF0YVNvdXJjZS5kYXRhID0gaW5zdGFuY2UuZGF0YVZhbHVlO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuY2hlY2tTdWJtaXNzaW9uU3RhdHVzICYmICF0aGlzLmhhc1ZhbHVlQW5kRWRpdE1vZGUpIHtcclxuICAgICAgdGhpcy5zaG93RGF0YUdyaWQgPSBmYWxzZTtcclxuICAgICAgdGhpcy5kYXRhU291cmNlLmRhdGEgPSBbXVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zaG93RGF0YUdyaWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YSA9IGluc3RhbmNlLmRhdGFWYWx1ZTtcclxuICAgIH1cclxuICAgIHRoaXMuY29sdW1ucyA9IHt9O1xyXG4gICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zID0gW107XHJcbiAgICB0aGlzLmZvcm1Db2x1bW5zID0gW107XHJcbiAgICBpbnN0YW5jZS5nZXRDb2x1bW5zKCkubWFwKChjb2x1bW4pID0+IHtcclxuICAgICAgdGhpcy5mb3JtQ29sdW1ucy5wdXNoKGNvbHVtbi5rZXkpO1xyXG4gICAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMucHVzaChjb2x1bW4ua2V5KTtcclxuICAgICAgdGhpcy5jb2x1bW5zW2NvbHVtbi5rZXldID0gY29sdW1uO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMucHVzaCgnX19yZW1vdmVSb3cnKTtcclxuICAgIGlmICh0aGlzLmluc3RhbmNlLmNvbXBvbmVudC5yZW9yZGVyKSB7XHJcbiAgICAgIHRoaXMuZGlzcGxheWVkQ29sdW1ucy5wdXNoKCdwb3NpdGlvbicpO1xyXG4gICAgfVxyXG4gICAgaW5zdGFuY2Uudmlld0NvbnRhaW5lciA9IChjb21wb25lbnQpID0+IHtcclxuICAgICAgbGV0IHZpZXdDb250YWluZXI7XHJcbiAgICAgIGlmICh0aGlzLmluc3RhbmNlLmNvbXBvbmVudC5kaXNhYmxlZCkge1xyXG4gICAgICAgIGNvbXBvbmVudC5jb21wb25lbnQuZGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMudmlld0NvbnRhaW5lcnMuZm9yRWFjaCgoY29udGFpbmVyKSA9PiB7XHJcbiAgICAgICAgY29uc3QgdGQgPSBjb250YWluZXIuZWxlbWVudC5uYXRpdmVFbGVtZW50LnBhcmVudE5vZGU7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgY29tcG9uZW50LnJvd0luZGV4ID09PSBwYXJzZUludCh0ZC5nZXRBdHRyaWJ1dGUoJ3Jvd0luZGV4JyksIDEwKSAmJlxyXG4gICAgICAgICAgY29tcG9uZW50LmNvbXBvbmVudC5rZXkgPT09IHRkLmdldEF0dHJpYnV0ZSgnY29tcG9uZW50JylcclxuICAgICAgICApIHtcclxuICAgICAgICAgIHZpZXdDb250YWluZXIgPSBjb250YWluZXI7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHJldHVybiB2aWV3Q29udGFpbmVyID8gdmlld0NvbnRhaW5lciA6IG51bGw7XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlQ29sdW1uKGNvbHVtbk5hbWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zTmV3ID0gdGhpcy5kaXNwbGF5ZWRDb2x1bW5zTmV3LmZpbHRlcihjb2x1bW4gPT4gY29sdW1uICE9PSBjb2x1bW5OYW1lKTtcclxuICB9XHJcblxyXG4gIGFkZEFub3RoZXJPbGQoKSB7XHJcbiAgICB0aGlzLnNob3dEYXRhR3JpZCA9IHRydWU7XHJcbiAgICB0aGlzLmNoZWNrUm93c051bWJlcigpO1xyXG4gICAgdGhpcy5pbnN0YW5jZS5hZGRSb3coKTtcclxuICAgIGlmICh0aGlzLmRhdGFTb3VyY2UuZGF0YS5sZW5ndGggPCB0aGlzLmluc3RhbmNlLnJvd3MubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuZGF0YVNvdXJjZS5kYXRhLnB1c2goe30pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5kYXRhU291cmNlLmRhdGEgPSBbLi4udGhpcy5kYXRhU291cmNlLmRhdGFdO1xyXG4gIH1cclxuXHJcbiAgYWRkQW5vdGhlcigpIHtcclxuICAgIHRoaXMuc2hvd0RhdGFHcmlkID0gdHJ1ZTtcclxuICAgIGlmICh0aGlzLnNob3dOZXdQcm9kdWN0UGlja2VyKSB7XHJcbiAgICAgIGNvbnN0IGRpb2xvZ2VSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKEFkZE9uUHJvZHVjdHNDb21wb25lbnQsIHtcclxuICAgICAgICBkaXNhYmxlQ2xvc2U6IHRydWUsXHJcbiAgICAgICAgd2lkdGg6ICc5MCUnLFxyXG4gICAgICAgIG1heFdpZHRoOiAnOTAwcHgnLFxyXG4gICAgICAgIGF1dG9Gb2N1czogZmFsc2UsXHJcbiAgICAgICAgZGF0YTogeyBkcm9wZG93bnNGbGFnOiB7IHNob3dOZXdQcm9kdWN0UGlja2VyOiB0aGlzLnNob3dOZXdQcm9kdWN0UGlja2VyLCBzaG93RGlhbG9nU3ViQ2F0ZWdvcnk6IHRoaXMuc2hvd0RpYWxvZ1N1YkNhdGVnb3J5LCBzaG93RGlhbG9nU2t1TnVtYmVyOiB0aGlzLnNob3dEaWFsb2dTa3VOdW1iZXIsIHNob3dEaWFsb2dDYXRlZ29yeTogdGhpcy5zaG93RGlhbG9nQ2F0ZWdvcnksIHNob3dEaWFsb2dQcmljZTogdGhpcy5zaG93RGlhbG9nUHJpY2UsIHNob3dEaWFsb2dRdWFudGl0eTogdGhpcy5zaG93RGlhbG9nUXVhbnRpdHksIGRyb3Bkb3duTDE6IHRoaXMuZHJvcGRvd25MMSwgZHJvcGRvd25MMjogdGhpcy5kcm9wZG93bkwyLCBkcm9wZG93bkwzOiB0aGlzLmRyb3Bkb3duTDMsIGRyb3Bkb3duTDQ6IHRoaXMuZHJvcGRvd25MNCwgZHJvcGRvd25MMUxhYmVsOiB0aGlzLmRyb3Bkb3duTDFMYWJlbCwgZHJvcGRvd25MMkxhYmVsOiB0aGlzLmRyb3Bkb3duTDJMYWJlbCwgZHJvcGRvd25MM0xhYmVsOiB0aGlzLmRyb3Bkb3duTDNMYWJlbCwgZHJvcGRvd25MNExhYmVsOiB0aGlzLmRyb3Bkb3duTDRMYWJlbCwgY2hlY2tTdWJtaXNzaW9uU3RhdHVzOiB0aGlzLmNoZWNrU3VibWlzc2lvblN0YXR1cyB9LCBzZWxlY3RlZFByb2R1Y3RzOiB0aGlzLmRhdGFTb3VyY2VOZXcgfVxyXG4gICAgICB9KVxyXG4gICAgICAgIC5hZnRlckNsb3NlZCgpLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzcG9uc2U/LmRhdGE/LnN0YXR1cykge1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuc2hvd0NhdGVnb3J5KSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5yZW1vdmVDb2x1bW4oJ2NhdGVnb3J5Jyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKCF0aGlzLnNob3dRdWFudGl0eSkge1xyXG4gICAgICAgICAgICAgIHRoaXMucmVtb3ZlQ29sdW1uKCdxdWFudGl0eScpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5zaG93UHJpY2UpIHtcclxuICAgICAgICAgICAgICB0aGlzLnJlbW92ZUNvbHVtbigncHJpY2UnKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoIXRoaXMuc2hvd1N1YmNhdGVnb3J5KSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5yZW1vdmVDb2x1bW4oJ3N1YkNhdGVnb3J5Jyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oYHNlbGVjdGVkUHJvZHVjdHMtJHt0aGlzLmRlYWxJZH1gLCBKU09OLnN0cmluZ2lmeShyZXNwb25zZS5kYXRhLml0ZW1zLnNlbGVjdGVkUHJvZHVjdHMpKTtcclxuICAgICAgICAgICAgdGhpcy5kYXRhU291cmNlTmV3ID0gcmVzcG9uc2UuZGF0YS5pdGVtcy5zZWxlY3RlZFByb2R1Y3RzO1xyXG4gICAgICAgICAgICB0aGlzLnNob3dEYXRhR3JpZCA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuaW5zdGFuY2UuY29tcG9uZW50LmRlZmF1bHRWYWx1ZSA9IHJlc3BvbnNlLmRhdGEuaXRlbXMuc2VsZWN0ZWRQcm9kdWN0cztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY2hlY2tSb3dzTnVtYmVyKCk7XHJcbiAgICAgIHRoaXMuaW5zdGFuY2UuYWRkUm93KCk7XHJcbiAgICAgIGlmICh0aGlzLmRhdGFTb3VyY2UuZGF0YS5sZW5ndGggPCB0aGlzLmluc3RhbmNlLnJvd3MubGVuZ3RoKSB7XHJcbiAgICAgICAgdGhpcy5kYXRhU291cmNlLmRhdGEucHVzaCh7fSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5kYXRhU291cmNlLmRhdGEgPSBbLi4udGhpcy5kYXRhU291cmNlLmRhdGFdO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIGNoZWNrUm93c051bWJlcigpIHtcclxuICAgIHdoaWxlICh0aGlzLmluc3RhbmNlLnJvd3MubGVuZ3RoIDwgdGhpcy5kYXRhU291cmNlLmRhdGEubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuaW5zdGFuY2UuYWRkUm93KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZW1vdmVSb3coaW5kZXgpIHtcclxuICAgIGxldCBtZXNzYWdlID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhpcyBwcm9kdWN0Pyc7XHJcbiAgICBsZXQgc2hvd0J1dHRvbiA9IHRydWU7XHJcbiAgICBpZiAodGhpcy5kYXRhU291cmNlPy5kYXRhPy5sZW5ndGggPT09IDEgJiYgIXRoaXMuY2hlY2tTdWJtaXNzaW9uU3RhdHVzKSB7XHJcbiAgICAgIG1lc3NhZ2UgPSAnUGxlYXNlIHNlbGVjdCBhdCBsZWFzdCBvbmUgcHJvZHVjdC4nO1xyXG4gICAgICBzaG93QnV0dG9uID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKENvbmZpcm1hdGlvbkRpYWxvZ0NvbXBvbmVudCwge1xyXG4gICAgICBkaXNhYmxlQ2xvc2U6IHRydWUsXHJcbiAgICAgIHdpZHRoOiAnOTAlJyxcclxuICAgICAgbWF4V2lkdGg6ICc0MDBweCcsXHJcbiAgICAgIGRhdGE6IHsgbWVzc2FnZTogbWVzc2FnZSwgYnV0dG9uU3RhdHVzOiBzaG93QnV0dG9uIH1cclxuICAgIH0pO1xyXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XHJcbiAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICBpZiAodGhpcy5kYXRhU291cmNlPy5kYXRhPy5sZW5ndGggPT09IDEgJiYgdGhpcy5jaGVja1N1Ym1pc3Npb25TdGF0dXMpIHtcclxuICAgICAgICAgIHRoaXMuc2hvd0RhdGFHcmlkID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIFVzZXIgY29uZmlybWVkLCBwcm9jZWVkIHdpdGggZGVsZXRpb25cclxuICAgICAgICB0aGlzLmluc3RhbmNlLnJlbW92ZVJvdyhpbmRleCk7XHJcbiAgICAgICAgdGhpcy5kYXRhU291cmNlLmRhdGEuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YSA9IFsuLi50aGlzLmRhdGFTb3VyY2UuZGF0YV07XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZHJvcFRhYmxlKGV2ZW50OiBDZGtEcmFnRHJvcDxhbnk+KSB7XHJcbiAgICBjb25zdCBwcmV2SW5kZXggPSB0aGlzLmRhdGFTb3VyY2UuZGF0YS5maW5kSW5kZXgoKGQpID0+IGQgPT09IGV2ZW50Lml0ZW0uZGF0YSk7XHJcbiAgICBtb3ZlSXRlbUluQXJyYXkodGhpcy5jb250cm9sLnZhbHVlLCBwcmV2SW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XHJcbiAgICB0aGlzLnJlbmRlckNvbXBvbmVudHMoKTtcclxuICB9XHJcblxyXG4gIHJlbmRlckNvbXBvbmVudHMoKSB7XHJcbiAgICB0aGlzLmluc3RhbmNlLmdldFJvd3MoKTtcclxuICAgIHRoaXMuaW5zdGFuY2Uuc2V0VmFsdWUodGhpcy5jb250cm9sLnZhbHVlIHx8IFtdKTtcclxuICB9XHJcblxyXG4gIHNldFZhbHVlKHZhbHVlOiBbXSB8IG51bGwpIHtcclxuICAgIGNvbnN0IGdyaWRMZW5ndGggPSB2YWx1ZSA/IHZhbHVlLmxlbmd0aCA6IDA7XHJcbiAgICB3aGlsZSAodGhpcy5pbnN0YW5jZS5yb3dzLmxlbmd0aCA8IGdyaWRMZW5ndGgpIHtcclxuICAgICAgdGhpcy5hZGRBbm90aGVyKCk7XHJcbiAgICAgIHRoaXMuaW5zdGFuY2UuZGF0YVZhbHVlID0gdmFsdWU7XHJcbiAgICAgIHRoaXMuaW5zdGFuY2Uuc2V0VmFsdWUodmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghdmFsdWUgJiYgdGhpcy5pbnN0YW5jZS5jb21wb25lbnQuY2xlYXJPbkhpZGUpIHtcclxuICAgICAgdGhpcy5kYXRhU291cmNlID0gbmV3IE1hdFRhYmxlRGF0YVNvdXJjZSh0aGlzLmluc3RhbmNlLmRlZmF1bHRWYWx1ZSk7XHJcbiAgICB9XHJcbiAgICBzdXBlci5zZXRWYWx1ZSh2YWx1ZSk7XHJcbiAgfVxyXG59XHJcbkRhdGFHcmlkQ29tcG9uZW50Lk1hdGVyaWFsQ29tcG9uZW50ID0gTWF0ZXJpYWxEYXRhR3JpZENvbXBvbmVudDtcclxuZXhwb3J0IHsgRGF0YUdyaWRDb21wb25lbnQgfTsiXX0=
|