ms-data-grid 0.0.86 → 0.0.90

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.
@@ -9,7 +9,7 @@ export class CommonService {
9
9
  }
10
10
  gethasVisibleColumns(columns) {
11
11
  const checkVisible = (columns) => {
12
- return columns.some((col) => {
12
+ return columns?.some((col) => {
13
13
  if (col?.is_visible)
14
14
  return true;
15
15
  if (col?.children?.length) {
@@ -22,7 +22,7 @@ export class CommonService {
22
22
  }
23
23
  gethasInVisibleColumns(columns) {
24
24
  const checkVisible = (columns) => {
25
- return columns.some((col) => {
25
+ return columns?.some((col) => {
26
26
  if (!col?.is_visible)
27
27
  return true;
28
28
  if (col?.children?.length) {
@@ -35,7 +35,7 @@ export class CommonService {
35
35
  }
36
36
  getTotalColumnsLength(columns) {
37
37
  let count = 0;
38
- columns.forEach(col => {
38
+ columns?.forEach(col => {
39
39
  if (col.children && Array.isArray(col.children) && col.children.length) {
40
40
  count += col.children.length; // count children instead of parent
41
41
  }
@@ -47,7 +47,7 @@ export class CommonService {
47
47
  }
48
48
  gethasRightPinnedColumns(columns) {
49
49
  const checkPinnedRight = (columns) => {
50
- return columns.some((col) => {
50
+ return columns?.some((col) => {
51
51
  if (col?.pinned === 'right' && col?.is_visible)
52
52
  return true;
53
53
  if (col?.children?.length) {
@@ -60,7 +60,7 @@ export class CommonService {
60
60
  }
61
61
  gethasLeftPinnedColumns(columns) {
62
62
  const checkPinnedRight = (columns) => {
63
- return columns.some((col) => {
63
+ return columns?.some((col) => {
64
64
  if (col?.pinned === 'left' && col?.is_visible)
65
65
  return true;
66
66
  if (col?.children?.length) {
@@ -74,7 +74,7 @@ export class CommonService {
74
74
  getExpandedRowCount(data) {
75
75
  let groupCount = 0;
76
76
  let rowCount = 0;
77
- data.forEach(group => {
77
+ data?.forEach(group => {
78
78
  if (group?.isGroup) {
79
79
  groupCount++;
80
80
  if (group?.isExpand && Array.isArray(group?.children)) {
@@ -327,4 +327,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
327
327
  providedIn: 'root',
328
328
  }]
329
329
  }], ctorParameters: function () { return []; } });
330
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhLWdyaWQvc3JjL2xpYi9zZXJ2aWNlcy9jb21tb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBS25ELE1BQU0sT0FBTyxhQUFhO0lBR3hCO1FBRFEsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUc3QixzQkFBaUIsR0FBRyxDQUFDLENBQUM7UUE2TTdCLDBCQUFxQixHQUFVLEVBQUUsQ0FBQztJQS9NbEIsQ0FBQztJQUlqQixvQkFBb0IsQ0FBQyxPQUFjO1FBQ2pDLE1BQU0sWUFBWSxHQUFHLENBQUMsT0FBYyxFQUFXLEVBQUU7WUFDL0MsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQzFCLElBQUksR0FBRyxFQUFFLFVBQVU7b0JBQUUsT0FBTyxJQUFJLENBQUM7Z0JBQ2pDLElBQUksR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUU7b0JBQ3pCLE9BQU8sWUFBWSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztpQkFDbkM7Z0JBQ0QsT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQztRQUNGLE9BQU8sWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxPQUFjO1FBQ25DLE1BQU0sWUFBWSxHQUFHLENBQUMsT0FBYyxFQUFXLEVBQUU7WUFDL0MsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQzFCLElBQUksQ0FBQyxHQUFHLEVBQUUsVUFBVTtvQkFBRSxPQUFPLElBQUksQ0FBQztnQkFDbEMsSUFBSSxHQUFHLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRTtvQkFDekIsT0FBTyxZQUFZLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2lCQUNuQztnQkFDRCxPQUFPLEtBQUssQ0FBQztZQUNmLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDO1FBQ0YsT0FBTyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUdELHFCQUFxQixDQUFDLE9BQWM7UUFDbEMsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBRWQsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNwQixJQUFJLEdBQUcsQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUU7Z0JBQ3RFLEtBQUssSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLG1DQUFtQzthQUNsRTtpQkFBTTtnQkFDTCxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsd0JBQXdCO2FBQ3JDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCx3QkFBd0IsQ0FBQyxPQUFjO1FBQ3JDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxPQUFjLEVBQVcsRUFBRTtZQUNuRCxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDMUIsSUFBSSxHQUFHLEVBQUUsTUFBTSxLQUFLLE9BQU8sSUFBSSxHQUFHLEVBQUUsVUFBVTtvQkFBRSxPQUFPLElBQUksQ0FBQztnQkFDNUQsSUFBSSxHQUFHLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRTtvQkFDekIsT0FBTyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7aUJBQ3ZDO2dCQUNELE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUM7UUFDRixPQUFPLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCx1QkFBdUIsQ0FBQyxPQUFjO1FBQ3BDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxPQUFjLEVBQVcsRUFBRTtZQUNuRCxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDMUIsSUFBSSxHQUFHLEVBQUUsTUFBTSxLQUFLLE1BQU0sSUFBSSxHQUFHLEVBQUUsVUFBVTtvQkFBRSxPQUFPLElBQUksQ0FBQztnQkFDM0QsSUFBSSxHQUFHLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRTtvQkFDekIsT0FBTyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7aUJBQ3ZDO2dCQUNELE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUM7UUFDRixPQUFPLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFHRCxtQkFBbUIsQ0FBQyxJQUFXO1FBQzdCLElBQUksVUFBVSxHQUFHLENBQUMsQ0FBQztRQUNuQixJQUFJLFFBQVEsR0FBRyxDQUFDLENBQUM7UUFFakIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNuQixJQUFJLEtBQUssRUFBRSxPQUFPLEVBQUU7Z0JBQ2xCLFVBQVUsRUFBRSxDQUFDO2dCQUViLElBQUksS0FBSyxFQUFFLFFBQVEsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsRUFBRTtvQkFDckQsS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRTt3QkFDcEMsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFOzRCQUNqQixJQUFJLEtBQUssQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0NBQ25ELFFBQVEsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQzs2QkFDbkM7eUJBQ0Y7NkJBQU07NEJBQ0wsUUFBUSxFQUFFLENBQUM7eUJBQ1o7b0JBQ0gsQ0FBQyxDQUFDLENBQUM7aUJBQ0o7YUFDRjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxVQUFVLEtBQUssQ0FBQyxFQUFFO1lBQ3BCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztTQUNwQjtRQUVELE9BQU8sVUFBVSxHQUFHLFFBQVEsQ0FBQztJQUMvQixDQUFDO0lBR0QscUJBQXFCLENBQUMsT0FBYyxFQUFFLGFBQW9CO1FBQ3hELE1BQU0sTUFBTSxHQUFVLEVBQUUsQ0FBQztRQUV6QixNQUFNLFdBQVcsR0FBRyxDQUFDLEdBQVEsRUFBRSxFQUFFO1lBQy9CLElBQUksR0FBRyxDQUFDLEtBQUssRUFBRSxTQUFTLEtBQUssTUFBTSxFQUFFO2dCQUNuQyxHQUFHLENBQUMsS0FBSyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7Z0JBQzlCLEdBQUcsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO2FBQ25DO1lBQ0QsTUFBTSxhQUFhLEdBQUcsR0FBRyxDQUFDLEtBQUssRUFBRSxXQUFXLElBQUksSUFBSSxJQUFJLEdBQUcsQ0FBQyxLQUFLLEVBQUUsV0FBVyxLQUFLLEVBQUUsSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM3SSxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNsSSxJQUFJLGFBQWEsSUFBSSxNQUFNLEVBQUU7Z0JBQzNCLE1BQU0sQ0FBQyxJQUFJLENBQUM7b0JBQ1YsTUFBTSxFQUFFLEdBQUcsQ0FBQyxNQUFNLElBQUksRUFBRTtvQkFDeEIsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLO29CQUNoQixJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUk7b0JBQ2QsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxVQUFVLElBQUksR0FBRyxDQUFDLElBQUksSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUU7b0JBQzVFLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksVUFBVSxJQUFJLEdBQUcsQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO2lCQUM5RyxDQUFDLENBQUM7YUFDSjtZQUVELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUMxRCxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUNuQztRQUNILENBQUMsQ0FBQztRQUNGLE9BQU8sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFN0IsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxPQUFjLEVBQUUsT0FBYztRQUN4RCxLQUFLLE1BQU0sR0FBRyxJQUFJLE9BQU8sRUFBRTtZQUN6QixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRTtnQkFDZCxHQUFHLENBQUMsS0FBSyxHQUFHO29CQUNWLFdBQVcsRUFBRSxJQUFJO29CQUNqQixZQUFZLEVBQUUsSUFBSTtvQkFDbEIsZUFBZSxFQUFFLEdBQUcsQ0FBQyxJQUFJLEtBQUssTUFBTSxJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU87b0JBQ25GLGdCQUFnQixFQUFFLElBQUk7b0JBQ3RCLFNBQVMsRUFBRSxNQUFNO29CQUNqQixJQUFJLEVBQUUsRUFBRTtpQkFDVCxDQUFDO2FBQ0g7WUFFRCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFeEQsSUFBSSxNQUFNLEVBQUU7Z0JBQ1YsSUFBSSxHQUFHLENBQUMsSUFBSSxLQUFLLFVBQVUsSUFBSSxHQUFHLENBQUMsSUFBSSxJQUFJLE9BQU8sRUFBRTtvQkFDbEQsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7b0JBQ3RDLE1BQU0sY0FBYyxHQUFHLEdBQUcsQ0FBQyxxQkFBcUIsSUFBSSxFQUFFLENBQUM7b0JBRXZELDhDQUE4QztvQkFDOUMsSUFBSSxjQUFjLEdBQWEsRUFBRSxDQUFDO29CQUVsQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLElBQUksY0FBYyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7d0JBQzlELElBQUksT0FBTyxjQUFjLENBQUMsQ0FBQyxDQUFDLEtBQUssUUFBUSxFQUFFOzRCQUN6Qyx3REFBd0Q7NEJBQ3hELGNBQWMsR0FBRyxjQUFjO2lDQUM1QixNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztpQ0FDM0MsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxHQUFHLENBQUMsS0FBSyxJQUFJLEdBQUcsQ0FBQyxLQUFLLElBQUksR0FBRyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQzt5QkFDckU7NkJBQU07NEJBQ0wseUJBQXlCOzRCQUN6QixjQUFjLEdBQUcsY0FBYyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQzt5QkFDMUU7cUJBQ0Y7b0JBRUQseURBQXlEO29CQUN6RCxHQUFHLENBQUMsV0FBVyxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBRTVDLHVCQUF1QjtvQkFDdkIsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsV0FBVyxDQUFDO29CQUM3QixHQUFHLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDO2lCQUVsQztxQkFBTTtvQkFDTCw0Q0FBNEM7b0JBQzVDLEdBQUcsQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFLFdBQVcsSUFBSSxFQUFFLENBQUM7b0JBQ25FLEdBQUcsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7b0JBQ2pDLEdBQUcsQ0FBQyxLQUFLLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxLQUFLLEVBQUUsV0FBVyxJQUFJLElBQUksQ0FBQztvQkFDMUQsR0FBRyxDQUFDLEtBQUssQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLEtBQUssRUFBRSxZQUFZLElBQUksSUFBSSxDQUFDO29CQUM1RCxHQUFHLENBQUMsS0FBSyxDQUFDLGVBQWU7d0JBQ3ZCLE1BQU0sQ0FBQyxLQUFLLEVBQUUsZUFBZTs0QkFDN0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxLQUFLLE1BQU0sSUFBSSxHQUFHLENBQUMsSUFBSSxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztvQkFDdEUsR0FBRyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsS0FBSyxFQUFFLGdCQUFnQixJQUFJLElBQUksQ0FBQztvQkFDcEUsR0FBRyxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDLEtBQUssRUFBRSxTQUFTLElBQUksTUFBTSxDQUFDO2lCQUN6RDthQUNGO2lCQUFNO2dCQUNMLDhCQUE4QjtnQkFDOUIsR0FBRyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7Z0JBQ3ZCLEdBQUcsQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO2dCQUNoQixHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7Z0JBQ3BCLEdBQUcsQ0FBQyxLQUFLLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQzthQUM5QjtZQUVELG1DQUFtQztZQUNuQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDMUQsR0FBRyxDQUFDLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO2FBQ3hFO1NBQ0Y7UUFFRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBUUQsMkJBQTJCLENBQUMsT0FBYztRQUN4QyxNQUFNLGVBQWUsR0FBRyxDQUFDLElBQVcsRUFBUyxFQUFFO1lBQzdDLElBQUksTUFBTSxHQUFVLEVBQUUsQ0FBQztZQUV2QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDcEMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNwQixJQUFJLEdBQUcsQ0FBQyxRQUFRLElBQUksR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO29CQUMzQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7aUJBQ3ZEO2dCQUVELElBQUksR0FBRyxDQUFDLEtBQUssRUFBRTtvQkFDYixNQUFNLGlCQUFpQixHQUNyQixLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztvQkFFN0QsTUFBTSxjQUFjLEdBQ2xCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxXQUFXLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxXQUFXLEtBQUssRUFBRSxDQUFDO3dCQUN2RCxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsWUFBWSxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsWUFBWSxLQUFLLEVBQUUsQ0FBQyxDQUFDO29CQUU1RCxJQUFJLGlCQUFpQixJQUFJLGNBQWMsRUFBRTt3QkFDdkMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztxQkFDbEI7aUJBQ0Y7YUFDRjtZQUNELE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUMsQ0FBQztRQUNGLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxDQUFDLEdBQUcsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDM0QsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUM7SUFDcEMsQ0FBQztJQUlELGVBQWUsQ0FBQyxPQUFZLEVBQUUsUUFBYSxFQUFFLElBQVk7UUFDdkQsUUFBUSxJQUFJLEVBQUU7WUFDWixLQUFLLFFBQVE7Z0JBQ1gsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBRTlDLEtBQUssUUFBUTtnQkFDWCxPQUFPLE1BQU0sQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLEtBQUssTUFBTSxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUUxRCxLQUFLLFVBQVU7Z0JBQ2IsSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLElBQUksT0FBTyxRQUFRLEtBQUssUUFBUSxFQUFFO29CQUMvRCxPQUFPLE9BQU8sRUFBRSxFQUFFLEtBQUssUUFBUSxFQUFFLEVBQUUsSUFBSSxPQUFPLEVBQUUsS0FBSyxLQUFLLFFBQVEsRUFBRSxLQUFLLENBQUM7aUJBQzNFO2dCQUNELE9BQU8sT0FBTyxLQUFLLFFBQVEsQ0FBQztZQUU5QixLQUFLLFNBQVM7Z0JBQ1osT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBRWhELEtBQUssTUFBTTtnQkFDVCxNQUFNLFdBQVcsR0FBRyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDaEQsTUFBTSxZQUFZLEdBQUcsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ2xELE9BQU8sS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUM7b0JBQzlDLENBQUMsQ0FBQyxPQUFPLEtBQUssUUFBUTtvQkFDdEIsQ0FBQyxDQUFDLFdBQVcsS0FBSyxZQUFZLENBQUM7WUFFbkM7Z0JBQ0UsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDL0Q7SUFDSCxDQUFDO0lBR0QsZ0VBQWdFO0lBQ2hFLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxPQUFjO1FBQzlDLEtBQUssTUFBTSxHQUFHLElBQUksT0FBTyxFQUFFO1lBQ3pCLElBQUksR0FBRyxDQUFDLElBQUksS0FBSyxVQUFVLElBQUksR0FBRyxDQUFDLElBQUksSUFBSSxPQUFPLEVBQUU7Z0JBQ2xELE1BQU0sY0FBYyxHQUFHLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQztnQkFDakQsTUFBTSxVQUFVLEdBQUcsR0FBRyxDQUFDLFdBQVcsQ0FBQztnQkFFbkMsSUFDRSxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsSUFBSSxjQUFjLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztvQkFDL0QsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUM7b0JBQ3pCLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUNyQjtvQkFDQSxHQUFHLENBQUMscUJBQXFCLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUNoRCxPQUFPLElBQUksS0FBSyxRQUFRO3dCQUN0QixDQUFDLENBQUMsSUFBSTt3QkFDTixDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUMxQyxDQUFDO2lCQUNIO2FBQ0Y7WUFFRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDMUQsR0FBRyxDQUFDLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDckU7U0FDRjtRQUVELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFHRCxlQUFlLENBQUMsS0FBVSxFQUFFLFlBQXFCO1FBQy9DLE1BQU0sU0FBUyxHQUFHLENBQUMsSUFBVSxFQUFFLEVBQUU7WUFDL0IsTUFBTSxhQUFhLEdBQUcsWUFBWTtnQkFDaEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxZQUFZLENBQUM7Z0JBQ3JELENBQUMsQ0FBQyxZQUFZLENBQUM7WUFDakIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLElBQUksR0FBRyxDQUFDO1FBQzdELENBQUMsQ0FBQztRQUVGLElBQUksS0FBSyxZQUFZLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRTtZQUNwRCxPQUFPLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN6QjtRQUVELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1lBQzdCLElBQUksWUFBWSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBRTlDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDcEQsSUFBSSxVQUFVO2dCQUFFLE9BQU8sU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBRTdDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFFO2dCQUNwQyxPQUFPLFNBQVMsQ0FBQyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO2FBQzFDO1NBQ0Y7UUFHRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFDMUQsT0FBTyxTQUFTLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztTQUNuQztRQUVELElBQUksS0FBSyxFQUFFLElBQUksSUFBSSxLQUFLLEVBQUUsS0FBSyxFQUFFO1lBQy9CLE9BQU8sS0FBSyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsSUFBSSxJQUFJLEdBQUcsQ0FBQztTQUN6QztRQUVELElBQUksS0FBSyxJQUFJLElBQUk7WUFBRSxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV4QyxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFLTyxnQ0FBZ0MsQ0FBQyxZQUFvQjtRQUMzRCxJQUFJLENBQUMsWUFBWTtZQUFFLE9BQU8sWUFBWSxDQUFDO1FBRXZDLE9BQU8sWUFBWTthQUNoQixPQUFPLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQzthQUNwQixPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQzthQUNsQixPQUFPLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQzthQUN4QixPQUFPLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQzthQUNwQixPQUFPLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQzthQUN4QixPQUFPLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQzthQUN0QixPQUFPLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQzthQUNwQixPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQzthQUNsQixPQUFPLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQzthQUN4QixPQUFPLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQzthQUN0QixPQUFPLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQzthQUNwQixPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQzthQUNsQixPQUFPLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQzthQUNwQixPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQzthQUNsQixPQUFPLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQzthQUNwQixPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQzthQUNsQixPQUFPLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQzthQUNwQixPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQzthQUNsQixPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQzthQUNsQixPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFTyxhQUFhLENBQUMsS0FBYTtRQUNqQyxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPLElBQUksQ0FBQztRQUV4QixNQUFNLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0QixNQUFNLEtBQUssR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUIsTUFBTSxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFdkIsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztRQUV4QyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLElBQUk7WUFDakMsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLEtBQUs7WUFDekIsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLEdBQUcsQ0FBQztZQUN2QixDQUFDLENBQUMsSUFBSTtZQUNOLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDWCxDQUFDOytHQTlYVSxhQUFhO21IQUFiLGFBQWEsY0FGWixNQUFNOzs0RkFFUCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQ29tbW9uU2VydmljZSB7XG5cbiAgcHJpdmF0ZSBkYXRlUGlwZSA9IGluamVjdChEYXRlUGlwZSk7IFxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIHB1YmxpYyBtYWluQ29udGFpbmVyTGVmdCA9IDA7XG5cbiAgZ2V0aGFzVmlzaWJsZUNvbHVtbnMoY29sdW1uczogYW55W10pOiBib29sZWFuIHtcbiAgICBjb25zdCBjaGVja1Zpc2libGUgPSAoY29sdW1uczogYW55W10pOiBib29sZWFuID0+IHtcbiAgICAgIHJldHVybiBjb2x1bW5zLnNvbWUoKGNvbCkgPT4ge1xuICAgICAgICBpZiAoY29sPy5pc192aXNpYmxlKSByZXR1cm4gdHJ1ZTtcbiAgICAgICAgaWYgKGNvbD8uY2hpbGRyZW4/Lmxlbmd0aCkge1xuICAgICAgICAgIHJldHVybiBjaGVja1Zpc2libGUoY29sLmNoaWxkcmVuKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9KTtcbiAgICB9O1xuICAgIHJldHVybiBjaGVja1Zpc2libGUoY29sdW1ucyk7XG4gIH1cblxuICBnZXRoYXNJblZpc2libGVDb2x1bW5zKGNvbHVtbnM6IGFueVtdKTogYm9vbGVhbiB7XG4gICAgY29uc3QgY2hlY2tWaXNpYmxlID0gKGNvbHVtbnM6IGFueVtdKTogYm9vbGVhbiA9PiB7XG4gICAgICByZXR1cm4gY29sdW1ucy5zb21lKChjb2wpID0+IHtcbiAgICAgICAgaWYgKCFjb2w/LmlzX3Zpc2libGUpIHJldHVybiB0cnVlO1xuICAgICAgICBpZiAoY29sPy5jaGlsZHJlbj8ubGVuZ3RoKSB7XG4gICAgICAgICAgcmV0dXJuIGNoZWNrVmlzaWJsZShjb2wuY2hpbGRyZW4pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH0pO1xuICAgIH07XG4gICAgcmV0dXJuIGNoZWNrVmlzaWJsZShjb2x1bW5zKTtcbiAgfVxuXG5cbiAgZ2V0VG90YWxDb2x1bW5zTGVuZ3RoKGNvbHVtbnM6IGFueVtdKTogbnVtYmVyIHtcbiAgICBsZXQgY291bnQgPSAwO1xuXG4gICAgY29sdW1ucy5mb3JFYWNoKGNvbCA9PiB7XG4gICAgICBpZiAoY29sLmNoaWxkcmVuICYmIEFycmF5LmlzQXJyYXkoY29sLmNoaWxkcmVuKSAmJiBjb2wuY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICAgIGNvdW50ICs9IGNvbC5jaGlsZHJlbi5sZW5ndGg7IC8vIGNvdW50IGNoaWxkcmVuIGluc3RlYWQgb2YgcGFyZW50XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb3VudCArPSAxOyAvLyBjb3VudCBwYXJlbnQgZGlyZWN0bHlcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBjb3VudDtcbiAgfVxuXG4gIGdldGhhc1JpZ2h0UGlubmVkQ29sdW1ucyhjb2x1bW5zOiBhbnlbXSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGNoZWNrUGlubmVkUmlnaHQgPSAoY29sdW1uczogYW55W10pOiBib29sZWFuID0+IHtcbiAgICAgIHJldHVybiBjb2x1bW5zLnNvbWUoKGNvbCkgPT4ge1xuICAgICAgICBpZiAoY29sPy5waW5uZWQgPT09ICdyaWdodCcgJiYgY29sPy5pc192aXNpYmxlKSByZXR1cm4gdHJ1ZTtcbiAgICAgICAgaWYgKGNvbD8uY2hpbGRyZW4/Lmxlbmd0aCkge1xuICAgICAgICAgIHJldHVybiBjaGVja1Bpbm5lZFJpZ2h0KGNvbC5jaGlsZHJlbik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfSk7XG4gICAgfTtcbiAgICByZXR1cm4gY2hlY2tQaW5uZWRSaWdodChjb2x1bW5zKTtcbiAgfVxuXG4gIGdldGhhc0xlZnRQaW5uZWRDb2x1bW5zKGNvbHVtbnM6IGFueVtdKTogYm9vbGVhbiB7XG4gICAgY29uc3QgY2hlY2tQaW5uZWRSaWdodCA9IChjb2x1bW5zOiBhbnlbXSk6IGJvb2xlYW4gPT4ge1xuICAgICAgcmV0dXJuIGNvbHVtbnMuc29tZSgoY29sKSA9PiB7XG4gICAgICAgIGlmIChjb2w/LnBpbm5lZCA9PT0gJ2xlZnQnICYmIGNvbD8uaXNfdmlzaWJsZSkgcmV0dXJuIHRydWU7XG4gICAgICAgIGlmIChjb2w/LmNoaWxkcmVuPy5sZW5ndGgpIHtcbiAgICAgICAgICByZXR1cm4gY2hlY2tQaW5uZWRSaWdodChjb2wuY2hpbGRyZW4pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH0pO1xuICAgIH07XG4gICAgcmV0dXJuIGNoZWNrUGlubmVkUmlnaHQoY29sdW1ucyk7XG4gIH1cblxuXG4gIGdldEV4cGFuZGVkUm93Q291bnQoZGF0YTogYW55W10pOiBudW1iZXIge1xuICAgIGxldCBncm91cENvdW50ID0gMDtcbiAgICBsZXQgcm93Q291bnQgPSAwO1xuXG4gICAgZGF0YS5mb3JFYWNoKGdyb3VwID0+IHtcbiAgICAgIGlmIChncm91cD8uaXNHcm91cCkge1xuICAgICAgICBncm91cENvdW50Kys7XG5cbiAgICAgICAgaWYgKGdyb3VwPy5pc0V4cGFuZCAmJiBBcnJheS5pc0FycmF5KGdyb3VwPy5jaGlsZHJlbikpIHtcbiAgICAgICAgICBncm91cC5jaGlsZHJlbi5mb3JFYWNoKChjaGlsZDogYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAoY2hpbGQuaXNHcm91cCkge1xuICAgICAgICAgICAgICBpZiAoY2hpbGQuaXNFeHBhbmQgJiYgQXJyYXkuaXNBcnJheShjaGlsZC5jaGlsZHJlbikpIHtcbiAgICAgICAgICAgICAgICByb3dDb3VudCArPSBjaGlsZC5jaGlsZHJlbi5sZW5ndGg7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJvd0NvdW50Kys7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmIChncm91cENvdW50ID09PSAwKSB7XG4gICAgICByZXR1cm4gZGF0YS5sZW5ndGg7XG4gICAgfVxuXG4gICAgcmV0dXJuIGdyb3VwQ291bnQgKyByb3dDb3VudDtcbiAgfVxuXG5cbiAgZ2V0RmlsdGVyc0Zyb21Db2x1bW5zKGNvbHVtbnM6IGFueVtdLCBmaWx0ZXJzQ29uZmlnOiBhbnlbXSk6IGFueVtdIHtcbiAgICBjb25zdCByZXN1bHQ6IGFueVtdID0gW107XG5cbiAgICBjb25zdCBjaGVja0NvbHVtbiA9IChjb2w6IGFueSkgPT4ge1xuICAgICAgaWYgKGNvbC5xdWVyeT8uY29uZGl0aW9uID09PSAnbm9uZScpIHtcbiAgICAgICAgY29sLnF1ZXJ5LnNlY29uZF92YWx1ZSA9IG51bGw7XG4gICAgICAgIGNvbC5xdWVyeS5zZWNvbmRfY29uZGl0aW9uID0gbnVsbDtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGhhc0ZpcnN0VmFsdWUgPSBjb2wucXVlcnk/LmZpcnN0X3ZhbHVlICE9IG51bGwgJiYgY29sLnF1ZXJ5Py5maXJzdF92YWx1ZSAhPT0gXCJcIiAmJiBmaWx0ZXJzQ29uZmlnLnNvbWUoKGVsZSkgPT4gZWxlLmZpZWxkID09IGNvbC5maWVsZCk7XG4gICAgICBjb25zdCBoYXNJZHMgPSBBcnJheS5pc0FycmF5KGNvbC5xdWVyeT8uX2lkcykgJiYgY29sLnF1ZXJ5Ll9pZHMubGVuZ3RoID4gMCAmJiBmaWx0ZXJzQ29uZmlnLnNvbWUoKGVsZSkgPT4gZWxlLmZpZWxkID09IGNvbC5maWVsZCk7XG4gICAgICBpZiAoaGFzRmlyc3RWYWx1ZSB8fCBoYXNJZHMpIHtcbiAgICAgICAgcmVzdWx0LnB1c2goe1xuICAgICAgICAgIHNlYXJjaDogY29sLnNlYXJjaCA/PyBcIlwiLFxuICAgICAgICAgIGZpZWxkOiBjb2wuZmllbGQsXG4gICAgICAgICAgdHlwZTogY29sLnR5cGUsXG4gICAgICAgICAgX2lkczogKGNvbC50eXBlID09ICdkcm9wZG93bicgfHwgY29sLnR5cGUgPT0gJ2FycmF5JykgPyBjb2wucXVlcnk/Ll9pZHMgOiBbXSxcbiAgICAgICAgICBxdWVyeTogKGNvbC50eXBlID09ICdkcm9wZG93bicgfHwgY29sLnR5cGUgPT0gJ2FycmF5JykgPyBudWxsIDogKGNvbD8ucXVlcnk/LmZpcnN0X3ZhbHVlID8gY29sPy5xdWVyeSA6IG51bGwpXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShjb2wuY2hpbGRyZW4pICYmIGNvbC5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbC5jaGlsZHJlbi5mb3JFYWNoKGNoZWNrQ29sdW1uKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIGNvbHVtbnMuZm9yRWFjaChjaGVja0NvbHVtbik7XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgYXN5bmMgYXBwbHlGaWx0ZXJzVG9Db2x1bW5zKGNvbHVtbnM6IGFueVtdLCBmaWx0ZXJzOiBhbnlbXSk6IFByb21pc2U8YW55W10+IHtcbiAgICBmb3IgKGNvbnN0IGNvbCBvZiBjb2x1bW5zKSB7XG4gICAgICBpZiAoIWNvbC5xdWVyeSkge1xuICAgICAgICBjb2wucXVlcnkgPSB7XG4gICAgICAgICAgZmlyc3RfdmFsdWU6IG51bGwsXG4gICAgICAgICAgc2Vjb25kX3ZhbHVlOiBudWxsLFxuICAgICAgICAgIGZpcnN0X2NvbmRpdGlvbjogY29sLnR5cGUgIT09ICdkYXRlJyAmJiBjb2wudHlwZSAhPT0gJ251bWJlcicgPyAnY29udGFpbicgOiAnZXF1YWwnLFxuICAgICAgICAgIHNlY29uZF9jb25kaXRpb246IG51bGwsXG4gICAgICAgICAgY29uZGl0aW9uOiAnbm9uZScsXG4gICAgICAgICAgX2lkczogW11cbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZmlsdGVyID0gZmlsdGVycy5maW5kKGYgPT4gZi5maWVsZCA9PT0gY29sLmZpZWxkKTtcblxuICAgICAgaWYgKGZpbHRlcikge1xuICAgICAgICBpZiAoY29sLnR5cGUgPT09ICdkcm9wZG93bicgfHwgY29sLnR5cGUgPT0gJ2FycmF5Jykge1xuICAgICAgICAgIGNvbnN0IHNlbGVjdGVkSWRzID0gZmlsdGVyLl9pZHMgPz8gW107XG4gICAgICAgICAgY29uc3QgZHJvcGRvd25WYWx1ZXMgPSBjb2wuY29sdW1uX2Ryb3Bkb3duX3ZhbHVlID8/IFtdO1xuXG4gICAgICAgICAgLy8g4pyFIE1hcCBkZXBlbmRpbmcgb24gZHJvcGRvd24gdmFsdWUgc3RydWN0dXJlXG4gICAgICAgICAgbGV0IHNlbGVjdGVkTGFiZWxzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZHJvcGRvd25WYWx1ZXMpICYmIGRyb3Bkb3duVmFsdWVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgZHJvcGRvd25WYWx1ZXNbMF0gPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgIC8vIG9iamVjdC1iYXNlZCBkcm9wZG93bnM6IHsgaWQsIG5hbWUvbGFiZWwvdmFsdWUvdGV4dCB9XG4gICAgICAgICAgICAgIHNlbGVjdGVkTGFiZWxzID0gZHJvcGRvd25WYWx1ZXNcbiAgICAgICAgICAgICAgICAuZmlsdGVyKG9wdCA9PiBzZWxlY3RlZElkcy5pbmNsdWRlcyhvcHQuaWQpKVxuICAgICAgICAgICAgICAgIC5tYXAob3B0ID0+IG9wdC5uYW1lID8/IG9wdC5sYWJlbCA/PyBvcHQudmFsdWUgPz8gb3B0LnRleHQgPz8gJycpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgLy8gc3RyaW5nLWJhc2VkIGRyb3Bkb3duc1xuICAgICAgICAgICAgICBzZWxlY3RlZExhYmVscyA9IGRyb3Bkb3duVmFsdWVzLmZpbHRlcihvcHQgPT4gc2VsZWN0ZWRJZHMuaW5jbHVkZXMob3B0KSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8g4pyFIFN0b3JlIHJlYWRhYmxlIHRleHQgaW4gZmlsdGVyVmFsdWUgKGNvbW1hLXNlcGFyYXRlZClcbiAgICAgICAgICBjb2wuZmlsdGVyVmFsdWUgPSBzZWxlY3RlZExhYmVscy5qb2luKCcsICcpO1xuXG4gICAgICAgICAgLy8gbWFpbnRhaW4gcXVlcnkgc3RhdGVcbiAgICAgICAgICBjb2wucXVlcnkuX2lkcyA9IHNlbGVjdGVkSWRzO1xuICAgICAgICAgIGNvbC5zZWFyY2ggPSBmaWx0ZXIuc2VhcmNoID8/ICcnO1xuXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8g4pyFIE5vbi1kcm9wZG93biBmaWx0ZXJzICh0ZXh0L2RhdGUvbnVtYmVyKVxuICAgICAgICAgIGNvbC5maWx0ZXJWYWx1ZSA9IGZpbHRlci5zZWFyY2ggfHwgZmlsdGVyLnF1ZXJ5Py5maXJzdF92YWx1ZSB8fCAnJztcbiAgICAgICAgICBjb2wuc2VhcmNoID0gZmlsdGVyLnNlYXJjaCA/PyAnJztcbiAgICAgICAgICBjb2wucXVlcnkuZmlyc3RfdmFsdWUgPSBmaWx0ZXIucXVlcnk/LmZpcnN0X3ZhbHVlID8/IG51bGw7XG4gICAgICAgICAgY29sLnF1ZXJ5LnNlY29uZF92YWx1ZSA9IGZpbHRlci5xdWVyeT8uc2Vjb25kX3ZhbHVlID8/IG51bGw7XG4gICAgICAgICAgY29sLnF1ZXJ5LmZpcnN0X2NvbmRpdGlvbiA9XG4gICAgICAgICAgICBmaWx0ZXIucXVlcnk/LmZpcnN0X2NvbmRpdGlvbiA/P1xuICAgICAgICAgICAgKGNvbC50eXBlICE9PSAnZGF0ZScgJiYgY29sLnR5cGUgIT0gJ251bWJlcicgPyAnY29udGFpbicgOiAnZXF1YWwnKTtcbiAgICAgICAgICBjb2wucXVlcnkuc2Vjb25kX2NvbmRpdGlvbiA9IGZpbHRlci5xdWVyeT8uc2Vjb25kX2NvbmRpdGlvbiA/PyBudWxsO1xuICAgICAgICAgIGNvbC5xdWVyeS5jb25kaXRpb24gPSBmaWx0ZXIucXVlcnk/LmNvbmRpdGlvbiA/PyAnbm9uZSc7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIENsZWFyIGZpbHRlciBpZiBub3QgcHJlc2VudFxuICAgICAgICBjb2wuZmlsdGVyVmFsdWUgPSBudWxsO1xuICAgICAgICBjb2wuc2VhcmNoID0gJyc7XG4gICAgICAgIGNvbC5xdWVyeS5faWRzID0gW107XG4gICAgICAgIGNvbC5xdWVyeS5maXJzdF92YWx1ZSA9IG51bGw7XG4gICAgICB9XG5cbiAgICAgIC8vIOKchSBSZWN1cnNpdmVseSBhcHBseSBmb3IgY2hpbGRyZW5cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGNvbC5jaGlsZHJlbikgJiYgY29sLmNoaWxkcmVuLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY29sLmNoaWxkcmVuID0gYXdhaXQgdGhpcy5hcHBseUZpbHRlcnNUb0NvbHVtbnMoY29sLmNoaWxkcmVuLCBmaWx0ZXJzKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gY29sdW1ucztcbiAgfVxuXG5cblxuXG5cblxuICBhY3RpdmVGaWx0ZXJlZENvbHVtbnM6IGFueVtdID0gW107XG4gIHVwZGF0ZUFjdGl2ZUZpbHRlcmVkQ29sdW1ucyhjb2x1bW5zOiBhbnlbXSk6IGFueVtdIHtcbiAgICBjb25zdCBjb2xsZWN0RmlsdGVyZWQgPSAoY29sczogYW55W10pOiBhbnlbXSA9PiB7XG4gICAgICBsZXQgcmVzdWx0OiBhbnlbXSA9IFtdO1xuXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvbHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgY29sID0gY29sc1tpXTtcbiAgICAgICAgaWYgKGNvbC5jaGlsZHJlbiAmJiBjb2wuY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC5jb25jYXQoY29sbGVjdEZpbHRlcmVkKGNvbC5jaGlsZHJlbikpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNvbC5xdWVyeSkge1xuICAgICAgICAgIGNvbnN0IGhhc0Ryb3Bkb3duRmlsdGVyID1cbiAgICAgICAgICAgIEFycmF5LmlzQXJyYXkoY29sLnF1ZXJ5Ll9pZHMpICYmIGNvbC5xdWVyeS5faWRzLmxlbmd0aCA+IDA7XG5cbiAgICAgICAgICBjb25zdCBoYXNWYWx1ZUZpbHRlciA9XG4gICAgICAgICAgICAoY29sLnF1ZXJ5LmZpcnN0X3ZhbHVlICYmIGNvbC5xdWVyeS5maXJzdF92YWx1ZSAhPT0gJycpIHx8XG4gICAgICAgICAgICAoY29sLnF1ZXJ5LnNlY29uZF92YWx1ZSAmJiBjb2wucXVlcnkuc2Vjb25kX3ZhbHVlICE9PSAnJyk7XG5cbiAgICAgICAgICBpZiAoaGFzRHJvcGRvd25GaWx0ZXIgfHwgaGFzVmFsdWVGaWx0ZXIpIHtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKGNvbCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH07XG4gICAgdGhpcy5hY3RpdmVGaWx0ZXJlZENvbHVtbnMgPSBbLi4uY29sbGVjdEZpbHRlcmVkKGNvbHVtbnMpXTtcbiAgICByZXR1cm4gdGhpcy5hY3RpdmVGaWx0ZXJlZENvbHVtbnM7XG4gIH1cblxuXG5cbiAgaGFzRmllbGRDaGFuZ2VkKGN1cnJlbnQ6IGFueSwgb3JpZ2luYWw6IGFueSwgdHlwZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlICdudW1iZXInOlxuICAgICAgICByZXR1cm4gTnVtYmVyKGN1cnJlbnQpICE9PSBOdW1iZXIob3JpZ2luYWwpO1xuXG4gICAgICBjYXNlICdzdHJpbmcnOlxuICAgICAgICByZXR1cm4gU3RyaW5nKGN1cnJlbnQgfHwgJycpICE9PSBTdHJpbmcob3JpZ2luYWwgfHwgJycpO1xuXG4gICAgICBjYXNlICdkcm9wZG93bic6XG4gICAgICAgIGlmICh0eXBlb2YgY3VycmVudCA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG9yaWdpbmFsID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgIHJldHVybiBjdXJyZW50Py5pZCAhPT0gb3JpZ2luYWw/LmlkIHx8IGN1cnJlbnQ/LnZhbHVlICE9PSBvcmlnaW5hbD8udmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGN1cnJlbnQgIT09IG9yaWdpbmFsO1xuXG4gICAgICBjYXNlICdib29sZWFuJzpcbiAgICAgICAgcmV0dXJuIEJvb2xlYW4oY3VycmVudCkgIT09IEJvb2xlYW4ob3JpZ2luYWwpO1xuXG4gICAgICBjYXNlICdkYXRlJzpcbiAgICAgICAgY29uc3QgY3VycmVudERhdGUgPSBuZXcgRGF0ZShjdXJyZW50KS5nZXRUaW1lKCk7XG4gICAgICAgIGNvbnN0IG9yaWdpbmFsRGF0ZSA9IG5ldyBEYXRlKG9yaWdpbmFsKS5nZXRUaW1lKCk7XG4gICAgICAgIHJldHVybiBpc05hTihjdXJyZW50RGF0ZSkgfHwgaXNOYU4ob3JpZ2luYWxEYXRlKVxuICAgICAgICAgID8gY3VycmVudCAhPT0gb3JpZ2luYWxcbiAgICAgICAgICA6IGN1cnJlbnREYXRlICE9PSBvcmlnaW5hbERhdGU7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShjdXJyZW50KSAhPT0gSlNPTi5zdHJpbmdpZnkob3JpZ2luYWwpO1xuICAgIH1cbiAgfVxuXG5cbiAgLy8gQ29weSBjb2x1bW4gZGF0YSB0byBjb2x1bW4gZHJvcGRvd24gdmFsdWVzIGluIGNhc2Ugb2YgYWJzZW5jZVxuICBhc3luYyBjb3B5RHJvcGRvd25EYXRhUmVjdXJzaXZlbHkoY29sdW1uczogYW55W10pOiBQcm9taXNlPGFueVtdPiB7XG4gICAgZm9yIChjb25zdCBjb2wgb2YgY29sdW1ucykge1xuICAgICAgaWYgKGNvbC50eXBlID09PSAnZHJvcGRvd24nIHx8IGNvbC50eXBlID09ICdhcnJheScpIHtcbiAgICAgICAgY29uc3QgZHJvcGRvd25WYWx1ZXMgPSBjb2wuY29sdW1uX2Ryb3Bkb3duX3ZhbHVlO1xuICAgICAgICBjb25zdCBkYXRhVmFsdWVzID0gY29sLmNvbHVtbl9kYXRhO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAoIUFycmF5LmlzQXJyYXkoZHJvcGRvd25WYWx1ZXMpIHx8IGRyb3Bkb3duVmFsdWVzLmxlbmd0aCA9PT0gMCkgJiZcbiAgICAgICAgICBBcnJheS5pc0FycmF5KGRhdGFWYWx1ZXMpICYmXG4gICAgICAgICAgZGF0YVZhbHVlcy5sZW5ndGggPiAwXG4gICAgICAgICkge1xuICAgICAgICAgIGNvbC5jb2x1bW5fZHJvcGRvd25fdmFsdWUgPSBkYXRhVmFsdWVzLm1hcChpdGVtID0+XG4gICAgICAgICAgICB0eXBlb2YgaXRlbSA9PT0gJ29iamVjdCdcbiAgICAgICAgICAgICAgPyBpdGVtXG4gICAgICAgICAgICAgIDogeyBpZDogaXRlbSwgbmFtZTogaXRlbSwgdmFsdWU6IGl0ZW0gfVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoY29sLmNoaWxkcmVuKSAmJiBjb2wuY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuICAgICAgICBjb2wuY2hpbGRyZW4gPSBhd2FpdCB0aGlzLmNvcHlEcm9wZG93bkRhdGFSZWN1cnNpdmVseShjb2wuY2hpbGRyZW4pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBjb2x1bW5zO1xuICB9XG5cblxuICBmb3JtYXREYXRlVmFsdWUodmFsdWU6IGFueSwgbW9tZW50Rm9ybWF0Pzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCB0cnlGb3JtYXQgPSAoZGF0ZTogRGF0ZSkgPT4ge1xuICAgICAgY29uc3QgYW5ndWxhckZvcm1hdCA9IG1vbWVudEZvcm1hdFxuICAgICAgICA/IHRoaXMuY29udmVydE1vbWVudFRvQW5ndWxhckRhdGVGb3JtYXQobW9tZW50Rm9ybWF0KVxuICAgICAgICA6ICdkZC9NTS95eXl5JztcbiAgICAgIHJldHVybiB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybShkYXRlLCBhbmd1bGFyRm9ybWF0KSA/PyAnLSc7XG4gICAgfTtcblxuICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIERhdGUgJiYgIWlzTmFOKHZhbHVlLmdldFRpbWUoKSkpIHtcbiAgICAgIHJldHVybiB0cnlGb3JtYXQodmFsdWUpO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBsZXQgY2xlYW5lZFZhbHVlID0gdmFsdWUucmVwbGFjZSgvXkRELywgJzAxJyk7XG5cbiAgICAgIGNvbnN0IHBhcnNlZERETU0gPSB0aGlzLnBhcnNlRERNTVlZWVkoY2xlYW5lZFZhbHVlKTtcbiAgICAgIGlmIChwYXJzZWRERE1NKSByZXR1cm4gdHJ5Rm9ybWF0KHBhcnNlZERETU0pO1xuXG4gICAgICBpZiAoIWlzTmFOKERhdGUucGFyc2UoY2xlYW5lZFZhbHVlKSkpIHtcbiAgICAgICAgcmV0dXJuIHRyeUZvcm1hdChuZXcgRGF0ZShjbGVhbmVkVmFsdWUpKTtcbiAgICAgIH1cbiAgICB9XG5cblxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmICFpc05hTihEYXRlLnBhcnNlKHZhbHVlKSkpIHtcbiAgICAgIHJldHVybiB0cnlGb3JtYXQobmV3IERhdGUodmFsdWUpKTtcbiAgICB9XG5cbiAgICBpZiAodmFsdWU/Lm5hbWUgfHwgdmFsdWU/LnZhbHVlKSB7XG4gICAgICByZXR1cm4gdmFsdWUudmFsdWUgPz8gdmFsdWUubmFtZSA/PyAnLSc7XG4gICAgfVxuXG4gICAgaWYgKHZhbHVlICE9IG51bGwpIHJldHVybiBTdHJpbmcodmFsdWUpO1xuXG4gICAgcmV0dXJuICctJztcbiAgfVxuXG5cblxuXG4gIHByaXZhdGUgY29udmVydE1vbWVudFRvQW5ndWxhckRhdGVGb3JtYXQobW9tZW50Rm9ybWF0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghbW9tZW50Rm9ybWF0KSByZXR1cm4gJ21lZGl1bURhdGUnO1xuXG4gICAgcmV0dXJuIG1vbWVudEZvcm1hdFxuICAgICAgLnJlcGxhY2UoL0REL2csICdkZCcpXG4gICAgICAucmVwbGFjZSgvRC9nLCAnZCcpXG4gICAgICAucmVwbGFjZSgvWVlZWS9nLCAneXl5eScpXG4gICAgICAucmVwbGFjZSgvWVkvZywgJ3l5JylcbiAgICAgIC5yZXBsYWNlKC9NTU1NL2csICdNTU1NJylcbiAgICAgIC5yZXBsYWNlKC9NTU0vZywgJ01NTScpXG4gICAgICAucmVwbGFjZSgvTU0vZywgJ01NJylcbiAgICAgIC5yZXBsYWNlKC9NL2csICdNJylcbiAgICAgIC5yZXBsYWNlKC9kZGRkL2csICdFRUVFJylcbiAgICAgIC5yZXBsYWNlKC9kZGQvZywgJ0VFRScpXG4gICAgICAucmVwbGFjZSgvSEgvZywgJ0hIJylcbiAgICAgIC5yZXBsYWNlKC9IL2csICdIJylcbiAgICAgIC5yZXBsYWNlKC9oaC9nLCAnaGgnKVxuICAgICAgLnJlcGxhY2UoL2gvZywgJ2gnKVxuICAgICAgLnJlcGxhY2UoL21tL2csICdtbScpXG4gICAgICAucmVwbGFjZSgvbS9nLCAnbScpXG4gICAgICAucmVwbGFjZSgvc3MvZywgJ3NzJylcbiAgICAgIC5yZXBsYWNlKC9zL2csICdzJylcbiAgICAgIC5yZXBsYWNlKC9BL2csICdhJylcbiAgICAgIC5yZXBsYWNlKC9hL2csICdhJyk7XG4gIH1cblxuICBwcml2YXRlIHBhcnNlRERNTVlZWVkodmFsdWU6IHN0cmluZyk6IERhdGUgfCBudWxsIHtcbiAgICBjb25zdCBtYXRjaCA9IHZhbHVlLm1hdGNoKC9eKFxcZHsyfSlcXC8oXFxkezJ9KVxcLyhcXGR7NH0pJC8pO1xuICAgIGlmICghbWF0Y2gpIHJldHVybiBudWxsO1xuXG4gICAgY29uc3QgZGF5ID0gK21hdGNoWzFdO1xuICAgIGNvbnN0IG1vbnRoID0gK21hdGNoWzJdIC0gMTtcbiAgICBjb25zdCB5ZWFyID0gK21hdGNoWzNdO1xuXG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHllYXIsIG1vbnRoLCBkYXkpO1xuXG4gICAgcmV0dXJuIChkYXRlLmdldEZ1bGxZZWFyKCkgPT09IHllYXIgJiZcbiAgICAgIGRhdGUuZ2V0TW9udGgoKSA9PT0gbW9udGggJiZcbiAgICAgIGRhdGUuZ2V0RGF0ZSgpID09PSBkYXkpXG4gICAgICA/IGRhdGVcbiAgICAgIDogbnVsbDtcbiAgfVxuXG59XG5cblxuXG5cbiJdfQ==
330
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhLWdyaWQvc3JjL2xpYi9zZXJ2aWNlcy9jb21tb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBS25ELE1BQU0sT0FBTyxhQUFhO0lBR3hCO1FBRFEsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUc3QixzQkFBaUIsR0FBRyxDQUFDLENBQUM7UUE2TTdCLDBCQUFxQixHQUFVLEVBQUUsQ0FBQztJQS9NbEIsQ0FBQztJQUlqQixvQkFBb0IsQ0FBQyxPQUFjO1FBQ2pDLE1BQU0sWUFBWSxHQUFHLENBQUMsT0FBYyxFQUFXLEVBQUU7WUFDL0MsT0FBTyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQzNCLElBQUksR0FBRyxFQUFFLFVBQVU7b0JBQUUsT0FBTyxJQUFJLENBQUM7Z0JBQ2pDLElBQUksR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUU7b0JBQ3pCLE9BQU8sWUFBWSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztpQkFDbkM7Z0JBQ0QsT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQztRQUNGLE9BQU8sWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxPQUFjO1FBQ25DLE1BQU0sWUFBWSxHQUFHLENBQUMsT0FBYyxFQUFXLEVBQUU7WUFDL0MsT0FBTyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQzNCLElBQUksQ0FBQyxHQUFHLEVBQUUsVUFBVTtv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QUFFLElBQUksQ0FBQzthQUNwQixPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQzthQUNsQixPQUFPLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQzthQUN4QixPQUFPLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQzthQUNwQixPQUFPLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQzthQUN4QixPQUFPLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQzthQUN0QixPQUFPLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQzthQUNwQixPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQzthQUNsQixPQUFPLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQzthQUN4QixPQUFPLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQzthQUN0QixPQUFPLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQzthQUNwQixPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQzthQUNsQixPQUFPLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQzthQUNwQixPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQzthQUNsQixPQUFPLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQzthQUNwQixPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQzthQUNsQixPQUFPLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQzthQUNwQixPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQzthQUNsQixPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQzthQUNsQixPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFTyxhQUFhLENBQUMsS0FBYTtRQUNqQyxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPLElBQUksQ0FBQztRQUV4QixNQUFNLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0QixNQUFNLEtBQUssR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUIsTUFBTSxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFdkIsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztRQUV4QyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLElBQUk7WUFDakMsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLEtBQUs7WUFDekIsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLEdBQUcsQ0FBQztZQUN2QixDQUFDLENBQUMsSUFBSTtZQUNOLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDWCxDQUFDOytHQTlYVSxhQUFhO21IQUFiLGFBQWEsY0FGWixNQUFNOzs0RkFFUCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQ29tbW9uU2VydmljZSB7XG5cbiAgcHJpdmF0ZSBkYXRlUGlwZSA9IGluamVjdChEYXRlUGlwZSk7IFxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIHB1YmxpYyBtYWluQ29udGFpbmVyTGVmdCA9IDA7XG5cbiAgZ2V0aGFzVmlzaWJsZUNvbHVtbnMoY29sdW1uczogYW55W10pOiBib29sZWFuIHtcbiAgICBjb25zdCBjaGVja1Zpc2libGUgPSAoY29sdW1uczogYW55W10pOiBib29sZWFuID0+IHtcbiAgICAgIHJldHVybiBjb2x1bW5zPy5zb21lKChjb2wpID0+IHtcbiAgICAgICAgaWYgKGNvbD8uaXNfdmlzaWJsZSkgcmV0dXJuIHRydWU7XG4gICAgICAgIGlmIChjb2w/LmNoaWxkcmVuPy5sZW5ndGgpIHtcbiAgICAgICAgICByZXR1cm4gY2hlY2tWaXNpYmxlKGNvbC5jaGlsZHJlbik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfSk7XG4gICAgfTtcbiAgICByZXR1cm4gY2hlY2tWaXNpYmxlKGNvbHVtbnMpO1xuICB9XG5cbiAgZ2V0aGFzSW5WaXNpYmxlQ29sdW1ucyhjb2x1bW5zOiBhbnlbXSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGNoZWNrVmlzaWJsZSA9IChjb2x1bW5zOiBhbnlbXSk6IGJvb2xlYW4gPT4ge1xuICAgICAgcmV0dXJuIGNvbHVtbnM/LnNvbWUoKGNvbCkgPT4ge1xuICAgICAgICBpZiAoIWNvbD8uaXNfdmlzaWJsZSkgcmV0dXJuIHRydWU7XG4gICAgICAgIGlmIChjb2w/LmNoaWxkcmVuPy5sZW5ndGgpIHtcbiAgICAgICAgICByZXR1cm4gY2hlY2tWaXNpYmxlKGNvbC5jaGlsZHJlbik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfSk7XG4gICAgfTtcbiAgICByZXR1cm4gY2hlY2tWaXNpYmxlKGNvbHVtbnMpO1xuICB9XG5cblxuICBnZXRUb3RhbENvbHVtbnNMZW5ndGgoY29sdW1uczogYW55W10pOiBudW1iZXIge1xuICAgIGxldCBjb3VudCA9IDA7XG5cbiAgICBjb2x1bW5zPy5mb3JFYWNoKGNvbCA9PiB7XG4gICAgICBpZiAoY29sLmNoaWxkcmVuICYmIEFycmF5LmlzQXJyYXkoY29sLmNoaWxkcmVuKSAmJiBjb2wuY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICAgIGNvdW50ICs9IGNvbC5jaGlsZHJlbi5sZW5ndGg7IC8vIGNvdW50IGNoaWxkcmVuIGluc3RlYWQgb2YgcGFyZW50XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb3VudCArPSAxOyAvLyBjb3VudCBwYXJlbnQgZGlyZWN0bHlcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBjb3VudDtcbiAgfVxuXG4gIGdldGhhc1JpZ2h0UGlubmVkQ29sdW1ucyhjb2x1bW5zOiBhbnlbXSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGNoZWNrUGlubmVkUmlnaHQgPSAoY29sdW1uczogYW55W10pOiBib29sZWFuID0+IHtcbiAgICAgIHJldHVybiBjb2x1bW5zPy5zb21lKChjb2wpID0+IHtcbiAgICAgICAgaWYgKGNvbD8ucGlubmVkID09PSAncmlnaHQnICYmIGNvbD8uaXNfdmlzaWJsZSkgcmV0dXJuIHRydWU7XG4gICAgICAgIGlmIChjb2w/LmNoaWxkcmVuPy5sZW5ndGgpIHtcbiAgICAgICAgICByZXR1cm4gY2hlY2tQaW5uZWRSaWdodChjb2wuY2hpbGRyZW4pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH0pO1xuICAgIH07XG4gICAgcmV0dXJuIGNoZWNrUGlubmVkUmlnaHQoY29sdW1ucyk7XG4gIH1cblxuICBnZXRoYXNMZWZ0UGlubmVkQ29sdW1ucyhjb2x1bW5zOiBhbnlbXSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGNoZWNrUGlubmVkUmlnaHQgPSAoY29sdW1uczogYW55W10pOiBib29sZWFuID0+IHtcbiAgICAgIHJldHVybiBjb2x1bW5zPy5zb21lKChjb2wpID0+IHtcbiAgICAgICAgaWYgKGNvbD8ucGlubmVkID09PSAnbGVmdCcgJiYgY29sPy5pc192aXNpYmxlKSByZXR1cm4gdHJ1ZTtcbiAgICAgICAgaWYgKGNvbD8uY2hpbGRyZW4/Lmxlbmd0aCkge1xuICAgICAgICAgIHJldHVybiBjaGVja1Bpbm5lZFJpZ2h0KGNvbC5jaGlsZHJlbik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfSk7XG4gICAgfTtcbiAgICByZXR1cm4gY2hlY2tQaW5uZWRSaWdodChjb2x1bW5zKTtcbiAgfVxuXG5cbiAgZ2V0RXhwYW5kZWRSb3dDb3VudChkYXRhOiBhbnlbXSk6IG51bWJlciB7XG4gICAgbGV0IGdyb3VwQ291bnQgPSAwO1xuICAgIGxldCByb3dDb3VudCA9IDA7XG5cbiAgICBkYXRhPy5mb3JFYWNoKGdyb3VwID0+IHtcbiAgICAgIGlmIChncm91cD8uaXNHcm91cCkge1xuICAgICAgICBncm91cENvdW50Kys7XG5cbiAgICAgICAgaWYgKGdyb3VwPy5pc0V4cGFuZCAmJiBBcnJheS5pc0FycmF5KGdyb3VwPy5jaGlsZHJlbikpIHtcbiAgICAgICAgICBncm91cC5jaGlsZHJlbi5mb3JFYWNoKChjaGlsZDogYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAoY2hpbGQuaXNHcm91cCkge1xuICAgICAgICAgICAgICBpZiAoY2hpbGQuaXNFeHBhbmQgJiYgQXJyYXkuaXNBcnJheShjaGlsZC5jaGlsZHJlbikpIHtcbiAgICAgICAgICAgICAgICByb3dDb3VudCArPSBjaGlsZC5jaGlsZHJlbi5sZW5ndGg7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJvd0NvdW50Kys7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmIChncm91cENvdW50ID09PSAwKSB7XG4gICAgICByZXR1cm4gZGF0YS5sZW5ndGg7XG4gICAgfVxuXG4gICAgcmV0dXJuIGdyb3VwQ291bnQgKyByb3dDb3VudDtcbiAgfVxuXG5cbiAgZ2V0RmlsdGVyc0Zyb21Db2x1bW5zKGNvbHVtbnM6IGFueVtdLCBmaWx0ZXJzQ29uZmlnOiBhbnlbXSk6IGFueVtdIHtcbiAgICBjb25zdCByZXN1bHQ6IGFueVtdID0gW107XG5cbiAgICBjb25zdCBjaGVja0NvbHVtbiA9IChjb2w6IGFueSkgPT4ge1xuICAgICAgaWYgKGNvbC5xdWVyeT8uY29uZGl0aW9uID09PSAnbm9uZScpIHtcbiAgICAgICAgY29sLnF1ZXJ5LnNlY29uZF92YWx1ZSA9IG51bGw7XG4gICAgICAgIGNvbC5xdWVyeS5zZWNvbmRfY29uZGl0aW9uID0gbnVsbDtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGhhc0ZpcnN0VmFsdWUgPSBjb2wucXVlcnk/LmZpcnN0X3ZhbHVlICE9IG51bGwgJiYgY29sLnF1ZXJ5Py5maXJzdF92YWx1ZSAhPT0gXCJcIiAmJiBmaWx0ZXJzQ29uZmlnLnNvbWUoKGVsZSkgPT4gZWxlLmZpZWxkID09IGNvbC5maWVsZCk7XG4gICAgICBjb25zdCBoYXNJZHMgPSBBcnJheS5pc0FycmF5KGNvbC5xdWVyeT8uX2lkcykgJiYgY29sLnF1ZXJ5Ll9pZHMubGVuZ3RoID4gMCAmJiBmaWx0ZXJzQ29uZmlnLnNvbWUoKGVsZSkgPT4gZWxlLmZpZWxkID09IGNvbC5maWVsZCk7XG4gICAgICBpZiAoaGFzRmlyc3RWYWx1ZSB8fCBoYXNJZHMpIHtcbiAgICAgICAgcmVzdWx0LnB1c2goe1xuICAgICAgICAgIHNlYXJjaDogY29sLnNlYXJjaCA/PyBcIlwiLFxuICAgICAgICAgIGZpZWxkOiBjb2wuZmllbGQsXG4gICAgICAgICAgdHlwZTogY29sLnR5cGUsXG4gICAgICAgICAgX2lkczogKGNvbC50eXBlID09ICdkcm9wZG93bicgfHwgY29sLnR5cGUgPT0gJ2FycmF5JykgPyBjb2wucXVlcnk/Ll9pZHMgOiBbXSxcbiAgICAgICAgICBxdWVyeTogKGNvbC50eXBlID09ICdkcm9wZG93bicgfHwgY29sLnR5cGUgPT0gJ2FycmF5JykgPyBudWxsIDogKGNvbD8ucXVlcnk/LmZpcnN0X3ZhbHVlID8gY29sPy5xdWVyeSA6IG51bGwpXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShjb2wuY2hpbGRyZW4pICYmIGNvbC5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbC5jaGlsZHJlbi5mb3JFYWNoKGNoZWNrQ29sdW1uKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIGNvbHVtbnMuZm9yRWFjaChjaGVja0NvbHVtbik7XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgYXN5bmMgYXBwbHlGaWx0ZXJzVG9Db2x1bW5zKGNvbHVtbnM6IGFueVtdLCBmaWx0ZXJzOiBhbnlbXSk6IFByb21pc2U8YW55W10+IHtcbiAgICBmb3IgKGNvbnN0IGNvbCBvZiBjb2x1bW5zKSB7XG4gICAgICBpZiAoIWNvbC5xdWVyeSkge1xuICAgICAgICBjb2wucXVlcnkgPSB7XG4gICAgICAgICAgZmlyc3RfdmFsdWU6IG51bGwsXG4gICAgICAgICAgc2Vjb25kX3ZhbHVlOiBudWxsLFxuICAgICAgICAgIGZpcnN0X2NvbmRpdGlvbjogY29sLnR5cGUgIT09ICdkYXRlJyAmJiBjb2wudHlwZSAhPT0gJ251bWJlcicgPyAnY29udGFpbicgOiAnZXF1YWwnLFxuICAgICAgICAgIHNlY29uZF9jb25kaXRpb246IG51bGwsXG4gICAgICAgICAgY29uZGl0aW9uOiAnbm9uZScsXG4gICAgICAgICAgX2lkczogW11cbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZmlsdGVyID0gZmlsdGVycy5maW5kKGYgPT4gZi5maWVsZCA9PT0gY29sLmZpZWxkKTtcblxuICAgICAgaWYgKGZpbHRlcikge1xuICAgICAgICBpZiAoY29sLnR5cGUgPT09ICdkcm9wZG93bicgfHwgY29sLnR5cGUgPT0gJ2FycmF5Jykge1xuICAgICAgICAgIGNvbnN0IHNlbGVjdGVkSWRzID0gZmlsdGVyLl9pZHMgPz8gW107XG4gICAgICAgICAgY29uc3QgZHJvcGRvd25WYWx1ZXMgPSBjb2wuY29sdW1uX2Ryb3Bkb3duX3ZhbHVlID8/IFtdO1xuXG4gICAgICAgICAgLy8g4pyFIE1hcCBkZXBlbmRpbmcgb24gZHJvcGRvd24gdmFsdWUgc3RydWN0dXJlXG4gICAgICAgICAgbGV0IHNlbGVjdGVkTGFiZWxzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZHJvcGRvd25WYWx1ZXMpICYmIGRyb3Bkb3duVmFsdWVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgZHJvcGRvd25WYWx1ZXNbMF0gPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgIC8vIG9iamVjdC1iYXNlZCBkcm9wZG93bnM6IHsgaWQsIG5hbWUvbGFiZWwvdmFsdWUvdGV4dCB9XG4gICAgICAgICAgICAgIHNlbGVjdGVkTGFiZWxzID0gZHJvcGRvd25WYWx1ZXNcbiAgICAgICAgICAgICAgICAuZmlsdGVyKG9wdCA9PiBzZWxlY3RlZElkcy5pbmNsdWRlcyhvcHQuaWQpKVxuICAgICAgICAgICAgICAgIC5tYXAob3B0ID0+IG9wdC5uYW1lID8/IG9wdC5sYWJlbCA/PyBvcHQudmFsdWUgPz8gb3B0LnRleHQgPz8gJycpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgLy8gc3RyaW5nLWJhc2VkIGRyb3Bkb3duc1xuICAgICAgICAgICAgICBzZWxlY3RlZExhYmVscyA9IGRyb3Bkb3duVmFsdWVzLmZpbHRlcihvcHQgPT4gc2VsZWN0ZWRJZHMuaW5jbHVkZXMob3B0KSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8g4pyFIFN0b3JlIHJlYWRhYmxlIHRleHQgaW4gZmlsdGVyVmFsdWUgKGNvbW1hLXNlcGFyYXRlZClcbiAgICAgICAgICBjb2wuZmlsdGVyVmFsdWUgPSBzZWxlY3RlZExhYmVscy5qb2luKCcsICcpO1xuXG4gICAgICAgICAgLy8gbWFpbnRhaW4gcXVlcnkgc3RhdGVcbiAgICAgICAgICBjb2wucXVlcnkuX2lkcyA9IHNlbGVjdGVkSWRzO1xuICAgICAgICAgIGNvbC5zZWFyY2ggPSBmaWx0ZXIuc2VhcmNoID8/ICcnO1xuXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8g4pyFIE5vbi1kcm9wZG93biBmaWx0ZXJzICh0ZXh0L2RhdGUvbnVtYmVyKVxuICAgICAgICAgIGNvbC5maWx0ZXJWYWx1ZSA9IGZpbHRlci5zZWFyY2ggfHwgZmlsdGVyLnF1ZXJ5Py5maXJzdF92YWx1ZSB8fCAnJztcbiAgICAgICAgICBjb2wuc2VhcmNoID0gZmlsdGVyLnNlYXJjaCA/PyAnJztcbiAgICAgICAgICBjb2wucXVlcnkuZmlyc3RfdmFsdWUgPSBmaWx0ZXIucXVlcnk/LmZpcnN0X3ZhbHVlID8/IG51bGw7XG4gICAgICAgICAgY29sLnF1ZXJ5LnNlY29uZF92YWx1ZSA9IGZpbHRlci5xdWVyeT8uc2Vjb25kX3ZhbHVlID8/IG51bGw7XG4gICAgICAgICAgY29sLnF1ZXJ5LmZpcnN0X2NvbmRpdGlvbiA9XG4gICAgICAgICAgICBmaWx0ZXIucXVlcnk/LmZpcnN0X2NvbmRpdGlvbiA/P1xuICAgICAgICAgICAgKGNvbC50eXBlICE9PSAnZGF0ZScgJiYgY29sLnR5cGUgIT0gJ251bWJlcicgPyAnY29udGFpbicgOiAnZXF1YWwnKTtcbiAgICAgICAgICBjb2wucXVlcnkuc2Vjb25kX2NvbmRpdGlvbiA9IGZpbHRlci5xdWVyeT8uc2Vjb25kX2NvbmRpdGlvbiA/PyBudWxsO1xuICAgICAgICAgIGNvbC5xdWVyeS5jb25kaXRpb24gPSBmaWx0ZXIucXVlcnk/LmNvbmRpdGlvbiA/PyAnbm9uZSc7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIENsZWFyIGZpbHRlciBpZiBub3QgcHJlc2VudFxuICAgICAgICBjb2wuZmlsdGVyVmFsdWUgPSBudWxsO1xuICAgICAgICBjb2wuc2VhcmNoID0gJyc7XG4gICAgICAgIGNvbC5xdWVyeS5faWRzID0gW107XG4gICAgICAgIGNvbC5xdWVyeS5maXJzdF92YWx1ZSA9IG51bGw7XG4gICAgICB9XG5cbiAgICAgIC8vIOKchSBSZWN1cnNpdmVseSBhcHBseSBmb3IgY2hpbGRyZW5cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGNvbC5jaGlsZHJlbikgJiYgY29sLmNoaWxkcmVuLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY29sLmNoaWxkcmVuID0gYXdhaXQgdGhpcy5hcHBseUZpbHRlcnNUb0NvbHVtbnMoY29sLmNoaWxkcmVuLCBmaWx0ZXJzKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gY29sdW1ucztcbiAgfVxuXG5cblxuXG5cblxuICBhY3RpdmVGaWx0ZXJlZENvbHVtbnM6IGFueVtdID0gW107XG4gIHVwZGF0ZUFjdGl2ZUZpbHRlcmVkQ29sdW1ucyhjb2x1bW5zOiBhbnlbXSk6IGFueVtdIHtcbiAgICBjb25zdCBjb2xsZWN0RmlsdGVyZWQgPSAoY29sczogYW55W10pOiBhbnlbXSA9PiB7XG4gICAgICBsZXQgcmVzdWx0OiBhbnlbXSA9IFtdO1xuXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvbHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgY29sID0gY29sc1tpXTtcbiAgICAgICAgaWYgKGNvbC5jaGlsZHJlbiAmJiBjb2wuY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC5jb25jYXQoY29sbGVjdEZpbHRlcmVkKGNvbC5jaGlsZHJlbikpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNvbC5xdWVyeSkge1xuICAgICAgICAgIGNvbnN0IGhhc0Ryb3Bkb3duRmlsdGVyID1cbiAgICAgICAgICAgIEFycmF5LmlzQXJyYXkoY29sLnF1ZXJ5Ll9pZHMpICYmIGNvbC5xdWVyeS5faWRzLmxlbmd0aCA+IDA7XG5cbiAgICAgICAgICBjb25zdCBoYXNWYWx1ZUZpbHRlciA9XG4gICAgICAgICAgICAoY29sLnF1ZXJ5LmZpcnN0X3ZhbHVlICYmIGNvbC5xdWVyeS5maXJzdF92YWx1ZSAhPT0gJycpIHx8XG4gICAgICAgICAgICAoY29sLnF1ZXJ5LnNlY29uZF92YWx1ZSAmJiBjb2wucXVlcnkuc2Vjb25kX3ZhbHVlICE9PSAnJyk7XG5cbiAgICAgICAgICBpZiAoaGFzRHJvcGRvd25GaWx0ZXIgfHwgaGFzVmFsdWVGaWx0ZXIpIHtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKGNvbCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH07XG4gICAgdGhpcy5hY3RpdmVGaWx0ZXJlZENvbHVtbnMgPSBbLi4uY29sbGVjdEZpbHRlcmVkKGNvbHVtbnMpXTtcbiAgICByZXR1cm4gdGhpcy5hY3RpdmVGaWx0ZXJlZENvbHVtbnM7XG4gIH1cblxuXG5cbiAgaGFzRmllbGRDaGFuZ2VkKGN1cnJlbnQ6IGFueSwgb3JpZ2luYWw6IGFueSwgdHlwZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlICdudW1iZXInOlxuICAgICAgICByZXR1cm4gTnVtYmVyKGN1cnJlbnQpICE9PSBOdW1iZXIob3JpZ2luYWwpO1xuXG4gICAgICBjYXNlICdzdHJpbmcnOlxuICAgICAgICByZXR1cm4gU3RyaW5nKGN1cnJlbnQgfHwgJycpICE9PSBTdHJpbmcob3JpZ2luYWwgfHwgJycpO1xuXG4gICAgICBjYXNlICdkcm9wZG93bic6XG4gICAgICAgIGlmICh0eXBlb2YgY3VycmVudCA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG9yaWdpbmFsID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgIHJldHVybiBjdXJyZW50Py5pZCAhPT0gb3JpZ2luYWw/LmlkIHx8IGN1cnJlbnQ/LnZhbHVlICE9PSBvcmlnaW5hbD8udmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGN1cnJlbnQgIT09IG9yaWdpbmFsO1xuXG4gICAgICBjYXNlICdib29sZWFuJzpcbiAgICAgICAgcmV0dXJuIEJvb2xlYW4oY3VycmVudCkgIT09IEJvb2xlYW4ob3JpZ2luYWwpO1xuXG4gICAgICBjYXNlICdkYXRlJzpcbiAgICAgICAgY29uc3QgY3VycmVudERhdGUgPSBuZXcgRGF0ZShjdXJyZW50KS5nZXRUaW1lKCk7XG4gICAgICAgIGNvbnN0IG9yaWdpbmFsRGF0ZSA9IG5ldyBEYXRlKG9yaWdpbmFsKS5nZXRUaW1lKCk7XG4gICAgICAgIHJldHVybiBpc05hTihjdXJyZW50RGF0ZSkgfHwgaXNOYU4ob3JpZ2luYWxEYXRlKVxuICAgICAgICAgID8gY3VycmVudCAhPT0gb3JpZ2luYWxcbiAgICAgICAgICA6IGN1cnJlbnREYXRlICE9PSBvcmlnaW5hbERhdGU7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShjdXJyZW50KSAhPT0gSlNPTi5zdHJpbmdpZnkob3JpZ2luYWwpO1xuICAgIH1cbiAgfVxuXG5cbiAgLy8gQ29weSBjb2x1bW4gZGF0YSB0byBjb2x1bW4gZHJvcGRvd24gdmFsdWVzIGluIGNhc2Ugb2YgYWJzZW5jZVxuICBhc3luYyBjb3B5RHJvcGRvd25EYXRhUmVjdXJzaXZlbHkoY29sdW1uczogYW55W10pOiBQcm9taXNlPGFueVtdPiB7XG4gICAgZm9yIChjb25zdCBjb2wgb2YgY29sdW1ucykge1xuICAgICAgaWYgKGNvbC50eXBlID09PSAnZHJvcGRvd24nIHx8IGNvbC50eXBlID09ICdhcnJheScpIHtcbiAgICAgICAgY29uc3QgZHJvcGRvd25WYWx1ZXMgPSBjb2wuY29sdW1uX2Ryb3Bkb3duX3ZhbHVlO1xuICAgICAgICBjb25zdCBkYXRhVmFsdWVzID0gY29sLmNvbHVtbl9kYXRhO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAoIUFycmF5LmlzQXJyYXkoZHJvcGRvd25WYWx1ZXMpIHx8IGRyb3Bkb3duVmFsdWVzLmxlbmd0aCA9PT0gMCkgJiZcbiAgICAgICAgICBBcnJheS5pc0FycmF5KGRhdGFWYWx1ZXMpICYmXG4gICAgICAgICAgZGF0YVZhbHVlcy5sZW5ndGggPiAwXG4gICAgICAgICkge1xuICAgICAgICAgIGNvbC5jb2x1bW5fZHJvcGRvd25fdmFsdWUgPSBkYXRhVmFsdWVzLm1hcChpdGVtID0+XG4gICAgICAgICAgICB0eXBlb2YgaXRlbSA9PT0gJ29iamVjdCdcbiAgICAgICAgICAgICAgPyBpdGVtXG4gICAgICAgICAgICAgIDogeyBpZDogaXRlbSwgbmFtZTogaXRlbSwgdmFsdWU6IGl0ZW0gfVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoY29sLmNoaWxkcmVuKSAmJiBjb2wuY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuICAgICAgICBjb2wuY2hpbGRyZW4gPSBhd2FpdCB0aGlzLmNvcHlEcm9wZG93bkRhdGFSZWN1cnNpdmVseShjb2wuY2hpbGRyZW4pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBjb2x1bW5zO1xuICB9XG5cblxuICBmb3JtYXREYXRlVmFsdWUodmFsdWU6IGFueSwgbW9tZW50Rm9ybWF0Pzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCB0cnlGb3JtYXQgPSAoZGF0ZTogRGF0ZSkgPT4ge1xuICAgICAgY29uc3QgYW5ndWxhckZvcm1hdCA9IG1vbWVudEZvcm1hdFxuICAgICAgICA/IHRoaXMuY29udmVydE1vbWVudFRvQW5ndWxhckRhdGVGb3JtYXQobW9tZW50Rm9ybWF0KVxuICAgICAgICA6ICdkZC9NTS95eXl5JztcbiAgICAgIHJldHVybiB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybShkYXRlLCBhbmd1bGFyRm9ybWF0KSA/PyAnLSc7XG4gICAgfTtcblxuICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIERhdGUgJiYgIWlzTmFOKHZhbHVlLmdldFRpbWUoKSkpIHtcbiAgICAgIHJldHVybiB0cnlGb3JtYXQodmFsdWUpO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBsZXQgY2xlYW5lZFZhbHVlID0gdmFsdWUucmVwbGFjZSgvXkRELywgJzAxJyk7XG5cbiAgICAgIGNvbnN0IHBhcnNlZERETU0gPSB0aGlzLnBhcnNlRERNTVlZWVkoY2xlYW5lZFZhbHVlKTtcbiAgICAgIGlmIChwYXJzZWRERE1NKSByZXR1cm4gdHJ5Rm9ybWF0KHBhcnNlZERETU0pO1xuXG4gICAgICBpZiAoIWlzTmFOKERhdGUucGFyc2UoY2xlYW5lZFZhbHVlKSkpIHtcbiAgICAgICAgcmV0dXJuIHRyeUZvcm1hdChuZXcgRGF0ZShjbGVhbmVkVmFsdWUpKTtcbiAgICAgIH1cbiAgICB9XG5cblxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmICFpc05hTihEYXRlLnBhcnNlKHZhbHVlKSkpIHtcbiAgICAgIHJldHVybiB0cnlGb3JtYXQobmV3IERhdGUodmFsdWUpKTtcbiAgICB9XG5cbiAgICBpZiAodmFsdWU/Lm5hbWUgfHwgdmFsdWU/LnZhbHVlKSB7XG4gICAgICByZXR1cm4gdmFsdWUudmFsdWUgPz8gdmFsdWUubmFtZSA/PyAnLSc7XG4gICAgfVxuXG4gICAgaWYgKHZhbHVlICE9IG51bGwpIHJldHVybiBTdHJpbmcodmFsdWUpO1xuXG4gICAgcmV0dXJuICctJztcbiAgfVxuXG5cblxuXG4gIHByaXZhdGUgY29udmVydE1vbWVudFRvQW5ndWxhckRhdGVGb3JtYXQobW9tZW50Rm9ybWF0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghbW9tZW50Rm9ybWF0KSByZXR1cm4gJ21lZGl1bURhdGUnO1xuXG4gICAgcmV0dXJuIG1vbWVudEZvcm1hdFxuICAgICAgLnJlcGxhY2UoL0REL2csICdkZCcpXG4gICAgICAucmVwbGFjZSgvRC9nLCAnZCcpXG4gICAgICAucmVwbGFjZSgvWVlZWS9nLCAneXl5eScpXG4gICAgICAucmVwbGFjZSgvWVkvZywgJ3l5JylcbiAgICAgIC5yZXBsYWNlKC9NTU1NL2csICdNTU1NJylcbiAgICAgIC5yZXBsYWNlKC9NTU0vZywgJ01NTScpXG4gICAgICAucmVwbGFjZSgvTU0vZywgJ01NJylcbiAgICAgIC5yZXBsYWNlKC9NL2csICdNJylcbiAgICAgIC5yZXBsYWNlKC9kZGRkL2csICdFRUVFJylcbiAgICAgIC5yZXBsYWNlKC9kZGQvZywgJ0VFRScpXG4gICAgICAucmVwbGFjZSgvSEgvZywgJ0hIJylcbiAgICAgIC5yZXBsYWNlKC9IL2csICdIJylcbiAgICAgIC5yZXBsYWNlKC9oaC9nLCAnaGgnKVxuICAgICAgLnJlcGxhY2UoL2gvZywgJ2gnKVxuICAgICAgLnJlcGxhY2UoL21tL2csICdtbScpXG4gICAgICAucmVwbGFjZSgvbS9nLCAnbScpXG4gICAgICAucmVwbGFjZSgvc3MvZywgJ3NzJylcbiAgICAgIC5yZXBsYWNlKC9zL2csICdzJylcbiAgICAgIC5yZXBsYWNlKC9BL2csICdhJylcbiAgICAgIC5yZXBsYWNlKC9hL2csICdhJyk7XG4gIH1cblxuICBwcml2YXRlIHBhcnNlRERNTVlZWVkodmFsdWU6IHN0cmluZyk6IERhdGUgfCBudWxsIHtcbiAgICBjb25zdCBtYXRjaCA9IHZhbHVlLm1hdGNoKC9eKFxcZHsyfSlcXC8oXFxkezJ9KVxcLyhcXGR7NH0pJC8pO1xuICAgIGlmICghbWF0Y2gpIHJldHVybiBudWxsO1xuXG4gICAgY29uc3QgZGF5ID0gK21hdGNoWzFdO1xuICAgIGNvbnN0IG1vbnRoID0gK21hdGNoWzJdIC0gMTtcbiAgICBjb25zdCB5ZWFyID0gK21hdGNoWzNdO1xuXG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHllYXIsIG1vbnRoLCBkYXkpO1xuXG4gICAgcmV0dXJuIChkYXRlLmdldEZ1bGxZZWFyKCkgPT09IHllYXIgJiZcbiAgICAgIGRhdGUuZ2V0TW9udGgoKSA9PT0gbW9udGggJiZcbiAgICAgIGRhdGUuZ2V0RGF0ZSgpID09PSBkYXkpXG4gICAgICA/IGRhdGVcbiAgICAgIDogbnVsbDtcbiAgfVxuXG59XG5cblxuXG5cbiJdfQ==
@@ -3,7 +3,7 @@
3
3
  */
4
4
  export * from './lib/data-grid.module';
5
5
  export * from './lib/data-grid/data-grid.component';
6
- export * from './lib/interfaces/data-grid-config.ts';
6
+ // export * from './lib/interfaces/data-grid-config.ts';
7
7
  export * from './lib/services/common.service';
8
8
  // import './lib/styles/styles.css';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2RhdGEtZ3JpZC9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsb0NBQW9DIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBkYXRhLWdyaWRcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYXRhLWdyaWQubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RhdGEtZ3JpZC9kYXRhLWdyaWQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ludGVyZmFjZXMvZGF0YS1ncmlkLWNvbmZpZy50cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9jb21tb24uc2VydmljZSc7XG4vLyBpbXBvcnQgJy4vbGliL3N0eWxlcy9zdHlsZXMuY3NzJzsiXX0=
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2RhdGEtZ3JpZC9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCx3REFBd0Q7QUFDeEQsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxvQ0FBb0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIGRhdGEtZ3JpZFxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2RhdGEtZ3JpZC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGF0YS1ncmlkL2RhdGEtZ3JpZC5jb21wb25lbnQnO1xuLy8gZXhwb3J0ICogZnJvbSAnLi9saWIvaW50ZXJmYWNlcy9kYXRhLWdyaWQtY29uZmlnLnRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2NvbW1vbi5zZXJ2aWNlJztcbi8vIGltcG9ydCAnLi9saWIvc3R5bGVzL3N0eWxlcy5jc3MnOyJdfQ==