igniteui-angular 15.0.16 → 15.0.17

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.
@@ -20,12 +20,12 @@ export class WorksheetDataDictionary {
20
20
  get columnWidths() {
21
21
  return this._columnWidths;
22
22
  }
23
- saveValue(value, isHeader) {
23
+ saveValue(value, isHeader, shouldSanitizeValue = true) {
24
24
  let sanitizedValue = '';
25
25
  const isDate = value instanceof Date;
26
26
  const isSavedAsString = isHeader || (typeof value !== 'number' && value !== Number(value) && !Number.isFinite(value) && !isDate);
27
27
  if (isSavedAsString) {
28
- sanitizedValue = this.sanitizeValue(value);
28
+ sanitizedValue = shouldSanitizeValue ? ExportUtilities.sanitizeValue(value) : value;
29
29
  if (this._dictionary[sanitizedValue] === undefined) {
30
30
  this._dictionary[sanitizedValue] = this._counter++;
31
31
  this.dirtyKeyCollections();
@@ -41,7 +41,7 @@ export class WorksheetDataDictionary {
41
41
  return isSavedAsString ? this.getSanitizedValue(sanitizedValue) : -1;
42
42
  }
43
43
  getValue(value) {
44
- return this.getSanitizedValue(this.sanitizeValue(value));
44
+ return this.getSanitizedValue(ExportUtilities.sanitizeValue(value));
45
45
  }
46
46
  getSanitizedValue(sanitizedValue) {
47
47
  return this._dictionary[sanitizedValue];
@@ -69,23 +69,10 @@ export class WorksheetDataDictionary {
69
69
  }
70
70
  return this._context;
71
71
  }
72
- sanitizeValue(value) {
73
- if (ExportUtilities.hasValue(value) === false) {
74
- return '';
75
- }
76
- else {
77
- const stringValue = String(value);
78
- return stringValue.replace(/&/g, '&')
79
- .replace(/</g, '&lt;')
80
- .replace(/>/g, '&gt;')
81
- .replace(/"/g, '&quot;')
82
- .replace(/'/g, '&apos;');
83
- }
84
- }
85
72
  dirtyKeyCollections() {
86
73
  this._keysAreValid = false;
87
74
  }
88
75
  }
89
76
  WorksheetDataDictionary.DEFAULT_FONT = '11pt Calibri';
90
77
  WorksheetDataDictionary.TEXT_PADDING = 5;
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NoZWV0LWRhdGEtZGljdGlvbmFyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9zZXJ2aWNlcy9leGNlbC93b3Jrc2hlZXQtZGF0YS1kaWN0aW9uYXJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUV0RSxjQUFjO0FBQ2QsTUFBTSxPQUFPLHVCQUF1QjtJQW1CaEMsWUFBWSxXQUFtQixFQUFFLFdBQW1CLEVBQUUsZ0JBQTBCO1FBZnpFLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBZXpCLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7UUFDbEIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFFM0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLEtBQUssQ0FBUyxXQUFXLENBQUMsQ0FBQztRQUVwRCxJQUFJLFdBQVcsRUFBRTtZQUNiLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQ3hDO2FBQU07WUFDSCxJQUFJLENBQUMsYUFBYSxHQUFHLGdCQUFnQixDQUFDO1NBQ3pDO1FBRUQsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQVcsWUFBWTtRQUNuQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDOUIsQ0FBQztJQUVNLFNBQVMsQ0FBQyxLQUFVLEVBQUUsUUFBaUI7UUFDMUMsSUFBSSxjQUFjLEdBQUcsRUFBRSxDQUFDO1FBQ3hCLE1BQU0sTUFBTSxHQUFHLEtBQUssWUFBWSxJQUFJLENBQUM7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QUFJLEVBQUUsT0FBTyxDQUFDO2lCQUN4QixPQUFPLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQztpQkFDckIsT0FBTyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUM7aUJBQ3JCLE9BQU8sQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDO2lCQUN2QixPQUFPLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1NBQzVDO0lBQ0wsQ0FBQztJQUVPLG1CQUFtQjtRQUN2QixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztJQUMvQixDQUFDOztBQWxIYyxvQ0FBWSxHQUFHLGNBQWMsQ0FBQztBQUM5QixvQ0FBWSxHQUFHLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV4cG9ydFV0aWxpdGllcyB9IGZyb20gJy4uL2V4cG9ydGVyLWNvbW1vbi9leHBvcnQtdXRpbGl0aWVzJztcblxuLyoqIEBoaWRkZW4gKi9cbmV4cG9ydCBjbGFzcyBXb3Jrc2hlZXREYXRhRGljdGlvbmFyeSB7XG4gICAgcHJpdmF0ZSBzdGF0aWMgREVGQVVMVF9GT05UID0gJzExcHQgQ2FsaWJyaSc7XG4gICAgcHJpdmF0ZSBzdGF0aWMgVEVYVF9QQURESU5HID0gNTtcblxuICAgIHB1YmxpYyBoYXNOdW1iZXJWYWx1ZXMgPSBmYWxzZTtcbiAgICBwdWJsaWMgaGFzRGF0ZVZhbHVlcyA9IGZhbHNlO1xuXG4gICAgcHVibGljIHN0cmluZ3NDb3VudDogbnVtYmVyO1xuXG4gICAgcHJpdmF0ZSBfZGljdGlvbmFyeTogYW55O1xuICAgIHByaXZhdGUgX3dpZHRoc0RpY3Rpb25hcnk6IGFueTtcblxuICAgIHByaXZhdGUgX2tleXM6IHN0cmluZ1tdO1xuICAgIHByaXZhdGUgX2tleXNBcmVWYWxpZDogYm9vbGVhbjtcblxuICAgIHByaXZhdGUgX2NvdW50ZXI6IG51bWJlcjtcbiAgICBwcml2YXRlIF9jb2x1bW5XaWR0aHM6IG51bWJlcltdO1xuICAgIHByaXZhdGUgX2NvbnRleHQ6IGFueTtcblxuICAgIGNvbnN0cnVjdG9yKGNvbHVtbkNvdW50OiBudW1iZXIsIGNvbHVtbldpZHRoOiBudW1iZXIsIGNvbHVtbldpZHRoc0xpc3Q6IG51bWJlcltdKSB7XG4gICAgICAgIHRoaXMuX2RpY3Rpb25hcnkgPSB7fTtcbiAgICAgICAgdGhpcy5fd2lkdGhzRGljdGlvbmFyeSA9IHt9O1xuICAgICAgICB0aGlzLl9jb3VudGVyID0gMDtcbiAgICAgICAgdGhpcy5kaXJ0eUtleUNvbGxlY3Rpb25zKCk7XG5cbiAgICAgICAgdGhpcy5fY29sdW1uV2lkdGhzID0gbmV3IEFycmF5PG51bWJlcj4oY29sdW1uQ291bnQpO1xuXG4gICAgICAgIGlmIChjb2x1bW5XaWR0aCkge1xuICAgICAgICAgICAgdGhpcy5fY29sdW1uV2lkdGhzLmZpbGwoY29sdW1uV2lkdGgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fY29sdW1uV2lkdGhzID0gY29sdW1uV2lkdGhzTGlzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc3RyaW5nc0NvdW50ID0gMDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGNvbHVtbldpZHRocygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbHVtbldpZHRocztcbiAgICB9XG5cbiAgICBwdWJsaWMgc2F2ZVZhbHVlKHZhbHVlOiBhbnksIGlzSGVhZGVyOiBib29sZWFuKTogbnVtYmVyIHtcbiAgICAgICAgbGV0IHNhbml0aXplZFZhbHVlID0gJyc7XG4gICAgICAgIGNvbnN0IGlzRGF0ZSA9IHZhbHVlIGluc3RhbmNlb2YgRGF0ZTtcbiAgICAgICAgY29uc3QgaXNTYXZlZEFzU3RyaW5nID0gaXNIZWFkZXIgfHwgKHR5cGVvZiB2YWx1ZSAhPT0gJ251bWJlcicgJiYgdmFsdWUgIT09IE51bWJlcih2YWx1ZSkgJiYgIU51bWJlci5pc0Zpbml0ZSh2YWx1ZSkgJiYgIWlzRGF0ZSk7XG5cbiAgICAgICAgaWYgKGlzU2F2ZWRBc1N0cmluZykge1xuICAgICAgICAgICAgc2FuaXRpemVkVmFsdWUgPSB0aGlzLnNhbml0aXplVmFsdWUodmFsdWUpO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5fZGljdGlvbmFyeVtzYW5pdGl6ZWRWYWx1ZV0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2RpY3Rpb25hcnlbc2FuaXRpemVkVmFsdWVdID0gdGhpcy5fY291bnRlcisrO1xuICAgICAgICAgICAgICAgIHRoaXMuZGlydHlLZXlDb2xsZWN0aW9ucygpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLnN0cmluZ3NDb3VudCArKztcbiAgICAgICAgfSBlbHNlIGlmIChpc0RhdGUpIHtcbiAgICAgICAgICAgIHRoaXMuaGFzRGF0ZVZhbHVlcyA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmhhc051bWJlclZhbHVlcyA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gaXNTYXZlZEFzU3RyaW5nID8gdGhpcy5nZXRTYW5pdGl6ZWRWYWx1ZShzYW5pdGl6ZWRWYWx1ZSkgOiAtMTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0VmFsdWUodmFsdWU6IHN0cmluZyk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFNhbml0aXplZFZhbHVlKHRoaXMuc2FuaXRpemVWYWx1ZSh2YWx1ZSkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRTYW5pdGl6ZWRWYWx1ZShzYW5pdGl6ZWRWYWx1ZTogc3RyaW5nKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RpY3Rpb25hcnlbc2FuaXRpemVkVmFsdWVdO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRLZXlzKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgaWYgKCF0aGlzLl9rZXlzQXJlVmFsaWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2tleXMgPSBPYmplY3Qua2V5cyh0aGlzLl9kaWN0aW9uYXJ5KTtcbiAgICAgICAgICAgIHRoaXMuX2tleXNBcmVWYWxpZCA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5fa2V5cztcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFRleHRXaWR0aCh2YWx1ZTogYW55KTogbnVtYmVyIHtcbiAgICAgICAgaWYgKHRoaXMuX3dpZHRoc0RpY3Rpb25hcnlbdmFsdWVdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKTtcbiAgICAgICAgICAgIGNvbnN0IG1ldHJpY3MgPSBjb250ZXh0Lm1lYXN1cmVUZXh0KHZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuX3dpZHRoc0RpY3Rpb25hcnlbdmFsdWVdID0gbWV0cmljcy53aWR0aCArIFdvcmtzaGVldERhdGFEaWN0aW9uYXJ5LlRFWFRfUEFERElORztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLl93aWR0aHNEaWN0aW9uYXJ5W3ZhbHVlXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldENvbnRleHQoKTogYW55IHtcbiAgICAgICAgaWYgKCF0aGlzLl9jb250ZXh0KSB7XG4gICAgICAgICAgICBjb25zdCBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTtcbiAgICAgICAgICAgIHRoaXMuX2NvbnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTtcbiAgICAgICAgICAgIHRoaXMuX2NvbnRleHQuZm9udCA9IFdvcmtzaGVldERhdGFEaWN0aW9uYXJ5LkRFRkFVTFRfRk9OVDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLl9jb250ZXh0O1xuICAgIH1cblxuICAgIHByaXZhdGUgc2FuaXRpemVWYWx1ZSh2YWx1ZTogYW55KTogc3RyaW5nIHtcbiAgICAgICAgaWYgKEV4cG9ydFV0aWxpdGllcy5oYXNWYWx1ZSh2YWx1ZSkgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBzdHJpbmdWYWx1ZSA9IFN0cmluZyh2YWx1ZSk7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nVmFsdWUucmVwbGFjZSgvJi9nLCAnJmFtcDsnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKC88L2csICcmbHQ7JylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAucmVwbGFjZSgvPi9nLCAnJmd0OycpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoL1wiL2csICcmcXVvdDsnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKC8nL2csICcmYXBvczsnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZGlydHlLZXlDb2xsZWN0aW9ucygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fa2V5c0FyZVZhbGlkID0gZmFsc2U7XG4gICAgfVxufVxuIl19
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NoZWV0LWRhdGEtZGljdGlvbmFyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9zZXJ2aWNlcy9leGNlbC93b3Jrc2hlZXQtZGF0YS1kaWN0aW9uYXJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUV0RSxjQUFjO0FBQ2QsTUFBTSxPQUFPLHVCQUF1QjtJQW1CaEMsWUFBWSxXQUFtQixFQUFFLFdBQW1CLEVBQUUsZ0JBQTBCO1FBZnpFLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBZXpCLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7UUFDbEIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFFM0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLEtBQUssQ0FBUyxXQUFXLENBQUMsQ0FBQztRQUVwRCxJQUFJLFdBQVcsRUFBRTtZQUNiLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQ3hDO2FBQU07WUFDSCxJQUFJLENBQUMsYUFBYSxHQUFHLGdCQUFnQixDQUFDO1NBQ3pDO1FBRUQsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQVcsWUFBWTtRQUNuQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDOUIsQ0FBQztJQUVNLFNBQVMsQ0FBQyxLQUFVLEVBQUUsUUFBaUIsRUFBRSxzQkFBK0IsSUFBSTtRQUMvRSxJQUFJLGNBQWMsR0FBRyxFQUFFLENBQUM7UUFDeEIsTUFBTSxNQUFNLEdBQUcsS0FB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bnRlbnQiOlsiaW1wb3J0IHsgRXhwb3J0VXRpbGl0aWVzIH0gZnJvbSAnLi4vZXhwb3J0ZXItY29tbW9uL2V4cG9ydC11dGlsaXRpZXMnO1xuXG4vKiogQGhpZGRlbiAqL1xuZXhwb3J0IGNsYXNzIFdvcmtzaGVldERhdGFEaWN0aW9uYXJ5IHtcbiAgICBwcml2YXRlIHN0YXRpYyBERUZBVUxUX0ZPTlQgPSAnMTFwdCBDYWxpYnJpJztcbiAgICBwcml2YXRlIHN0YXRpYyBURVhUX1BBRERJTkcgPSA1O1xuXG4gICAgcHVibGljIGhhc051bWJlclZhbHVlcyA9IGZhbHNlO1xuICAgIHB1YmxpYyBoYXNEYXRlVmFsdWVzID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgc3RyaW5nc0NvdW50OiBudW1iZXI7XG5cbiAgICBwcml2YXRlIF9kaWN0aW9uYXJ5OiBhbnk7XG4gICAgcHJpdmF0ZSBfd2lkdGhzRGljdGlvbmFyeTogYW55O1xuXG4gICAgcHJpdmF0ZSBfa2V5czogc3RyaW5nW107XG4gICAgcHJpdmF0ZSBfa2V5c0FyZVZhbGlkOiBib29sZWFuO1xuXG4gICAgcHJpdmF0ZSBfY291bnRlcjogbnVtYmVyO1xuICAgIHByaXZhdGUgX2NvbHVtbldpZHRoczogbnVtYmVyW107XG4gICAgcHJpdmF0ZSBfY29udGV4dDogYW55O1xuXG4gICAgY29uc3RydWN0b3IoY29sdW1uQ291bnQ6IG51bWJlciwgY29sdW1uV2lkdGg6IG51bWJlciwgY29sdW1uV2lkdGhzTGlzdDogbnVtYmVyW10pIHtcbiAgICAgICAgdGhpcy5fZGljdGlvbmFyeSA9IHt9O1xuICAgICAgICB0aGlzLl93aWR0aHNEaWN0aW9uYXJ5ID0ge307XG4gICAgICAgIHRoaXMuX2NvdW50ZXIgPSAwO1xuICAgICAgICB0aGlzLmRpcnR5S2V5Q29sbGVjdGlvbnMoKTtcblxuICAgICAgICB0aGlzLl9jb2x1bW5XaWR0aHMgPSBuZXcgQXJyYXk8bnVtYmVyPihjb2x1bW5Db3VudCk7XG5cbiAgICAgICAgaWYgKGNvbHVtbldpZHRoKSB7XG4gICAgICAgICAgICB0aGlzLl9jb2x1bW5XaWR0aHMuZmlsbChjb2x1bW5XaWR0aCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9jb2x1bW5XaWR0aHMgPSBjb2x1bW5XaWR0aHNMaXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zdHJpbmdzQ291bnQgPSAwO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgY29sdW1uV2lkdGhzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29sdW1uV2lkdGhzO1xuICAgIH1cblxuICAgIHB1YmxpYyBzYXZlVmFsdWUodmFsdWU6IGFueSwgaXNIZWFkZXI6IGJvb2xlYW4sIHNob3VsZFNhbml0aXplVmFsdWU6IGJvb2xlYW4gPSB0cnVlKTogbnVtYmVyIHtcbiAgICAgICAgbGV0IHNhbml0aXplZFZhbHVlID0gJyc7XG4gICAgICAgIGNvbnN0IGlzRGF0ZSA9IHZhbHVlIGluc3RhbmNlb2YgRGF0ZTtcbiAgICAgICAgY29uc3QgaXNTYXZlZEFzU3RyaW5nID0gaXNIZWFkZXIgfHwgKHR5cGVvZiB2YWx1ZSAhPT0gJ251bWJlcicgJiYgdmFsdWUgIT09IE51bWJlcih2YWx1ZSkgJiYgIU51bWJlci5pc0Zpbml0ZSh2YWx1ZSkgJiYgIWlzRGF0ZSk7XG5cbiAgICAgICAgaWYgKGlzU2F2ZWRBc1N0cmluZykge1xuICAgICAgICAgICAgc2FuaXRpemVkVmFsdWUgPSBzaG91bGRTYW5pdGl6ZVZhbHVlID8gRXhwb3J0VXRpbGl0aWVzLnNhbml0aXplVmFsdWUodmFsdWUpIDogdmFsdWU7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLl9kaWN0aW9uYXJ5W3Nhbml0aXplZFZhbHVlXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZGljdGlvbmFyeVtzYW5pdGl6ZWRWYWx1ZV0gPSB0aGlzLl9jb3VudGVyKys7XG4gICAgICAgICAgICAgICAgdGhpcy5kaXJ0eUtleUNvbGxlY3Rpb25zKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuc3RyaW5nc0NvdW50ICsrO1xuICAgICAgICB9IGVsc2UgaWYgKGlzRGF0ZSkge1xuICAgICAgICAgICAgdGhpcy5oYXNEYXRlVmFsdWVzID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaGFzTnVtYmVyVmFsdWVzID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBpc1NhdmVkQXNTdHJpbmcgPyB0aGlzLmdldFNhbml0aXplZFZhbHVlKHNhbml0aXplZFZhbHVlKSA6IC0xO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRWYWx1ZSh2YWx1ZTogc3RyaW5nKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U2FuaXRpemVkVmFsdWUoRXhwb3J0VXRpbGl0aWVzLnNhbml0aXplVmFsdWUodmFsdWUpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0U2FuaXRpemVkVmFsdWUoc2FuaXRpemVkVmFsdWU6IHN0cmluZyk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kaWN0aW9uYXJ5W3Nhbml0aXplZFZhbHVlXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0S2V5cygpOiBzdHJpbmdbXSB7XG4gICAgICAgIGlmICghdGhpcy5fa2V5c0FyZVZhbGlkKSB7XG4gICAgICAgICAgICB0aGlzLl9rZXlzID0gT2JqZWN0LmtleXModGhpcy5fZGljdGlvbmFyeSk7XG4gICAgICAgICAgICB0aGlzLl9rZXlzQXJlVmFsaWQgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuX2tleXM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRUZXh0V2lkdGgodmFsdWU6IGFueSk6IG51bWJlciB7XG4gICAgICAgIGlmICh0aGlzLl93aWR0aHNEaWN0aW9uYXJ5W3ZhbHVlXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCk7XG4gICAgICAgICAgICBjb25zdCBtZXRyaWNzID0gY29udGV4dC5tZWFzdXJlVGV4dCh2YWx1ZSk7XG4gICAgICAgICAgICB0aGlzLl93aWR0aHNEaWN0aW9uYXJ5W3ZhbHVlXSA9IG1ldHJpY3Mud2lkdGggKyBXb3Jrc2hlZXREYXRhRGljdGlvbmFyeS5URVhUX1BBRERJTkc7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5fd2lkdGhzRGljdGlvbmFyeVt2YWx1ZV07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRDb250ZXh0KCk6IGFueSB7XG4gICAgICAgIGlmICghdGhpcy5fY29udGV4dCkge1xuICAgICAgICAgICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7XG4gICAgICAgICAgICB0aGlzLl9jb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7XG4gICAgICAgICAgICB0aGlzLl9jb250ZXh0LmZvbnQgPSBXb3Jrc2hlZXREYXRhRGljdGlvbmFyeS5ERUZBVUxUX0ZPTlQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5fY29udGV4dDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRpcnR5S2V5Q29sbGVjdGlvbnMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2tleXNBcmVWYWxpZCA9IGZhbHNlO1xuICAgIH1cbn1cbiJdfQ==