@hitsoft/uretim-yonetimi 1.0.29 → 1.0.30

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.
@@ -16,6 +16,7 @@ export class HitFillingControlComponent {
16
16
  this.searchBasildiMi = false;
17
17
  this.isEmriBarkoduGecerliMi = false;
18
18
  this.isLoading = false;
19
+ this.isSaving = false;
19
20
  this.hatBilgisi = '';
20
21
  this.qrCode = '';
21
22
  this.lines = [];
@@ -37,6 +38,17 @@ export class HitFillingControlComponent {
37
38
  this.service.getFillingControlInfo(this.isEmriNo).subscribe({
38
39
  next: response => {
39
40
  if (response?.isSuccessful) {
41
+ const status = (response.items?.status || '').toString().toUpperCase();
42
+ if (status === 'P') {
43
+ this.confirmation.warn('', 'Bu üretim siparişi onaylanmamıştır, kontrol yapılamaz.', {
44
+ hideYesBtn: true,
45
+ cancelText: 'Kapat',
46
+ dismissible: false,
47
+ });
48
+ this.clearAll();
49
+ this.isLoading = false;
50
+ return;
51
+ }
40
52
  this.hatBilgisi = response.items.u_Hat;
41
53
  this.lines = response.items.lines;
42
54
  this.isEmriBarkoduGecerliMi = true;
@@ -194,7 +206,7 @@ export class HitFillingControlComponent {
194
206
  this.focusQRInput();
195
207
  }
196
208
  save() {
197
- if (!this.isEmriNo || this.lines.length === 0) {
209
+ if (!this.isEmriNo || this.lines.length === 0 || this.isSaving) {
198
210
  return;
199
211
  }
200
212
  // Tüm kontroller tamamlanmış mı kontrolü
@@ -215,6 +227,7 @@ export class HitFillingControlComponent {
215
227
  batchNumber: line.batchNumber || ''
216
228
  }))
217
229
  };
230
+ this.isSaving = true;
218
231
  this.isLoading = true;
219
232
  this.service.saveFillingControl(saveData).subscribe({
220
233
  next: response => {
@@ -226,9 +239,11 @@ export class HitFillingControlComponent {
226
239
  });
227
240
  this.clearAll();
228
241
  }
242
+ this.isSaving = false;
229
243
  this.isLoading = false;
230
244
  },
231
245
  error: e => {
246
+ this.isSaving = false;
232
247
  this.isLoading = false;
233
248
  this.confirmation.status$.subscribe({
234
249
  next: () => {
@@ -246,6 +261,7 @@ export class HitFillingControlComponent {
246
261
  this.qrCode = '';
247
262
  this.lines = [];
248
263
  this.isDataLoadedFromDb = false;
264
+ this.isSaving = false;
249
265
  this.focusOnIsEmriNo();
250
266
  }
251
267
  get showKazanDegisimiButton() {
@@ -256,27 +272,50 @@ export class HitFillingControlComponent {
256
272
  this.lines.every(x => x.isControlled);
257
273
  }
258
274
  get isSaveButtonDisabled() {
259
- // İş emri yoksa veya satır yoksa veya tüm satırlar kontrol edilmemişse disable
275
+ // İş emri yoksa veya satır yoksa veya tüm satırlar kontrol edilmemişse veya kaydetme işlemi devam ediyorsa disable
260
276
  return !this.isEmriNo ||
261
277
  this.lines.length === 0 ||
262
- !this.lines.every(x => x.isControlled);
278
+ !this.lines.every(x => x.isControlled) ||
279
+ this.isSaving;
263
280
  }
264
281
  kazanDegisimi() {
265
- this.confirmation.warn('', 'Kazan değişim işlemi için kontrol edilen ürünler sıfırlanacaktır. Devam etmek istiyor musunuz?', {
282
+ // İlk soru: Bu kazana ait tüm üretimden girişleri tamamladınız mı?
283
+ this.confirmation.warn('', 'Bu kazana ait tüm üretimden girişleri tamamladınız mı?', {
266
284
  yesText: 'Evet',
267
285
  cancelText: 'Hayır'
268
286
  }).subscribe(status => {
269
287
  if (status === 'confirm') {
270
- // Tüm satırların IsControlled alanını false yap
271
- this.lines.forEach(line => {
272
- line.isControlled = false;
273
- line.batchNumber = '';
288
+ // İkinci soru: Kazan değişimi öncesinde kazan YM fire çıkışı gerçekleştirildi mi?
289
+ this.confirmation.warn('', 'Kazan değişimi öncesinde kazan YM fire çıkışı gerçekleştirildi mi?', {
290
+ yesText: 'Evet',
291
+ cancelText: 'Hayır'
292
+ }).subscribe(status2 => {
293
+ if (status2 === 'confirm') {
294
+ // Üçüncü soru: Bileşen fire çıkışı gerçekleştirildi mi?
295
+ this.confirmation.warn('', 'Bileşen fire çıkışı gerçekleştirildi mi?', {
296
+ yesText: 'Evet',
297
+ cancelText: 'Hayır'
298
+ }).subscribe(status3 => {
299
+ if (status3 === 'confirm') {
300
+ // Tüm onaylar verildi, kazan değişimi işlemini gerçekleştir
301
+ // Tüm satırların IsControlled alanını false yap
302
+ this.lines.forEach(line => {
303
+ line.isControlled = false;
304
+ line.batchNumber = '';
305
+ });
306
+ // Grid'i refresh et
307
+ this.dataGrid.instance.refresh();
308
+ this.isDataLoadedFromDb = false; // Artık yeni veri girilecek
309
+ // QR input'a focus et
310
+ this.focusOnQrCode();
311
+ }
312
+ // status3 !== 'confirm' ise üçüncü soruya hayır dendi, işlem iptal
313
+ });
314
+ }
315
+ // status2 !== 'confirm' ise ikinci soruya hayır dendi, işlem iptal
274
316
  });
275
- // Grid'i refresh et
276
- this.dataGrid.instance.refresh();
277
- // QR input'a focus et
278
- this.focusOnQrCode();
279
317
  }
318
+ // status !== 'confirm' ise ilk soruya hayır dendi, işlem iptal
280
319
  });
281
320
  }
282
321
  focusOnIsEmriNo() {
@@ -316,4 +355,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
316
355
  type: ViewChild,
317
356
  args: ['gridLines', { static: false }]
318
357
  }] } });
319
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LWZpbGxpbmctY29udHJvbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91cmV0aW0teW9uZXRpbWkvc3JjL2xpYi9jb21wb25lbnRzL2hpdC1maWxsaW5nLWNvbnRyb2wvaGl0LWZpbGxpbmctY29udHJvbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91cmV0aW0teW9uZXRpbWkvc3JjL2xpYi9jb21wb25lbnRzL2hpdC1maWxsaW5nLWNvbnRyb2wvaGl0LWZpbGxpbmctY29udHJvbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUs3RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7OztBQU9uRCxNQUFNLE9BQU8sMEJBQTBCO0lBY3JDLFlBQ1UsT0FBaUMsRUFDakMsWUFBaUMsRUFDakMsTUFBYztRQUZkLFlBQU8sR0FBUCxPQUFPLENBQTBCO1FBQ2pDLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQUNqQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBWHhCLG9CQUFlLEdBQVksS0FBSyxDQUFDO1FBQ2pDLDJCQUFzQixHQUFZLEtBQUssQ0FBQztRQUN4QyxjQUFTLEdBQVksS0FBSyxDQUFDO1FBQzNCLGVBQVUsR0FBVyxFQUFFLENBQUM7UUFDeEIsV0FBTSxHQUFXLEVBQUUsQ0FBQztRQUNwQixVQUFLLEdBQXlCLEVBQUUsQ0FBQztRQUNqQyx1QkFBa0IsR0FBWSxLQUFLLENBQUMsQ0FBQyxxQ0FBcUM7SUFNdkUsQ0FBQztJQUVKLFFBQVE7UUFDTix1QkFBdUI7SUFDekIsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELEtBQUssQ0FBQyxrQkFB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MEJBQTBCLGtXQ1p2QywrMUlBeUZBOzJGRDdFYSwwQkFBMEI7a0JBTHRDLFNBQVM7K0JBQ0UseUJBQXlCO3NLQUtVLGNBQWM7c0JBQTFELFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFDQSxZQUFZO3NCQUF0RCxTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBQ0UsUUFBUTtzQkFBbEQsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3Q2hpbGQsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEeE51bWJlckJveENvbXBvbmVudCwgRHhUZXh0Qm94Q29tcG9uZW50LCBEeERhdGFHcmlkQ29tcG9uZW50IH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyJztcclxuaW1wb3J0IHsgSGl0RmlsbGluZ0NvbnRyb2xTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaGl0LXByb3h5L2hpdC1maWxsaW5nLWNvbnRyb2wvaGl0LWZpbGxpbmctY29udHJvbC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRmlsbGluZ0NvbnRyb2xMaW5lIH0gZnJvbSAnLi4vLi4vaGl0LXByb3h5L2hpdC1maWxsaW5nLWNvbnRyb2wvbW9kZWxzJztcclxuaW1wb3J0IHsgQ29uZmlybWF0aW9uU2VydmljZSB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcclxuaW1wb3J0IHsgSGl0SGVscGVyIH0gZnJvbSAnLi4vLi4vaGl0LXByb3h5L21vZGVscyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1oaXQtZmlsbGluZy1jb250cm9sJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaGl0LWZpbGxpbmctY29udHJvbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vaGl0LWZpbGxpbmctY29udHJvbC5jb21wb25lbnQuY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBIaXRGaWxsaW5nQ29udHJvbENvbXBvbmVudCB7XHJcbiAgQFZpZXdDaGlsZCgnaXNFbXJpTm9SZWYnLCB7IHN0YXRpYzogZmFsc2UgfSkgbm1iQm94SXNFbXJpTm86IER4TnVtYmVyQm94Q29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ3FyQ29kZVJlZicsIHsgc3RhdGljOiBmYWxzZSB9KSB0eHRCb3hRckNvZGU6IER4VGV4dEJveENvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCdncmlkTGluZXMnLCB7IHN0YXRpYzogZmFsc2UgfSkgZGF0YUdyaWQ6IER4RGF0YUdyaWRDb21wb25lbnQ7XHJcblxyXG4gIGlzRW1yaU5vOiBudW1iZXI7XHJcbiAgc2VhcmNoQmFzaWxkaU1pOiBib29sZWFuID0gZmFsc2U7XHJcbiAgaXNFbXJpQmFya29kdUdlY2VybGlNaTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGlzTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGhhdEJpbGdpc2k6IHN0cmluZyA9ICcnO1xyXG4gIHFyQ29kZTogc3RyaW5nID0gJyc7XHJcbiAgbGluZXM6IEZpbGxpbmdDb250cm9sTGluZVtdID0gW107XHJcbiAgaXNEYXRhTG9hZGVkRnJvbURiOiBib29sZWFuID0gZmFsc2U7IC8vIERCJ2RlbiB2ZXJpIG1pIGdlbGRpIHlva3NhIHllbmkgbWlcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHNlcnZpY2U6IEhpdEZpbGxpbmdDb250cm9sU2VydmljZSxcclxuICAgIHByaXZhdGUgY29uZmlybWF0aW9uOiBDb25maXJtYXRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZVxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICAvLyBJbml0aWFsaXphdGlvbiBsb2dpY1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5mb2N1c09uSXNFbXJpTm8oKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIGdldFByb2R1Y3Rpb25PcmRlcigpIHtcclxuICAgIGlmICghdGhpcy5pc0VtcmlObykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5pc0VtcmlCYXJrb2R1R2VjZXJsaU1pID0gZmFsc2U7XHJcbiAgICB0aGlzLnNlYXJjaEJhc2lsZGlNaSA9IHRydWU7XHJcblxyXG4gICAgdGhpcy5zZXJ2aWNlLmdldEZpbGxpbmdDb250cm9sSW5mbyh0aGlzLmlzRW1yaU5vKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiByZXNwb25zZSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3BvbnNlPy5pc1N1Y2Nlc3NmdWwpIHtcclxuICAgICAgICAgIHRoaXMuaGF0QmlsZ2lzaSA9IHJlc3BvbnNlLml0ZW1zLnVfSGF0O1xyXG4gICAgICAgICAgdGhpcy5saW5lcyA9IHJlc3BvbnNlLml0ZW1zLmxpbmVzO1xyXG4gICAgICAgICAgdGhpcy5pc0VtcmlCYXJrb2R1R2VjZXJsaU1pID0gdHJ1ZTtcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgLy8gREInZGVuIHZlcmkgZ2VsaXAgZ2VsbWVkacSfaW5pIGtvbnRyb2wgZXQgKGVuIGF6IGJpciBzYXTEsXJkYSBiYXRjaE51bWJlciB2YXJzYSBEQidkZW4gZ2VsbWnFn3RpcilcclxuICAgICAgICAgIHRoaXMuaXNEYXRhTG9hZGVkRnJvbURiID0gdGhpcy5saW5lcy5zb21lKHggPT4geC5iYXRjaE51bWJlciAmJiB4LmJhdGNoTnVtYmVyLnRyaW0oKSAhPT0gJycpO1xyXG4gICAgICAgICAgXHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5mb2N1c09uUXJDb2RlKCk7XHJcbiAgICAgICAgICB9LCAxMDApO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmlzRW1yaUJhcmtvZHVHZWNlcmxpTWkgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IGUgPT4ge1xyXG4gICAgICAgIHRoaXMuaXNFbXJpQmFya29kdUdlY2VybGlNaSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuc2VhcmNoQmFzaWxkaU1pID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuY29uZmlybWF0aW9uLnN0YXR1cyQuc3Vic2NyaWJlKHtcclxuICAgICAgICAgIG5leHQ6ICgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5jbGVhckFsbCgpO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9KTtcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25RckNvZGVDaGFuZ2UoKSB7XHJcbiAgICBpZiAoIXRoaXMucXJDb2RlIHx8IHRoaXMucXJDb2RlLnRyaW0oKSA9PT0gJycpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGRlYnVnZ2VyO1xyXG5cclxuICAgIGNvbnN0IHBhcnNlZCA9IEhpdEhlbHBlci5wYXJzZVFSKHRoaXMucXJDb2RlKTtcclxuICAgIGlmICghcGFyc2VkKSB7XHJcbiAgICAgIHRoaXMuY29uZmlybWF0aW9uLmVycm9yKCcnLCAnR2XDp2Vyc2l6IFFSIGtvZCBmb3JtYXTEsSEnLCB7XHJcbiAgICAgICAgaGlkZVllc0J0bjogdHJ1ZSxcclxuICAgICAgICBjYW5jZWxUZXh0OiAnS2FwYXQnLFxyXG4gICAgICAgIGRpc21pc3NpYmxlOiBmYWxzZSxcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMucXJDb2RlID0gJyc7XHJcbiAgICAgIHRoaXMuZm9jdXNRUklucHV0KCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvLyBHcmlkJ2RlIGJ1IGl0ZW0nxLEgYnVsXHJcbiAgICBjb25zdCBsaW5lID0gdGhpcy5saW5lcy5maW5kKHggPT4geC5pdGVtQ29kZSA9PT0gcGFyc2VkLmNoZW1pY2FsQ29kZSk7XHJcbiAgICBpZiAoIWxpbmUpIHtcclxuICAgICAgdGhpcy5jb25maXJtYXRpb24uZXJyb3IoJycsIGAke3BhcnNlZC5jaGVtaWNhbENvZGV9IGtvZGx1IMO8csO8biBidSBpxZ8gZW1yaW5kZSBidWx1bmFtYWTEsSFgLCB7XHJcbiAgICAgICAgaGlkZVllc0J0bjogdHJ1ZSxcclxuICAgICAgICBjYW5jZWxUZXh0OiAnS2FwYXQnLFxyXG4gICAgICAgIGRpc21pc3NpYmxlOiBmYWxzZSxcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMucXJDb2RlID0gJyc7XHJcbiAgICAgIHRoaXMuZm9jdXNRUklucHV0KCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvLyDEsGxrIG9rdXRtYSBrb250cm9sw7wgLSBIacOnIGtvbnRyb2wgZWRpbG1lbWnFnyBzYXTEsXIgdmFyc2EsIGJ1IGlsayBva3V0bWEgZGVtZWt0aXJcclxuICAgIGNvbnN0IGlzRmlyc3RTY2FuID0gIXRoaXMubGluZXMuc29tZSh4ID0+IHguaXNDb250cm9sbGVkKTtcclxuICAgIGlmIChpc0ZpcnN0U2Nhbikge1xyXG4gICAgICAvLyDEsGxrIG9rdXRtYSBpw6dpbiDDvHLDvG4gYcSfYWPEsSB2ZSBrYWxpdGUga29udHJvbMO8IHlhcFxyXG4gICAgICBjb25zb2xlLmxvZygnxLBsayBva3V0bWEgdGVzcGl0IGVkaWxkaSwgw7xyw7xuIGHEn2FjxLEga29udHJvbMO8IHlhcMSxbMSxeW9yOicsIHBhcnNlZC5jaGVtaWNhbENvZGUpO1xyXG4gICAgICB0aGlzLnNlcnZpY2UuaGFzUHJvZHVjdGlvblRyZWUocGFyc2VkLmNoZW1pY2FsQ29kZSwgdGhpcy5pc0VtcmlObykuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiByZXNwb25zZSA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZygnSGFzUHJvZHVjdGlvblRyZWUgcmVzcG9uc2U6JywgcmVzcG9uc2UpO1xyXG4gICAgICAgICAgaWYgKHJlc3BvbnNlPy5pc1N1Y2Nlc3NmdWwgJiYgcmVzcG9uc2UuaXRlbXMgPT09IHRydWUpIHtcclxuICAgICAgICAgICAgLy8gw5xyw7xuIGHEn2FjxLEgdmFyLCBrYWxpdGUga29udHJvbMO8IHlhcFxyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnw5xyw7xuIGHEn2FjxLEgYnVsdW5kdSwga2FsaXRlIGtvbnRyb2zDvCB5YXDEsWzEsXlvcicpO1xyXG4gICAgICAgICAgICB0aGlzLmNoZWNrUXVhbGl0eUFuZFByb2Nlc3MobGluZSwgcGFyc2VkLmxvdE51bWJlciwgaXNGaXJzdFNjYW4pO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgLy8gw5xyw7xuIGHEn2FjxLEgeW9rLCBoYXRhIGfDtnN0ZXJcclxuICAgICAgICAgICAgY29uc29sZS5sb2coJ8OccsO8biBhxJ9hY8SxIGJ1bHVuYW1hZMSxIScpO1xyXG4gICAgICAgICAgICB0aGlzLmNvbmZpcm1hdGlvbi5lcnJvcignJywgJ8SwbGsgb2t1dG1hIGnFn2xlbWkgeWFyxLEgbWFtw7xsIGnDp2luIHlhcMSxbG1hbMSxIScsIHtcclxuICAgICAgICAgICAgICBoaWRlWWVzQnRuOiB0cnVlLFxyXG4gICAgICAgICAgICAgIGNhbmNlbFRleHQ6ICdLYXBhdCcsXHJcbiAgICAgICAgICAgICAgZGlzbWlzc2libGU6IGZhbHNlLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgdGhpcy5xckNvZGUgPSAnJztcclxuICAgICAgICAgICAgdGhpcy5mb2N1c1FSSW5wdXQoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyKSA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdIYXNQcm9kdWN0aW9uVHJlZSBlcnJvcjonLCBlcnIpO1xyXG4gICAgICAgICAgdGhpcy5jb25maXJtYXRpb24uZXJyb3IoJycsICfDnHLDvG4gYcSfYWPEsSBrb250cm9sw7wgeWFwxLFsxLFya2VuIGhhdGEgb2x1xZ90dSEnLCB7XHJcbiAgICAgICAgICAgIGhpZGVZZXNCdG46IHRydWUsXHJcbiAgICAgICAgICAgIGNhbmNlbFRleHQ6ICdLYXBhdCcsXHJcbiAgICAgICAgICAgIGRpc21pc3NpYmxlOiBmYWxzZSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgdGhpcy5xckNvZGUgPSAnJztcclxuICAgICAgICAgIHRoaXMuZm9jdXNRUklucHV0KCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyDEsGxrIG9rdXRtYSBkZcSfaWxzZSBkaXJla3QgacWfbGVcclxuICAgICAgY29uc29sZS5sb2coJ8SwbGsgb2t1dG1hIGRlxJ9pbCwgZGlyZWt0IGnFn2xlbml5b3InKTtcclxuICAgICAgdGhpcy5wcm9jZXNzUXJTY2FuKGxpbmUsIHBhcnNlZC5sb3ROdW1iZXIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjaGVja1F1YWxpdHlBbmRQcm9jZXNzKGxpbmU6IEZpbGxpbmdDb250cm9sTGluZSwgYmF0Y2hOdW1iZXI6IHN0cmluZywgaXNGaXJzdFNjYW46IGJvb2xlYW4pIHtcclxuICAgIC8vIEthbGl0ZSBkdXJ1bXUga29udHJvbMO8IHlhcFxyXG4gICAgdGhpcy5zZXJ2aWNlLmNoZWNrUXVhbGl0eVN0YXR1cyhiYXRjaE51bWJlciwgdGhpcy5pc0VtcmlObywgbGluZS5pdGVtQ29kZSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogcmVzcG9uc2UgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdDaGVja1F1YWxpdHlTdGF0dXMgcmVzcG9uc2U6JywgcmVzcG9uc2UpO1xyXG4gICAgICAgIGlmIChyZXNwb25zZT8uaXNTdWNjZXNzZnVsICYmIHJlc3BvbnNlLml0ZW1zKSB7XHJcbiAgICAgICAgICBpZiAocmVzcG9uc2UuaXRlbXMuaXNBcHByb3ZlZCkge1xyXG4gICAgICAgICAgICAvLyBLYWxpdGUgb25heWxhbmTEsSwgb2t1dG1heWEgZGV2YW0gZXRcclxuICAgICAgICAgICAgY29uc29sZS5sb2coJ0thbGl0ZSBrb250cm9sw7wgb25heWxhbmTEsSwgb2t1dG1heWEgZGV2YW0gZWRpbGl5b3InKTtcclxuICAgICAgICAgICAgdGhpcy5wcm9jZXNzUXJTY2FuKGxpbmUsIGJhdGNoTnVtYmVyLCBpc0ZpcnN0U2Nhbik7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvLyBLYWxpdGUgUkVELCBoYXRhIGfDtnN0ZXJcclxuICAgICAgICAgICAgY29uc29sZS5sb2coJ0thbGl0ZSBrb250cm9sw7wgcmVkZGVkaWxkaTonLCByZXNwb25zZS5pdGVtcy5lcnJvck1lc3NhZ2UpO1xyXG4gICAgICAgICAgICB0aGlzLmNvbmZpcm1hdGlvbi5lcnJvcignJywgcmVzcG9uc2UuaXRlbXMuZXJyb3JNZXNzYWdlIHx8ICdLYWxpdGUga29udHJvbMO8IHJlZGRlZGlsZGkhJywge1xyXG4gICAgICAgICAgICAgIGhpZGVZZXNCdG46IHRydWUsXHJcbiAgICAgICAgICAgICAgY2FuY2VsVGV4dDogJ0thcGF0JyxcclxuICAgICAgICAgICAgICBkaXNtaXNzaWJsZTogZmFsc2UsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB0aGlzLnFyQ29kZSA9ICcnO1xyXG4gICAgICAgICAgICB0aGlzLmZvY3VzUVJJbnB1dCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAvLyBTb3JndSBzb251Y3UgbnVsbCBnZWxkaSB2ZXlhIGJhxZ9hcsSxc8SxelxyXG4gICAgICAgICAgY29uc29sZS5sb2coJ0thbGl0ZSBrb250cm9sw7wgc29yZ3VzdSBzb251w6cgZMO2bmTDvHJtZWRpJyk7XHJcbiAgICAgICAgICB0aGlzLmNvbmZpcm1hdGlvbi5lcnJvcignJywgJ0J1IGxvdCBudW1hcmFzxLEgacOnaW4ga2FsaXRlIGJpbGdpc2kgYnVsdW5hbWFkxLEhJywge1xyXG4gICAgICAgICAgICBoaWRlWWVzQnRuOiB0cnVlLFxyXG4gICAgICAgICAgICBjYW5jZWxUZXh0OiAnS2FwYXQnLFxyXG4gICAgICAgICAgICBkaXNtaXNzaWJsZTogZmFsc2UsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHRoaXMucXJDb2RlID0gJyc7XHJcbiAgICAgICAgICB0aGlzLmZvY3VzUVJJbnB1dCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKCdDaGVja1F1YWxpdHlTdGF0dXMgZXJyb3I6JywgZXJyKTtcclxuICAgICAgICB0aGlzLmNvbmZpcm1hdGlvbi5lcnJvcignJywgJ0thbGl0ZSBrb250cm9sw7wgeWFwxLFsxLFya2VuIGhhdGEgb2x1xZ90dSEnLCB7XHJcbiAgICAgICAgICBoaWRlWWVzQnRuOiB0cnVlLFxyXG4gICAgICAgICAgY2FuY2VsVGV4dDogJ0thcGF0JyxcclxuICAgICAgICAgIGRpc21pc3NpYmxlOiBmYWxzZSxcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLnFyQ29kZSA9ICcnO1xyXG4gICAgICAgIHRoaXMuZm9jdXNRUklucHV0KCk7XHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcHJvY2Vzc1FyU2NhbihsaW5lOiBGaWxsaW5nQ29udHJvbExpbmUsIGJhdGNoTnVtYmVyOiBzdHJpbmcsIGlzRmlyc3RTY2FuOiBib29sZWFuID0gZmFsc2UpIHtcclxuICAgIC8vIEtvbnRyb2wgZWRpbGRpIG9sYXJhayBpxZ9hcmV0bGUgdmUgcGFydGkgbnVtYXJhc8SxbsSxIHNldCBldFxyXG4gICAgbGluZS5pc0NvbnRyb2xsZWQgPSB0cnVlO1xyXG4gICAgaWYgKGlzRmlyc3RTY2FuKSB7XHJcbiAgICAgIGxpbmUuYmF0Y2hOdW1iZXIgPSBiYXRjaE51bWJlcjtcclxuICAgIH1cclxuXHJcbiAgICAvLyBHcmlkJ2kgcmVmcmVzaCBldFxyXG4gICAgdGhpcy5kYXRhR3JpZC5pbnN0YW5jZS5yZWZyZXNoKCk7XHJcblxyXG4gICAgLy8gUVIgaW5wdXQndSB0ZW1pemxlIHZlIGZvY3VzIGV0XHJcbiAgICB0aGlzLnFyQ29kZSA9ICcnO1xyXG4gICAgdGhpcy5mb2N1c1FSSW5wdXQoKTtcclxuICB9XHJcblxyXG4gIHNhdmUoKSB7XHJcbiAgICBpZiAoIXRoaXMuaXNFbXJpTm8gfHwgdGhpcy5saW5lcy5sZW5ndGggPT09IDApIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFTDvG0ga29udHJvbGxlciB0YW1hbWxhbm3EscWfIG3EsSBrb250cm9sw7xcclxuICAgIGlmICghdGhpcy5saW5lcy5ldmVyeSh4ID0+IHguaXNDb250cm9sbGVkKSkge1xyXG4gICAgICB0aGlzLmNvbmZpcm1hdGlvbi53YXJuKCcnLCAnVMO8bSBrb250cm9sbGVyIHRhbWFtbGFubWFkYW4ga2F5xLF0IGnFn2xlbWkgeWFwxLFsYW1hei4nLCB7XHJcbiAgICAgICAgaGlkZVllc0J0bjogdHJ1ZSxcclxuICAgICAgICBjYW5jZWxUZXh0OiAnS2FwYXQnLFxyXG4gICAgICAgIGRpc21pc3NpYmxlOiBmYWxzZSxcclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBzYXZlRGF0YSA9IHtcclxuICAgICAgd29ya09yZGVyTm86IHRoaXMuaXNFbXJpTm8sXHJcbiAgICAgIGxpbmVzOiB0aGlzLmxpbmVzLm1hcChsaW5lID0+ICh7XHJcbiAgICAgICAgbGluZU51bTogbGluZS5saW5lTnVtLFxyXG4gICAgICAgIGl0ZW1Db2RlOiBsaW5lLml0ZW1Db2RlLFxyXG4gICAgICAgIGlzQ29udHJvbGxlZDogbGluZS5pc0NvbnRyb2xsZWQsXHJcbiAgICAgICAgYmF0Y2hOdW1iZXI6IGxpbmUuYmF0Y2hOdW1iZXIgfHwgJydcclxuICAgICAgfSkpXHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMuc2VydmljZS5zYXZlRmlsbGluZ0NvbnRyb2woc2F2ZURhdGEpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IHJlc3BvbnNlID0+IHtcclxuICAgICAgICBpZiAocmVzcG9uc2U/LmlzU3VjY2Vzc2Z1bCkge1xyXG4gICAgICAgICAgdGhpcy5jb25maXJtYXRpb24uc3VjY2VzcygnJywgJ0thecSxdCBiYcWfYXLEsWzEsSEnLCB7XHJcbiAgICAgICAgICAgIGhpZGVZZXNCdG46IHRydWUsXHJcbiAgICAgICAgICAgIGNhbmNlbFRleHQ6ICdLYXBhdCcsXHJcbiAgICAgICAgICAgIGRpc21pc3NpYmxlOiBmYWxzZSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgdGhpcy5jbGVhckFsbCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogZSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmNvbmZpcm1hdGlvbi5zdGF0dXMkLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICBuZXh0OiAoKSA9PiB7XHJcbiAgICAgICAgICAgIC8vIEhhdGEgc29ucmFzxLEgacWfbGVtXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBjbGVhckFsbCgpIHtcclxuICAgIHRoaXMuaXNFbXJpQmFya29kdUdlY2VybGlNaSA9IGZhbHNlO1xyXG4gICAgdGhpcy5zZWFyY2hCYXNpbGRpTWkgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNFbXJpTm8gPSBudWxsO1xyXG4gICAgdGhpcy5oYXRCaWxnaXNpID0gJyc7XHJcbiAgICB0aGlzLnFyQ29kZSA9ICcnO1xyXG4gICAgdGhpcy5saW5lcyA9IFtdO1xyXG4gICAgdGhpcy5pc0RhdGFMb2FkZWRGcm9tRGIgPSBmYWxzZTtcclxuICAgIHRoaXMuZm9jdXNPbklzRW1yaU5vKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgc2hvd0themFuRGVnaXNpbWlCdXR0b24oKTogYm9vbGVhbiB7XHJcbiAgICAvLyBTYWRlY2UgREInZGVuIHZlcmkgZ2VsbWnFn3NlLCBpxZ8gZW1yaSBva3V0dWxtdcWfIHZlIHTDvG0gc2F0xLFybGFyIGtvbnRyb2wgZWRpbG1pxZ8gaXNlIGfDtnN0ZXJcclxuICAgIHJldHVybiB0aGlzLmlzRGF0YUxvYWRlZEZyb21EYiAmJlxyXG4gICAgICAgICAgIHRoaXMuaXNFbXJpQmFya29kdUdlY2VybGlNaSAmJiBcclxuICAgICAgICAgICB0aGlzLmxpbmVzLmxlbmd0aCA+IDAgJiYgXHJcbiAgICAgICAgICAgdGhpcy5saW5lcy5ldmVyeSh4ID0+IHguaXNDb250cm9sbGVkKTtcclxuICB9XHJcblxyXG4gIGdldCBpc1NhdmVCdXR0b25EaXNhYmxlZCgpOiBib29sZWFuIHtcclxuICAgIC8vIMSwxZ8gZW1yaSB5b2tzYSB2ZXlhIHNhdMSxciB5b2tzYSB2ZXlhIHTDvG0gc2F0xLFybGFyIGtvbnRyb2wgZWRpbG1lbWnFn3NlIGRpc2FibGVcclxuICAgIHJldHVybiAhdGhpcy5pc0VtcmlObyB8fCBcclxuICAgICAgICAgICB0aGlzLmxpbmVzLmxlbmd0aCA9PT0gMCB8fCBcclxuICAgICAgICAgICAhdGhpcy5saW5lcy5ldmVyeSh4ID0+IHguaXNDb250cm9sbGVkKTtcclxuICB9XHJcblxyXG4gIGthemFuRGVnaXNpbWkoKSB7XHJcbiAgICB0aGlzLmNvbmZpcm1hdGlvbi53YXJuKFxyXG4gICAgICAnJyxcclxuICAgICAgJ0themFuIGRlxJ9pxZ9pbSBpxZ9sZW1pIGnDp2luIGtvbnRyb2wgZWRpbGVuIMO8csO8bmxlciBzxLFmxLFybGFuYWNha3TEsXIuIERldmFtIGV0bWVrIGlzdGl5b3IgbXVzdW51ej8nLFxyXG4gICAgICB7XHJcbiAgICAgICAgeWVzVGV4dDogJ0V2ZXQnLFxyXG4gICAgICAgIGNhbmNlbFRleHQ6ICdIYXnEsXInXHJcbiAgICAgIH1cclxuICAgICkuc3Vic2NyaWJlKHN0YXR1cyA9PiB7XHJcbiAgICAgIGlmIChzdGF0dXMgPT09ICdjb25maXJtJykge1xyXG4gICAgICAgIC8vIFTDvG0gc2F0xLFybGFyxLFuIElzQ29udHJvbGxlZCBhbGFuxLFuxLEgZmFsc2UgeWFwXHJcbiAgICAgICAgdGhpcy5saW5lcy5mb3JFYWNoKGxpbmUgPT4ge1xyXG4gICAgICAgICAgbGluZS5pc0NvbnRyb2xsZWQgPSBmYWxzZTtcclxuICAgICAgICAgIGxpbmUuYmF0Y2hOdW1iZXIgPSAnJztcclxuICAgICAgICB9KTtcclxuICAgICAgICBcclxuICAgICAgICAvLyBHcmlkJ2kgcmVmcmVzaCBldFxyXG4gICAgICAgIHRoaXMuZGF0YUdyaWQuaW5zdGFuY2UucmVmcmVzaCgpO1xyXG4gICAgICAgIFxyXG4gICAgICAgIC8vIFFSIGlucHV0J2EgZm9jdXMgZXRcclxuICAgICAgICB0aGlzLmZvY3VzT25RckNvZGUoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBmb2N1c09uSXNFbXJpTm8oKSB7XHJcbiAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLm5tYkJveElzRW1yaU5vPy5pbnN0YW5jZS5mb2N1cygpO1xyXG4gICAgICB9LCAwKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZm9jdXNPblFyQ29kZSgpIHtcclxuICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMudHh0Qm94UXJDb2RlPy5pbnN0YW5jZS5mb2N1cygpO1xyXG4gICAgICB9LCAwKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZm9jdXNRUklucHV0KCkge1xyXG4gICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy50eHRCb3hRckNvZGU/Lmluc3RhbmNlLmZvY3VzKCk7XHJcbiAgICAgIH0sIDApO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxhYnAtcGFnZSBbYnJlYWRjcnVtYl09XCJmYWxzZVwiPlxyXG4gIDxhYnAtcGFnZS10b29sYmFyLWNvbnRhaW5lciBjbGFzcz1cImNvbFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICA8aDMgY2xhc3M9XCJwYWdlLXRpdGxlXCI+XHJcbiAgICAgICAge3sgJ1VyZXRpbVlvbmV0aW1pOjpGaWxsaW5nQ29udHJvbC5UaXRsZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgPC9oMz5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJvdyB0ZXh0LWxnLWVuZCBwdC0yXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNlwiPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXN1Y2Nlc3MgYnRuLXNtXCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJzYXZlKClcIiBbZGlzYWJsZWRdPVwiaXNTYXZlQnV0dG9uRGlzYWJsZWRcIj5cclxuICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtc2F2ZSBtZS0xXCI+PC9pPlxyXG4gICAgICAgICAge3sgJ1VyZXRpbVlvbmV0aW1pOjpGaWxsaW5nQ29udHJvbC5TYXZlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbC0zXCIgKm5nSWY9XCJzaG93S2F6YW5EZWdpc2ltaUJ1dHRvblwiPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLWluZm8gYnRuLXNtXCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJrYXphbkRlZ2lzaW1pKClcIj5cclxuICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtcmVjeWNsZSBtZS0xXCI+PC9pPlxyXG4gICAgICAgICAgS2F6YW4gRGXEn2nFn2ltaVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbC0zXCI+XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4td2FybmluZyBidG4tc21cIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImNsZWFyQWxsKClcIj5cclxuICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtYnJvb20gbWUtMVwiPjwvaT5cclxuICAgICAgICAgIHt7ICdVcmV0aW1Zb25ldGltaTo6RmlsbGluZ0NvbnRyb2wuQ2xlYW4nIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9hYnAtcGFnZS10b29sYmFyLWNvbnRhaW5lcj5cclxuICA8ZGl2IGNsYXNzPVwiY2FyZCBtdC0yXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCIgc3R5bGU9XCJoZWlnaHQ6IGNhbGMoMTAwdmggLSAyNDFweCk7IG92ZXJmbG93OiBhdXRvO1wiPlxyXG4gICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjtcIj5cclxuICAgICAgICA8ZHgtbnVtYmVyLWJveCAjaXNFbXJpTm9SZWYgY2xhc3M9XCJtZS0xXCIgc3R5bGU9XCJ3aWR0aDoxMDAlO1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidVcmV0aW1Zb25ldGltaTo6RmlsbGluZ0NvbnRyb2wuV29ya09yZGVyTm8nIHwgYWJwTG9jYWxpemF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbKHZhbHVlKV09XCJpc0VtcmlOb1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgKG9uQ2hhbmdlKT1cImdldFByb2R1Y3Rpb25PcmRlcigpXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgKG9uRW50ZXJLZXkpPVwiZ2V0UHJvZHVjdGlvbk9yZGVyKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJzZWFyY2hCYXNpbGRpTWkgfHwgaXNFbXJpQmFya29kdUdlY2VybGlNaVwiPlxyXG4gICAgICAgIDwvZHgtbnVtYmVyLWJveD5cclxuICAgICAgICA8ZHgtYnV0dG9uIHN0eWxlPVwibWFyZ2luLXRvcDogNy41cHg7XCIgXHJcbiAgICAgICAgICAgICAgICAgICBpY29uPVwic2VhcmNoXCIgXHJcbiAgICAgICAgICAgICAgICAgICB0eXBlPVwiZGVmYXVsdFwiIFxyXG4gICAgICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwiZ2V0UHJvZHVjdGlvbk9yZGVyKClcIlxyXG4gICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInNlYXJjaEJhc2lsZGlNaSB8fCBpc0VtcmlCYXJrb2R1R2VjZXJsaU1pXCI+XHJcbiAgICAgICAgPC9keC1idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cIm10LTNcIiAqbmdJZj1cImlzRW1yaUJhcmtvZHVHZWNlcmxpTWlcIj5cclxuICAgICAgICA8ZHgtdGV4dC1ib3ggc3R5bGU9XCJ3aWR0aDoxMDAlO1wiIFxyXG4gICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ1VyZXRpbVlvbmV0aW1pOjpGaWxsaW5nQ29udHJvbC5MaW5lSW5mbycgfCBhYnBMb2NhbGl6YXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICBbKHZhbHVlKV09XCJoYXRCaWxnaXNpXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJ0cnVlXCI+XHJcbiAgICAgICAgPC9keC10ZXh0LWJveD5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm10LTNcIiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7XCI+XHJcbiAgICAgICAgICA8ZHgtdGV4dC1ib3ggI3FyQ29kZVJlZiBcclxuICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOjEwMCU7XCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtZS0xXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ1VyZXRpbVlvbmV0aW1pOjpGaWxsaW5nQ29udHJvbC5RUkNvZGUnIHwgYWJwTG9jYWxpemF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbKHZhbHVlKV09XCJxckNvZGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIChvbkVudGVyS2V5KT1cIm9uUXJDb2RlQ2hhbmdlKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInVXJldGltWW9uZXRpbWk6OkZpbGxpbmdDb250cm9sLlFSQ29kZS5QbGFjZWhvbGRlcicgfCBhYnBMb2NhbGl6YXRpb25cIj5cclxuICAgICAgICAgIDwvZHgtdGV4dC1ib3g+XHJcbiAgICAgICAgICA8ZHgtYnV0dG9uIHN0eWxlPVwibWFyZ2luLXRvcDogNy41cHg7XCIgaWNvbj1cInBsdXNcIiB0eXBlPVwiZGVmYXVsdFwiIChvbkNsaWNrKT1cIm9uUXJDb2RlQ2hhbmdlKClcIj5cclxuICAgICAgICAgIDwvZHgtYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZHgtZGF0YS1ncmlkICNncmlkTGluZXMgXHJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm10LTNcIiBcclxuICAgICAgICAgICAgICAgICAgICAgIFtkYXRhU291cmNlXT1cImxpbmVzXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICBbY29sdW1uQXV0b1dpZHRoXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW3Nob3dCb3JkZXJzXT1cInRydWVcIj5cclxuICAgICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cIml0ZW1Db2RlXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtjYXB0aW9uXT1cIidVcmV0aW1Zb25ldGltaTo6RmlsbGluZ0NvbnRyb2wuSXRlbUNvZGUnIHwgYWJwTG9jYWxpemF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFthbGxvd0VkaXRpbmddPVwiZmFsc2VcIj48L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJpdGVtTmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbY2FwdGlvbl09XCInVXJldGltWW9uZXRpbWk6OkZpbGxpbmdDb250cm9sLkl0ZW1OYW1lJyB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbYWxsb3dFZGl0aW5nXT1cImZhbHNlXCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwiaXNDb250cm9sbGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtjYXB0aW9uXT1cIidVcmV0aW1Zb25ldGltaTo6RmlsbGluZ0NvbnRyb2wuSXNDb250cm9sbGVkJyB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBkYXRhVHlwZT1cImJvb2xlYW5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW2FsbG93RWRpdGluZ109XCJmYWxzZVwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cImJhdGNoTnVtYmVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtjYXB0aW9uXT1cIidVcmV0aW1Zb25ldGltaTo6RmlsbGluZ0NvbnRyb2wuQmF0Y2hOdW1iZXInIHwgYWJwTG9jYWxpemF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFthbGxvd0VkaXRpbmddPVwiZmFsc2VcIj48L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgPC9keC1kYXRhLWdyaWQ+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvYWJwLXBhZ2U+XHJcbiJdfQ==
358
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LWZpbGxpbmctY29udHJvbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91cmV0aW0teW9uZXRpbWkvc3JjL2xpYi9jb21wb25lbnRzL2hpdC1maWxsaW5nLWNvbnRyb2wvaGl0LWZpbGxpbmctY29udHJvbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91cmV0aW0teW9uZXRpbWkvc3JjL2xpYi9jb21wb25lbnRzL2hpdC1maWxsaW5nLWNvbnRyb2wvaGl0LWZpbGxpbmctY29udHJvbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUs3RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7OztBQU9uRCxNQUFNLE9BQU8sMEJBQTBCO0lBZXJDLFlBQ1UsT0FBaUMsRUFDakMsWUFBaUMsRUFDakMsTUFBYztRQUZkLFlBQU8sR0FBUCxPQUFPLENBQTBCO1FBQ2pDLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQUNqQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBWnhCLG9CQUFlLEdBQVksS0FBSyxDQUFDO1FBQ2pDLDJCQUFzQixHQUFZLEtBQUssQ0FBQztRQUN4QyxjQUFTLEdBQVksS0FBSyxDQUFDO1FBQzNCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsZUFBVSxHQUFXLEVBQUUsQ0FBQztRQUN4QixXQUFNLEdBQVcsRUFBRSxDQUFDO1FBQ3BCLFVBQUssR0FBeUIsRUFBRSxDQUFDO1FBQ2pDLHVCQUFrQixHQUFZLEtBQUssQ0FBQyxDQUFDLHFDQUFxQztJQU12RSxDQUFDO0lBRUosUUFBUTtRQUNOLHVCQUF1QjtJQUN6QixDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6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QUFDO0lBQ0wsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDbkIsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCxJQUFJLENBQUMsWUFBWSxFQUFFLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN0QyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDUixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7O3VIQXBYVSwwQkFBMEI7MkdBQTFCLDBCQUEwQixrV0NadkMsKzFJQXlGQTsyRkQ3RWEsMEJBQTBCO2tCQUx0QyxTQUFTOytCQUNFLHlCQUF5QjtzS0FLVSxjQUFjO3NCQUExRCxTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBQ0EsWUFBWTtzQkFBdEQsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUNFLFFBQVE7c0JBQWxELFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0NoaWxkLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRHhOdW1iZXJCb3hDb21wb25lbnQsIER4VGV4dEJveENvbXBvbmVudCwgRHhEYXRhR3JpZENvbXBvbmVudCB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhcic7XHJcbmltcG9ydCB7IEhpdEZpbGxpbmdDb250cm9sU2VydmljZSB9IGZyb20gJy4uLy4uL2hpdC1wcm94eS9oaXQtZmlsbGluZy1jb250cm9sL2hpdC1maWxsaW5nLWNvbnRyb2wuc2VydmljZSc7XHJcbmltcG9ydCB7IEZpbGxpbmdDb250cm9sTGluZSB9IGZyb20gJy4uLy4uL2hpdC1wcm94eS9oaXQtZmlsbGluZy1jb250cm9sL21vZGVscyc7XHJcbmltcG9ydCB7IENvbmZpcm1hdGlvblNlcnZpY2UgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XHJcbmltcG9ydCB7IEhpdEhlbHBlciB9IGZyb20gJy4uLy4uL2hpdC1wcm94eS9tb2RlbHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItaGl0LWZpbGxpbmctY29udHJvbCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2hpdC1maWxsaW5nLWNvbnRyb2wuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2hpdC1maWxsaW5nLWNvbnRyb2wuY29tcG9uZW50LmNzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSGl0RmlsbGluZ0NvbnRyb2xDb21wb25lbnQge1xyXG4gIEBWaWV3Q2hpbGQoJ2lzRW1yaU5vUmVmJywgeyBzdGF0aWM6IGZhbHNlIH0pIG5tYkJveElzRW1yaU5vOiBEeE51bWJlckJveENvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCdxckNvZGVSZWYnLCB7IHN0YXRpYzogZmFsc2UgfSkgdHh0Qm94UXJDb2RlOiBEeFRleHRCb3hDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgnZ3JpZExpbmVzJywgeyBzdGF0aWM6IGZhbHNlIH0pIGRhdGFHcmlkOiBEeERhdGFHcmlkQ29tcG9uZW50O1xyXG5cclxuICBpc0VtcmlObzogbnVtYmVyO1xyXG4gIHNlYXJjaEJhc2lsZGlNaTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGlzRW1yaUJhcmtvZHVHZWNlcmxpTWk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc0xvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc1NhdmluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGhhdEJpbGdpc2k6IHN0cmluZyA9ICcnO1xyXG4gIHFyQ29kZTogc3RyaW5nID0gJyc7XHJcbiAgbGluZXM6IEZpbGxpbmdDb250cm9sTGluZVtdID0gW107XHJcbiAgaXNEYXRhTG9hZGVkRnJvbURiOiBib29sZWFuID0gZmFsc2U7IC8vIERCJ2RlbiB2ZXJpIG1pIGdlbGRpIHlva3NhIHllbmkgbWlcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHNlcnZpY2U6IEhpdEZpbGxpbmdDb250cm9sU2VydmljZSxcclxuICAgIHByaXZhdGUgY29uZmlybWF0aW9uOiBDb25maXJtYXRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZVxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICAvLyBJbml0aWFsaXphdGlvbiBsb2dpY1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5mb2N1c09uSXNFbXJpTm8oKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIGdldFByb2R1Y3Rpb25PcmRlcigpIHtcclxuICAgIGlmICghdGhpcy5pc0VtcmlObykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5pc0VtcmlCYXJrb2R1R2VjZXJsaU1pID0gZmFsc2U7XHJcbiAgICB0aGlzLnNlYXJjaEJhc2lsZGlNaSA9IHRydWU7XHJcblxyXG4gICAgdGhpcy5zZXJ2aWNlLmdldEZpbGxpbmdDb250cm9sSW5mbyh0aGlzLmlzRW1yaU5vKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiByZXNwb25zZSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3BvbnNlPy5pc1N1Y2Nlc3NmdWwpIHtcclxuICAgICAgICAgIGNvbnN0IHN0YXR1cyA9IChyZXNwb25zZS5pdGVtcz8uc3RhdHVzIHx8ICcnKS50b1N0cmluZygpLnRvVXBwZXJDYXNlKCk7XHJcbiAgICAgICAgICBpZiAoc3RhdHVzID09PSAnUCcpIHtcclxuICAgICAgICAgICAgdGhpcy5jb25maXJtYXRpb24ud2FybignJywgJ0J1IMO8cmV0aW0gc2lwYXJpxZ9pIG9uYXlsYW5tYW3EscWfdMSxciwga29udHJvbCB5YXDEsWxhbWF6LicsIHtcclxuICAgICAgICAgICAgICBoaWRlWWVzQnRuOiB0cnVlLFxyXG4gICAgICAgICAgICAgIGNhbmNlbFRleHQ6ICdLYXBhdCcsXHJcbiAgICAgICAgICAgICAgZGlzbWlzc2libGU6IGZhbHNlLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgdGhpcy5jbGVhckFsbCgpO1xyXG4gICAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgdGhpcy5oYXRCaWxnaXNpID0gcmVzcG9uc2UuaXRlbXMudV9IYXQ7XHJcbiAgICAgICAgICB0aGlzLmxpbmVzID0gcmVzcG9uc2UuaXRlbXMubGluZXM7XHJcbiAgICAgICAgICB0aGlzLmlzRW1yaUJhcmtvZHVHZWNlcmxpTWkgPSB0cnVlO1xyXG4gICAgICAgICAgXHJcbiAgICAgICAgICAvLyBEQidkZW4gdmVyaSBnZWxpcCBnZWxtZWRpxJ9pbmkga29udHJvbCBldCAoZW4gYXogYmlyIHNhdMSxcmRhIGJhdGNoTnVtYmVyIHZhcnNhIERCJ2RlbiBnZWxtacWfdGlyKVxyXG4gICAgICAgICAgdGhpcy5pc0RhdGFMb2FkZWRGcm9tRGIgPSB0aGlzLmxpbmVzLnNvbWUoeCA9PiB4LmJhdGNoTnVtYmVyICYmIHguYmF0Y2hOdW1iZXIudHJpbSgpICE9PSAnJyk7XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmZvY3VzT25RckNvZGUoKTtcclxuICAgICAgICAgIH0sIDEwMCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuaXNFbXJpQmFya29kdUdlY2VybGlNaSA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogZSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc0VtcmlCYXJrb2R1R2VjZXJsaU1pID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zZWFyY2hCYXNpbGRpTWkgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5jb25maXJtYXRpb24uc3RhdHVzJC5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgbmV4dDogKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmNsZWFyQWxsKCk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvblFyQ29kZUNoYW5nZSgpIHtcclxuICAgIGlmICghdGhpcy5xckNvZGUgfHwgdGhpcy5xckNvZGUudHJpbSgpID09PSAnJykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgZGVidWdnZXI7XHJcblxyXG4gICAgY29uc3QgcGFyc2VkID0gSGl0SGVscGVyLnBhcnNlUVIodGhpcy5xckNvZGUpO1xyXG4gICAgaWYgKCFwYXJzZWQpIHtcclxuICAgICAgdGhpcy5jb25maXJtYXRpb24uZXJyb3IoJycsICdHZcOnZXJzaXogUVIga29kIGZvcm1hdMSxIScsIHtcclxuICAgICAgICBoaWRlWWVzQnRuOiB0cnVlLFxyXG4gICAgICAgIGNhbmNlbFRleHQ6ICdLYXBhdCcsXHJcbiAgICAgICAgZGlzbWlzc2libGU6IGZhbHNlLFxyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5xckNvZGUgPSAnJztcclxuICAgICAgdGhpcy5mb2N1c1FSSW5wdXQoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIEdyaWQnZGUgYnUgaXRlbSfEsSBidWxcclxuICAgIGNvbnN0IGxpbmUgPSB0aGlzLmxpbmVzLmZpbmQoeCA9PiB4Lml0ZW1Db2RlID09PSBwYXJzZWQuY2hlbWljYWxDb2RlKTtcclxuICAgIGlmICghbGluZSkge1xyXG4gICAgICB0aGlzLmNvbmZpcm1hdGlvbi5lcnJvcignJywgYCR7cGFyc2VkLmNoZW1pY2FsQ29kZX0ga29kbHUgw7xyw7xuIGJ1IGnFnyBlbXJpbmRlIGJ1bHVuYW1hZMSxIWAsIHtcclxuICAgICAgICBoaWRlWWVzQnRuOiB0cnVlLFxyXG4gICAgICAgIGNhbmNlbFRleHQ6ICdLYXBhdCcsXHJcbiAgICAgICAgZGlzbWlzc2libGU6IGZhbHNlLFxyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5xckNvZGUgPSAnJztcclxuICAgICAgdGhpcy5mb2N1c1FSSW5wdXQoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIMSwbGsgb2t1dG1hIGtvbnRyb2zDvCAtIEhpw6cga29udHJvbCBlZGlsbWVtacWfIHNhdMSxciB2YXJzYSwgYnUgaWxrIG9rdXRtYSBkZW1la3RpclxyXG4gICAgY29uc3QgaXNGaXJzdFNjYW4gPSAhdGhpcy5saW5lcy5zb21lKHggPT4geC5pc0NvbnRyb2xsZWQpO1xyXG4gICAgaWYgKGlzRmlyc3RTY2FuKSB7XHJcbiAgICAgIC8vIMSwbGsgb2t1dG1hIGnDp2luIMO8csO8biBhxJ9hY8SxIHZlIGthbGl0ZSBrb250cm9sw7wgeWFwXHJcbiAgICAgIGNvbnNvbGUubG9nKCfEsGxrIG9rdXRtYSB0ZXNwaXQgZWRpbGRpLCDDvHLDvG4gYcSfYWPEsSBrb250cm9sw7wgeWFwxLFsxLF5b3I6JywgcGFyc2VkLmNoZW1pY2FsQ29kZSk7XHJcbiAgICAgIHRoaXMuc2VydmljZS5oYXNQcm9kdWN0aW9uVHJlZShwYXJzZWQuY2hlbWljYWxDb2RlLCB0aGlzLmlzRW1yaU5vKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IHJlc3BvbnNlID0+IHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKCdIYXNQcm9kdWN0aW9uVHJlZSByZXNwb25zZTonLCByZXNwb25zZSk7XHJcbiAgICAgICAgICBpZiAocmVzcG9uc2U/LmlzU3VjY2Vzc2Z1bCAmJiByZXNwb25zZS5pdGVtcyA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAvLyDDnHLDvG4gYcSfYWPEsSB2YXIsIGthbGl0ZSBrb250cm9sw7wgeWFwXHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCfDnHLDvG4gYcSfYWPEsSBidWx1bmR1LCBrYWxpdGUga29udHJvbMO8IHlhcMSxbMSxeW9yJyk7XHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tRdWFsaXR5QW5kUHJvY2VzcyhsaW5lLCBwYXJzZWQubG90TnVtYmVyLCBpc0ZpcnN0U2Nhbik7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvLyDDnHLDvG4gYcSfYWPEsSB5b2ssIGhhdGEgZ8O2c3RlclxyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnw5xyw7xuIGHEn2FjxLEgYnVsdW5hbWFkxLEhJyk7XHJcbiAgICAgICAgICAgIHRoaXMuY29uZmlybWF0aW9uLmVycm9yKCcnLCAnxLBsayBva3V0bWEgacWfbGVtaSB5YXLEsSBtYW3DvGwgacOnaW4geWFwxLFsbWFsxLEhJywge1xyXG4gICAgICAgICAgICAgIGhpZGVZZXNCdG46IHRydWUsXHJcbiAgICAgICAgICAgICAgY2FuY2VsVGV4dDogJ0thcGF0JyxcclxuICAgICAgICAgICAgICBkaXNtaXNzaWJsZTogZmFsc2UsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB0aGlzLnFyQ29kZSA9ICcnO1xyXG4gICAgICAgICAgICB0aGlzLmZvY3VzUVJJbnB1dCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0hhc1Byb2R1Y3Rpb25UcmVlIGVycm9yOicsIGVycik7XHJcbiAgICAgICAgICB0aGlzLmNvbmZpcm1hdGlvbi5lcnJvcignJywgJ8OccsO8biBhxJ9hY8SxIGtvbnRyb2zDvCB5YXDEsWzEsXJrZW4gaGF0YSBvbHXFn3R1IScsIHtcclxuICAgICAgICAgICAgaGlkZVllc0J0bjogdHJ1ZSxcclxuICAgICAgICAgICAgY2FuY2VsVGV4dDogJ0thcGF0JyxcclxuICAgICAgICAgICAgZGlzbWlzc2libGU6IGZhbHNlLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB0aGlzLnFyQ29kZSA9ICcnO1xyXG4gICAgICAgICAgdGhpcy5mb2N1c1FSSW5wdXQoKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIMSwbGsgb2t1dG1hIGRlxJ9pbHNlIGRpcmVrdCBpxZ9sZVxyXG4gICAgICBjb25zb2xlLmxvZygnxLBsayBva3V0bWEgZGXEn2lsLCBkaXJla3QgacWfbGVuaXlvcicpO1xyXG4gICAgICB0aGlzLnByb2Nlc3NRclNjYW4obGluZSwgcGFyc2VkLmxvdE51bWJlcik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNoZWNrUXVhbGl0eUFuZFByb2Nlc3MobGluZTogRmlsbGluZ0NvbnRyb2xMaW5lLCBiYXRjaE51bWJlcjogc3RyaW5nLCBpc0ZpcnN0U2NhbjogYm9vbGVhbikge1xyXG4gICAgLy8gS2FsaXRlIGR1cnVtdSBrb250cm9sw7wgeWFwXHJcbiAgICB0aGlzLnNlcnZpY2UuY2hlY2tRdWFsaXR5U3RhdHVzKGJhdGNoTnVtYmVyLCB0aGlzLmlzRW1yaU5vLCBsaW5lLml0ZW1Db2RlKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiByZXNwb25zZSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ0NoZWNrUXVhbGl0eVN0YXR1cyByZXNwb25zZTonLCByZXNwb25zZSk7XHJcbiAgICAgICAgaWYgKHJlc3BvbnNlPy5pc1N1Y2Nlc3NmdWwgJiYgcmVzcG9uc2UuaXRlbXMpIHtcclxuICAgICAgICAgIGlmIChyZXNwb25zZS5pdGVtcy5pc0FwcHJvdmVkKSB7XHJcbiAgICAgICAgICAgIC8vIEthbGl0ZSBvbmF5bGFuZMSxLCBva3V0bWF5YSBkZXZhbSBldFxyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnS2FsaXRlIGtvbnRyb2zDvCBvbmF5bGFuZMSxLCBva3V0bWF5YSBkZXZhbSBlZGlsaXlvcicpO1xyXG4gICAgICAgICAgICB0aGlzLnByb2Nlc3NRclNjYW4obGluZSwgYmF0Y2hOdW1iZXIsIGlzRmlyc3RTY2FuKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIEthbGl0ZSBSRUQsIGhhdGEgZ8O2c3RlclxyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnS2FsaXRlIGtvbnRyb2zDvCByZWRkZWRpbGRpOicsIHJlc3BvbnNlLml0ZW1zLmVycm9yTWVzc2FnZSk7XHJcbiAgICAgICAgICAgIHRoaXMuY29uZmlybWF0aW9uLmVycm9yKCcnLCByZXNwb25zZS5pdGVtcy5lcnJvck1lc3NhZ2UgfHwgJ0thbGl0ZSBrb250cm9sw7wgcmVkZGVkaWxkaSEnLCB7XHJcbiAgICAgICAgICAgICAgaGlkZVllc0J0bjogdHJ1ZSxcclxuICAgICAgICAgICAgICBjYW5jZWxUZXh0OiAnS2FwYXQnLFxyXG4gICAgICAgICAgICAgIGRpc21pc3NpYmxlOiBmYWxzZSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHRoaXMucXJDb2RlID0gJyc7XHJcbiAgICAgICAgICAgIHRoaXMuZm9jdXNRUklucHV0KCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIC8vIFNvcmd1IHNvbnVjdSBudWxsIGdlbGRpIHZleWEgYmHFn2FyxLFzxLF6XHJcbiAgICAgICAgICBjb25zb2xlLmxvZygnS2FsaXRlIGtvbnRyb2zDvCBzb3JndXN1IHNvbnXDpyBkw7ZuZMO8cm1lZGknKTtcclxuICAgICAgICAgIHRoaXMuY29uZmlybWF0aW9uLmVycm9yKCcnLCAnQnUgbG90IG51bWFyYXPEsSBpw6dpbiBrYWxpdGUgYmlsZ2lzaSBidWx1bmFtYWTEsSEnLCB7XHJcbiAgICAgICAgICAgIGhpZGVZZXNCdG46IHRydWUsXHJcbiAgICAgICAgICAgIGNhbmNlbFRleHQ6ICdLYXBhdCcsXHJcbiAgICAgICAgICAgIGRpc21pc3NpYmxlOiBmYWxzZSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgdGhpcy5xckNvZGUgPSAnJztcclxuICAgICAgICAgIHRoaXMuZm9jdXNRUklucHV0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0NoZWNrUXVhbGl0eVN0YXR1cyBlcnJvcjonLCBlcnIpO1xyXG4gICAgICAgIHRoaXMuY29uZmlybWF0aW9uLmVycm9yKCcnLCAnS2FsaXRlIGtvbnRyb2zDvCB5YXDEsWzEsXJrZW4gaGF0YSBvbHXFn3R1IScsIHtcclxuICAgICAgICAgIGhpZGVZZXNCdG46IHRydWUsXHJcbiAgICAgICAgICBjYW5jZWxUZXh0OiAnS2FwYXQnLFxyXG4gICAgICAgICAgZGlzbWlzc2libGU6IGZhbHNlLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMucXJDb2RlID0gJyc7XHJcbiAgICAgICAgdGhpcy5mb2N1c1FSSW5wdXQoKTtcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwcm9jZXNzUXJTY2FuKGxpbmU6IEZpbGxpbmdDb250cm9sTGluZSwgYmF0Y2hOdW1iZXI6IHN0cmluZywgaXNGaXJzdFNjYW46IGJvb2xlYW4gPSBmYWxzZSkge1xyXG4gICAgLy8gS29udHJvbCBlZGlsZGkgb2xhcmFrIGnFn2FyZXRsZSB2ZSBwYXJ0aSBudW1hcmFzxLFuxLEgc2V0IGV0XHJcbiAgICBsaW5lLmlzQ29udHJvbGxlZCA9IHRydWU7XHJcbiAgICBpZiAoaXNGaXJzdFNjYW4pIHtcclxuICAgICAgbGluZS5iYXRjaE51bWJlciA9IGJhdGNoTnVtYmVyO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIEdyaWQnaSByZWZyZXNoIGV0XHJcbiAgICB0aGlzLmRhdGFHcmlkLmluc3RhbmNlLnJlZnJlc2goKTtcclxuXHJcbiAgICAvLyBRUiBpbnB1dCd1IHRlbWl6bGUgdmUgZm9jdXMgZXRcclxuICAgIHRoaXMucXJDb2RlID0gJyc7XHJcbiAgICB0aGlzLmZvY3VzUVJJbnB1dCgpO1xyXG4gIH1cclxuXHJcbiAgc2F2ZSgpIHtcclxuICAgIGlmICghdGhpcy5pc0VtcmlObyB8fCB0aGlzLmxpbmVzLmxlbmd0aCA9PT0gMCB8fCB0aGlzLmlzU2F2aW5nKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvLyBUw7xtIGtvbnRyb2xsZXIgdGFtYW1sYW5txLHFnyBtxLEga29udHJvbMO8XHJcbiAgICBpZiAoIXRoaXMubGluZXMuZXZlcnkoeCA9PiB4LmlzQ29udHJvbGxlZCkpIHtcclxuICAgICAgdGhpcy5jb25maXJtYXRpb24ud2FybignJywgJ1TDvG0ga29udHJvbGxlciB0YW1hbWxhbm1hZGFuIGthecSxdCBpxZ9sZW1pIHlhcMSxbGFtYXouJywge1xyXG4gICAgICAgIGhpZGVZZXNCdG46IHRydWUsXHJcbiAgICAgICAgY2FuY2VsVGV4dDogJ0thcGF0JyxcclxuICAgICAgICBkaXNtaXNzaWJsZTogZmFsc2UsXHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qgc2F2ZURhdGEgPSB7XHJcbiAgICAgIHdvcmtPcmRlck5vOiB0aGlzLmlzRW1yaU5vLFxyXG4gICAgICBsaW5lczogdGhpcy5saW5lcy5tYXAobGluZSA9PiAoe1xyXG4gICAgICAgIGxpbmVOdW06IGxpbmUubGluZU51bSxcclxuICAgICAgICBpdGVtQ29kZTogbGluZS5pdGVtQ29kZSxcclxuICAgICAgICBpc0NvbnRyb2xsZWQ6IGxpbmUuaXNDb250cm9sbGVkLFxyXG4gICAgICAgIGJhdGNoTnVtYmVyOiBsaW5lLmJhdGNoTnVtYmVyIHx8ICcnXHJcbiAgICAgIH0pKVxyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLmlzU2F2aW5nID0gdHJ1ZTtcclxuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMuc2VydmljZS5zYXZlRmlsbGluZ0NvbnRyb2woc2F2ZURhdGEpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IHJlc3BvbnNlID0+IHtcclxuICAgICAgICBpZiAocmVzcG9uc2U/LmlzU3VjY2Vzc2Z1bCkge1xyXG4gICAgICAgICAgdGhpcy5jb25maXJtYXRpb24uc3VjY2VzcygnJywgJ0thecSxdCBiYcWfYXLEsWzEsSEnLCB7XHJcbiAgICAgICAgICAgIGhpZGVZZXNCdG46IHRydWUsXHJcbiAgICAgICAgICAgIGNhbmNlbFRleHQ6ICdLYXBhdCcsXHJcbiAgICAgICAgICAgIGRpc21pc3NpYmxlOiBmYWxzZSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgdGhpcy5jbGVhckFsbCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmlzU2F2aW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IGUgPT4ge1xyXG4gICAgICAgIHRoaXMuaXNTYXZpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuY29uZmlybWF0aW9uLnN0YXR1cyQuc3Vic2NyaWJlKHtcclxuICAgICAgICAgIG5leHQ6ICgpID0+IHtcclxuICAgICAgICAgICAgLy8gSGF0YSBzb25yYXPEsSBpxZ9sZW1cclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGNsZWFyQWxsKCkge1xyXG4gICAgdGhpcy5pc0VtcmlCYXJrb2R1R2VjZXJsaU1pID0gZmFsc2U7XHJcbiAgICB0aGlzLnNlYXJjaEJhc2lsZGlNaSA9IGZhbHNlO1xyXG4gICAgdGhpcy5pc0VtcmlObyA9IG51bGw7XHJcbiAgICB0aGlzLmhhdEJpbGdpc2kgPSAnJztcclxuICAgIHRoaXMucXJDb2RlID0gJyc7XHJcbiAgICB0aGlzLmxpbmVzID0gW107XHJcbiAgICB0aGlzLmlzRGF0YUxvYWRlZEZyb21EYiA9IGZhbHNlO1xyXG4gICAgdGhpcy5pc1NhdmluZyA9IGZhbHNlO1xyXG4gICAgdGhpcy5mb2N1c09uSXNFbXJpTm8oKTtcclxuICB9XHJcblxyXG4gIGdldCBzaG93S2F6YW5EZWdpc2ltaUJ1dHRvbigpOiBib29sZWFuIHtcclxuICAgIC8vIFNhZGVjZSBEQidkZW4gdmVyaSBnZWxtacWfc2UsIGnFnyBlbXJpIG9rdXR1bG11xZ8gdmUgdMO8bSBzYXTEsXJsYXIga29udHJvbCBlZGlsbWnFnyBpc2UgZ8O2c3RlclxyXG4gICAgcmV0dXJuIHRoaXMuaXNEYXRhTG9hZGVkRnJvbURiICYmXHJcbiAgICAgICAgICAgdGhpcy5pc0VtcmlCYXJrb2R1R2VjZXJsaU1pICYmIFxyXG4gICAgICAgICAgIHRoaXMubGluZXMubGVuZ3RoID4gMCAmJiBcclxuICAgICAgICAgICB0aGlzLmxpbmVzLmV2ZXJ5KHggPT4geC5pc0NvbnRyb2xsZWQpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzU2F2ZUJ1dHRvbkRpc2FibGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgLy8gxLDFnyBlbXJpIHlva3NhIHZleWEgc2F0xLFyIHlva3NhIHZleWEgdMO8bSBzYXTEsXJsYXIga29udHJvbCBlZGlsbWVtacWfc2UgdmV5YSBrYXlkZXRtZSBpxZ9sZW1pIGRldmFtIGVkaXlvcnNhIGRpc2FibGVcclxuICAgIHJldHVybiAhdGhpcy5pc0VtcmlObyB8fCBcclxuICAgICAgICAgICB0aGlzLmxpbmVzLmxlbmd0aCA9PT0gMCB8fCBcclxuICAgICAgICAgICAhdGhpcy5saW5lcy5ldmVyeSh4ID0+IHguaXNDb250cm9sbGVkKSB8fFxyXG4gICAgICAgICAgIHRoaXMuaXNTYXZpbmc7XHJcbiAgfVxyXG5cclxuICBrYXphbkRlZ2lzaW1pKCkge1xyXG4gICAgLy8gxLBsayBzb3J1OiBCdSBrYXphbmEgYWl0IHTDvG0gw7xyZXRpbWRlbiBnaXJpxZ9sZXJpIHRhbWFtbGFkxLFuxLF6IG3EsT9cclxuICAgIHRoaXMuY29uZmlybWF0aW9uLndhcm4oXHJcbiAgICAgICcnLFxyXG4gICAgICAnQnUga2F6YW5hIGFpdCB0w7xtIMO8cmV0aW1kZW4gZ2lyacWfbGVyaSB0YW1hbWxhZMSxbsSxeiBtxLE/JyxcclxuICAgICAge1xyXG4gICAgICAgIHllc1RleHQ6ICdFdmV0JyxcclxuICAgICAgICBjYW5jZWxUZXh0OiAnSGF5xLFyJ1xyXG4gICAgICB9XHJcbiAgICApLnN1YnNjcmliZShzdGF0dXMgPT4ge1xyXG4gICAgICBpZiAoc3RhdHVzID09PSAnY29uZmlybScpIHtcclxuICAgICAgICAvLyDEsGtpbmNpIHNvcnU6IEthemFuIGRlxJ9pxZ9pbWkgw7ZuY2VzaW5kZSBrYXphbiBZTSBmaXJlIMOnxLFrxLHFn8SxIGdlcsOnZWtsZcWfdGlyaWxkaSBtaT9cclxuICAgICAgICB0aGlzLmNvbmZpcm1hdGlvbi53YXJuKFxyXG4gICAgICAgICAgJycsXHJcbiAgICAgICAgICAnS2F6YW4gZGXEn2nFn2ltaSDDtm5jZXNpbmRlIGthemFuIFlNIGZpcmUgw6fEsWvEscWfxLEgZ2Vyw6dla2xlxZ90aXJpbGRpIG1pPycsXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHllc1RleHQ6ICdFdmV0JyxcclxuICAgICAgICAgICAgY2FuY2VsVGV4dDogJ0hhecSxcidcclxuICAgICAgICAgIH1cclxuICAgICAgICApLnN1YnNjcmliZShzdGF0dXMyID0+IHtcclxuICAgICAgICAgIGlmIChzdGF0dXMyID09PSAnY29uZmlybScpIHtcclxuICAgICAgICAgICAgLy8gw5zDp8O8bmPDvCBzb3J1OiBCaWxlxZ9lbiBmaXJlIMOnxLFrxLHFn8SxIGdlcsOnZWtsZcWfdGlyaWxkaSBtaT9cclxuICAgICAgICAgICAgdGhpcy5jb25maXJtYXRpb24ud2FybihcclxuICAgICAgICAgICAgICAnJyxcclxuICAgICAgICAgICAgICAnQmlsZcWfZW4gZmlyZSDDp8Sxa8SxxZ/EsSBnZXLDp2VrbGXFn3RpcmlsZGkgbWk/JyxcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB5ZXNUZXh0OiAnRXZldCcsXHJcbiAgICAgICAgICAgICAgICBjYW5jZWxUZXh0OiAnSGF5xLFyJ1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgKS5zdWJzY3JpYmUoc3RhdHVzMyA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKHN0YXR1czMgPT09ICdjb25maXJtJykge1xyXG4gICAgICAgICAgICAgICAgLy8gVMO8bSBvbmF5bGFyIHZlcmlsZGksIGthemFuIGRlxJ9pxZ9pbWkgacWfbGVtaW5pIGdlcsOnZWtsZcWfdGlyXHJcbiAgICAgICAgICAgICAgICAvLyBUw7xtIHNhdMSxcmxhcsSxbiBJc0NvbnRyb2xsZWQgYWxhbsSxbsSxIGZhbHNlIHlhcFxyXG4gICAgICAgICAgICAgICAgdGhpcy5saW5lcy5mb3JFYWNoKGxpbmUgPT4ge1xyXG4gICAgICAgICAgICAgICAgICBsaW5lLmlzQ29udHJvbGxlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICBsaW5lLmJhdGNoTnVtYmVyID0gJyc7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgLy8gR3JpZCdpIHJlZnJlc2ggZXRcclxuICAgICAgICAgICAgICAgIHRoaXMuZGF0YUdyaWQuaW5zdGFuY2UucmVmcmVzaCgpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pc0RhdGFMb2FkZWRGcm9tRGIgPSBmYWxzZTsgLy8gQXJ0xLFrIHllbmkgdmVyaSBnaXJpbGVjZWtcclxuICAgICAgICAgICAgICAgIC8vIFFSIGlucHV0J2EgZm9jdXMgZXRcclxuICAgICAgICAgICAgICAgIHRoaXMuZm9jdXNPblFyQ29kZSgpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAvLyBzdGF0dXMzICE9PSAnY29uZmlybScgaXNlIMO8w6fDvG5jw7wgc29ydXlhIGhhecSxciBkZW5kaSwgacWfbGVtIGlwdGFsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgLy8gc3RhdHVzMiAhPT0gJ2NvbmZpcm0nIGlzZSBpa2luY2kgc29ydXlhIGhhecSxciBkZW5kaSwgacWfbGVtIGlwdGFsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgLy8gc3RhdHVzICE9PSAnY29uZmlybScgaXNlIGlsayBzb3J1eWEgaGF5xLFyIGRlbmRpLCBpxZ9sZW0gaXB0YWxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZm9jdXNPbklzRW1yaU5vKCkge1xyXG4gICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5ubWJCb3hJc0VtcmlObz8uaW5zdGFuY2UuZm9jdXMoKTtcclxuICAgICAgfSwgMCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGZvY3VzT25RckNvZGUoKSB7XHJcbiAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLnR4dEJveFFyQ29kZT8uaW5zdGFuY2UuZm9jdXMoKTtcclxuICAgICAgfSwgMCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGZvY3VzUVJJbnB1dCgpIHtcclxuICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMudHh0Qm94UXJDb2RlPy5pbnN0YW5jZS5mb2N1cygpO1xyXG4gICAgICB9LCAwKTtcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iLCI8YWJwLXBhZ2UgW2JyZWFkY3J1bWJdPVwiZmFsc2VcIj5cclxuICA8YWJwLXBhZ2UtdG9vbGJhci1jb250YWluZXIgY2xhc3M9XCJjb2xcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgPGgzIGNsYXNzPVwicGFnZS10aXRsZVwiPlxyXG4gICAgICAgIHt7ICdVcmV0aW1Zb25ldGltaTo6RmlsbGluZ0NvbnRyb2wuVGl0bGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgIDwvaDM+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3cgdGV4dC1sZy1lbmQgcHQtMlwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTZcIj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1zdWNjZXNzIGJ0bi1zbVwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwic2F2ZSgpXCIgW2Rpc2FibGVkXT1cImlzU2F2ZUJ1dHRvbkRpc2FibGVkXCI+XHJcbiAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXNhdmUgbWUtMVwiPjwvaT5cclxuICAgICAgICAgIHt7ICdVcmV0aW1Zb25ldGltaTo6RmlsbGluZ0NvbnRyb2wuU2F2ZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtM1wiICpuZ0lmPVwic2hvd0themFuRGVnaXNpbWlCdXR0b25cIj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1pbmZvIGJ0bi1zbVwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwia2F6YW5EZWdpc2ltaSgpXCI+XHJcbiAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXJlY3ljbGUgbWUtMVwiPjwvaT5cclxuICAgICAgICAgIEthemFuIERlxJ9pxZ9pbWlcclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtM1wiPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXdhcm5pbmcgYnRuLXNtXCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJjbGVhckFsbCgpXCI+XHJcbiAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWJyb29tIG1lLTFcIj48L2k+XHJcbiAgICAgICAgICB7eyAnVXJldGltWW9uZXRpbWk6OkZpbGxpbmdDb250cm9sLkNsZWFuJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvYWJwLXBhZ2UtdG9vbGJhci1jb250YWluZXI+XHJcbiAgPGRpdiBjbGFzcz1cImNhcmQgbXQtMlwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiIHN0eWxlPVwiaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMjQxcHgpOyBvdmVyZmxvdzogYXV0bztcIj5cclxuICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7XCI+XHJcbiAgICAgICAgPGR4LW51bWJlci1ib3ggI2lzRW1yaU5vUmVmIGNsYXNzPVwibWUtMVwiIHN0eWxlPVwid2lkdGg6MTAwJTtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInVXJldGltWW9uZXRpbWk6OkZpbGxpbmdDb250cm9sLldvcmtPcmRlck5vJyB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgWyh2YWx1ZSldPVwiaXNFbXJpTm9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIChvbkNoYW5nZSk9XCJnZXRQcm9kdWN0aW9uT3JkZXIoKVwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgIChvbkVudGVyS2V5KT1cImdldFByb2R1Y3Rpb25PcmRlcigpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwic2VhcmNoQmFzaWxkaU1pIHx8IGlzRW1yaUJhcmtvZHVHZWNlcmxpTWlcIj5cclxuICAgICAgICA8L2R4LW51bWJlci1ib3g+XHJcbiAgICAgICAgPGR4LWJ1dHRvbiBzdHlsZT1cIm1hcmdpbi10b3A6IDcuNXB4O1wiIFxyXG4gICAgICAgICAgICAgICAgICAgaWNvbj1cInNlYXJjaFwiIFxyXG4gICAgICAgICAgICAgICAgICAgdHlwZT1cImRlZmF1bHRcIiBcclxuICAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cImdldFByb2R1Y3Rpb25PcmRlcigpXCJcclxuICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJzZWFyY2hCYXNpbGRpTWkgfHwgaXNFbXJpQmFya29kdUdlY2VybGlNaVwiPlxyXG4gICAgICAgIDwvZHgtYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtdC0zXCIgKm5nSWY9XCJpc0VtcmlCYXJrb2R1R2VjZXJsaU1pXCI+XHJcbiAgICAgICAgPGR4LXRleHQtYm94IHN0eWxlPVwid2lkdGg6MTAwJTtcIiBcclxuICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidVcmV0aW1Zb25ldGltaTo6RmlsbGluZ0NvbnRyb2wuTGluZUluZm8nIHwgYWJwTG9jYWxpemF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgWyh2YWx1ZSldPVwiaGF0QmlsZ2lzaVwiIFxyXG4gICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwidHJ1ZVwiPlxyXG4gICAgICAgIDwvZHgtdGV4dC1ib3g+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtdC0zXCIgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyO1wiPlxyXG4gICAgICAgICAgPGR4LXRleHQtYm94ICNxckNvZGVSZWYgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDoxMDAlO1wiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWUtMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidVcmV0aW1Zb25ldGltaTo6RmlsbGluZ0NvbnRyb2wuUVJDb2RlJyB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgWyh2YWx1ZSldPVwicXJDb2RlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAob25FbnRlcktleSk9XCJvblFyQ29kZUNoYW5nZSgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1VyZXRpbVlvbmV0aW1pOjpGaWxsaW5nQ29udHJvbC5RUkNvZGUuUGxhY2Vob2xkZXInIHwgYWJwTG9jYWxpemF0aW9uXCI+XHJcbiAgICAgICAgICA8L2R4LXRleHQtYm94PlxyXG4gICAgICAgICAgPGR4LWJ1dHRvbiBzdHlsZT1cIm1hcmdpbi10b3A6IDcuNXB4O1wiIGljb249XCJwbHVzXCIgdHlwZT1cImRlZmF1bHRcIiAob25DbGljayk9XCJvblFyQ29kZUNoYW5nZSgpXCI+XHJcbiAgICAgICAgICA8L2R4LWJ1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGR4LWRhdGEtZ3JpZCAjZ3JpZExpbmVzIFxyXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtdC0zXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICBbZGF0YVNvdXJjZV09XCJsaW5lc1wiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgW2NvbHVtbkF1dG9XaWR0aF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtzaG93Qm9yZGVyc109XCJ0cnVlXCI+XHJcbiAgICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJpdGVtQ29kZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbY2FwdGlvbl09XCInVXJldGltWW9uZXRpbWk6OkZpbGxpbmdDb250cm9sLkl0ZW1Db2RlJyB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbYWxsb3dFZGl0aW5nXT1cImZhbHNlXCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwiaXRlbU5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW2NhcHRpb25dPVwiJ1VyZXRpbVlvbmV0aW1pOjpGaWxsaW5nQ29udHJvbC5JdGVtTmFtZScgfCBhYnBMb2NhbGl6YXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW2FsbG93RWRpdGluZ109XCJmYWxzZVwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cImlzQ29udHJvbGxlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbY2FwdGlvbl09XCInVXJldGltWW9uZXRpbWk6OkZpbGxpbmdDb250cm9sLklzQ29udHJvbGxlZCcgfCBhYnBMb2NhbGl6YXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgZGF0YVR5cGU9XCJib29sZWFuXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFthbGxvd0VkaXRpbmddPVwiZmFsc2VcIj48L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJiYXRjaE51bWJlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbY2FwdGlvbl09XCInVXJldGltWW9uZXRpbWk6OkZpbGxpbmdDb250cm9sLkJhdGNoTnVtYmVyJyB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbYWxsb3dFZGl0aW5nXT1cImZhbHNlXCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgIDwvZHgtZGF0YS1ncmlkPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2FicC1wYWdlPlxyXG4iXX0=
@@ -12,6 +12,7 @@ export class HitFillingReceiptFromProductionComponent {
12
12
  this.confirmation = confirmation;
13
13
  this.ngZone = ngZone;
14
14
  this.isLoading = false;
15
+ this.isSaving = false;
15
16
  this.isWorkOrderLoaded = false;
16
17
  this.workOrderInfo = null;
17
18
  // Pallet controls
@@ -82,12 +83,15 @@ export class HitFillingReceiptFromProductionComponent {
82
83
  }
83
84
  }
84
85
  async save() {
85
- if (!this.isEmriNo || !this.workOrderInfo || this.toplamMiktar <= 0) {
86
- this.confirmation.warn('', 'Lütfen tüm alanları doldurun!', {
87
- hideYesBtn: true,
88
- cancelText: 'Kapat',
89
- dismissible: false,
90
- });
86
+ debugger;
87
+ if (!this.isEmriNo || !this.workOrderInfo || this.toplamMiktar <= 0 || this.isSaving) {
88
+ if (!this.isSaving) {
89
+ this.confirmation.warn('', 'Lütfen tüm alanları doldurun!', {
90
+ hideYesBtn: true,
91
+ cancelText: 'Kapat',
92
+ dismissible: false,
93
+ });
94
+ }
91
95
  return;
92
96
  }
93
97
  // Check if completed quantity will exceed planned quantity
@@ -109,6 +113,7 @@ export class HitFillingReceiptFromProductionComponent {
109
113
  batchNumber: '',
110
114
  componentsToConsume: this.prepareComponentsToConsume()
111
115
  };
116
+ this.isSaving = true;
112
117
  this.isLoading = true;
113
118
  this.service.createReceipt(saveData).subscribe({
114
119
  next: response => {
@@ -120,9 +125,11 @@ export class HitFillingReceiptFromProductionComponent {
120
125
  });
121
126
  this.clearAll();
122
127
  }
128
+ this.isSaving = false;
123
129
  this.isLoading = false;
124
130
  },
125
131
  error: e => {
132
+ this.isSaving = false;
126
133
  this.isLoading = false;
127
134
  },
128
135
  });
@@ -140,16 +147,13 @@ export class HitFillingReceiptFromProductionComponent {
140
147
  const controlledLines = this.workOrderInfo.lines.filter(line => line.isControlled && line.batchNumber);
141
148
  // For YM/151* products, consume by lot from control screen
142
149
  for (const line of controlledLines) {
143
- const remainingQty = line.plannedQty - line.issuedQty;
144
- if (remainingQty > 0) {
145
- components.push({
146
- itemCode: line.itemCode,
147
- quantity: remainingQty,
148
- warehouseCode: line.warehouse,
149
- batchNumber: line.batchNumber,
150
- baseLine: line.lineNum
151
- });
152
- }
150
+ components.push({
151
+ itemCode: line.itemCode,
152
+ quantity: line.issuedQty,
153
+ warehouseCode: line.warehouse,
154
+ batchNumber: line.batchNumber,
155
+ baseLine: line.lineNum
156
+ });
153
157
  }
154
158
  // For other components, use "Teyit sonrası otomatik çekme" logic
155
159
  // (This would be handled by the backend with FIFO for batch/serial items)
@@ -162,13 +166,15 @@ export class HitFillingReceiptFromProductionComponent {
162
166
  this.paletTipi = 'TAM';
163
167
  this.koliAdet = null;
164
168
  this.toplamMiktar = 0;
169
+ this.isSaving = false;
165
170
  this.focusOnIsEmriNo();
166
171
  }
167
172
  get isSaveButtonDisabled() {
168
173
  return !this.isEmriNo ||
169
174
  !this.workOrderInfo ||
170
175
  this.toplamMiktar <= 0 ||
171
- (this.paletTipi === 'KISMI' && (!this.koliAdet || this.koliAdet <= 0));
176
+ (this.paletTipi === 'KISMI' && (!this.koliAdet || this.koliAdet <= 0)) ||
177
+ this.isSaving;
172
178
  }
173
179
  focusOnIsEmriNo() {
174
180
  this.ngZone.run(() => {
@@ -193,4 +199,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
193
199
  type: ViewChild,
194
200
  args: ['koliAdetRef', { static: false }]
195
201
  }] } });
196
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LWZpbGxpbmctcmVjZWlwdC1mcm9tLXByb2R1Y3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdXJldGltLXlvbmV0aW1pL3NyYy9saWIvY29tcG9uZW50cy9oaXQtZmlsbGluZy1yZWNlaXB0LWZyb20tcHJvZHVjdGlvbi9oaXQtZmlsbGluZy1yZWNlaXB0LWZyb20tcHJvZHVjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91cmV0aW0teW9uZXRpbWkvc3JjL2xpYi9jb21wb25lbnRzL2hpdC1maWxsaW5nLXJlY2VpcHQtZnJvbS1wcm9kdWN0aW9uL2hpdC1maWxsaW5nLXJlY2VpcHQtZnJvbS1wcm9kdWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7Ozs7OztBQWM3RCxNQUFNLE9BQU8sd0NBQXdDO0lBZ0JuRCxZQUNVLE9BQStDLEVBQy9DLFlBQWlDLEVBQ2pDLE1BQWM7UUFGZCxZQUFPLEdBQVAsT0FBTyxDQUF3QztRQUMvQyxpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFDakMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQWJ4QixjQUFTLEdBQVksS0FBSyxDQUFDO1FBQzNCLHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQUNuQyxrQkFBYSxHQUF3QixJQUFJLENBQUM7UUFFMUMsa0JBQWtCO1FBQ2xCLGNBQVMsR0FBVyxLQUFLLENBQUMsQ0FBQyxlQUFlO1FBQzFDLGlCQUFZLEdBQUcsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDaEMsYUFBUSxHQUFXLElBQUksQ0FBQztRQUN4QixpQkFBWSxHQUFXLENBQUMsQ0FBQztJQU10QixDQUFDO0lBRUosUUFBUTtRQUNOLGFBQWE7SUFDZixDQUFDO0lBRUQs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b0tBK0lBOzJGRGpJYSx3Q0FBd0M7a0JBTHBELFNBQVM7K0JBQ0UseUNBQXlDO29MQUtOLGNBQWM7c0JBQTFELFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFDRyxjQUFjO3NCQUEzRCxTQUFTO3VCQUFDLGNBQWMsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBQ0MsY0FBYztzQkFBMUQsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3Q2hpbGQsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEeE51bWJlckJveENvbXBvbmVudCwgRHhSYWRpb0dyb3VwQ29tcG9uZW50IH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyJztcclxuaW1wb3J0IHsgXHJcbiAgSGl0RmlsbGluZ1JlY2VpcHRGcm9tUHJvZHVjdGlvblNlcnZpY2UsXHJcbiAgR2V0V29ya09yZGVySW5mb0R0byxcclxuICBXb3JrT3JkZXJMaW5lRHRvXHJcbn0gZnJvbSAnLi4vLi4vaGl0LXByb3h5L2hpdC1maWxsaW5nLXJlY2VpcHQtZnJvbS1wcm9kdWN0aW9uL2hpdC1maWxsaW5nLXJlY2VpcHQtZnJvbS1wcm9kdWN0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb25maXJtYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItaGl0LWZpbGxpbmctcmVjZWlwdC1mcm9tLXByb2R1Y3Rpb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9oaXQtZmlsbGluZy1yZWNlaXB0LWZyb20tcHJvZHVjdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vaGl0LWZpbGxpbmctcmVjZWlwdC1mcm9tLXByb2R1Y3Rpb24uY29tcG9uZW50LmNzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSGl0RmlsbGluZ1JlY2VpcHRGcm9tUHJvZHVjdGlvbkNvbXBvbmVudCB7XHJcbiAgQFZpZXdDaGlsZCgnaXNFbXJpTm9SZWYnLCB7IHN0YXRpYzogZmFsc2UgfSkgbm1iQm94SXNFbXJpTm86IER4TnVtYmVyQm94Q29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ3BhbGV0VGlwaVJlZicsIHsgc3RhdGljOiBmYWxzZSB9KSByYWRpb1BhbGV0VGlwaTogRHhSYWRpb0dyb3VwQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ2tvbGlBZGV0UmVmJywgeyBzdGF0aWM6IGZhbHNlIH0pIG5tYkJveEtvbGlBZGV0OiBEeE51bWJlckJveENvbXBvbmVudDtcclxuXHJcbiAgaXNFbXJpTm86IG51bWJlcjtcclxuICBpc0xvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc1dvcmtPcmRlckxvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHdvcmtPcmRlckluZm86IEdldFdvcmtPcmRlckluZm9EdG8gPSBudWxsO1xyXG4gIFxyXG4gIC8vIFBhbGxldCBjb250cm9sc1xyXG4gIHBhbGV0VGlwaTogc3RyaW5nID0gJ1RBTSc7IC8vIFRBTSBvciBLSVNNSVxyXG4gIHBhbGV0VGlwbGVyaSA9IFsnVEFNJywgJ0tJU01JJ107XHJcbiAga29saUFkZXQ6IG51bWJlciA9IG51bGw7XHJcbiAgdG9wbGFtTWlrdGFyOiBudW1iZXIgPSAwO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgc2VydmljZTogSGl0RmlsbGluZ1JlY2VpcHRGcm9tUHJvZHVjdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNvbmZpcm1hdGlvbjogQ29uZmlybWF0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmVcclxuICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgLy8gSW5pdGlhbGl6ZVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5mb2N1c09uSXNFbXJpTm8oKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIGdldFByb2R1Y3Rpb25PcmRlcigpIHtcclxuICAgIGlmICghdGhpcy5pc0VtcmlObykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5pc1dvcmtPcmRlckxvYWRlZCA9IGZhbHNlO1xyXG5cclxuICAgIHRoaXMuc2VydmljZS5nZXRXb3JrT3JkZXJJbmZvKHRoaXMuaXNFbXJpTm8pLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IHJlc3BvbnNlID0+IHtcclxuICAgICAgICBpZiAocmVzcG9uc2U/LmlzU3VjY2Vzc2Z1bCAmJiByZXNwb25zZS5pdGVtcykge1xyXG4gICAgICAgICAgdGhpcy53b3JrT3JkZXJJbmZvID0gcmVzcG9uc2UuaXRlbXM7XHJcbiAgICAgICAgICB0aGlzLmlzV29ya09yZGVyTG9hZGVkID0gdHJ1ZTtcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgLy8gQ2FsY3VsYXRlIGRlZmF1bHQgdmFsdWVzIGZvciBUQU0gcGFsbGV0XHJcbiAgICAgICAgICB0aGlzLmNhbGN1bGF0ZVRvdGFsUXVhbnRpdHkoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IGUgPT4ge1xyXG4gICAgICAgIHRoaXMuaXNXb3JrT3JkZXJMb2FkZWQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuY29uZmlybWF0aW9uLnN0YXR1cyQuc3Vic2NyaWJlKHtcclxuICAgICAgICAgIG5leHQ6ICgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5jbGVhckFsbCgpO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9KTtcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25QYWxldFRpcGlDaGFuZ2UoKSB7XHJcbiAgICB0aGlzLmNhbGN1bGF0ZVRvdGFsUXVhbnRpdHkoKTtcclxuICAgIFxyXG4gICAgaWYgKHRoaXMucGFsZXRUaXBpID09PSAnS0lTTUknKSB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMubm1iQm94S29saUFkZXQ/Lmluc3RhbmNlLmZvY3VzKCk7XHJcbiAgICAgIH0sIDEwMCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbktvbGlBZGV0Q2hhbmdlKCkge1xyXG4gICAgdGhpcy5jYWxjdWxhdGVUb3RhbFF1YW50aXR5KCk7XHJcbiAgfVxyXG5cclxuICBjYWxjdWxhdGVUb3RhbFF1YW50aXR5KCkge1xyXG4gICAgaWYgKCF0aGlzLndvcmtPcmRlckluZm8pIHtcclxuICAgICAgdGhpcy50b3BsYW1NaWt0YXIgPSAwO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qgc2FsUGFja1VuID0gdGhpcy53b3JrT3JkZXJJbmZvLnNhbFBhY2tVbiB8fCAwO1xyXG4gICAgXHJcbiAgICBpZiAodGhpcy5wYWxldFRpcGkgPT09ICdUQU0nKSB7XHJcbiAgICAgIC8vIFRhbSBQYWxldDogUGFsbGV0IGhlaWdodCDDlyBQaWVjZXMgcGVyIGJveFxyXG4gICAgICBjb25zdCBwYWxldFl1a3Nla2xpayA9IHRoaXMud29ya09yZGVySW5mby51X0RLcGFsZXR5dXNla2xpayB8fCAwO1xyXG4gICAgICB0aGlzLnRvcGxhbU1pa3RhciA9IHBhbGV0WXVrc2VrbGlrICogc2FsUGFja1VuO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gS8Sxc21pIFBhbGV0OiBLb2xpIGNvdW50IMOXIFBpZWNlcyBwZXIgYm94XHJcbiAgICAgIGNvbnN0IGtvbGlBZGV0ID0gdGhpcy5rb2xpQWRldCB8fCAwO1xyXG4gICAgICB0aGlzLnRvcGxhbU1pa3RhciA9IGtvbGlBZGV0ICogc2FsUGFja1VuO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYXN5bmMgc2F2ZSgpIHtcclxuICAgIGlmICghdGhpcy5pc0VtcmlObyB8fCAhdGhpcy53b3JrT3JkZXJJbmZvIHx8IHRoaXMudG9wbGFtTWlrdGFyIDw9IDApIHtcclxuICAgICAgdGhpcy5jb25maXJtYXRpb24ud2FybignJywgJ0zDvHRmZW4gdMO8bSBhbGFubGFyxLEgZG9sZHVydW4hJywge1xyXG4gICAgICAgIGhpZGVZZXNCdG46IHRydWUsXHJcbiAgICAgICAgY2FuY2VsVGV4dDogJ0thcGF0JyxcclxuICAgICAgICBkaXNtaXNzaWJsZTogZmFsc2UsXHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gQ2hlY2sgaWYgY29tcGxldGVkIHF1YW50aXR5IHdpbGwgZXhjZWVkIHBsYW5uZWQgcXVhbnRpdHlcclxuICAgIGNvbnN0IHJlbWFpbmluZ1F0eSA9IHRoaXMud29ya09yZGVySW5mby5wbGFubmVkUXR5IC0gdGhpcy53b3JrT3JkZXJJbmZvLmNtcGx0UXR5O1xyXG4gICAgaWYgKHRoaXMudG9wbGFtTWlrdGFyID4gcmVtYWluaW5nUXR5KSB7XHJcbiAgICAgIHRoaXMuY29uZmlybWF0aW9uLndhcm4oJycsIGBHaXJpbGVuIG1pa3RhciAoJHt0aGlzLnRvcGxhbU1pa3Rhcn0pIGthbGFuIG1pa3RhcsSxICgke3JlbWFpbmluZ1F0eX0pIGHFn8SxeW9yIWAsIHtcclxuICAgICAgICBoaWRlWWVzQnRuOiB0cnVlLFxyXG4gICAgICAgIGNhbmNlbFRleHQ6ICdLYXBhdCcsXHJcbiAgICAgICAgZGlzbWlzc2libGU6IGZhbHNlLFxyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHNhdmVEYXRhID0ge1xyXG4gICAgICBkb2NFbnRyeTogdGhpcy5pc0VtcmlObyxcclxuICAgICAgcGFsbGV0VHlwZTogdGhpcy5wYWxldFRpcGksXHJcbiAgICAgIGtvbGlDb3VudDogdGhpcy5wYWxldFRpcGkgPT09ICdLSVNNSScgPyB0aGlzLmtvbGlBZGV0IDogbnVsbCxcclxuICAgICAgdG90YWxRdWFudGl0eTogdGhpcy50b3BsYW1NaWt0YXIsXHJcbiAgICAgIHdhcmVob3VzZUNvZGU6IHRoaXMud29ya09yZGVySW5mby53YXJlaG91c2UsXHJcbiAgICAgIGJhdGNoTnVtYmVyOiAnJywgLy8gQmF0Y2ggbnVtYmVyIHdpbGwgYmUgZ2VuZXJhdGVkIGJ5IFNBUFxyXG4gICAgICBjb21wb25lbnRzVG9Db25zdW1lOiB0aGlzLnByZXBhcmVDb21wb25lbnRzVG9Db25zdW1lKClcclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5zZXJ2aWNlLmNyZWF0ZVJlY2VpcHQoc2F2ZURhdGEpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IHJlc3BvbnNlID0+IHtcclxuICAgICAgICBpZiAocmVzcG9uc2U/LmlzU3VjY2Vzc2Z1bCkge1xyXG4gICAgICAgICAgdGhpcy5jb25maXJtYXRpb24uc3VjY2VzcygnJywgJ8OccmV0aW1kZW4gZ2lyacWfIGJhxZ9hcsSxeWxhIGdlcsOnZWtsZcWfdGlyaWxkaSEnLCB7XHJcbiAgICAgICAgICAgIGhpZGVZZXNCdG46IHRydWUsXHJcbiAgICAgICAgICAgIGNhbmNlbFRleHQ6ICdLYXBhdCcsXHJcbiAgICAgICAgICAgIGRpc21pc3NpYmxlOiBmYWxzZSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgdGhpcy5jbGVhckFsbCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogZSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJlcGFyZUNvbXBvbmVudHNUb0NvbnN1bWUoKTogYW55W10ge1xyXG4gICAgaWYgKCF0aGlzLndvcmtPcmRlckluZm8gfHwgIXRoaXMud29ya09yZGVySW5mby5saW5lcykge1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgY29tcG9uZW50cyA9IFtdO1xyXG4gICAgY29uc3QgaXRlbUNvZGUgPSB0aGlzLndvcmtPcmRlckluZm8uaXRlbUNvZGU7XHJcblxyXG4gICAgLy8gRGV0ZXJtaW5lIGlmIHRoaXMgaXMgWU0gb3IgMTUxKiBwcm9kdWN0XHJcbiAgICBjb25zdCBpc1lNID0gaXRlbUNvZGUuc3RhcnRzV2l0aCgnWU0nKTtcclxuICAgIGNvbnN0IGlzMTUxID0gaXRlbUNvZGUuc3RhcnRzV2l0aCgnMTUxJyk7XHJcblxyXG4gICAgLy8gR2V0IGNvbnRyb2xsZWQgbGluZXMgKFlNLzE1MSogaXRlbXMgbWFya2VkIHdpdGggVV9Lb250cm9sPSdFJylcclxuICAgIGNvbnN0IGNvbnRyb2xsZWRMaW5lcyA9IHRoaXMud29ya09yZGVySW5mby5saW5lcy5maWx0ZXIobGluZSA9PiBcclxuICAgICAgbGluZS5pc0NvbnRyb2xsZWQgJiYgbGluZS5iYXRjaE51bWJlclxyXG4gICAgKTtcclxuXHJcbiAgICAvLyBGb3IgWU0vMTUxKiBwcm9kdWN0cywgY29uc3VtZSBieSBsb3QgZnJvbSBjb250cm9sIHNjcmVlblxyXG4gICAgZm9yIChjb25zdCBsaW5lIG9mIGNvbnRyb2xsZWRMaW5lcykge1xyXG4gICAgICBjb25zdCByZW1haW5pbmdRdHkgPSBsaW5lLnBsYW5uZWRRdHkgLSBsaW5lLmlzc3VlZFF0eTtcclxuICAgICAgaWYgKHJlbWFpbmluZ1F0eSA+IDApIHtcclxuICAgICAgICBjb21wb25lbnRzLnB1c2goe1xyXG4gICAgICAgICAgaXRlbUNvZGU6IGxpbmUuaXRlbUNvZGUsXHJcbiAgICAgICAgICBxdWFudGl0eTogcmVtYWluaW5nUXR5LFxyXG4gICAgICAgICAgd2FyZWhvdXNlQ29kZTogbGluZS53YXJlaG91c2UsXHJcbiAgICAgICAgICBiYXRjaE51bWJlcjogbGluZS5iYXRjaE51bWJlcixcclxuICAgICAgICAgIGJhc2VMaW5lOiBsaW5lLmxpbmVOdW1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIEZvciBvdGhlciBjb21wb25lbnRzLCB1c2UgXCJUZXlpdCBzb25yYXPEsSBvdG9tYXRpayDDp2VrbWVcIiBsb2dpY1xyXG4gICAgLy8gKFRoaXMgd291bGQgYmUgaGFuZGxlZCBieSB0aGUgYmFja2VuZCB3aXRoIEZJRk8gZm9yIGJhdGNoL3NlcmlhbCBpdGVtcylcclxuXHJcbiAgICByZXR1cm4gY29tcG9uZW50cztcclxuICB9XHJcblxyXG4gIGNsZWFyQWxsKCkge1xyXG4gICAgdGhpcy5pc1dvcmtPcmRlckxvYWRlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5pc0VtcmlObyA9IG51bGw7XHJcbiAgICB0aGlzLndvcmtPcmRlckluZm8gPSBudWxsO1xyXG4gICAgdGhpcy5wYWxldFRpcGkgPSAnVEFNJztcclxuICAgIHRoaXMua29saUFkZXQgPSBudWxsO1xyXG4gICAgdGhpcy50b3BsYW1NaWt0YXIgPSAwO1xyXG4gICAgdGhpcy5mb2N1c09uSXNFbXJpTm8oKTtcclxuICB9XHJcblxyXG4gIGdldCBpc1NhdmVCdXR0b25EaXNhYmxlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhdGhpcy5pc0VtcmlObyB8fCBcclxuICAgICAgICAgICAhdGhpcy53b3JrT3JkZXJJbmZvIHx8IFxyXG4gICAgICAgICAgIHRoaXMudG9wbGFtTWlrdGFyIDw9IDAgfHxcclxuICAgICAgICAgICAodGhpcy5wYWxldFRpcGkgPT09ICdLSVNNSScgJiYgKCF0aGlzLmtvbGlBZGV0IHx8IHRoaXMua29saUFkZXQgPD0gMCkpO1xyXG4gIH1cclxuXHJcbiAgZm9jdXNPbklzRW1yaU5vKCkge1xyXG4gICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5ubWJCb3hJc0VtcmlObz8uaW5zdGFuY2UuZm9jdXMoKTtcclxuICAgICAgfSwgMCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG59XHJcbiIsIjxhYnAtcGFnZSBbYnJlYWRjcnVtYl09XCJmYWxzZVwiPlxyXG4gIDxhYnAtcGFnZS10b29sYmFyLWNvbnRhaW5lciBjbGFzcz1cImNvbFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICA8aDMgY2xhc3M9XCJwYWdlLXRpdGxlXCI+XHJcbiAgICAgICAgw5xyZXRpbWRlbiBHaXJpxZ9cclxuICAgICAgPC9oMz5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJvdyB0ZXh0LWxnLWVuZCBwdC0yXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNlwiPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXN1Y2Nlc3MgYnRuLXNtXCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJzYXZlKClcIiBbZGlzYWJsZWRdPVwiaXNTYXZlQnV0dG9uRGlzYWJsZWRcIj5cclxuICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtY2hlY2sgbWUtMVwiPjwvaT5cclxuICAgICAgICAgIMOccmV0aW1kZW4gR2lyacWfIFlhcFxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbC02XCI+XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4td2FybmluZyBidG4tc21cIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImNsZWFyQWxsKClcIj5cclxuICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtYnJvb20gbWUtMVwiPjwvaT5cclxuICAgICAgICAgIFRlbWl6bGVcclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2FicC1wYWdlLXRvb2xiYXItY29udGFpbmVyPlxyXG4gIFxyXG4gIDxkaXYgY2xhc3M9XCJjYXJkIG10LTJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIiBzdHlsZT1cImhlaWdodDogY2FsYygxMDB2aCAtIDI0MXB4KTsgb3ZlcmZsb3c6IGF1dG87XCI+XHJcbiAgICAgIDwhLS0gV29yayBPcmRlciBJbnB1dCAtLT5cclxuICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7XCI+XHJcbiAgICAgICAgPGR4LW51bWJlci1ib3ggI2lzRW1yaU5vUmVmIFxyXG4gICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWUtMVwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6MTAwJTtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPVwixLDFnyBFbXJpIE5vXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbKHZhbHVlKV09XCJpc0VtcmlOb1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgKG9uQ2hhbmdlKT1cImdldFByb2R1Y3Rpb25PcmRlcigpXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgKG9uRW50ZXJLZXkpPVwiZ2V0UHJvZHVjdGlvbk9yZGVyKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc1dvcmtPcmRlckxvYWRlZFwiPlxyXG4gICAgICAgIDwvZHgtbnVtYmVyLWJveD5cclxuICAgICAgICA8ZHgtYnV0dG9uIHN0eWxlPVwibWFyZ2luLXRvcDogNy41cHg7XCIgXHJcbiAgICAgICAgICAgICAgICAgICBpY29uPVwic2VhcmNoXCIgXHJcbiAgICAgICAgICAgICAgICAgICB0eXBlPVwiZGVmYXVsdFwiIFxyXG4gICAgICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwiZ2V0UHJvZHVjdGlvbk9yZGVyKClcIlxyXG4gICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzV29ya09yZGVyTG9hZGVkXCI+XHJcbiAgICAgICAgPC9keC1idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPCEtLSBXb3JrIE9yZGVyIEluZm9ybWF0aW9uIC0tPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibXQtM1wiICpuZ0lmPVwiaXNXb3JrT3JkZXJMb2FkZWQgJiYgd29ya09yZGVySW5mb1wiPlxyXG4gICAgICAgIDwhLS0gUHJvZHVjdCBJbmZvIC0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZHgtdGV4dC1ib3ggXHJcbiAgICAgICAgICAgICAgbGFiZWw9XCLDnHLDvG4gS29kdVwiIFxyXG4gICAgICAgICAgICAgIFsodmFsdWUpXT1cIndvcmtPcmRlckluZm8uaXRlbUNvZGVcIiBcclxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICA8L2R4LXRleHQtYm94PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGR4LXRleHQtYm94IFxyXG4gICAgICAgICAgICAgIGxhYmVsPVwiw5xyw7xuIEFkxLFcIiBcclxuICAgICAgICAgICAgICBbKHZhbHVlKV09XCJ3b3JrT3JkZXJJbmZvLml0ZW1OYW1lXCIgXHJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInRydWVcIj5cclxuICAgICAgICAgICAgPC9keC10ZXh0LWJveD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG10LTJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNFwiPlxyXG4gICAgICAgICAgICA8ZHgtbnVtYmVyLWJveCBcclxuICAgICAgICAgICAgICBsYWJlbD1cIlBsYW5sYW5hbiBNaWt0YXJcIiBcclxuICAgICAgICAgICAgICBbKHZhbHVlKV09XCJ3b3JrT3JkZXJJbmZvLnBsYW5uZWRRdHlcIiBcclxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICA8L2R4LW51bWJlci1ib3g+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNFwiPlxyXG4gICAgICAgICAgICA8ZHgtbnVtYmVyLWJveCBcclxuICAgICAgICAgICAgICBsYWJlbD1cIlRhbWFtbGFuYW4gTWlrdGFyXCIgXHJcbiAgICAgICAgICAgICAgWyh2YWx1ZSldPVwid29ya09yZGVySW5mby5jbXBsdFF0eVwiIFxyXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgIDwvZHgtbnVtYmVyLWJveD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00XCI+XHJcbiAgICAgICAgICAgIDxkeC10ZXh0LWJveCBcclxuICAgICAgICAgICAgICBsYWJlbD1cIkRlcG9cIiBcclxuICAgICAgICAgICAgICBbKHZhbHVlKV09XCJ3b3JrT3JkZXJJbmZvLndhcmVob3VzZVwiIFxyXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgIDwvZHgtdGV4dC1ib3g+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPCEtLSBQYWxsZXQgVHlwZSBTZWxlY3Rpb24gLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBtdC0zXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICAgIDxkeC1yYWRpby1ncm91cCAjcGFsZXRUaXBpUmVmXHJcbiAgICAgICAgICAgICAgW2l0ZW1zXT1cInBhbGV0VGlwbGVyaVwiXHJcbiAgICAgICAgICAgICAgbGF5b3V0PVwiaG9yaXpvbnRhbFwiXHJcbiAgICAgICAgICAgICAgWyh2YWx1ZSldPVwicGFsZXRUaXBpXCJcclxuICAgICAgICAgICAgICAob25WYWx1ZUNoYW5nZWQpPVwib25QYWxldFRpcGlDaGFuZ2UoKVwiPlxyXG4gICAgICAgICAgICA8L2R4LXJhZGlvLWdyb3VwPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDwhLS0gS29saSBDb3VudCBmb3IgS0lTTUkgUGFsbGV0IC0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbXQtMlwiICpuZ0lmPVwicGFsZXRUaXBpID09PSAnS0lTTUknXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGR4LW51bWJlci1ib3ggI2tvbGlBZGV0UmVmXHJcbiAgICAgICAgICAgICAgbGFiZWw9XCJLb2xpIEFkZWRpXCJcclxuICAgICAgICAgICAgICBbKHZhbHVlKV09XCJrb2xpQWRldFwiXHJcbiAgICAgICAgICAgICAgKG9uVmFsdWVDaGFuZ2VkKT1cIm9uS29saUFkZXRDaGFuZ2UoKVwiXHJcbiAgICAgICAgICAgICAgW21pbl09XCIxXCI+XHJcbiAgICAgICAgICAgIDwvZHgtbnVtYmVyLWJveD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8IS0tIENhbGN1bGF0ZWQgVG90YWwgUXVhbnRpdHkgLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBtdC0yXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGR4LW51bWJlci1ib3ggXHJcbiAgICAgICAgICAgICAgbGFiZWw9XCJUb3BsYW0gTWlrdGFyIChBZGV0KVwiXHJcbiAgICAgICAgICAgICAgWyh2YWx1ZSldPVwidG9wbGFtTWlrdGFyXCJcclxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgW3N0eWxpbmdNb2RlXT1cIidmaWxsZWQnXCI+XHJcbiAgICAgICAgICAgIDwvZHgtbnVtYmVyLWJveD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkeC1udW1iZXItYm94IFxyXG4gICAgICAgICAgICAgIGxhYmVsPVwiS29saSDEsMOnaSBBZGV0XCJcclxuICAgICAgICAgICAgICBbKHZhbHVlKV09XCJ3b3JrT3JkZXJJbmZvLnNhbFBhY2tVblwiXHJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInRydWVcIj5cclxuICAgICAgICAgICAgPC9keC1udW1iZXItYm94PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDwhLS0gUXVhbGl0eSBTdGF0dXMgSW5mbyAtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG10LTJcIiAqbmdJZj1cIndvcmtPcmRlckluZm8udV9LYWxpdGVEdXJ1bXVcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFsZXJ0IGFsZXJ0LWluZm9cIiByb2xlPVwiYWxlcnRcIj5cclxuICAgICAgICAgICAgICA8c3Ryb25nPkthbGl0ZSBEdXJ1bXU6PC9zdHJvbmc+IHt7IHdvcmtPcmRlckluZm8udV9LYWxpdGVEdXJ1bXUgfX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9hYnAtcGFnZT5cclxuIl19
202
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LWZpbGxpbmctcmVjZWlwdC1mcm9tLXByb2R1Y3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdXJldGltLXlvbmV0aW1pL3NyYy9saWIvY29tcG9uZW50cy9oaXQtZmlsbGluZy1yZWNlaXB0LWZyb20tcHJvZHVjdGlvbi9oaXQtZmlsbGluZy1yZWNlaXB0LWZyb20tcHJvZHVjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91cmV0aW0teW9uZXRpbWkvc3JjL2xpYi9jb21wb25lbnRzL2hpdC1maWxsaW5nLXJlY2VpcHQtZnJvbS1wcm9kdWN0aW9uL2hpdC1maWxsaW5nLXJlY2VpcHQtZnJvbS1wcm9kdWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7Ozs7OztBQWM3RCxNQUFNLE9BQU8sd0NBQXdDO0lBaUJuRCxZQUNVLE9BQStDLEVBQy9DLFlBQWlDLEVBQ2pDLE1BQWM7UUFGZCxZQUFPLEdBQVAsT0FBTyxDQUF3QztRQUMvQyxpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFDakMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQWR4QixjQUFTLEdBQVksS0FBSyxDQUFDO1FBQzNCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsc0JBQWlCLEdBQVksS0FBSyxDQUFDO1FBQ25DLGtCQUFhLEdBQXdCLElBQUksQ0FBQztRQUUxQyxrQkFBa0I7UUFDbEIsY0FBUyxHQUFXLEtBQUssQ0FBQyxDQUFDLGVBQWU7UUFDMUMsaUJBQVksR0FBRyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNoQyxhQUFRLEdBQVcsSUFBSSxDQUFDO1FBQ3hCLGlCQUFZLEdBQVcsQ0FBQyxDQUFDO0lBTXRCLENBQUM7SUFFSixRQUFR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RyxFQUFFO1lBQ25CLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLGNBQWMsRUFBRSxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDeEMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ1IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOztxSUFsTlUsd0NBQXdDO3lIQUF4Qyx3Q0FBd0MsK1hDZHJELDZvS0ErSUE7MkZEaklhLHdDQUF3QztrQkFMcEQsU0FBUzsrQkFDRSx5Q0FBeUM7b0xBS04sY0FBYztzQkFBMUQsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUNHLGNBQWM7c0JBQTNELFNBQVM7dUJBQUMsY0FBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFDQyxjQUFjO3NCQUExRCxTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFZpZXdDaGlsZCwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IER4TnVtYmVyQm94Q29tcG9uZW50LCBEeFJhZGlvR3JvdXBDb21wb25lbnQgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXInO1xyXG5pbXBvcnQgeyBcclxuICBIaXRGaWxsaW5nUmVjZWlwdEZyb21Qcm9kdWN0aW9uU2VydmljZSxcclxuICBHZXRXb3JrT3JkZXJJbmZvRHRvLFxyXG4gIFdvcmtPcmRlckxpbmVEdG9cclxufSBmcm9tICcuLi8uLi9oaXQtcHJveHkvaGl0LWZpbGxpbmctcmVjZWlwdC1mcm9tLXByb2R1Y3Rpb24vaGl0LWZpbGxpbmctcmVjZWlwdC1mcm9tLXByb2R1Y3Rpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IENvbmZpcm1hdGlvblNlcnZpY2UgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1oaXQtZmlsbGluZy1yZWNlaXB0LWZyb20tcHJvZHVjdGlvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2hpdC1maWxsaW5nLXJlY2VpcHQtZnJvbS1wcm9kdWN0aW9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9oaXQtZmlsbGluZy1yZWNlaXB0LWZyb20tcHJvZHVjdGlvbi5jb21wb25lbnQuY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBIaXRGaWxsaW5nUmVjZWlwdEZyb21Qcm9kdWN0aW9uQ29tcG9uZW50IHtcclxuICBAVmlld0NoaWxkKCdpc0VtcmlOb1JlZicsIHsgc3RhdGljOiBmYWxzZSB9KSBubWJCb3hJc0VtcmlObzogRHhOdW1iZXJCb3hDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgncGFsZXRUaXBpUmVmJywgeyBzdGF0aWM6IGZhbHNlIH0pIHJhZGlvUGFsZXRUaXBpOiBEeFJhZGlvR3JvdXBDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgna29saUFkZXRSZWYnLCB7IHN0YXRpYzogZmFsc2UgfSkgbm1iQm94S29saUFkZXQ6IER4TnVtYmVyQm94Q29tcG9uZW50O1xyXG5cclxuICBpc0VtcmlObzogbnVtYmVyO1xyXG4gIGlzTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGlzU2F2aW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgaXNXb3JrT3JkZXJMb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICB3b3JrT3JkZXJJbmZvOiBHZXRXb3JrT3JkZXJJbmZvRHRvID0gbnVsbDtcclxuICBcclxuICAvLyBQYWxsZXQgY29udHJvbHNcclxuICBwYWxldFRpcGk6IHN0cmluZyA9ICdUQU0nOyAvLyBUQU0gb3IgS0lTTUlcclxuICBwYWxldFRpcGxlcmkgPSBbJ1RBTScsICdLSVNNSSddO1xyXG4gIGtvbGlBZGV0OiBudW1iZXIgPSBudWxsO1xyXG4gIHRvcGxhbU1pa3RhcjogbnVtYmVyID0gMDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHNlcnZpY2U6IEhpdEZpbGxpbmdSZWNlaXB0RnJvbVByb2R1Y3Rpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjb25maXJtYXRpb246IENvbmZpcm1hdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIG5nWm9uZTogTmdab25lXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIC8vIEluaXRpYWxpemVcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuZm9jdXNPbklzRW1yaU5vKCk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBnZXRQcm9kdWN0aW9uT3JkZXIoKSB7XHJcbiAgICBpZiAoIXRoaXMuaXNFbXJpTm8pIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMuaXNXb3JrT3JkZXJMb2FkZWQgPSBmYWxzZTtcclxuXHJcbiAgICB0aGlzLnNlcnZpY2UuZ2V0V29ya09yZGVySW5mbyh0aGlzLmlzRW1yaU5vKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiByZXNwb25zZSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3BvbnNlPy5pc1N1Y2Nlc3NmdWwgJiYgcmVzcG9uc2UuaXRlbXMpIHtcclxuICAgICAgICAgIHRoaXMud29ya09yZGVySW5mbyA9IHJlc3BvbnNlLml0ZW1zO1xyXG4gICAgICAgICAgdGhpcy5pc1dvcmtPcmRlckxvYWRlZCA9IHRydWU7XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIC8vIENhbGN1bGF0ZSBkZWZhdWx0IHZhbHVlcyBmb3IgVEFNIHBhbGxldFxyXG4gICAgICAgICAgdGhpcy5jYWxjdWxhdGVUb3RhbFF1YW50aXR5KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiBlID0+IHtcclxuICAgICAgICB0aGlzLmlzV29ya09yZGVyTG9hZGVkID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmNvbmZpcm1hdGlvbi5zdGF0dXMkLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICBuZXh0OiAoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuY2xlYXJBbGwoKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uUGFsZXRUaXBpQ2hhbmdlKCkge1xyXG4gICAgdGhpcy5jYWxjdWxhdGVUb3RhbFF1YW50aXR5KCk7XHJcbiAgICBcclxuICAgIGlmICh0aGlzLnBhbGV0VGlwaSA9PT0gJ0tJU01JJykge1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLm5tYkJveEtvbGlBZGV0Py5pbnN0YW5jZS5mb2N1cygpO1xyXG4gICAgICB9LCAxMDApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25Lb2xpQWRldENoYW5nZSgpIHtcclxuICAgIHRoaXMuY2FsY3VsYXRlVG90YWxRdWFudGl0eSgpO1xyXG4gIH1cclxuXHJcbiAgY2FsY3VsYXRlVG90YWxRdWFudGl0eSgpIHtcclxuICAgIGlmICghdGhpcy53b3JrT3JkZXJJbmZvKSB7XHJcbiAgICAgIHRoaXMudG9wbGFtTWlrdGFyID0gMDtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHNhbFBhY2tVbiA9IHRoaXMud29ya09yZGVySW5mby5zYWxQYWNrVW4gfHwgMDtcclxuICAgIFxyXG4gICAgaWYgKHRoaXMucGFsZXRUaXBpID09PSAnVEFNJykge1xyXG4gICAgICAvLyBUYW0gUGFsZXQ6IFBhbGxldCBoZWlnaHQgw5cgUGllY2VzIHBlciBib3hcclxuICAgICAgY29uc3QgcGFsZXRZdWtzZWtsaWsgPSB0aGlzLndvcmtPcmRlckluZm8udV9ES3BhbGV0eXVzZWtsaWsgfHwgMDtcclxuICAgICAgdGhpcy50b3BsYW1NaWt0YXIgPSBwYWxldFl1a3Nla2xpayAqIHNhbFBhY2tVbjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIEvEsXNtaSBQYWxldDogS29saSBjb3VudCDDlyBQaWVjZXMgcGVyIGJveFxyXG4gICAgICBjb25zdCBrb2xpQWRldCA9IHRoaXMua29saUFkZXQgfHwgMDtcclxuICAgICAgdGhpcy50b3BsYW1NaWt0YXIgPSBrb2xpQWRldCAqIHNhbFBhY2tVbjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFzeW5jIHNhdmUoKSB7XHJcbiAgICBkZWJ1Z2dlcjtcclxuICAgIGlmICghdGhpcy5pc0VtcmlObyB8fCAhdGhpcy53b3JrT3JkZXJJbmZvIHx8IHRoaXMudG9wbGFtTWlrdGFyIDw9IDAgfHwgdGhpcy5pc1NhdmluZykge1xyXG4gICAgICBpZiAoIXRoaXMuaXNTYXZpbmcpIHtcclxuICAgICAgICB0aGlzLmNvbmZpcm1hdGlvbi53YXJuKCcnLCAnTMO8dGZlbiB0w7xtIGFsYW5sYXLEsSBkb2xkdXJ1biEnLCB7XHJcbiAgICAgICAgICBoaWRlWWVzQnRuOiB0cnVlLFxyXG4gICAgICAgICAgY2FuY2VsVGV4dDogJ0thcGF0JyxcclxuICAgICAgICAgIGRpc21pc3NpYmxlOiBmYWxzZSxcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gQ2hlY2sgaWYgY29tcGxldGVkIHF1YW50aXR5IHdpbGwgZXhjZWVkIHBsYW5uZWQgcXVhbnRpdHlcclxuICAgIGNvbnN0IHJlbWFpbmluZ1F0eSA9IHRoaXMud29ya09yZGVySW5mby5wbGFubmVkUXR5IC0gdGhpcy53b3JrT3JkZXJJbmZvLmNtcGx0UXR5O1xyXG4gICAgaWYgKHRoaXMudG9wbGFtTWlrdGFyID4gcmVtYWluaW5nUXR5KSB7XHJcbiAgICAgIHRoaXMuY29uZmlybWF0aW9uLndhcm4oJycsIGBHaXJpbGVuIG1pa3RhciAoJHt0aGlzLnRvcGxhbU1pa3Rhcn0pIGthbGFuIG1pa3RhcsSxICgke3JlbWFpbmluZ1F0eX0pIGHFn8SxeW9yIWAsIHtcclxuICAgICAgICBoaWRlWWVzQnRuOiB0cnVlLFxyXG4gICAgICAgIGNhbmNlbFRleHQ6ICdLYXBhdCcsXHJcbiAgICAgICAgZGlzbWlzc2libGU6IGZhbHNlLFxyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHNhdmVEYXRhID0ge1xyXG4gICAgICBkb2NFbnRyeTogdGhpcy5pc0VtcmlObyxcclxuICAgICAgcGFsbGV0VHlwZTogdGhpcy5wYWxldFRpcGksXHJcbiAgICAgIGtvbGlDb3VudDogdGhpcy5wYWxldFRpcGkgPT09ICdLSVNNSScgPyB0aGlzLmtvbGlBZGV0IDogbnVsbCxcclxuICAgICAgdG90YWxRdWFudGl0eTogdGhpcy50b3BsYW1NaWt0YXIsXHJcbiAgICAgIHdhcmVob3VzZUNvZGU6IHRoaXMud29ya09yZGVySW5mby53YXJlaG91c2UsXHJcbiAgICAgIGJhdGNoTnVtYmVyOiAnJywgLy8gQmF0Y2ggbnVtYmVyIHdpbGwgYmUgZ2VuZXJhdGVkIGJ5IFNBUFxyXG4gICAgICBjb21wb25lbnRzVG9Db25zdW1lOiB0aGlzLnByZXBhcmVDb21wb25lbnRzVG9Db25zdW1lKClcclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5pc1NhdmluZyA9IHRydWU7XHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLnNlcnZpY2UuY3JlYXRlUmVjZWlwdChzYXZlRGF0YSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogcmVzcG9uc2UgPT4ge1xyXG4gICAgICAgIGlmIChyZXNwb25zZT8uaXNTdWNjZXNzZnVsKSB7XHJcbiAgICAgICAgICB0aGlzLmNvbmZpcm1hdGlvbi5zdWNjZXNzKCcnLCAnw5xyZXRpbWRlbiBnaXJpxZ8gYmHFn2FyxLF5bGEgZ2Vyw6dla2xlxZ90aXJpbGRpIScsIHtcclxuICAgICAgICAgICAgaGlkZVllc0J0bjogdHJ1ZSxcclxuICAgICAgICAgICAgY2FuY2VsVGV4dDogJ0thcGF0JyxcclxuICAgICAgICAgICAgZGlzbWlzc2libGU6IGZhbHNlLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB0aGlzLmNsZWFyQWxsKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuaXNTYXZpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogZSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc1NhdmluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByZXBhcmVDb21wb25lbnRzVG9Db25zdW1lKCk6IGFueVtdIHtcclxuICAgIGlmICghdGhpcy53b3JrT3JkZXJJbmZvIHx8ICF0aGlzLndvcmtPcmRlckluZm8ubGluZXMpIHtcclxuICAgICAgcmV0dXJuIFtdO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGNvbXBvbmVudHMgPSBbXTtcclxuICAgIGNvbnN0IGl0ZW1Db2RlID0gdGhpcy53b3JrT3JkZXJJbmZvLml0ZW1Db2RlO1xyXG5cclxuICAgIC8vIERldGVybWluZSBpZiB0aGlzIGlzIFlNIG9yIDE1MSogcHJvZHVjdFxyXG4gICAgY29uc3QgaXNZTSA9IGl0ZW1Db2RlLnN0YXJ0c1dpdGgoJ1lNJyk7XHJcbiAgICBjb25zdCBpczE1MSA9IGl0ZW1Db2RlLnN0YXJ0c1dpdGgoJzE1MScpO1xyXG5cclxuICAgIC8vIEdldCBjb250cm9sbGVkIGxpbmVzIChZTS8xNTEqIGl0ZW1zIG1hcmtlZCB3aXRoIFVfS29udHJvbD0nRScpXHJcbiAgICBjb25zdCBjb250cm9sbGVkTGluZXMgPSB0aGlzLndvcmtPcmRlckluZm8ubGluZXMuZmlsdGVyKGxpbmUgPT4gXHJcbiAgICAgIGxpbmUuaXNDb250cm9sbGVkICYmIGxpbmUuYmF0Y2hOdW1iZXJcclxuICAgICk7XHJcblxyXG4gICAgLy8gRm9yIFlNLzE1MSogcHJvZHVjdHMsIGNvbnN1bWUgYnkgbG90IGZyb20gY29udHJvbCBzY3JlZW5cclxuICAgIGZvciAoY29uc3QgbGluZSBvZiBjb250cm9sbGVkTGluZXMpIHtcclxuICAgICAgICBjb21wb25lbnRzLnB1c2goe1xyXG4gICAgICAgICAgaXRlbUNvZGU6IGxpbmUuaXRlbUNvZGUsXHJcbiAgICAgICAgICBxdWFudGl0eTogbGluZS5pc3N1ZWRRdHksXHJcbiAgICAgICAgICB3YXJlaG91c2VDb2RlOiBsaW5lLndhcmVob3VzZSxcclxuICAgICAgICAgIGJhdGNoTnVtYmVyOiBsaW5lLmJhdGNoTnVtYmVyLFxyXG4gICAgICAgICAgYmFzZUxpbmU6IGxpbmUubGluZU51bVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIEZvciBvdGhlciBjb21wb25lbnRzLCB1c2UgXCJUZXlpdCBzb25yYXPEsSBvdG9tYXRpayDDp2VrbWVcIiBsb2dpY1xyXG4gICAgLy8gKFRoaXMgd291bGQgYmUgaGFuZGxlZCBieSB0aGUgYmFja2VuZCB3aXRoIEZJRk8gZm9yIGJhdGNoL3NlcmlhbCBpdGVtcylcclxuXHJcbiAgICByZXR1cm4gY29tcG9uZW50cztcclxuICB9XHJcblxyXG4gIGNsZWFyQWxsKCkge1xyXG4gICAgdGhpcy5pc1dvcmtPcmRlckxvYWRlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5pc0VtcmlObyA9IG51bGw7XHJcbiAgICB0aGlzLndvcmtPcmRlckluZm8gPSBudWxsO1xyXG4gICAgdGhpcy5wYWxldFRpcGkgPSAnVEFNJztcclxuICAgIHRoaXMua29saUFkZXQgPSBudWxsO1xyXG4gICAgdGhpcy50b3BsYW1NaWt0YXIgPSAwO1xyXG4gICAgdGhpcy5pc1NhdmluZyA9IGZhbHNlO1xyXG4gICAgdGhpcy5mb2N1c09uSXNFbXJpTm8oKTtcclxuICB9XHJcblxyXG4gIGdldCBpc1NhdmVCdXR0b25EaXNhYmxlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhdGhpcy5pc0VtcmlObyB8fCBcclxuICAgICAgICAgICAhdGhpcy53b3JrT3JkZXJJbmZvIHx8IFxyXG4gICAgICAgICAgIHRoaXMudG9wbGFtTWlrdGFyIDw9IDAgfHxcclxuICAgICAgICAgICAodGhpcy5wYWxldFRpcGkgPT09ICdLSVNNSScgJiYgKCF0aGlzLmtvbGlBZGV0IHx8IHRoaXMua29saUFkZXQgPD0gMCkpIHx8XHJcbiAgICAgICAgICAgdGhpcy5pc1NhdmluZztcclxuICB9XHJcblxyXG4gIGZvY3VzT25Jc0VtcmlObygpIHtcclxuICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMubm1iQm94SXNFbXJpTm8/Lmluc3RhbmNlLmZvY3VzKCk7XHJcbiAgICAgIH0sIDApO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8YWJwLXBhZ2UgW2JyZWFkY3J1bWJdPVwiZmFsc2VcIj5cclxuICA8YWJwLXBhZ2UtdG9vbGJhci1jb250YWluZXIgY2xhc3M9XCJjb2xcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgPGgzIGNsYXNzPVwicGFnZS10aXRsZVwiPlxyXG4gICAgICAgIMOccmV0aW1kZW4gR2lyacWfXHJcbiAgICAgIDwvaDM+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3cgdGV4dC1sZy1lbmQgcHQtMlwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTZcIj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1zdWNjZXNzIGJ0bi1zbVwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwic2F2ZSgpXCIgW2Rpc2FibGVkXT1cImlzU2F2ZUJ1dHRvbkRpc2FibGVkXCI+XHJcbiAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWNoZWNrIG1lLTFcIj48L2k+XHJcbiAgICAgICAgICDDnHJldGltZGVuIEdpcmnFnyBZYXBcclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNlwiPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXdhcm5pbmcgYnRuLXNtXCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJjbGVhckFsbCgpXCI+XHJcbiAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWJyb29tIG1lLTFcIj48L2k+XHJcbiAgICAgICAgICBUZW1pemxlXHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9hYnAtcGFnZS10b29sYmFyLWNvbnRhaW5lcj5cclxuICBcclxuICA8ZGl2IGNsYXNzPVwiY2FyZCBtdC0yXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCIgc3R5bGU9XCJoZWlnaHQ6IGNhbGMoMTAwdmggLSAyNDFweCk7IG92ZXJmbG93OiBhdXRvO1wiPlxyXG4gICAgICA8IS0tIFdvcmsgT3JkZXIgSW5wdXQgLS0+XHJcbiAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyO1wiPlxyXG4gICAgICAgIDxkeC1udW1iZXItYm94ICNpc0VtcmlOb1JlZiBcclxuICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1lLTFcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOjEwMCU7XCJcclxuICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD1cIsSwxZ8gRW1yaSBOb1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgWyh2YWx1ZSldPVwiaXNFbXJpTm9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIChvbkNoYW5nZSk9XCJnZXRQcm9kdWN0aW9uT3JkZXIoKVwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgIChvbkVudGVyS2V5KT1cImdldFByb2R1Y3Rpb25PcmRlcigpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNXb3JrT3JkZXJMb2FkZWRcIj5cclxuICAgICAgICA8L2R4LW51bWJlci1ib3g+XHJcbiAgICAgICAgPGR4LWJ1dHRvbiBzdHlsZT1cIm1hcmdpbi10b3A6IDcuNXB4O1wiIFxyXG4gICAgICAgICAgICAgICAgICAgaWNvbj1cInNlYXJjaFwiIFxyXG4gICAgICAgICAgICAgICAgICAgdHlwZT1cImRlZmF1bHRcIiBcclxuICAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cImdldFByb2R1Y3Rpb25PcmRlcigpXCJcclxuICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc1dvcmtPcmRlckxvYWRlZFwiPlxyXG4gICAgICAgIDwvZHgtYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDwhLS0gV29yayBPcmRlciBJbmZvcm1hdGlvbiAtLT5cclxuICAgICAgPGRpdiBjbGFzcz1cIm10LTNcIiAqbmdJZj1cImlzV29ya09yZGVyTG9hZGVkICYmIHdvcmtPcmRlckluZm9cIj5cclxuICAgICAgICA8IS0tIFByb2R1Y3QgSW5mbyAtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGR4LXRleHQtYm94IFxyXG4gICAgICAgICAgICAgIGxhYmVsPVwiw5xyw7xuIEtvZHVcIiBcclxuICAgICAgICAgICAgICBbKHZhbHVlKV09XCJ3b3JrT3JkZXJJbmZvLml0ZW1Db2RlXCIgXHJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInRydWVcIj5cclxuICAgICAgICAgICAgPC9keC10ZXh0LWJveD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkeC10ZXh0LWJveCBcclxuICAgICAgICAgICAgICBsYWJlbD1cIsOccsO8biBBZMSxXCIgXHJcbiAgICAgICAgICAgICAgWyh2YWx1ZSldPVwid29ya09yZGVySW5mby5pdGVtTmFtZVwiIFxyXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgIDwvZHgtdGV4dC1ib3g+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBtdC0yXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTRcIj5cclxuICAgICAgICAgICAgPGR4LW51bWJlci1ib3ggXHJcbiAgICAgICAgICAgICAgbGFiZWw9XCJQbGFubGFuYW4gTWlrdGFyXCIgXHJcbiAgICAgICAgICAgICAgWyh2YWx1ZSldPVwid29ya09yZGVySW5mby5wbGFubmVkUXR5XCIgXHJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInRydWVcIj5cclxuICAgICAgICAgICAgPC9keC1udW1iZXItYm94PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTRcIj5cclxuICAgICAgICAgICAgPGR4LW51bWJlci1ib3ggXHJcbiAgICAgICAgICAgICAgbGFiZWw9XCJUYW1hbWxhbmFuIE1pa3RhclwiIFxyXG4gICAgICAgICAgICAgIFsodmFsdWUpXT1cIndvcmtPcmRlckluZm8uY21wbHRRdHlcIiBcclxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICA8L2R4LW51bWJlci1ib3g+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNFwiPlxyXG4gICAgICAgICAgICA8ZHgtdGV4dC1ib3ggXHJcbiAgICAgICAgICAgICAgbGFiZWw9XCJEZXBvXCIgXHJcbiAgICAgICAgICAgICAgWyh2YWx1ZSldPVwid29ya09yZGVySW5mby53YXJlaG91c2VcIiBcclxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICA8L2R4LXRleHQtYm94PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDwhLS0gUGFsbGV0IFR5cGUgU2VsZWN0aW9uIC0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbXQtM1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxyXG4gICAgICAgICAgICA8ZHgtcmFkaW8tZ3JvdXAgI3BhbGV0VGlwaVJlZlxyXG4gICAgICAgICAgICAgIFtpdGVtc109XCJwYWxldFRpcGxlcmlcIlxyXG4gICAgICAgICAgICAgIGxheW91dD1cImhvcml6b250YWxcIlxyXG4gICAgICAgICAgICAgIFsodmFsdWUpXT1cInBhbGV0VGlwaVwiXHJcbiAgICAgICAgICAgICAgKG9uVmFsdWVDaGFuZ2VkKT1cIm9uUGFsZXRUaXBpQ2hhbmdlKClcIj5cclxuICAgICAgICAgICAgPC9keC1yYWRpby1ncm91cD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8IS0tIEtvbGkgQ291bnQgZm9yIEtJU01JIFBhbGxldCAtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG10LTJcIiAqbmdJZj1cInBhbGV0VGlwaSA9PT0gJ0tJU01JJ1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkeC1udW1iZXItYm94ICNrb2xpQWRldFJlZlxyXG4gICAgICAgICAgICAgIGxhYmVsPVwiS29saSBBZGVkaVwiXHJcbiAgICAgICAgICAgICAgWyh2YWx1ZSldPVwia29saUFkZXRcIlxyXG4gICAgICAgICAgICAgIChvblZhbHVlQ2hhbmdlZCk9XCJvbktvbGlBZGV0Q2hhbmdlKClcIlxyXG4gICAgICAgICAgICAgIFttaW5dPVwiMVwiPlxyXG4gICAgICAgICAgICA8L2R4LW51bWJlci1ib3g+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPCEtLSBDYWxjdWxhdGVkIFRvdGFsIFF1YW50aXR5IC0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbXQtMlwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxkeC1udW1iZXItYm94IFxyXG4gICAgICAgICAgICAgIGxhYmVsPVwiVG9wbGFtIE1pa3RhciAoQWRldClcIlxyXG4gICAgICAgICAgICAgIFsodmFsdWUpXT1cInRvcGxhbU1pa3RhclwiXHJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgIFtzdHlsaW5nTW9kZV09XCInZmlsbGVkJ1wiPlxyXG4gICAgICAgICAgICA8L2R4LW51bWJlci1ib3g+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8ZHgtbnVtYmVyLWJveCBcclxuICAgICAgICAgICAgICBsYWJlbD1cIktvbGkgxLDDp2kgQWRldFwiXHJcbiAgICAgICAgICAgICAgWyh2YWx1ZSldPVwid29ya09yZGVySW5mby5zYWxQYWNrVW5cIlxyXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgIDwvZHgtbnVtYmVyLWJveD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8IS0tIFF1YWxpdHkgU3RhdHVzIEluZm8gLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBtdC0yXCIgKm5nSWY9XCJ3b3JrT3JkZXJJbmZvLnVfS2FsaXRlRHVydW11XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhbGVydCBhbGVydC1pbmZvXCIgcm9sZT1cImFsZXJ0XCI+XHJcbiAgICAgICAgICAgICAgPHN0cm9uZz5LYWxpdGUgRHVydW11Ojwvc3Ryb25nPiB7eyB3b3JrT3JkZXJJbmZvLnVfS2FsaXRlRHVydW11IH19XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvYWJwLXBhZ2U+XHJcbiJdfQ==
@@ -13,6 +13,14 @@ export class HitBoilerYMProductWasteService {
13
13
  method: 'POST',
14
14
  url: `${this.resourceEndpoint}?docEntry=${input}`,
15
15
  }, { apiName: this.apiName });
16
+ this.finishWorkOrderAndSaveWaste = (input) => this.restService.request({
17
+ method: 'POST',
18
+ url: `${this.resourceEndpoint}/finish-and-save-waste?docEntry=${input}`,
19
+ }, { apiName: this.apiName });
20
+ this.finishWorkOrderWithoutSavingWaste = (input) => this.restService.request({
21
+ method: 'POST',
22
+ url: `${this.resourceEndpoint}/finish-without-saving-waste?docEntry=${input}`,
23
+ }, { apiName: this.apiName });
16
24
  this.resourceEndpoint = '/api/uretim-yonetimi/boiler-ym-product-waste';
17
25
  }
18
26
  }
@@ -24,4 +32,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
24
32
  providedIn: 'root',
25
33
  }]
26
34
  }], ctorParameters: function () { return [{ type: i1.RestService }]; } });
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LWJvaWxlci15bS1wcm9kdWN0LXdhc3RlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91cmV0aW0teW9uZXRpbWkvc3JjL2xpYi9oaXQtcHJveHkvaGl0LWJvaWxlci15bS1wcm9kdWN0LXdhc3RlL2hpdC1ib2lsZXIteW0tcHJvZHVjdC13YXN0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7OztBQVF6QyxNQUFNLE9BQU8sOEJBQThCO0lBSXpDLFlBQTZCLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBSHJELFlBQU8sR0FBRyxnQkFBZ0IsQ0FBQztRQU8zQixRQUFHLEdBQUcsQ0FBQyxXQUFtQixFQUFFLEVBQUUsQ0FDNUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQ3RCO1lBQ0UsTUFBTSxFQUFFLEtBQUs7WUFDYixHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLElBQUksV0FBVyxFQUFFO1NBQy9DLEVBQ0QsRUFBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBQyxDQUN4QixDQUFDO1FBRUosV0FBTSxHQUFHLENBQUMsS0FBYSxFQUFFLEVBQUUsQ0FDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQ3RCO1lBQ0UsTUFBTSxFQUFFLE1BQU07WUFDZCxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLGFBQWEsS0FBSyxFQUFFO1NBQ2xELEVBQ0QsRUFBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBQyxDQUN4QixDQUFDO1FBbkJGLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyw4Q0FBOEMsQ0FBQztJQUN6RSxDQUFDOzsySEFOVSw4QkFBOEI7K0hBQTlCLDhCQUE4QixjQUY3QixNQUFNOzJGQUVQLDhCQUE4QjtrQkFIMUMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1Jlc3RTZXJ2aWNlfSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQge1Jlc3VsdEJhc2V9IGZyb20gJy4uL21vZGVscyc7XHJcbmltcG9ydCB7Qm9pbGVyWU1Qcm9kdWN0V2FzdGVHZXREdG8sIEJvaWxlcllNUHJvZHVjdFdhc3RlUG9zdER0b30gZnJvbSBcIi4vbW9kZWxzXCI7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSGl0Qm9pbGVyWU1Qcm9kdWN0V2FzdGVTZXJ2aWNlIHtcclxuICBhcGlOYW1lID0gJ1VyZXRpbVlvbmV0aW1pJztcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcmVzb3VyY2VFbmRwb2ludDogc3RyaW5nO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHJlc3RTZXJ2aWNlOiBSZXN0U2VydmljZSkge1xyXG4gICAgdGhpcy5yZXNvdXJjZUVuZHBvaW50ID0gJy9hcGkvdXJldGltLXlvbmV0aW1pL2JvaWxlci15bS1wcm9kdWN0LXdhc3RlJztcclxuICB9XHJcblxyXG4gIGdldCA9ICh3b3JrT3JkZXJObzogc3RyaW5nKSA9PlxyXG4gICAgdGhpcy5yZXN0U2VydmljZS5yZXF1ZXN0PGFueSwgUmVzdWx0QmFzZTxCb2lsZXJZTVByb2R1Y3RXYXN0ZUdldER0bz4+KFxyXG4gICAgICB7XHJcbiAgICAgICAgbWV0aG9kOiAnR0VUJyxcclxuICAgICAgICB1cmw6IGAke3RoaXMucmVzb3VyY2VFbmRwb2ludH0vJHt3b3JrT3JkZXJOb31gLFxyXG4gICAgICB9LFxyXG4gICAgICB7YXBpTmFtZTogdGhpcy5hcGlOYW1lfSxcclxuICAgICk7XHJcblxyXG4gIGNyZWF0ZSA9IChpbnB1dDogbnVtYmVyKSA9PlxyXG4gICAgdGhpcy5yZXN0U2VydmljZS5yZXF1ZXN0PEJvaWxlcllNUHJvZHVjdFdhc3RlUG9zdER0bywgUmVzdWx0QmFzZTxCb2lsZXJZTVByb2R1Y3RXYXN0ZVBvc3REdG8+PihcclxuICAgICAge1xyXG4gICAgICAgIG1ldGhvZDogJ1BPU1QnLFxyXG4gICAgICAgIHVybDogYCR7dGhpcy5yZXNvdXJjZUVuZHBvaW50fT9kb2NFbnRyeT0ke2lucHV0fWAsXHJcbiAgICAgIH0sXHJcbiAgICAgIHthcGlOYW1lOiB0aGlzLmFwaU5hbWV9LFxyXG4gICAgKTtcclxufVxyXG4iXX0=
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LWJvaWxlci15bS1wcm9kdWN0LXdhc3RlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91cmV0aW0teW9uZXRpbWkvc3JjL2xpYi9oaXQtcHJveHkvaGl0LWJvaWxlci15bS1wcm9kdWN0LXdhc3RlL2hpdC1ib2lsZXIteW0tcHJvZHVjdC13YXN0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7OztBQVF6QyxNQUFNLE9BQU8sOEJBQThCO0lBSXpDLFlBQTZCLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBSHJELFlBQU8sR0FBRyxnQkFBZ0IsQ0FBQztRQU8zQixRQUFHLEdBQUcsQ0FBQyxXQUFtQixFQUFFLEVBQUUsQ0FDNUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQ3RCO1lBQ0UsTUFBTSxFQUFFLEtBQUs7WUFDYixHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLElBQUksV0FBVyxFQUFFO1NBQy9DLEVBQ0QsRUFBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBQyxDQUN4QixDQUFDO1FBRUosV0FBTSxHQUFHLENBQUMsS0FBYSxFQUFFLEVBQUUsQ0FDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQ3RCO1lBQ0UsTUFBTSxFQUFFLE1BQU07WUFDZCxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLGFBQWEsS0FBSyxFQUFFO1NBQ2xELEVBQ0QsRUFBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBQyxDQUN4QixDQUFDO1FBRUosZ0NBQTJCLEdBQUcsQ0FBQyxLQUFhLEVBQUUsRUFBRSxDQUM5QyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FDdEI7WUFDRSxNQUFNLEVBQUUsTUFBTTtZQUNkLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsbUNBQW1DLEtBQUssRUFBRTtTQUN4RSxFQUNELEVBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUMsQ0FDeEIsQ0FBQztRQUVKLHNDQUFpQyxHQUFHLENBQUMsS0FBYSxFQUFFLEVBQUUsQ0FDcEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQ3RCO1lBQ0UsTUFBTSxFQUFFLE1BQU07WUFDZCxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLHlDQUF5QyxLQUFLLEVBQUU7U0FDOUUsRUFDRCxFQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFDLENBQ3hCLENBQUM7UUFyQ0YsSUFBSSxDQUFDLGdCQUFnQixHQUFHLDhDQUE4QyxDQUFDO0lBQ3pFLENBQUM7OzJIQU5VLDhCQUE4QjsrSEFBOUIsOEJBQThCLGNBRjdCLE1BQU07MkZBRVAsOEJBQThCO2tCQUgxQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7UmVzdFNlcnZpY2V9IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcbmltcG9ydCB7UmVzdWx0QmFzZX0gZnJvbSAnLi4vbW9kZWxzJztcclxuaW1wb3J0IHtCb2lsZXJZTVByb2R1Y3RXYXN0ZUdldER0bywgQm9pbGVyWU1Qcm9kdWN0V2FzdGVQb3N0RHRvfSBmcm9tIFwiLi9tb2RlbHNcIjtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBIaXRCb2lsZXJZTVByb2R1Y3RXYXN0ZVNlcnZpY2Uge1xyXG4gIGFwaU5hbWUgPSAnVXJldGltWW9uZXRpbWknO1xyXG4gIHByb3RlY3RlZCByZWFkb25seSByZXNvdXJjZUVuZHBvaW50OiBzdHJpbmc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcmVzdFNlcnZpY2U6IFJlc3RTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLnJlc291cmNlRW5kcG9pbnQgPSAnL2FwaS91cmV0aW0teW9uZXRpbWkvYm9pbGVyLXltLXByb2R1Y3Qtd2FzdGUnO1xyXG4gIH1cclxuXHJcbiAgZ2V0ID0gKHdvcmtPcmRlck5vOiBzdHJpbmcpID0+XHJcbiAgICB0aGlzLnJlc3RTZXJ2aWNlLnJlcXVlc3Q8YW55LCBSZXN1bHRCYXNlPEJvaWxlcllNUHJvZHVjdFdhc3RlR2V0RHRvPj4oXHJcbiAgICAgIHtcclxuICAgICAgICBtZXRob2Q6ICdHRVQnLFxyXG4gICAgICAgIHVybDogYCR7dGhpcy5yZXNvdXJjZUVuZHBvaW50fS8ke3dvcmtPcmRlck5vfWAsXHJcbiAgICAgIH0sXHJcbiAgICAgIHthcGlOYW1lOiB0aGlzLmFwaU5hbWV9LFxyXG4gICAgKTtcclxuXHJcbiAgY3JlYXRlID0gKGlucHV0OiBudW1iZXIpID0+XHJcbiAgICB0aGlzLnJlc3RTZXJ2aWNlLnJlcXVlc3Q8Qm9pbGVyWU1Qcm9kdWN0V2FzdGVQb3N0RHRvLCBSZXN1bHRCYXNlPEJvaWxlcllNUHJvZHVjdFdhc3RlUG9zdER0bz4+KFxyXG4gICAgICB7XHJcbiAgICAgICAgbWV0aG9kOiAnUE9TVCcsXHJcbiAgICAgICAgdXJsOiBgJHt0aGlzLnJlc291cmNlRW5kcG9pbnR9P2RvY0VudHJ5PSR7aW5wdXR9YCxcclxuICAgICAgfSxcclxuICAgICAge2FwaU5hbWU6IHRoaXMuYXBpTmFtZX0sXHJcbiAgICApO1xyXG5cclxuICBmaW5pc2hXb3JrT3JkZXJBbmRTYXZlV2FzdGUgPSAoaW5wdXQ6IG51bWJlcikgPT5cclxuICAgIHRoaXMucmVzdFNlcnZpY2UucmVxdWVzdDxCb2lsZXJZTVByb2R1Y3RXYXN0ZVBvc3REdG8sIFJlc3VsdEJhc2U8Qm9pbGVyWU1Qcm9kdWN0V2FzdGVQb3N0RHRvPj4oXHJcbiAgICAgIHtcclxuICAgICAgICBtZXRob2Q6ICdQT1NUJyxcclxuICAgICAgICB1cmw6IGAke3RoaXMucmVzb3VyY2VFbmRwb2ludH0vZmluaXNoLWFuZC1zYXZlLXdhc3RlP2RvY0VudHJ5PSR7aW5wdXR9YCxcclxuICAgICAgfSxcclxuICAgICAge2FwaU5hbWU6IHRoaXMuYXBpTmFtZX0sXHJcbiAgICApO1xyXG5cclxuICBmaW5pc2hXb3JrT3JkZXJXaXRob3V0U2F2aW5nV2FzdGUgPSAoaW5wdXQ6IG51bWJlcikgPT5cclxuICAgIHRoaXMucmVzdFNlcnZpY2UucmVxdWVzdDxCb2lsZXJZTVByb2R1Y3RXYXN0ZVBvc3REdG8sIFJlc3VsdEJhc2U8Qm9pbGVyWU1Qcm9kdWN0V2FzdGVQb3N0RHRvPj4oXHJcbiAgICAgIHtcclxuICAgICAgICBtZXRob2Q6ICdQT1NUJyxcclxuICAgICAgICB1cmw6IGAke3RoaXMucmVzb3VyY2VFbmRwb2ludH0vZmluaXNoLXdpdGhvdXQtc2F2aW5nLXdhc3RlP2RvY0VudHJ5PSR7aW5wdXR9YCxcclxuICAgICAgfSxcclxuICAgICAge2FwaU5hbWU6IHRoaXMuYXBpTmFtZX0sXHJcbiAgICApO1xyXG59XHJcbiJdfQ==
@@ -1,3 +1,3 @@
1
1
  export class YmProduct {
2
2
  }
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdXJldGltLXlvbmV0aW1pL3NyYy9saWIvaGl0LXByb3h5L2hpdC1maWxsaW5nLWNvbnRyb2wvbW9kZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXVDQSxNQUFNLE9BQU8sU0FBUztDQU1yQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgR2V0RmlsbGluZ0NvbnRyb2xEdG8ge1xyXG4gIHVfSGF0OiBzdHJpbmc7XHJcbiAgbGluZXM6IEZpbGxpbmdDb250cm9sTGluZVtdO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEZpbGxpbmdDb250cm9sTGluZSB7XHJcbiAgbGluZU51bTogbnVtYmVyO1xyXG4gIGl0ZW1Db2RlOiBzdHJpbmc7XHJcbiAgaXRlbU5hbWU6IHN0cmluZztcclxuICBpc0NvbnRyb2xsZWQ6IGJvb2xlYW47XHJcbiAgYmF0Y2hOdW1iZXI6IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTYXZlRmlsbGluZ0NvbnRyb2xEdG8ge1xyXG4gIHdvcmtPcmRlck5vOiBudW1iZXI7XHJcbiAgbGluZXM6IFNhdmVGaWxsaW5nQ29udHJvbExpbmVbXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTYXZlRmlsbGluZ0NvbnRyb2xMaW5lIHtcclxuICBsaW5lTnVtOiBudW1iZXI7XHJcbiAgaXRlbUNvZGU6IHN0cmluZztcclxuICBpc0NvbnRyb2xsZWQ6IGJvb2xlYW47XHJcbiAgYmF0Y2hOdW1iZXI/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUXVhbGl0eUNoZWNrUmVzdWx0RHRvIHtcclxuICBkaXN0TnVtYmVyOiBzdHJpbmc7XHJcbiAgaXRlbUNvZGU6IHN0cmluZztcclxuICBxdWFudGl0eTogbnVtYmVyO1xyXG4gIG9pZ25Eb2NOdW0/OiBudW1iZXI7XHJcbiAgb2lnbkRvY0RhdGU/OiBzdHJpbmc7XHJcbiAgb3dvckRvY051bT86IG51bWJlcjtcclxuICBvd29ySXRlbUNvZGU6IHN0cmluZztcclxuICBvd29yUGxhbm5lZFF0eT86IG51bWJlcjtcclxuICB1X0thbGl0ZWR1cnVtdTogc3RyaW5nO1xyXG4gIGlzQXBwcm92ZWQ6IGJvb2xlYW47XHJcbiAgZXJyb3JNZXNzYWdlPzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgWW1Qcm9kdWN0IHtcclxuICBpdGVtQ29kZTogc3RyaW5nO1xyXG4gIGJhdGNoUXVhbnRpdHk/OiBudW1iZXI7XHJcbiAgd2FyZWhvdXNlQ29kZTogc3RyaW5nO1xyXG4gIGJhdGNoTnVtYmVyOiBzdHJpbmc7XHJcbiAgbGluZU51bTogbnVtYmVyO1xyXG59XHJcbiJdfQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdXJldGltLXlvbmV0aW1pL3NyYy9saWIvaGl0LXByb3h5L2hpdC1maWxsaW5nLWNvbnRyb2wvbW9kZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXdDQSxNQUFNLE9BQU8sU0FBUztDQU1yQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgR2V0RmlsbGluZ0NvbnRyb2xEdG8ge1xyXG4gIHVfSGF0OiBzdHJpbmc7XHJcbiAgc3RhdHVzPzogc3RyaW5nO1xyXG4gIGxpbmVzOiBGaWxsaW5nQ29udHJvbExpbmVbXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBGaWxsaW5nQ29udHJvbExpbmUge1xyXG4gIGxpbmVOdW06IG51bWJlcjtcclxuICBpdGVtQ29kZTogc3RyaW5nO1xyXG4gIGl0ZW1OYW1lOiBzdHJpbmc7XHJcbiAgaXNDb250cm9sbGVkOiBib29sZWFuO1xyXG4gIGJhdGNoTnVtYmVyOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2F2ZUZpbGxpbmdDb250cm9sRHRvIHtcclxuICB3b3JrT3JkZXJObzogbnVtYmVyO1xyXG4gIGxpbmVzOiBTYXZlRmlsbGluZ0NvbnRyb2xMaW5lW107XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2F2ZUZpbGxpbmdDb250cm9sTGluZSB7XHJcbiAgbGluZU51bTogbnVtYmVyO1xyXG4gIGl0ZW1Db2RlOiBzdHJpbmc7XHJcbiAgaXNDb250cm9sbGVkOiBib29sZWFuO1xyXG4gIGJhdGNoTnVtYmVyPzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFF1YWxpdHlDaGVja1Jlc3VsdER0byB7XHJcbiAgZGlzdE51bWJlcjogc3RyaW5nO1xyXG4gIGl0ZW1Db2RlOiBzdHJpbmc7XHJcbiAgcXVhbnRpdHk6IG51bWJlcjtcclxuICBvaWduRG9jTnVtPzogbnVtYmVyO1xyXG4gIG9pZ25Eb2NEYXRlPzogc3RyaW5nO1xyXG4gIG93b3JEb2NOdW0/OiBudW1iZXI7XHJcbiAgb3dvckl0ZW1Db2RlOiBzdHJpbmc7XHJcbiAgb3dvclBsYW5uZWRRdHk/OiBudW1iZXI7XHJcbiAgdV9LYWxpdGVkdXJ1bXU6IHN0cmluZztcclxuICBpc0FwcHJvdmVkOiBib29sZWFuO1xyXG4gIGVycm9yTWVzc2FnZT86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFltUHJvZHVjdCB7XHJcbiAgaXRlbUNvZGU6IHN0cmluZztcclxuICBiYXRjaFF1YW50aXR5PzogbnVtYmVyO1xyXG4gIHdhcmVob3VzZUNvZGU6IHN0cmluZztcclxuICBiYXRjaE51bWJlcjogc3RyaW5nO1xyXG4gIGxpbmVOdW06IG51bWJlcjtcclxufVxyXG4iXX0=