taxtank-core 0.21.0 → 0.21.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -77,12 +77,31 @@ export class PropertyCollection extends Collection {
77
77
  * Get property with the lowest tax position
78
78
  */
79
79
  getBestPerformanceTaxProperty(transactions, depreciations) {
80
+ const transactionsByProperty = transactions.groupBy('property.id');
81
+ const depreciationsByProperty = depreciations.groupBy('property.id');
80
82
  return this.items.reduce((min, current) => {
81
- return min.getTaxPosition(transactions.filterBy('property.id', min.id), depreciations.filterBy('property.id', min.id))
82
- > current.getTaxPosition(transactions.filterBy('property.id', current.id), depreciations.filterBy('property.id', current.id))
83
- ? current
84
- : min;
83
+ const minTaxPosition = min.getTaxPosition(transactionsByProperty.get(min.id), depreciationsByProperty.get(min.id));
84
+ const currentTaxPosition = current.getTaxPosition(transactionsByProperty.get(current.id), depreciationsByProperty.get(current.id));
85
+ return minTaxPosition > currentTaxPosition ? current : min;
85
86
  }, this.first);
86
87
  }
88
+ /**
89
+ * Show best performance properties first
90
+ * https://taxtank.atlassian.net/wiki/spaces/TAXTANK/pages/217677997/Property+Tank+Dashboard
91
+ */
92
+ sortByBestPerformance(transactions, depreciations) {
93
+ const activeProperties = this.getActiveProperties();
94
+ // nothing to sort when no active properties
95
+ if (!activeProperties.length) {
96
+ return this;
97
+ }
98
+ const bestProperties = uniqBy(this.create([
99
+ activeProperties.getBestPerformanceGrowthProperty(),
100
+ activeProperties.getBestPerformanceTaxProperty(transactions, depreciations)
101
+ ]).toArray(), 'id');
102
+ const newItems = this.remove(bestProperties).toArray();
103
+ newItems.unshift(...bestProperties);
104
+ return this.create(newItems);
105
+ }
87
106
  }
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHkuY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9jb2xsZWN0aW9ucy9wcm9wZXJ0eS9wcm9wZXJ0eS5jb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBRTNFLE9BQU8sTUFBTSxNQUFNLGVBQWUsQ0FBQztBQUluQyxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsVUFBb0I7SUFDMUQ7OztPQUdHO0lBQ0gsZUFBZSxDQUFDLEVBQVU7UUFDeEIsT0FBTyxJQUFJLGtCQUFrQixDQUMzQixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQWtCLEVBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUNoRixDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0gsbUJBQW1CO1FBQ2pCLE9BQU8sSUFBSSxrQkFBa0IsQ0FDM0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFrQixFQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQ3RFLENBQUM7SUFDSixDQUFDO0lBRUQsb0JBQW9CO1FBQ2xCLE9BQU8sSUFBSSxrQkFBa0IsQ0FDM0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFrQixFQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FDckUsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNILG1CQUFtQjtRQUNqQixPQUFPLElBQUksa0JBQWtCLENBQzNCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBa0IsRUFB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Q0FBQyxhQUFhLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2tCQUNsSCxPQUFPLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxhQUFhLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQzdILENBQUMsQ0FBQyxPQUFPO2dCQUNULENBQUMsQ0FBQyxHQUFHLENBQUM7UUFDVixDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbGxlY3Rpb24gfSBmcm9tICcuLi9jb2xsZWN0aW9uJztcbmltcG9ydCB7IFByb3BlcnR5IH0gZnJvbSAnLi4vLi4vbW9kZWxzL3Byb3BlcnR5L3Byb3BlcnR5JztcbmltcG9ydCB7IEZpbmFuY2lhbFllYXIgfSBmcm9tICcuLi8uLi9tb2RlbHMvZmluYW5jaWFsLXllYXIvZmluYW5jaWFsLXllYXInO1xuaW1wb3J0IHsgUHJvcGVydHlDYXRlZ29yeSB9IGZyb20gJy4uLy4uL21vZGVscy9wcm9wZXJ0eS9wcm9wZXJ0eS1jYXRlZ29yeSc7XG5pbXBvcnQgdW5pcUJ5IGZyb20gJ2xvZGFzaC91bmlxQnknO1xuaW1wb3J0IHsgRGVwcmVjaWF0aW9uQ29sbGVjdGlvbiB9IGZyb20gJy4uL2RlcHJlY2lhdGlvbi5jb2xsZWN0aW9uJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiB9IGZyb20gJy4uL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uLmNvbGxlY3Rpb24nO1xuXG5leHBvcnQgY2xhc3MgUHJvcGVydHlDb2xsZWN0aW9uIGV4dGVuZHMgQ29sbGVjdGlvbjxQcm9wZXJ0eT4ge1xuICAvKipcbiAgICogR2V0IG5ldyBwcm9wZXJ0eSBjb2xsZWN0aW9uIGZpbHRlcmVkIGJ5IGNhdGVnb3J5IGlkXG4gICAqIEBwYXJhbSBpZCBpZCBvZiBjYXRlZ29yeSBmb3IgZmlsdGVyXG4gICAqL1xuICBnZXRCeUNhdGVnb3J5SWQoaWQ6IG51bWJlcik6IFByb3BlcnR5Q29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBQcm9wZXJ0eUNvbGxlY3Rpb24oXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigocHJvcGVydHk6IFByb3BlcnR5KTogYm9vbGVhbiA9PiBwcm9wZXJ0eS5jYXRlZ29yeS5pZCA9PT0gaWQpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgbmV3IHByb3BlcnR5IGNvbGxlY3Rpb24gZmlsdGVyZWQgYnkgYWN0aXZlIHN0YXR1c1xuICAgKi9cbiAgZ2V0QWN0aXZlUHJvcGVydGllcygpOiBQcm9wZXJ0eUNvbGxlY3Rpb24ge1xuICAgIHJldHVybiBuZXcgUHJvcGVydHlDb2xsZWN0aW9uKFxuICAgICAgdGhpcy5pdGVtcy5maWx0ZXIoKHByb3BlcnR5OiBQcm9wZXJ0eSk6IGJvb2xlYW4gPT4gcHJvcGVydHkuaXNBY3RpdmUpXG4gICAgKTtcbiAgfVxuXG4gIGdldENyZWF0ZWRQcm9wZXJ0aWVzKCk6IFByb3BlcnR5Q29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBQcm9wZXJ0eUNvbGxlY3Rpb24oXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigocHJvcGVydHk6IFByb3BlcnR5KTogYm9vbGVhbiA9PiBwcm9wZXJ0eS5pc093bigpKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IG5ldyBwcm9wZXJ0eSBjb2xsZWN0aW9uIGZpbHRlcmVkIGJ5IHNoYXJlZFxuICAgKi9cbiAgZ2V0U2hhcmVkUHJvcGVydGllcygpOiBQcm9wZXJ0eUNvbGxlY3Rpb24ge1xuICAgIHJldHVybiBuZXcgUHJvcGVydHlDb2xsZWN0aW9uKFxuICAgICAgdGhpcy5pdGVtcy5maWx0ZXIoKHByb3BlcnR5OiBQcm9wZXJ0eSk6IGJvb2xlYW4gPT4gIXByb3BlcnR5LmlzT3duKCkpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdG90YWwgcHVyY2hhc2UgcHJpY2UgZm9yIGFsbCBwcm9wZXJ0aWVzIGluIHRoZSBjb2xsZWN0aW9uXG4gICAqL1xuICBnZXQgcHVyY2hhc2VQcmljZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnN1bUJ5KCdwdXJjaGFzZVByaWNlJyk7XG4gIH1cblxuICBnZXQgZ3Jvd3RoUGVyY2VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnN1bUJ5KCdncm93dGhQZXJjZW50Jyk7XG4gIH1cblxuICBnZXQgbWFya2V0VmFsdWUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5zdW1CeSgnbWFya2V0VmFsdWUnKTtcbiAgfVxuXG4gIGdldCBmb3JlY2FzdGVkUmVudGFsUmV0dXJuKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuc3VtQnkoJ2ZvcmVjYXN0ZWRSZW50YWxSZXR1cm4nKTtcbiAgfVxuXG4gIGdldCBmb3JlY2FzdGVkVGF4UG9zaXRpb24oKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5zdW1CeSgnZm9yZWNhc3RlZFRheFBvc2l0aW9uJyk7XG4gIH1cblxuICBnZXQgZmlyc3RGb3JlY2FzdFllYXIoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5yZWR1Y2UoKG1pbjogbnVtYmVyLCBwcm9wZXJ0eTogUHJvcGVydHkpOiBudW1iZXIgPT4ge1xuICAgICAgY29uc3QgY3VycmVudDogbnVtYmVyID0gcHJvcGVydHkuZmlyc3RGb3JlY2FzdFllYXI7XG4gICAgICByZXR1cm4gbWluID4gY3VycmVudCA/IGN1cnJlbnQgOiBtaW47XG4gICAgfSwgbmV3IEZpbmFuY2lhbFllYXIoKS55ZWFyKTtcbiAgfVxuXG4gIGdldCBtYXJrZXRWYWx1ZUdyb3d0aCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnN1bUJ5KCdtYXJrZXRWYWx1ZUdyb3d0aCcpO1xuICB9XG5cbiAgZ2V0T3duZXJPY2N1cGllZFByb3BlcnRpZXMoKTogUHJvcGVydHlDb2xsZWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IFByb3BlcnR5Q29sbGVjdGlvbihcbiAgICAgIHRoaXMuaXRlbXMuZmlsdGVyKChwcm9wZXJ0eTogUHJvcGVydHkpOiBib29sZWFuID0+IHByb3BlcnR5LmNhdGVnb3J5LmlzT3duZXJPY2N1cGllZCgpKVxuICAgICk7XG4gIH1cblxuICBnZXQgZWFybGllc3RDb250cmFjdERhdGUoKTogRGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMucmVkdWNlKChtaW46IERhdGUsIHByb3BlcnR5OiBQcm9wZXJ0eSk6IERhdGUgPT4ge1xuICAgICAgcmV0dXJuIG1pbiA8IHByb3BlcnR5LmNvbnRyYWN0RGF0ZSA/IG1pbiA6IHByb3BlcnR5LmNvbnRyYWN0RGF0ZTtcbiAgICB9LCBuZXcgRmluYW5jaWFsWWVhcihuZXcgRGF0ZSgpKS5zdGFydERhdGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBsaXN0IG9mIHVuaXF1ZSBwcm9wZXJ0eSBjYXRlZ29yaWVzIGZyb20gY29sbGVjdGlvblxuICAgKi9cbiAgZ2V0Q2F0ZWdvcmllcygpOiBQcm9wZXJ0eUNhdGVnb3J5W10ge1xuICAgIHJldHVybiB1bmlxQnkodGhpcy5pdGVtcy5tYXAoKHByb3BlcnR5OiBQcm9wZXJ0eSk6IFByb3BlcnR5Q2F0ZWdvcnkgPT4gcHJvcGVydHkuY2F0ZWdvcnkpLCAnaWQnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgcHJvcGVydHkgd2l0aCB0aGUgaGlnaGVzdCBncm93dGggcGVyY2VudFxuICAgKi9cbiAgZ2V0QmVzdFBlcmZvcm1hbmNlR3Jvd3RoUHJvcGVydHkoKTogUHJvcGVydHkge1xuICAgIHJldHVybiB0aGlzLml0ZW1zLnJlZHVjZSgobWF4OiBQcm9wZXJ0eSwgY3VycmVudDogUHJvcGVydHkpOiBQcm9wZXJ0eSA9PiB7XG4gICAgICByZXR1cm4gbWF4Lmdyb3d0aFBlcmNlbnQgPCBjdXJyZW50Lmdyb3d0aFBlcmNlbnQgPyBjdXJyZW50IDogbWF4O1xuICAgIH0sIHRoaXMuZmlyc3QpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBwcm9wZXJ0eSB3aXRoIHRoZSBsb3dlc3QgdGF4IHBvc2l0aW9uXG4gICAqL1xuICBnZXRCZXN0UGVyZm9ybWFuY2VUYXhQcm9wZXJ0eSh0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiwgZGVwcmVjaWF0aW9uczogRGVwcmVjaWF0aW9uQ29sbGVjdGlvbik6IFByb3BlcnR5IHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5yZWR1Y2UoKG1pbjogUHJvcGVydHksIGN1cnJlbnQ6IFByb3BlcnR5KTogUHJvcGVydHkgPT4ge1xuICAgICAgcmV0dXJuIG1pbi5nZXRUYXhQb3NpdGlvbih0cmFuc2FjdGlvbnMuZmlsdGVyQnkoJ3Byb3BlcnR5LmlkJywgbWluLmlkKSwgZGVwcmVjaWF0aW9ucy5maWx0ZXJCeSgncHJvcGVydHkuaWQnLCBtaW4uaWQpKVxuICAgICAgICA+IGN1cnJlbnQuZ2V0VGF4UG9zaXRpb24odHJhbnNhY3Rpb25zLmZpbHRlckJ5KCdwcm9wZXJ0eS5pZCcsIGN1cnJlbnQuaWQpLCBkZXByZWNpYXRpb25zLmZpbHRlckJ5KCdwcm9wZXJ0eS5pZCcsIGN1cnJlbnQuaWQpKVxuICAgICAgICA/IGN1cnJlbnRcbiAgICAgICAgOiBtaW47XG4gICAgfSwgdGhpcy5maXJzdCk7XG4gIH1cbn1cbiJdfQ==
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHkuY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9jb2xsZWN0aW9ucy9wcm9wZXJ0eS9wcm9wZXJ0eS5jb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBRTNFLE9BQU8sTUFBTSxNQUFNLGVBQWUsQ0FBQztBQUtuQyxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsVUFBb0I7SUFDMUQ7OztPQUdHO0lBQ0gsZUFBZSxDQUFDLEVBQVU7UUFDeEIsT0FBTyxJQUFJLGtCQUFrQixDQUMzQixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQWtCLEVBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUNoRixDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0gsbUJBQW1CO1FBQ2pCLE9BQU8sSUFBSSxrQkFBa0IsQ0FDM0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFrQixFQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQ3RFLENBQUM7SUFDSixDQUFDO0lBRUQsb0JBQW9CO1FBQ2xCLE9BQU8sSUFBSSxrQkFBa0IsQ0FDM0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFrQixFQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FDckUsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNILG1CQUFtQjtRQUNqQixPQUFPLElBQUksa0JBQWtCLENBQzNCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBa0IsRUFBVyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FDdEUsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELElBQUksc0JBQXNCO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxJQUFJLHFCQUFxQjtRQUN2QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsSUFBSSxpQkFBaUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQVcsRUFBRSxRQUFrQixFQUFVLEVBQUU7WUFDbkUsTUFBTSxPQUFPLEdBQVcsUUFBUSxDQUFDLGlCQUFpQixDQUFDO1lBQ25ELE9BQU8sR0FBRyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7UUFDdkMsQ0FBQyxFQUFFLElBQUksYUFBYSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQUksaUJBQWlCO1FBQ25CLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCwwQkFBMEI7UUFDeEIsT0FBTyxJQUFJLGtCQUFrQixDQUMzQixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQWtCLEVBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FDeEYsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLG9CQUFvQjtRQUN0QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBUyxFQUFFLFFBQWtCLEVBQVEsRUFBRTtZQUMvRCxPQUFPLEdBQUcsR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUM7UUFDbkUsQ0FBQyxFQUFFLElBQUksYUFBYSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxhQUFhO1FBQ1gsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFrQixFQUFvQixFQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ25HLENBQUM7SUFFRDs7T0FFRztJQUNILGdDQUFnQztRQUM5QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBYSxFQUFFLE9BQWlCLEVBQVksRUFBRTtZQUN0RSxPQUFPLEdBQUcsQ0FBQyxhQUFhLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7UUFDbkUsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQixDQUFDO0lBRUQ7O09BRUc7SUFDSCw2QkFBNkIsQ0FBQyxZQUFtQyxFQUFFLGFBQXFDO1FBQ3RHLE1BQU0sc0JBQXNCLEdBQWdELFlBQVksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDaEgsTUFBTSx1QkFBdUIsR0FBaUQsYUFBYSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUVuSCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBYSxFQUFFLE9BQWlCLEVBQVksRUFBRTtZQUN0RSxNQUFNLGNBQWMsR0FBVyxHQUFHLENBQUMsY0FBYyxDQUFDLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsdUJBQXVCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzNILE1BQU0sa0JBQWtCLEdBQVcsT0FBTyxDQUFDLGNBQWMsQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLHVCQUF1QixDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUUzSSxPQUFPLGNBQWMsR0FBRyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7UUFDN0QsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gscUJBQXFCLENBQUMsWUFBbUMsRUFBRSxhQUFxQztRQUM5RixNQUFNLGdCQUFnQixHQUF1QixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUV4RSw0Q0FBNEM7UUFDNUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRTtZQUM1QixPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsTUFBTSxjQUFjLEdBQWUsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDcEQsZ0JBQWdCLENBQUMsZ0NBQWdDLEVBQUU7WUFDbkQsZ0JBQWdCLENBQUMsNkJBQTZCLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQztTQUM1RSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFcEIsTUFBTSxRQUFRLEdBQWUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNuRSxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsY0FBYyxDQUFDLENBQUM7UUFFcEMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQy9CLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbGxlY3Rpb24gfSBmcm9tICcuLi9jb2xsZWN0aW9uJztcbmltcG9ydCB7IFByb3BlcnR5IH0gZnJvbSAnLi4vLi4vbW9kZWxzL3Byb3BlcnR5L3Byb3BlcnR5JztcbmltcG9ydCB7IEZpbmFuY2lhbFllYXIgfSBmcm9tICcuLi8uLi9tb2RlbHMvZmluYW5jaWFsLXllYXIvZmluYW5jaWFsLXllYXInO1xuaW1wb3J0IHsgUHJvcGVydHlDYXRlZ29yeSB9IGZyb20gJy4uLy4uL21vZGVscy9wcm9wZXJ0eS9wcm9wZXJ0eS1jYXRlZ29yeSc7XG5pbXBvcnQgdW5pcUJ5IGZyb20gJ2xvZGFzaC91bmlxQnknO1xuaW1wb3J0IHsgRGVwcmVjaWF0aW9uQ29sbGVjdGlvbiB9IGZyb20gJy4uL2RlcHJlY2lhdGlvbi5jb2xsZWN0aW9uJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiB9IGZyb20gJy4uL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uLmNvbGxlY3Rpb24nO1xuaW1wb3J0IHsgQ29sbGVjdGlvbkRpY3Rpb25hcnkgfSBmcm9tICcuLi9jb2xsZWN0aW9uLWRpY3Rpb25hcnknO1xuXG5leHBvcnQgY2xhc3MgUHJvcGVydHlDb2xsZWN0aW9uIGV4dGVuZHMgQ29sbGVjdGlvbjxQcm9wZXJ0eT4ge1xuICAvKipcbiAgICogR2V0IG5ldyBwcm9wZXJ0eSBjb2xsZWN0aW9uIGZpbHRlcmVkIGJ5IGNhdGVnb3J5IGlkXG4gICAqIEBwYXJhbSBpZCBpZCBvZiBjYXRlZ29yeSBmb3IgZmlsdGVyXG4gICAqL1xuICBnZXRCeUNhdGVnb3J5SWQoaWQ6IG51bWJlcik6IFByb3BlcnR5Q29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBQcm9wZXJ0eUNvbGxlY3Rpb24oXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigocHJvcGVydHk6IFByb3BlcnR5KTogYm9vbGVhbiA9PiBwcm9wZXJ0eS5jYXRlZ29yeS5pZCA9PT0gaWQpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgbmV3IHByb3BlcnR5IGNvbGxlY3Rpb24gZmlsdGVyZWQgYnkgYWN0aXZlIHN0YXR1c1xuICAgKi9cbiAgZ2V0QWN0aXZlUHJvcGVydGllcygpOiBQcm9wZXJ0eUNvbGxlY3Rpb24ge1xuICAgIHJldHVybiBuZXcgUHJvcGVydHlDb2xsZWN0aW9uKFxuICAgICAgdGhpcy5pdGVtcy5maWx0ZXIoKHByb3BlcnR5OiBQcm9wZXJ0eSk6IGJvb2xlYW4gPT4gcHJvcGVydHkuaXNBY3RpdmUpXG4gICAgKTtcbiAgfVxuXG4gIGdldENyZWF0ZWRQcm9wZXJ0aWVzKCk6IFByb3BlcnR5Q29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBQcm9wZXJ0eUNvbGxlY3Rpb24oXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigocHJvcGVydHk6IFByb3BlcnR5KTogYm9vbGVhbiA9PiBwcm9wZXJ0eS5pc093bigpKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IG5ldyBwcm9wZXJ0eSBjb2xsZWN0aW9uIGZpbHRlcmVkIGJ5IHNoYXJlZFxuICAgKi9cbiAgZ2V0U2hhcmVkUHJvcGVydGllcygpOiBQcm9wZXJ0eUNvbGxlY3Rpb24ge1xuICAgIHJldHVybiBuZXcgUHJvcGVydHlDb2xsZWN0aW9uKFxuICAgICAgdGhpcy5pdGVtcy5maWx0ZXIoKHByb3BlcnR5OiBQcm9wZXJ0eSk6IGJvb2xlYW4gPT4gIXByb3BlcnR5LmlzT3duKCkpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdG90YWwgcHVyY2hhc2UgcHJpY2UgZm9yIGFsbCBwcm9wZXJ0aWVzIGluIHRoZSBjb2xsZWN0aW9uXG4gICAqL1xuICBnZXQgcHVyY2hhc2VQcmljZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnN1bUJ5KCdwdXJjaGFzZVByaWNlJyk7XG4gIH1cblxuICBnZXQgZ3Jvd3RoUGVyY2VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnN1bUJ5KCdncm93dGhQZXJjZW50Jyk7XG4gIH1cblxuICBnZXQgbWFya2V0VmFsdWUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5zdW1CeSgnbWFya2V0VmFsdWUnKTtcbiAgfVxuXG4gIGdldCBmb3JlY2FzdGVkUmVudGFsUmV0dXJuKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuc3VtQnkoJ2ZvcmVjYXN0ZWRSZW50YWxSZXR1cm4nKTtcbiAgfVxuXG4gIGdldCBmb3JlY2FzdGVkVGF4UG9zaXRpb24oKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5zdW1CeSgnZm9yZWNhc3RlZFRheFBvc2l0aW9uJyk7XG4gIH1cblxuICBnZXQgZmlyc3RGb3JlY2FzdFllYXIoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5yZWR1Y2UoKG1pbjogbnVtYmVyLCBwcm9wZXJ0eTogUHJvcGVydHkpOiBudW1iZXIgPT4ge1xuICAgICAgY29uc3QgY3VycmVudDogbnVtYmVyID0gcHJvcGVydHkuZmlyc3RGb3JlY2FzdFllYXI7XG4gICAgICByZXR1cm4gbWluID4gY3VycmVudCA/IGN1cnJlbnQgOiBtaW47XG4gICAgfSwgbmV3IEZpbmFuY2lhbFllYXIoKS55ZWFyKTtcbiAgfVxuXG4gIGdldCBtYXJrZXRWYWx1ZUdyb3d0aCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnN1bUJ5KCdtYXJrZXRWYWx1ZUdyb3d0aCcpO1xuICB9XG5cbiAgZ2V0T3duZXJPY2N1cGllZFByb3BlcnRpZXMoKTogUHJvcGVydHlDb2xsZWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IFByb3BlcnR5Q29sbGVjdGlvbihcbiAgICAgIHRoaXMuaXRlbXMuZmlsdGVyKChwcm9wZXJ0eTogUHJvcGVydHkpOiBib29sZWFuID0+IHByb3BlcnR5LmNhdGVnb3J5LmlzT3duZXJPY2N1cGllZCgpKVxuICAgICk7XG4gIH1cblxuICBnZXQgZWFybGllc3RDb250cmFjdERhdGUoKTogRGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMucmVkdWNlKChtaW46IERhdGUsIHByb3BlcnR5OiBQcm9wZXJ0eSk6IERhdGUgPT4ge1xuICAgICAgcmV0dXJuIG1pbiA8IHByb3BlcnR5LmNvbnRyYWN0RGF0ZSA/IG1pbiA6IHByb3BlcnR5LmNvbnRyYWN0RGF0ZTtcbiAgICB9LCBuZXcgRmluYW5jaWFsWWVhcihuZXcgRGF0ZSgpKS5zdGFydERhdGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBsaXN0IG9mIHVuaXF1ZSBwcm9wZXJ0eSBjYXRlZ29yaWVzIGZyb20gY29sbGVjdGlvblxuICAgKi9cbiAgZ2V0Q2F0ZWdvcmllcygpOiBQcm9wZXJ0eUNhdGVnb3J5W10ge1xuICAgIHJldHVybiB1bmlxQnkodGhpcy5pdGVtcy5tYXAoKHByb3BlcnR5OiBQcm9wZXJ0eSk6IFByb3BlcnR5Q2F0ZWdvcnkgPT4gcHJvcGVydHkuY2F0ZWdvcnkpLCAnaWQnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgcHJvcGVydHkgd2l0aCB0aGUgaGlnaGVzdCBncm93dGggcGVyY2VudFxuICAgKi9cbiAgZ2V0QmVzdFBlcmZvcm1hbmNlR3Jvd3RoUHJvcGVydHkoKTogUHJvcGVydHkge1xuICAgIHJldHVybiB0aGlzLml0ZW1zLnJlZHVjZSgobWF4OiBQcm9wZXJ0eSwgY3VycmVudDogUHJvcGVydHkpOiBQcm9wZXJ0eSA9PiB7XG4gICAgICByZXR1cm4gbWF4Lmdyb3d0aFBlcmNlbnQgPCBjdXJyZW50Lmdyb3d0aFBlcmNlbnQgPyBjdXJyZW50IDogbWF4O1xuICAgIH0sIHRoaXMuZmlyc3QpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBwcm9wZXJ0eSB3aXRoIHRoZSBsb3dlc3QgdGF4IHBvc2l0aW9uXG4gICAqL1xuICBnZXRCZXN0UGVyZm9ybWFuY2VUYXhQcm9wZXJ0eSh0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiwgZGVwcmVjaWF0aW9uczogRGVwcmVjaWF0aW9uQ29sbGVjdGlvbik6IFByb3BlcnR5IHtcbiAgICBjb25zdCB0cmFuc2FjdGlvbnNCeVByb3BlcnR5OiBDb2xsZWN0aW9uRGljdGlvbmFyeTxUcmFuc2FjdGlvbkNvbGxlY3Rpb24+ID0gdHJhbnNhY3Rpb25zLmdyb3VwQnkoJ3Byb3BlcnR5LmlkJyk7XG4gICAgY29uc3QgZGVwcmVjaWF0aW9uc0J5UHJvcGVydHk6IENvbGxlY3Rpb25EaWN0aW9uYXJ5PERlcHJlY2lhdGlvbkNvbGxlY3Rpb24+ID0gZGVwcmVjaWF0aW9ucy5ncm91cEJ5KCdwcm9wZXJ0eS5pZCcpO1xuXG4gICAgcmV0dXJuIHRoaXMuaXRlbXMucmVkdWNlKChtaW46IFByb3BlcnR5LCBjdXJyZW50OiBQcm9wZXJ0eSk6IFByb3BlcnR5ID0+IHtcbiAgICAgIGNvbnN0IG1pblRheFBvc2l0aW9uOiBudW1iZXIgPSBtaW4uZ2V0VGF4UG9zaXRpb24odHJhbnNhY3Rpb25zQnlQcm9wZXJ0eS5nZXQobWluLmlkKSwgZGVwcmVjaWF0aW9uc0J5UHJvcGVydHkuZ2V0KG1pbi5pZCkpO1xuICAgICAgY29uc3QgY3VycmVudFRheFBvc2l0aW9uOiBudW1iZXIgPSBjdXJyZW50LmdldFRheFBvc2l0aW9uKHRyYW5zYWN0aW9uc0J5UHJvcGVydHkuZ2V0KGN1cnJlbnQuaWQpLCBkZXByZWNpYXRpb25zQnlQcm9wZXJ0eS5nZXQoY3VycmVudC5pZCkpO1xuXG4gICAgICByZXR1cm4gbWluVGF4UG9zaXRpb24gPiBjdXJyZW50VGF4UG9zaXRpb24gPyBjdXJyZW50IDogbWluO1xuICAgIH0sIHRoaXMuZmlyc3QpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNob3cgYmVzdCBwZXJmb3JtYW5jZSBwcm9wZXJ0aWVzIGZpcnN0XG4gICAqIGh0dHBzOi8vdGF4dGFuay5hdGxhc3NpYW4ubmV0L3dpa2kvc3BhY2VzL1RBWFRBTksvcGFnZXMvMjE3Njc3OTk3L1Byb3BlcnR5K1RhbmsrRGFzaGJvYXJkXG4gICAqL1xuICBzb3J0QnlCZXN0UGVyZm9ybWFuY2UodHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbkNvbGxlY3Rpb24sIGRlcHJlY2lhdGlvbnM6IERlcHJlY2lhdGlvbkNvbGxlY3Rpb24pOiB0aGlzIHtcbiAgICBjb25zdCBhY3RpdmVQcm9wZXJ0aWVzOiBQcm9wZXJ0eUNvbGxlY3Rpb24gPSB0aGlzLmdldEFjdGl2ZVByb3BlcnRpZXMoKTtcblxuICAgIC8vIG5vdGhpbmcgdG8gc29ydCB3aGVuIG5vIGFjdGl2ZSBwcm9wZXJ0aWVzXG4gICAgaWYgKCFhY3RpdmVQcm9wZXJ0aWVzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgY29uc3QgYmVzdFByb3BlcnRpZXM6IFByb3BlcnR5W10gPSB1bmlxQnkodGhpcy5jcmVhdGUoW1xuICAgICAgYWN0aXZlUHJvcGVydGllcy5nZXRCZXN0UGVyZm9ybWFuY2VHcm93dGhQcm9wZXJ0eSgpLFxuICAgICAgYWN0aXZlUHJvcGVydGllcy5nZXRCZXN0UGVyZm9ybWFuY2VUYXhQcm9wZXJ0eSh0cmFuc2FjdGlvbnMsIGRlcHJlY2lhdGlvbnMpXG4gICAgXSkudG9BcnJheSgpLCAnaWQnKTtcblxuICAgIGNvbnN0IG5ld0l0ZW1zOiBQcm9wZXJ0eVtdID0gdGhpcy5yZW1vdmUoYmVzdFByb3BlcnRpZXMpLnRvQXJyYXkoKTtcbiAgICBuZXdJdGVtcy51bnNoaWZ0KC4uLmJlc3RQcm9wZXJ0aWVzKTtcblxuICAgIHJldHVybiB0aGlzLmNyZWF0ZShuZXdJdGVtcyk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,8 @@
1
+ export var BadgeColorEnum;
2
+ (function (BadgeColorEnum) {
3
+ BadgeColorEnum["DEFAULT"] = "default";
4
+ BadgeColorEnum["GREEN"] = "green";
5
+ BadgeColorEnum["GOLD"] = "gold";
6
+ BadgeColorEnum["GRAY"] = "gray";
7
+ })(BadgeColorEnum || (BadgeColorEnum = {}));
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFkZ2UtY29sb3IuZW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9tb2RlbHMvYmFkZ2UvYmFkZ2UtY29sb3IuZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxjQUtYO0FBTEQsV0FBWSxjQUFjO0lBQ3hCLHFDQUFtQixDQUFBO0lBQ25CLGlDQUFlLENBQUE7SUFDZiwrQkFBYSxDQUFBO0lBQ2IsK0JBQWEsQ0FBQTtBQUNmLENBQUMsRUFMVyxjQUFjLEtBQWQsY0FBYyxRQUt6QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIEJhZGdlQ29sb3JFbnVtIHtcclxuICBERUZBVUxUID0gJ2RlZmF1bHQnLFxyXG4gIEdSRUVOID0gJ2dyZWVuJyxcclxuICBHT0xEID0gJ2dvbGQnLFxyXG4gIEdSQVkgPSAnZ3JheSdcclxufVxyXG4iXX0=
@@ -0,0 +1,14 @@
1
+ import { BadgeColorEnum } from './badge-color.enum';
2
+ import { AbstractModel } from '../../db/Models/abstract-model';
3
+ /**
4
+ * Class for UI element badge
5
+ */
6
+ export class Badge extends AbstractModel {
7
+ constructor(text, color) {
8
+ super();
9
+ this.text = '';
10
+ this.text = text;
11
+ this.color = color || BadgeColorEnum.DEFAULT;
12
+ }
13
+ }
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFkZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL2JhZGdlL2JhZGdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFL0Q7O0dBRUc7QUFDSCxNQUFNLE9BQU8sS0FBTSxTQUFRLGFBQWE7SUFJdEMsWUFDRSxJQUFZLEVBQ1osS0FBc0I7UUFFdEIsS0FBSyxFQUFFLENBQUM7UUFOVixTQUFJLEdBQVcsRUFBRSxDQUFDO1FBT2hCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxJQUFJLGNBQWMsQ0FBQyxPQUFPLENBQUM7SUFDL0MsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFkZ2VDb2xvckVudW0gfSBmcm9tICcuL2JhZGdlLWNvbG9yLmVudW0nO1xyXG5pbXBvcnQgeyBBYnN0cmFjdE1vZGVsIH0gZnJvbSAnLi4vLi4vZGIvTW9kZWxzL2Fic3RyYWN0LW1vZGVsJztcclxuXHJcbi8qKlxyXG4gKiBDbGFzcyBmb3IgVUkgZWxlbWVudCBiYWRnZVxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEJhZGdlIGV4dGVuZHMgQWJzdHJhY3RNb2RlbCB7XHJcbiAgY29sb3I6IEJhZGdlQ29sb3JFbnVtO1xyXG4gIHRleHQ6IHN0cmluZyA9ICcnO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHRleHQ6IHN0cmluZyxcclxuICAgIGNvbG9yPzogQmFkZ2VDb2xvckVudW1cclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgICB0aGlzLnRleHQgPSB0ZXh0O1xyXG4gICAgdGhpcy5jb2xvciA9IGNvbG9yIHx8IEJhZGdlQ29sb3JFbnVtLkRFRkFVTFQ7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -187,6 +187,11 @@ export class Property extends PropertyBase {
187
187
  getOwnershipDuration(sale, unitOfTime = 'days') {
188
188
  return moment(sale.contractDate).diff(moment(this.contractDate), unitOfTime);
189
189
  }
190
+ /**
191
+ * Tax Position = Income - Expense - Interest - Depreciation
192
+ * Where (Income - Expense - Interest) is cash position.
193
+ * https://taxtank.atlassian.net/wiki/spaces/TAXTANK/pages/217415928/Dashboard+Property
194
+ */
190
195
  getTaxPosition(transactions, depreciations) {
191
196
  return transactions.cashPosition - Math.abs(depreciations.claimAmount);
192
197
  }
@@ -221,4 +226,4 @@ __decorate([
221
226
  __decorate([
222
227
  Exclude()
223
228
  ], Property.prototype, "documentFile", void 0);
224
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL3Byb3BlcnR5L3Byb3BlcnR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsUUFBUSxJQUFJLFlBQVksRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBRzNFLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBQyxPQUFPLEVBQUUsSUFBSSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFFaEQsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3RFLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDbEMsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQy9ELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDBEQUEwRCxDQUFDO0FBQzFGLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLHFEQUFxRCxDQUFDO0FBQzdGLE9BQU8sS0FBSyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBR2pDLE9BQU8sRUFDTCwwQ0FBMEMsRUFDM0MsTUFBTSwwRkFBMEYsQ0FBQztBQUlsRzs7R0FFRztBQUNILE1BQU0sT0FBTyxRQUFTLFNBQVEsWUFBWTtJQWdDeEMsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztJQUMzQixDQUFDO0lB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M0UsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQy9FLENBQUM7SUFFRCxjQUFjLENBQUMsWUFBbUMsRUFBRSxhQUFxQztRQUN2RixPQUFPLFlBQVksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDekUsQ0FBQztDQUNGO0FBMU9DO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQzs4Q0FDRTtBQUduQjtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7Z0RBQ0k7QUFHckI7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDO3lDQUNIO0FBR2pCO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLGdCQUFnQixDQUFDOzBDQUNGO0FBRzNCO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixDQUFDOzRDQUNFO0FBR2hDO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLGdCQUFnQixDQUFDOzJDQUNDO0FBRzlCO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLHdCQUF3QixDQUFDO21EQUNTO0FBRzlDO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQztzQ0FDTjtBQUdYO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLG9CQUFvQixDQUFDOytDQUNLO0FBSXRDO0lBREMsT0FBTyxFQUFFOzhDQUNTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtQcm9wZXJ0eSBhcyBQcm9wZXJ0eUJhc2V9IGZyb20gJy4uLy4uL2RiL01vZGVscy9wcm9wZXJ0eS9wcm9wZXJ0eSc7XG5pbXBvcnQge0RvY3VtZW50YWJsZX0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9kb2N1bWVudGFibGUuaW50ZXJmYWNlJztcbmltcG9ydCB7UHJvcGVydHlTaGFyZX0gZnJvbSAnLi4vLi4vZGIvTW9kZWxzL3Byb3BlcnR5L3Byb3BlcnR5LXNoYXJlJztcbmltcG9ydCB7UHJvcGVydHlTdWJzY3JpcHRpb259IGZyb20gJy4vcHJvcGVydHktc3Vic2NyaXB0aW9uJztcbmltcG9ydCB7RXhjbHVkZSwgVHlwZX0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHtQaG90b2FibGV9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvcGhvdG9hYmxlJztcbmltcG9ydCB7QWRkcmVzc30gZnJvbSAnLi4vYWRkcmVzcy9hZGRyZXNzJztcbmltcG9ydCB7UHJvcGVydHlDYXRlZ29yeX0gZnJvbSAnLi9wcm9wZXJ0eS1jYXRlZ29yeSc7XG5pbXBvcnQge1Byb3BlcnR5VmFsdWF0aW9ufSBmcm9tICcuL3Byb3BlcnR5LXZhbHVhdGlvbic7XG5pbXBvcnQge1Byb3BlcnR5Rm9yZWNhc3R9IGZyb20gJy4vcHJvcGVydHktZm9yZWNhc3QnO1xuaW1wb3J0IHtQcm9wZXJ0eUNhdGVnb3J5TW92ZW1lbnR9IGZyb20gJy4vcHJvcGVydHktY2F0ZWdvcnktbW92ZW1lbnQnO1xuaW1wb3J0IHtVc2VyfSBmcm9tICcuLi91c2VyL3VzZXInO1xuaW1wb3J0IHtGaW5hbmNpYWxZZWFyfSBmcm9tICcuLi9maW5hbmNpYWwteWVhci9maW5hbmNpYWwteWVhcic7XG5pbXBvcnQge1RheEV4ZW1wdGlvbkVudW19IGZyb20gJy4uLy4uL2RiL0VudW1zL3Byb3BlcnR5L3Byb3BlcnR5LXNhbGUvdGF4LWV4ZW1wdGlvbi5lbnVtJztcbmltcG9ydCB7UHJvcGVydHlDYXRlZ29yeUxpc3RFbnVtfSBmcm9tICcuLi8uLi9kYi9FbnVtcy9wcm9wZXJ0eS9wcm9wZXJ0eS1jYXRlZ29yeS1saXN0LmVudW0nO1xuaW1wb3J0ICogYXMgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQge1Byb3BlcnR5U2FsZX0gZnJvbSAnLi9wcm9wZXJ0eS1zYWxlL3Byb3BlcnR5LXNhbGUnO1xuaW1wb3J0IHt1bml0T2ZUaW1lfSBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHtcbiAgUHJvcGVydHlTYWxlVGF4RXhlbXB0aW9uTWV0YWRhdGFDb2xsZWN0aW9uXG59IGZyb20gJy4uLy4uL2NvbGxlY3Rpb25zL3Byb3BlcnR5L3Byb3BlcnR5LXNhbGUvcHJvcGVydHktc2FsZS10YXgtZXhlbXB0aW9uLW1ldGFkYXRhLmNvbGxlY3Rpb24nO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25Db2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vY29sbGVjdGlvbnMvdHJhbnNhY3Rpb24vdHJhbnNhY3Rpb24uY29sbGVjdGlvbic7XG5pbXBvcnQgeyBEZXByZWNpYXRpb25Db2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vY29sbGVjdGlvbnMvZGVwcmVjaWF0aW9uLmNvbGxlY3Rpb24nO1xuXG4vKipcbiAqIHByb3BlcnR5U2FsZSBkb2NzIC0gaHR0cHM6Ly90YXh0YW5rLmF0bGFzc2lhbi5uZXQvd2lraS9zcGFjZXMvVEFYVEFOSy9wYWdlcy80MjA5NTA4MzUzL1Byb3BlcnR5K1NvbGQrYnV0dG9uXG4gKi9cbmV4cG9ydCBjbGFzcyBQcm9wZXJ0eSBleHRlbmRzIFByb3BlcnR5QmFzZSBpbXBsZW1lbnRzIFBob3RvYWJsZSwgRG9jdW1lbnRhYmxlIHtcbiAgQFR5cGUoKCkgPT4gRGF0ZSlcbiAgY29udHJhY3REYXRlOiBEYXRlO1xuXG4gIEBUeXBlKCgpID0+IERhdGUpXG4gIHNldHRsZW1lbnREYXRlOiBEYXRlO1xuXG4gIEBUeXBlKCgpID0+IEFkZHJlc3MpXG4gIGFkZHJlc3M6IEFkZHJlc3M7XG5cbiAgQFR5cGUoKCkgPT4gUHJvcGVydHlDYXRlZ29yeSlcbiAgY2F0ZWdvcnk6IFByb3BlcnR5Q2F0ZWdvcnk7XG5cbiAgQFR5cGUoKCkgPT4gUHJvcGVydHlWYWx1YXRpb24pXG4gIHZhbHVhdGlvbnM6IFByb3BlcnR5VmFsdWF0aW9uW107XG5cbiAgQFR5cGUoKCkgPT4gUHJvcGVydHlGb3JlY2FzdClcbiAgZm9yZWNhc3RzOiBQcm9wZXJ0eUZvcmVjYXN0W107XG5cbiAgQFR5cGUoKCkgPT4gUHJvcGVydHlDYXRlZ29yeU1vdmVtZW50KVxuICBjYXRlZ29yeU1vdmVtZW50czogUHJvcGVydHlDYXRlZ29yeU1vdmVtZW50W107XG5cbiAgQFR5cGUoKCkgPT4gVXNlcilcbiAgdXNlcjogVXNlcjtcblxuICBAVHlwZSgoKSA9PiBQcm9wZXJ0eVN1YnNjcmlwdGlvbilcbiAgc3Vic2NyaXB0aW9uczogUHJvcGVydHlTdWJzY3JpcHRpb25bXTtcblxuICAvLyBjb3VsZCBiZSBGaWxlIHdoZW4ganVzdCBhZGRlZCBuZXcgaW1hZ2VcbiAgQEV4Y2x1ZGUoKVxuICBkb2N1bWVudEZpbGU6IEZpbGU7XG5cbiAgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5hZGRyZXNzLm5hbWU7XG4gIH1cblxuICBnZXQgaXNBY3RpdmUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5zdWJzY3JpcHRpb25zPy5sZW5ndGg7XG4gIH1cblxuICBpc093bigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy51c2VyLmlkID09PSArbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3VzZXJJZCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBpbml0aWFscyBvZiBwcm9wZXJ0eS4gUmVxdWlyZWQgYnkgUGhvdG9hYmxlIGludGVyZmFjZVxuICAgKi9cbiAgZ2V0SW5pdGlhbHMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lLnNwbGl0KCcgJylbMV0uc2xpY2UoMCwgMik7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHByb3BlcnR5IHBob3RvLiBSZXF1aXJlZCBieSBQaG90b2FibGUgaW50ZXJmYWNlXG4gICAqL1xuICBnZXRQaG90bygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnBob3RvO1xuICB9XG5cbiAgZ2V0IGNhcGl0YWxDb3N0c1RvdGFsQW1vdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuc3RhbXBEdXR5ICsgdGhpcy5sZWdhbEZlZXMgKyB0aGlzLm90aGVyQ2FwaXRhbENvc3RzO1xuICB9XG5cbiAgZ2V0IGN1cnJlbnRZZWFyVmFsdWF0aW9ucygpOiBQcm9wZXJ0eVZhbHVhdGlvbltdIHtcbiAgICByZXR1cm4gdGhpcy52YWx1YXRpb25zLmZpbHRlcigodmFsdWF0aW9uOiBQcm9wZXJ0eVZhbHVhdGlvbik6IGJvb2xlYW4gPT4gdmFsdWF0aW9uLmlzQ3VycmVudFllYXIoKSk7XG4gIH1cblxuICBnZXQgbWFya2V0VmFsdWUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5hY3R1YWxWYWx1YXRpb24/Lm1hcmtldFZhbHVlIHx8IDA7XG4gIH1cblxuICBnZXQgY3VycmVudFllYXJGb3JlY2FzdCgpOiBQcm9wZXJ0eUZvcmVjYXN0IHtcbiAgICByZXR1cm4gdGhpcy5mb3JlY2FzdHMuZmluZCgoZm9yZWNhc3Q6IFByb3BlcnR5Rm9yZWNhc3QpOiBib29sZWFuID0+IGZvcmVjYXN0LmlzQ3VycmVudFllYXIoKSk7XG4gIH1cblxuICBnZXQgZm9yZWNhc3RlZFJlbnRhbFJldHVybigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRZZWFyRm9yZWNhc3Q/LnJlbnRhbFJldHVybiB8fCAwO1xuICB9XG5cbiAgZ2V0IGZvcmVjYXN0ZWRUYXhQb3NpdGlvbigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRZZWFyRm9yZWNhc3Q/LnRheFBvc2l0aW9uIHx8IDA7XG4gIH1cblxuICBnZXQgZmlyc3RGb3JlY2FzdFllYXIoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5mb3JlY2FzdHMucmVkdWNlKChtaW46IG51bWJlciwgZm9yZWNhc3Q6IFByb3BlcnR5Rm9yZWNhc3QpOiBudW1iZXIgPT4ge1xuICAgICAgcmV0dXJuIG1pbiA+IGZvcmVjYXN0LmZpbmFuY2lhbFllYXIgPyBmb3JlY2FzdC5maW5hbmNpYWxZZWFyIDogbWluO1xuICAgIH0sIG5ldyBGaW5hbmNpYWxZZWFyKCkueWVhcik7XG4gIH1cblxuICBnZXQgbWFya2V0VmFsdWVHcm93dGgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gKHRoaXMubWFya2V0VmFsdWUgLSB0aGlzLnB1cmNoYXNlUHJpY2UpIC8gdGhpcy5tYXJrZXRWYWx1ZTtcbiAgfVxuXG4gIGdldCBteVNoYXJlKCk6IFByb3BlcnR5U2hhcmUge1xuICAgIHJldHVybiB0aGlzLnNoYXJlcy5maW5kKChzaGFyZTogUHJvcGVydHlTaGFyZSk6IGJvb2xlYW4gPT4gc2hhcmUudXNlci5pZCA9PT0gK2xvY2FsU3RvcmFnZS5nZXRJdGVtKCd1c2VySWQnKSk7XG4gIH1cblxuICAvKipcbiAgICogZXhhY3QgY2xhaW0gaW5jbHVkaW5nIHNoYXJlIHBlcmNlbnRcbiAgICovXG4gIGdldCBzaGFyZUNsYWltUGVyY2VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnNoYXJlUGVyY2VudCAqIHRoaXMuY2xhaW1QZXJjZW50IC8gMTAwO1xuICB9XG5cbiAgZ2V0IGFjdHVhbFZhbHVhdGlvbigpOiBQcm9wZXJ0eVZhbHVhdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWF0aW9ucy5yZWR1Y2UoKG1heERhdGVWYWx1YXRpb246IFByb3BlcnR5VmFsdWF0aW9uLCB2YWx1YXRpb246IFByb3BlcnR5VmFsdWF0aW9uKSA9PiB7XG4gICAgICByZXR1cm4gbWF4RGF0ZVZhbHVhdGlvbi5kYXRlID4gdmFsdWF0aW9uLmRhdGUgPyBtYXhEYXRlVmFsdWF0aW9uIDogdmFsdWF0aW9uO1xuICAgIH0sIHRoaXMudmFsdWF0aW9uc1swXSk7XG4gIH1cblxuICBnZXQgc2hhcmVQZXJjZW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMubXlTaGFyZS5wZXJjZW50O1xuICB9XG5cbiAgZ2V0IHNoYXJlUmF0aW8oKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5teVNoYXJlLnBlcmNlbnQgLyAxMDA7XG4gIH1cblxuICBnZXQgcHJldmlvdXNDYXRlZ29yeSgpOiBQcm9wZXJ0eUNhdGVnb3J5IHtcbiAgICBsZXQgcHJldmlvdXNDYXRlZ29yeTogUHJvcGVydHlDYXRlZ29yeTtcblxuICAgIGNvbnN0IG1vdmVtZW50c0NvdW50OiBudW1iZXIgPSB0aGlzLmNhdGVnb3J5TW92ZW1lbnRzLmxlbmd0aDtcblxuICAgIGlmIChtb3ZlbWVudHNDb3VudCA+IDEpIHtcbiAgICAgIHByZXZpb3VzQ2F0ZWdvcnkgPSB0aGlzLmNhdGVnb3J5TW92ZW1lbnRzW21vdmVtZW50c0NvdW50IC0gMl0ucHJvcGVydHlDYXRlZ29yeTtcbiAgICB9XG5cbiAgICByZXR1cm4gcHJldmlvdXNDYXRlZ29yeTtcbiAgfVxuXG4gIGdldEN1cnJlbnRTdWJzY3JpcHRpb24oKTogUHJvcGVydHlTdWJzY3JpcHRpb24ge1xuICAgIC8vIGFsd2F5cyByZXR1cm4gZmlyc3QgZWxlbWVudCBiZWNhdXNlIHN1YnNjcmlwdGlvbnMgYXJyYXkgY29udGFpbnMgb25seSBvbmUgZWxlbWVudFxuICAgIHJldHVybiB0aGlzLnN1YnNjcmlwdGlvbnNbMF07XG4gIH1cblxuICBnZXRGb3JlY2FzdEJ5WWVhcih5ZWFyOiBudW1iZXIpOiBQcm9wZXJ0eUZvcmVjYXN0IHtcbiAgICByZXR1cm4gdGhpcy5mb3JlY2FzdHMuZmluZCgoZm9yZWNhc3Q6IFByb3BlcnR5Rm9yZWNhc3QpOiBib29sZWFuID0+IGZvcmVjYXN0LmZpbmFuY2lhbFllYXIgPT09IHllYXIpO1xuICB9XG5cbiAgZ2V0IGlzU2hhcmVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNoYXJlcy5sZW5ndGggPiAxO1xuICB9XG5cbiAgLyoqXG4gICAqIEBUT0RPIGNvbnNpZGVyIHRvIG1vdmUgbWV0aG9kcyByZWxhdGVkIHdpdGggcHJvcGVydHlTYWxlIHRvIHNlcGFyYXRlZCBjbGFzcywgc2luY2UgdXNlZCBqdXN0IGluIG9uZSBtb2R1bGUgeWV0XG4gICAqIHB1cmNoYXNlIGNvc3RzIC0gY2xhaW1lZCBjb3N0cywgZXhjZXB0IGBwcHIgdG8gaW52ZXN0bWVudGAgZXhlbXB0aW9uLFxuICAgKiBpbiB0aGF0IGNhc2UgaXQncyBlcXVhbCB0byBtYXJrZXQgdmFsdWUsIHdoZW4gcHJvcGVydHkgYmVjYW1lIGFuIGludmVzdG1lbnQgcHJvcGVydHlcbiAgICovXG4gIGNhbGN1bGF0ZUNvc3RCYXNlKHNhbGU6IFByb3BlcnR5U2FsZSk6IG51bWJlciB7XG4gICAgY29uc3QgbWFya2V0VmFsdWU6IG51bWJlciA9IG5ldyBQcm9wZXJ0eVNhbGVUYXhFeGVtcHRpb25NZXRhZGF0YUNvbGxlY3Rpb24oc2FsZS50YXhFeGVtcHRpb25NZXRhZGF0YSkuZ2V0TWFya2V0VmFsdWUoKTtcbiAgICBpZiAobWFya2V0VmFsdWUpIHtcbiAgICAgIHJldHVybiBtYXJrZXRWYWx1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5wdXJjaGFzZVByaWNlICsgdGhpcy5jYXBpdGFsQ29zdHNUb3RhbEFtb3VudCArIHNhbGUuaG9sZGluZ0Nvc3RzICsgc2FsZS5zdHJ1Y3R1cmFsSW1wcm92ZW1lbnRzV0RWIC0gc2FsZS5idWlsZGluZ0F0Q29zdENsYWltZWQ7XG4gIH1cblxuICAvKipcbiAgICogZ3Jvc3MgY2FwaXRhbCBnYWluIHRheDogc2FsZSBjb3N0cyAtIGNvc3QgYmFzZVxuICAgKi9cbiAgY2FsY3VsYXRlQ0dUKHNhbGU6IFByb3BlcnR5U2FsZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIChzYWxlLnByaWNlIC0gc2FsZS5zYWxlQ29zdHNUb3RhbEFtb3VudCAtIHRoaXMuY2FsY3VsYXRlQ29zdEJhc2Uoc2FsZSkpICogdGhpcy5zaGFyZVJhdGlvIC0gc2FsZS5jYXBpdGFsTG9zcztcbiAgfVxuXG4gIC8qKlxuICAgKiBuZXQgY2FwaXRhbCBnYWluIHRheCAoaW5jbHVkZXMgdGF4IGV4ZW1wdGlvbnMpXG4gICAqL1xuICBjYWxjdWxhdGVOZXRDR1Qoc2FsZTogUHJvcGVydHlTYWxlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5nZXRDR1RFeGVtcHRpb25SYXRpbyhzYWxlKSAqIHNhbGUuZ3Jvc3NDR1Q7XG4gIH1cblxuICAvKipcbiAgICogZ3Vlc3MgdGF4IGV4ZW1wdGlvbiBiYXNlZCBvbiBwcm9wZXJ0eSBkZXRhaWxzXG4gICAqL1xuICBnZXRDR1RFeGVtcHRpb24oc2FsZTogUHJvcGVydHlTYWxlKTogVGF4RXhlbXB0aW9uRW51bSB7XG4gICAgaWYgKHNhbGUudGF4RXhlbXB0aW9uKSB7XG4gICAgICByZXR1cm4gc2FsZS50YXhFeGVtcHRpb24uaWQ7XG4gICAgfVxuXG4gICAgc3dpdGNoICh0cnVlKSB7XG4gICAgICAvLyBleGVtcHRpb24gZm9yIG1haW4gcmVzaWRlbmNlIHByb3BlcnRpZXNcbiAgICAgIGNhc2UgdGhpcy5jYXRlZ29yeS5pZCA9PT0gUHJvcGVydHlDYXRlZ29yeUxpc3RFbnVtLk9XTkVSX09DQ1VQSUVEOlxuICAgICAgICByZXR1cm4gVGF4RXhlbXB0aW9uRW51bS5QUFI7XG4gICAgICAvLyBleGVtcHRpb24gZm9yIGludmVzdG1lbnQgcHJvcGVydGllcyBvd25lZCBmb3IgYXQgbGVhc3Qgb25lIHllYXJcbiAgICAgIGNhc2UgdGhpcy5pc09uZVllYXJFeGVtcHRpb25BcHBsaWNhYmxlKHNhbGUpOlxuICAgICAgICByZXR1cm4gVGF4RXhlbXB0aW9uRW51bS5PTkVfWUVBUl9SVUxFO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIHRheCBleGVtcHRpb24gY2FuIHJlZHVjZSBjZ3QgZnJvbSAxMDAlIHRvIGxlc3MgKHVwIHRvIHplcm8pXG4gICAqL1xuICBnZXRDR1RFeGVtcHRpb25SYXRpbyhzYWxlOiBQcm9wZXJ0eVNhbGUpOiBudW1iZXIge1xuICAgIGNvbnN0IG1ldGFkYXRhOiBQcm9wZXJ0eVNhbGVUYXhFeGVtcHRpb25NZXRhZGF0YUNvbGxlY3Rpb24gPSBuZXcgUHJvcGVydHlTYWxlVGF4RXhlbXB0aW9uTWV0YWRhdGFDb2xsZWN0aW9uKHNhbGUudGF4RXhlbXB0aW9uTWV0YWRhdGEpO1xuXG4gICAgc3dpdGNoIChzYWxlLnRheEV4ZW1wdGlvbj8uaWQpIHtcbiAgICAgIC8vIDUwJSBleGVtcHRpb24gZm9yIGludmVzdG1lbnRzIG93bmVkIGZvciBhdCBsZWFzdCBvbmUgeWVhclxuICAgICAgY2FzZSBUYXhFeGVtcHRpb25FbnVtLk9ORV9ZRUFSX1JVTEU6XG4gICAgICAgIHJldHVybiAwLjU7XG4gICAgICAvLyBpbnZlc3RtZW50IHByb3BlcnR5IGJlY29tZSBtYWluIHJlc2lkZW5jZSAoZXhlbXB0aW9uIGZvciBtYWluIHJlc2lkZW5jZSBvd25lcnNoaXAgZHVyYXRpb24pXG4gICAgICBjYXNlIFRheEV4ZW1wdGlvbkVudW0uSU5WRVNUTUVOVF9UT19QUFI6XG4gICAgICAgIGNvbnN0IG93bmVyc2hpcERheXMgPSB0aGlzLmdldE93bmVyc2hpcER1cmF0aW9uKHNhbGUpO1xuXG4gICAgICAgIHJldHVybiAob3duZXJzaGlwRGF5cyAtIG1ldGFkYXRhLmdldFBQUkRheXMoKSkgLyBvd25lcnNoaXBEYXlzO1xuICAgICAgLy8gbWFpbiByZXNpZGVuY2UgYmVjb21lIGludmVzdG1lbnQgKGV4ZW1wdGlvbiBmb3IgaG9tZSBvZmZpY2UgcGVyY2VudCB1c2FnZSlcbiAgICAgIGNhc2UgVGF4RXhlbXB0aW9uRW51bS5QUFJfVE9fSU5WRVNUTUVOVDpcbiAgICAgICAgLy8gMSB5ZWFyIENHVCBkaXNjb3VudCBjYW4gc3RpbGwgYXBwbHkgKG9uIHRoZSBpbmNvbWUgcHJvZHVjaW5nICUgaWYgdXNlZCBmb3IgMTIgbW9udGhzIG9yIG1vcmUpXG4gICAgICAgIGNvbnN0IHJhdGlvOiBudW1iZXIgPSB0aGlzLmlzT25lWWVhckV4ZW1wdGlvbkFwcGxpY2FibGUoc2FsZSkgPyAwLjUgOiAxO1xuICAgICAgICByZXR1cm4gbWV0YWRhdGEuZ2V0Q2xhaW1QZXJjZW50KCkgLyAxMDAgKiByYXRpbztcbiAgICAgIC8vIGZ1bGwgZXhlbXB0aW9uXG4gICAgICBjYXNlIFRheEV4ZW1wdGlvbkVudW0uUFBSOlxuICAgICAgY2FzZSBUYXhFeGVtcHRpb25FbnVtLlNJWF9ZRUFSU19SVUxFOlxuICAgICAgY2FzZSBUYXhFeGVtcHRpb25FbnVtLlRSQU5TRkVSOlxuICAgICAgY2FzZSBUYXhFeGVtcHRpb25FbnVtLk9USEVSOlxuICAgICAgICByZXR1cm4gMDtcbiAgICAgIC8vIG5vIGV4ZW1wdGlvblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIDE7XG4gICAgfVxuICB9XG5cbiAgaXNPbmVZZWFyRXhlbXB0aW9uQXBwbGljYWJsZShzYWxlOiBQcm9wZXJ0eVNhbGUpOiBib29sZWFuIHtcbiAgICByZXR1cm4gc2FsZS5ncm9zc0NHVCA+IDAgJiYgdGhpcy5nZXRPd25lcnNoaXBEdXJhdGlvbihzYWxlLCAneWVhcnMnKSA+IDA7XG4gIH1cblxuICAvKipcbiAgICogb3duZXJzaGlwIGR1cmF0aW9uIGZyb20gcHVyY2hhc2UgdGlsbCBzYWxlXG4gICAqL1xuICBnZXRPd25lcnNoaXBEdXJhdGlvbihzYWxlOiBQcm9wZXJ0eVNhbGUsIHVuaXRPZlRpbWU6IHVuaXRPZlRpbWUuRGlmZiA9ICdkYXlzJyk6IG51bWJlciB7XG4gICAgcmV0dXJuIG1vbWVudChzYWxlLmNvbnRyYWN0RGF0ZSkuZGlmZihtb21lbnQodGhpcy5jb250cmFjdERhdGUpLCB1bml0T2ZUaW1lKTtcbiAgfVxuXG4gIGdldFRheFBvc2l0aW9uKHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25Db2xsZWN0aW9uLCBkZXByZWNpYXRpb25zOiBEZXByZWNpYXRpb25Db2xsZWN0aW9uKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdHJhbnNhY3Rpb25zLmNhc2hQb3NpdGlvbiAtIE1hdGguYWJzKGRlcHJlY2lhdGlvbnMuY2xhaW1BbW91bnQpO1xuICB9XG59XG4iXX0=
229
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL3Byb3BlcnR5L3Byb3BlcnR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsUUFBUSxJQUFJLFlBQVksRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBRzNFLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBQyxPQUFPLEVBQUUsSUFBSSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFFaEQsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3RFLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDbEMsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQy9ELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDBEQUEwRCxDQUFDO0FBQzFGLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLHFEQUFxRCxDQUFDO0FBQzdGLE9BQU8sS0FBSyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBR2pDLE9BQU8sRUFDTCwwQ0FBMEMsRUFDM0MsTUFBTSwwRkFBMEYsQ0FBQztBQUlsRzs7R0FFRztBQUNILE1BQU0sT0FBTyxRQUFTLFNBQVEsWUFBWTtJQWdDeEMsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztJQUMzQixDQUFDO0lB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M0UsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQy9FLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsY0FBYyxDQUFDLFlBQW1DLEVBQUUsYUFBcUM7UUFDdkYsT0FBTyxZQUFZLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7Q0FDRjtBQS9PQztJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7OENBQ0U7QUFHbkI7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDO2dEQUNJO0FBR3JCO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQzt5Q0FDSDtBQUdqQjtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQzswQ0FDRjtBQUczQjtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQzs0Q0FDRTtBQUdoQztJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQzsyQ0FDQztBQUc5QjtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQzttREFDUztBQUc5QztJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7c0NBQ047QUFHWDtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQzsrQ0FDSztBQUl0QztJQURDLE9BQU8sRUFBRTs4Q0FDUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UHJvcGVydHkgYXMgUHJvcGVydHlCYXNlfSBmcm9tICcuLi8uLi9kYi9Nb2RlbHMvcHJvcGVydHkvcHJvcGVydHknO1xuaW1wb3J0IHtEb2N1bWVudGFibGV9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvZG9jdW1lbnRhYmxlLmludGVyZmFjZSc7XG5pbXBvcnQge1Byb3BlcnR5U2hhcmV9IGZyb20gJy4uLy4uL2RiL01vZGVscy9wcm9wZXJ0eS9wcm9wZXJ0eS1zaGFyZSc7XG5pbXBvcnQge1Byb3BlcnR5U3Vic2NyaXB0aW9ufSBmcm9tICcuL3Byb3BlcnR5LXN1YnNjcmlwdGlvbic7XG5pbXBvcnQge0V4Y2x1ZGUsIFR5cGV9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7UGhvdG9hYmxlfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3Bob3RvYWJsZSc7XG5pbXBvcnQge0FkZHJlc3N9IGZyb20gJy4uL2FkZHJlc3MvYWRkcmVzcyc7XG5pbXBvcnQge1Byb3BlcnR5Q2F0ZWdvcnl9IGZyb20gJy4vcHJvcGVydHktY2F0ZWdvcnknO1xuaW1wb3J0IHtQcm9wZXJ0eVZhbHVhdGlvbn0gZnJvbSAnLi9wcm9wZXJ0eS12YWx1YXRpb24nO1xuaW1wb3J0IHtQcm9wZXJ0eUZvcmVjYXN0fSBmcm9tICcuL3Byb3BlcnR5LWZvcmVjYXN0JztcbmltcG9ydCB7UHJvcGVydHlDYXRlZ29yeU1vdmVtZW50fSBmcm9tICcuL3Byb3BlcnR5LWNhdGVnb3J5LW1vdmVtZW50JztcbmltcG9ydCB7VXNlcn0gZnJvbSAnLi4vdXNlci91c2VyJztcbmltcG9ydCB7RmluYW5jaWFsWWVhcn0gZnJvbSAnLi4vZmluYW5jaWFsLXllYXIvZmluYW5jaWFsLXllYXInO1xuaW1wb3J0IHtUYXhFeGVtcHRpb25FbnVtfSBmcm9tICcuLi8uLi9kYi9FbnVtcy9wcm9wZXJ0eS9wcm9wZXJ0eS1zYWxlL3RheC1leGVtcHRpb24uZW51bSc7XG5pbXBvcnQge1Byb3BlcnR5Q2F0ZWdvcnlMaXN0RW51bX0gZnJvbSAnLi4vLi4vZGIvRW51bXMvcHJvcGVydHkvcHJvcGVydHktY2F0ZWdvcnktbGlzdC5lbnVtJztcbmltcG9ydCAqIGFzIG1vbWVudCBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHtQcm9wZXJ0eVNhbGV9IGZyb20gJy4vcHJvcGVydHktc2FsZS9wcm9wZXJ0eS1zYWxlJztcbmltcG9ydCB7dW5pdE9mVGltZX0gZnJvbSAnbW9tZW50JztcbmltcG9ydCB7XG4gIFByb3BlcnR5U2FsZVRheEV4ZW1wdGlvbk1ldGFkYXRhQ29sbGVjdGlvblxufSBmcm9tICcuLi8uLi9jb2xsZWN0aW9ucy9wcm9wZXJ0eS9wcm9wZXJ0eS1zYWxlL3Byb3BlcnR5LXNhbGUtdGF4LWV4ZW1wdGlvbi1tZXRhZGF0YS5jb2xsZWN0aW9uJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uL2NvbGxlY3Rpb25zL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uLmNvbGxlY3Rpb24nO1xuaW1wb3J0IHsgRGVwcmVjaWF0aW9uQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uL2NvbGxlY3Rpb25zL2RlcHJlY2lhdGlvbi5jb2xsZWN0aW9uJztcblxuLyoqXG4gKiBwcm9wZXJ0eVNhbGUgZG9jcyAtIGh0dHBzOi8vdGF4dGFuay5hdGxhc3NpYW4ubmV0L3dpa2kvc3BhY2VzL1RBWFRBTksvcGFnZXMvNDIwOTUwODM1My9Qcm9wZXJ0eStTb2xkK2J1dHRvblxuICovXG5leHBvcnQgY2xhc3MgUHJvcGVydHkgZXh0ZW5kcyBQcm9wZXJ0eUJhc2UgaW1wbGVtZW50cyBQaG90b2FibGUsIERvY3VtZW50YWJsZSB7XG4gIEBUeXBlKCgpID0+IERhdGUpXG4gIGNvbnRyYWN0RGF0ZTogRGF0ZTtcblxuICBAVHlwZSgoKSA9PiBEYXRlKVxuICBzZXR0bGVtZW50RGF0ZTogRGF0ZTtcblxuICBAVHlwZSgoKSA9PiBBZGRyZXNzKVxuICBhZGRyZXNzOiBBZGRyZXNzO1xuXG4gIEBUeXBlKCgpID0+IFByb3BlcnR5Q2F0ZWdvcnkpXG4gIGNhdGVnb3J5OiBQcm9wZXJ0eUNhdGVnb3J5O1xuXG4gIEBUeXBlKCgpID0+IFByb3BlcnR5VmFsdWF0aW9uKVxuICB2YWx1YXRpb25zOiBQcm9wZXJ0eVZhbHVhdGlvbltdO1xuXG4gIEBUeXBlKCgpID0+IFByb3BlcnR5Rm9yZWNhc3QpXG4gIGZvcmVjYXN0czogUHJvcGVydHlGb3JlY2FzdFtdO1xuXG4gIEBUeXBlKCgpID0+IFByb3BlcnR5Q2F0ZWdvcnlNb3ZlbWVudClcbiAgY2F0ZWdvcnlNb3ZlbWVudHM6IFByb3BlcnR5Q2F0ZWdvcnlNb3ZlbWVudFtdO1xuXG4gIEBUeXBlKCgpID0+IFVzZXIpXG4gIHVzZXI6IFVzZXI7XG5cbiAgQFR5cGUoKCkgPT4gUHJvcGVydHlTdWJzY3JpcHRpb24pXG4gIHN1YnNjcmlwdGlvbnM6IFByb3BlcnR5U3Vic2NyaXB0aW9uW107XG5cbiAgLy8gY291bGQgYmUgRmlsZSB3aGVuIGp1c3QgYWRkZWQgbmV3IGltYWdlXG4gIEBFeGNsdWRlKClcbiAgZG9jdW1lbnRGaWxlOiBGaWxlO1xuXG4gIGdldCBuYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuYWRkcmVzcy5uYW1lO1xuICB9XG5cbiAgZ2V0IGlzQWN0aXZlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuc3Vic2NyaXB0aW9ucz8ubGVuZ3RoO1xuICB9XG5cbiAgaXNPd24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudXNlci5pZCA9PT0gK2xvY2FsU3RvcmFnZS5nZXRJdGVtKCd1c2VySWQnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgaW5pdGlhbHMgb2YgcHJvcGVydHkuIFJlcXVpcmVkIGJ5IFBob3RvYWJsZSBpbnRlcmZhY2VcbiAgICovXG4gIGdldEluaXRpYWxzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubmFtZS5zcGxpdCgnICcpWzFdLnNsaWNlKDAsIDIpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBwcm9wZXJ0eSBwaG90by4gUmVxdWlyZWQgYnkgUGhvdG9hYmxlIGludGVyZmFjZVxuICAgKi9cbiAgZ2V0UGhvdG8oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5waG90bztcbiAgfVxuXG4gIGdldCBjYXBpdGFsQ29zdHNUb3RhbEFtb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnN0YW1wRHV0eSArIHRoaXMubGVnYWxGZWVzICsgdGhpcy5vdGhlckNhcGl0YWxDb3N0cztcbiAgfVxuXG4gIGdldCBjdXJyZW50WWVhclZhbHVhdGlvbnMoKTogUHJvcGVydHlWYWx1YXRpb25bXSB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWF0aW9ucy5maWx0ZXIoKHZhbHVhdGlvbjogUHJvcGVydHlWYWx1YXRpb24pOiBib29sZWFuID0+IHZhbHVhdGlvbi5pc0N1cnJlbnRZZWFyKCkpO1xuICB9XG5cbiAgZ2V0IG1hcmtldFZhbHVlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuYWN0dWFsVmFsdWF0aW9uPy5tYXJrZXRWYWx1ZSB8fCAwO1xuICB9XG5cbiAgZ2V0IGN1cnJlbnRZZWFyRm9yZWNhc3QoKTogUHJvcGVydHlGb3JlY2FzdCB7XG4gICAgcmV0dXJuIHRoaXMuZm9yZWNhc3RzLmZpbmQoKGZvcmVjYXN0OiBQcm9wZXJ0eUZvcmVjYXN0KTogYm9vbGVhbiA9PiBmb3JlY2FzdC5pc0N1cnJlbnRZZWFyKCkpO1xuICB9XG5cbiAgZ2V0IGZvcmVjYXN0ZWRSZW50YWxSZXR1cm4oKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50WWVhckZvcmVjYXN0Py5yZW50YWxSZXR1cm4gfHwgMDtcbiAgfVxuXG4gIGdldCBmb3JlY2FzdGVkVGF4UG9zaXRpb24oKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50WWVhckZvcmVjYXN0Py50YXhQb3NpdGlvbiB8fCAwO1xuICB9XG5cbiAgZ2V0IGZpcnN0Rm9yZWNhc3RZZWFyKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZm9yZWNhc3RzLnJlZHVjZSgobWluOiBudW1iZXIsIGZvcmVjYXN0OiBQcm9wZXJ0eUZvcmVjYXN0KTogbnVtYmVyID0+IHtcbiAgICAgIHJldHVybiBtaW4gPiBmb3JlY2FzdC5maW5hbmNpYWxZZWFyID8gZm9yZWNhc3QuZmluYW5jaWFsWWVhciA6IG1pbjtcbiAgICB9LCBuZXcgRmluYW5jaWFsWWVhcigpLnllYXIpO1xuICB9XG5cbiAgZ2V0IG1hcmtldFZhbHVlR3Jvd3RoKCk6IG51bWJlciB7XG4gICAgcmV0dXJuICh0aGlzLm1hcmtldFZhbHVlIC0gdGhpcy5wdXJjaGFzZVByaWNlKSAvIHRoaXMubWFya2V0VmFsdWU7XG4gIH1cblxuICBnZXQgbXlTaGFyZSgpOiBQcm9wZXJ0eVNoYXJlIHtcbiAgICByZXR1cm4gdGhpcy5zaGFyZXMuZmluZCgoc2hhcmU6IFByb3BlcnR5U2hhcmUpOiBib29sZWFuID0+IHNoYXJlLnVzZXIuaWQgPT09ICtsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndXNlcklkJykpO1xuICB9XG5cbiAgLyoqXG4gICAqIGV4YWN0IGNsYWltIGluY2x1ZGluZyBzaGFyZSBwZXJjZW50XG4gICAqL1xuICBnZXQgc2hhcmVDbGFpbVBlcmNlbnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5zaGFyZVBlcmNlbnQgKiB0aGlzLmNsYWltUGVyY2VudCAvIDEwMDtcbiAgfVxuXG4gIGdldCBhY3R1YWxWYWx1YXRpb24oKTogUHJvcGVydHlWYWx1YXRpb24ge1xuICAgIHJldHVybiB0aGlzLnZhbHVhdGlvbnMucmVkdWNlKChtYXhEYXRlVmFsdWF0aW9uOiBQcm9wZXJ0eVZhbHVhdGlvbiwgdmFsdWF0aW9uOiBQcm9wZXJ0eVZhbHVhdGlvbikgPT4ge1xuICAgICAgcmV0dXJuIG1heERhdGVWYWx1YXRpb24uZGF0ZSA+IHZhbHVhdGlvbi5kYXRlID8gbWF4RGF0ZVZhbHVhdGlvbiA6IHZhbHVhdGlvbjtcbiAgICB9LCB0aGlzLnZhbHVhdGlvbnNbMF0pO1xuICB9XG5cbiAgZ2V0IHNoYXJlUGVyY2VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLm15U2hhcmUucGVyY2VudDtcbiAgfVxuXG4gIGdldCBzaGFyZVJhdGlvKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMubXlTaGFyZS5wZXJjZW50IC8gMTAwO1xuICB9XG5cbiAgZ2V0IHByZXZpb3VzQ2F0ZWdvcnkoKTogUHJvcGVydHlDYXRlZ29yeSB7XG4gICAgbGV0IHByZXZpb3VzQ2F0ZWdvcnk6IFByb3BlcnR5Q2F0ZWdvcnk7XG5cbiAgICBjb25zdCBtb3ZlbWVudHNDb3VudDogbnVtYmVyID0gdGhpcy5jYXRlZ29yeU1vdmVtZW50cy5sZW5ndGg7XG5cbiAgICBpZiAobW92ZW1lbnRzQ291bnQgPiAxKSB7XG4gICAgICBwcmV2aW91c0NhdGVnb3J5ID0gdGhpcy5jYXRlZ29yeU1vdmVtZW50c1ttb3ZlbWVudHNDb3VudCAtIDJdLnByb3BlcnR5Q2F0ZWdvcnk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHByZXZpb3VzQ2F0ZWdvcnk7XG4gIH1cblxuICBnZXRDdXJyZW50U3Vic2NyaXB0aW9uKCk6IFByb3BlcnR5U3Vic2NyaXB0aW9uIHtcbiAgICAvLyBhbHdheXMgcmV0dXJuIGZpcnN0IGVsZW1lbnQgYmVjYXVzZSBzdWJzY3JpcHRpb25zIGFycmF5IGNvbnRhaW5zIG9ubHkgb25lIGVsZW1lbnRcbiAgICByZXR1cm4gdGhpcy5zdWJzY3JpcHRpb25zWzBdO1xuICB9XG5cbiAgZ2V0Rm9yZWNhc3RCeVllYXIoeWVhcjogbnVtYmVyKTogUHJvcGVydHlGb3JlY2FzdCB7XG4gICAgcmV0dXJuIHRoaXMuZm9yZWNhc3RzLmZpbmQoKGZvcmVjYXN0OiBQcm9wZXJ0eUZvcmVjYXN0KTogYm9vbGVhbiA9PiBmb3JlY2FzdC5maW5hbmNpYWxZZWFyID09PSB5ZWFyKTtcbiAgfVxuXG4gIGdldCBpc1NoYXJlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zaGFyZXMubGVuZ3RoID4gMTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAVE9ETyBjb25zaWRlciB0byBtb3ZlIG1ldGhvZHMgcmVsYXRlZCB3aXRoIHByb3BlcnR5U2FsZSB0byBzZXBhcmF0ZWQgY2xhc3MsIHNpbmNlIHVzZWQganVzdCBpbiBvbmUgbW9kdWxlIHlldFxuICAgKiBwdXJjaGFzZSBjb3N0cyAtIGNsYWltZWQgY29zdHMsIGV4Y2VwdCBgcHByIHRvIGludmVzdG1lbnRgIGV4ZW1wdGlvbixcbiAgICogaW4gdGhhdCBjYXNlIGl0J3MgZXF1YWwgdG8gbWFya2V0IHZhbHVlLCB3aGVuIHByb3BlcnR5IGJlY2FtZSBhbiBpbnZlc3RtZW50IHByb3BlcnR5XG4gICAqL1xuICBjYWxjdWxhdGVDb3N0QmFzZShzYWxlOiBQcm9wZXJ0eVNhbGUpOiBudW1iZXIge1xuICAgIGNvbnN0IG1hcmtldFZhbHVlOiBudW1iZXIgPSBuZXcgUHJvcGVydHlTYWxlVGF4RXhlbXB0aW9uTWV0YWRhdGFDb2xsZWN0aW9uKHNhbGUudGF4RXhlbXB0aW9uTWV0YWRhdGEpLmdldE1hcmtldFZhbHVlKCk7XG4gICAgaWYgKG1hcmtldFZhbHVlKSB7XG4gICAgICByZXR1cm4gbWFya2V0VmFsdWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMucHVyY2hhc2VQcmljZSArIHRoaXMuY2FwaXRhbENvc3RzVG90YWxBbW91bnQgKyBzYWxlLmhvbGRpbmdDb3N0cyArIHNhbGUuc3RydWN0dXJhbEltcHJvdmVtZW50c1dEViAtIHNhbGUuYnVpbGRpbmdBdENvc3RDbGFpbWVkO1xuICB9XG5cbiAgLyoqXG4gICAqIGdyb3NzIGNhcGl0YWwgZ2FpbiB0YXg6IHNhbGUgY29zdHMgLSBjb3N0IGJhc2VcbiAgICovXG4gIGNhbGN1bGF0ZUNHVChzYWxlOiBQcm9wZXJ0eVNhbGUpOiBudW1iZXIge1xuICAgIHJldHVybiAoc2FsZS5wcmljZSAtIHNhbGUuc2FsZUNvc3RzVG90YWxBbW91bnQgLSB0aGlzLmNhbGN1bGF0ZUNvc3RCYXNlKHNhbGUpKSAqIHRoaXMuc2hhcmVSYXRpbyAtIHNhbGUuY2FwaXRhbExvc3M7XG4gIH1cblxuICAvKipcbiAgICogbmV0IGNhcGl0YWwgZ2FpbiB0YXggKGluY2x1ZGVzIHRheCBleGVtcHRpb25zKVxuICAgKi9cbiAgY2FsY3VsYXRlTmV0Q0dUKHNhbGU6IFByb3BlcnR5U2FsZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Q0dURXhlbXB0aW9uUmF0aW8oc2FsZSkgKiBzYWxlLmdyb3NzQ0dUO1xuICB9XG5cbiAgLyoqXG4gICAqIGd1ZXNzIHRheCBleGVtcHRpb24gYmFzZWQgb24gcHJvcGVydHkgZGV0YWlsc1xuICAgKi9cbiAgZ2V0Q0dURXhlbXB0aW9uKHNhbGU6IFByb3BlcnR5U2FsZSk6IFRheEV4ZW1wdGlvbkVudW0ge1xuICAgIGlmIChzYWxlLnRheEV4ZW1wdGlvbikge1xuICAgICAgcmV0dXJuIHNhbGUudGF4RXhlbXB0aW9uLmlkO1xuICAgIH1cblxuICAgIHN3aXRjaCAodHJ1ZSkge1xuICAgICAgLy8gZXhlbXB0aW9uIGZvciBtYWluIHJlc2lkZW5jZSBwcm9wZXJ0aWVzXG4gICAgICBjYXNlIHRoaXMuY2F0ZWdvcnkuaWQgPT09IFByb3BlcnR5Q2F0ZWdvcnlMaXN0RW51bS5PV05FUl9PQ0NVUElFRDpcbiAgICAgICAgcmV0dXJuIFRheEV4ZW1wdGlvbkVudW0uUFBSO1xuICAgICAgLy8gZXhlbXB0aW9uIGZvciBpbnZlc3RtZW50IHByb3BlcnRpZXMgb3duZWQgZm9yIGF0IGxlYXN0IG9uZSB5ZWFyXG4gICAgICBjYXNlIHRoaXMuaXNPbmVZZWFyRXhlbXB0aW9uQXBwbGljYWJsZShzYWxlKTpcbiAgICAgICAgcmV0dXJuIFRheEV4ZW1wdGlvbkVudW0uT05FX1lFQVJfUlVMRTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiB0YXggZXhlbXB0aW9uIGNhbiByZWR1Y2UgY2d0IGZyb20gMTAwJSB0byBsZXNzICh1cCB0byB6ZXJvKVxuICAgKi9cbiAgZ2V0Q0dURXhlbXB0aW9uUmF0aW8oc2FsZTogUHJvcGVydHlTYWxlKTogbnVtYmVyIHtcbiAgICBjb25zdCBtZXRhZGF0YTogUHJvcGVydHlTYWxlVGF4RXhlbXB0aW9uTWV0YWRhdGFDb2xsZWN0aW9uID0gbmV3IFByb3BlcnR5U2FsZVRheEV4ZW1wdGlvbk1ldGFkYXRhQ29sbGVjdGlvbihzYWxlLnRheEV4ZW1wdGlvbk1ldGFkYXRhKTtcblxuICAgIHN3aXRjaCAoc2FsZS50YXhFeGVtcHRpb24/LmlkKSB7XG4gICAgICAvLyA1MCUgZXhlbXB0aW9uIGZvciBpbnZlc3RtZW50cyBvd25lZCBmb3IgYXQgbGVhc3Qgb25lIHllYXJcbiAgICAgIGNhc2UgVGF4RXhlbXB0aW9uRW51bS5PTkVfWUVBUl9SVUxFOlxuICAgICAgICByZXR1cm4gMC41O1xuICAgICAgLy8gaW52ZXN0bWVudCBwcm9wZXJ0eSBiZWNvbWUgbWFpbiByZXNpZGVuY2UgKGV4ZW1wdGlvbiBmb3IgbWFpbiByZXNpZGVuY2Ugb3duZXJzaGlwIGR1cmF0aW9uKVxuICAgICAgY2FzZSBUYXhFeGVtcHRpb25FbnVtLklOVkVTVE1FTlRfVE9fUFBSOlxuICAgICAgICBjb25zdCBvd25lcnNoaXBEYXlzID0gdGhpcy5nZXRPd25lcnNoaXBEdXJhdGlvbihzYWxlKTtcblxuICAgICAgICByZXR1cm4gKG93bmVyc2hpcERheXMgLSBtZXRhZGF0YS5nZXRQUFJEYXlzKCkpIC8gb3duZXJzaGlwRGF5cztcbiAgICAgIC8vIG1haW4gcmVzaWRlbmNlIGJlY29tZSBpbnZlc3RtZW50IChleGVtcHRpb24gZm9yIGhvbWUgb2ZmaWNlIHBlcmNlbnQgdXNhZ2UpXG4gICAgICBjYXNlIFRheEV4ZW1wdGlvbkVudW0uUFBSX1RPX0lOVkVTVE1FTlQ6XG4gICAgICAgIC8vIDEgeWVhciBDR1QgZGlzY291bnQgY2FuIHN0aWxsIGFwcGx5IChvbiB0aGUgaW5jb21lIHByb2R1Y2luZyAlIGlmIHVzZWQgZm9yIDEyIG1vbnRocyBvciBtb3JlKVxuICAgICAgICBjb25zdCByYXRpbzogbnVtYmVyID0gdGhpcy5pc09uZVllYXJFeGVtcHRpb25BcHBsaWNhYmxlKHNhbGUpID8gMC41IDogMTtcbiAgICAgICAgcmV0dXJuIG1ldGFkYXRhLmdldENsYWltUGVyY2VudCgpIC8gMTAwICogcmF0aW87XG4gICAgICAvLyBmdWxsIGV4ZW1wdGlvblxuICAgICAgY2FzZSBUYXhFeGVtcHRpb25FbnVtLlBQUjpcbiAgICAgIGNhc2UgVGF4RXhlbXB0aW9uRW51bS5TSVhfWUVBUlNfUlVMRTpcbiAgICAgIGNhc2UgVGF4RXhlbXB0aW9uRW51bS5UUkFOU0ZFUjpcbiAgICAgIGNhc2UgVGF4RXhlbXB0aW9uRW51bS5PVEhFUjpcbiAgICAgICAgcmV0dXJuIDA7XG4gICAgICAvLyBubyBleGVtcHRpb25cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAxO1xuICAgIH1cbiAgfVxuXG4gIGlzT25lWWVhckV4ZW1wdGlvbkFwcGxpY2FibGUoc2FsZTogUHJvcGVydHlTYWxlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHNhbGUuZ3Jvc3NDR1QgPiAwICYmIHRoaXMuZ2V0T3duZXJzaGlwRHVyYXRpb24oc2FsZSwgJ3llYXJzJykgPiAwO1xuICB9XG5cbiAgLyoqXG4gICAqIG93bmVyc2hpcCBkdXJhdGlvbiBmcm9tIHB1cmNoYXNlIHRpbGwgc2FsZVxuICAgKi9cbiAgZ2V0T3duZXJzaGlwRHVyYXRpb24oc2FsZTogUHJvcGVydHlTYWxlLCB1bml0T2ZUaW1lOiB1bml0T2ZUaW1lLkRpZmYgPSAnZGF5cycpOiBudW1iZXIge1xuICAgIHJldHVybiBtb21lbnQoc2FsZS5jb250cmFjdERhdGUpLmRpZmYobW9tZW50KHRoaXMuY29udHJhY3REYXRlKSwgdW5pdE9mVGltZSk7XG4gIH1cblxuICAvKipcbiAgICogVGF4IFBvc2l0aW9uID0gSW5jb21lIC0gRXhwZW5zZSAtIEludGVyZXN0IC0gRGVwcmVjaWF0aW9uXG4gICAqIFdoZXJlIChJbmNvbWUgLSBFeHBlbnNlIC0gSW50ZXJlc3QpIGlzIGNhc2ggcG9zaXRpb24uXG4gICAqIGh0dHBzOi8vdGF4dGFuay5hdGxhc3NpYW4ubmV0L3dpa2kvc3BhY2VzL1RBWFRBTksvcGFnZXMvMjE3NDE1OTI4L0Rhc2hib2FyZCtQcm9wZXJ0eVxuICAgKi9cbiAgZ2V0VGF4UG9zaXRpb24odHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbkNvbGxlY3Rpb24sIGRlcHJlY2lhdGlvbnM6IERlcHJlY2lhdGlvbkNvbGxlY3Rpb24pOiBudW1iZXIge1xuICAgIHJldHVybiB0cmFuc2FjdGlvbnMuY2FzaFBvc2l0aW9uIC0gTWF0aC5hYnMoZGVwcmVjaWF0aW9ucy5jbGFpbUFtb3VudCk7XG4gIH1cbn1cbiJdfQ==
@@ -1,6 +1,9 @@
1
1
  import { Injectable } from '@angular/core';
2
2
  import { combineLatest } from 'rxjs';
3
3
  import { map } from 'rxjs/operators';
4
+ import { Dictionary } from '../../../models/dictionary/dictionary';
5
+ import { Badge } from '../../../models/badge/badge';
6
+ import { BadgeColorEnum } from '../../../models/badge/badge-color.enum';
4
7
  import * as i0 from "@angular/core";
5
8
  /**
6
9
  * Service with calculations methods for properties related with other entities.
@@ -109,6 +112,37 @@ export class PropertyCalculationService {
109
112
  // Math abs is required for correct percentage calculation
110
113
  return properties.purchasePrice - Math.abs(this.getLoanAmount(properties, bankAccounts, loans));
111
114
  }
115
+ /**
116
+ * Get dictionary of badges for each property in collection
117
+ */
118
+ getBadgesByProperty(properties, transactions, depreciations) {
119
+ const badgesByProperty = new Dictionary([]);
120
+ properties.toArray().forEach((property) => {
121
+ badgesByProperty.add(property.id, this.getBadge(property, properties, transactions, depreciations));
122
+ });
123
+ return badgesByProperty;
124
+ }
125
+ /**
126
+ * Get Badge for single property in collection
127
+ */
128
+ getBadge(property, properties, transactions, depreciations) {
129
+ // best performance properties could be only from active properties list
130
+ const activeProperties = properties.getActiveProperties();
131
+ const bestPerformanceGrowthProperty = activeProperties.getBestPerformanceGrowthProperty();
132
+ const bestPerformanceTaxProperty = activeProperties.getBestPerformanceTaxProperty(transactions, depreciations);
133
+ switch (true) {
134
+ case !property.isActive:
135
+ return new Badge('Inactive', BadgeColorEnum.GRAY);
136
+ case property.id === bestPerformanceTaxProperty.id && property.id === bestPerformanceGrowthProperty.id:
137
+ return new Badge('Best performance growth & tax', BadgeColorEnum.GOLD);
138
+ case property.id === bestPerformanceTaxProperty.id:
139
+ return new Badge('Best performance tax', BadgeColorEnum.GOLD);
140
+ case property.id === bestPerformanceGrowthProperty.id:
141
+ return new Badge('Best performance growth', BadgeColorEnum.GREEN);
142
+ default:
143
+ return new Badge('Monitoring performance');
144
+ }
145
+ }
112
146
  }
113
147
  PropertyCalculationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: PropertyCalculationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
114
148
  PropertyCalculationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: PropertyCalculationService, providedIn: 'root' });
@@ -118,4 +152,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImpo
118
152
  providedIn: 'root'
119
153
  }]
120
154
  }] });
121
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktY2FsY3VsYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9wcm9wZXJ0eS9wcm9wZXJ0eS1jYWxjdWxhdGlvbi9wcm9wZXJ0eS1jYWxjdWxhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGFBQWEsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBU3JDOzs7R0FHRztBQUlILE1BQU0sT0FBTywwQkFBMEI7SUFDckMsY0FBYyxDQUFDLFlBQW1DLEVBQUUsYUFBcUM7UUFDdkYsOEVBQThFO1FBQzlFLE9BQU8sWUFBWSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQsZUFBZSxDQUNiLGFBQWdELEVBQ2hELGNBQWtEO1FBRWxELE9BQU8sYUFBYSxDQUFDO1lBQ25CLGFBQWE7WUFDYixjQUFjO1NBQ2YsQ0FBQyxDQUFDLElBQUksQ0FDTCxHQUFHLENBQUMsQ0FBQyxDQUFDLFlBQVksRUFBRSxhQUFhLENBQWtELEVBQVUsRUFBRTtZQUM3RixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQzFELENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsaUJBQWlCLENBQUMsVUFBOEIsRUFBRSxZQUFtQyxFQUFFLGFBQXFDO1FBQzFILE1BQU0sV0FBVyxHQUFXLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQzdFLHFEQUFxRDtRQUNyRCxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2hCLE9BQU8sQ0FBQyxDQUFDO1NBQ1Y7UUFFRCxPQUFPLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLFdBQVcsQ0FBQztJQUN4RSxDQUFDO0lBRUQsa0JBQWtCLENBQ2hCLFdBQTJDLEVBQzNDLGFBQWdELEVBQ2hELGNBQWtEO1FBRWxELE9BQU8sYUFBYSxDQUFDO1lBQ25CLFdBQVc7WUFDWCxhQUFhO1lBQ2IsY0FBYztTQUNmLENBQUMsQ0FBQyxJQUFJLENBQ0wsR0FBRyxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsWUFBWSxFQUFFLGFBQWEsQ0FBc0UsRUFBVSxFQUFFO1lBQzdILE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsRUFBRSxZQUFZLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDekUsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCxlQUFlLENBQUMsVUFBOEIsRUFBRSxZQUFtQztRQUNqRixPQUFPLFlBQVksQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDLFdBQVcsQ0FBQztJQUMzRCxDQUFDO0lBRUQsYUFBYSxDQUFDLFVBQThCLEVBQUUsWUFBbUMsRUFBRSxLQUFxQjtRQUN0RyxPQUFPLFVBQVUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsV0FBbUIsRUFBRSxRQUFrQixFQUFVLEVBQUU7WUFDakYsT0FBTyxXQUFXLEdBQUcsWUFBWSxDQUFDLEtBQUs7aUJBQ3BDLE1BQU0sQ0FBQyxDQUFDLGNBQXNCLEVBQUUsV0FBd0IsRUFBVSxFQUFFOztnQkFDbkUsT0FBTyxjQUFjLEdBQUcsV0FBVyxDQUFDLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUEsTUFBQSxLQUFLLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQywwQ0FBRSxNQUFNLEtBQUksQ0FBQyxDQUFDLENBQUM7WUFDbkksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ1YsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ1IsQ0FBQztJQUVELFlBQVksQ0FBQyxVQUE4QixFQUFFLFlBQW1DO1FBQzlFLE9BQU8sVUFBVSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxXQUFtQixFQUFFLFFBQWtCLEVBQVUsRUFBRTtZQUNqRixPQUFPLFdBQVcsR0FBRyxZQUFZLENBQUMsS0FBSztpQkFDcEMsTUFBTSxDQUFDLENBQUMsY0FBc0IsRUFBRSxXQUF3QixFQUFVLEVBQUU7Z0JBQ25FLE9BQU8sY0FBYyxHQUFHLFdBQVcsQ0FBQyx3QkFBd0IsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDNUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ1YsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ1IsQ0FBQztJQUVEOztPQUVHO0lBRUgsTUFBTSxDQUFDLFVBQThCLEVBQUUsWUFBbUM7UUFDeEUsMERBQTBEO1FBQzFELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxZQUFZLENBQUMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxXQUFXLENBQUM7SUFDeEYsQ0FBQztJQUVELE9BQU8sQ0FDTCxXQUEyQyxFQUMzQyxhQUFnRDtRQUVoRCxPQUFPLGFBQWEsQ0FBQztZQUNuQixXQUFXO1lBQ1gsYUFBYTtTQUNkLENBQUMsQ0FBQyxJQUFJLENBQ0wsR0FBRyxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsWUFBWSxDQUE4QyxFQUFVLEVBQUU7WUFDdEYsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUMvQyxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELGtCQUFrQixDQUFDLFVBQThCLEVBQUUsS0FBcUIsRUFBRSxZQUFtQztRQUMzRywwREFBMEQ7UUFDMUQsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLENBQUMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUM7SUFDbEcsQ0FBQztJQUVELG1CQUFtQixDQUNqQixXQUEyQyxFQUMzQyxhQUFnRCxFQUNoRCxNQUFrQztRQUVsQyxPQUFPLGFBQWEsQ0FBQztZQUNuQixXQUFXO1lBQ1gsYUFBYTtZQUNiLE1BQU07U0FDUCxDQUFDLENBQUMsSUFBSSxDQUNMLEdBQUcsQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLENBQThELEVBQVUsRUFBRTtZQUM3RyxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLEVBQUUsS0FBSyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ2xFLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsWUFBWSxDQUFDLFVBQThCLEVBQUUsWUFBbUMsRUFBRSxLQUFxQjtRQUNyRyxNQUFNLEdBQUcsR0FBVyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1IsNkNBQTZDO1lBQzdDLE9BQU8sQ0FBQyxDQUFDO1NBQ1Y7UUFFRCxPQUFPLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLEVBQUUsS0FBSyxFQUFFLFlBQVksQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO0lBQ2hGLENBQUM7SUFFRCxhQUFhLENBQ1gsV0FBMkMsRUFDM0MsYUFBZ0QsRUFDaEQsTUFBa0M7UUFFbEMsT0FBTyxhQUFhLENBQUM7WUFDbkIsV0FBVztZQUNYLGFBQWE7WUFDYixNQUFNO1NBQ1AsQ0FBQyxDQUFDLElBQUksQ0FDTCxHQUFHLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxZQUFZLEVBQUUsS0FBSyxDQUE4RCxFQUFVLEVBQUU7WUFDN0csT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxZQUFZLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDNUQsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxVQUE4QixFQUFFLFlBQW1DO1FBQ25GLDBEQUEwRDtRQUMxRCxPQUFPLFVBQVUsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDO0lBQ3hGLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxVQUE4QixFQUFFLFlBQW1DLEVBQUUsS0FBcUI7UUFDMUcsMERBQTBEO1FBQzFELE9BQU8sVUFBVSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xHLENBQUM7O3dIQWxKVSwwQkFBMEI7NEhBQTFCLDBCQUEwQixjQUZ6QixNQUFNOzRGQUVQLDBCQUEwQjtrQkFIdEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBCYW5rQWNjb3VudENvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9jb2xsZWN0aW9ucy9iYW5rLWFjY291bnQuY29sbGVjdGlvbic7XG5pbXBvcnQgeyBEZXByZWNpYXRpb25Db2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vY29sbGVjdGlvbnMvZGVwcmVjaWF0aW9uLmNvbGxlY3Rpb24nO1xuaW1wb3J0IHsgTG9hbkNvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9jb2xsZWN0aW9ucy9sb2FuL2xvYW4uY29sbGVjdGlvbic7XG5pbXBvcnQgeyBQcm9wZXJ0eUNvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9jb2xsZWN0aW9ucy9wcm9wZXJ0eS9wcm9wZXJ0eS5jb2xsZWN0aW9uJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uLy4uL2NvbGxlY3Rpb25zL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uLmNvbGxlY3Rpb24nO1xuaW1wb3J0IHsgUHJvcGVydHkgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvcHJvcGVydHkvcHJvcGVydHknO1xuaW1wb3J0IHsgQmFua0FjY291bnQgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvYmFuay9iYW5rLWFjY291bnQnO1xuXG4vKipcbiAqIFNlcnZpY2Ugd2l0aCBjYWxjdWxhdGlvbnMgbWV0aG9kcyBmb3IgcHJvcGVydGllcyByZWxhdGVkIHdpdGggb3RoZXIgZW50aXRpZXMuXG4gKiBMb2dpYyBoZXJlIHdvcmtzIGxpa2UgY29sbGVjdGlvbnMgbWV0aG9kcyBidXQgZm9yIHNldmVyYWwgZW50aXRpZXNcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUHJvcGVydHlDYWxjdWxhdGlvblNlcnZpY2Uge1xuICBnZXRUYXhQb3NpdGlvbih0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiwgZGVwcmVjaWF0aW9uczogRGVwcmVjaWF0aW9uQ29sbGVjdGlvbik6IG51bWJlciB7XG4gICAgLy8gQFRPRE8gaGFjazogbWF0aCBhYnMgYWRkZWQgYmVjYXVzZSB3ZSBoYXZlIG1pc21hdGNoaW5nIG9mIHJlYWwgdmFsdWVzIHNpZ25zXG4gICAgcmV0dXJuIHRyYW5zYWN0aW9ucy5jYXNoUG9zaXRpb24gLSBNYXRoLmFicyhkZXByZWNpYXRpb25zLmNsYWltQW1vdW50KTtcbiAgfVxuXG4gIGdldFRheFBvc2l0aW9uJChcbiAgICB0cmFuc2FjdGlvbnMkOiBPYnNlcnZhYmxlPFRyYW5zYWN0aW9uQ29sbGVjdGlvbj4sXG4gICAgZGVwcmVjaWF0aW9ucyQ6IE9ic2VydmFibGU8RGVwcmVjaWF0aW9uQ29sbGVjdGlvbj5cbiAgKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbXG4gICAgICB0cmFuc2FjdGlvbnMkLFxuICAgICAgZGVwcmVjaWF0aW9ucyRcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKChbdHJhbnNhY3Rpb25zLCBkZXByZWNpYXRpb25zXTogW1RyYW5zYWN0aW9uQ29sbGVjdGlvbiwgRGVwcmVjaWF0aW9uQ29sbGVjdGlvbl0pOiBudW1iZXIgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRUYXhQb3NpdGlvbih0cmFuc2FjdGlvbnMsIGRlcHJlY2lhdGlvbnMpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgdGF4UG9zaXRpb25Hcm93dGgocHJvcGVydGllczogUHJvcGVydHlDb2xsZWN0aW9uLCB0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiwgZGVwcmVjaWF0aW9uczogRGVwcmVjaWF0aW9uQ29sbGVjdGlvbik6IG51bWJlciB7XG4gICAgY29uc3QgdGF4UG9zaXRpb246IG51bWJlciA9IHRoaXMuZ2V0VGF4UG9zaXRpb24odHJhbnNhY3Rpb25zLCBkZXByZWNpYXRpb25zKTtcbiAgICAvLyBjaGVjayBpZiB0YXhQb3NpdGlvbiA9IDAgdG8gYXZvaWQgZGl2aXNpb24gYnkgemVyb1xuICAgIGlmICghdGF4UG9zaXRpb24pIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cblxuICAgIHJldHVybiAodGF4UG9zaXRpb24gLSBwcm9wZXJ0aWVzLmZvcmVjYXN0ZWRUYXhQb3NpdGlvbikgLyB0YXhQb3NpdGlvbjtcbiAgfVxuXG4gIHRheFBvc2l0aW9uR3Jvd3RoJChcbiAgICBwcm9wZXJ0aWVzJDogT2JzZXJ2YWJsZTxQcm9wZXJ0eUNvbGxlY3Rpb24+LFxuICAgIHRyYW5zYWN0aW9ucyQ6IE9ic2VydmFibGU8VHJhbnNhY3Rpb25Db2xsZWN0aW9uPixcbiAgICBkZXByZWNpYXRpb25zJDogT2JzZXJ2YWJsZTxEZXByZWNpYXRpb25Db2xsZWN0aW9uPlxuICApOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHByb3BlcnRpZXMkLFxuICAgICAgdHJhbnNhY3Rpb25zJCxcbiAgICAgIGRlcHJlY2lhdGlvbnMkXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW3Byb3BlcnRpZXMsIHRyYW5zYWN0aW9ucywgZGVwcmVjaWF0aW9uc106IFtQcm9wZXJ0eUNvbGxlY3Rpb24sIFRyYW5zYWN0aW9uQ29sbGVjdGlvbiwgRGVwcmVjaWF0aW9uQ29sbGVjdGlvbl0pOiBudW1iZXIgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy50YXhQb3NpdGlvbkdyb3d0aChwcm9wZXJ0aWVzLCB0cmFuc2FjdGlvbnMsIGRlcHJlY2lhdGlvbnMpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgZ2V0UmVudGFsUmV0dXJuKHByb3BlcnRpZXM6IFByb3BlcnR5Q29sbGVjdGlvbiwgdHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbkNvbGxlY3Rpb24pOiBudW1iZXIge1xuICAgIHJldHVybiB0cmFuc2FjdGlvbnMuY2xhaW1JbmNvbWUgLyBwcm9wZXJ0aWVzLm1hcmtldFZhbHVlO1xuICB9XG5cbiAgZ2V0TG9hbkFtb3VudChwcm9wZXJ0aWVzOiBQcm9wZXJ0eUNvbGxlY3Rpb24sIGJhbmtBY2NvdW50czogQmFua0FjY291bnRDb2xsZWN0aW9uLCBsb2FuczogTG9hbkNvbGxlY3Rpb24pOiBudW1iZXIge1xuICAgIHJldHVybiBwcm9wZXJ0aWVzLml0ZW1zLnJlZHVjZSgodG90YWxBbW91bnQ6IG51bWJlciwgcHJvcGVydHk6IFByb3BlcnR5KTogbnVtYmVyID0+IHtcbiAgICAgIHJldHVybiB0b3RhbEFtb3VudCArIGJhbmtBY2NvdW50cy5pdGVtc1xuICAgICAgICAucmVkdWNlKChwcm9wZXJ0eUFtb3VudDogbnVtYmVyLCBiYW5rQWNjb3VudDogQmFua0FjY291bnQpOiBudW1iZXIgPT4ge1xuICAgICAgICAgIHJldHVybiBwcm9wZXJ0eUFtb3VudCArIGJhbmtBY2NvdW50LmdldFByb3BlcnR5UGVyY2VudGFnZShwcm9wZXJ0eS5pZCkgKiAobG9hbnMuZ2V0QnlCYW5rQWNjb3VudElkKGJhbmtBY2NvdW50LmlkKT8uYW1vdW50IHx8IDApO1xuICAgICAgICB9LCAwKTtcbiAgICB9LCAwKTtcbiAgfVxuXG4gIGdldExvYW5WYWx1ZShwcm9wZXJ0aWVzOiBQcm9wZXJ0eUNvbGxlY3Rpb24sIGJhbmtBY2NvdW50czogQmFua0FjY291bnRDb2xsZWN0aW9uKTogbnVtYmVyIHtcbiAgICByZXR1cm4gcHJvcGVydGllcy5pdGVtcy5yZWR1Y2UoKHRvdGFsQW1vdW50OiBudW1iZXIsIHByb3BlcnR5OiBQcm9wZXJ0eSk6IG51bWJlciA9PiB7XG4gICAgICByZXR1cm4gdG90YWxBbW91bnQgKyBiYW5rQWNjb3VudHMuaXRlbXNcbiAgICAgICAgLnJlZHVjZSgocHJvcGVydHlBbW91bnQ6IG51bWJlciwgYmFua0FjY291bnQ6IEJhbmtBY2NvdW50KTogbnVtYmVyID0+IHtcbiAgICAgICAgICByZXR1cm4gcHJvcGVydHlBbW91bnQgKyBiYW5rQWNjb3VudC5nZXRQcm9wZXJ0eUJhbGFuY2VBbW91bnQocHJvcGVydHkuaWQpO1xuICAgICAgICB9LCAwKTtcbiAgICB9LCAwKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMVlJcbiAgICovXG5cbiAgZ2V0THZyKHByb3BlcnRpZXM6IFByb3BlcnR5Q29sbGVjdGlvbiwgYmFua0FjY291bnRzOiBCYW5rQWNjb3VudENvbGxlY3Rpb24pOiBudW1iZXIge1xuICAgIC8vIE1hdGggYWJzIGlzIHJlcXVpcmVkIGZvciBjb3JyZWN0IHBlcmNlbnRhZ2UgY2FsY3VsYXRpb25cbiAgICByZXR1cm4gTWF0aC5hYnModGhpcy5nZXRMb2FuVmFsdWUocHJvcGVydGllcywgYmFua0FjY291bnRzKSkgLyBwcm9wZXJ0aWVzLm1hcmtldFZhbHVlO1xuICB9XG5cbiAgZ2V0THZyJChcbiAgICBwcm9wZXJ0aWVzJDogT2JzZXJ2YWJsZTxQcm9wZXJ0eUNvbGxlY3Rpb24+LFxuICAgIGJhbmtBY2NvdW50cyQ6IE9ic2VydmFibGU8QmFua0FjY291bnRDb2xsZWN0aW9uPlxuICApOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHByb3BlcnRpZXMkLFxuICAgICAgYmFua0FjY291bnRzJFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKFtwcm9wZXJ0aWVzLCBiYW5rQWNjb3VudHNdOiBbUHJvcGVydHlDb2xsZWN0aW9uLCBCYW5rQWNjb3VudENvbGxlY3Rpb25dKTogbnVtYmVyID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0THZyKHByb3BlcnRpZXMsIGJhbmtBY2NvdW50cyk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBnZXRMdnJDb21tZW5jZW1lbnQocHJvcGVydGllczogUHJvcGVydHlDb2xsZWN0aW9uLCBsb2FuczogTG9hbkNvbGxlY3Rpb24sIGJhbmtBY2NvdW50czogQmFua0FjY291bnRDb2xsZWN0aW9uKTogbnVtYmVyIHtcbiAgICAvLyBNYXRoIGFicyBpcyByZXF1aXJlZCBmb3IgY29ycmVjdCBwZXJjZW50YWdlIGNhbGN1bGF0aW9uXG4gICAgcmV0dXJuIE1hdGguYWJzKHRoaXMuZ2V0TG9hbkFtb3VudChwcm9wZXJ0aWVzLCBiYW5rQWNjb3VudHMsIGxvYW5zKSkgLyBwcm9wZXJ0aWVzLnB1cmNoYXNlUHJpY2U7XG4gIH1cblxuICBnZXRMdnJDb21tZW5jZW1lbnQkKFxuICAgIHByb3BlcnRpZXMkOiBPYnNlcnZhYmxlPFByb3BlcnR5Q29sbGVjdGlvbj4sXG4gICAgYmFua0FjY291bnRzJDogT2JzZXJ2YWJsZTxCYW5rQWNjb3VudENvbGxlY3Rpb24+LFxuICAgIGxvYW5zJDogT2JzZXJ2YWJsZTxMb2FuQ29sbGVjdGlvbj5cbiAgKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbXG4gICAgICBwcm9wZXJ0aWVzJCxcbiAgICAgIGJhbmtBY2NvdW50cyQsXG4gICAgICBsb2FucyRcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKChbcHJvcGVydGllcywgYmFua0FjY291bnRzLCBsb2Fuc106IFtQcm9wZXJ0eUNvbGxlY3Rpb24sIEJhbmtBY2NvdW50Q29sbGVjdGlvbiwgTG9hbkNvbGxlY3Rpb25dKTogbnVtYmVyID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0THZyQ29tbWVuY2VtZW50KHByb3BlcnRpZXMsIGxvYW5zLCBiYW5rQWNjb3VudHMpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgZ2V0THZyR3Jvd3RoKHByb3BlcnRpZXM6IFByb3BlcnR5Q29sbGVjdGlvbiwgYmFua0FjY291bnRzOiBCYW5rQWNjb3VudENvbGxlY3Rpb24sIGxvYW5zOiBMb2FuQ29sbGVjdGlvbik6IG51bWJlciB7XG4gICAgY29uc3QgbHZyOiBudW1iZXIgPSB0aGlzLmdldEx2cihwcm9wZXJ0aWVzLCBiYW5rQWNjb3VudHMpO1xuICAgIGlmICghbHZyKSB7XG4gICAgICAvLyBjaGVjayBpZiBsdnIgPSAwIHRvIGF2b2lkIGRpdmlzaW9uIGJ5IHplcm9cbiAgICAgIHJldHVybiAwO1xuICAgIH1cblxuICAgIHJldHVybiAobHZyIC0gdGhpcy5nZXRMdnJDb21tZW5jZW1lbnQocHJvcGVydGllcywgbG9hbnMsIGJhbmtBY2NvdW50cykpIC8gbHZyO1xuICB9XG5cbiAgZ2V0THZyR3Jvd3RoJChcbiAgICBwcm9wZXJ0aWVzJDogT2JzZXJ2YWJsZTxQcm9wZXJ0eUNvbGxlY3Rpb24+LFxuICAgIGJhbmtBY2NvdW50cyQ6IE9ic2VydmFibGU8QmFua0FjY291bnRDb2xsZWN0aW9uPixcbiAgICBsb2FucyQ6IE9ic2VydmFibGU8TG9hbkNvbGxlY3Rpb24+XG4gICk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgcHJvcGVydGllcyQsXG4gICAgICBiYW5rQWNjb3VudHMkLFxuICAgICAgbG9hbnMkXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW3Byb3BlcnRpZXMsIGJhbmtBY2NvdW50cywgbG9hbnNdOiBbUHJvcGVydHlDb2xsZWN0aW9uLCBCYW5rQWNjb3VudENvbGxlY3Rpb24sIExvYW5Db2xsZWN0aW9uXSk6IG51bWJlciA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEx2ckdyb3d0aChwcm9wZXJ0aWVzLCBiYW5rQWNjb3VudHMsIGxvYW5zKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGdldEVxdWl0eVBvc2l0aW9uKHByb3BlcnRpZXM6IFByb3BlcnR5Q29sbGVjdGlvbiwgYmFua0FjY291bnRzOiBCYW5rQWNjb3VudENvbGxlY3Rpb24pOiBudW1iZXIge1xuICAgIC8vIE1hdGggYWJzIGlzIHJlcXVpcmVkIGZvciBjb3JyZWN0IHBlcmNlbnRhZ2UgY2FsY3VsYXRpb25cbiAgICByZXR1cm4gcHJvcGVydGllcy5tYXJrZXRWYWx1ZSAtIE1hdGguYWJzKHRoaXMuZ2V0TG9hblZhbHVlKHByb3BlcnRpZXMsIGJhbmtBY2NvdW50cykpO1xuICB9XG5cbiAgZ2V0UHVyY2hhc2VFcXVpdHkocHJvcGVydGllczogUHJvcGVydHlDb2xsZWN0aW9uLCBiYW5rQWNjb3VudHM6IEJhbmtBY2NvdW50Q29sbGVjdGlvbiwgbG9hbnM6IExvYW5Db2xsZWN0aW9uKTogbnVtYmVyIHtcbiAgICAvLyBNYXRoIGFicyBpcyByZXF1aXJlZCBmb3IgY29ycmVjdCBwZXJjZW50YWdlIGNhbGN1bGF0aW9uXG4gICAgcmV0dXJuIHByb3BlcnRpZXMucHVyY2hhc2VQcmljZSAtIE1hdGguYWJzKHRoaXMuZ2V0TG9hbkFtb3VudChwcm9wZXJ0aWVzLCBiYW5rQWNjb3VudHMsIGxvYW5zKSk7XG4gIH1cbn1cbiJdfQ==
155
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktY2FsY3VsYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9wcm9wZXJ0eS9wcm9wZXJ0eS1jYWxjdWxhdGlvbi9wcm9wZXJ0eS1jYWxjdWxhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGFBQWEsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFRckMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7O0FBRXhFOzs7R0FHRztBQUlILE1BQU0sT0FBTywwQkFBMEI7SUFDckMsY0FBYyxDQUFDLFlBQW1DLEVBQUUsYUFBcUM7UUFDdkYsOEVBQThFO1FBQzlFLE9BQU8sWUFBWSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQsZUFBZSxDQUNiLGFBQWdELEVBQ2hELGNBQWtEO1FBRWxELE9BQU8sYUFBYSxDQUFDO1lBQ25CLGFBQWE7WUFDYixjQUFjO1NBQ2YsQ0FBQyxDQUFDLElBQUksQ0FDTCxHQUFHLENBQUMsQ0FBQyxDQUFDLFlBQVksRUFBRSxhQUFhLENBQWtELEVBQVUsRUFBRTtZQUM3RixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQzFELENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsaUJBQWlC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Z0JBQWdCLEdBQXVCLFVBQVUsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzlFLE1BQU0sNkJBQTZCLEdBQWEsZ0JBQWdCLENBQUMsZ0NBQWdDLEVBQUUsQ0FBQztRQUNwRyxNQUFNLDBCQUEwQixHQUFhLGdCQUFnQixDQUFDLDZCQUE2QixDQUN6RixZQUFZLEVBQUUsYUFBYSxDQUM1QixDQUFDO1FBRUYsUUFBUSxJQUFJLEVBQUU7WUFDWixLQUFLLENBQUMsUUFBUSxDQUFDLFFBQVE7Z0JBQ3JCLE9BQU8sSUFBSSxLQUFLLENBQUMsVUFBVSxFQUFFLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNwRCxLQUFLLFFBQVEsQ0FBQyxFQUFFLEtBQUssMEJBQTBCLENBQUMsRUFBRSxJQUFJLFFBQVEsQ0FBQyxFQUFFLEtBQUssNkJBQTZCLENBQUMsRUFBRTtnQkFDcEcsT0FBTyxJQUFJLEtBQUssQ0FBQywrQkFBK0IsRUFBRSxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDekUsS0FBSyxRQUFRLENBQUMsRUFBRSxLQUFLLDBCQUEwQixDQUFDLEVBQUU7Z0JBQ2hELE9BQU8sSUFBSSxLQUFLLENBQUMsc0JBQXNCLEVBQUUsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2hFLEtBQUssUUFBUSxDQUFDLEVBQUUsS0FBSyw2QkFBNkIsQ0FBQyxFQUFFO2dCQUNuRCxPQUFPLElBQUksS0FBSyxDQUFDLHlCQUF5QixFQUFFLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNwRTtnQkFDRSxPQUFPLElBQUksS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUM7U0FDOUM7SUFDSCxDQUFDOzt3SEF4TFUsMEJBQTBCOzRIQUExQiwwQkFBMEIsY0FGekIsTUFBTTs0RkFFUCwwQkFBMEI7a0JBSHRDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQmFua0FjY291bnRDb2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vY29sbGVjdGlvbnMvYmFuay1hY2NvdW50LmNvbGxlY3Rpb24nO1xuaW1wb3J0IHsgRGVwcmVjaWF0aW9uQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uLy4uL2NvbGxlY3Rpb25zL2RlcHJlY2lhdGlvbi5jb2xsZWN0aW9uJztcbmltcG9ydCB7IExvYW5Db2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vY29sbGVjdGlvbnMvbG9hbi9sb2FuLmNvbGxlY3Rpb24nO1xuaW1wb3J0IHsgUHJvcGVydHlDb2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vY29sbGVjdGlvbnMvcHJvcGVydHkvcHJvcGVydHkuY29sbGVjdGlvbic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkNvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9jb2xsZWN0aW9ucy90cmFuc2FjdGlvbi90cmFuc2FjdGlvbi5jb2xsZWN0aW9uJztcbmltcG9ydCB7IFByb3BlcnR5IH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL3Byb3BlcnR5L3Byb3BlcnR5JztcbmltcG9ydCB7IEJhbmtBY2NvdW50IH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2JhbmsvYmFuay1hY2NvdW50JztcbmltcG9ydCB7IERpY3Rpb25hcnkgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZGljdGlvbmFyeS9kaWN0aW9uYXJ5JztcbmltcG9ydCB7IEJhZGdlIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2JhZGdlL2JhZGdlJztcbmltcG9ydCB7IEJhZGdlQ29sb3JFbnVtIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2JhZGdlL2JhZGdlLWNvbG9yLmVudW0nO1xuXG4vKipcbiAqIFNlcnZpY2Ugd2l0aCBjYWxjdWxhdGlvbnMgbWV0aG9kcyBmb3IgcHJvcGVydGllcyByZWxhdGVkIHdpdGggb3RoZXIgZW50aXRpZXMuXG4gKiBMb2dpYyBoZXJlIHdvcmtzIGxpa2UgY29sbGVjdGlvbnMgbWV0aG9kcyBidXQgZm9yIHNldmVyYWwgZW50aXRpZXNcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUHJvcGVydHlDYWxjdWxhdGlvblNlcnZpY2Uge1xuICBnZXRUYXhQb3NpdGlvbih0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiwgZGVwcmVjaWF0aW9uczogRGVwcmVjaWF0aW9uQ29sbGVjdGlvbik6IG51bWJlciB7XG4gICAgLy8gQFRPRE8gaGFjazogbWF0aCBhYnMgYWRkZWQgYmVjYXVzZSB3ZSBoYXZlIG1pc21hdGNoaW5nIG9mIHJlYWwgdmFsdWVzIHNpZ25zXG4gICAgcmV0dXJuIHRyYW5zYWN0aW9ucy5jYXNoUG9zaXRpb24gLSBNYXRoLmFicyhkZXByZWNpYXRpb25zLmNsYWltQW1vdW50KTtcbiAgfVxuXG4gIGdldFRheFBvc2l0aW9uJChcbiAgICB0cmFuc2FjdGlvbnMkOiBPYnNlcnZhYmxlPFRyYW5zYWN0aW9uQ29sbGVjdGlvbj4sXG4gICAgZGVwcmVjaWF0aW9ucyQ6IE9ic2VydmFibGU8RGVwcmVjaWF0aW9uQ29sbGVjdGlvbj5cbiAgKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbXG4gICAgICB0cmFuc2FjdGlvbnMkLFxuICAgICAgZGVwcmVjaWF0aW9ucyRcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKChbdHJhbnNhY3Rpb25zLCBkZXByZWNpYXRpb25zXTogW1RyYW5zYWN0aW9uQ29sbGVjdGlvbiwgRGVwcmVjaWF0aW9uQ29sbGVjdGlvbl0pOiBudW1iZXIgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRUYXhQb3NpdGlvbih0cmFuc2FjdGlvbnMsIGRlcHJlY2lhdGlvbnMpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgdGF4UG9zaXRpb25Hcm93dGgocHJvcGVydGllczogUHJvcGVydHlDb2xsZWN0aW9uLCB0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiwgZGVwcmVjaWF0aW9uczogRGVwcmVjaWF0aW9uQ29sbGVjdGlvbik6IG51bWJlciB7XG4gICAgY29uc3QgdGF4UG9zaXRpb246IG51bWJlciA9IHRoaXMuZ2V0VGF4UG9zaXRpb24odHJhbnNhY3Rpb25zLCBkZXByZWNpYXRpb25zKTtcbiAgICAvLyBjaGVjayBpZiB0YXhQb3NpdGlvbiA9IDAgdG8gYXZvaWQgZGl2aXNpb24gYnkgemVyb1xuICAgIGlmICghdGF4UG9zaXRpb24pIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cblxuICAgIHJldHVybiAodGF4UG9zaXRpb24gLSBwcm9wZXJ0aWVzLmZvcmVjYXN0ZWRUYXhQb3NpdGlvbikgLyB0YXhQb3NpdGlvbjtcbiAgfVxuXG4gIHRheFBvc2l0aW9uR3Jvd3RoJChcbiAgICBwcm9wZXJ0aWVzJDogT2JzZXJ2YWJsZTxQcm9wZXJ0eUNvbGxlY3Rpb24+LFxuICAgIHRyYW5zYWN0aW9ucyQ6IE9ic2VydmFibGU8VHJhbnNhY3Rpb25Db2xsZWN0aW9uPixcbiAgICBkZXByZWNpYXRpb25zJDogT2JzZXJ2YWJsZTxEZXByZWNpYXRpb25Db2xsZWN0aW9uPlxuICApOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHByb3BlcnRpZXMkLFxuICAgICAgdHJhbnNhY3Rpb25zJCxcbiAgICAgIGRlcHJlY2lhdGlvbnMkXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW3Byb3BlcnRpZXMsIHRyYW5zYWN0aW9ucywgZGVwcmVjaWF0aW9uc106IFtQcm9wZXJ0eUNvbGxlY3Rpb24sIFRyYW5zYWN0aW9uQ29sbGVjdGlvbiwgRGVwcmVjaWF0aW9uQ29sbGVjdGlvbl0pOiBudW1iZXIgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy50YXhQb3NpdGlvbkdyb3d0aChwcm9wZXJ0aWVzLCB0cmFuc2FjdGlvbnMsIGRlcHJlY2lhdGlvbnMpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgZ2V0UmVudGFsUmV0dXJuKHByb3BlcnRpZXM6IFByb3BlcnR5Q29sbGVjdGlvbiwgdHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbkNvbGxlY3Rpb24pOiBudW1iZXIge1xuICAgIHJldHVybiB0cmFuc2FjdGlvbnMuY2xhaW1JbmNvbWUgLyBwcm9wZXJ0aWVzLm1hcmtldFZhbHVlO1xuICB9XG5cbiAgZ2V0TG9hbkFtb3VudChwcm9wZXJ0aWVzOiBQcm9wZXJ0eUNvbGxlY3Rpb24sIGJhbmtBY2NvdW50czogQmFua0FjY291bnRDb2xsZWN0aW9uLCBsb2FuczogTG9hbkNvbGxlY3Rpb24pOiBudW1iZXIge1xuICAgIHJldHVybiBwcm9wZXJ0aWVzLml0ZW1zLnJlZHVjZSgodG90YWxBbW91bnQ6IG51bWJlciwgcHJvcGVydHk6IFByb3BlcnR5KTogbnVtYmVyID0+IHtcbiAgICAgIHJldHVybiB0b3RhbEFtb3VudCArIGJhbmtBY2NvdW50cy5pdGVtc1xuICAgICAgICAucmVkdWNlKChwcm9wZXJ0eUFtb3VudDogbnVtYmVyLCBiYW5rQWNjb3VudDogQmFua0FjY291bnQpOiBudW1iZXIgPT4ge1xuICAgICAgICAgIHJldHVybiBwcm9wZXJ0eUFtb3VudCArIGJhbmtBY2NvdW50LmdldFByb3BlcnR5UGVyY2VudGFnZShwcm9wZXJ0eS5pZCkgKiAobG9hbnMuZ2V0QnlCYW5rQWNjb3VudElkKGJhbmtBY2NvdW50LmlkKT8uYW1vdW50IHx8IDApO1xuICAgICAgICB9LCAwKTtcbiAgICB9LCAwKTtcbiAgfVxuXG4gIGdldExvYW5WYWx1ZShwcm9wZXJ0aWVzOiBQcm9wZXJ0eUNvbGxlY3Rpb24sIGJhbmtBY2NvdW50czogQmFua0FjY291bnRDb2xsZWN0aW9uKTogbnVtYmVyIHtcbiAgICByZXR1cm4gcHJvcGVydGllcy5pdGVtcy5yZWR1Y2UoKHRvdGFsQW1vdW50OiBudW1iZXIsIHByb3BlcnR5OiBQcm9wZXJ0eSk6IG51bWJlciA9PiB7XG4gICAgICByZXR1cm4gdG90YWxBbW91bnQgKyBiYW5rQWNjb3VudHMuaXRlbXNcbiAgICAgICAgLnJlZHVjZSgocHJvcGVydHlBbW91bnQ6IG51bWJlciwgYmFua0FjY291bnQ6IEJhbmtBY2NvdW50KTogbnVtYmVyID0+IHtcbiAgICAgICAgICByZXR1cm4gcHJvcGVydHlBbW91bnQgKyBiYW5rQWNjb3VudC5nZXRQcm9wZXJ0eUJhbGFuY2VBbW91bnQocHJvcGVydHkuaWQpO1xuICAgICAgICB9LCAwKTtcbiAgICB9LCAwKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMVlJcbiAgICovXG5cbiAgZ2V0THZyKHByb3BlcnRpZXM6IFByb3BlcnR5Q29sbGVjdGlvbiwgYmFua0FjY291bnRzOiBCYW5rQWNjb3VudENvbGxlY3Rpb24pOiBudW1iZXIge1xuICAgIC8vIE1hdGggYWJzIGlzIHJlcXVpcmVkIGZvciBjb3JyZWN0IHBlcmNlbnRhZ2UgY2FsY3VsYXRpb25cbiAgICByZXR1cm4gTWF0aC5hYnModGhpcy5nZXRMb2FuVmFsdWUocHJvcGVydGllcywgYmFua0FjY291bnRzKSkgLyBwcm9wZXJ0aWVzLm1hcmtldFZhbHVlO1xuICB9XG5cbiAgZ2V0THZyJChcbiAgICBwcm9wZXJ0aWVzJDogT2JzZXJ2YWJsZTxQcm9wZXJ0eUNvbGxlY3Rpb24+LFxuICAgIGJhbmtBY2NvdW50cyQ6IE9ic2VydmFibGU8QmFua0FjY291bnRDb2xsZWN0aW9uPlxuICApOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHByb3BlcnRpZXMkLFxuICAgICAgYmFua0FjY291bnRzJFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKFtwcm9wZXJ0aWVzLCBiYW5rQWNjb3VudHNdOiBbUHJvcGVydHlDb2xsZWN0aW9uLCBCYW5rQWNjb3VudENvbGxlY3Rpb25dKTogbnVtYmVyID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0THZyKHByb3BlcnRpZXMsIGJhbmtBY2NvdW50cyk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBnZXRMdnJDb21tZW5jZW1lbnQocHJvcGVydGllczogUHJvcGVydHlDb2xsZWN0aW9uLCBsb2FuczogTG9hbkNvbGxlY3Rpb24sIGJhbmtBY2NvdW50czogQmFua0FjY291bnRDb2xsZWN0aW9uKTogbnVtYmVyIHtcbiAgICAvLyBNYXRoIGFicyBpcyByZXF1aXJlZCBmb3IgY29ycmVjdCBwZXJjZW50YWdlIGNhbGN1bGF0aW9uXG4gICAgcmV0dXJuIE1hdGguYWJzKHRoaXMuZ2V0TG9hbkFtb3VudChwcm9wZXJ0aWVzLCBiYW5rQWNjb3VudHMsIGxvYW5zKSkgLyBwcm9wZXJ0aWVzLnB1cmNoYXNlUHJpY2U7XG4gIH1cblxuICBnZXRMdnJDb21tZW5jZW1lbnQkKFxuICAgIHByb3BlcnRpZXMkOiBPYnNlcnZhYmxlPFByb3BlcnR5Q29sbGVjdGlvbj4sXG4gICAgYmFua0FjY291bnRzJDogT2JzZXJ2YWJsZTxCYW5rQWNjb3VudENvbGxlY3Rpb24+LFxuICAgIGxvYW5zJDogT2JzZXJ2YWJsZTxMb2FuQ29sbGVjdGlvbj5cbiAgKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbXG4gICAgICBwcm9wZXJ0aWVzJCxcbiAgICAgIGJhbmtBY2NvdW50cyQsXG4gICAgICBsb2FucyRcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKChbcHJvcGVydGllcywgYmFua0FjY291bnRzLCBsb2Fuc106IFtQcm9wZXJ0eUNvbGxlY3Rpb24sIEJhbmtBY2NvdW50Q29sbGVjdGlvbiwgTG9hbkNvbGxlY3Rpb25dKTogbnVtYmVyID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0THZyQ29tbWVuY2VtZW50KHByb3BlcnRpZXMsIGxvYW5zLCBiYW5rQWNjb3VudHMpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgZ2V0THZyR3Jvd3RoKHByb3BlcnRpZXM6IFByb3BlcnR5Q29sbGVjdGlvbiwgYmFua0FjY291bnRzOiBCYW5rQWNjb3VudENvbGxlY3Rpb24sIGxvYW5zOiBMb2FuQ29sbGVjdGlvbik6IG51bWJlciB7XG4gICAgY29uc3QgbHZyOiBudW1iZXIgPSB0aGlzLmdldEx2cihwcm9wZXJ0aWVzLCBiYW5rQWNjb3VudHMpO1xuICAgIGlmICghbHZyKSB7XG4gICAgICAvLyBjaGVjayBpZiBsdnIgPSAwIHRvIGF2b2lkIGRpdmlzaW9uIGJ5IHplcm9cbiAgICAgIHJldHVybiAwO1xuICAgIH1cblxuICAgIHJldHVybiAobHZyIC0gdGhpcy5nZXRMdnJDb21tZW5jZW1lbnQocHJvcGVydGllcywgbG9hbnMsIGJhbmtBY2NvdW50cykpIC8gbHZyO1xuICB9XG5cbiAgZ2V0THZyR3Jvd3RoJChcbiAgICBwcm9wZXJ0aWVzJDogT2JzZXJ2YWJsZTxQcm9wZXJ0eUNvbGxlY3Rpb24+LFxuICAgIGJhbmtBY2NvdW50cyQ6IE9ic2VydmFibGU8QmFua0FjY291bnRDb2xsZWN0aW9uPixcbiAgICBsb2FucyQ6IE9ic2VydmFibGU8TG9hbkNvbGxlY3Rpb24+XG4gICk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgcHJvcGVydGllcyQsXG4gICAgICBiYW5rQWNjb3VudHMkLFxuICAgICAgbG9hbnMkXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW3Byb3BlcnRpZXMsIGJhbmtBY2NvdW50cywgbG9hbnNdOiBbUHJvcGVydHlDb2xsZWN0aW9uLCBCYW5rQWNjb3VudENvbGxlY3Rpb24sIExvYW5Db2xsZWN0aW9uXSk6IG51bWJlciA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEx2ckdyb3d0aChwcm9wZXJ0aWVzLCBiYW5rQWNjb3VudHMsIGxvYW5zKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGdldEVxdWl0eVBvc2l0aW9uKHByb3BlcnRpZXM6IFByb3BlcnR5Q29sbGVjdGlvbiwgYmFua0FjY291bnRzOiBCYW5rQWNjb3VudENvbGxlY3Rpb24pOiBudW1iZXIge1xuICAgIC8vIE1hdGggYWJzIGlzIHJlcXVpcmVkIGZvciBjb3JyZWN0IHBlcmNlbnRhZ2UgY2FsY3VsYXRpb25cbiAgICByZXR1cm4gcHJvcGVydGllcy5tYXJrZXRWYWx1ZSAtIE1hdGguYWJzKHRoaXMuZ2V0TG9hblZhbHVlKHByb3BlcnRpZXMsIGJhbmtBY2NvdW50cykpO1xuICB9XG5cbiAgZ2V0UHVyY2hhc2VFcXVpdHkocHJvcGVydGllczogUHJvcGVydHlDb2xsZWN0aW9uLCBiYW5rQWNjb3VudHM6IEJhbmtBY2NvdW50Q29sbGVjdGlvbiwgbG9hbnM6IExvYW5Db2xsZWN0aW9uKTogbnVtYmVyIHtcbiAgICAvLyBNYXRoIGFicyBpcyByZXF1aXJlZCBmb3IgY29ycmVjdCBwZXJjZW50YWdlIGNhbGN1bGF0aW9uXG4gICAgcmV0dXJuIHByb3BlcnRpZXMucHVyY2hhc2VQcmljZSAtIE1hdGguYWJzKHRoaXMuZ2V0TG9hbkFtb3VudChwcm9wZXJ0aWVzLCBiYW5rQWNjb3VudHMsIGxvYW5zKSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGRpY3Rpb25hcnkgb2YgYmFkZ2VzIGZvciBlYWNoIHByb3BlcnR5IGluIGNvbGxlY3Rpb25cbiAgICovXG4gIGdldEJhZGdlc0J5UHJvcGVydHkocHJvcGVydGllczogUHJvcGVydHlDb2xsZWN0aW9uLCB0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiwgZGVwcmVjaWF0aW9uczogRGVwcmVjaWF0aW9uQ29sbGVjdGlvbik6IERpY3Rpb25hcnk8QmFkZ2U+IHtcbiAgICBjb25zdCBiYWRnZXNCeVByb3BlcnR5ID0gbmV3IERpY3Rpb25hcnkoW10pO1xuXG4gICAgcHJvcGVydGllcy50b0FycmF5KCkuZm9yRWFjaCgocHJvcGVydHk6IFByb3BlcnR5KSA9PiB7XG4gICAgICBiYWRnZXNCeVByb3BlcnR5LmFkZChwcm9wZXJ0eS5pZCwgdGhpcy5nZXRCYWRnZShwcm9wZXJ0eSwgcHJvcGVydGllcywgdHJhbnNhY3Rpb25zLCBkZXByZWNpYXRpb25zKSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gYmFkZ2VzQnlQcm9wZXJ0eTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgQmFkZ2UgZm9yIHNpbmdsZSBwcm9wZXJ0eSBpbiBjb2xsZWN0aW9uXG4gICAqL1xuICBwcml2YXRlIGdldEJhZGdlKHByb3BlcnR5OiBQcm9wZXJ0eSwgcHJvcGVydGllczogUHJvcGVydHlDb2xsZWN0aW9uLCB0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiwgZGVwcmVjaWF0aW9uczogRGVwcmVjaWF0aW9uQ29sbGVjdGlvbik6IEJhZGdlIHtcbiAgICAvLyBiZXN0IHBlcmZvcm1hbmNlIHByb3BlcnRpZXMgY291bGQgYmUgb25seSBmcm9tIGFjdGl2ZSBwcm9wZXJ0aWVzIGxpc3RcbiAgICBjb25zdCBhY3RpdmVQcm9wZXJ0aWVzOiBQcm9wZXJ0eUNvbGxlY3Rpb24gPSBwcm9wZXJ0aWVzLmdldEFjdGl2ZVByb3BlcnRpZXMoKTtcbiAgICBjb25zdCBiZXN0UGVyZm9ybWFuY2VHcm93dGhQcm9wZXJ0eTogUHJvcGVydHkgPSBhY3RpdmVQcm9wZXJ0aWVzLmdldEJlc3RQZXJmb3JtYW5jZUdyb3d0aFByb3BlcnR5KCk7XG4gICAgY29uc3QgYmVzdFBlcmZvcm1hbmNlVGF4UHJvcGVydHk6IFByb3BlcnR5ID0gYWN0aXZlUHJvcGVydGllcy5nZXRCZXN0UGVyZm9ybWFuY2VUYXhQcm9wZXJ0eShcbiAgICAgIHRyYW5zYWN0aW9ucywgZGVwcmVjaWF0aW9uc1xuICAgICk7XG5cbiAgICBzd2l0Y2ggKHRydWUpIHtcbiAgICAgIGNhc2UgIXByb3BlcnR5LmlzQWN0aXZlOlxuICAgICAgICByZXR1cm4gbmV3IEJhZGdlKCdJbmFjdGl2ZScsIEJhZGdlQ29sb3JFbnVtLkdSQVkpO1xuICAgICAgY2FzZSBwcm9wZXJ0eS5pZCA9PT0gYmVzdFBlcmZvcm1hbmNlVGF4UHJvcGVydHkuaWQgJiYgcHJvcGVydHkuaWQgPT09IGJlc3RQZXJmb3JtYW5jZUdyb3d0aFByb3BlcnR5LmlkOlxuICAgICAgICByZXR1cm4gbmV3IEJhZGdlKCdCZXN0IHBlcmZvcm1hbmNlIGdyb3d0aCAmIHRheCcsIEJhZGdlQ29sb3JFbnVtLkdPTEQpO1xuICAgICAgY2FzZSBwcm9wZXJ0eS5pZCA9PT0gYmVzdFBlcmZvcm1hbmNlVGF4UHJvcGVydHkuaWQ6XG4gICAgICAgIHJldHVybiBuZXcgQmFkZ2UoJ0Jlc3QgcGVyZm9ybWFuY2UgdGF4JywgQmFkZ2VDb2xvckVudW0uR09MRCk7XG4gICAgICBjYXNlIHByb3BlcnR5LmlkID09PSBiZXN0UGVyZm9ybWFuY2VHcm93dGhQcm9wZXJ0eS5pZDpcbiAgICAgICAgcmV0dXJuIG5ldyBCYWRnZSgnQmVzdCBwZXJmb3JtYW5jZSBncm93dGgnLCBCYWRnZUNvbG9yRW51bS5HUkVFTik7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gbmV3IEJhZGdlKCdNb25pdG9yaW5nIHBlcmZvcm1hbmNlJyk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -138,6 +138,8 @@ export * from './lib/db/Enums/property/property-sale/tax-exemption-metadata.enum
138
138
  export * from './lib/models/account-setup/account-setup-item';
139
139
  export * from './lib/models/address/address';
140
140
  export * from './lib/models/address/country';
141
+ export * from './lib/models/badge/badge';
142
+ export * from './lib/models/badge/badge-color.enum';
141
143
  export * from './lib/models/bank/bank';
142
144
  export * from './lib/models/bank/bank-account';
143
145
  export * from './lib/models/bank/bank-account-chart-data';
@@ -174,6 +176,7 @@ export * from './lib/models/client/client-movement';
174
176
  export * from './lib/models/client/client-portfolio-chart-data';
175
177
  export * from './lib/models/client/client-portfolio-report';
176
178
  export * from './lib/models/color/alphabet-colors.enum';
179
+ export * from './lib/models/dictionary/dictionary';
177
180
  export * from './lib/models/depreciation/depreciation';
178
181
  export * from './lib/models/depreciation/depreciation-capital-project';
179
182
  export * from './lib/models/depreciation/depreciation-forecast';
@@ -418,4 +421,4 @@ export * from './lib/interceptors/interceptors.module';
418
421
  */
419
422
  export * from './lib/forms';
420
423
  export * from './lib/validators';
421
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLHNCQUFzQixDQUFDO0FBRXJDOztHQUVHO0FBQ0gsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyxzREFBc0QsQ0FBQztBQUNyRSxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsK0VBQStFLENBQUM7QUFDOUYsY0FBYywyRUFBMkUsQ0FBQztBQUMxRixjQUFjLG1FQUFtRSxDQUFDO0FBQ2xGLGNBQWMsK0VBQStFLENBQUM7QUFDOUYsY0FBYyxnRkFBZ0YsQ0FBQztBQUMvRixjQUFjLHFFQUFxRSxDQUFDO0FBQ3BGLGNBQWMsZ0VBQWdFLENBQUM7QUFDL0UsY0FBYyxzREFBc0QsQ0FBQztBQUNyRSxjQUFjLDJEQUEyRCxDQUFDO0FBQzFFLGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyxpRUFBaUUsQ0FBQztBQUNoRixjQUFjLHNEQUFzRCxDQUFDO0FBQ3JFLGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFj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LENBQUM7QUFDN0MsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLHVCQUF1QixDQUFDO0FBRXRDOztHQUVHO0FBQ0gsY0FBYyx3Q0FBd0MsQ0FBQztBQUV2RDs7R0FFRztBQUNILGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiB0dC1jb3JlXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvdHQtY29yZS5tb2R1bGUnO1xuXG4vKipcbiAqIENvbGxlY3Rpb25zXG4gKi9cbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbGxlY3Rpb25zL2NvbGxlY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29sbGVjdGlvbnMvYWNjb3VudC1zZXR1cC1pdGVtLmNvbGxlY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29sbGVjdGlvbnMvYmFuay1hY2NvdW50LmNvbGxlY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29sbGVjdGlvbnMvYmFuay10cmFuc2FjdGlvbi5jb2xsZWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbGxlY3Rpb25zL2NsaWVudC5jb2xsZWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbGxlY3Rpb25zL2NsaWVudC1tb3ZlbWVudC5jb2xsZWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbGxlY3Rpb25zL2NsaWVudC1wb3J0Zm9saW8tcmVwb3J0LmNvbGxlY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29sbGVjdGlvbnMvY29sbGVjdGlvbi1kaWN0aW9uYXJ5JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbGxlY3Rpb25zL2RlcHJlY2lhdGlvbi5jb2xsZWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbGxlY3Rpb25zL2RlcHJlY2lhdGlvbi1mb3JlY2FzdC5jb2xsZWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbGxlY3Rpb25zL2VtcGxveWVlLmNvbGxlY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29sbGVjdGlvbnMvaW5jb21lLXNvdXJjZS5jb2xsZWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbGxlY3Rpb25zL2xvYW4vbG9hbi5jb2xsZWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbGxlY3Rpb25zL2xvYW4vbG9hbi1wYXltZW50LmNvbGxlY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29sbGVjdGlvbnMvbWVzc2FnZS5jb2xsZWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbGxlY3Rpb25zL21lc3NhZ2UtZG9jdW1lbnQuY29sbGVjdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb2xsZWN0aW9ucy9wcm9wZXJ0eS9wcm9wZXJ0eS5jb2xsZWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbGxlY3Rpb25zL3JlcG9ydC9kZXByZWNpYXRpb24vZGVwcmVjaWF0aW9uLWx2cC1yZXBvcnQtaXRlbS5jb2xsZWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbGxlY3Rpb25zL3JlcG9ydC9kZXByZWNpYXRpb24vZGVwcmVjaWF0aW9uLXJlcG9ydC1pdGVtLmNvbGxlY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29sbGVjdGlvbnMvcmVwb3J0L3Byb3BlcnR5L3Byb3BlcnR5LXJlcG9ydC1pdGVtLmNvbGxlY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29sbGVjdGlvbnMvcmVwb3J0L3Byb3BlcnR5L3Byb3BlcnR5LXJlcG9ydC1pdGVtLXRyYW5zYWN0aW9uLmNvbGxlY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29sbGVjdGlvbnMvcmVwb3J0L3Byb3BlcnR5L3Byb3BlcnR5LXJlcG9ydC1pdGVtLWRlcHJlY2lhdGlvbi5jb2xsZWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbGxlY3Rpb25zL3JlcG9ydC92ZWhpY2xlLWV4cGVuc2UvdmVoaWNsZS1leHBlbnNlLmNvbGxlY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29sbGVjdGlvbnMvc3Vic2NyaXB0aW9uL3NlcnZpY2Utc3Vic2NyaXB0aW9uLmNvbGxlY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29sbGVjdGlvbnMvdGF4LXN1bW1hcnkvcmVwb3J0LWl0ZW0uY29sbGVjdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb2xsZWN0aW9ucy90YXgtc3VtbWFyeS90YXgtcmV0dXJuLWNhdGVnb3JpZXMuY29uc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29sbGVjdGlvbnMvdGF4LXJldmlldy5jb2xsZWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbGxlY3Rpb25zL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uLWFsbG9jYXRpb24uY29sbGVjdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb2xsZWN0aW9ucy90cmFuc2FjdGlvbi90cmFuc2FjdGlvbi5jb2xsZWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbGxlY3Rpb25zL3VzZXItZXZlbnQtc2V0dGluZy5jb2xsZWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbGxlY3Rpb25zL3ZlaGljbGUuY29sbGVjdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb2xsZWN0aW9ucy92ZWhpY2xlLWxvZ2Jvb2suY29sbGVjdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb2xsZWN0aW9ucy9leHBvcnRhYmxlLmNvbGxlY3Rpb24nO1xuXG4vKipcbiAqIERCIG1vZGVsc1xuICovXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYi9Nb2RlbHMvYWJzdHJhY3QtbW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGIvTW9kZWxzL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uLWJhc2UnO1xuXG4vKipcbiAqIERCIGVudW1zXG4gKi9cbmV4cG9ydCAqIGZyb20gJy4vbGliL2RiL0VudW1zL2FkZHJlc3MtdHlwZS5lbnVtJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGIvRW51bXMvYmFuay1hY2NvdW50LXN0YXR1cy5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RiL0VudW1zL2JhbmstYWNjb3VudC10eXBlLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGIvRW51bXMvYmFuay1jb25uZWN0aW9uLXN0YXR1cy5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RiL0VudW1zL2JhbmstdHJhbnNhY3Rpb24tdHlwZS5lbnVtJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGIvRW51bXMvY2hhcnQtYWNjb3VudHMtY2F0ZWdvcnkuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYi9FbnVtcy9jaGFydC1hY2NvdW50cy1ldHAuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYi9FbnVtcy9jaGFydC1hY2NvdW50cy1oZWFkaW5nLWxpc3QuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYi9FbnVtcy9jaGFydC1hY2NvdW50cy1oZWFkaW5nLXRheGFibGUuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYi9FbnVtcy9jaGFydC1hY2NvdW50cy1oZWFkaW5nLWxpc3QuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYi9FbnVtcy9jaGFydC1hY2NvdW50cy1oZWFkaW5nLXRheC1kZWR1Y3RpYmxlLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGIvRW51bXMvY2hhcnQtYWNjb3VudHMtaGVhZGluZy12ZWhpY2xlLWxpc3QuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYi9FbnVtcy9jaGFydC1hY2NvdW50cy1saXN0LmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGIvRW51bXMvY2hhcnQtYWNjb3VudHMtbWV0YWRhdGEtbGlzdC5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RiL0VudW1zL2NoYXJ0LWFjY291bnRzLW1ldGFkYXRhLXR5cGUuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYi9FbnVtcy9jaGFydC1hY2NvdW50cy10eXBlLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGIvRW51bXMvY2hhdC1zdGF0dXMuZW51bSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2RiL0VudW1zL2NsaWVudC1kZXRhaWxzLW1lZGljYXJlLWV4ZW1wdGlvbi5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RiL0VudW1zL2NsaWVudC1kZXRhaWxzLXdvcmstZGVwcmVjaWF0aW9uLWNhbGN1bGF0aW9uLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGIvRW51bXMvY2xpZW50LWRldGFpbHMtd29ya2luZy1ob2xpZGF5LW1ha2VyLmVudW0nO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYi9FbnVtcy9jbGllbnQtaW52aXRlLXN0YXR1cy5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RiL0VudW1zL2NsaWVudC1pbnZpdGUtdHlwZS5lbnVtJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGIvRW51bXMvZGVwcmVjaWF0aW9uLWNhbGN1bGF0aW9uLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGIvRW51bXMvZGVwcmVjaWF0aW9uLWNhbGN1bGF0aW9uLXBlcmNlbnQuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYi9FbnVtcy9kZXByZWNpYXRpb24tdHlwZS5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RiL0VudW1zL2RlcHJlY2lhdGlvbi13cml0ZS1vZmYtYW1vdW50LmVudW0nO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYi9FbnVtcy9maXJtLXR5cGUuZW51bSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2RiL0VudW1zL2luY29tZS1zb3VyY2UtdHlwZS5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RiL0VudW1zL2luY29tZS1zb3VyY2UtdHlwZS1saXN0LW90aGVyLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGIvRW51bXMvaW5jb21lLXNvdXJjZS10eXBlLWxpc3Qtc29sZS5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RiL0VudW1zL2luY29tZS1zb3VyY2UtdHlwZS1saXN0LXdvcmsuZW51bSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2RiL0VudW1zL2ludml0ZS1zdGF0dXMuZW51bSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2RiL0VudW1zL2xvYW4tYmFuay10eXBlLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGIvRW51bXMvbG9hbi1mcmVxdWVuY3kuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYi9FbnVtcy9sb2FuLWludGVyZXN0LXR5cGUuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYi9FbnVtcy9sb2FuLXBheW91dC10eXBlLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGIvRW51bXMvbG9hbi1yZXBheW1lbnQtZnJlcXVlbmN5LmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGIvRW51bXMvbG9hbi1yZXBheW1lbnQtdHlwZS5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RiL0VudW1zL2xvYW4tdHlwZS5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RiL0VudW1zL2xvYW4tdmVoaWNsZS10eXBlLmVudW0nO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYi9FbnVtcy9waG9uZS10eXBlLmVudW0nO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYi9FbnVtcy9wcm9wZXJ0eS9wcm9wZXJ0eS1kZXByZWNpYXRpb24tY2FsY3VsYXRpb24uZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYi9FbnVtcy9wcm9wZXJ0eS9wcm9wZXJ0eS1jYXRlZ29yeS1saXN0LmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGIvRW51bXMvcHJvcGVydHkvcHJvcGVydHktc2hhcmUtYWNjZXNzLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGIvRW51bXMvcHJvcGVydHkvcHJvcGVydHktc2hhcmUtc3RhdHVzLmVudW0nO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYi9FbnVtcy9yZWdpc3RyYXRpb24taW52aXRlLXN0YXR1cy5lbnVtJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGIvRW51bXMvc2FsYXJ5LWZvcmVjYXN0LWZyZXF1ZW5jeS5lbnVtJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGIvRW51bXMvc2VydmljZS1ub3RpZmljYXRpb24tc3RhdHVzLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGIvRW51bXMvc2VydmljZS1ub3RpZmljYXRpb24tdHlwZS5lbnVtJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGIvRW51bXMvc3Vic2NyaXB0aW9uL3NlcnZpY2UtcGF5bWVudC1zdGF0dXMuZW51bSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2RiL0VudW1zL3N1YnNjcmlwdGlvbi9zZXJ2aWNlLXByaWNlLXJlY3VycmluZy1pbnRlcnZhbC5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RiL0VudW1zL3N1YnNjcmlwdGlvbi9zZXJ2aWNlLXByaWNlLXR5cGUuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYi9FbnVtcy9zdWJzY3JpcHRpb24vc2VydmljZS1wcm9kdWN0LXN0YXR1cy5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RiL0VudW1zL3N1YnNjcmlwdGlvbi9zZXJ2aWNlLXByb2R1Y3QtaWQuZW51bSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2RiL0VudW1zL3N1YnNjcmlwdGlvbi9zZXJ2aWNlLXN1YnNjcmlwdGlvbi1zdGF0dXMuZW51bSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2RiL0VudW1zL3NwYXJlLWRvY3VtZW50LXNwYXJlLXR5cGUuZW51bSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2RiL0VudW1zL3RhbmstdHlwZS5lbnVtJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGIvRW51bXMvdGF4LWNhbGN1bGF0aW9uLW1lZGljYXJlLWV4ZW1wdGlvbi5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RiL0VudW1zL3RheC1jYWxjdWxhdGlvbi10eXBlLmVudW0nO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYi9FbnVtcy90YXgtcmV0dXJuLWNhdGVnb3J5LWxpc3QuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYi9FbnVtcy90YXgtcmV0dXJuLWNhdGVnb3J5LXNlY3Rpb24uZW51bSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2RiL0VudW1zL3RheC1yZXZpZXctc3RhdHVzLmVudW0nO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYi9FbnVtcy90YXgtc3VtbWFyeS1saXN0LmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGIvRW51bXMvdGF4LXN1bW1hcnktc2VjdGlvbi5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RiL0VudW1zL3RheC1zdW1tYXJ5LXRheC1zdW1tYXJ5LmVudW0nO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYi9FbnVtcy90aWNrZXQtZmVlZGJhY2suZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYi9FbnVtcy90aWNrZXQtc3RhdHVzLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGIvRW51bXMvdGlja2V0LXR5cGVzLmVudW0nO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYi9FbnVtcy90cmFuc2FjdGlvbi1vcGVyYXRpb24uZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYi9FbnVtcy90cmFuc2FjdGlvbi1zb3VyY2UuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYi9FbnVtcy90cmFuc2FjdGlvbi10eXBlLmVudW0nO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYi9FbnVtcy91c2VyLWV2ZW50LXN0YXR1cy5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RiL0VudW1zL3VzZXItZXZlbnQtdHlwZS1mcmVxdWVuY3kuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYi9FbnVtcy91c2VyLWV2ZW50LXR5cGUtdXNlci10eXBlLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGIvRW51bXMvdXNlci1ldmVudC10eXBlLWVtcGxveWVlLXR5cGUuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYi9FbnVtcy91c2VyLWV2ZW50LXR5cGUtY2xpZW50LXR5cGUuZW51bSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2RiL0VudW1zL3VzZXItbWVkaWNhcmUtZXhlbXB0aW9uLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGIvRW51bXMvdXNlci1yb2xlcy5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RiL0VudW1zL3VzZXItc3RhdHVzLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGIvRW51bXMvdXNlci10aXRsZS5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RiL0VudW1zL3VzZXItd29yay1kZXByZWNpYXRpb24tY2FsY3VsYXRpb24uZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYi9FbnVtcy91c2VyLXdvcmtpbmctaG9saWRheS1tYWtlci5lbnVtJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGIvRW51bXMvdmVoaWNsZS1jbGFpbS1tZXRob2QuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYi9FbnVtcy92ZWhpY2xlLWxvZ2Jvb2stcHVycG9zZS5lbnVtJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGIvRW51bXMvcHJvcGVydHkvcHJvcGVydHktc2FsZS90YXgtZXhlbXB0aW9uLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGIvRW51bXMvcHJvcGVydHkvcHJvcGVydHktc2FsZS90YXgtZXhlbXB0aW9uLW1ldGFkYXRhLmVudW0nO1xuXG4vKipcbiAqIE1vZGVscyBhbmQgcmVsYXRlZCBlbnVtcyBhbmQgY29uc3RzXG4gKi9cbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9hY2NvdW50LXNldHVwL2FjY291bnQtc2V0dXAtaXRlbSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9hZGRyZXNzL2FkZHJlc3MnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2FkZHJlc3MvY291bnRyeSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9iYW5rL2JhbmsnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2JhbmsvYmFuay1hY2NvdW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9iYW5rL2JhbmstYWNjb3VudC1jaGFydC1kYXRhJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9iYW5rL2JhbmstYWNjb3VudC1wcm9wZXJ0eSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvYmFuay9iYW5rLWFjY291bnQtdHlwZXMuY29uc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2JhbmsvYmFuay1jb25uZWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9iYW5rL2JhbmstbG9naW4tZGF0YSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvYmFuay9iYW5rLXRyYW5zYWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9iYW5rL2JhbmstdHJhbnNhY3Rpb24tY2hhcnQtZGF0YSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvYmFuay9iYW5rLXRyYW5zYWN0aW9uLXN1bW1hcnktZmllbGRzLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2JhbmsvYmFzaXEtY29uZmlnJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9iYW5rL2Jhc2lxLWpvYic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvYmFuay9iYXNpcS10b2tlbic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvYmFuay90eXBlLWxvYW4uY29uc3QnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvYm9ycm93aW5nLWV4cGVuc2UvYm9ycm93aW5nLWV4cGVuc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2JvcnJvd2luZy1leHBlbnNlL2JvcnJvd2luZy1leHBlbnNlLWxvYW4nO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvY2hhcnQvY2hhcnQtZGF0YSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvY2hhcnQvY2hhcnQtc2VyaWUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvY2hhcnQtYWNjb3VudHMvY2hhcnQtYWNjb3VudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2NoYXJ0LWFjY291bnRzL2NoYXJ0LWFjY291bnRzLWNhdGVnb3JpZXMuY29uc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2NoYXJ0LWFjY291bnRzL2NoYXJ0LWFjY291bnRzLWRlcHJlY2lhdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvY2hhcnQtYWNjb3VudHMvY2hhcnQtYWNjb3VudHMtaGVhZGluZyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvY2hhcnQtYWNjb3VudHMvY2hhcnQtYWNjb3VudHMtbWV0YWRhdGEnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2NoYXJ0LWFjY291bnRzL2NoYXJ0LWFjY291bnRzLXRheC1sYWJlbHMuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvY2hhcnQtYWNjb3VudHMvY2hhcnQtYWNjb3VudHMtdmFsdWUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvY2hhdC9jaGF0JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9jaGF0L2NoYXQtdmlldy10eXBlLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2NoYXQvbWVzc2FnZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvY2hhdC9tZXNzYWdlLWRvY3VtZW50JztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2NsaWVudC9jbGllbnQtZGV0YWlscyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvY2xpZW50L2NsaWVudC1pbmNvbWUtdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2NsaWVudC9jbGllbnQtaW52aXRlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9jbGllbnQvY2xpZW50LW1vdmVtZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9jbGllbnQvY2xpZW50LXBvcnRmb2xpby1jaGFydC1kYXRhJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9jbGllbnQvY2xpZW50LXBvcnRmb2xpby1yZXBvcnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvY29sb3IvYWxwaGFiZXQtY29sb3JzLmVudW0nO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvZGVwcmVjaWF0aW9uL2RlcHJlY2lhdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvZGVwcmVjaWF0aW9uL2RlcHJlY2lhdGlvbi1jYXBpdGFsLXByb2plY3QnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2RlcHJlY2lhdGlvbi9kZXByZWNpYXRpb24tZm9yZWNhc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2RlcHJlY2lhdGlvbi9kZXByZWNpYXRpb24tZ3JvdXAuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvZGVwcmVjaWF0aW9uL2RlcHJlY2lhdGlvbi1ncm91cCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvZGVwcmVjaWF0aW9uL2RlcHJlY2lhdGlvbi1ncm91cC1pdGVtJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9kZXByZWNpYXRpb24vZGVwcmVjaWF0aW9uLWdyb3Vwcy5jb25zdCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvZGVwcmVjaWF0aW9uL2RlcHJlY2lhdGlvbi1yZWNlaXB0JztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2RpY3Rpb25hcnkvZGljdGlvbmFyeSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9kb2N1bWVudC9kb2N1bWVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvZG9jdW1lbnQvZG9jdW1lbnQtYXBpLXVybC1wcmVmaXguZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvZG9jdW1lbnQvZG9jdW1lbnQtZmlsZS10eXBlcy5jb25zdCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvZG9jdW1lbnQvZG9jdW1lbnQtZm9sZGVyJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2VtcGxveWVlL2VtcGxveWVlLWRldGFpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2VtcGxveWVlL2VtcGxveWVlLWludml0ZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9lbmRwb2ludC9lbmRwb2ludCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvZW5kcG9pbnQvZW5kcG9pbnRzLmNvbnN0JztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2V2ZW50L2FwcC1ldmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvZXZlbnQvYXBwLWV2ZW50LXR5cGUuZW51bSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9leHBvcnQvZXhwb3J0LWRhdGEtdGFibGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2V4cG9ydC9leHBvcnQtZm9ybWF0LmVudW0nO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvZmlsZS9pY29ucy1maWxlLmVudW0nO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvZmluYW5jaWFsLXllYXIvZmluYW5jaWFsLXllYXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2ZpbmFuY2lhbC15ZWFyL21vbnRoLW5hbWUtc2hvcnQuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvZmluYW5jaWFsLXllYXIvbW9udGgtbnVtYmVyLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2ZpbmFuY2lhbC15ZWFyL21vbnRocy5jb25zdCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9maXJtL2Zpcm0nO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvaW5jb21lLXBvc2l0aW9uL2luY29tZS1wb3NpdGlvbic7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9pbmNvbWUtc291cmNlL2luY29tZS1zb3VyY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2luY29tZS1zb3VyY2UvaW5jb21lLXNvdXJjZS1jaGFydC1kYXRhJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9pbmNvbWUtc291cmNlL2luY29tZS1zb3VyY2UtZm9yZWNhc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2luY29tZS1zb3VyY2UvaW5jb21lLXNvdXJjZS10eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9pbmNvbWUtc291cmNlL3NhbGFyeS1mb3JlY2FzdCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvaW5jb21lLXNvdXJjZS9zb2xlLWZvcmVjYXN0JztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2xvYW4vbG9hbic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvbG9hbi9sb2FuLW1heC1udW1iZXItb2YtcGF5bWVudHMuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvbG9hbi9sb2FuLXBheW1lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2xvYW4vbG9hbi1wYXlvdXQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvbG9nYm9vay9kZWZhdWx0LXZlaGljbGUtZXhwZW5zZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvbG9nYm9vay9sb2dib29rLXBlcmlvZCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvbG9nYm9vay9sb2dib29rLXB1cnBvc2Utb3B0aW9ucy5jb25zdCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvbG9nYm9vay92ZWhpY2xlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9sb2dib29rL3ZlaGljbGUtY2xhaW0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2xvZ2Jvb2svdmVoaWNsZS1sb2dib29rJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24nO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvcGRmL3BkZi1vcmllbnRhdGlvbi5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9wZGYvcGRmLXNldHRpbmdzJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3Bob25lL3Bob25lJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3Byb3BlcnR5L2NhbGN1bGF0aW9uLWZvcm0taXRlbSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvcHJvcGVydHkvY2FsY3VsYXRpb24tZm9ybS10eXBlLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3Byb3BlcnR5L2NhcGl0YWwtY29zdHMtaXRtZXMuY29uc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3Byb3BlcnR5L2NvcmVsb2dpYy1zdWdnZXN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9wcm9wZXJ0eS9zaGFyZS1maWx0ZXItb3B0aW9ucy5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9wcm9wZXJ0eS9wcm9wZXJ0eSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvcHJvcGVydHkvcHJvcGVydHktY2F0ZWdvcnknO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3Byb3BlcnR5L3Byb3BlcnR5LWNhdGVnb3J5LW1vdmVtZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9wcm9wZXJ0eS9wcm9wZXJ0eS1kb2N1bWVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvcHJvcGVydHkvcHJvcGVydHktZXF1aXR5LWNoYXJ0LWRhdGEnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3Byb3BlcnR5L3Byb3BlcnR5LWVxdWl0eS1jaGFydC1pdGVtJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9wcm9wZXJ0eS9wcm9wZXJ0eS1mb3JlY2FzdCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvcHJvcGVydHkvcHJvcGVydHktc2hhcmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3Byb3BlcnR5L3Byb3BlcnR5LXNhbGUvcHJvcGVydHktc2FsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvcHJvcGVydHkvcHJvcGVydHktc2FsZS90YXgtZXhlbXB0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9wcm9wZXJ0eS9wcm9wZXJ0eS1zYWxlL3RheC1leGVtcHRpb24tbWV0YWRhdGEnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3Byb3BlcnR5L3Byb3BlcnR5LXNhbGUvcHJvcGVydHktc2FsZS10YXgtZXhlbXB0aW9uLW1ldGFkYXRhJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3Byb3BlcnR5L3Byb3BlcnR5LXN1YnNjcmlwdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvcHJvcGVydHkvcHJvcGVydHktdmFsdWF0aW9uJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3JlZ2lzdHJhdGlvbi1pbnZpdGUvcmVnaXN0cmF0aW9uLWludml0ZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9yZXBvcnQvZGVwcmVjaWF0aW9uL2RlcHJlY2lhdGlvbi1sdnAtcmVwb3J0LWl0ZW0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3JlcG9ydC9kZXByZWNpYXRpb24vZGVwcmVjaWF0aW9uLXJlcG9ydC1pdGVtJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9yZXBvcnQvZGVwcmVjaWF0aW9uL2RlcHJlY2lhdGlvbi1sdnAtYXNzZXQtdHlwZS5lbnVtJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3JlcG9ydC9teS10YXgvYXRvLWxpbmtzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9yZXBvcnQvbXktdGF4L215LXRheC1idXNpbmVzcy1vci1sb3NzZXMvbXktdGF4LWJ1c2luZXNzLW9yLWxvc3Nlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvcmVwb3J0L215LXRheC9teS10YXgtZGVkdWN0aW9ucy9teS10YXgtZGVkdWN0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvcmVwb3J0L215LXRheC9teS10YXgtZGVkdWN0aW9ucy9kZWR1Y3Rpb24tY2xvdGhpbmctdHlwZS5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9yZXBvcnQvbXktdGF4L215LXRheC1kZWR1Y3Rpb25zL2RlZHVjdGlvbi1maWVsZHMuY29uc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3JlcG9ydC9teS10YXgvbXktdGF4LWRlZHVjdGlvbnMvZGVkdWN0aW9uLXNlbGYtZWR1Y2F0aW9uLXR5cGUuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvcmVwb3J0L215LXRheC9teS10YXgtZGl2aWRlbmRzL215LXRheC1kaXZpZGVuZHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3JlcG9ydC9teS10YXgvbXktdGF4LWVtcGxveWVlLXNoYXJlLXNjaGVtZXMvbXktdGF4LWVtcGxveWVlLXNoYXJlLXNjaGVtZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3JlcG9ydC9teS10YXgvbXktdGF4LWluY29tZS1zdGF0ZW1lbnRzL215LXRheC1pbmNvbWUtc3RhdGVtZW50cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvcmVwb3J0L215LXRheC9teS10YXgtaW5jb21lLXRlc3RzL215LXRheC1pbmNvbWUtdGVzdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3JlcG9ydC9teS10YXgvbXktdGF4LWludGVyZXN0L215LXRheC1pbnRlcmVzdCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvcmVwb3J0L215LXRheC9teS10YXgtbG9zc2VzL215LXRheC1sb3NzZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3JlcG9ydC9teS10YXgvbXktdGF4LW9mZnNldHMvbXktdGF4LW9mZnNldHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3JlcG9ydC9teS10YXgvbXktdGF4LW90aGVyLWluY29tZS9teS10YXgtb3RoZXItaW5jb21lJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9yZXBvcnQvbXktdGF4L215LXRheC1wYXJ0bmVyc2hpcHMtYW5kLXRydXN0cy9teS10YXgtcGFydG5lcnNoaXBzLWFuZC10cnVzdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3JlcG9ydC9teS10YXgvbXktdGF4LXJlbnQvbXktdGF4LXJlbnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvcmVwb3J0L3Byb3BlcnR5L3Byb3BlcnR5LXJlcG9ydC1pdGVtJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9yZXBvcnQvcHJvcGVydHkvcHJvcGVydHktcmVwb3J0LWl0ZW0tdHJhbnNhY3Rpb24nO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvcmVwb3J0L3ZlaGljbGUtZXhwZW5zZS92ZWhpY2xlLWV4cGVuc2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvc2VydmljZS1zdWJzY3JpcHRpb24vbW9kdWxlLXVybC1saXN0LmNvbnN0JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9zZXJ2aWNlLXN1YnNjcmlwdGlvbi9zZXJ2aWNlLXBheW1lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3NlcnZpY2Utc3Vic2NyaXB0aW9uL3NlcnZpY2UtcHJpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3NlcnZpY2Utc3Vic2NyaXB0aW9uL3NlcnZpY2UtcHJvZHVjdCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvc2VydmljZS1zdWJzY3JpcHRpb24vc2VydmljZS1zdWJzY3JpcHRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3NlcnZpY2Utc3Vic2NyaXB0aW9uL3NlcnZpY2Utc3Vic2NyaXB0aW9uLWl0ZW0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3NlcnZpY2Utc3Vic2NyaXB0aW9uL3N1YnNjcmlwdGlvbi1kZXNjcmlwdGlvbi5jb25zdCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvc2VydmljZS1zdWJzY3JpcHRpb24vc3Vic2NyaXB0aW9uLXRpdGxlLmNvbnN0JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9zZXJ2aWNlLXN1YnNjcmlwdGlvbi9zdWJzY3JpcHRpb24tdHlwZS5lbnVtJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3RheC1yZXZpZXcvdGF4LXJldmlldyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy90YXgtc3VtbWFyeS9yZXBvcnQtaXRlbSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvdGF4LXN1bW1hcnkvcmVwb3J0LWl0ZW0tZGV0YWlscyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvdGF4LXN1bW1hcnkvdGF4LXN1bW1hcnknO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3RheC1zdW1tYXJ5L3RheC1zdW1tYXJ5LXNlY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3RheC1zdW1tYXJ5L3RheC1zdW1tYXJ5LXR5cGUuZW51bSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy90b2FzdC90b2FzdCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvdG9hc3QvdG9hc3QtdHlwZS5lbnVtJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3RyYW5zYWN0aW9uL2luY29tZS1hbW91bnQtdHlwZS5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy90cmFuc2FjdGlvbi90cmFuc2FjdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvdHJhbnNhY3Rpb24vdHJhbnNhY3Rpb24tYWxsb2NhdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvdHJhbnNhY3Rpb24vdHJhbnNhY3Rpb24tY2F0ZWdvcnkuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvdHJhbnNhY3Rpb24vdHJhbnNhY3Rpb24tbWV0YWRhdGEnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uLXJlY2VpcHQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvdXNlci9teS1hY2NvdW50LWhpc3RvcnknO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3VzZXIvbXktYWNjb3VudC1oaXN0b3J5LWluaXRpYXRlZC1ieS5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy91c2VyL215LWFjY291bnQtaGlzdG9yeS1zdGF0dXMuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvdXNlci9teS1hY2NvdW50LWhpc3RvcnktdHlwZS5lbnVtJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3VzZXIvb2NjdXBhdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvdXNlci91c2VyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy91c2VyL3VzZXItcm9sZXMuY29uc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3VzZXIvdXNlci10by1yZWdpc3Rlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvdXNlci91c2VyLXdvcmstcG9zaXRpb24uY29uc3QnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvdXNlci1ldmVudC91c2VyLWV2ZW50LXR5cGUtY2F0ZWdvcnknO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3VzZXItZXZlbnQvdXNlci1ldmVudC1zZXR0aW5nJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy91c2VyLWV2ZW50L3VzZXItZXZlbnQtc2V0dGluZy1maWVsZC5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy91c2VyLWV2ZW50L3VzZXItZXZlbnQtdHlwZSc7XG5cbi8qKlxuICogU2VydmljZXNcbiAqL1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvYWNjb3VudC1zZXR1cC9hY2NvdW50LXNldHVwLnNlcnZpY2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9odHRwL2FkZHJlc3MvYWRkcmVzcy5zZXJ2aWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvYXNzZXQvYXNzZXRzLnNlcnZpY2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9hdXRoL2F1dGguc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9hdXRoL2p3dC5zZXJ2aWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvaHR0cC9iYW5rL2Jhbmsuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9odHRwL2JhbmsvYmFuay1hY2NvdW50L2JhbmstYWNjb3VudC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2JhbmsvYmFuay1hY2NvdW50LWNhbGN1bGF0aW9uLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvaHR0cC9iYW5rL2JhbmstY29ubmVjdGlvbi9iYW5rLWNvbm5lY3Rpb24uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9odHRwL2JhbmsvYmFuay10cmFuc2FjdGlvbi9iYW5rLXRyYW5zYWN0aW9uLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvYmFuay9iYW5rLXRyYW5zYWN0aW9uLWNhbGN1bGF0aW9uLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvaHR0cC9iYW5rL2Jhc2lxL2Jhc2lxLnNlcnZpY2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9odHRwL2xvYW4vYm9ycm93aW5nLWV4cGVuc2UvYm9ycm93aW5nLWV4cGVuc2Uuc2VydmljZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2h0dHAvY2hhcnQtYWNjb3VudHMvY2hhcnQtYWNjb3VudHMuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9odHRwL2NoYXJ0LWFjY291bnRzL2NoYXJ0LWFjY291bnRzLWRlcHJlY2lhdGlvbnMvY2hhcnQtYWNjb3VudHMtZGVwcmVjaWF0aW9ucy5zZXJ2aWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvaHR0cC9jaGF0L2NoYXQuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9odHRwL2NoYXQvbWVzc2FnZS9tZXNzYWdlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvaHR0cC9jaGF0L21lc3NhZ2UtZG9jdW1lbnQvbWVzc2FnZS1kb2N1bWVudC5zZXJ2aWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvaHR0cC9maXJtL2NsaWVudC1pbnZpdGUvY2xpZW50LWludml0ZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2h0dHAvZmlybS9jbGllbnQtbW92ZW1lbnQvY2xpZW50LW1vdmVtZW50LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvaHR0cC9maXJtL3BvcnRmb2xpby1yZXBvcnQvY2xpZW50LXBvcnRmb2xpby1yZXBvcnQuc2VydmljZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2h0dHAvZGVwcmVjaWF0aW9uL2RlcHJlY2lhdGlvbi1jYXBpdGFsLXByb2plY3QvZGVwcmVjaWF0aW9uLWNhcGl0YWwtcHJvamVjdC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2h0dHAvZGVwcmVjaWF0aW9uL2RlcHJlY2lhdGlvbi5zZXJ2aWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvaHR0cC9kb2N1bWVudC9kb2N1bWVudC1mb2xkZXIvZG9jdW1lbnQtZm9sZGVyLnNlcnZpY2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9odHRwL2Zpcm0vZW1wbG95ZWUvZW1wbG95ZWUuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9odHRwL2Zpcm0vZW1wbG95ZWUtaW52aXRlL2VtcGxveWVlLWludml0ZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2h0dHAvZmlybS9jbGllbnQtaW5jb21lL2NsaWVudC1pbmNvbWUtdHlwZXMuc2VydmljZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2V2ZW50L2V2ZW50LWRpc3BhdGNoZXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9ldmVudC9zc2Uuc2VydmljZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2h0dHAvZmlybS9maXJtLnNlcnZpY2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9leHBvcnQvZXhwb3J0LWZvcm1hdHRlci5zZXJ2aWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvaGVhZGVyLXRpdGxlL2hlYWRlci10aXRsZS5zZXJ2aWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvaHR0cC9pbmNvbWUtc291cmNlL2luY29tZS1zb3VyY2Uuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9odHRwL2luY29tZS1zb3VyY2UvaW5jb21lLXNvdXJjZS1mb3JlY2FzdC9pbmNvbWUtc291cmNlLWZvcmVjYXN0LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvaHR0cC9pbmNvbWUtc291cmNlL3NhbGFyeS1mb3JlY2FzdC9zYWxhcnktZm9yZWNhc3Quc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9odHRwL2luY29tZS1zb3VyY2Uvc29sZS1mb3JlY2FzdC9zb2xlLWZvcmVjYXN0LnNlcnZpY2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9pbnRlcmNvbS9pbnRlcmNvbS5zZXJ2aWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMva29tcGFzc2lmeS9rb21wYXNzaWZ5LnNlcnZpY2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9odHRwL2xvYW4vbG9hbi5zZXJ2aWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvaHR0cC9zZXJ2aWNlLW5vdGlmaWNhdGlvbi9zZXJ2aWNlLW5vdGlmaWNhdGlvbi5zZXJ2aWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvcGRmL3BkZi1mcm9tLWRvbS1lbGVtZW50L3BkZi1mcm9tLWRvbS1lbGVtZW50LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvcGRmL3BkZi1mcm9tLXRhYmxlL3BkZi1mcm9tLWh0bWwtdGFibGUvcGRmLWZyb20taHRtbC10YWJsZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3BkZi9wZGYtZnJvbS10YWJsZS9wZGYtZnJvbS1kYXRhLXRhYmxlL3BkZi1mcm9tLWRhdGEtdGFibGUuc2VydmljZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3ByZWxvYWRlci9wcmVsb2FkZXIuc2VydmljZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3JlcG9ydC9wcm9wZXJ0eS9wcm9wZXJ0eS10cmFuc2FjdGlvbi1yZXBvcnQuc2VydmljZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3Byb3BlcnR5L2NvcmVsb2dpYy9jb3JlbG9naWMuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9odHRwL3Byb3BlcnR5L3Byb3BlcnR5LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvcHJvcGVydHkvcHJvcGVydHktY2FsY3VsYXRpb24vcHJvcGVydHktY2FsY3VsYXRpb24uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9odHRwL3Byb3BlcnR5L3Byb3BlcnR5LWNhdGVnb3J5L3Byb3BlcnR5LWNhdGVnb3J5LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvaHR0cC9wcm9wZXJ0eS9wcm9wZXJ0eS1kb2N1bWVudC9wcm9wZXJ0eS1kb2N1bWVudC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2h0dHAvcHJvcGVydHkvcHJvcGVydHktc2hhcmUvcHJvcGVydHktc2hhcmUuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9odHRwL3Byb3BlcnR5L3Byb3BlcnR5LXNhbGUvcHJvcGVydHktc2FsZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3Byb3BlcnR5L2VxdWl0eS1wb3NpdGlvbi1jaGFydC9lcXVpdHktcG9zaXRpb24tY2hhcnQuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9odHRwL3Byb3BlcnR5L3Byb3BlcnR5LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvaHR0cC9wcm9wZXJ0eS9wcm9wZXJ0eS1jYXRlZ29yeS1tb3ZlbWVudC9wcm9wZXJ0eS1jYXRlZ29yeS1tb3ZlbWVudC5zZXJ2aWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvaHR0cC9zdWJzY3JpcHRpb24vc3Vic2NyaXB0aW9uLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvaHR0cC9zdWJzY3JpcHRpb24vc2VydmljZS1wcmljZS5zZXJ2aWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvaHR0cC90YXgtcmV2aWV3L3RheC1yZXZpZXcuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9odHRwL3RheC1yZXZpZXcvdGF4LXJldmlldy1oaXN0b3J5L3RheC1yZXZpZXctaGlzdG9yeS5zZXJ2aWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvaHR0cC90YXgtc3VtbWFyeS90YXgtc3VtbWFyeS5zZXJ2aWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvdG9hc3QvdG9hc3Quc2VydmljZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2h0dHAvdHJhbnNhY3Rpb24vdHJhbnNhY3Rpb24uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9odHRwL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uLWFsbG9jYXRpb24vdHJhbnNhY3Rpb24tYWxsb2NhdGlvbi5zZXJ2aWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvdHJhbnNhY3Rpb24vdHJhbnNhY3Rpb24tY2FsY3VsYXRpb24uc2VydmljZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2h0dHAvdXNlci9vY2N1cGF0aW9uL29jY3VwYXRpb24uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9odHRwL3VzZXIvdXNlci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3VzZXIvdXNlci1zd2l0Y2hlci5zZXJ2aWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvaHR0cC91c2VyL3VzZXItZXZlbnQtc2V0dGluZy91c2VyLWV2ZW50LXNldHRpbmcuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9odHRwL3VzZXIvdXNlci1ldmVudC10eXBlL3VzZXItZXZlbnQtdHlwZS5zZXJ2aWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvaHR0cC92ZWhpY2xlL3ZlaGljbGUuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9odHRwL3ZlaGljbGUvdmVoaWNsZS1jbGFpbS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2h0dHAvdmVoaWNsZS92ZWhpY2xlLWxvZ2Jvb2suc2VydmljZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3hsc3gveGxzeC5zZXJ2aWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvaHR0cC9wcm9wZXJ0eS9wcm9wZXJ0eS1zYWxlL3RheC1leGVtcHRpb24vdGF4LWV4ZW1wdGlvbi5zZXJ2aWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvaHR0cC9mYWNlYm9vay9mYWNlYm9vay5zZXJ2aWNlJztcblxuLyoqXG4gKiBJbnRlcmZhY2VzXG4gKi9cbmV4cG9ydCAqIGZyb20gJy4vbGliL2ludGVyZmFjZXMvYXNzZXQuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ludGVyZmFjZXMvYXNzZXQtZW50aXR5LXR5cGUuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbnRlcmZhY2VzL2Fzc2V0LXR5cGUuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbnRlcmZhY2VzL2NoYXJ0LWRhdGEuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ludGVyZmFjZXMvY2hhcnQtc2VyaWUuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ludGVyZmFjZXMvZG9jdW1lbnQuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ludGVyZmFjZXMvZG9jdW1lbnRhYmxlLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbnRlcmZhY2VzL2V2ZW50LWxpc3RlbmVyLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbnRlcmZhY2VzL2luY29tZS1zb3VyY2UtZm9yZWNhc3QuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ludGVyZmFjZXMvb3B0aW9uLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbnRlcmZhY2VzL3Bob3RvYWJsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbnRlcmZhY2VzL3JlY2VpcHQuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ludGVyZmFjZXMvdGFuay5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaW50ZXJmYWNlcy90YWJsZS1leHBvcnRhYmxlLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbnRlcmZhY2VzL3VwZGF0YWJsZS5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaW50ZXJmYWNlcy9leHBlbnNlLmludGVyZmFjZSc7XG5cbi8qKlxuICogRnVuY3Rpb25zXG4gKi9cbmV4cG9ydCAqIGZyb20gJy4vbGliL2Z1bmN0aW9ucy9jbG9uZS1kZWVwJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Z1bmN0aW9ucy9jcmVhdGUtZGF0ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9mdW5jdGlvbnMvZW51bS10by1saXN0JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Z1bmN0aW9ucy9nZXQtZG9jLWljb24nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZnVuY3Rpb25zL21hdC1vcHRpb25zLWZ1bmN0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9mdW5jdGlvbnMvbWF0LXNvcnQtb3B0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9mdW5jdGlvbnMvcm91bmQtdG8nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZnVuY3Rpb25zL3RheC1yZXZpZXctZmlsdGVyLXByZWRpY2F0ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9mdW5jdGlvbnMvYXJyYXknO1xuXG4vKipcbiAqIEludGVyY2VwdG9yc1xuICovXG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbnRlcmNlcHRvcnMvaW50ZXJjZXB0b3JzLm1vZHVsZSc7XG5cbi8qKlxuICogRm9ybXNcbiAqL1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZm9ybXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdmFsaWRhdG9ycyc7XG4iXX0=
424
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLHNCQUFzQixDQUFDO0FBRXJDOztHQUVHO0FBQ0gsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyxzREFBc0QsQ0FBQztBQUNyRSxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsK0VBQStFLENBQUM7QUFDOUYsY0FBYywyRUFBMkUsQ0FBQztBQUMxRixjQUFjLG1FQUFtRSxDQUFDO0FBQ2xGLGNBQWMsK0VBQStFLENBQUM7QUFDOUYsY0FBYyxnRkFBZ0YsQ0FBQztBQUMvRixjQUFjLHFFQUFxRSxDQUFDO0FBQ3BGLGNBQWMsZ0VBQWdFLENBQUM7QUFDL0UsY0FBYyxzREFBc0QsQ0FBQztBQUNyRSxjQUFjLDJEQUEyRCxDQUFDO0FBQzFFLGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyxpRUFBaUUsQ0FBQztBQUNoRixjQUFjLHNEQUFzRCxDQUFDO0FBQ3JFLGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFj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LENBQUM7QUFDM0MsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLHVCQUF1QixDQUFDO0FBRXRDOztHQUVHO0FBQ0gsY0FBYyx3Q0FBd0MsQ0FBQztBQUV2RDs7R0FFRztBQUNILGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiB0dC1jb3JlXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvdHQtY29yZS5tb2R1bGUnO1xuXG4vKipcbiAqIENvbGxlY3Rpb25zXG4gKi9cbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbGxlY3Rpb25zL2NvbGxlY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29sbGVjdGlvbnMvYWNjb3VudC1zZXR1cC1pdGVtLmNvbGxlY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29sbGVjdGlvbnMvYmFuay1hY2NvdW50LmNvbGxlY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29sbGVjdGlvbnMvYmFuay10cmFuc2FjdGlvbi5jb2xsZWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbGxlY3Rpb25zL2NsaWVudC5jb2xsZWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbGxlY3Rpb25zL2NsaWVudC1tb3ZlbWVudC5jb2xsZWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbGxlY3Rpb25zL2NsaWVudC1wb3J0Zm9saW8tcmVwb3J0LmNvbGxlY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29sbGVjdGlvbnMvY29sbGVjdGlvbi1kaWN0aW9uYXJ5JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbGxlY3Rpb25zL2RlcHJlY2lhdGlvbi5jb2xsZWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbGxlY3Rpb25zL2RlcHJlY2lhdGlvbi1mb3JlY2FzdC5jb2xsZWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbGxlY3Rpb25zL2VtcGxveWVlLmNvbGxlY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29sbGVjdGlvbnMvaW5jb21lLXNvdXJjZS5jb2xsZWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbGxlY3Rpb25zL2xvYW4vbG9hbi5jb2xsZWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbGxlY3Rpb25zL2xvYW4vbG9hbi1wYXltZW50LmNvbGxlY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29sbGVjdGlvbnMvbWVzc2FnZS5jb2xsZWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbGxlY3Rpb25zL21lc3NhZ2UtZG9jdW1lbnQuY29sbGVjdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb2xsZWN0aW9ucy9wcm9wZXJ0eS9wcm9wZXJ0eS5jb2xsZWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbGxlY3Rpb25zL3JlcG9ydC9kZXByZWNpYXRpb24vZGVwcmVjaWF0aW9uLWx2cC1yZXBvcnQtaXRlbS5jb2xsZWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbGxlY3Rpb25zL3JlcG9ydC9kZXByZWNpYXRpb24vZGVwcmVjaWF0aW9uLXJlcG9ydC1pdGVtLmNvbGxlY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29sbGVjdGlvbnMvcmVwb3J0L3Byb3BlcnR5L3Byb3BlcnR5LXJlcG9ydC1pdGVtLmNvbGxlY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29sbGVjdGlvbnMvcmVwb3J0L3Byb3BlcnR5L3Byb3BlcnR5LXJlcG9ydC1pdGVtLXRyYW5zYWN0aW9uLmNvbGxlY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29sbGVjdGlvbnMvcmVwb3J0L3Byb3BlcnR5L3Byb3BlcnR5LXJlcG9ydC1pdGVtLWRlcHJlY2lhdGlvbi5jb2xsZWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbGxlY3Rpb25zL3JlcG9ydC92ZWhpY2xlLWV4cGVuc2UvdmVoaWNsZS1leHBlbnNlLmNvbGxlY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29sbGVjdGlvbnMvc3Vic2NyaXB0aW9uL3NlcnZpY2Utc3Vic2NyaXB0aW9uLmNvbGxlY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29sbGVjdGlvbnMvdGF4LXN1bW1hcnkvcmVwb3J0LWl0ZW0uY29sbGVjdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb2xsZWN0aW9ucy90YXgtc3VtbWFyeS90YXgtcmV0dXJuLWNhdGVnb3JpZXMuY29uc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29sbGVjdGlvbnMvdGF4LXJldmlldy5jb2xsZWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbGxlY3Rpb25zL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uLWFsbG9jYXRpb24uY29sbGVjdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb2xsZWN0aW9ucy90cmFuc2FjdGlvbi90cmFuc2FjdGlvbi5jb2xsZWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbGxlY3Rpb25zL3VzZXItZXZlbnQtc2V0dGluZy5jb2xsZWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbGxlY3Rpb25zL3ZlaGljbGUuY29sbGVjdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb2xsZWN0aW9ucy92ZWhpY2xlLWxvZ2Jvb2suY29sbGVjdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb2xsZWN0aW9ucy9leHBvcnRhYmxlLmNvbGxlY3Rpb24nO1xuXG4vKipcbiAqIERCIG1vZGVsc1xuICovXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYi9Nb2RlbHMvYWJzdHJhY3QtbW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGIvTW9kZWxzL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uLWJhc2UnO1xuXG4vKipcbiAqIERCIGVudW1zXG4gKi9cbmV4cG9ydCAqIGZyb20gJy4vbGliL2RiL0VudW1zL2FkZHJlc3MtdHlwZS5lbnVtJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGIvRW51bXMvYmFuay1hY2NvdW50LXN0YXR1cy5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RiL0VudW1zL2JhbmstYWNjb3VudC10eXBlLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGIvRW51bXMvYmFuay1jb25uZWN0aW9uLXN0YXR1cy5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RiL0VudW1zL2JhbmstdHJhbnNhY3Rpb24tdHlwZS5lbnVtJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGIvRW51bXMvY2hhcnQtYWNjb3VudHMtY2F0ZWdvcnkuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYi9FbnVtcy9jaGFydC1hY2NvdW50cy1ldHAuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYi9FbnVtcy9jaGFydC1hY2NvdW50cy1oZWFkaW5nLWxpc3QuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYi9FbnVtcy9jaGFydC1hY2NvdW50cy1oZWFkaW5nLXRheGFibGUuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYi9FbnVtcy9jaGFydC1hY2NvdW50cy1oZWFkaW5nLWxpc3QuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYi9FbnVtcy9jaGFydC1hY2NvdW50cy1oZWFkaW5nLXRheC1kZWR1Y3RpYmxlLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGIvRW51bXMvY2hhcnQtYWNjb3VudHMtaGVhZGluZy12ZWhpY2xlLWxpc3QuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYi9FbnVtcy9jaGFydC1hY2NvdW50cy1saXN0LmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGIvRW51bXMvY2hhcnQtYWNjb3VudHMtbWV0YWRhdGEtbGlzdC5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RiL0VudW1zL2NoYXJ0LWFjY291bnRzLW1ldGFkYXRhLXR5cGUuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYi9FbnVtcy9jaGFydC1hY2NvdW50cy10eXBlLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGIvRW51bXMvY2hhdC1zdGF0dXMuZW51bSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2RiL0VudW1zL2NsaWVudC1kZXRhaWxzLW1lZGljYXJlLWV4ZW1wdGlvbi5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RiL0VudW1zL2NsaWVudC1kZXRhaWxzLXdvcmstZGVwcmVjaWF0aW9uLWNhbGN1bGF0aW9uLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGIvRW51bXMvY2xpZW50LWRldGFpbHMtd29ya2luZy1ob2xpZGF5LW1ha2VyLmVudW0nO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYi9FbnVtcy9jbGllbnQtaW52aXRlLXN0YXR1cy5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RiL0VudW1zL2NsaWVudC1pbnZpdGUtdHlwZS5lbnVtJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGIvRW51bXMvZGVwcmVjaWF0aW9uLWNhbGN1bGF0aW9uLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGIvRW51bXMvZGVwcmVjaWF0aW9uLWNhbGN1bGF0aW9uLXBlcmNlbnQuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYi9FbnVtcy9kZXByZWNpYXRpb24tdHlwZS5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RiL0VudW1zL2RlcHJlY2lhdGlvbi13cml0ZS1vZmYtYW1vdW50LmVudW0nO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYi9FbnVtcy9maXJtLXR5cGUuZW51bSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2RiL0VudW1zL2luY29tZS1zb3VyY2UtdHlwZS5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RiL0VudW1zL2luY29tZS1zb3VyY2UtdHlwZS1saXN0LW90aGVyLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGIvRW51bXMvaW5jb21lLXNvdXJjZS10eXBlLWxpc3Qtc29sZS5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RiL0VudW1zL2luY29tZS1zb3VyY2UtdHlwZS1saXN0LXdvcmsuZW51bSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2RiL0VudW1zL2ludml0ZS1zdGF0dXMuZW51bSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2RiL0VudW1zL2xvYW4tYmFuay10eXBlLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGIvRW51bXMvbG9hbi1mcmVxdWVuY3kuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYi9FbnVtcy9sb2FuLWludGVyZXN0LXR5cGUuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYi9FbnVtcy9sb2FuLXBheW91dC10eXBlLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGIvRW51bXMvbG9hbi1yZXBheW1lbnQtZnJlcXVlbmN5LmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGIvRW51bXMvbG9hbi1yZXBheW1lbnQtdHlwZS5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RiL0VudW1zL2xvYW4tdHlwZS5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RiL0VudW1zL2xvYW4tdmVoaWNsZS10eXBlLmVudW0nO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYi9FbnVtcy9waG9uZS10eXBlLmVudW0nO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYi9FbnVtcy9wcm9wZXJ0eS9wcm9wZXJ0eS1kZXByZWNpYXRpb24tY2FsY3VsYXRpb24uZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYi9FbnVtcy9wcm9wZXJ0eS9wcm9wZXJ0eS1jYXRlZ29yeS1saXN0LmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGIvRW51bXMvcHJvcGVydHkvcHJvcGVydHktc2hhcmUtYWNjZXNzLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGIvRW51bXMvcHJvcGVydHkvcHJvcGVydHktc2hhcmUtc3RhdHVzLmVudW0nO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYi9FbnVtcy9yZWdpc3RyYXRpb24taW52aXRlLXN0YXR1cy5lbnVtJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGIvRW51bXMvc2FsYXJ5LWZvcmVjYXN0LWZyZXF1ZW5jeS5lbnVtJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGIvRW51bXMvc2VydmljZS1ub3RpZmljYXRpb24tc3RhdHVzLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGIvRW51bXMvc2VydmljZS1ub3RpZmljYXRpb24tdHlwZS5lbnVtJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGIvRW51bXMvc3Vic2NyaXB0aW9uL3NlcnZpY2UtcGF5bWVudC1zdGF0dXMuZW51bSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2RiL0VudW1zL3N1YnNjcmlwdGlvbi9zZXJ2aWNlLXByaWNlLXJlY3VycmluZy1pbnRlcnZhbC5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RiL0VudW1zL3N1YnNjcmlwdGlvbi9zZXJ2aWNlLXByaWNlLXR5cGUuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYi9FbnVtcy9zdWJzY3JpcHRpb24vc2VydmljZS1wcm9kdWN0LXN0YXR1cy5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RiL0VudW1zL3N1YnNjcmlwdGlvbi9zZXJ2aWNlLXByb2R1Y3QtaWQuZW51bSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2RiL0VudW1zL3N1YnNjcmlwdGlvbi9zZXJ2aWNlLXN1YnNjcmlwdGlvbi1zdGF0dXMuZW51bSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2RiL0VudW1zL3NwYXJlLWRvY3VtZW50LXNwYXJlLXR5cGUuZW51bSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2RiL0VudW1zL3RhbmstdHlwZS5lbnVtJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGIvRW51bXMvdGF4LWNhbGN1bGF0aW9uLW1lZGljYXJlLWV4ZW1wdGlvbi5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RiL0VudW1zL3RheC1jYWxjdWxhdGlvbi10eXBlLmVudW0nO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYi9FbnVtcy90YXgtcmV0dXJuLWNhdGVnb3J5LWxpc3QuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYi9FbnVtcy90YXgtcmV0dXJuLWNhdGVnb3J5LXNlY3Rpb24uZW51bSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2RiL0VudW1zL3RheC1yZXZpZXctc3RhdHVzLmVudW0nO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYi9FbnVtcy90YXgtc3VtbWFyeS1saXN0LmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGIvRW51bXMvdGF4LXN1bW1hcnktc2VjdGlvbi5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RiL0VudW1zL3RheC1zdW1tYXJ5LXRheC1zdW1tYXJ5LmVudW0nO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYi9FbnVtcy90aWNrZXQtZmVlZGJhY2suZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYi9FbnVtcy90aWNrZXQtc3RhdHVzLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGIvRW51bXMvdGlja2V0LXR5cGVzLmVudW0nO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYi9FbnVtcy90cmFuc2FjdGlvbi1vcGVyYXRpb24uZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYi9FbnVtcy90cmFuc2FjdGlvbi1zb3VyY2UuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYi9FbnVtcy90cmFuc2FjdGlvbi10eXBlLmVudW0nO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYi9FbnVtcy91c2VyLWV2ZW50LXN0YXR1cy5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RiL0VudW1zL3VzZXItZXZlbnQtdHlwZS1mcmVxdWVuY3kuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYi9FbnVtcy91c2VyLWV2ZW50LXR5cGUtdXNlci10eXBlLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGIvRW51bXMvdXNlci1ldmVudC10eXBlLWVtcGxveWVlLXR5cGUuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYi9FbnVtcy91c2VyLWV2ZW50LXR5cGUtY2xpZW50LXR5cGUuZW51bSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2RiL0VudW1zL3VzZXItbWVkaWNhcmUtZXhlbXB0aW9uLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGIvRW51bXMvdXNlci1yb2xlcy5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RiL0VudW1zL3VzZXItc3RhdHVzLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGIvRW51bXMvdXNlci10aXRsZS5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RiL0VudW1zL3VzZXItd29yay1kZXByZWNpYXRpb24tY2FsY3VsYXRpb24uZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYi9FbnVtcy91c2VyLXdvcmtpbmctaG9saWRheS1tYWtlci5lbnVtJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGIvRW51bXMvdmVoaWNsZS1jbGFpbS1tZXRob2QuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYi9FbnVtcy92ZWhpY2xlLWxvZ2Jvb2stcHVycG9zZS5lbnVtJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGIvRW51bXMvcHJvcGVydHkvcHJvcGVydHktc2FsZS90YXgtZXhlbXB0aW9uLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGIvRW51bXMvcHJvcGVydHkvcHJvcGVydHktc2FsZS90YXgtZXhlbXB0aW9uLW1ldGFkYXRhLmVudW0nO1xuXG4vKipcbiAqIE1vZGVscyBhbmQgcmVsYXRlZCBlbnVtcyBhbmQgY29uc3RzXG4gKi9cbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9hY2NvdW50LXNldHVwL2FjY291bnQtc2V0dXAtaXRlbSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9hZGRyZXNzL2FkZHJlc3MnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2FkZHJlc3MvY291bnRyeSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9iYWRnZS9iYWRnZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvYmFkZ2UvYmFkZ2UtY29sb3IuZW51bSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9iYW5rL2JhbmsnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2JhbmsvYmFuay1hY2NvdW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9iYW5rL2JhbmstYWNjb3VudC1jaGFydC1kYXRhJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9iYW5rL2JhbmstYWNjb3VudC1wcm9wZXJ0eSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvYmFuay9iYW5rLWFjY291bnQtdHlwZXMuY29uc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2JhbmsvYmFuay1jb25uZWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9iYW5rL2JhbmstbG9naW4tZGF0YSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvYmFuay9iYW5rLXRyYW5zYWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9iYW5rL2JhbmstdHJhbnNhY3Rpb24tY2hhcnQtZGF0YSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvYmFuay9iYW5rLXRyYW5zYWN0aW9uLXN1bW1hcnktZmllbGRzLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2JhbmsvYmFzaXEtY29uZmlnJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9iYW5rL2Jhc2lxLWpvYic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvYmFuay9iYXNpcS10b2tlbic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvYmFuay90eXBlLWxvYW4uY29uc3QnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvYm9ycm93aW5nLWV4cGVuc2UvYm9ycm93aW5nLWV4cGVuc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2JvcnJvd2luZy1leHBlbnNlL2JvcnJvd2luZy1leHBlbnNlLWxvYW4nO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvY2hhcnQvY2hhcnQtZGF0YSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvY2hhcnQvY2hhcnQtc2VyaWUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvY2hhcnQtYWNjb3VudHMvY2hhcnQtYWNjb3VudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2NoYXJ0LWFjY291bnRzL2NoYXJ0LWFjY291bnRzLWNhdGVnb3JpZXMuY29uc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2NoYXJ0LWFjY291bnRzL2NoYXJ0LWFjY291bnRzLWRlcHJlY2lhdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvY2hhcnQtYWNjb3VudHMvY2hhcnQtYWNjb3VudHMtaGVhZGluZyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvY2hhcnQtYWNjb3VudHMvY2hhcnQtYWNjb3VudHMtbWV0YWRhdGEnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2NoYXJ0LWFjY291bnRzL2NoYXJ0LWFjY291bnRzLXRheC1sYWJlbHMuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvY2hhcnQtYWNjb3VudHMvY2hhcnQtYWNjb3VudHMtdmFsdWUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvY2hhdC9jaGF0JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9jaGF0L2NoYXQtdmlldy10eXBlLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2NoYXQvbWVzc2FnZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvY2hhdC9tZXNzYWdlLWRvY3VtZW50JztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2NsaWVudC9jbGllbnQtZGV0YWlscyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvY2xpZW50L2NsaWVudC1pbmNvbWUtdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2NsaWVudC9jbGllbnQtaW52aXRlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9jbGllbnQvY2xpZW50LW1vdmVtZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9jbGllbnQvY2xpZW50LXBvcnRmb2xpby1jaGFydC1kYXRhJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9jbGllbnQvY2xpZW50LXBvcnRmb2xpby1yZXBvcnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvY29sb3IvYWxwaGFiZXQtY29sb3JzLmVudW0nO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvZGljdGlvbmFyeS9kaWN0aW9uYXJ5JztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2RlcHJlY2lhdGlvbi9kZXByZWNpYXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2RlcHJlY2lhdGlvbi9kZXByZWNpYXRpb24tY2FwaXRhbC1wcm9qZWN0JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9kZXByZWNpYXRpb24vZGVwcmVjaWF0aW9uLWZvcmVjYXN0JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9kZXByZWNpYXRpb24vZGVwcmVjaWF0aW9uLWdyb3VwLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2RlcHJlY2lhdGlvbi9kZXByZWNpYXRpb24tZ3JvdXAnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2RlcHJlY2lhdGlvbi9kZXByZWNpYXRpb24tZ3JvdXAtaXRlbSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvZGVwcmVjaWF0aW9uL2RlcHJlY2lhdGlvbi1ncm91cHMuY29uc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2RlcHJlY2lhdGlvbi9kZXByZWNpYXRpb24tcmVjZWlwdCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9kaWN0aW9uYXJ5L2RpY3Rpb25hcnknO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvZG9jdW1lbnQvZG9jdW1lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2RvY3VtZW50L2RvY3VtZW50LWFwaS11cmwtcHJlZml4LmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2RvY3VtZW50L2RvY3VtZW50LWZpbGUtdHlwZXMuY29uc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2RvY3VtZW50L2RvY3VtZW50LWZvbGRlcic7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9lbXBsb3llZS9lbXBsb3llZS1kZXRhaWxzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9lbXBsb3llZS9lbXBsb3llZS1pbnZpdGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvZW5kcG9pbnQvZW5kcG9pbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2VuZHBvaW50L2VuZHBvaW50cy5jb25zdCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9ldmVudC9hcHAtZXZlbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2V2ZW50L2FwcC1ldmVudC10eXBlLmVudW0nO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvZXhwb3J0L2V4cG9ydC1kYXRhLXRhYmxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9leHBvcnQvZXhwb3J0LWZvcm1hdC5lbnVtJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2ZpbGUvaWNvbnMtZmlsZS5lbnVtJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2ZpbmFuY2lhbC15ZWFyL2ZpbmFuY2lhbC15ZWFyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9maW5hbmNpYWwteWVhci9tb250aC1uYW1lLXNob3J0LmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2ZpbmFuY2lhbC15ZWFyL21vbnRoLW51bWJlci5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9maW5hbmNpYWwteWVhci9tb250aHMuY29uc3QnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvZmlybS9maXJtJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2luY29tZS1wb3NpdGlvbi9pbmNvbWUtcG9zaXRpb24nO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvaW5jb21lLXNvdXJjZS9pbmNvbWUtc291cmNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9pbmNvbWUtc291cmNlL2luY29tZS1zb3VyY2UtY2hhcnQtZGF0YSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvaW5jb21lLXNvdXJjZS9pbmNvbWUtc291cmNlLWZvcmVjYXN0JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9pbmNvbWUtc291cmNlL2luY29tZS1zb3VyY2UtdHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvaW5jb21lLXNvdXJjZS9zYWxhcnktZm9yZWNhc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2luY29tZS1zb3VyY2Uvc29sZS1mb3JlY2FzdCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9sb2FuL2xvYW4nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2xvYW4vbG9hbi1tYXgtbnVtYmVyLW9mLXBheW1lbnRzLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2xvYW4vbG9hbi1wYXltZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9sb2FuL2xvYW4tcGF5b3V0JztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2xvZ2Jvb2svZGVmYXVsdC12ZWhpY2xlLWV4cGVuc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2xvZ2Jvb2svbG9nYm9vay1wZXJpb2QnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2xvZ2Jvb2svbG9nYm9vay1wdXJwb3NlLW9wdGlvbnMuY29uc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2xvZ2Jvb2svdmVoaWNsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvbG9nYm9vay92ZWhpY2xlLWNsYWltJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9sb2dib29rL3ZlaGljbGUtbG9nYm9vayc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3BkZi9wZGYtb3JpZW50YXRpb24uZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvcGRmL3BkZi1zZXR0aW5ncyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9waG9uZS9waG9uZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9wcm9wZXJ0eS9jYWxjdWxhdGlvbi1mb3JtLWl0ZW0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3Byb3BlcnR5L2NhbGN1bGF0aW9uLWZvcm0tdHlwZS5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9wcm9wZXJ0eS9jYXBpdGFsLWNvc3RzLWl0bWVzLmNvbnN0JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9wcm9wZXJ0eS9jb3JlbG9naWMtc3VnZ2VzdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvcHJvcGVydHkvc2hhcmUtZmlsdGVyLW9wdGlvbnMuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvcHJvcGVydHkvcHJvcGVydHknO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3Byb3BlcnR5L3Byb3BlcnR5LWNhdGVnb3J5JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9wcm9wZXJ0eS9wcm9wZXJ0eS1jYXRlZ29yeS1tb3ZlbWVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvcHJvcGVydHkvcHJvcGVydHktZG9jdW1lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3Byb3BlcnR5L3Byb3BlcnR5LWVxdWl0eS1jaGFydC1kYXRhJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9wcm9wZXJ0eS9wcm9wZXJ0eS1lcXVpdHktY2hhcnQtaXRlbSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvcHJvcGVydHkvcHJvcGVydHktZm9yZWNhc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3Byb3BlcnR5L3Byb3BlcnR5LXNoYXJlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9wcm9wZXJ0eS9wcm9wZXJ0eS1zYWxlL3Byb3BlcnR5LXNhbGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3Byb3BlcnR5L3Byb3BlcnR5LXNhbGUvdGF4LWV4ZW1wdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvcHJvcGVydHkvcHJvcGVydHktc2FsZS90YXgtZXhlbXB0aW9uLW1ldGFkYXRhJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9wcm9wZXJ0eS9wcm9wZXJ0eS1zYWxlL3Byb3BlcnR5LXNhbGUtdGF4LWV4ZW1wdGlvbi1tZXRhZGF0YSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9wcm9wZXJ0eS9wcm9wZXJ0eS1zdWJzY3JpcHRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3Byb3BlcnR5L3Byb3BlcnR5LXZhbHVhdGlvbic7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9yZWdpc3RyYXRpb24taW52aXRlL3JlZ2lzdHJhdGlvbi1pbnZpdGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvcmVwb3J0L2RlcHJlY2lhdGlvbi9kZXByZWNpYXRpb24tbHZwLXJlcG9ydC1pdGVtJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9yZXBvcnQvZGVwcmVjaWF0aW9uL2RlcHJlY2lhdGlvbi1yZXBvcnQtaXRlbSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvcmVwb3J0L2RlcHJlY2lhdGlvbi9kZXByZWNpYXRpb24tbHZwLWFzc2V0LXR5cGUuZW51bSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9yZXBvcnQvbXktdGF4L2F0by1saW5rcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvcmVwb3J0L215LXRheC9teS10YXgtYnVzaW5lc3Mtb3ItbG9zc2VzL215LXRheC1idXNpbmVzcy1vci1sb3NzZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3JlcG9ydC9teS10YXgvbXktdGF4LWRlZHVjdGlvbnMvbXktdGF4LWRlZHVjdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3JlcG9ydC9teS10YXgvbXktdGF4LWRlZHVjdGlvbnMvZGVkdWN0aW9uLWNsb3RoaW5nLXR5cGUuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvcmVwb3J0L215LXRheC9teS10YXgtZGVkdWN0aW9ucy9kZWR1Y3Rpb24tZmllbGRzLmNvbnN0JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9yZXBvcnQvbXktdGF4L215LXRheC1kZWR1Y3Rpb25zL2RlZHVjdGlvbi1zZWxmLWVkdWNhdGlvbi10eXBlLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3JlcG9ydC9teS10YXgvbXktdGF4LWRpdmlkZW5kcy9teS10YXgtZGl2aWRlbmRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9yZXBvcnQvbXktdGF4L215LXRheC1lbXBsb3llZS1zaGFyZS1zY2hlbWVzL215LXRheC1lbXBsb3llZS1zaGFyZS1zY2hlbWVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9yZXBvcnQvbXktdGF4L215LXRheC1pbmNvbWUtc3RhdGVtZW50cy9teS10YXgtaW5jb21lLXN0YXRlbWVudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3JlcG9ydC9teS10YXgvbXktdGF4LWluY29tZS10ZXN0cy9teS10YXgtaW5jb21lLXRlc3RzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9yZXBvcnQvbXktdGF4L215LXRheC1pbnRlcmVzdC9teS10YXgtaW50ZXJlc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3JlcG9ydC9teS10YXgvbXktdGF4LWxvc3Nlcy9teS10YXgtbG9zc2VzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9yZXBvcnQvbXktdGF4L215LXRheC1vZmZzZXRzL215LXRheC1vZmZzZXRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9yZXBvcnQvbXktdGF4L215LXRheC1vdGhlci1pbmNvbWUvbXktdGF4LW90aGVyLWluY29tZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvcmVwb3J0L215LXRheC9teS10YXgtcGFydG5lcnNoaXBzLWFuZC10cnVzdHMvbXktdGF4LXBhcnRuZXJzaGlwcy1hbmQtdHJ1c3RzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9yZXBvcnQvbXktdGF4L215LXRheC1yZW50L215LXRheC1yZW50JztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3JlcG9ydC9wcm9wZXJ0eS9wcm9wZXJ0eS1yZXBvcnQtaXRlbSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvcmVwb3J0L3Byb3BlcnR5L3Byb3BlcnR5LXJlcG9ydC1pdGVtLXRyYW5zYWN0aW9uJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3JlcG9ydC92ZWhpY2xlLWV4cGVuc2UvdmVoaWNsZS1leHBlbnNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3NlcnZpY2Utc3Vic2NyaXB0aW9uL21vZHVsZS11cmwtbGlzdC5jb25zdCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvc2VydmljZS1zdWJzY3JpcHRpb24vc2VydmljZS1wYXltZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9zZXJ2aWNlLXN1YnNjcmlwdGlvbi9zZXJ2aWNlLXByaWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9zZXJ2aWNlLXN1YnNjcmlwdGlvbi9zZXJ2aWNlLXByb2R1Y3QnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3NlcnZpY2Utc3Vic2NyaXB0aW9uL3NlcnZpY2Utc3Vic2NyaXB0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9zZXJ2aWNlLXN1YnNjcmlwdGlvbi9zZXJ2aWNlLXN1YnNjcmlwdGlvbi1pdGVtJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9zZXJ2aWNlLXN1YnNjcmlwdGlvbi9zdWJzY3JpcHRpb24tZGVzY3JpcHRpb24uY29uc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3NlcnZpY2Utc3Vic2NyaXB0aW9uL3N1YnNjcmlwdGlvbi10aXRsZS5jb25zdCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvc2VydmljZS1zdWJzY3JpcHRpb24vc3Vic2NyaXB0aW9uLXR5cGUuZW51bSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy90YXgtcmV2aWV3L3RheC1yZXZpZXcnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvdGF4LXN1bW1hcnkvcmVwb3J0LWl0ZW0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3RheC1zdW1tYXJ5L3JlcG9ydC1pdGVtLWRldGFpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3RheC1zdW1tYXJ5L3RheC1zdW1tYXJ5JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy90YXgtc3VtbWFyeS90YXgtc3VtbWFyeS1zZWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy90YXgtc3VtbWFyeS90YXgtc3VtbWFyeS10eXBlLmVudW0nO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvdG9hc3QvdG9hc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3RvYXN0L3RvYXN0LXR5cGUuZW51bSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy90cmFuc2FjdGlvbi9pbmNvbWUtYW1vdW50LXR5cGUuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvdHJhbnNhY3Rpb24vdHJhbnNhY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uLWFsbG9jYXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uLWNhdGVnb3J5LmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uLW1ldGFkYXRhJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy90cmFuc2FjdGlvbi90cmFuc2FjdGlvbi1yZWNlaXB0JztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3VzZXIvbXktYWNjb3VudC1oaXN0b3J5JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy91c2VyL215LWFjY291bnQtaGlzdG9yeS1pbml0aWF0ZWQtYnkuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvdXNlci9teS1hY2NvdW50LWhpc3Rvcnktc3RhdHVzLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3VzZXIvbXktYWNjb3VudC1oaXN0b3J5LXR5cGUuZW51bSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy91c2VyL29jY3VwYXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3VzZXIvdXNlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvdXNlci91c2VyLXJvbGVzLmNvbnN0JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy91c2VyL3VzZXItdG8tcmVnaXN0ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3VzZXIvdXNlci13b3JrLXBvc2l0aW9uLmNvbnN0JztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3VzZXItZXZlbnQvdXNlci1ldmVudC10eXBlLWNhdGVnb3J5JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy91c2VyLWV2ZW50L3VzZXItZXZlbnQtc2V0dGluZyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvdXNlci1ldmVudC91c2VyLWV2ZW50LXNldHRpbmctZmllbGQuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvdXNlci1ldmVudC91c2VyLWV2ZW50LXR5cGUnO1xuXG4vKipcbiAqIFNlcnZpY2VzXG4gKi9cbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2FjY291bnQtc2V0dXAvYWNjb3VudC1zZXR1cC5zZXJ2aWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvaHR0cC9hZGRyZXNzL2FkZHJlc3Muc2VydmljZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2Fzc2V0L2Fzc2V0cy5zZXJ2aWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvYXV0aC9hdXRoLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvYXV0aC9qd3Quc2VydmljZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2h0dHAvYmFuay9iYW5rLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvaHR0cC9iYW5rL2JhbmstYWNjb3VudC9iYW5rLWFjY291bnQuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9iYW5rL2JhbmstYWNjb3VudC1jYWxjdWxhdGlvbi5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2h0dHAvYmFuay9iYW5rLWNvbm5lY3Rpb24vYmFuay1jb25uZWN0aW9uLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvaHR0cC9iYW5rL2JhbmstdHJhbnNhY3Rpb24vYmFuay10cmFuc2FjdGlvbi5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2JhbmsvYmFuay10cmFuc2FjdGlvbi1jYWxjdWxhdGlvbi5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2h0dHAvYmFuay9iYXNpcS9iYXNpcS5zZXJ2aWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvaHR0cC9sb2FuL2JvcnJvd2luZy1leHBlbnNlL2JvcnJvd2luZy1leHBlbnNlLnNlcnZpY2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9odHRwL2NoYXJ0LWFjY291bnRzL2NoYXJ0LWFjY291bnRzLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvaHR0cC9jaGFydC1hY2NvdW50cy9jaGFydC1hY2NvdW50cy1kZXByZWNpYXRpb25zL2NoYXJ0LWFjY291bnRzLWRlcHJlY2lhdGlvbnMuc2VydmljZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2h0dHAvY2hhdC9jaGF0LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvaHR0cC9jaGF0L21lc3NhZ2UvbWVzc2FnZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2h0dHAvY2hhdC9tZXNzYWdlLWRvY3VtZW50L21lc3NhZ2UtZG9jdW1lbnQuc2VydmljZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2h0dHAvZmlybS9jbGllbnQtaW52aXRlL2NsaWVudC1pbnZpdGUuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9odHRwL2Zpcm0vY2xpZW50LW1vdmVtZW50L2NsaWVudC1tb3ZlbWVudC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2h0dHAvZmlybS9wb3J0Zm9saW8tcmVwb3J0L2NsaWVudC1wb3J0Zm9saW8tcmVwb3J0LnNlcnZpY2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9odHRwL2RlcHJlY2lhdGlvbi9kZXByZWNpYXRpb24tY2FwaXRhbC1wcm9qZWN0L2RlcHJlY2lhdGlvbi1jYXBpdGFsLXByb2plY3Quc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9odHRwL2RlcHJlY2lhdGlvbi9kZXByZWNpYXRpb24uc2VydmljZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2h0dHAvZG9jdW1lbnQvZG9jdW1lbnQtZm9sZGVyL2RvY3VtZW50LWZvbGRlci5zZXJ2aWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvaHR0cC9maXJtL2VtcGxveWVlL2VtcGxveWVlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvaHR0cC9maXJtL2VtcGxveWVlLWludml0ZS9lbXBsb3llZS1pbnZpdGUuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9odHRwL2Zpcm0vY2xpZW50LWluY29tZS9jbGllbnQtaW5jb21lLXR5cGVzLnNlcnZpY2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9ldmVudC9ldmVudC1kaXNwYXRjaGVyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvZXZlbnQvc3NlLnNlcnZpY2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9odHRwL2Zpcm0vZmlybS5zZXJ2aWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvZXhwb3J0L2V4cG9ydC1mb3JtYXR0ZXIuc2VydmljZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2hlYWRlci10aXRsZS9oZWFkZXItdGl0bGUuc2VydmljZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2h0dHAvaW5jb21lLXNvdXJjZS9pbmNvbWUtc291cmNlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvaHR0cC9pbmNvbWUtc291cmNlL2luY29tZS1zb3VyY2UtZm9yZWNhc3QvaW5jb21lLXNvdXJjZS1mb3JlY2FzdC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2h0dHAvaW5jb21lLXNvdXJjZS9zYWxhcnktZm9yZWNhc3Qvc2FsYXJ5LWZvcmVjYXN0LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvaHR0cC9pbmNvbWUtc291cmNlL3NvbGUtZm9yZWNhc3Qvc29sZS1mb3JlY2FzdC5zZXJ2aWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvaW50ZXJjb20vaW50ZXJjb20uc2VydmljZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2tvbXBhc3NpZnkva29tcGFzc2lmeS5zZXJ2aWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvaHR0cC9sb2FuL2xvYW4uc2VydmljZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2h0dHAvc2VydmljZS1ub3RpZmljYXRpb24vc2VydmljZS1ub3RpZmljYXRpb24uc2VydmljZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3BkZi9wZGYtZnJvbS1kb20tZWxlbWVudC9wZGYtZnJvbS1kb20tZWxlbWVudC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3BkZi9wZGYtZnJvbS10YWJsZS9wZGYtZnJvbS1odG1sLXRhYmxlL3BkZi1mcm9tLWh0bWwtdGFibGUuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9wZGYvcGRmLWZyb20tdGFibGUvcGRmLWZyb20tZGF0YS10YWJsZS9wZGYtZnJvbS1kYXRhLXRhYmxlLnNlcnZpY2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9wcmVsb2FkZXIvcHJlbG9hZGVyLnNlcnZpY2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9yZXBvcnQvcHJvcGVydHkvcHJvcGVydHktdHJhbnNhY3Rpb24tcmVwb3J0LnNlcnZpY2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9wcm9wZXJ0eS9jb3JlbG9naWMvY29yZWxvZ2ljLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvaHR0cC9wcm9wZXJ0eS9wcm9wZXJ0eS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3Byb3BlcnR5L3Byb3BlcnR5LWNhbGN1bGF0aW9uL3Byb3BlcnR5LWNhbGN1bGF0aW9uLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvaHR0cC9wcm9wZXJ0eS9wcm9wZXJ0eS1jYXRlZ29yeS9wcm9wZXJ0eS1jYXRlZ29yeS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2h0dHAvcHJvcGVydHkvcHJvcGVydHktZG9jdW1lbnQvcHJvcGVydHktZG9jdW1lbnQuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9odHRwL3Byb3BlcnR5L3Byb3BlcnR5LXNoYXJlL3Byb3BlcnR5LXNoYXJlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvaHR0cC9wcm9wZXJ0eS9wcm9wZXJ0eS1zYWxlL3Byb3BlcnR5LXNhbGUuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9wcm9wZXJ0eS9lcXVpdHktcG9zaXRpb24tY2hhcnQvZXF1aXR5LXBvc2l0aW9uLWNoYXJ0LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvaHR0cC9wcm9wZXJ0eS9wcm9wZXJ0eS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2h0dHAvcHJvcGVydHkvcHJvcGVydHktY2F0ZWdvcnktbW92ZW1lbnQvcHJvcGVydHktY2F0ZWdvcnktbW92ZW1lbnQuc2VydmljZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2h0dHAvc3Vic2NyaXB0aW9uL3N1YnNjcmlwdGlvbi5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2h0dHAvc3Vic2NyaXB0aW9uL3NlcnZpY2UtcHJpY2Uuc2VydmljZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2h0dHAvdGF4LXJldmlldy90YXgtcmV2aWV3LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvaHR0cC90YXgtcmV2aWV3L3RheC1yZXZpZXctaGlzdG9yeS90YXgtcmV2aWV3LWhpc3Rvcnkuc2VydmljZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2h0dHAvdGF4LXN1bW1hcnkvdGF4LXN1bW1hcnkuc2VydmljZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3RvYXN0L3RvYXN0LnNlcnZpY2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9odHRwL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvaHR0cC90cmFuc2FjdGlvbi90cmFuc2FjdGlvbi1hbGxvY2F0aW9uL3RyYW5zYWN0aW9uLWFsbG9jYXRpb24uc2VydmljZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uLWNhbGN1bGF0aW9uLnNlcnZpY2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9odHRwL3VzZXIvb2NjdXBhdGlvbi9vY2N1cGF0aW9uLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvaHR0cC91c2VyL3VzZXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy91c2VyL3VzZXItc3dpdGNoZXIuc2VydmljZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2h0dHAvdXNlci91c2VyLWV2ZW50LXNldHRpbmcvdXNlci1ldmVudC1zZXR0aW5nLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvaHR0cC91c2VyL3VzZXItZXZlbnQtdHlwZS91c2VyLWV2ZW50LXR5cGUuc2VydmljZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2h0dHAvdmVoaWNsZS92ZWhpY2xlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvaHR0cC92ZWhpY2xlL3ZlaGljbGUtY2xhaW0uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9odHRwL3ZlaGljbGUvdmVoaWNsZS1sb2dib29rLnNlcnZpY2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy94bHN4L3hsc3guc2VydmljZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2h0dHAvcHJvcGVydHkvcHJvcGVydHktc2FsZS90YXgtZXhlbXB0aW9uL3RheC1leGVtcHRpb24uc2VydmljZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2h0dHAvZmFjZWJvb2svZmFjZWJvb2suc2VydmljZSc7XG5cbi8qKlxuICogSW50ZXJmYWNlc1xuICovXG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbnRlcmZhY2VzL2Fzc2V0LmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbnRlcmZhY2VzL2Fzc2V0LWVudGl0eS10eXBlLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaW50ZXJmYWNlcy9hc3NldC10eXBlLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaW50ZXJmYWNlcy9jaGFydC1kYXRhLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbnRlcmZhY2VzL2NoYXJ0LXNlcmllLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbnRlcmZhY2VzL2RvY3VtZW50LmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbnRlcmZhY2VzL2RvY3VtZW50YWJsZS5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaW50ZXJmYWNlcy9ldmVudC1saXN0ZW5lci5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaW50ZXJmYWNlcy9pbmNvbWUtc291cmNlLWZvcmVjYXN0LmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbnRlcmZhY2VzL29wdGlvbi5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaW50ZXJmYWNlcy9waG90b2FibGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaW50ZXJmYWNlcy9yZWNlaXB0LmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbnRlcmZhY2VzL3RhbmsuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ludGVyZmFjZXMvdGFibGUtZXhwb3J0YWJsZS5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaW50ZXJmYWNlcy91cGRhdGFibGUuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ludGVyZmFjZXMvZXhwZW5zZS5pbnRlcmZhY2UnO1xuXG4vKipcbiAqIEZ1bmN0aW9uc1xuICovXG5leHBvcnQgKiBmcm9tICcuL2xpYi9mdW5jdGlvbnMvY2xvbmUtZGVlcCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9mdW5jdGlvbnMvY3JlYXRlLWRhdGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZnVuY3Rpb25zL2VudW0tdG8tbGlzdCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9mdW5jdGlvbnMvZ2V0LWRvYy1pY29uJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Z1bmN0aW9ucy9tYXQtb3B0aW9ucy1mdW5jdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZnVuY3Rpb25zL21hdC1zb3J0LW9wdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZnVuY3Rpb25zL3JvdW5kLXRvJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Z1bmN0aW9ucy90YXgtcmV2aWV3LWZpbHRlci1wcmVkaWNhdGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZnVuY3Rpb25zL2FycmF5JztcblxuLyoqXG4gKiBJbnRlcmNlcHRvcnNcbiAqL1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaW50ZXJjZXB0b3JzL2ludGVyY2VwdG9ycy5tb2R1bGUnO1xuXG4vKipcbiAqIEZvcm1zXG4gKi9cbmV4cG9ydCAqIGZyb20gJy4vbGliL2Zvcm1zJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3ZhbGlkYXRvcnMnO1xuIl19