taxtank-core 0.32.33 → 0.32.36

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.
@@ -65,7 +65,7 @@ export class Collection {
65
65
  return this.items.map(callback);
66
66
  }
67
67
  mapBy(path) {
68
- return this.items.map((item) => get(item, path));
68
+ return this.filterBy(path).items.map((item) => get(item, path));
69
69
  }
70
70
  sortBy(paths = ['id'], order = ['desc']) {
71
71
  this.items = orderBy(this.items, paths instanceof Array ? paths : [paths], order instanceof Array ? order : [order]);
@@ -90,7 +90,10 @@ export class Collection {
90
90
  filter(callback) {
91
91
  return this.create(this.items.filter(callback));
92
92
  }
93
- filterBy(path, values) {
93
+ filterBy(path, values = null) {
94
+ if (!values) {
95
+ return this.filter((item) => !!get(item, path));
96
+ }
94
97
  return this.filter((item) => (Array.isArray(values) ? values : [values]).includes(get(item, path)));
95
98
  }
96
99
  filterByRange(path, from, to) {
@@ -154,8 +157,8 @@ export class Collection {
154
157
  return +this.items.reduce(callback, init).toFixed(10);
155
158
  }
156
159
  slice(from, to) {
157
- this.items.slice(from, to);
160
+ this.items = this.items.slice(from, to);
158
161
  return this;
159
162
  }
160
163
  }
161
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9jb2xsZWN0aW9ucy9jb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQy9ELE9BQU8sS0FBSyxNQUFNLGNBQWMsQ0FBQztBQUNqQyxPQUFPLElBQUksTUFBTSxhQUFhLENBQUM7QUFDL0IsT0FBTyxHQUFHLE1BQU0sWUFBWSxDQUFDO0FBRTdCLE9BQU8sRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3RELE9BQU8sT0FBTyxNQUFNLGdCQUFnQixDQUFDO0FBRXJDOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFVBQVU7SUFTckIsWUFBWSxRQUFpQixFQUFFO1FBTC9COztXQUVHO1FBQ0gsVUFBSyxHQUFHLENBQUMsQ0FBQztRQUdSLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLHVFQUF1RTtJQUN6RSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7UUFDZixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELE1BQU0sQ0FBQyxRQUFpQixFQUFFO1FBQ3hCLE9BQU8sSUFBSyxJQUFJLENBQUMsV0FBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUMzQixDQUFDO0lBRUQsT0FBTztRQUNMLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxD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LENBQUMsTUFBTSxDQUFDLENBQUMsSUFBVyxFQUFFLE9BQWMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUNySCxDQUFDO0lBRUQsS0FBSyxDQUFDLElBQVk7UUFDaEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQVcsRUFBRSxPQUFjLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDckgsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLFFBQThDLEVBQUUsSUFBSSxHQUFHLENBQUM7UUFDN0QsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFZLEVBQUUsRUFBVTtRQUM1QixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFM0IsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2xsZWN0aW9uRGljdGlvbmFyeSB9IGZyb20gJy4vY29sbGVjdGlvbi1kaWN0aW9uYXJ5JztcclxuaW1wb3J0IGZpcnN0IGZyb20gJ2xvZGFzaC9maXJzdCc7XHJcbmltcG9ydCBsYXN0IGZyb20gJ2xvZGFzaC9sYXN0JztcclxuaW1wb3J0IGdldCBmcm9tICdsb2Rhc2gvZ2V0JztcclxuaW1wb3J0IHsgQWJzdHJhY3RNb2RlbCB9IGZyb20gJy4uL2RiL01vZGVscyc7XHJcbmltcG9ydCB7IERpY3Rpb25hcnksIEZpbmFuY2lhbFllYXIgfSBmcm9tICcuLi9tb2RlbHMnO1xyXG5pbXBvcnQgb3JkZXJCeSBmcm9tICdsb2Rhc2gvb3JkZXJCeSc7XHJcblxyXG4vKipcclxuICogQmFzZSBjb2xsZWN0aW9uIGNsYXNzLiBDb250YWlucyBjb21tb24gcHJvcGVydGllcyBhbmQgbWV0aG9kcyBmb3IgYWxsIGNvbGxlY3Rpb25zXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgQ29sbGVjdGlvbjxNb2RlbCBleHRlbmRzIEFic3RyYWN0TW9kZWw+IGltcGxlbWVudHMgSXRlcmFibGU8TW9kZWw+IHtcclxuICAvLyBsaXN0IG9mIGNvbGxlY3Rpb24ncyBpdGVtc1xyXG4gIGl0ZW1zOiBNb2RlbFtdO1xyXG5cclxuICAvKipcclxuICAgKiBpbmRleCBvZiBjdXJyZW50IGl0ZW0sIHVzZWQgdG8gaXRlcmF0ZSBvdmVyIHRoZSBjb2xsZWN0aW9uXHJcbiAgICovXHJcbiAgaW5kZXggPSAwO1xyXG5cclxuICBjb25zdHJ1Y3RvcihpdGVtczogTW9kZWxbXSA9IFtdKSB7XHJcbiAgICB0aGlzLml0ZW1zID0gaXRlbXM7XHJcbiAgICAvLyBAVE9ETyBBbGV4OiBUaGluayBhbmQgaW1wbGVtZW50IHNvbWUgc21hcnQgc29sdXRpb24gZm9yIGRlZmF1bHQgc29ydFxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSXRlcmF0b3IgdGhhdCBhbGxvdyB0byBpdGVyYXRlIGNvbGxlY3Rpb24gaXRlbXNcclxuICAgKi9cclxuICBbU3ltYm9sLml0ZXJhdG9yXSgpOiBJdGVyYXRvcjxNb2RlbD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaXRlbXMudmFsdWVzKCk7XHJcbiAgfVxyXG5cclxuICBjcmVhdGUoaXRlbXM6IE1vZGVsW10gPSBbXSk6IHRoaXMge1xyXG4gICAgcmV0dXJuIG5ldyAodGhpcy5jb25zdHJ1Y3RvciBhcyBhbnkpKGl0ZW1zKTtcclxuICB9XHJcblxyXG4gIGdldCBsZW5ndGgoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLml0ZW1zLmxlbmd0aDtcclxuICB9XHJcblxyXG4gIHRvQXJyYXkoKTogTW9kZWxbXSB7XHJcbiAgICByZXR1cm4gWy4uLnRoaXMuaXRlbXNdO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGZpcnN0KCk6IE1vZGVsIHtcclxuICAgIHJldHVybiBmaXJzdCh0aGlzLml0ZW1zKTtcclxuICB9XHJcblxyXG4gIGdldCBsYXN0KCk6IE1vZGVsIHtcclxuICAgIHJldHVybiBsYXN0KHRoaXMuaXRlbXMpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHByZXZpb3VzKCk6IE1vZGVsIHtcclxuICAgIHJldHVybiB0aGlzLml0ZW1zW3RoaXMuaXRlbXMubGVuZ3RoIC0gMl07XHJcbiAgfVxyXG5cclxuICByZXNldCgpOiBNb2RlbCB7XHJcbiAgICB0aGlzLmluZGV4ID0gMDtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5pdGVtc1t0aGlzLmluZGV4XTtcclxuICB9XHJcblxyXG4gIG5leHQoKTogTW9kZWwge1xyXG4gICAgaWYgKHRoaXMuaW5kZXggPCB0aGlzLmxlbmd0aCkge1xyXG4gICAgICB0aGlzLmluZGV4Kys7XHJcblxyXG4gICAgICByZXR1cm4gdGhpcy5pdGVtc1t0aGlzLmluZGV4XTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIGJhY2soKTogTW9kZWwge1xyXG4gICAgaWYgKHRoaXMuaW5kZXggPiAwKSB7XHJcbiAgICAgIHRoaXMuaW5kZXgtLTtcclxuXHJcbiAgICAgIHJldHVybiB0aGlzLml0ZW1zW3RoaXMuaW5kZXhdO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgZ2V0SWRzKCk6IG51bWJlcltdIHtcclxuICAgIHJldHVybiB0aGlzLml0ZW1zLm1hcCgoaXRlbTogTW9kZWwpOiBudW1iZXIgPT4gaXRlbVsnaWQnXSk7XHJcbiAgfVxyXG5cclxuICBtYXAoY2FsbGJhY2s6IChpdGVtOiBNb2RlbCkgPT4gYW55KTogYW55W10ge1xyXG4gICAgcmV0dXJuIHRoaXMuaXRlbXMubWFwKGNhbGxiYWNrKTtcclxuICB9XHJcblxyXG4gIG1hcEJ5KHBhdGg6IHN0cmluZyk6IGFueVtdIHtcclxuICAgIHJldHVybiB0aGlzLml0ZW1zLm1hcCgoaXRlbTogTW9kZWwpOiBhbnkgPT4gZ2V0KGl0ZW0sIHBhdGgpKVxyXG4gIH1cclxuXHJcbiAgc29ydEJ5KHBhdGhzOiBzdHJpbmcgfCBzdHJpbmdbXSA9IFsnaWQnXSwgb3JkZXI6IHN0cmluZyB8IHN0cmluZ1tdID0gWydkZXNjJ10pOiB0aGlzIHtcclxuICAgIHRoaXMuaXRlbXMgPSBvcmRlckJ5KHRoaXMuaXRlbXMsIHBhdGhzIGluc3RhbmNlb2YgQXJyYXkgPyBwYXRocyA6IFtwYXRoc10sIG9yZGVyIGluc3RhbmNlb2YgQXJyYXkgPyBvcmRlciA6IFtvcmRlcl0pO1xyXG5cclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgc29ydChjYWxsYmFjazogKGE6IE1vZGVsLCBiOiBNb2RlbCkgPT4gbnVtYmVyKTogdGhpcyB7XHJcbiAgICB0aGlzLml0ZW1zLnNvcnQoY2FsbGJhY2spO1xyXG5cclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IHRvdGFsIHN1bSBvZiBpdGVtcyBieSBmaWVsZFxyXG4gICAqL1xyXG4gIHN1bUJ5KHBhdGg6IHN0cmluZywgYWJzID0gZmFsc2UpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMucmVkdWNlKFxyXG4gICAgICAoc3VtOiBudW1iZXIsIGl0ZW06IE1vZGVsKTogbnVtYmVyID0+IHN1bSArIChhYnMgPyBNYXRoLmFicyhOdW1iZXIoZ2V0KGl0ZW0sIHBhdGgpKSkgOiBOdW1iZXIoZ2V0KGl0ZW0sIHBhdGgpKSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBncm91cEJ5KHBhdGggPSAnaWQnKTogQ29sbGVjdGlvbkRpY3Rpb25hcnk8dGhpcz4ge1xyXG4gICAgcmV0dXJuIG5ldyBDb2xsZWN0aW9uRGljdGlvbmFyeSh0aGlzLCBwYXRoKTtcclxuICB9XHJcblxyXG4gIGluZGV4QnkocGF0aCA9ICdpZCcpOiBEaWN0aW9uYXJ5PE1vZGVsPiB7XHJcbiAgICByZXR1cm4gbmV3IERpY3Rpb25hcnkodGhpcy5pdGVtcywgcGF0aCk7XHJcbiAgfVxyXG5cclxuICBmaWx0ZXIoY2FsbGJhY2s6IChpdGVtOiBNb2RlbCkgPT4gYm9vbGVhbik6IHRoaXMge1xyXG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlKHRoaXMuaXRlbXMuZmlsdGVyKGNhbGxiYWNrKSk7XHJcbiAgfVxyXG5cclxuICBmaWx0ZXJCeShwYXRoOiBzdHJpbmcsIHZhbHVlczogYW55KTogdGhpcyB7XHJcbiAgICByZXR1cm4gdGhpcy5maWx0ZXIoKGl0ZW06IE1vZGVsKSA9PiAoQXJyYXkuaXNBcnJheSh2YWx1ZXMpID8gdmFsdWVzIDogW3ZhbHVlc10pLmluY2x1ZGVzKGdldChpdGVtLCBwYXRoKSkpO1xyXG4gIH1cclxuXHJcbiAgZmlsdGVyQnlSYW5nZShwYXRoOiBzdHJpbmcsIGZyb206IGFueSwgdG86IGFueSk6IHRoaXMge1xyXG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyKChpdGVtOiBNb2RlbCk6IGJvb2xlYW4gPT4gZ2V0KGl0ZW0sIHBhdGgpID49IGZyb20gJiYgZ2V0KGl0ZW0sIHBhdGgpIDw9IHRvKTtcclxuICB9XHJcblxyXG4gIGZpbHRlckJ5RmluYW5jaWFsWWVhcihwYXRoRnJvbTogc3RyaW5nLCBwYXRoVG8/OiBzdHJpbmcsIGZpbmFuY2lhbFllYXI6IEZpbmFuY2lhbFllYXIgPSBuZXcgRmluYW5jaWFsWWVhcigpKTogdGhpcyB7XHJcbiAgICBpZiAocGF0aFRvKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmZpbHRlcihcclxuICAgICAgICBtb2RlbCA9PiBnZXQobW9kZWwsIHBhdGhGcm9tKSA8PSBmaW5hbmNpYWxZZWFyLmVuZERhdGUgJiYgIWdldChtb2RlbCwgcGF0aFRvKSB8fCBnZXQobW9kZWwsIHBhdGhUbykgPj0gZmluYW5jaWFsWWVhci5zdGFydERhdGVcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJCeVJhbmdlKHBhdGhGcm9tLCBmaW5hbmNpYWxZZWFyLnN0YXJ0RGF0ZSwgZmluYW5jaWFsWWVhci5lbmREYXRlKTtcclxuICB9XHJcblxyXG4gIGZpbmQoY2FsbGJhY2s6IChpdGVtOiBNb2RlbCkgPT4gYm9vbGVhbik6IE1vZGVsIHwgbnVsbCB7XHJcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5maW5kKGNhbGxiYWNrKTtcclxuICB9XHJcblxyXG4gIGZpbmRCeShwYXRoOiBzdHJpbmcsIHZhbHVlOiBhbnkpOiBNb2RlbCB8IG51bGwge1xyXG4gICAgcmV0dXJuIHRoaXMuaXRlbXMuZmluZCgobW9kZWw6IE1vZGVsKSA9PiB2YWx1ZSA9PT0gZ2V0KG1vZGVsLCBwYXRoKSk7XHJcbiAgfVxyXG5cclxuICBmaW5kSW5kZXhCeShwYXRoOiBzdHJpbmcsIHZhbHVlOiBhbnkpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuaXRlbXMuZmluZEluZGV4KChpdGVtOiBNb2RlbCkgPT4gZ2V0KGl0ZW0sIHBhdGgpID09PSB2YWx1ZSkgPz8gbnVsbDtcclxuICB9XHJcblxyXG4gIHB1c2goLi4uaXRlbXM6IE1vZGVsW10pOiB0aGlzIHtcclxuICAgIHRoaXMuaXRlbXMucHVzaCguLi5pdGVtcyk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlKHRoaXMuaXRlbXMpO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlKC4uLml0ZW1zOiBNb2RlbFtdKTogdGhpcyB7XHJcbiAgICBpdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgIGNvbnN0IGluZGV4OiBudW1iZXIgPSB0aGlzLmZpbmRJbmRleEJ5KCdpZCcsIGl0ZW0uaWQpO1xyXG4gICAgICBpZiAoaW5kZXggPCAwKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLml0ZW1zLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBUT0RPIGl0J3MgZmlsdGVyLCBub3QgcmVtb3ZlXHJcbiAgICovXHJcbiAgcmVtb3ZlQnkocGF0aDogc3RyaW5nLCB2YWx1ZXM6IGFueSk6IHRoaXMge1xyXG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyKChpdGVtOiBNb2RlbCkgPT4gIShBcnJheS5pc0FycmF5KHZhbHVlcykgPyB2YWx1ZXMgOiBbdmFsdWVzXSkuaW5jbHVkZXMoZ2V0KGl0ZW0sIHBhdGgpKSk7XHJcbiAgfVxyXG5cclxuICByZXBsYWNlQnkocGF0aDogc3RyaW5nLCB2YWx1ZTogYW55LCBpdGVtOiBNb2RlbCk6IHRoaXMge1xyXG4gICAgY29uc3QgaW5kZXg6IG51bWJlciA9IHRoaXMuZmluZEluZGV4QnkocGF0aCwgdmFsdWUpO1xyXG4gICAgaWYgKGluZGV4ID49IDApIHtcclxuICAgICAgdGhpcy5pdGVtcy5zcGxpY2UoaW5kZXgsIDEsIGl0ZW0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLmNyZWF0ZSh0aGlzLml0ZW1zKTtcclxuICB9XHJcblxyXG4gIGRpZmYoaXRlbXM6IE1vZGVsW10pOiB0aGlzIHtcclxuICAgIHJldHVybiB0aGlzLmZpbHRlcigobW9kZWw6IE1vZGVsKSA9PiAhaXRlbXMubWFwKChpdGVtOiBNb2RlbCkgPT4gaXRlbS5pZCkuaW5jbHVkZXMobW9kZWwuaWQpKTtcclxuICB9XHJcblxyXG4gIG1pbkJ5KHBhdGg6IHN0cmluZyk6IE1vZGVsIHtcclxuICAgIHJldHVybiB0aGlzLml0ZW1zLnJlZHVjZSgocHJldjogTW9kZWwsIGN1cnJlbnQ6IE1vZGVsKSA9PiAoZ2V0KHByZXYsIHBhdGgpIDwgZ2V0KGN1cnJlbnQsIHBhdGgpID8gcHJldiA6IGN1cnJlbnQpKTtcclxuICB9XHJcblxyXG4gIG1heEJ5KHBhdGg6IHN0cmluZyk6IE1vZGVsIHtcclxuICAgIHJldHVybiB0aGlzLml0ZW1zLnJlZHVjZSgocHJldjogTW9kZWwsIGN1cnJlbnQ6IE1vZGVsKSA9PiAoZ2V0KHByZXYsIHBhdGgpID4gZ2V0KGN1cnJlbnQsIHBhdGgpID8gcHJldiA6IGN1cnJlbnQpKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIGZsb2F0IG1hdGggaXNzdWVzIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzEyNTExMDU3L2Zsb2F0LXN1bS13aXRoLWphdmFzY3JpcHRcclxuICAgKi9cclxuICByZWR1Y2UoY2FsbGJhY2s6IChzdW06IG51bWJlciwgaXRlbTogTW9kZWwpID0+IG51bWJlciwgaW5pdCA9IDApOiBudW1iZXIge1xyXG4gICAgcmV0dXJuICt0aGlzLml0ZW1zLnJlZHVjZShjYWxsYmFjaywgaW5pdCkudG9GaXhlZCgxMCk7XHJcbiAgfVxyXG5cclxuICBzbGljZShmcm9tOiBudW1iZXIsIHRvOiBudW1iZXIpOiB0aGlzIHtcclxuICAgIHRoaXMuaXRlbXMuc2xpY2UoZnJvbSwgdG8pO1xyXG5cclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxufVxyXG4iXX0=
164
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9jb2xsZWN0aW9ucy9jb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQy9ELE9BQU8sS0FBSyxNQUFNLGNBQWMsQ0FBQztBQUNqQyxPQUFPLElBQUksTUFBTSxhQUFhLENBQUM7QUFDL0IsT0FBTyxHQUFHLE1BQU0sWUFBWSxDQUFDO0FBRTdCLE9BQU8sRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3RELE9BQU8sT0FBTyxNQUFNLGdCQUFnQixDQUFDO0FBRXJDOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFVBQVU7SUFTckIsWUFBWSxRQUFpQixFQUFFO1FBTC9COztXQUVHO1FBQ0gsVUFBSyxHQUFHLENBQUMsQ0FBQztRQUdSLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLHVFQUF1RTtJQUN6RSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7UUFDZixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELE1BQU0sQ0FBQyxRQUFpQixFQUFFO1FBQ3hCLE9BQU8sSUFBSyxJQUFJLENBQUMsV0FBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUMzQixDQUFDO0lBRUQsT0FBTztRQUNMLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBRWYsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBSTtRQUNGLElBQUksSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQzVCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUViLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDL0I7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxJQUFJO1FBQ0YsSUFBSSxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRTtZQUNsQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFFYixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQy9CO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsTUFBTTtRQUNKLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFXLEVBQVUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxHQUFHLENBQUMsUUFBOEI7UUFDaEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsS0FBSyxDQUFDLElBQVk7UUFDaEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFXLEVBQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUM3RSxDQUFDO0lBRUQsTUFBTSxDQUFDLFFBQTJCLENBQUMsSUFBSSxDQUFDLEVBQUUsUUFBMkIsQ0FBQyxNQUFNLENBQUM7UUFDM0UsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFFckgsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsSUFBSSxDQUFDLFFBQXdDO1FBQzNDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRTFCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLElBQVksRUFBRSxHQUFHLEdBQUcsS0FBSztRQUM3QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQ2hCLENBQUMsR0FBVyxFQUFFLElBQVcsRUFBVSxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUNoSCxDQUFDO0lBQ0osQ0FBQztJQUVELE9BQU8sQ0FBQyxJQUFJLEdBQUcsSUFBSTtRQUNqQixPQUFPLElBQUksb0JBQW9CLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxPQUFPLENBQUMsSUFBSSxHQUFHLElBQUk7UUFDakIsT0FBTyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxNQUFNLENBQUMsUUFBa0M7UUFDdkMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELFFBQVEsQ0FBQyxJQUFZLEVBQUUsU0FBYyxJQUFJO1FBQ3ZDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDWCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFXLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDeEQ7UUFFRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFXLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdHLENBQUM7SUFFRCxhQUFhLENBQUMsSUFBWSxFQUFFLElBQVMsRUFBRSxFQUFPO1FBQzVDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQVcsRUFBVyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNqRyxDQUFDO0lBRUQscUJBQXFCLENBQUMsUUFBZ0IsRUFBRSxNQUFlLEVBQUUsZ0JBQStCLElBQUksYUFBYSxFQUFFO1FBQ3pHLElBQUksTUFBTSxFQUFFO1lBQ1YsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUNoQixLQUFLLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLElBQUksYUFBYSxDQUFDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLElBQUksR0FBRyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsSUFBSSxhQUFhLENBQUMsU0FBUyxDQUMvSCxDQUFDO1NBQ0g7UUFFRCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLGFBQWEsQ0FBQyxTQUFTLEVBQUUsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RGLENBQUM7SUFFRCxJQUFJLENBQUMsUUFBa0M7UUFDckMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsTUFBTSxDQUFDLElBQVksRUFBRSxLQUFVO1FBQzdCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFZLEVBQUUsRUFBRSxDQUFDLEtBQUssS0FBSyxHQUFHLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVELFdBQVcsQ0FBQyxJQUFZLEVBQUUsS0FBVTtRQUNsQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBVyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQztJQUNsRixDQUFDO0lBRUQsSUFBSSxDQUFDLEdBQUcsS0FBYztRQUNwQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDO1FBRTFCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUFHLEtBQWM7UUFDdEIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3JCLE1BQU0sS0FBSyxHQUFXLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN0RCxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUU7Z0JBQ2IsT0FBTzthQUNSO1lBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxRQUFRLENBQUMsSUFBWSxFQUFFLE1BQVc7UUFDaEMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlHLENBQUM7SUFFRCxTQUFTLENBQUMsSUFBWSxFQUFFLEtBQVUsRUFBRSxJQUFXO1FBQzdDLE1BQU0sS0FBSyxHQUFXLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3BELElBQUksS0FBSyxJQUFJLENBQUMsRUFBRTtZQUNkLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDbkM7UUFFRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxJQUFJLENBQUMsS0FBYztRQUNqQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFZLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQVcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNoRyxDQUFDO0lBRUQsS0FBSyxDQUFDLElBQVk7UUFDaEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQVcsRUFBRSxPQUFjLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDckgsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFZO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFXLEVBQUUsT0FBYyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ3JILENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxRQUE4QyxFQUFFLElBQUksR0FBRyxDQUFDO1FBQzdELE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCxLQUFLLENBQUMsSUFBWSxFQUFFLEVBQVU7UUFDNUIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFeEMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2xsZWN0aW9uRGljdGlvbmFyeSB9IGZyb20gJy4vY29sbGVjdGlvbi1kaWN0aW9uYXJ5JztcclxuaW1wb3J0IGZpcnN0IGZyb20gJ2xvZGFzaC9maXJzdCc7XHJcbmltcG9ydCBsYXN0IGZyb20gJ2xvZGFzaC9sYXN0JztcclxuaW1wb3J0IGdldCBmcm9tICdsb2Rhc2gvZ2V0JztcclxuaW1wb3J0IHsgQWJzdHJhY3RNb2RlbCB9IGZyb20gJy4uL2RiL01vZGVscyc7XHJcbmltcG9ydCB7IERpY3Rpb25hcnksIEZpbmFuY2lhbFllYXIgfSBmcm9tICcuLi9tb2RlbHMnO1xyXG5pbXBvcnQgb3JkZXJCeSBmcm9tICdsb2Rhc2gvb3JkZXJCeSc7XHJcblxyXG4vKipcclxuICogQmFzZSBjb2xsZWN0aW9uIGNsYXNzLiBDb250YWlucyBjb21tb24gcHJvcGVydGllcyBhbmQgbWV0aG9kcyBmb3IgYWxsIGNvbGxlY3Rpb25zXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgQ29sbGVjdGlvbjxNb2RlbCBleHRlbmRzIEFic3RyYWN0TW9kZWw+IGltcGxlbWVudHMgSXRlcmFibGU8TW9kZWw+IHtcclxuICAvLyBsaXN0IG9mIGNvbGxlY3Rpb24ncyBpdGVtc1xyXG4gIGl0ZW1zOiBNb2RlbFtdO1xyXG5cclxuICAvKipcclxuICAgKiBpbmRleCBvZiBjdXJyZW50IGl0ZW0sIHVzZWQgdG8gaXRlcmF0ZSBvdmVyIHRoZSBjb2xsZWN0aW9uXHJcbiAgICovXHJcbiAgaW5kZXggPSAwO1xyXG5cclxuICBjb25zdHJ1Y3RvcihpdGVtczogTW9kZWxbXSA9IFtdKSB7XHJcbiAgICB0aGlzLml0ZW1zID0gaXRlbXM7XHJcbiAgICAvLyBAVE9ETyBBbGV4OiBUaGluayBhbmQgaW1wbGVtZW50IHNvbWUgc21hcnQgc29sdXRpb24gZm9yIGRlZmF1bHQgc29ydFxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSXRlcmF0b3IgdGhhdCBhbGxvdyB0byBpdGVyYXRlIGNvbGxlY3Rpb24gaXRlbXNcclxuICAgKi9cclxuICBbU3ltYm9sLml0ZXJhdG9yXSgpOiBJdGVyYXRvcjxNb2RlbD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaXRlbXMudmFsdWVzKCk7XHJcbiAgfVxyXG5cclxuICBjcmVhdGUoaXRlbXM6IE1vZGVsW10gPSBbXSk6IHRoaXMge1xyXG4gICAgcmV0dXJuIG5ldyAodGhpcy5jb25zdHJ1Y3RvciBhcyBhbnkpKGl0ZW1zKTtcclxuICB9XHJcblxyXG4gIGdldCBsZW5ndGgoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLml0ZW1zLmxlbmd0aDtcclxuICB9XHJcblxyXG4gIHRvQXJyYXkoKTogTW9kZWxbXSB7XHJcbiAgICByZXR1cm4gWy4uLnRoaXMuaXRlbXNdO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGZpcnN0KCk6IE1vZGVsIHtcclxuICAgIHJldHVybiBmaXJzdCh0aGlzLml0ZW1zKTtcclxuICB9XHJcblxyXG4gIGdldCBsYXN0KCk6IE1vZGVsIHtcclxuICAgIHJldHVybiBsYXN0KHRoaXMuaXRlbXMpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHByZXZpb3VzKCk6IE1vZGVsIHtcclxuICAgIHJldHVybiB0aGlzLml0ZW1zW3RoaXMuaXRlbXMubGVuZ3RoIC0gMl07XHJcbiAgfVxyXG5cclxuICByZXNldCgpOiBNb2RlbCB7XHJcbiAgICB0aGlzLmluZGV4ID0gMDtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5pdGVtc1t0aGlzLmluZGV4XTtcclxuICB9XHJcblxyXG4gIG5leHQoKTogTW9kZWwge1xyXG4gICAgaWYgKHRoaXMuaW5kZXggPCB0aGlzLmxlbmd0aCkge1xyXG4gICAgICB0aGlzLmluZGV4Kys7XHJcblxyXG4gICAgICByZXR1cm4gdGhpcy5pdGVtc1t0aGlzLmluZGV4XTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIGJhY2soKTogTW9kZWwge1xyXG4gICAgaWYgKHRoaXMuaW5kZXggPiAwKSB7XHJcbiAgICAgIHRoaXMuaW5kZXgtLTtcclxuXHJcbiAgICAgIHJldHVybiB0aGlzLml0ZW1zW3RoaXMuaW5kZXhdO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgZ2V0SWRzKCk6IG51bWJlcltdIHtcclxuICAgIHJldHVybiB0aGlzLml0ZW1zLm1hcCgoaXRlbTogTW9kZWwpOiBudW1iZXIgPT4gaXRlbVsnaWQnXSk7XHJcbiAgfVxyXG5cclxuICBtYXAoY2FsbGJhY2s6IChpdGVtOiBNb2RlbCkgPT4gYW55KTogYW55W10ge1xyXG4gICAgcmV0dXJuIHRoaXMuaXRlbXMubWFwKGNhbGxiYWNrKTtcclxuICB9XHJcblxyXG4gIG1hcEJ5KHBhdGg6IHN0cmluZyk6IGFueVtdIHtcclxuICAgIHJldHVybiB0aGlzLmZpbHRlckJ5KHBhdGgpLml0ZW1zLm1hcCgoaXRlbTogTW9kZWwpOiBhbnkgPT4gZ2V0KGl0ZW0sIHBhdGgpKVxyXG4gIH1cclxuXHJcbiAgc29ydEJ5KHBhdGhzOiBzdHJpbmcgfCBzdHJpbmdbXSA9IFsnaWQnXSwgb3JkZXI6IHN0cmluZyB8IHN0cmluZ1tdID0gWydkZXNjJ10pOiB0aGlzIHtcclxuICAgIHRoaXMuaXRlbXMgPSBvcmRlckJ5KHRoaXMuaXRlbXMsIHBhdGhzIGluc3RhbmNlb2YgQXJyYXkgPyBwYXRocyA6IFtwYXRoc10sIG9yZGVyIGluc3RhbmNlb2YgQXJyYXkgPyBvcmRlciA6IFtvcmRlcl0pO1xyXG5cclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgc29ydChjYWxsYmFjazogKGE6IE1vZGVsLCBiOiBNb2RlbCkgPT4gbnVtYmVyKTogdGhpcyB7XHJcbiAgICB0aGlzLml0ZW1zLnNvcnQoY2FsbGJhY2spO1xyXG5cclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IHRvdGFsIHN1bSBvZiBpdGVtcyBieSBmaWVsZFxyXG4gICAqL1xyXG4gIHN1bUJ5KHBhdGg6IHN0cmluZywgYWJzID0gZmFsc2UpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMucmVkdWNlKFxyXG4gICAgICAoc3VtOiBudW1iZXIsIGl0ZW06IE1vZGVsKTogbnVtYmVyID0+IHN1bSArIChhYnMgPyBNYXRoLmFicyhOdW1iZXIoZ2V0KGl0ZW0sIHBhdGgpKSkgOiBOdW1iZXIoZ2V0KGl0ZW0sIHBhdGgpKSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBncm91cEJ5KHBhdGggPSAnaWQnKTogQ29sbGVjdGlvbkRpY3Rpb25hcnk8dGhpcz4ge1xyXG4gICAgcmV0dXJuIG5ldyBDb2xsZWN0aW9uRGljdGlvbmFyeSh0aGlzLCBwYXRoKTtcclxuICB9XHJcblxyXG4gIGluZGV4QnkocGF0aCA9ICdpZCcpOiBEaWN0aW9uYXJ5PE1vZGVsPiB7XHJcbiAgICByZXR1cm4gbmV3IERpY3Rpb25hcnkodGhpcy5pdGVtcywgcGF0aCk7XHJcbiAgfVxyXG5cclxuICBmaWx0ZXIoY2FsbGJhY2s6IChpdGVtOiBNb2RlbCkgPT4gYm9vbGVhbik6IHRoaXMge1xyXG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlKHRoaXMuaXRlbXMuZmlsdGVyKGNhbGxiYWNrKSk7XHJcbiAgfVxyXG5cclxuICBmaWx0ZXJCeShwYXRoOiBzdHJpbmcsIHZhbHVlczogYW55ID0gbnVsbCk6IHRoaXMge1xyXG4gICAgaWYgKCF2YWx1ZXMpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyKChpdGVtOiBNb2RlbCkgPT4gISFnZXQoaXRlbSwgcGF0aCkpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLmZpbHRlcigoaXRlbTogTW9kZWwpID0+IChBcnJheS5pc0FycmF5KHZhbHVlcykgPyB2YWx1ZXMgOiBbdmFsdWVzXSkuaW5jbHVkZXMoZ2V0KGl0ZW0sIHBhdGgpKSk7XHJcbiAgfVxyXG5cclxuICBmaWx0ZXJCeVJhbmdlKHBhdGg6IHN0cmluZywgZnJvbTogYW55LCB0bzogYW55KTogdGhpcyB7XHJcbiAgICByZXR1cm4gdGhpcy5maWx0ZXIoKGl0ZW06IE1vZGVsKTogYm9vbGVhbiA9PiBnZXQoaXRlbSwgcGF0aCkgPj0gZnJvbSAmJiBnZXQoaXRlbSwgcGF0aCkgPD0gdG8pO1xyXG4gIH1cclxuXHJcbiAgZmlsdGVyQnlGaW5hbmNpYWxZZWFyKHBhdGhGcm9tOiBzdHJpbmcsIHBhdGhUbz86IHN0cmluZywgZmluYW5jaWFsWWVhcjogRmluYW5jaWFsWWVhciA9IG5ldyBGaW5hbmNpYWxZZWFyKCkpOiB0aGlzIHtcclxuICAgIGlmIChwYXRoVG8pIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyKFxyXG4gICAgICAgIG1vZGVsID0+IGdldChtb2RlbCwgcGF0aEZyb20pIDw9IGZpbmFuY2lhbFllYXIuZW5kRGF0ZSAmJiAhZ2V0KG1vZGVsLCBwYXRoVG8pIHx8IGdldChtb2RlbCwgcGF0aFRvKSA+PSBmaW5hbmNpYWxZZWFyLnN0YXJ0RGF0ZVxyXG4gICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLmZpbHRlckJ5UmFuZ2UocGF0aEZyb20sIGZpbmFuY2lhbFllYXIuc3RhcnREYXRlLCBmaW5hbmNpYWxZZWFyLmVuZERhdGUpO1xyXG4gIH1cclxuXHJcbiAgZmluZChjYWxsYmFjazogKGl0ZW06IE1vZGVsKSA9PiBib29sZWFuKTogTW9kZWwgfCBudWxsIHtcclxuICAgIHJldHVybiB0aGlzLml0ZW1zLmZpbmQoY2FsbGJhY2spO1xyXG4gIH1cclxuXHJcbiAgZmluZEJ5KHBhdGg6IHN0cmluZywgdmFsdWU6IGFueSk6IE1vZGVsIHwgbnVsbCB7XHJcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5maW5kKChtb2RlbDogTW9kZWwpID0+IHZhbHVlID09PSBnZXQobW9kZWwsIHBhdGgpKTtcclxuICB9XHJcblxyXG4gIGZpbmRJbmRleEJ5KHBhdGg6IHN0cmluZywgdmFsdWU6IGFueSk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5maW5kSW5kZXgoKGl0ZW06IE1vZGVsKSA9PiBnZXQoaXRlbSwgcGF0aCkgPT09IHZhbHVlKSA/PyBudWxsO1xyXG4gIH1cclxuXHJcbiAgcHVzaCguLi5pdGVtczogTW9kZWxbXSk6IHRoaXMge1xyXG4gICAgdGhpcy5pdGVtcy5wdXNoKC4uLml0ZW1zKTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5jcmVhdGUodGhpcy5pdGVtcyk7XHJcbiAgfVxyXG5cclxuICByZW1vdmUoLi4uaXRlbXM6IE1vZGVsW10pOiB0aGlzIHtcclxuICAgIGl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgICAgY29uc3QgaW5kZXg6IG51bWJlciA9IHRoaXMuZmluZEluZGV4QnkoJ2lkJywgaXRlbS5pZCk7XHJcbiAgICAgIGlmIChpbmRleCA8IDApIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuaXRlbXMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQFRPRE8gaXQncyBmaWx0ZXIsIG5vdCByZW1vdmVcclxuICAgKi9cclxuICByZW1vdmVCeShwYXRoOiBzdHJpbmcsIHZhbHVlczogYW55KTogdGhpcyB7XHJcbiAgICByZXR1cm4gdGhpcy5maWx0ZXIoKGl0ZW06IE1vZGVsKSA9PiAhKEFycmF5LmlzQXJyYXkodmFsdWVzKSA/IHZhbHVlcyA6IFt2YWx1ZXNdKS5pbmNsdWRlcyhnZXQoaXRlbSwgcGF0aCkpKTtcclxuICB9XHJcblxyXG4gIHJlcGxhY2VCeShwYXRoOiBzdHJpbmcsIHZhbHVlOiBhbnksIGl0ZW06IE1vZGVsKTogdGhpcyB7XHJcbiAgICBjb25zdCBpbmRleDogbnVtYmVyID0gdGhpcy5maW5kSW5kZXhCeShwYXRoLCB2YWx1ZSk7XHJcbiAgICBpZiAoaW5kZXggPj0gMCkge1xyXG4gICAgICB0aGlzLml0ZW1zLnNwbGljZShpbmRleCwgMSwgaXRlbSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlKHRoaXMuaXRlbXMpO1xyXG4gIH1cclxuXHJcbiAgZGlmZihpdGVtczogTW9kZWxbXSk6IHRoaXMge1xyXG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyKChtb2RlbDogTW9kZWwpID0+ICFpdGVtcy5tYXAoKGl0ZW06IE1vZGVsKSA9PiBpdGVtLmlkKS5pbmNsdWRlcyhtb2RlbC5pZCkpO1xyXG4gIH1cclxuXHJcbiAgbWluQnkocGF0aDogc3RyaW5nKTogTW9kZWwge1xyXG4gICAgcmV0dXJuIHRoaXMuaXRlbXMucmVkdWNlKChwcmV2OiBNb2RlbCwgY3VycmVudDogTW9kZWwpID0+IChnZXQocHJldiwgcGF0aCkgPCBnZXQoY3VycmVudCwgcGF0aCkgPyBwcmV2IDogY3VycmVudCkpO1xyXG4gIH1cclxuXHJcbiAgbWF4QnkocGF0aDogc3RyaW5nKTogTW9kZWwge1xyXG4gICAgcmV0dXJuIHRoaXMuaXRlbXMucmVkdWNlKChwcmV2OiBNb2RlbCwgY3VycmVudDogTW9kZWwpID0+IChnZXQocHJldiwgcGF0aCkgPiBnZXQoY3VycmVudCwgcGF0aCkgPyBwcmV2IDogY3VycmVudCkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogZmxvYXQgbWF0aCBpc3N1ZXMgaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMTI1MTEwNTcvZmxvYXQtc3VtLXdpdGgtamF2YXNjcmlwdFxyXG4gICAqL1xyXG4gIHJlZHVjZShjYWxsYmFjazogKHN1bTogbnVtYmVyLCBpdGVtOiBNb2RlbCkgPT4gbnVtYmVyLCBpbml0ID0gMCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gK3RoaXMuaXRlbXMucmVkdWNlKGNhbGxiYWNrLCBpbml0KS50b0ZpeGVkKDEwKTtcclxuICB9XHJcblxyXG4gIHNsaWNlKGZyb206IG51bWJlciwgdG86IG51bWJlcik6IHRoaXMge1xyXG4gICAgdGhpcy5pdGVtcyA9IHRoaXMuaXRlbXMuc2xpY2UoZnJvbSwgdG8pO1xyXG5cclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -8,7 +8,7 @@ export class SoleInvoiceCollection extends Collection {
8
8
  return this.filter((invoice) => invoice.isUnpaid());
9
9
  }
10
10
  getPaid() {
11
- return this.filter((invoice) => invoice.isPaid());
11
+ return this.filter((invoice) => invoice.isAllocated());
12
12
  }
13
13
  getPaidCash() {
14
14
  return this.filter((invoice) => invoice.isPaidCash());
@@ -20,4 +20,4 @@ export class SoleInvoiceCollection extends Collection {
20
20
  return flatten(this.items.map((invoice) => invoice.getTransactionsIds()));
21
21
  }
22
22
  }
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29sZS1pbnZvaWNlLmNvbGxlY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvY29sbGVjdGlvbnMvc29sZS9zb2xlLWludm9pY2UuY29sbGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sT0FBTyxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxVQUF1QjtJQUNoRSxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBb0IsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUE7SUFDbkUsQ0FBQztJQUVELFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFvQixFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQTtJQUNsRSxDQUFDO0lBRUQsT0FBTztRQUNMLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQW9CLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFBO0lBQ2hFLENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBb0IsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUE7SUFDcEUsQ0FBQztJQUVELFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFvQixFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQTtJQUNuRSxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBb0IsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbGxlY3Rpb24gfSBmcm9tICcuLi9jb2xsZWN0aW9uJztcbmltcG9ydCB7IFNvbGVJbnZvaWNlIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCBmbGF0dGVuIGZyb20gJ2xvZGFzaC9mbGF0dGVuJztcblxuZXhwb3J0IGNsYXNzIFNvbGVJbnZvaWNlQ29sbGVjdGlvbiBleHRlbmRzIENvbGxlY3Rpb248U29sZUludm9pY2U+IHtcbiAgZ2V0T3ZlcmR1ZSgpOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXIoKGludm9pY2U6IFNvbGVJbnZvaWNlKSA9PiBpbnZvaWNlLmlzT3ZlcmR1ZSgpKVxuICB9XG5cbiAgZ2V0VW5wYWlkKCk6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLmZpbHRlcigoaW52b2ljZTogU29sZUludm9pY2UpID0+IGludm9pY2UuaXNVbnBhaWQoKSlcbiAgfVxuXG4gIGdldFBhaWQoKTogdGhpcyB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyKChpbnZvaWNlOiBTb2xlSW52b2ljZSkgPT4gaW52b2ljZS5pc1BhaWQoKSlcbiAgfVxuXG4gIGdldFBhaWRDYXNoKCk6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLmZpbHRlcigoaW52b2ljZTogU29sZUludm9pY2UpID0+IGludm9pY2UuaXNQYWlkQ2FzaCgpKVxuICB9XG5cbiAgZ2V0UGVuZGluZygpOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXIoKGludm9pY2U6IFNvbGVJbnZvaWNlKSA9PiBpbnZvaWNlLmlzUGVuZGluZygpKVxuICB9XG5cbiAgZ2V0VHJhbnNhY3Rpb25zSWRzKCk6IG51bWJlcltdIHtcbiAgICByZXR1cm4gZmxhdHRlbih0aGlzLml0ZW1zLm1hcCgoaW52b2ljZTogU29sZUludm9pY2UpID0+IGludm9pY2UuZ2V0VHJhbnNhY3Rpb25zSWRzKCkpKTtcbiAgfVxufVxuIl19
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29sZS1pbnZvaWNlLmNvbGxlY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvY29sbGVjdGlvbnMvc29sZS9zb2xlLWludm9pY2UuY29sbGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sT0FBTyxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxVQUF1QjtJQUNoRSxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBb0IsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUE7SUFDbkUsQ0FBQztJQUVELFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFvQixFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQTtJQUNsRSxDQUFDO0lBRUQsT0FBTztRQUNMLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQW9CLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFBO0lBQ3JFLENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBb0IsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUE7SUFDcEUsQ0FBQztJQUVELFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFvQixFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQTtJQUNuRSxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBb0IsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbGxlY3Rpb24gfSBmcm9tICcuLi9jb2xsZWN0aW9uJztcbmltcG9ydCB7IFNvbGVJbnZvaWNlIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCBmbGF0dGVuIGZyb20gJ2xvZGFzaC9mbGF0dGVuJztcblxuZXhwb3J0IGNsYXNzIFNvbGVJbnZvaWNlQ29sbGVjdGlvbiBleHRlbmRzIENvbGxlY3Rpb248U29sZUludm9pY2U+IHtcbiAgZ2V0T3ZlcmR1ZSgpOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXIoKGludm9pY2U6IFNvbGVJbnZvaWNlKSA9PiBpbnZvaWNlLmlzT3ZlcmR1ZSgpKVxuICB9XG5cbiAgZ2V0VW5wYWlkKCk6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLmZpbHRlcigoaW52b2ljZTogU29sZUludm9pY2UpID0+IGludm9pY2UuaXNVbnBhaWQoKSlcbiAgfVxuXG4gIGdldFBhaWQoKTogdGhpcyB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyKChpbnZvaWNlOiBTb2xlSW52b2ljZSkgPT4gaW52b2ljZS5pc0FsbG9jYXRlZCgpKVxuICB9XG5cbiAgZ2V0UGFpZENhc2goKTogdGhpcyB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyKChpbnZvaWNlOiBTb2xlSW52b2ljZSkgPT4gaW52b2ljZS5pc1BhaWRDYXNoKCkpXG4gIH1cblxuICBnZXRQZW5kaW5nKCk6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLmZpbHRlcigoaW52b2ljZTogU29sZUludm9pY2UpID0+IGludm9pY2UuaXNQZW5kaW5nKCkpXG4gIH1cblxuICBnZXRUcmFuc2FjdGlvbnNJZHMoKTogbnVtYmVyW10ge1xuICAgIHJldHVybiBmbGF0dGVuKHRoaXMuaXRlbXMubWFwKChpbnZvaWNlOiBTb2xlSW52b2ljZSkgPT4gaW52b2ljZS5nZXRUcmFuc2FjdGlvbnNJZHMoKSkpO1xuICB9XG59XG4iXX0=
@@ -25,6 +25,9 @@ export class TransactionCollection extends ExportableCollection {
25
25
  get amount() {
26
26
  return this.sumBy('amount');
27
27
  }
28
+ getFindAndMatch(allocations) {
29
+ return this.filter((transaction) => transaction.canFindAndMatch(allocations));
30
+ }
28
31
  getUnallocated(allocations) {
29
32
  return new TransactionCollection(this.items.filter((transaction) => !transaction.isAllocated(allocations)));
30
33
  }
@@ -244,4 +247,4 @@ export class TransactionCollection extends ExportableCollection {
244
247
  return incomes.calculateAllocatedClaimAmount(allocations) + expenses.sumBy('claimAmount');
245
248
  }
246
249
  }
247
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9jb2xsZWN0aW9ucy90cmFuc2FjdGlvbi90cmFuc2FjdGlvbi5jb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQTBFLE1BQU0sY0FBYyxDQUFDO0FBRXJILE9BQU8sRUFBNkIscUJBQXFCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM3RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDM0UsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBSWxFOztHQUVHO0FBQ0gsTUFBTSxPQUFPLHFCQUFzQixTQUFRLG9CQUFpQztJQUMxRTs7T0FFRztJQUNILFlBQVksZUFBOEIsRUFBRSxFQUFFLGdCQUFnQyxFQUFFO1FBQzlFLEtBQUssQ0FBQyxDQUFDLEdBQUcsWUFBWSxFQUFFLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pHLENB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QUMsR0FBVyxFQUFFLFdBQVcsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLFdBQVcsQ0FBQyx1QkFBdUIsQ0FBQyxXQUFXLENBQUMsQ0FDckYsR0FBRyxhQUFhLENBQUMsUUFBUSxDQUFDO0lBQzdCLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxXQUE0QztRQUM3RCxPQUFPLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDeEUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsc0JBQXNCLENBQUMsV0FBNEMsRUFBRSxhQUFxQixJQUFJO1FBQzVGLE1BQU0sWUFBWSxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNsRixNQUFNLFFBQVEsR0FBRyxZQUFZLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUN2RCxNQUFNLE9BQU8sR0FBRyxZQUFZLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUVyRCxPQUFPLE9BQU8sQ0FBQyw2QkFBNkIsQ0FBQyxXQUFXLENBQUMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzVGLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYXJ0QWNjb3VudHMsIFRyYW5zYWN0aW9uLCBUcmFuc2FjdGlvbkFsbG9jYXRpb24sIFRyYW5zYWN0aW9uTWV0YUZpZWxkLCBWZWhpY2xlQ2xhaW0gfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25BbGxvY2F0aW9uQ29sbGVjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24tYWxsb2NhdGlvbi5jb2xsZWN0aW9uJztcbmltcG9ydCB7IENoYXJ0QWNjb3VudHNDYXRlZ29yeUVudW0sIENoYXJ0QWNjb3VudHNMaXN0RW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zJztcbmltcG9ydCB7IFRhbmtUeXBlRW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zL3RhbmstdHlwZS5lbnVtJztcbmltcG9ydCB7IEV4cG9ydGFibGVDb2xsZWN0aW9uIH0gZnJvbSAnLi4vZXhwb3J0YWJsZS5jb2xsZWN0aW9uJztcbmltcG9ydCB7IHBsYWluVG9DbGFzcyB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IEV4cG9ydENlbGwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZXhwb3J0L2V4cG9ydC1jZWxsJztcbmltcG9ydCB7IEV4cG9ydENlbGxUeXBlRW51bSB9IGZyb20gJy4uLy4uL21vZGVscy9leHBvcnQvZXhwb3J0LWNlbGwtdHlwZS5lbnVtJztcbmltcG9ydCB7IENvbGxlY3Rpb24gfSBmcm9tICcuLi9jb2xsZWN0aW9uJztcbmltcG9ydCB7IENoYXJ0RGF0YSB9IGZyb20gJy4uLy4uL21vZGVscy9jaGFydC9jaGFydC1kYXRhJztcbmltcG9ydCB7IEZpbmFuY2lhbFllYXIgfSBmcm9tICcuLi8uLi9tb2RlbHMvZmluYW5jaWFsLXllYXIvZmluYW5jaWFsLXllYXInO1xuaW1wb3J0IHsgTU9OVEhTIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2ZpbmFuY2lhbC15ZWFyL21vbnRocy5jb25zdCc7XG5pbXBvcnQgeyBEZXByZWNpYXRpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMvZGVwcmVjaWF0aW9uL2RlcHJlY2lhdGlvbic7XG5pbXBvcnQgeyBTb2xlSW52b2ljZUNvbGxlY3Rpb24gfSBmcm9tICcuLi9zb2xlJztcblxuLyoqXG4gKiBDb2xsZWN0aW9uIG9mIHRyYW5zYWN0aW9uc1xuICovXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25Db2xsZWN0aW9uIGV4dGVuZHMgRXhwb3J0YWJsZUNvbGxlY3Rpb248VHJhbnNhY3Rpb24+IHtcbiAgLyoqXG4gICAqIHdlIHVzZSBkZXByZWNpYXRpb25zIGFzIGV4cGVuc2UgdHJhbnNhY3Rpb25zIGEgbG90XG4gICAqL1xuICBjb25zdHJ1Y3Rvcih0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uW10gPSBbXSwgZGVwcmVjaWF0aW9uczogRGVwcmVjaWF0aW9uW10gPSBbXSkge1xuICAgIHN1cGVyKFsuLi50cmFuc2FjdGlvbnMsIC4uLmRlcHJlY2lhdGlvbnMubWFwKChkZXByZWNpYXRpb24pID0+IGRlcHJlY2lhdGlvbi50b1RyYW5zYWN0aW9uKCkpXSk7XG4gIH1cblxuICBnZXRTb2xlVHJhbnNhY3Rpb25zKCk6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLmZpbHRlcigodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKSA9PiB0cmFuc2FjdGlvbi5pc1NvbGVUYW5rKCkpO1xuICB9XG5cbiAgZ2V0IGFtb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnN1bUJ5KCdhbW91bnQnKTtcbiAgfVxuXG4gIGdldFVuYWxsb2NhdGVkKGFsbG9jYXRpb25zOiBUcmFuc2FjdGlvbkFsbG9jYXRpb25Db2xsZWN0aW9uKTogVHJhbnNhY3Rpb25Db2xsZWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IFRyYW5zYWN0aW9uQ29sbGVjdGlvbihcbiAgICAgIHRoaXMuaXRlbXMuZmlsdGVyKCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiBib29sZWFuID0+ICF0cmFuc2FjdGlvbi5pc0FsbG9jYXRlZChhbGxvY2F0aW9ucykpXG4gICAgKTtcbiAgfVxuXG4gIGdldFVuYWxsb2NhdGVkQW1vdW50KGFsbG9jYXRpb25zOiBUcmFuc2FjdGlvbkFsbG9jYXRpb25Db2xsZWN0aW9uKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5yZWR1Y2UoKHN1bTogbnVtYmVyLCB0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiBudW1iZXIgPT5cbiAgICAgIHN1bSArIHRyYW5zYWN0aW9uLmdldFVuYWxsb2NhdGVkQW1vdW50KGFsbG9jYXRpb25zLmZpbHRlckJ5KCd0cmFuc2FjdGlvbi5pZCcsIHRyYW5zYWN0aW9uLmlkKSksIDApO1xuICB9XG5cbiAgLyoqXG4gICAqIGdldCBkYXRlIG9mIHRoZSBsYXN0IHRyYW5zYWN0aW9uXG4gICAqL1xuICBnZXRMYXN0VHJhbnNhY3Rpb25EYXRlKCk6IERhdGUge1xuICAgIHJldHVybiBuZXcgRGF0ZShNYXRoLm1heC5hcHBseShNYXRoLCB0aGlzLml0ZW1zLm1hcCgodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKSA9PiB0cmFuc2FjdGlvbi5kYXRlKSkpO1xuICB9XG5cbiAgZ2V0IGNsYWltQW1vdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMucmVkdWNlKChzdW06IG51bWJlciwgdHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKSA9PiBzdW0gKyB0cmFuc2FjdGlvbi5jbGFpbUFtb3VudCwgMCk7XG4gIH1cblxuICBnZXQgZ3Jvc3NDbGFpbUFtb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLml0ZW1zLnJlZHVjZSgoc3VtOiBudW1iZXIsIHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbikgPT4gc3VtICsgdHJhbnNhY3Rpb24uZ3Jvc3NDbGFpbUFtb3VudCwgMCk7XG4gIH1cblxuICBnZXQgZ3Jvc3NBbW91bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5yZWR1Y2UoKHN1bTogbnVtYmVyLCB0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pID0+IHN1bSArIHRyYW5zYWN0aW9uLmdyb3NzQW1vdW50LCAwKTtcbiAgfVxuXG4gIGdldEJ5Q2hhcnRBY2NvdW50c0NhdGVnb3JpZXMoY2F0ZWdvcmllczogQ2hhcnRBY2NvdW50c0NhdGVnb3J5RW51bVtdKTogVHJhbnNhY3Rpb25Db2xsZWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IFRyYW5zYWN0aW9uQ29sbGVjdGlvbihcbiAgICAgIHRoaXMuaXRlbXMuZmlsdGVyKCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiBib29sZWFuID0+IGNhdGVnb3JpZXMuaW5jbHVkZXModHJhbnNhY3Rpb24uY2hhcnRBY2NvdW50cy5jYXRlZ29yeSkpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdHJhbnNhY3Rpb25zIGJ5IG1vbnRoXG4gICAqIEBwYXJhbSBtb250aEluZGV4IGJ5IHdoaWNoIGRlc2lyZWQgbW9udGggc2hvdWxkIGJlIHRha2VuXG4gICAqL1xuICBnZXRCeU1vbnRoKG1vbnRoSW5kZXg6IG51bWJlcik6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2FjdGlvbkNvbGxlY3Rpb24odGhpcy5pdGVtcy5maWx0ZXIoKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IGJvb2xlYW4gPT5cbiAgICAgIHRyYW5zYWN0aW9uLmRhdGUuZ2V0TW9udGgoKSA9PT0gbW9udGhJbmRleFxuICAgICkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBjb2xsZWN0aW9uIG9mIHRyYW5zYWN0aW9ucyBtZXRhIGZpZWxkc1xuICAgKi9cbiAgZ2V0VHJhbnNhY3Rpb25zTWV0YUZpZWxkcygpOiBDb2xsZWN0aW9uPFRyYW5zYWN0aW9uTWV0YUZpZWxkPiB7XG4gICAgY29uc3QgbWV0YUZpZWxkc0FycmF5OiBUcmFuc2FjdGlvbk1ldGFGaWVsZFtdID0gW107XG5cbiAgICB0aGlzLml0ZW1zLmZvckVhY2goKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbikgPT4ge1xuICAgICAgbWV0YUZpZWxkc0FycmF5LnB1c2goLi4udHJhbnNhY3Rpb24ubWV0YUZpZWxkcyk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gbmV3IENvbGxlY3Rpb248VHJhbnNhY3Rpb25NZXRhRmllbGQ+KG1ldGFGaWVsZHNBcnJheSk7XG4gIH1cblxuICBnZXRJbmNvbWVUcmFuc2FjdGlvbnMoKTogVHJhbnNhY3Rpb25Db2xsZWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IFRyYW5zYWN0aW9uQ29sbGVjdGlvbihcbiAgICAgIHRoaXMuaXRlbXMuZmlsdGVyKCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiBib29sZWFuID0+IHRyYW5zYWN0aW9uLmlzSW5jb21lKCkpXG4gICAgKTtcbiAgfVxuXG4gIGdldEV4cGVuc2VUcmFuc2FjdGlvbnMoKTogVHJhbnNhY3Rpb25Db2xsZWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IFRyYW5zYWN0aW9uQ29sbGVjdGlvbihcbiAgICAgIHRoaXMuaXRlbXMuZmlsdGVyKCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiBib29sZWFuID0+IHRyYW5zYWN0aW9uLmlzRXhwZW5zZSgpICYmICF0cmFuc2FjdGlvbi5pc0ludGVyZXN0KCkpXG4gICAgKTtcbiAgfVxuXG4gIGdldCBjbGFpbUluY29tZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldEluY29tZVRyYW5zYWN0aW9ucygpLmNsYWltQW1vdW50O1xuICB9XG5cbiAgZ2V0IGNsYWltRXhwZW5zZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldEV4cGVuc2VUcmFuc2FjdGlvbnMoKS5jbGFpbUFtb3VudDtcbiAgfVxuXG4gIGdldEludGVyZXN0VHJhbnNhY3Rpb25zKCk6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2FjdGlvbkNvbGxlY3Rpb24oXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogYm9vbGVhbiA9PiB0cmFuc2FjdGlvbi5pc0ludGVyZXN0KCkpXG4gICAgKTtcbiAgfVxuXG4gIGdldCBjbGFpbUludGVyZXN0KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0SW50ZXJlc3RUcmFuc2FjdGlvbnMoKS5jbGFpbUFtb3VudDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgY29sbGVjdGlvbiBvZiB0cmFuc2FjdGlvbnMgYW5kIHByb3BlcnRpZXMgZmlsdGVyZWQgYnkgcHJvcGVydGllcyBpZHNcbiAgICogQHBhcmFtIGlkcyBJZHMgb2YgcHJvcGVydGllcyBmb3IgZmlsdGVyXG4gICAqL1xuICBnZXRCeVByb3BlcnRpZXNJZHMoaWRzOiBudW1iZXJbXSk6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2FjdGlvbkNvbGxlY3Rpb24oXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogYm9vbGVhbiA9PiBpZHMuaW5jbHVkZXModHJhbnNhY3Rpb24ucHJvcGVydHk/LmlkKSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBuZXcgY29sbGVjdGlvbiBmaWx0ZXJlZCBieSBpbmNvbWUgc291cmNlIGlkXG4gICAqIEBwYXJhbSBpZCBpZCBvZiBpbmNvbWUgc291cmNlIGZvciBmaWx0ZXJcbiAgICovXG4gIGdldEJ5SW5jb21lU291cmNlSWQoaWQ6IG51bWJlcik6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2FjdGlvbkNvbGxlY3Rpb24oXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogYm9vbGVhbiA9PiB0cmFuc2FjdGlvbi5pbmNvbWVTb3VyY2U/LmlkID09PSBpZClcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBuZXcgY29sbGVjdGlvbiBmaWx0ZXJlZCBieSBjaGFydCBhY2NvdW50cyBjYXRlZ29yeVxuICAgKiBAcGFyYW0gY2F0ZWdvcnkgQ2hhcnQgYWNjb3VudHMgY2F0ZWdvcnkgdmFsdWVcbiAgICovXG4gIGdldEJ5Q2hhcnRBY2NvdW50c0NhdGVnb3J5KGNhdGVnb3J5OiBDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtKTogVHJhbnNhY3Rpb25Db2xsZWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IFRyYW5zYWN0aW9uQ29sbGVjdGlvbihcbiAgICAgIHRoaXMuaXRlbXMuZmlsdGVyKCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiBib29sZWFuID0+IHRyYW5zYWN0aW9uLmNoYXJ0QWNjb3VudHMuY2F0ZWdvcnkgPT09IGNhdGVnb3J5KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IG5ldyBjb2xsZWN0aW9uIG9mIHByb3BlcnR5IHRyYW5zYWN0aW9uc1xuICAgKi9cbiAgZ2V0UHJvcGVydHlUcmFuc2FjdGlvbnMoKTogVHJhbnNhY3Rpb25Db2xsZWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IFRyYW5zYWN0aW9uQ29sbGVjdGlvbihcbiAgICAgIHRoaXMuaXRlbXMuZmlsdGVyKCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiBib29sZWFuID0+IHRyYW5zYWN0aW9uLmlzUHJvcGVydHlUYW5rKCkpXG4gICAgKTtcbiAgfVxuXG4gIGdldERlYml0VHJhbnNhY3Rpb25zKCk6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2FjdGlvbkNvbGxlY3Rpb24oXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogYm9vbGVhbiA9PiB0cmFuc2FjdGlvbi5pc0RlYml0KCkpXG4gICAgKTtcbiAgfVxuXG4gIGdldENyZWRpdFRyYW5zYWN0aW9ucygpOiBUcmFuc2FjdGlvbkNvbGxlY3Rpb24ge1xuICAgIHJldHVybiBuZXcgVHJhbnNhY3Rpb25Db2xsZWN0aW9uKFxuICAgICAgdGhpcy5pdGVtcy5maWx0ZXIoKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IGJvb2xlYW4gPT4gdHJhbnNhY3Rpb24uaXNDcmVkaXQoKSlcbiAgICApO1xuICB9XG5cbiAgZ2V0QnlBbGxvY2F0aW9ucyhhbGxvY2F0aW9uczogVHJhbnNhY3Rpb25BbGxvY2F0aW9uQ29sbGVjdGlvbik6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2FjdGlvbkNvbGxlY3Rpb24oXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogYm9vbGVhbiA9PiBhbGxvY2F0aW9ucy5oYXNUcmFuc2FjdGlvbih0cmFuc2FjdGlvbikpXG4gICAgKTtcbiAgfVxuXG4gIHNldEFsbG9jYXRlZENsYWltQW1vdW50KGFsbG9jYXRpb25zOiBUcmFuc2FjdGlvbkFsbG9jYXRpb25Db2xsZWN0aW9uLCBpbnZvaWNlczogU29sZUludm9pY2VDb2xsZWN0aW9uKTogdGhpcyB7XG4gICAgY29uc3QgYWxsb2NhdGlvbnNCeVRyYW5zYWN0aW9uID0gYWxsb2NhdGlvbnMuZ3JvdXBCeSgndHJhbnNhY3Rpb24uaWQnKTtcbiAgICBjb25zdCBwYWlkQ2FjaGVUcmFuc2FjdGlvbnNJZHMgPSBpbnZvaWNlcy5nZXRQYWlkQ2FzaCgpLmdldFRyYW5zYWN0aW9uc0lkcygpO1xuICAgIHRoaXMuaXRlbXMuZm9yRWFjaCgodHJhbnNhY3Rpb24pID0+IHtcbiAgICAgIC8vIGZvciBwYWlkQ2FzaCBpbnZvaWNlcyB3ZSBoYXZlbid0IGFsbG9jYXRpb25zIGFuZCBzaG91bGQgdXNlIGp1c3QgY2xhaW0gYW1vdW50XG4gICAgICBpZiAocGFpZENhY2hlVHJhbnNhY3Rpb25zSWRzLmluY2x1ZGVzKHRyYW5zYWN0aW9uLmlkKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHRyYW5zYWN0aW9uLmNsYWltQW1vdW50ID0gdHJhbnNhY3Rpb24uZ2V0QWxsb2NhdGVkQ2xhaW1BbW91bnQoYWxsb2NhdGlvbnNCeVRyYW5zYWN0aW9uLmdldCh0cmFuc2FjdGlvbi5pZCkpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRyYW5zYWN0aW9ucyByZWxhdGVkIHRvIFZlaGljbGUgY2F0ZWdvcnlcbiAgICovXG4gIGdldFZlaGljbGVUcmFuc2FjdGlvbnMoKTogdGhpcyB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlKFxuICAgICAgdGhpcy5pdGVtcy5maWx0ZXIoKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IGJvb2xlYW4gPT4gdHJhbnNhY3Rpb24uaXNWZWhpY2xlVHJhbnNhY3Rpb24oKSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBuZXcgdHJhbnNhY3Rpb24gY29sbGVjdGlvbiBmaWx0ZXJlZCBieSB0YW5rIHR5cGVcbiAgICovXG4gIGdldEJ5VGFua1R5cGUodGFua1R5cGU6IFRhbmtUeXBlRW51bSk6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZShcbiAgICAgIHRoaXMuaXRlbXMuZmlsdGVyKCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiBib29sZWFuID0+IHtcbiAgICAgICAgc3dpdGNoICh0YW5rVHlwZSkge1xuICAgICAgICAgIGNhc2UgVGFua1R5cGVFbnVtLlBST1BFUlRZOlxuICAgICAgICAgICAgcmV0dXJuIHRyYW5zYWN0aW9uLmlzUHJvcGVydHlUYW5rKCk7XG4gICAgICAgICAgY2FzZSBUYW5rVHlwZUVudW0uV09SSzpcbiAgICAgICAgICAgIHJldHVybiB0cmFuc2FjdGlvbi5pc1dvcmtUYW5rKCk7XG4gICAgICAgICAgY2FzZSBUYW5rVHlwZUVudW0uU09MRTpcbiAgICAgICAgICAgIHJldHVybiB0cmFuc2FjdGlvbi5pc1NvbGVUYW5rKCk7XG4gICAgICAgICAgLy8gVHJhbnNhY3Rpb24gbWF5IGJlIG5vdCByZWxhdGVkIHRvIGFueSB0YW5rIHR5cGUgKHBlcnNvbmFsKVxuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGdldEV4cG9ydEhlYWRlcigpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIFsnRGF0ZScsICdEZXNjcmlwdGlvbicsICdEZWJpdCcsICdDcmVkaXQnXTtcbiAgfVxuXG4gIGdldEV4cG9ydEZvb3RlcigpOiBFeHBvcnRDZWxsW10ge1xuICAgIHJldHVybiBbXG4gICAgICBwbGFpblRvQ2xhc3MoRXhwb3J0Q2VsbCwgeyB2YWx1ZTogJ1RvdGFsJywgdHlwZTogRXhwb3J0Q2VsbFR5cGVFbnVtLlNUUklORyB9KSxcbiAgICAgIHBsYWluVG9DbGFzcyhFeHBvcnRDZWxsLCB7IHZhbHVlOiAnJywgdHlwZTogRXhwb3J0Q2VsbFR5cGVFbnVtLlNUUklORyB9KSxcbiAgICAgIHBsYWluVG9DbGFzcyhFeHBvcnRDZWxsLCB7IHZhbHVlOiB0aGlzLnN1bUJ5KCdkZWJpdCcpLCB0eXBlOiBFeHBvcnRDZWxsVHlwZUVudW0uQ1VSUkVOQ1kgfSksXG4gICAgICBwbGFpblRvQ2xhc3MoRXhwb3J0Q2VsbCwgeyB2YWx1ZTogdGhpcy5zdW1CeSgnY3JlZGl0JyksIHR5cGU6IEV4cG9ydENlbGxUeXBlRW51bS5DVVJSRU5DWSB9KVxuICAgIF07XG4gIH1cblxuICBnZXRFeHBvcnRCb2R5KCk6IEV4cG9ydENlbGxbXVtdIHtcbiAgICAvKipcbiAgICAgKiBEZXNjcmlwdGlvbiBpcyBub3QgYSByZXF1aXJlZCBmaWVsZCBmb3IgdHJhbnNhY3Rpb25zLlxuICAgICAqIGlmIHRoZXJlIGlzIG5vIGRlc2NyaXB0aW9uLCB0aGVuIGFkZCBhbiBlbXB0eSBsaW5lIHNvIHRoYXQgdGhlcmUgYXJlIG5vIGVycm9ycyB3aGVuIHRyYW5zbGF0ZWQgaW50byBhIHN0cmluZy5cbiAgICAgKi9cbiAgICByZXR1cm4gdGhpcy5pdGVtcy5tYXAoKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbikgPT4gW1xuICAgICAgcGxhaW5Ub0NsYXNzKEV4cG9ydENlbGwsIHsgdmFsdWU6IHRyYW5zYWN0aW9uLmRhdGUsIHR5cGU6IEV4cG9ydENlbGxUeXBlRW51bS5EQVRFIH0pLFxuICAgICAgcGxhaW5Ub0NsYXNzKEV4cG9ydENlbGwsIHsgdmFsdWU6IHRyYW5zYWN0aW9uLmRlc2NyaXB0aW9uID8/ICctJywgdHlwZTogRXhwb3J0Q2VsbFR5cGVFbnVtLlNUUklORyB9KSxcbiAgICAgIHBsYWluVG9DbGFzcyhFeHBvcnRDZWxsLCB7IHZhbHVlOiB0cmFuc2FjdGlvbi5kZWJpdCwgdHlwZTogRXhwb3J0Q2VsbFR5cGVFbnVtLkNVUlJFTkNZIH0pLFxuICAgICAgcGxhaW5Ub0NsYXNzKEV4cG9ydENlbGwsIHsgdmFsdWU6IHRyYW5zYWN0aW9uLmNyZWRpdCwgdHlwZTogRXhwb3J0Q2VsbFR5cGVFbnVtLkNVUlJFTkNZIH0pXG4gICAgXSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGxpc3Qgb2YgdmVoaWNsZSB0cmFuc2FjdGlvbnMgZmlsdGVyZWQgYnkgdmVoaWNsZSBjbGFpbVxuICAgKi9cbiAgZ2V0QnlWZWhpY2xlQ2xhaW0odmVoaWNsZUNsYWltPzogVmVoaWNsZUNsYWltKTogdGhpcyB7XG4gICAgaWYgKCF2ZWhpY2xlQ2xhaW0pIHtcbiAgICAgIHJldHVybiB0aGlzLmNyZWF0ZShbXSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZlaGljbGVDbGFpbS5pc1NvbGVUYW5rKClcbiAgICAgIC8vIHNvbGUgdGFuayBtYXkgaGF2ZSBtdWx0aXBsZSB2ZWhpY2xlIGNsYWltcywgc28gd2UgbmVlZCB0byBmaWx0ZXIgYnkgYnVzaW5lc3MuaWRcbiAgICAgID8gdGhpcy5nZXRWZWhpY2xlVHJhbnNhY3Rpb25zKCkuZmlsdGVyQnkoJ2J1c2luZXNzLmlkJywgdmVoaWNsZUNsYWltLmJ1c2luZXNzLmlkKVxuICAgICAgLy8gd29yayB0YW5rIG1heSBoYXZlIG9ubHkgb25lIHZlaGljbGUgY2xhaW0sIHNvIHdlIG5lZWQgdG8gZmlsdGVyIGJ5IHRhbmsgdHlwZVxuICAgICAgOiB0aGlzLmdldFZlaGljbGVUcmFuc2FjdGlvbnMoKS5maWx0ZXJCeSgndGFua1R5cGUnLCBUYW5rVHlwZUVudW0uV09SSyk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGxpc3Qgb2YgdmVoaWNsZSB0cmFuc2FjdGlvbnMgZXhjZXB0IEtNUyB0cmFuc2FjdGlvbnNcbiAgICovXG4gIGdldExvZ2Jvb2tUcmFuc2FjdGlvbnMoKTogdGhpcyB7XG4gICAgcmV0dXJuIHRoaXNcbiAgICAgIC5nZXRWZWhpY2xlVHJhbnNhY3Rpb25zKClcbiAgICAgIC5yZW1vdmVCeSgnY2hhcnRBY2NvdW50cy5pZCcsIFtDaGFydEFjY291bnRzTGlzdEVudW0uS0xNU19UUkFWRUxMRURfRk9SX1dPUkssIENoYXJ0QWNjb3VudHNMaXN0RW51bS5LTE1TX1RSQVZFTExFRF0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGNoYXJ0IGRhdGEgd2l0aCB0cmFuc2FjdGlvbnMgY2FzaCBwb3NpdGlvbi5cbiAgICogQ2FzaCBwb3NpdGlvbiA9IEluY29tZSAtIEV4cGVuc2VzIChpbmNsdWRlIGRlcHJlY2lhdGlvbnMpXG4gICAqIENoYXJ0IGRhdGEgZm9yIGVhY2ggbW9udGggZnJvbSBmaW4geWVhciBzdGFydCB0aWxsIGN1cnJlbnQgbW9udGhcbiAgICovXG4gIGdldENhc2hQb3NpdGlvbkNoYXJ0RGF0YSgpOiBDaGFydERhdGFbXSB7XG4gICAgY29uc3QgY2hhcnREYXRhOiBDaGFydERhdGFbXSA9IFtcbiAgICAgIHBsYWluVG9DbGFzcyhDaGFydERhdGEsIHsgbmFtZTogJ0luY29tZScsIGRhdGE6IFtdIH0pLFxuICAgICAgcGxhaW5Ub0NsYXNzKENoYXJ0RGF0YSwgeyBuYW1lOiAnRXhwZW5zZScsIGRhdGE6IFtdIH0pXG4gICAgXTtcblxuICAgIG5ldyBGaW5hbmNpYWxZZWFyKCkuZ2V0UGFzdE1vbnRocygpLmZvckVhY2goKG1vbnRoOiBudW1iZXIpOiB2b2lkID0+IHtcbiAgICAgIGNoYXJ0RGF0YVswXS5kYXRhLnB1c2goe1xuICAgICAgICBsYWJlbDogTU9OVEhTW21vbnRoXSxcbiAgICAgICAgdmFsdWU6IHRoaXMuZ2V0SW5jb21lVHJhbnNhY3Rpb25zKCkuZ2V0QnlNb250aChtb250aCkuY2xhaW1BbW91bnRcbiAgICAgIH0pO1xuICAgICAgY2hhcnREYXRhWzFdLmRhdGEucHVzaCh7XG4gICAgICAgIGxhYmVsOiBNT05USFNbbW9udGhdLFxuICAgICAgICB2YWx1ZTogTWF0aC5hYnModGhpcy5nZXRFeHBlbnNlVHJhbnNhY3Rpb25zKCkuZ2V0QnlNb250aChtb250aCkuY2xhaW1BbW91bnQpXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIHJldHVybiBjaGFydERhdGE7XG4gIH1cblxuICAvKipcbiAgICogdXNlciBwYXlzIEdTVCBvbmx5IGZyb20gYWxsb2NhdGVkIHBhcnQgKG9yIHBhaWQpIG9mIGluY29tZVxuICAgKi9cbiAgY2FsY3VsYXRlQWxsb2NhdGVkQ2xhaW1BbW91bnQoYWxsb2NhdGlvbnM6IFRyYW5zYWN0aW9uQWxsb2NhdGlvbkNvbGxlY3Rpb24pOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnJlZHVjZSgoc3VtOiBudW1iZXIsIHRyYW5zYWN0aW9uKSA9PiBzdW0gKyB0cmFuc2FjdGlvbi5nZXRBbGxvY2F0ZWRDbGFpbUFtb3VudChhbGxvY2F0aW9ucykpO1xuICB9XG5cbiAgY2FsY3VsYXRlQWxsb2NhdGVkR1NUKGFsbG9jYXRpb25zOiBUcmFuc2FjdGlvbkFsbG9jYXRpb25Db2xsZWN0aW9uKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJCeSgnaXNHU1QnLCB0cnVlKS5yZWR1Y2UoXG4gICAgICAoc3VtOiBudW1iZXIsIHRyYW5zYWN0aW9uKSA9PiBzdW0gKyB0cmFuc2FjdGlvbi5nZXRBbGxvY2F0ZWRDbGFpbUFtb3VudChhbGxvY2F0aW9ucylcbiAgICApICogQ2hhcnRBY2NvdW50cy5HU1RSYXRpbztcbiAgfVxuXG4gIGdldEFsbG9jYXRlZEFtb3VudChhbGxvY2F0aW9uczogVHJhbnNhY3Rpb25BbGxvY2F0aW9uQ29sbGVjdGlvbik6IG51bWJlciB7XG4gICAgcmV0dXJuIGFsbG9jYXRpb25zLmdldEJ5VHJhbnNhY3Rpb25zSWRzKHRoaXMuZ2V0SWRzKCkpLnN1bUJ5KCdhbW91bnQnKVxuICB9XG5cbiAgLyoqXG4gICAqIEBUT0RPIHZpayBidXNpbmVzcyB0cmFuc2FjdGlvbnMgY2FsY3VsYXRlZCBkaWZmZXJlbnRseSwgc2VwYXJhdGVkIGNvbGxlY3Rpb24/XG4gICAqL1xuICBnZXRCdXNpbmVzc0NsYWltQW1vdW50KGFsbG9jYXRpb25zOiBUcmFuc2FjdGlvbkFsbG9jYXRpb25Db2xsZWN0aW9uLCBidXNpbmVzc0lkOiBudW1iZXIgPSBudWxsKTogbnVtYmVyIHtcbiAgICBjb25zdCB0cmFuc2FjdGlvbnMgPSBidXNpbmVzc0lkID8gdGhpcy5maWx0ZXJCeSgnYnVzaW5lc3MuaWQnLCBidXNpbmVzc0lkKSA6IHRoaXM7XG4gICAgY29uc3QgZXhwZW5zZXMgPSB0cmFuc2FjdGlvbnMuZ2V0RXhwZW5zZVRyYW5zYWN0aW9ucygpO1xuICAgIGNvbnN0IGluY29tZXMgPSB0cmFuc2FjdGlvbnMuZ2V0SW5jb21lVHJhbnNhY3Rpb25zKCk7XG5cbiAgICByZXR1cm4gaW5jb21lcy5jYWxjdWxhdGVBbGxvY2F0ZWRDbGFpbUFtb3VudChhbGxvY2F0aW9ucykgKyBleHBlbnNlcy5zdW1CeSgnY2xhaW1BbW91bnQnKTtcbiAgfVxufVxuIl19
250
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9jb2xsZWN0aW9ucy90cmFuc2FjdGlvbi90cmFuc2FjdGlvbi5jb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQTBFLE1BQU0sY0FBYyxDQUFDO0FBRXJILE9BQU8sRUFBNkIscUJBQXFCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM3RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDM0UsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBSWxFOztHQUVHO0FBQ0gsTUFBTSxPQUFPLHFCQUFzQixTQUFRLG9CQUFpQztJQUMxRTs7T0FFRztJQUNILFlBQVksZUFBOEIsRUFBRSxFQUFFLGdCQUFnQyxFQUFFO1FBQzlFLEtBQUssQ0FBQyxDQUFDLEdBQUcsWUFBWSxFQUFFLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pHLENB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Q0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQzNHLENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxXQUE0QztRQUNoRSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FDeEMsQ0FBQyxHQUFXLEVBQUUsV0FBVyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsV0FBVyxDQUFDLHVCQUF1QixDQUFDLFdBQVcsQ0FBQyxDQUNyRixHQUFHLGFBQWEsQ0FBQyxRQUFRLENBQUM7SUFDN0IsQ0FBQztJQUVELGtCQUFrQixDQUFDLFdBQTRDO1FBQzdELE9BQU8sV0FBVyxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUN4RSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxzQkFBc0IsQ0FBQyxXQUE0QyxFQUFFLGFBQXFCLElBQUk7UUFDNUYsTUFBTSxZQUFZLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ2xGLE1BQU0sUUFBUSxHQUFHLFlBQVksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQ3ZELE1BQU0sT0FBTyxHQUFHLFlBQVksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBRXJELE9BQU8sT0FBTyxDQUFDLDZCQUE2QixDQUFDLFdBQVcsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDNUYsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhcnRBY2NvdW50cywgVHJhbnNhY3Rpb24sIFRyYW5zYWN0aW9uQWxsb2NhdGlvbiwgVHJhbnNhY3Rpb25NZXRhRmllbGQsIFZlaGljbGVDbGFpbSB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkFsbG9jYXRpb25Db2xsZWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbi1hbGxvY2F0aW9uLmNvbGxlY3Rpb24nO1xuaW1wb3J0IHsgQ2hhcnRBY2NvdW50c0NhdGVnb3J5RW51bSwgQ2hhcnRBY2NvdW50c0xpc3RFbnVtIH0gZnJvbSAnLi4vLi4vZGIvRW51bXMnO1xuaW1wb3J0IHsgVGFua1R5cGVFbnVtIH0gZnJvbSAnLi4vLi4vZGIvRW51bXMvdGFuay10eXBlLmVudW0nO1xuaW1wb3J0IHsgRXhwb3J0YWJsZUNvbGxlY3Rpb24gfSBmcm9tICcuLi9leHBvcnRhYmxlLmNvbGxlY3Rpb24nO1xuaW1wb3J0IHsgcGxhaW5Ub0NsYXNzIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgRXhwb3J0Q2VsbCB9IGZyb20gJy4uLy4uL21vZGVscy9leHBvcnQvZXhwb3J0LWNlbGwnO1xuaW1wb3J0IHsgRXhwb3J0Q2VsbFR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2V4cG9ydC9leHBvcnQtY2VsbC10eXBlLmVudW0nO1xuaW1wb3J0IHsgQ29sbGVjdGlvbiB9IGZyb20gJy4uL2NvbGxlY3Rpb24nO1xuaW1wb3J0IHsgQ2hhcnREYXRhIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NoYXJ0L2NoYXJ0LWRhdGEnO1xuaW1wb3J0IHsgRmluYW5jaWFsWWVhciB9IGZyb20gJy4uLy4uL21vZGVscy9maW5hbmNpYWwteWVhci9maW5hbmNpYWwteWVhcic7XG5pbXBvcnQgeyBNT05USFMgfSBmcm9tICcuLi8uLi9tb2RlbHMvZmluYW5jaWFsLXllYXIvbW9udGhzLmNvbnN0JztcbmltcG9ydCB7IERlcHJlY2lhdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9kZXByZWNpYXRpb24vZGVwcmVjaWF0aW9uJztcbmltcG9ydCB7IFNvbGVJbnZvaWNlQ29sbGVjdGlvbiB9IGZyb20gJy4uL3NvbGUnO1xuXG4vKipcbiAqIENvbGxlY3Rpb24gb2YgdHJhbnNhY3Rpb25zXG4gKi9cbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbkNvbGxlY3Rpb24gZXh0ZW5kcyBFeHBvcnRhYmxlQ29sbGVjdGlvbjxUcmFuc2FjdGlvbj4ge1xuICAvKipcbiAgICogd2UgdXNlIGRlcHJlY2lhdGlvbnMgYXMgZXhwZW5zZSB0cmFuc2FjdGlvbnMgYSBsb3RcbiAgICovXG4gIGNvbnN0cnVjdG9yKHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25bXSA9IFtdLCBkZXByZWNpYXRpb25zOiBEZXByZWNpYXRpb25bXSA9IFtdKSB7XG4gICAgc3VwZXIoWy4uLnRyYW5zYWN0aW9ucywgLi4uZGVwcmVjaWF0aW9ucy5tYXAoKGRlcHJlY2lhdGlvbikgPT4gZGVwcmVjaWF0aW9uLnRvVHJhbnNhY3Rpb24oKSldKTtcbiAgfVxuXG4gIGdldFNvbGVUcmFuc2FjdGlvbnMoKTogdGhpcyB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyKCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pID0+IHRyYW5zYWN0aW9uLmlzU29sZVRhbmsoKSk7XG4gIH1cblxuICBnZXQgYW1vdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuc3VtQnkoJ2Ftb3VudCcpO1xuICB9XG5cbiAgZ2V0RmluZEFuZE1hdGNoKGFsbG9jYXRpb25zOiBUcmFuc2FjdGlvbkFsbG9jYXRpb25Db2xsZWN0aW9uKTogdGhpcyB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyKCh0cmFuc2FjdGlvbikgPT4gdHJhbnNhY3Rpb24uY2FuRmluZEFuZE1hdGNoKGFsbG9jYXRpb25zKSk7XG4gIH1cblxuICBnZXRVbmFsbG9jYXRlZChhbGxvY2F0aW9uczogVHJhbnNhY3Rpb25BbGxvY2F0aW9uQ29sbGVjdGlvbik6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2FjdGlvbkNvbGxlY3Rpb24oXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogYm9vbGVhbiA9PiAhdHJhbnNhY3Rpb24uaXNBbGxvY2F0ZWQoYWxsb2NhdGlvbnMpKVxuICAgICk7XG4gIH1cblxuICBnZXRVbmFsbG9jYXRlZEFtb3VudChhbGxvY2F0aW9uczogVHJhbnNhY3Rpb25BbGxvY2F0aW9uQ29sbGVjdGlvbik6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMucmVkdWNlKChzdW06IG51bWJlciwgdHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogbnVtYmVyID0+XG4gICAgICBzdW0gKyB0cmFuc2FjdGlvbi5nZXRVbmFsbG9jYXRlZEFtb3VudChhbGxvY2F0aW9ucy5maWx0ZXJCeSgndHJhbnNhY3Rpb24uaWQnLCB0cmFuc2FjdGlvbi5pZCkpLCAwKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXQgZGF0ZSBvZiB0aGUgbGFzdCB0cmFuc2FjdGlvblxuICAgKi9cbiAgZ2V0TGFzdFRyYW5zYWN0aW9uRGF0ZSgpOiBEYXRlIHtcbiAgICByZXR1cm4gbmV3IERhdGUoTWF0aC5tYXguYXBwbHkoTWF0aCwgdGhpcy5pdGVtcy5tYXAoKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbikgPT4gdHJhbnNhY3Rpb24uZGF0ZSkpKTtcbiAgfVxuXG4gIGdldCBjbGFpbUFtb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLml0ZW1zLnJlZHVjZSgoc3VtOiBudW1iZXIsIHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbikgPT4gc3VtICsgdHJhbnNhY3Rpb24uY2xhaW1BbW91bnQsIDApO1xuICB9XG5cbiAgZ2V0IGdyb3NzQ2xhaW1BbW91bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5yZWR1Y2UoKHN1bTogbnVtYmVyLCB0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pID0+IHN1bSArIHRyYW5zYWN0aW9uLmdyb3NzQ2xhaW1BbW91bnQsIDApO1xuICB9XG5cbiAgZ2V0IGdyb3NzQW1vdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMucmVkdWNlKChzdW06IG51bWJlciwgdHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKSA9PiBzdW0gKyB0cmFuc2FjdGlvbi5ncm9zc0Ftb3VudCwgMCk7XG4gIH1cblxuICBnZXRCeUNoYXJ0QWNjb3VudHNDYXRlZ29yaWVzKGNhdGVnb3JpZXM6IENoYXJ0QWNjb3VudHNDYXRlZ29yeUVudW1bXSk6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2FjdGlvbkNvbGxlY3Rpb24oXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogYm9vbGVhbiA9PiBjYXRlZ29yaWVzLmluY2x1ZGVzKHRyYW5zYWN0aW9uLmNoYXJ0QWNjb3VudHMuY2F0ZWdvcnkpKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRyYW5zYWN0aW9ucyBieSBtb250aFxuICAgKiBAcGFyYW0gbW9udGhJbmRleCBieSB3aGljaCBkZXNpcmVkIG1vbnRoIHNob3VsZCBiZSB0YWtlblxuICAgKi9cbiAgZ2V0QnlNb250aChtb250aEluZGV4OiBudW1iZXIpOiBUcmFuc2FjdGlvbkNvbGxlY3Rpb24ge1xuICAgIHJldHVybiBuZXcgVHJhbnNhY3Rpb25Db2xsZWN0aW9uKHRoaXMuaXRlbXMuZmlsdGVyKCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiBib29sZWFuID0+XG4gICAgICB0cmFuc2FjdGlvbi5kYXRlLmdldE1vbnRoKCkgPT09IG1vbnRoSW5kZXhcbiAgICApKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgY29sbGVjdGlvbiBvZiB0cmFuc2FjdGlvbnMgbWV0YSBmaWVsZHNcbiAgICovXG4gIGdldFRyYW5zYWN0aW9uc01ldGFGaWVsZHMoKTogQ29sbGVjdGlvbjxUcmFuc2FjdGlvbk1ldGFGaWVsZD4ge1xuICAgIGNvbnN0IG1ldGFGaWVsZHNBcnJheTogVHJhbnNhY3Rpb25NZXRhRmllbGRbXSA9IFtdO1xuXG4gICAgdGhpcy5pdGVtcy5mb3JFYWNoKCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pID0+IHtcbiAgICAgIG1ldGFGaWVsZHNBcnJheS5wdXNoKC4uLnRyYW5zYWN0aW9uLm1ldGFGaWVsZHMpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIG5ldyBDb2xsZWN0aW9uPFRyYW5zYWN0aW9uTWV0YUZpZWxkPihtZXRhRmllbGRzQXJyYXkpO1xuICB9XG5cbiAgZ2V0SW5jb21lVHJhbnNhY3Rpb25zKCk6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2FjdGlvbkNvbGxlY3Rpb24oXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogYm9vbGVhbiA9PiB0cmFuc2FjdGlvbi5pc0luY29tZSgpKVxuICAgICk7XG4gIH1cblxuICBnZXRFeHBlbnNlVHJhbnNhY3Rpb25zKCk6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2FjdGlvbkNvbGxlY3Rpb24oXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogYm9vbGVhbiA9PiB0cmFuc2FjdGlvbi5pc0V4cGVuc2UoKSAmJiAhdHJhbnNhY3Rpb24uaXNJbnRlcmVzdCgpKVxuICAgICk7XG4gIH1cblxuICBnZXQgY2xhaW1JbmNvbWUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5nZXRJbmNvbWVUcmFuc2FjdGlvbnMoKS5jbGFpbUFtb3VudDtcbiAgfVxuXG4gIGdldCBjbGFpbUV4cGVuc2UoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5nZXRFeHBlbnNlVHJhbnNhY3Rpb25zKCkuY2xhaW1BbW91bnQ7XG4gIH1cblxuICBnZXRJbnRlcmVzdFRyYW5zYWN0aW9ucygpOiBUcmFuc2FjdGlvbkNvbGxlY3Rpb24ge1xuICAgIHJldHVybiBuZXcgVHJhbnNhY3Rpb25Db2xsZWN0aW9uKFxuICAgICAgdGhpcy5pdGVtcy5maWx0ZXIoKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IGJvb2xlYW4gPT4gdHJhbnNhY3Rpb24uaXNJbnRlcmVzdCgpKVxuICAgICk7XG4gIH1cblxuICBnZXQgY2xhaW1JbnRlcmVzdCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldEludGVyZXN0VHJhbnNhY3Rpb25zKCkuY2xhaW1BbW91bnQ7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGNvbGxlY3Rpb24gb2YgdHJhbnNhY3Rpb25zIGFuZCBwcm9wZXJ0aWVzIGZpbHRlcmVkIGJ5IHByb3BlcnRpZXMgaWRzXG4gICAqIEBwYXJhbSBpZHMgSWRzIG9mIHByb3BlcnRpZXMgZm9yIGZpbHRlclxuICAgKi9cbiAgZ2V0QnlQcm9wZXJ0aWVzSWRzKGlkczogbnVtYmVyW10pOiBUcmFuc2FjdGlvbkNvbGxlY3Rpb24ge1xuICAgIHJldHVybiBuZXcgVHJhbnNhY3Rpb25Db2xsZWN0aW9uKFxuICAgICAgdGhpcy5pdGVtcy5maWx0ZXIoKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IGJvb2xlYW4gPT4gaWRzLmluY2x1ZGVzKHRyYW5zYWN0aW9uLnByb3BlcnR5Py5pZCkpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgbmV3IGNvbGxlY3Rpb24gZmlsdGVyZWQgYnkgaW5jb21lIHNvdXJjZSBpZFxuICAgKiBAcGFyYW0gaWQgaWQgb2YgaW5jb21lIHNvdXJjZSBmb3IgZmlsdGVyXG4gICAqL1xuICBnZXRCeUluY29tZVNvdXJjZUlkKGlkOiBudW1iZXIpOiBUcmFuc2FjdGlvbkNvbGxlY3Rpb24ge1xuICAgIHJldHVybiBuZXcgVHJhbnNhY3Rpb25Db2xsZWN0aW9uKFxuICAgICAgdGhpcy5pdGVtcy5maWx0ZXIoKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IGJvb2xlYW4gPT4gdHJhbnNhY3Rpb24uaW5jb21lU291cmNlPy5pZCA9PT0gaWQpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgbmV3IGNvbGxlY3Rpb24gZmlsdGVyZWQgYnkgY2hhcnQgYWNjb3VudHMgY2F0ZWdvcnlcbiAgICogQHBhcmFtIGNhdGVnb3J5IENoYXJ0IGFjY291bnRzIGNhdGVnb3J5IHZhbHVlXG4gICAqL1xuICBnZXRCeUNoYXJ0QWNjb3VudHNDYXRlZ29yeShjYXRlZ29yeTogQ2hhcnRBY2NvdW50c0NhdGVnb3J5RW51bSk6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2FjdGlvbkNvbGxlY3Rpb24oXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogYm9vbGVhbiA9PiB0cmFuc2FjdGlvbi5jaGFydEFjY291bnRzLmNhdGVnb3J5ID09PSBjYXRlZ29yeSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBuZXcgY29sbGVjdGlvbiBvZiBwcm9wZXJ0eSB0cmFuc2FjdGlvbnNcbiAgICovXG4gIGdldFByb3BlcnR5VHJhbnNhY3Rpb25zKCk6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2FjdGlvbkNvbGxlY3Rpb24oXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogYm9vbGVhbiA9PiB0cmFuc2FjdGlvbi5pc1Byb3BlcnR5VGFuaygpKVxuICAgICk7XG4gIH1cblxuICBnZXREZWJpdFRyYW5zYWN0aW9ucygpOiBUcmFuc2FjdGlvbkNvbGxlY3Rpb24ge1xuICAgIHJldHVybiBuZXcgVHJhbnNhY3Rpb25Db2xsZWN0aW9uKFxuICAgICAgdGhpcy5pdGVtcy5maWx0ZXIoKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IGJvb2xlYW4gPT4gdHJhbnNhY3Rpb24uaXNEZWJpdCgpKVxuICAgICk7XG4gIH1cblxuICBnZXRDcmVkaXRUcmFuc2FjdGlvbnMoKTogVHJhbnNhY3Rpb25Db2xsZWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IFRyYW5zYWN0aW9uQ29sbGVjdGlvbihcbiAgICAgIHRoaXMuaXRlbXMuZmlsdGVyKCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiBib29sZWFuID0+IHRyYW5zYWN0aW9uLmlzQ3JlZGl0KCkpXG4gICAgKTtcbiAgfVxuXG4gIGdldEJ5QWxsb2NhdGlvbnMoYWxsb2NhdGlvbnM6IFRyYW5zYWN0aW9uQWxsb2NhdGlvbkNvbGxlY3Rpb24pOiBUcmFuc2FjdGlvbkNvbGxlY3Rpb24ge1xuICAgIHJldHVybiBuZXcgVHJhbnNhY3Rpb25Db2xsZWN0aW9uKFxuICAgICAgdGhpcy5pdGVtcy5maWx0ZXIoKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IGJvb2xlYW4gPT4gYWxsb2NhdGlvbnMuaGFzVHJhbnNhY3Rpb24odHJhbnNhY3Rpb24pKVxuICAgICk7XG4gIH1cblxuICBzZXRBbGxvY2F0ZWRDbGFpbUFtb3VudChhbGxvY2F0aW9uczogVHJhbnNhY3Rpb25BbGxvY2F0aW9uQ29sbGVjdGlvbiwgaW52b2ljZXM6IFNvbGVJbnZvaWNlQ29sbGVjdGlvbik6IHRoaXMge1xuICAgIGNvbnN0IGFsbG9jYXRpb25zQnlUcmFuc2FjdGlvbiA9IGFsbG9jYXRpb25zLmdyb3VwQnkoJ3RyYW5zYWN0aW9uLmlkJyk7XG4gICAgY29uc3QgcGFpZENhY2hlVHJhbnNhY3Rpb25zSWRzID0gaW52b2ljZXMuZ2V0UGFpZENhc2goKS5nZXRUcmFuc2FjdGlvbnNJZHMoKTtcbiAgICB0aGlzLml0ZW1zLmZvckVhY2goKHRyYW5zYWN0aW9uKSA9PiB7XG4gICAgICAvLyBmb3IgcGFpZENhc2ggaW52b2ljZXMgd2UgaGF2ZW4ndCBhbGxvY2F0aW9ucyBhbmQgc2hvdWxkIHVzZSBqdXN0IGNsYWltIGFtb3VudFxuICAgICAgaWYgKHBhaWRDYWNoZVRyYW5zYWN0aW9uc0lkcy5pbmNsdWRlcyh0cmFuc2FjdGlvbi5pZCkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0cmFuc2FjdGlvbi5jbGFpbUFtb3VudCA9IHRyYW5zYWN0aW9uLmdldEFsbG9jYXRlZENsYWltQW1vdW50KGFsbG9jYXRpb25zQnlUcmFuc2FjdGlvbi5nZXQodHJhbnNhY3Rpb24uaWQpKTtcbiAgICB9KTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0cmFuc2FjdGlvbnMgcmVsYXRlZCB0byBWZWhpY2xlIGNhdGVnb3J5XG4gICAqL1xuICBnZXRWZWhpY2xlVHJhbnNhY3Rpb25zKCk6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZShcbiAgICAgIHRoaXMuaXRlbXMuZmlsdGVyKCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiBib29sZWFuID0+IHRyYW5zYWN0aW9uLmlzVmVoaWNsZVRyYW5zYWN0aW9uKCkpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgbmV3IHRyYW5zYWN0aW9uIGNvbGxlY3Rpb24gZmlsdGVyZWQgYnkgdGFuayB0eXBlXG4gICAqL1xuICBnZXRCeVRhbmtUeXBlKHRhbmtUeXBlOiBUYW5rVHlwZUVudW0pOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGUoXG4gICAgICB0aGlzLml0ZW1zLmZpbHRlcigodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogYm9vbGVhbiA9PiB7XG4gICAgICAgIHN3aXRjaCAodGFua1R5cGUpIHtcbiAgICAgICAgICBjYXNlIFRhbmtUeXBlRW51bS5QUk9QRVJUWTpcbiAgICAgICAgICAgIHJldHVybiB0cmFuc2FjdGlvbi5pc1Byb3BlcnR5VGFuaygpO1xuICAgICAgICAgIGNhc2UgVGFua1R5cGVFbnVtLldPUks6XG4gICAgICAgICAgICByZXR1cm4gdHJhbnNhY3Rpb24uaXNXb3JrVGFuaygpO1xuICAgICAgICAgIGNhc2UgVGFua1R5cGVFbnVtLlNPTEU6XG4gICAgICAgICAgICByZXR1cm4gdHJhbnNhY3Rpb24uaXNTb2xlVGFuaygpO1xuICAgICAgICAgIC8vIFRyYW5zYWN0aW9uIG1heSBiZSBub3QgcmVsYXRlZCB0byBhbnkgdGFuayB0eXBlIChwZXJzb25hbClcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBnZXRFeHBvcnRIZWFkZXIoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBbJ0RhdGUnLCAnRGVzY3JpcHRpb24nLCAnRGViaXQnLCAnQ3JlZGl0J107XG4gIH1cblxuICBnZXRFeHBvcnRGb290ZXIoKTogRXhwb3J0Q2VsbFtdIHtcbiAgICByZXR1cm4gW1xuICAgICAgcGxhaW5Ub0NsYXNzKEV4cG9ydENlbGwsIHsgdmFsdWU6ICdUb3RhbCcsIHR5cGU6IEV4cG9ydENlbGxUeXBlRW51bS5TVFJJTkcgfSksXG4gICAgICBwbGFpblRvQ2xhc3MoRXhwb3J0Q2VsbCwgeyB2YWx1ZTogJycsIHR5cGU6IEV4cG9ydENlbGxUeXBlRW51bS5TVFJJTkcgfSksXG4gICAgICBwbGFpblRvQ2xhc3MoRXhwb3J0Q2VsbCwgeyB2YWx1ZTogdGhpcy5zdW1CeSgnZGViaXQnKSwgdHlwZTogRXhwb3J0Q2VsbFR5cGVFbnVtLkNVUlJFTkNZIH0pLFxuICAgICAgcGxhaW5Ub0NsYXNzKEV4cG9ydENlbGwsIHsgdmFsdWU6IHRoaXMuc3VtQnkoJ2NyZWRpdCcpLCB0eXBlOiBFeHBvcnRDZWxsVHlwZUVudW0uQ1VSUkVOQ1kgfSlcbiAgICBdO1xuICB9XG5cbiAgZ2V0RXhwb3J0Qm9keSgpOiBFeHBvcnRDZWxsW11bXSB7XG4gICAgLyoqXG4gICAgICogRGVzY3JpcHRpb24gaXMgbm90IGEgcmVxdWlyZWQgZmllbGQgZm9yIHRyYW5zYWN0aW9ucy5cbiAgICAgKiBpZiB0aGVyZSBpcyBubyBkZXNjcmlwdGlvbiwgdGhlbiBhZGQgYW4gZW1wdHkgbGluZSBzbyB0aGF0IHRoZXJlIGFyZSBubyBlcnJvcnMgd2hlbiB0cmFuc2xhdGVkIGludG8gYSBzdHJpbmcuXG4gICAgICovXG4gICAgcmV0dXJuIHRoaXMuaXRlbXMubWFwKCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pID0+IFtcbiAgICAgIHBsYWluVG9DbGFzcyhFeHBvcnRDZWxsLCB7IHZhbHVlOiB0cmFuc2FjdGlvbi5kYXRlLCB0eXBlOiBFeHBvcnRDZWxsVHlwZUVudW0uREFURSB9KSxcbiAgICAgIHBsYWluVG9DbGFzcyhFeHBvcnRDZWxsLCB7IHZhbHVlOiB0cmFuc2FjdGlvbi5kZXNjcmlwdGlvbiA/PyAnLScsIHR5cGU6IEV4cG9ydENlbGxUeXBlRW51bS5TVFJJTkcgfSksXG4gICAgICBwbGFpblRvQ2xhc3MoRXhwb3J0Q2VsbCwgeyB2YWx1ZTogdHJhbnNhY3Rpb24uZGViaXQsIHR5cGU6IEV4cG9ydENlbGxUeXBlRW51bS5DVVJSRU5DWSB9KSxcbiAgICAgIHBsYWluVG9DbGFzcyhFeHBvcnRDZWxsLCB7IHZhbHVlOiB0cmFuc2FjdGlvbi5jcmVkaXQsIHR5cGU6IEV4cG9ydENlbGxUeXBlRW51bS5DVVJSRU5DWSB9KVxuICAgIF0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBsaXN0IG9mIHZlaGljbGUgdHJhbnNhY3Rpb25zIGZpbHRlcmVkIGJ5IHZlaGljbGUgY2xhaW1cbiAgICovXG4gIGdldEJ5VmVoaWNsZUNsYWltKHZlaGljbGVDbGFpbT86IFZlaGljbGVDbGFpbSk6IHRoaXMge1xuICAgIGlmICghdmVoaWNsZUNsYWltKSB7XG4gICAgICByZXR1cm4gdGhpcy5jcmVhdGUoW10pO1xuICAgIH1cblxuICAgIHJldHVybiB2ZWhpY2xlQ2xhaW0uaXNTb2xlVGFuaygpXG4gICAgICAvLyBzb2xlIHRhbmsgbWF5IGhhdmUgbXVsdGlwbGUgdmVoaWNsZSBjbGFpbXMsIHNvIHdlIG5lZWQgdG8gZmlsdGVyIGJ5IGJ1c2luZXNzLmlkXG4gICAgICA/IHRoaXMuZ2V0VmVoaWNsZVRyYW5zYWN0aW9ucygpLmZpbHRlckJ5KCdidXNpbmVzcy5pZCcsIHZlaGljbGVDbGFpbS5idXNpbmVzcy5pZClcbiAgICAgIC8vIHdvcmsgdGFuayBtYXkgaGF2ZSBvbmx5IG9uZSB2ZWhpY2xlIGNsYWltLCBzbyB3ZSBuZWVkIHRvIGZpbHRlciBieSB0YW5rIHR5cGVcbiAgICAgIDogdGhpcy5nZXRWZWhpY2xlVHJhbnNhY3Rpb25zKCkuZmlsdGVyQnkoJ3RhbmtUeXBlJywgVGFua1R5cGVFbnVtLldPUkspO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBsaXN0IG9mIHZlaGljbGUgdHJhbnNhY3Rpb25zIGV4Y2VwdCBLTVMgdHJhbnNhY3Rpb25zXG4gICAqL1xuICBnZXRMb2dib29rVHJhbnNhY3Rpb25zKCk6IHRoaXMge1xuICAgIHJldHVybiB0aGlzXG4gICAgICAuZ2V0VmVoaWNsZVRyYW5zYWN0aW9ucygpXG4gICAgICAucmVtb3ZlQnkoJ2NoYXJ0QWNjb3VudHMuaWQnLCBbQ2hhcnRBY2NvdW50c0xpc3RFbnVtLktMTVNfVFJBVkVMTEVEX0ZPUl9XT1JLLCBDaGFydEFjY291bnRzTGlzdEVudW0uS0xNU19UUkFWRUxMRURdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZCBjaGFydCBkYXRhIHdpdGggdHJhbnNhY3Rpb25zIGNhc2ggcG9zaXRpb24uXG4gICAqIENhc2ggcG9zaXRpb24gPSBJbmNvbWUgLSBFeHBlbnNlcyAoaW5jbHVkZSBkZXByZWNpYXRpb25zKVxuICAgKiBDaGFydCBkYXRhIGZvciBlYWNoIG1vbnRoIGZyb20gZmluIHllYXIgc3RhcnQgdGlsbCBjdXJyZW50IG1vbnRoXG4gICAqL1xuICBnZXRDYXNoUG9zaXRpb25DaGFydERhdGEoKTogQ2hhcnREYXRhW10ge1xuICAgIGNvbnN0IGNoYXJ0RGF0YTogQ2hhcnREYXRhW10gPSBbXG4gICAgICBwbGFpblRvQ2xhc3MoQ2hhcnREYXRhLCB7IG5hbWU6ICdJbmNvbWUnLCBkYXRhOiBbXSB9KSxcbiAgICAgIHBsYWluVG9DbGFzcyhDaGFydERhdGEsIHsgbmFtZTogJ0V4cGVuc2UnLCBkYXRhOiBbXSB9KVxuICAgIF07XG5cbiAgICBuZXcgRmluYW5jaWFsWWVhcigpLmdldFBhc3RNb250aHMoKS5mb3JFYWNoKChtb250aDogbnVtYmVyKTogdm9pZCA9PiB7XG4gICAgICBjaGFydERhdGFbMF0uZGF0YS5wdXNoKHtcbiAgICAgICAgbGFiZWw6IE1PTlRIU1ttb250aF0sXG4gICAgICAgIHZhbHVlOiB0aGlzLmdldEluY29tZVRyYW5zYWN0aW9ucygpLmdldEJ5TW9udGgobW9udGgpLmNsYWltQW1vdW50XG4gICAgICB9KTtcbiAgICAgIGNoYXJ0RGF0YVsxXS5kYXRhLnB1c2goe1xuICAgICAgICBsYWJlbDogTU9OVEhTW21vbnRoXSxcbiAgICAgICAgdmFsdWU6IE1hdGguYWJzKHRoaXMuZ2V0RXhwZW5zZVRyYW5zYWN0aW9ucygpLmdldEJ5TW9udGgobW9udGgpLmNsYWltQW1vdW50KVxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gY2hhcnREYXRhO1xuICB9XG5cbiAgLyoqXG4gICAqIHVzZXIgcGF5cyBHU1Qgb25seSBmcm9tIGFsbG9jYXRlZCBwYXJ0IChvciBwYWlkKSBvZiBpbmNvbWVcbiAgICovXG4gIGNhbGN1bGF0ZUFsbG9jYXRlZENsYWltQW1vdW50KGFsbG9jYXRpb25zOiBUcmFuc2FjdGlvbkFsbG9jYXRpb25Db2xsZWN0aW9uKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5yZWR1Y2UoKHN1bTogbnVtYmVyLCB0cmFuc2FjdGlvbikgPT4gc3VtICsgdHJhbnNhY3Rpb24uZ2V0QWxsb2NhdGVkQ2xhaW1BbW91bnQoYWxsb2NhdGlvbnMpKTtcbiAgfVxuXG4gIGNhbGN1bGF0ZUFsbG9jYXRlZEdTVChhbGxvY2F0aW9uczogVHJhbnNhY3Rpb25BbGxvY2F0aW9uQ29sbGVjdGlvbik6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyQnkoJ2lzR1NUJywgdHJ1ZSkucmVkdWNlKFxuICAgICAgKHN1bTogbnVtYmVyLCB0cmFuc2FjdGlvbikgPT4gc3VtICsgdHJhbnNhY3Rpb24uZ2V0QWxsb2NhdGVkQ2xhaW1BbW91bnQoYWxsb2NhdGlvbnMpXG4gICAgKSAqIENoYXJ0QWNjb3VudHMuR1NUUmF0aW87XG4gIH1cblxuICBnZXRBbGxvY2F0ZWRBbW91bnQoYWxsb2NhdGlvbnM6IFRyYW5zYWN0aW9uQWxsb2NhdGlvbkNvbGxlY3Rpb24pOiBudW1iZXIge1xuICAgIHJldHVybiBhbGxvY2F0aW9ucy5nZXRCeVRyYW5zYWN0aW9uc0lkcyh0aGlzLmdldElkcygpKS5zdW1CeSgnYW1vdW50JylcbiAgfVxuXG4gIC8qKlxuICAgKiBAVE9ETyB2aWsgYnVzaW5lc3MgdHJhbnNhY3Rpb25zIGNhbGN1bGF0ZWQgZGlmZmVyZW50bHksIHNlcGFyYXRlZCBjb2xsZWN0aW9uP1xuICAgKi9cbiAgZ2V0QnVzaW5lc3NDbGFpbUFtb3VudChhbGxvY2F0aW9uczogVHJhbnNhY3Rpb25BbGxvY2F0aW9uQ29sbGVjdGlvbiwgYnVzaW5lc3NJZDogbnVtYmVyID0gbnVsbCk6IG51bWJlciB7XG4gICAgY29uc3QgdHJhbnNhY3Rpb25zID0gYnVzaW5lc3NJZCA/IHRoaXMuZmlsdGVyQnkoJ2J1c2luZXNzLmlkJywgYnVzaW5lc3NJZCkgOiB0aGlzO1xuICAgIGNvbnN0IGV4cGVuc2VzID0gdHJhbnNhY3Rpb25zLmdldEV4cGVuc2VUcmFuc2FjdGlvbnMoKTtcbiAgICBjb25zdCBpbmNvbWVzID0gdHJhbnNhY3Rpb25zLmdldEluY29tZVRyYW5zYWN0aW9ucygpO1xuXG4gICAgcmV0dXJuIGluY29tZXMuY2FsY3VsYXRlQWxsb2NhdGVkQ2xhaW1BbW91bnQoYWxsb2NhdGlvbnMpICsgZXhwZW5zZXMuc3VtQnkoJ2NsYWltQW1vdW50Jyk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,6 @@
1
+ export var ChartAccountsUnallocatableListEnum;
2
+ (function (ChartAccountsUnallocatableListEnum) {
3
+ ChartAccountsUnallocatableListEnum[ChartAccountsUnallocatableListEnum["HOME_OFFICE_WORK_HOURS"] = 103] = "HOME_OFFICE_WORK_HOURS";
4
+ ChartAccountsUnallocatableListEnum[ChartAccountsUnallocatableListEnum["HOME_OFFICE_SOLE_HOURS"] = 888] = "HOME_OFFICE_SOLE_HOURS";
5
+ })(ChartAccountsUnallocatableListEnum || (ChartAccountsUnallocatableListEnum = {}));
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtYWNjb3VudHMtdW5hbGxvY2F0YWJsZS1saXN0LmVudW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvZGIvRW51bXMvY2hhcnQtYWNjb3VudHMvY2hhcnQtYWNjb3VudHMtdW5hbGxvY2F0YWJsZS1saXN0LmVudW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksa0NBR1g7QUFIRCxXQUFZLGtDQUFrQztJQUM1QyxpSUFBNEIsQ0FBQTtJQUM1QixpSUFBNEIsQ0FBQTtBQUM5QixDQUFDLEVBSFcsa0NBQWtDLEtBQWxDLGtDQUFrQyxRQUc3QyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIENoYXJ0QWNjb3VudHNVbmFsbG9jYXRhYmxlTGlzdEVudW0ge1xuICBIT01FX09GRklDRV9XT1JLX0hPVVJTID0gMTAzLFxuICBIT01FX09GRklDRV9TT0xFX0hPVVJTID0gODg4LFxufVxuIl19
@@ -5,6 +5,7 @@ export * from './chart-accounts-heading-tax-deductible.enum';
5
5
  export * from './chart-accounts-heading-taxable.enum';
6
6
  export * from './chart-accounts-heading-vehicle-list.enum';
7
7
  export * from './chart-accounts-list.enum';
8
+ export * from './chart-accounts-unallocatable-list.enum';
8
9
  export * from './chart-accounts-meta-field-list.enum';
9
10
  export * from './chart-accounts-meta-field-type.enum';
10
11
  export * from './chart-accounts-salary-adjustments-list.enum';
@@ -13,4 +14,4 @@ export * from './chart-accounts-type.enum';
13
14
  export * from './chart-accounts-keep-sign.enum';
14
15
  export * from './chart-accounts-holding-untaxed-income-list.enum';
15
16
  export * from './chart-accounts-invoice-expense.enum';
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvZGIvRW51bXMvY2hhcnQtYWNjb3VudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLG1EQUFtRCxDQUFDO0FBQ2xFLGNBQWMsdUNBQXVDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NoYXJ0LWFjY291bnRzLWNhdGVnb3J5LmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9jaGFydC1hY2NvdW50cy1ldHAuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2NoYXJ0LWFjY291bnRzLWhlYWRpbmctbGlzdC5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vY2hhcnQtYWNjb3VudHMtaGVhZGluZy10YXgtZGVkdWN0aWJsZS5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vY2hhcnQtYWNjb3VudHMtaGVhZGluZy10YXhhYmxlLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9jaGFydC1hY2NvdW50cy1oZWFkaW5nLXZlaGljbGUtbGlzdC5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vY2hhcnQtYWNjb3VudHMtbGlzdC5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vY2hhcnQtYWNjb3VudHMtbWV0YS1maWVsZC1saXN0LmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9jaGFydC1hY2NvdW50cy1tZXRhLWZpZWxkLXR5cGUuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2NoYXJ0LWFjY291bnRzLXNhbGFyeS1hZGp1c3RtZW50cy1saXN0LmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9jaGFydC1hY2NvdW50cy1zYWxhcnktaW5jbHVkZWQtbGlzdC5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vY2hhcnQtYWNjb3VudHMtdHlwZS5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vY2hhcnQtYWNjb3VudHMta2VlcC1zaWduLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9jaGFydC1hY2NvdW50cy1ob2xkaW5nLXVudGF4ZWQtaW5jb21lLWxpc3QuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2NoYXJ0LWFjY291bnRzLWludm9pY2UtZXhwZW5zZS5lbnVtJztcbiJdfQ==
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvZGIvRW51bXMvY2hhcnQtYWNjb3VudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYyx1Q0FBdUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY2hhcnQtYWNjb3VudHMtY2F0ZWdvcnkuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2NoYXJ0LWFjY291bnRzLWV0cC5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vY2hhcnQtYWNjb3VudHMtaGVhZGluZy1saXN0LmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9jaGFydC1hY2NvdW50cy1oZWFkaW5nLXRheC1kZWR1Y3RpYmxlLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9jaGFydC1hY2NvdW50cy1oZWFkaW5nLXRheGFibGUuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2NoYXJ0LWFjY291bnRzLWhlYWRpbmctdmVoaWNsZS1saXN0LmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9jaGFydC1hY2NvdW50cy1saXN0LmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9jaGFydC1hY2NvdW50cy11bmFsbG9jYXRhYmxlLWxpc3QuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2NoYXJ0LWFjY291bnRzLW1ldGEtZmllbGQtbGlzdC5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vY2hhcnQtYWNjb3VudHMtbWV0YS1maWVsZC10eXBlLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9jaGFydC1hY2NvdW50cy1zYWxhcnktYWRqdXN0bWVudHMtbGlzdC5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vY2hhcnQtYWNjb3VudHMtc2FsYXJ5LWluY2x1ZGVkLWxpc3QuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2NoYXJ0LWFjY291bnRzLXR5cGUuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2NoYXJ0LWFjY291bnRzLWtlZXAtc2lnbi5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vY2hhcnQtYWNjb3VudHMtaG9sZGluZy11bnRheGVkLWluY29tZS1saXN0LmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9jaGFydC1hY2NvdW50cy1pbnZvaWNlLWV4cGVuc2UuZW51bSc7XG4iXX0=
@@ -1,4 +1,4 @@
1
1
  import { AbstractModel } from '../abstract-model';
2
2
  export class BasReport extends AbstractModel {
3
3
  }
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzLXJlcG9ydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9kYi9Nb2RlbHMvc29sZS9iYXMtcmVwb3J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUdsRCxNQUFNLE9BQU8sU0FBVSxTQUFRLGFBQWE7Q0FZM0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdE1vZGVsIH0gZnJvbSAnLi4vYWJzdHJhY3QtbW9kZWwnO1xuaW1wb3J0IHtVc2VyfSBmcm9tICcuLi91c2VyL3VzZXInO1xuXG5leHBvcnQgY2xhc3MgQmFzUmVwb3J0IGV4dGVuZHMgQWJzdHJhY3RNb2RlbCB7XG4gIGRhdGVGcm9tPzogRGF0ZTtcbiAgZGF0ZVRvPzogRGF0ZTtcbiAgaW5jb21lPzogbnVtYmVyO1xuICBpbmNvbWVHU1Q/OiBudW1iZXI7XG4gIGV4cGVuc2VHU1Q/OiBudW1iZXI7XG4gIHNhbGFyeT86IG51bWJlcjtcbiAgdGF4V2l0aGhlbGRTYWxhcnk/OiBudW1iZXI7XG4gIHRheFdpdGhoZWxkTm9BQk4/OiBudW1iZXI7XG4gIHBheWdUYXhJbnN0YWxtZW50PzogbnVtYmVyO1xuICBmdWVsVGF4Q3JlZGl0PzogbnVtYmVyO1xuICB1c2VyPzogVXNlcjtcbn1cbiJdfQ==
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzLXJlcG9ydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9kYi9Nb2RlbHMvc29sZS9iYXMtcmVwb3J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUdsRCxNQUFNLE9BQU8sU0FBVSxTQUFRLGFBQWE7Q0FZM0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdE1vZGVsIH0gZnJvbSAnLi4vYWJzdHJhY3QtbW9kZWwnO1xuaW1wb3J0IHsgVXNlciB9IGZyb20gJy4uL3VzZXIvdXNlcic7XG5cbmV4cG9ydCBjbGFzcyBCYXNSZXBvcnQgZXh0ZW5kcyBBYnN0cmFjdE1vZGVsIHtcbiAgZGF0ZUZyb20/OiBEYXRlO1xuICBkYXRlVG8/OiBEYXRlO1xuICBpbmNvbWU/OiBudW1iZXI7XG4gIGluY29tZUdTVD86IG51bWJlcjtcbiAgZXhwZW5zZUdTVD86IG51bWJlcjtcbiAgc2FsYXJ5PzogbnVtYmVyO1xuICB0YXhXaXRoaGVsZFNhbGFyeT86IG51bWJlcjtcbiAgdGF4V2l0aGhlbGROb0FCTj86IG51bWJlcjtcbiAgcGF5Z1RheEluc3RhbG1lbnQ/OiBudW1iZXI7XG4gIGZ1ZWxUYXhDcmVkaXQ/OiBudW1iZXI7XG4gIHVzZXI/OiBVc2VyO1xufVxuIl19
@@ -93,15 +93,18 @@ export class AbstractForm extends UntypedFormGroup {
93
93
  /**
94
94
  * upgraded version of patchValue to skip duplicated changes
95
95
  */
96
- patchField(name, value, distinctUntilChanged = true) {
96
+ patchField(name, value) {
97
97
  const control = this.get(name);
98
- if (distinctUntilChanged && control.value === value) {
98
+ if (control.value === value) {
99
99
  return;
100
100
  }
101
+ if (typeof value === 'number') {
102
+ value = value.toFixed(2);
103
+ }
101
104
  control.patchValue(value);
102
105
  }
103
106
  fieldChanged(name) {
104
107
  return this.get(name).value !== this.initialValue[name];
105
108
  }
106
109
  }
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QuZm9ybS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9mb3Jtcy9hYnN0cmFjdC5mb3JtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBNkQsZ0JBQWdCLEVBQWUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxSCxPQUFPLEVBQUUsWUFBWSxFQUFRLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLE9BQU8sTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQzs7OztHQUlHO0FBQ0gsTUFBTSxPQUFnQixZQUFvQixTQUFRLGdCQUFnQjtJQWtCaEUsWUFDRSxRQUEwQztJQUMxQyx1REFBdUQ7SUFDdkQsS0FBYSxFQUNiLGVBQTZFLEVBQzdFLGNBQTZEO1FBRTdELEtBQUssQ0FBQyxRQUFRLEVBQUUsZUFBZSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBcEJ6Qyw0QkFBdUIsR0FBRyxLQUFLLENBQUM7UUFLMUM7OztXQUdHO1FBQ0gsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUVoQixhQUFRLEdBQXdCLElBQUksWUFBWSxFQUFFLENBQUM7UUFVakQsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDakQsZ0ZBQWdGO1FBQ2hGLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUE4QixDQUFDO1FBQzVELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUUvQixJQUFJLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN6QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDdEI7UUFFRCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQs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QUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0gsVUFBVSxDQUFDLElBQVksRUFBRSxLQUFVLEVBQUUsb0JBQW9CLEdBQUcsSUFBSTtRQUM5RCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9CLElBQUksb0JBQW9CLElBQUksT0FBTyxDQUFDLEtBQUssS0FBSyxLQUFLLEVBQUU7WUFDbkQsT0FBTztTQUNSO1FBRUQsT0FBTyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsWUFBWSxDQUFDLElBQVk7UUFDdkIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgQWJzdHJhY3RDb250cm9sT3B0aW9ucywgQXN5bmNWYWxpZGF0b3JGbiwgVW50eXBlZEZvcm1Hcm91cCwgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHBsYWluVG9DbGFzcyB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCBpc0VxdWFsIGZyb20gJ2xvZGFzaC9pc0VxdWFsJztcblxuLyoqXG4gKiBBYnN0cmFjdCBmb3JtIGNsYXNzXG4gKiBAVE9ETyByZW5hbWUgdG8gQWJzdHJhY3RGb3JtR3JvdXBcbiAqIEBUT0RPIEFsZXggVFQtMjE5MDogcmVmYWN0b3I6IGNoZWNrIGFuZCBpbXByb3ZlIGxvZ2ljXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdEZvcm08TW9kZWw+IGV4dGVuZHMgVW50eXBlZEZvcm1Hcm91cCB7XG4gIC8qKlxuICAgKiBJbml0aWFsIGZvcm0gdmFsdWUgZm9yIGNvbXBhcmlzb24gd2l0aCBjaGFuZ2VzIHRvIGNoZWNrIHNhdmVkL3Vuc2F2ZWQgc3RhdGVcbiAgICovXG4gIGluaXRpYWxWYWx1ZTogTW9kZWw7XG4gIHByb3RlY3RlZCBleGNsdWRlRXh0cmFuZW91c1ZhbHVlcyA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgbW9kZWxDbGFzczogVHlwZTxNb2RlbD47XG4gIG1vZGVsOiBNb2RlbDtcbiAgc3VibWl0dGVkOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAVE9ETyBBbGV4IGJhZCBuYW1lLCBpdCdzIGFsc28gYWJvdXQgdW5jaGFuZ2VkXG4gICAqIEZsYWcgZGlzcGxheSBpZiBzb21lIGZvcm0gdmFsdWVzIGNoYW5nZWRcbiAgICovXG4gIHVuc2F2ZWQgPSBmYWxzZTtcblxuICBvblN1Ym1pdDogRXZlbnRFbWl0dGVyPE1vZGVsPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoXG4gICAgY29udHJvbHM6IHtba2V5OiBzdHJpbmddOiBBYnN0cmFjdENvbnRyb2x9LFxuICAgIC8vIEBUT0RPIHZpayByZXF1aXJlZCwgb3RoZXJ3aXNlIG1vZGVsQ2xhc3Mgd29uJ3QgZXhpc3RcbiAgICBtb2RlbD86IE1vZGVsLFxuICAgIHZhbGlkYXRvck9yT3B0cz86IFZhbGlkYXRvckZuIHwgVmFsaWRhdG9yRm5bXSB8IEFic3RyYWN0Q29udHJvbE9wdGlvbnMgfCBudWxsLFxuICAgIGFzeW5jVmFsaWRhdG9yPzogQXN5bmNWYWxpZGF0b3JGbiB8IEFzeW5jVmFsaWRhdG9yRm5bXSB8IG51bGxcbiAgKSB7XG4gICAgc3VwZXIoY29udHJvbHMsIHZhbGlkYXRvck9yT3B0cywgYXN5bmNWYWxpZGF0b3IpO1xuICAgIHRoaXMubW9kZWwgPSBtb2RlbCB8fCB0aGlzLmNyZWF0ZU1vZGVsSW5zdGFuY2UoKTtcbiAgICAvLyBAVE9ETyBBbGV4IG5vIGlkZWEgaG93IGl0IHdvcmtzLCBzaW5jZSBtb2RlbENsYXNzIHVzZWQgaW4gY3JlYXRlTW9kZWxJbnN0YW5jZVxuICAgIHRoaXMubW9kZWxDbGFzcyA9IHRoaXMubW9kZWwuY29uc3RydWN0b3IgYXMgbmV3ICgpID0+IE1vZGVsO1xuICAgIHRoaXMuaW5pdGlhbFZhbHVlID0gdGhpcy52YWx1ZTtcblxuICAgIGlmIChtb2RlbCAmJiAhbW9kZWxbJ2lkJ10pIHtcbiAgICAgIHRoaXMubWFya0FzVW5zYXZlZCgpO1xuICAgIH1cblxuICAgIHRoaXMubGlzdGVuVmFsdWVDaGFuZ2VzKCk7XG4gIH1cblxuICBnZXQgc2F2ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLnVuc2F2ZWQ7XG4gIH1cblxuICBnZXQgY3VycmVudFZhbHVlKCk6IE1vZGVsIHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVNb2RlbEluc3RhbmNlKE9iamVjdC5hc3NpZ24oe30sIHRoaXMubW9kZWwsIHRoaXMuZ2V0UmF3VmFsdWUoKSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIHZhbGlkYXRpb24gYW5kIHJldHVybiBhIG5ldyBpbnN0YW5jZSBvZiBnZW5lcmljIG1vZGVsLlxuICAgKiBNZXJnZSBmb3JtIHZhbHVlIHRvIGluaXRpYWwgb2JqZWN0XG4gICAqIEBwYXJhbSBkYXRhIEFkZGl0aW9uYWwgZGF0YSBvYmplY3Qgd2hpY2ggYmUgbWVyZ2VkIHRvIGZvcm0gdmFsdWVcbiAgICogQHBhcmFtIGluY2x1ZGVEaXNhYmxlZEZpZWxkcyBpZ25vcmUgZGlzYWJsZWQgZmllbGRzXG4gICAqL1xuICBzdWJtaXQoZGF0YTogb2JqZWN0ID0ge30sIGluY2x1ZGVEaXNhYmxlZEZpZWxkcyA9IGZhbHNlKTogTW9kZWwge1xuICAgIHRoaXMuc3VibWl0dGVkID0gdHJ1ZTtcbiAgICB0aGlzLm1hcmtBbGxBc1RvdWNoZWQoKTtcblxuICAgIGlmICghdGhpcy5kaXNhYmxlZCAmJiAhdGhpcy52YWxpZCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgdmFsdWUgPSBpbmNsdWRlRGlzYWJsZWRGaWVsZHMgPyB0aGlzLmdldFJhd1ZhbHVlKCkgOiB0aGlzLnZhbHVlO1xuICAgIGNvbnN0IG1vZGVsOiBNb2RlbCA9IHRoaXMuY3JlYXRlTW9kZWxJbnN0YW5jZShPYmplY3QuYXNzaWduKHt9LCB0aGlzLm1vZGVsLCB2YWx1ZSwgZGF0YSkpO1xuXG4gICAgdGhpcy5vblN1Ym1pdC5lbWl0KG1vZGVsKTtcbiAgICByZXR1cm4gbW9kZWw7XG4gIH1cblxuICBhZGRDb250cm9sKG5hbWU6IHN0cmluZywgY29udHJvbDogQWJzdHJhY3RDb250cm9sLCBvcHRpb25zPzogeyBlbWl0RXZlbnQ/OiBib29sZWFuIH0pOiB0aGlzIHtcbiAgICAvLyBrZWVwIGZvcm0gc3RhdGUgKGVuYWJsZWQvZGlzYWJsZWQpLlxuICAgIC8vIGFkZENvbnRyb2wgZW5hYmxlcyBmb3JtIHdoZW4gYWRkZWQgZW5hYmxlZCBmb3JtIGNvbnRyb2xcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8yMzIzNlxuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICBjb250cm9sLmRpc2FibGUoKTtcbiAgICB9XG5cbiAgICBzdXBlci5hZGRDb250cm9sKG5hbWUsIGNvbnRyb2wsIG9wdGlvbnMpO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBtYXJrQXNVbnNhdmVkKCk6IHZvaWQge1xuICAgIHRoaXMudW5zYXZlZCA9IHRydWU7XG4gIH1cblxuICBtYXJrQXNTYXZlZCgpOiB2b2lkIHtcbiAgICB0aGlzLnVuc2F2ZWQgPSBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAVE9ETyB1c2UgZXhjbHVkZUV4dHJhbmVvdXNWYWx1ZXMgd2hlbiBhbGwgbW9kZWxzIHJlZmFjdG9yZWQgKGV4cG9zZWQgYWxsIG5lZWRlZCBwcm9wZXJ0aWVzKVxuICAgKiBAcGFyYW0gZGF0YVxuICAgKi9cbiAgY3JlYXRlTW9kZWxJbnN0YW5jZShkYXRhOiBvYmplY3QgPSB7fSk6IE1vZGVsIHtcbiAgICByZXR1cm4gcGxhaW5Ub0NsYXNzKHRoaXMubW9kZWxDbGFzcywgZGF0YSwgeyBleGNsdWRlRXh0cmFuZW91c1ZhbHVlczogdGhpcy5leGNsdWRlRXh0cmFuZW91c1ZhbHVlcyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBlbWl0IGN1cnJlbnQgZm9ybSB2YWx1ZXNcbiAgICovXG4gIGVtaXRWYWx1ZXMoKTogdm9pZCB7XG4gICAgT2JqZWN0LnZhbHVlcyh0aGlzLmNvbnRyb2xzKS5mb3JFYWNoKChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpID0+IHtcbiAgICAgIGlmIChbbnVsbCwgdW5kZWZpbmVkXS5pbmNsdWRlcyhjb250cm9sLnZhbHVlKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7IG9ubHlTZWxmOiBmYWxzZSwgZW1pdEV2ZW50OiB0cnVlIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBsaXN0ZW5WYWx1ZUNoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICEhdGhpcy5tb2RlbCAmJiAhIXRoaXMubW9kZWxbJ2lkJ10gJiYgaXNFcXVhbCh0aGlzLnZhbHVlLCB0aGlzLmluaXRpYWxWYWx1ZSkgPyB0aGlzLm1hcmtBc1NhdmVkKCkgOiB0aGlzLm1hcmtBc1Vuc2F2ZWQoKTtcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIHVwZ3JhZGVkIHZlcnNpb24gb2YgcGF0Y2hWYWx1ZSB0byBza2lwIGR1cGxpY2F0ZWQgY2hhbmdlc1xuICAgKi9cbiAgcGF0Y2hGaWVsZChuYW1lOiBzdHJpbmcsIHZhbHVlOiBhbnksIGRpc3RpbmN0VW50aWxDaGFuZ2VkID0gdHJ1ZSk6IHZvaWQge1xuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmdldChuYW1lKTtcbiAgICBpZiAoZGlzdGluY3RVbnRpbENoYW5nZWQgJiYgY29udHJvbC52YWx1ZSA9PT0gdmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb250cm9sLnBhdGNoVmFsdWUodmFsdWUpO1xuICB9XG5cbiAgZmllbGRDaGFuZ2VkKG5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmdldChuYW1lKS52YWx1ZSAhPT0gdGhpcy5pbml0aWFsVmFsdWVbbmFtZV07XG4gIH1cbn1cbiJdfQ==
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QuZm9ybS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9mb3Jtcy9hYnN0cmFjdC5mb3JtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBNkQsZ0JBQWdCLEVBQWUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxSCxPQUFPLEVBQUUsWUFBWSxFQUFRLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLE9BQU8sTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQzs7OztHQUlHO0FBQ0gsTUFBTSxPQUFnQixZQUFvQixTQUFRLGdCQUFnQjtJQWtCaEUsWUFDRSxRQUEwQztJQUMxQyx1REFBdUQ7SUFDdkQsS0FBYSxFQUNiLGVBQTZFLEVBQzdFLGNBQTZEO1FBRTdELEtBQUssQ0FBQyxRQUFRLEVBQUUsZUFBZSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBcEJ6Qyw0QkFBdUIsR0FBRyxLQUFLLENBQUM7UUFLMUM7OztXQUdHO1FBQ0gsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUVoQixhQUFRLEdBQXdCLElBQUksWUFBWSxFQUFFLENBQUM7UUFVakQsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDakQsZ0ZBQWdGO1FBQ2hGLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUE4QixDQUFDO1FBQzVELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUUvQixJQUFJLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN6QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDdEI7UUFFRCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQs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QUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0gsVUFBVSxDQUFDLElBQVksRUFBRSxLQUFVO1FBQ2pDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0IsSUFBSSxPQUFPLENBQUMsS0FBSyxLQUFLLEtBQUssRUFBRTtZQUMzQixPQUFPO1NBQ1I7UUFFRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtZQUM3QixLQUFLLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUMxQjtRQUVELE9BQU8sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELFlBQVksQ0FBQyxJQUFZO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxRCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEFic3RyYWN0Q29udHJvbE9wdGlvbnMsIEFzeW5jVmFsaWRhdG9yRm4sIFVudHlwZWRGb3JtR3JvdXAsIFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBwbGFpblRvQ2xhc3MgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgaXNFcXVhbCBmcm9tICdsb2Rhc2gvaXNFcXVhbCc7XG5cbi8qKlxuICogQWJzdHJhY3QgZm9ybSBjbGFzc1xuICogQFRPRE8gcmVuYW1lIHRvIEFic3RyYWN0Rm9ybUdyb3VwXG4gKiBAVE9ETyBBbGV4IFRULTIxOTA6IHJlZmFjdG9yOiBjaGVjayBhbmQgaW1wcm92ZSBsb2dpY1xuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RGb3JtPE1vZGVsPiBleHRlbmRzIFVudHlwZWRGb3JtR3JvdXAge1xuICAvKipcbiAgICogSW5pdGlhbCBmb3JtIHZhbHVlIGZvciBjb21wYXJpc29uIHdpdGggY2hhbmdlcyB0byBjaGVjayBzYXZlZC91bnNhdmVkIHN0YXRlXG4gICAqL1xuICBpbml0aWFsVmFsdWU6IE1vZGVsO1xuICBwcm90ZWN0ZWQgZXhjbHVkZUV4dHJhbmVvdXNWYWx1ZXMgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIG1vZGVsQ2xhc3M6IFR5cGU8TW9kZWw+O1xuICBtb2RlbDogTW9kZWw7XG4gIHN1Ym1pdHRlZDogYm9vbGVhbjtcblxuICAvKipcbiAgICogQFRPRE8gQWxleCBiYWQgbmFtZSwgaXQncyBhbHNvIGFib3V0IHVuY2hhbmdlZFxuICAgKiBGbGFnIGRpc3BsYXkgaWYgc29tZSBmb3JtIHZhbHVlcyBjaGFuZ2VkXG4gICAqL1xuICB1bnNhdmVkID0gZmFsc2U7XG5cbiAgb25TdWJtaXQ6IEV2ZW50RW1pdHRlcjxNb2RlbD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKFxuICAgIGNvbnRyb2xzOiB7W2tleTogc3RyaW5nXTogQWJzdHJhY3RDb250cm9sfSxcbiAgICAvLyBAVE9ETyB2aWsgcmVxdWlyZWQsIG90aGVyd2lzZSBtb2RlbENsYXNzIHdvbid0IGV4aXN0XG4gICAgbW9kZWw/OiBNb2RlbCxcbiAgICB2YWxpZGF0b3JPck9wdHM/OiBWYWxpZGF0b3JGbiB8IFZhbGlkYXRvckZuW10gfCBBYnN0cmFjdENvbnRyb2xPcHRpb25zIHwgbnVsbCxcbiAgICBhc3luY1ZhbGlkYXRvcj86IEFzeW5jVmFsaWRhdG9yRm4gfCBBc3luY1ZhbGlkYXRvckZuW10gfCBudWxsXG4gICkge1xuICAgIHN1cGVyKGNvbnRyb2xzLCB2YWxpZGF0b3JPck9wdHMsIGFzeW5jVmFsaWRhdG9yKTtcbiAgICB0aGlzLm1vZGVsID0gbW9kZWwgfHwgdGhpcy5jcmVhdGVNb2RlbEluc3RhbmNlKCk7XG4gICAgLy8gQFRPRE8gQWxleCBubyBpZGVhIGhvdyBpdCB3b3Jrcywgc2luY2UgbW9kZWxDbGFzcyB1c2VkIGluIGNyZWF0ZU1vZGVsSW5zdGFuY2VcbiAgICB0aGlzLm1vZGVsQ2xhc3MgPSB0aGlzLm1vZGVsLmNvbnN0cnVjdG9yIGFzIG5ldyAoKSA9PiBNb2RlbDtcbiAgICB0aGlzLmluaXRpYWxWYWx1ZSA9IHRoaXMudmFsdWU7XG5cbiAgICBpZiAobW9kZWwgJiYgIW1vZGVsWydpZCddKSB7XG4gICAgICB0aGlzLm1hcmtBc1Vuc2F2ZWQoKTtcbiAgICB9XG5cbiAgICB0aGlzLmxpc3RlblZhbHVlQ2hhbmdlcygpO1xuICB9XG5cbiAgZ2V0IHNhdmVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy51bnNhdmVkO1xuICB9XG5cbiAgZ2V0IGN1cnJlbnRWYWx1ZSgpOiBNb2RlbCB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlTW9kZWxJbnN0YW5jZShPYmplY3QuYXNzaWduKHt9LCB0aGlzLm1vZGVsLCB0aGlzLmdldFJhd1ZhbHVlKCkpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayB2YWxpZGF0aW9uIGFuZCByZXR1cm4gYSBuZXcgaW5zdGFuY2Ugb2YgZ2VuZXJpYyBtb2RlbC5cbiAgICogTWVyZ2UgZm9ybSB2YWx1ZSB0byBpbml0aWFsIG9iamVjdFxuICAgKiBAcGFyYW0gZGF0YSBBZGRpdGlvbmFsIGRhdGEgb2JqZWN0IHdoaWNoIGJlIG1lcmdlZCB0byBmb3JtIHZhbHVlXG4gICAqIEBwYXJhbSBpbmNsdWRlRGlzYWJsZWRGaWVsZHMgaWdub3JlIGRpc2FibGVkIGZpZWxkc1xuICAgKi9cbiAgc3VibWl0KGRhdGE6IG9iamVjdCA9IHt9LCBpbmNsdWRlRGlzYWJsZWRGaWVsZHMgPSBmYWxzZSk6IE1vZGVsIHtcbiAgICB0aGlzLnN1Ym1pdHRlZCA9IHRydWU7XG4gICAgdGhpcy5tYXJrQWxsQXNUb3VjaGVkKCk7XG5cbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQgJiYgIXRoaXMudmFsaWQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IHZhbHVlID0gaW5jbHVkZURpc2FibGVkRmllbGRzID8gdGhpcy5nZXRSYXdWYWx1ZSgpIDogdGhpcy52YWx1ZTtcbiAgICBjb25zdCBtb2RlbDogTW9kZWwgPSB0aGlzLmNyZWF0ZU1vZGVsSW5zdGFuY2UoT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5tb2RlbCwgdmFsdWUsIGRhdGEpKTtcblxuICAgIHRoaXMub25TdWJtaXQuZW1pdChtb2RlbCk7XG4gICAgcmV0dXJuIG1vZGVsO1xuICB9XG5cbiAgYWRkQ29udHJvbChuYW1lOiBzdHJpbmcsIGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCwgb3B0aW9ucz86IHsgZW1pdEV2ZW50PzogYm9vbGVhbiB9KTogdGhpcyB7XG4gICAgLy8ga2VlcCBmb3JtIHN0YXRlIChlbmFibGVkL2Rpc2FibGVkKS5cbiAgICAvLyBhZGRDb250cm9sIGVuYWJsZXMgZm9ybSB3aGVuIGFkZGVkIGVuYWJsZWQgZm9ybSBjb250cm9sXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMjMyMzZcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgY29udHJvbC5kaXNhYmxlKCk7XG4gICAgfVxuXG4gICAgc3VwZXIuYWRkQ29udHJvbChuYW1lLCBjb250cm9sLCBvcHRpb25zKTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgbWFya0FzVW5zYXZlZCgpOiB2b2lkIHtcbiAgICB0aGlzLnVuc2F2ZWQgPSB0cnVlO1xuICB9XG5cbiAgbWFya0FzU2F2ZWQoKTogdm9pZCB7XG4gICAgdGhpcy51bnNhdmVkID0gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogQFRPRE8gdXNlIGV4Y2x1ZGVFeHRyYW5lb3VzVmFsdWVzIHdoZW4gYWxsIG1vZGVscyByZWZhY3RvcmVkIChleHBvc2VkIGFsbCBuZWVkZWQgcHJvcGVydGllcylcbiAgICogQHBhcmFtIGRhdGFcbiAgICovXG4gIGNyZWF0ZU1vZGVsSW5zdGFuY2UoZGF0YTogb2JqZWN0ID0ge30pOiBNb2RlbCB7XG4gICAgcmV0dXJuIHBsYWluVG9DbGFzcyh0aGlzLm1vZGVsQ2xhc3MsIGRhdGEsIHsgZXhjbHVkZUV4dHJhbmVvdXNWYWx1ZXM6IHRoaXMuZXhjbHVkZUV4dHJhbmVvdXNWYWx1ZXMgfSk7XG4gIH1cblxuICAvKipcbiAgICogZW1pdCBjdXJyZW50IGZvcm0gdmFsdWVzXG4gICAqL1xuICBlbWl0VmFsdWVzKCk6IHZvaWQge1xuICAgIE9iamVjdC52YWx1ZXModGhpcy5jb250cm9scykuZm9yRWFjaCgoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSA9PiB7XG4gICAgICBpZiAoW251bGwsIHVuZGVmaW5lZF0uaW5jbHVkZXMoY29udHJvbC52YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoeyBvbmx5U2VsZjogZmFsc2UsIGVtaXRFdmVudDogdHJ1ZSB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgbGlzdGVuVmFsdWVDaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAhIXRoaXMubW9kZWwgJiYgISF0aGlzLm1vZGVsWydpZCddICYmIGlzRXF1YWwodGhpcy52YWx1ZSwgdGhpcy5pbml0aWFsVmFsdWUpID8gdGhpcy5tYXJrQXNTYXZlZCgpIDogdGhpcy5tYXJrQXNVbnNhdmVkKCk7XG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiB1cGdyYWRlZCB2ZXJzaW9uIG9mIHBhdGNoVmFsdWUgdG8gc2tpcCBkdXBsaWNhdGVkIGNoYW5nZXNcbiAgICovXG4gIHBhdGNoRmllbGQobmFtZTogc3RyaW5nLCB2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuZ2V0KG5hbWUpO1xuICAgIGlmIChjb250cm9sLnZhbHVlID09PSB2YWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgICB2YWx1ZSA9IHZhbHVlLnRvRml4ZWQoMik7XG4gICAgfVxuXG4gICAgY29udHJvbC5wYXRjaFZhbHVlKHZhbHVlKTtcbiAgfVxuXG4gIGZpZWxkQ2hhbmdlZChuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5nZXQobmFtZSkudmFsdWUgIT09IHRoaXMuaW5pdGlhbFZhbHVlW25hbWVdO1xuICB9XG59XG4iXX0=
@@ -31,14 +31,15 @@ export class BasReportForm extends AbstractForm {
31
31
  const incomeTransactions = filteredTransactions.getIncomeTransactions();
32
32
  const expenseTransactions = new TransactionCollection(filteredTransactions.getExpenseTransactions().toArray(), filteredDepreciations.toArray());
33
33
  // all sole income claimed as 100%
34
- this.get('income').setValue(incomeTransactions.getAllocatedAmount(allocations));
35
- this.get('incomeGST').setValue(incomeTransactions.calculateAllocatedGST(allocations));
36
- this.get('expenseGST').setValue(expenseTransactions.filterBy('isGST', true).sumBy('gstClaimAmount'));
34
+ // @TODO temp fix, waiting for TT-3503/TT-3495 breaking changes
35
+ this.patchField('income', incomeTransactions.getAllocatedAmount(allocations));
36
+ this.patchField('incomeGST', incomeTransactions.calculateAllocatedGST(allocations));
37
+ this.patchField('expenseGST', expenseTransactions.filterBy('isGST', true).sumBy('gstClaimAmount'));
37
38
  });
38
39
  // calculate taxWithheldTotal
39
40
  combineLatest([this.get('taxWithheldSalary').valueChanges, this.get('taxWithheldNoABN').valueChanges])
40
41
  .subscribe(([taxWithheldSalary, taxWithheldNoABN]) => {
41
- this.get('taxWithheldTotal').setValue(taxWithheldSalary + taxWithheldNoABN);
42
+ this.patchField('taxWithheldTotal', taxWithheldSalary + taxWithheldNoABN);
42
43
  });
43
44
  // calculate gst payable/refundable
44
45
  combineLatest([
@@ -48,7 +49,7 @@ export class BasReportForm extends AbstractForm {
48
49
  this.get('paygTaxInstalment').valueChanges,
49
50
  this.get('fuelTaxCredit').valueChanges,
50
51
  ]).subscribe(([incomeGST, expenseGST, taxWithheldTotal, paygTaxInstalment, fuelTaxCredit]) => {
51
- this.get('gst').setValue(incomeGST - expenseGST + taxWithheldTotal + paygTaxInstalment - fuelTaxCredit);
52
+ this.patchField('gst', incomeGST - expenseGST + taxWithheldTotal + paygTaxInstalment - fuelTaxCredit);
52
53
  });
53
54
  // emit init values to calculate dynamic fields
54
55
  if (report.id) {
@@ -59,4 +60,4 @@ export class BasReportForm extends AbstractForm {
59
60
  return super.submit(data, true);
60
61
  }
61
62
  }
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzLXJlcG9ydC5mb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL2Zvcm1zL3NvbGUvYmFzLXJlcG9ydC5mb3JtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVoRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyQyxPQUFPLEVBQTJELHFCQUFxQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbkg7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLGFBQWMsU0FBUSxZQUF1QjtJQUN4RCxZQUFvQixNQUFpQixFQUFFLFlBQW1DLEVBQUUsV0FBNEMsRUFBRSxhQUFxQztRQUM3SixLQUFLLENBQUM7WUFDSixRQUFRLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDdEUsTUFBTSxFQUFFLElBQUksa0JBQWtCLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQ2xFLE1BQU0sRUFBRSxJQUFJLGtCQUFrQixDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO1lBQ3hFLFNBQVMsRUFBRSxJQUFJLGtCQUFrQixDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxTQUFTLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDbkcsVUFBVSxFQUFFLElBQUksa0JBQWtCLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFF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Q0FBQyxDQUFDLENBQUM7UUFFTCxtQ0FBbUM7UUFDbkMsYUFBYSxDQUFDO1lBQ1osSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxZQUFZO1lBQ2xDLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUMsWUFBWTtZQUNuQyxJQUFJLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUMsWUFBWTtZQUN6QyxJQUFJLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLENBQUMsWUFBWTtZQUMxQyxJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDLFlBQVk7U0FDdkMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxhQUFhLENBQUMsRUFBRSxFQUFFO1lBQzNGLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLFNBQVMsR0FBRyxVQUFVLEdBQUcsZ0JBQWdCLEdBQUcsaUJBQWlCLEdBQUcsYUFBYSxDQUFDLENBQUM7UUFDMUcsQ0FBQyxDQUFDLENBQUM7UUFFSCwrQ0FBK0M7UUFDL0MsSUFBSSxNQUFNLENBQUMsRUFBRSxFQUFFO1lBQ2IsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1NBQ25CO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFlLEVBQUU7UUFDdEIsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNsQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdEZvcm0gfSBmcm9tICcuLi9hYnN0cmFjdC5mb3JtJztcbmltcG9ydCB7IEJhc1JlcG9ydCB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUNvbnRyb2wsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEZXByZWNpYXRpb25Db2xsZWN0aW9uLCBUcmFuc2FjdGlvbkFsbG9jYXRpb25Db2xsZWN0aW9uLCBUcmFuc2FjdGlvbkNvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi9jb2xsZWN0aW9ucyc7XG5cbi8qKlxuICogYnVzaW5lc3MgYWN0aXZpdHkgc3RhdGVtZW50IHJlcG9ydFxuICogaHR0cHM6Ly90YXh0YW5rLmF0bGFzc2lhbi5uZXQvd2lraS9zcGFjZXMvVEFYVEFOSy9wYWdlcy8yNjg1MzM5MzYvQkFTK1JlcG9ydFxuICovXG5leHBvcnQgY2xhc3MgQmFzUmVwb3J0Rm9ybSBleHRlbmRzIEFic3RyYWN0Rm9ybTxCYXNSZXBvcnQ+IHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZXBvcnQ6IEJhc1JlcG9ydCwgdHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbkNvbGxlY3Rpb24sIGFsbG9jYXRpb25zOiBUcmFuc2FjdGlvbkFsbG9jYXRpb25Db2xsZWN0aW9uLCBkZXByZWNpYXRpb25zOiBEZXByZWNpYXRpb25Db2xsZWN0aW9uKSB7XG4gICAgc3VwZXIoe1xuICAgICAgZGF0ZUZyb206IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wocmVwb3J0LmRhdGVGcm9tLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgIGRhdGVUbzogbmV3IFVudHlwZWRGb3JtQ29udHJvbChyZXBvcnQuZGF0ZVRvLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgIGluY29tZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbCh7IHZhbHVlOiByZXBvcnQuaW5jb21lLCBkaXNhYmxlZDogdHJ1ZSB9KSxcbiAgICAgIGluY29tZUdTVDogbmV3IFVudHlwZWRGb3JtQ29udHJvbCh7IHZhbHVlOiByZXBvcnQuaW5jb21lR1NULCBkaXNhYmxlZDogdHJ1ZSB9LCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgIGV4cGVuc2VHU1Q6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woeyB2YWx1ZTogcmVwb3J0LmV4cGVuc2VHU1QsIGRpc2FibGVkOiB0cnVlIH0sIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgc2FsYXJ5OiBuZXcgVW50eXBlZEZvcm1Db250cm9sKHJlcG9ydC5zYWxhcnksIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgdGF4V2l0aGhlbGRTYWxhcnk6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wocmVwb3J0LnRheFdpdGhoZWxkU2FsYXJ5LCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgIHRheFdpdGhoZWxkTm9BQk46IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wocmVwb3J0LnRheFdpdGhoZWxkTm9BQk4sIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgdGF4V2l0aGhlbGRUb3RhbDogbmV3IFVudHlwZWRGb3JtQ29udHJvbCh7IHZhbHVlOiByZXBvcnQudGF4V2l0aGhlbGRUb3RhbCB8fCAwLCBkaXNhYmxlZDogdHJ1ZSB9KSxcbiAgICAgIHBheWdUYXhJbnN0YWxtZW50OiBuZXcgVW50eXBlZEZvcm1Db250cm9sKHJlcG9ydC5wYXlnVGF4SW5zdGFsbWVudCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICBmdWVsVGF4Q3JlZGl0OiBuZXcgVW50eXBlZEZvcm1Db250cm9sKHJlcG9ydC5mdWVsVGF4Q3JlZGl0LCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgIGdzdDogbmV3IFVudHlwZWRGb3JtQ29udHJvbCh7IHZhbHVlOiByZXBvcnQuZ3N0LCBkaXNhYmxlZDogdHJ1ZSB9KSxcbiAgICB9LCByZXBvcnQpO1xuXG4gICAgLy8gcHJlZmlsbCBpbmNvbWUvZXhwZW5zZSBkYXRhIGJhc2VkIG9uIHRyYW5zYWN0aW9ucy9kZXByZWNpYXRpb25zIGZpbHRlcmVkIGJ5IHNwZWNpZmllZCBkYXRlXG4gICAgY29tYmluZUxhdGVzdChbdGhpcy5nZXQoJ2RhdGVGcm9tJykudmFsdWVDaGFuZ2VzLCB0aGlzLmdldCgnZGF0ZVRvJykudmFsdWVDaGFuZ2VzXSlcbiAgICAgIC5zdWJzY3JpYmUoKFtkYXRlRnJvbSwgZGF0ZVRvXSkgPT4ge1xuICAgICAgICBjb25zdCBmaWx0ZXJlZFRyYW5zYWN0aW9ucyA9IHRyYW5zYWN0aW9ucy5maWx0ZXJCeVJhbmdlKCdkYXRlJywgZGF0ZUZyb20sIGRhdGVUbyk7XG4gICAgICAgIGNvbnN0IGZpbHRlcmVkRGVwcmVjaWF0aW9ucyA9IGRlcHJlY2lhdGlvbnMuZmlsdGVyQnlSYW5nZSgnZGF0ZScsIGRhdGVGcm9tLCBkYXRlVG8pO1xuXG4gICAgICAgIGNvbnN0IGluY29tZVRyYW5zYWN0aW9ucyA9IGZpbHRlcmVkVHJhbnNhY3Rpb25zLmdldEluY29tZVRyYW5zYWN0aW9ucygpO1xuICAgICAgICBjb25zdCBleHBlbnNlVHJhbnNhY3Rpb25zID0gbmV3IFRyYW5zYWN0aW9uQ29sbGVjdGlvbihcbiAgICAgICAgICBmaWx0ZXJlZFRyYW5zYWN0aW9ucy5nZXRFeHBlbnNlVHJhbnNhY3Rpb25zKCkudG9BcnJheSgpLFxuICAgICAgICAgIGZpbHRlcmVkRGVwcmVjaWF0aW9ucy50b0FycmF5KClcbiAgICAgICAgKTtcblxuICAgICAgICAvLyBhbGwgc29sZSBpbmNvbWUgY2xhaW1lZCBhcyAxMDAlXG4gICAgICAgIHRoaXMuZ2V0KCdpbmNvbWUnKS5zZXRWYWx1ZShpbmNvbWVUcmFuc2FjdGlvbnMuZ2V0QWxsb2NhdGVkQW1vdW50KGFsbG9jYXRpb25zKSk7XG4gICAgICAgIHRoaXMuZ2V0KCdpbmNvbWVHU1QnKS5zZXRWYWx1ZShpbmNvbWVUcmFuc2FjdGlvbnMuY2FsY3VsYXRlQWxsb2NhdGVkR1NUKGFsbG9jYXRpb25zKSk7XG4gICAgICAgIHRoaXMuZ2V0KCdleHBlbnNlR1NUJykuc2V0VmFsdWUoZXhwZW5zZVRyYW5zYWN0aW9ucy5maWx0ZXJCeSgnaXNHU1QnLCB0cnVlKS5zdW1CeSgnZ3N0Q2xhaW1BbW91bnQnKSk7XG4gICAgICB9KTtcblxuICAgIC8vIGNhbGN1bGF0ZSB0YXhXaXRoaGVsZFRvdGFsXG4gICAgY29tYmluZUxhdGVzdChbdGhpcy5nZXQoJ3RheFdpdGhoZWxkU2FsYXJ5JykudmFsdWVDaGFuZ2VzLCB0aGlzLmdldCgndGF4V2l0aGhlbGROb0FCTicpLnZhbHVlQ2hhbmdlc10pXG4gICAgICAuc3Vic2NyaWJlKChbdGF4V2l0aGhlbGRTYWxhcnksIHRheFdpdGhoZWxkTm9BQk5dKSA9PiB7XG4gICAgICAgIHRoaXMuZ2V0KCd0YXhXaXRoaGVsZFRvdGFsJykuc2V0VmFsdWUodGF4V2l0aGhlbGRTYWxhcnkgKyB0YXhXaXRoaGVsZE5vQUJOKTtcbiAgICAgIH0pO1xuXG4gICAgLy8gY2FsY3VsYXRlIGdzdCBwYXlhYmxlL3JlZnVuZGFibGVcbiAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuZ2V0KCdpbmNvbWVHU1QnKS52YWx1ZUNoYW5nZXMsXG4gICAgICB0aGlzLmdldCgnZXhwZW5zZUdTVCcpLnZhbHVlQ2hhbmdlcyxcbiAgICAgIHRoaXMuZ2V0KCd0YXhXaXRoaGVsZFRvdGFsJykudmFsdWVDaGFuZ2VzLFxuICAgICAgdGhpcy5nZXQoJ3BheWdUYXhJbnN0YWxtZW50JykudmFsdWVDaGFuZ2VzLFxuICAgICAgdGhpcy5nZXQoJ2Z1ZWxUYXhDcmVkaXQnKS52YWx1ZUNoYW5nZXMsXG4gICAgXSkuc3Vic2NyaWJlKChbaW5jb21lR1NULCBleHBlbnNlR1NULCB0YXhXaXRoaGVsZFRvdGFsLCBwYXlnVGF4SW5zdGFsbWVudCwgZnVlbFRheENyZWRpdF0pID0+IHtcbiAgICAgIHRoaXMuZ2V0KCdnc3QnKS5zZXRWYWx1ZShpbmNvbWVHU1QgLSBleHBlbnNlR1NUICsgdGF4V2l0aGhlbGRUb3RhbCArIHBheWdUYXhJbnN0YWxtZW50IC0gZnVlbFRheENyZWRpdCk7XG4gICAgfSk7XG5cbiAgICAvLyBlbWl0IGluaXQgdmFsdWVzIHRvIGNhbGN1bGF0ZSBkeW5hbWljIGZpZWxkc1xuICAgIGlmIChyZXBvcnQuaWQpIHtcbiAgICAgIHRoaXMuZW1pdFZhbHVlcygpO1xuICAgIH1cbiAgfVxuXG4gIHN1Ym1pdChkYXRhOiBvYmplY3QgPSB7fSk6IEJhc1JlcG9ydCB7XG4gICAgcmV0dXJuIHN1cGVyLnN1Ym1pdChkYXRhLCB0cnVlKTtcbiAgfVxufVxuIl19
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzLXJlcG9ydC5mb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL2Zvcm1zL3NvbGUvYmFzLXJlcG9ydC5mb3JtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVoRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyQyxPQUFPLEVBR0wscUJBQXFCLEVBQ3RCLE1BQU0sbUJBQW1CLENBQUM7QUFFM0I7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLGFBQWMsU0FBUSxZQUF1QjtJQUN4RCxZQUFvQixNQUFpQixFQUFFLFlBQW1DLEVBQUUsV0FBNEMsRUFBRSxhQUFxQztRQUM3SixLQUFLLENBQUM7WUFDSixRQUFRLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDdEUsTUFBTSxFQUFFLElBQUksa0JBQWtCLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQ2xFLE1BQU0sRUFBRSxJQUFJLGtCQUFrQixDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO1lBQ3hFLFNBQVMsRUFBRSxJQUFJLGtCQUFrQixDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxTQUFTLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDbkcsVUFBVSxFQUFFLElBQUksa0JBQWtCLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFF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LElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUMsWUFBWTtZQUNsQyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLFlBQVk7WUFDbkMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLFlBQVk7WUFDekMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLFlBQVk7WUFDMUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQyxZQUFZO1NBQ3ZDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxDQUFDLEVBQUUsRUFBRTtZQUMzRixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxTQUFTLEdBQUcsVUFBVSxHQUFHLGdCQUFnQixHQUFHLGlCQUFpQixHQUFHLGFBQWEsQ0FBQyxDQUFDO1FBQ3hHLENBQUMsQ0FBQyxDQUFDO1FBRUgsK0NBQStDO1FBQy9DLElBQUksTUFBTSxDQUFDLEVBQUUsRUFBRTtZQUNiLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztTQUNuQjtJQUNILENBQUM7SUFFRCxNQUFNLENBQUMsT0FBZSxFQUFFO1FBQ3RCLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RGb3JtIH0gZnJvbSAnLi4vYWJzdHJhY3QuZm9ybSc7XG5pbXBvcnQgeyBCYXNSZXBvcnQsIENoYXJ0QWNjb3VudHMgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1Db250cm9sLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgRGVwcmVjaWF0aW9uQ29sbGVjdGlvbixcbiAgVHJhbnNhY3Rpb25BbGxvY2F0aW9uQ29sbGVjdGlvbixcbiAgVHJhbnNhY3Rpb25Db2xsZWN0aW9uXG59IGZyb20gJy4uLy4uL2NvbGxlY3Rpb25zJztcblxuLyoqXG4gKiBidXNpbmVzcyBhY3Rpdml0eSBzdGF0ZW1lbnQgcmVwb3J0XG4gKiBodHRwczovL3RheHRhbmsuYXRsYXNzaWFuLm5ldC93aWtpL3NwYWNlcy9UQVhUQU5LL3BhZ2VzLzI2ODUzMzkzNi9CQVMrUmVwb3J0XG4gKi9cbmV4cG9ydCBjbGFzcyBCYXNSZXBvcnRGb3JtIGV4dGVuZHMgQWJzdHJhY3RGb3JtPEJhc1JlcG9ydD4ge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlcG9ydDogQmFzUmVwb3J0LCB0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiwgYWxsb2NhdGlvbnM6IFRyYW5zYWN0aW9uQWxsb2NhdGlvbkNvbGxlY3Rpb24sIGRlcHJlY2lhdGlvbnM6IERlcHJlY2lhdGlvbkNvbGxlY3Rpb24pIHtcbiAgICBzdXBlcih7XG4gICAgICBkYXRlRnJvbTogbmV3IFVudHlwZWRGb3JtQ29udHJvbChyZXBvcnQuZGF0ZUZyb20sIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgZGF0ZVRvOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKHJlcG9ydC5kYXRlVG8sIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgaW5jb21lOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKHsgdmFsdWU6IHJlcG9ydC5pbmNvbWUsIGRpc2FibGVkOiB0cnVlIH0pLFxuICAgICAgaW5jb21lR1NUOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKHsgdmFsdWU6IHJlcG9ydC5pbmNvbWVHU1QsIGRpc2FibGVkOiB0cnVlIH0sIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgZXhwZW5zZUdTVDogbmV3IFVudHlwZWRGb3JtQ29udHJvbCh7IHZhbHVlOiByZXBvcnQuZXhwZW5zZUdTVCwgZGlzYWJsZWQ6IHRydWUgfSwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICBzYWxhcnk6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wocmVwb3J0LnNhbGFyeSwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICB0YXhXaXRoaGVsZFNhbGFyeTogbmV3IFVudHlwZWRGb3JtQ29udHJvbChyZXBvcnQudGF4V2l0aGhlbGRTYWxhcnksIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgdGF4V2l0aGhlbGROb0FCTjogbmV3IFVudHlwZWRGb3JtQ29udHJvbChyZXBvcnQudGF4V2l0aGhlbGROb0FCTiwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICB0YXhXaXRoaGVsZFRvdGFsOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKHsgdmFsdWU6IHJlcG9ydC50YXhXaXRoaGVsZFRvdGFsIHx8IDAsIGRpc2FibGVkOiB0cnVlIH0pLFxuICAgICAgcGF5Z1RheEluc3RhbG1lbnQ6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wocmVwb3J0LnBheWdUYXhJbnN0YWxtZW50LCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgIGZ1ZWxUYXhDcmVkaXQ6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wocmVwb3J0LmZ1ZWxUYXhDcmVkaXQsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgZ3N0OiBuZXcgVW50eXBlZEZvcm1Db250cm9sKHsgdmFsdWU6IHJlcG9ydC5nc3QsIGRpc2FibGVkOiB0cnVlIH0pLFxuICAgIH0sIHJlcG9ydCk7XG5cbiAgICAvLyBwcmVmaWxsIGluY29tZS9leHBlbnNlIGRhdGEgYmFzZWQgb24gdHJhbnNhY3Rpb25zL2RlcHJlY2lhdGlvbnMgZmlsdGVyZWQgYnkgc3BlY2lmaWVkIGRhdGVcbiAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLmdldCgnZGF0ZUZyb20nKS52YWx1ZUNoYW5nZXMsIHRoaXMuZ2V0KCdkYXRlVG8nKS52YWx1ZUNoYW5nZXNdKVxuICAgICAgLnN1YnNjcmliZSgoW2RhdGVGcm9tLCBkYXRlVG9dKSA9PiB7XG4gICAgICAgIGNvbnN0IGZpbHRlcmVkVHJhbnNhY3Rpb25zID0gdHJhbnNhY3Rpb25zLmZpbHRlckJ5UmFuZ2UoJ2RhdGUnLCBkYXRlRnJvbSwgZGF0ZVRvKTtcbiAgICAgICAgY29uc3QgZmlsdGVyZWREZXByZWNpYXRpb25zID0gZGVwcmVjaWF0aW9ucy5maWx0ZXJCeVJhbmdlKCdkYXRlJywgZGF0ZUZyb20sIGRhdGVUbyk7XG5cbiAgICAgICAgY29uc3QgaW5jb21lVHJhbnNhY3Rpb25zID0gZmlsdGVyZWRUcmFuc2FjdGlvbnMuZ2V0SW5jb21lVHJhbnNhY3Rpb25zKCk7XG4gICAgICAgIGNvbnN0IGV4cGVuc2VUcmFuc2FjdGlvbnMgPSBuZXcgVHJhbnNhY3Rpb25Db2xsZWN0aW9uKFxuICAgICAgICAgIGZpbHRlcmVkVHJhbnNhY3Rpb25zLmdldEV4cGVuc2VUcmFuc2FjdGlvbnMoKS50b0FycmF5KCksXG4gICAgICAgICAgZmlsdGVyZWREZXByZWNpYXRpb25zLnRvQXJyYXkoKVxuICAgICAgICApO1xuXG4gICAgICAgIC8vIGFsbCBzb2xlIGluY29tZSBjbGFpbWVkIGFzIDEwMCVcbiAgICAgICAgLy8gQFRPRE8gdGVtcCBmaXgsIHdhaXRpbmcgZm9yIFRULTM1MDMvVFQtMzQ5NSBicmVha2luZyBjaGFuZ2VzXG4gICAgICAgIHRoaXMucGF0Y2hGaWVsZCgnaW5jb21lJywgaW5jb21lVHJhbnNhY3Rpb25zLmdldEFsbG9jYXRlZEFtb3VudChhbGxvY2F0aW9ucykpO1xuICAgICAgICB0aGlzLnBhdGNoRmllbGQoJ2luY29tZUdTVCcsIGluY29tZVRyYW5zYWN0aW9ucy5jYWxjdWxhdGVBbGxvY2F0ZWRHU1QoYWxsb2NhdGlvbnMpKTtcbiAgICAgICAgdGhpcy5wYXRjaEZpZWxkKCdleHBlbnNlR1NUJywgZXhwZW5zZVRyYW5zYWN0aW9ucy5maWx0ZXJCeSgnaXNHU1QnLCB0cnVlKS5zdW1CeSgnZ3N0Q2xhaW1BbW91bnQnKSk7XG4gICAgICB9KTtcblxuICAgIC8vIGNhbGN1bGF0ZSB0YXhXaXRoaGVsZFRvdGFsXG4gICAgY29tYmluZUxhdGVzdChbdGhpcy5nZXQoJ3RheFdpdGhoZWxkU2FsYXJ5JykudmFsdWVDaGFuZ2VzLCB0aGlzLmdldCgndGF4V2l0aGhlbGROb0FCTicpLnZhbHVlQ2hhbmdlc10pXG4gICAgICAuc3Vic2NyaWJlKChbdGF4V2l0aGhlbGRTYWxhcnksIHRheFdpdGhoZWxkTm9BQk5dKSA9PiB7XG4gICAgICAgIHRoaXMucGF0Y2hGaWVsZCgndGF4V2l0aGhlbGRUb3RhbCcsIHRheFdpdGhoZWxkU2FsYXJ5ICsgdGF4V2l0aGhlbGROb0FCTik7XG4gICAgICB9KTtcblxuICAgIC8vIGNhbGN1bGF0ZSBnc3QgcGF5YWJsZS9yZWZ1bmRhYmxlXG4gICAgY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLmdldCgnaW5jb21lR1NUJykudmFsdWVDaGFuZ2VzLFxuICAgICAgdGhpcy5nZXQoJ2V4cGVuc2VHU1QnKS52YWx1ZUNoYW5nZXMsXG4gICAgICB0aGlzLmdldCgndGF4V2l0aGhlbGRUb3RhbCcpLnZhbHVlQ2hhbmdlcyxcbiAgICAgIHRoaXMuZ2V0KCdwYXlnVGF4SW5zdGFsbWVudCcpLnZhbHVlQ2hhbmdlcyxcbiAgICAgIHRoaXMuZ2V0KCdmdWVsVGF4Q3JlZGl0JykudmFsdWVDaGFuZ2VzLFxuICAgIF0pLnN1YnNjcmliZSgoW2luY29tZUdTVCwgZXhwZW5zZUdTVCwgdGF4V2l0aGhlbGRUb3RhbCwgcGF5Z1RheEluc3RhbG1lbnQsIGZ1ZWxUYXhDcmVkaXRdKSA9PiB7XG4gICAgICB0aGlzLnBhdGNoRmllbGQoJ2dzdCcsIGluY29tZUdTVCAtIGV4cGVuc2VHU1QgKyB0YXhXaXRoaGVsZFRvdGFsICsgcGF5Z1RheEluc3RhbG1lbnQgLSBmdWVsVGF4Q3JlZGl0KTtcbiAgICB9KTtcblxuICAgIC8vIGVtaXQgaW5pdCB2YWx1ZXMgdG8gY2FsY3VsYXRlIGR5bmFtaWMgZmllbGRzXG4gICAgaWYgKHJlcG9ydC5pZCkge1xuICAgICAgdGhpcy5lbWl0VmFsdWVzKCk7XG4gICAgfVxuICB9XG5cbiAgc3VibWl0KGRhdGE6IG9iamVjdCA9IHt9KTogQmFzUmVwb3J0IHtcbiAgICByZXR1cm4gc3VwZXIuc3VibWl0KGRhdGEsIHRydWUpO1xuICB9XG59XG4iXX0=
@@ -83,12 +83,18 @@ export class SoleInvoice extends SoleInvoiceBase {
83
83
  isPending() {
84
84
  return this.status === SoleInvoiceStatusesEnum.PENDING;
85
85
  }
86
- isPaid() {
86
+ isAllocated() {
87
87
  return this.status === SoleInvoiceStatusesEnum.PAID;
88
88
  }
89
89
  isPaidCash() {
90
90
  return this.status === SoleInvoiceStatusesEnum.PAID_CASH;
91
91
  }
92
+ isPaid() {
93
+ return this.isAllocated() || this.isPaidCash();
94
+ }
95
+ isEditable() {
96
+ return this.isDraft() || this.isPending();
97
+ }
92
98
  isOverdue() {
93
99
  return this.isPending() && this.dateTo < new Date();
94
100
  }
@@ -146,4 +152,4 @@ __decorate([
146
152
  __decorate([
147
153
  Type(() => BankAccount)
148
154
  ], SoleInvoice.prototype, "bankAccount", void 0);
149
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29sZS1pbnZvaWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL21vZGVscy9zb2xlL3NvbGUtaW52b2ljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFdBQVcsSUFBSSxlQUFlLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUNqRixPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sU0FBUyxDQUFDO0FBQzdCLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUN2QyxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUNsRixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sU0FBUyxDQUFDO0FBQ3BDLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQ2pGLE9BQU8sRUFBQyxVQUFVLEVBQUUseUJBQXlCLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUN4RSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDaEQsT0FBTyxLQUFLLE1BQU0sY0FBYyxDQUFDO0FBRWpDLE1BQU0sT0FBTyxXQUFZLFNBQVEsZUFBZTtJQUFoRDs7UUF3QkUsV0FBTSxHQUE0Qix1QkFBdUIsQ0FBQyxLQUFLLENBQUM7UUFDaEUsWUFBTyxHQUEyQixzQkFBc0IsQ0FBQyxNQUFNLENBQUM7SUFrSWxFLENBQUM7YUExSlEsa0JBQWEsR0FBRyxDQUFDLENBQUM7SUEwQnpCOztPQUVHO0lBQ0gsSUFBSSxlQUFlO1FBQ2pCLE9BQU8sSUFBSSx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBWSxLQUFLO1FBQ2YsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLFFBQVE7UUFDVixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRTtZQUN6QixPQUFPLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztTQUNwQztRQUVELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLFVBQVU7UUFDWixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRTtZQUN6QixPQUFPLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztTQUNwQztRQUVELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLFNBQVM7UUFDWCxRQUFRLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDcEIsS0FBSyxzQkFBc0IsQ0FBQyxhQUFhO2dCQUN2QyxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztZQUNqQyxLQUFLLHNCQUFzQixDQUFDLGFBQWE7Z0JBQ3ZDLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDO1lBQ2pDLEtBQUssc0JBQXNCLENBQUMsTUFBTTtnQkFDaEMsT0FBTyxDQUFDLENBQUM7U0FDWjtJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILElBQVksa0JBQWtCO1FBQzVCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDO1FBRS9DLE9BQU8sS0FBSyxDQUFDLFFBQVEsR0FBRyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsR0FBRyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFZLGtCQUFrQjtRQUM1QixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsR0FBRyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQ3pFLENBQUM7SUFFRCxPQUFPO1FBQ0wsT0FBTyxJQUFJLENBQUMsTUFBTSxLQUFLLHVCQUF1QixDQUFDLEtBQUssQ0FBQztJQUN2RCxDQUFDO0lBRUQsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDLE1BQU0sS0FBSyx1QkFBdUIsQ0FBQyxRQUFRLENBQUM7SUFDMUQsQ0FBQztJQUVELFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLEtBQUssdUJBQXVCLENBQUMsT0FBTyxDQUFDO0lBQ3pELENBQUM7SUFFRCxNQUFNO1FBQ0osT0FBTyxJQUFJLENBQUMsTUFBTSxLQUFLLHVCQUF1QixDQUFDLElBQUksQ0FBQztJQUN0RCxDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLE1BQU0sS0FBSyx1QkFBdUIsQ0FBQyxTQUFTLENBQUM7SUFDM0QsQ0FBQztJQUVELFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7SUFDdEQsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksSUFBSSxFQUFFLENBQUM7SUFDdkQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsT0FBTztRQUNMLE9BQU8sSUFBSSxDQUFDLE9BQU8sS0FBSyxzQkFBc0IsQ0FBQyxNQUFNLENBQUM7SUFDeEQsQ0FBQztJQUVEOzs7T0FHRztJQUNILGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQyxPQUFPLEtBQUssc0JBQXNCLENBQUMsYUFBYSxDQUFDO0lBQy9ELENBQUM7SUFFRDs7O09BR0c7SUFDSCxjQUFjO1FBQ1osT0FBTyxJQUFJLENBQUMsT0FBTyxLQUFLLHNCQUFzQixDQUFDLGFBQWEsQ0FBQztJQUMvRCxDQUFDO0lBRUQsU0FBUztRQUNQLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxXQUFXLElBQUksQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDO0lBQzNDLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsT0FBTyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDNUQsQ0FBQzs7QUF0SkQ7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDOzZDQUNGO0FBR2Y7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDOzJDQUNKO0FBR2I7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDO3lDQUNOO0FBR1g7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDOzZDQUNGO0FBR3ZCO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLGVBQWUsQ0FBQzswQ0FDSDtBQUd6QjtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUM7MENBQ0w7QUFHbkI7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDO2dEQUNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtTb2xlSW52b2ljZSBhcyBTb2xlSW52b2ljZUJhc2V9IGZyb20gJy4uLy4uL2RiL01vZGVscy9zb2xlL3NvbGUtaW52b2ljZSc7XG5pbXBvcnQge1VzZXJ9IGZyb20gJy4uL3VzZXInO1xuaW1wb3J0IHtTb2xlQnVzaW5lc3N9IGZyb20gJy4vc29sZS1idXNpbmVzcyc7XG5pbXBvcnQge1NvbGVJbnZvaWNlSXRlbX0gZnJvbSAnLi9zb2xlLWludm9pY2UtaXRlbSc7XG5pbXBvcnQge1NvbGVDb250YWN0fSBmcm9tICcuL3NvbGUtY29udGFjdCc7XG5pbXBvcnQge1R5cGV9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7U29sZUludm9pY2VTdGF0dXNlc0VudW19IGZyb20gJy4uLy4uL2RiL0VudW1zL3NvbGUtaW52b2ljZS1zdGF0dXNlcy5lbnVtJztcbmltcG9ydCB7QmFua0FjY291bnR9IGZyb20gJy4uL2JhbmsnO1xuaW1wb3J0IHtTb2xlSW52b2ljZVRheFR5cGVFbnVtfSBmcm9tICcuLi8uLi9kYi9FbnVtcy9zb2xlLWludm9pY2UtdGF4LXR5cGUuZW51bSc7XG5pbXBvcnQge0NvbGxlY3Rpb24sIFNvbGVJbnZvaWNlSXRlbUNvbGxlY3Rpb259IGZyb20gJy4uLy4uL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7Q2hhcnRBY2NvdW50c30gZnJvbSAnLi4vY2hhcnQtYWNjb3VudHMnO1xuaW1wb3J0IHJvdW5kIGZyb20gJ2xvZGFzaC9yb3VuZCc7XG5cbmV4cG9ydCBjbGFzcyBTb2xlSW52b2ljZSBleHRlbmRzIFNvbGVJbnZvaWNlQmFzZSB7XG4gIHN0YXRpYyBOVU1CRVJfTEVOR1RIID0gNDtcblxuICBAVHlwZSgoKSA9PiBEYXRlKVxuICBkYXRlRnJvbTogRGF0ZTtcblxuICBAVHlwZSgoKSA9PiBEYXRlKVxuICBkYXRlVG86IERhdGU7XG5cbiAgQFR5cGUoKCkgPT4gVXNlcilcbiAgdXNlcjogVXNlcjtcblxuICBAVHlwZSgoKSA9PiBTb2xlQnVzaW5lc3MpXG4gIGJ1c2luZXNzOiBTb2xlQnVzaW5lc3M7XG5cbiAgQFR5cGUoKCkgPT4gU29sZUludm9pY2VJdGVtKVxuICBpdGVtczogU29sZUludm9pY2VJdGVtW107XG5cbiAgQFR5cGUoKCkgPT4gU29sZUNvbnRhY3QpXG4gIHBheWVyOiBTb2xlQ29udGFjdDtcblxuICBAVHlwZSgoKSA9PiBCYW5rQWNjb3VudClcbiAgYmFua0FjY291bnQ6IEJhbmtBY2NvdW50O1xuXG4gIHN0YXR1czogU29sZUludm9pY2VTdGF0dXNlc0VudW0gPSBTb2xlSW52b2ljZVN0YXR1c2VzRW51bS5EUkFGVDtcbiAgdGF4VHlwZTogU29sZUludm9pY2VUYXhUeXBlRW51bSA9IFNvbGVJbnZvaWNlVGF4VHlwZUVudW0uTk9fVEFYO1xuXG4gIC8qKlxuICAgKiBHZXQgaXRlbXMgYXJyYXkgYXMgY29sbGVjdGlvblxuICAgKi9cbiAgZ2V0IGl0ZW1zQ29sbGVjdGlvbigpOiBTb2xlSW52b2ljZUl0ZW1Db2xsZWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IFNvbGVJbnZvaWNlSXRlbUNvbGxlY3Rpb24odGhpcy5pdGVtcyk7XG4gIH1cblxuICAvKipcbiAgICogVG90YWwgcHJpY2Ugb2YgYWxsIGl0ZW1zXG4gICAqL1xuICBwcml2YXRlIGdldCBwcmljZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLml0ZW1zQ29sbGVjdGlvbi5zdW1CeSgndG90YWxQcmljZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRvdGFsIGludm9pY2UgcHJpY2Ugd2l0aG91dCBHU1RcbiAgICovXG4gIGdldCBuZXRQcmljZSgpOiBudW1iZXIge1xuICAgIGlmICh0aGlzLmlzVGF4SW5jbHVzaXZlKCkpIHtcbiAgICAgIHJldHVybiB0aGlzLnByaWNlIC0gdGhpcy5HU1RBbW91bnQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMucHJpY2U7XG4gIH1cblxuICAvKipcbiAgICogVG90YWwgZmluYWwgcHJpY2UgKG5ldCArIEdTVClcbiAgICovXG4gIGdldCBncm9zc1ByaWNlKCk6IG51bWJlciB7XG4gICAgaWYgKHRoaXMuaXNUYXhFeGNsdXNpdmUoKSkge1xuICAgICAgcmV0dXJuIHRoaXMucHJpY2UgKyB0aGlzLkdTVEFtb3VudDtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5wcmljZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUb3RhbCBHU1QgYW1vdW50XG4gICAqL1xuICBnZXQgR1NUQW1vdW50KCk6IG51bWJlciB7XG4gICAgc3dpdGNoICh0aGlzLnRheFR5cGUpIHtcbiAgICAgIGNhc2UgU29sZUludm9pY2VUYXhUeXBlRW51bS5UQVhfSU5DTFVTSVZFOlxuICAgICAgICByZXR1cm4gdGhpcy5pbmNsdXNpdmVHU1RBbW91bnQ7XG4gICAgICBjYXNlIFNvbGVJbnZvaWNlVGF4VHlwZUVudW0uVEFYX0VYQ0xVU0lWRTpcbiAgICAgICAgcmV0dXJuIHRoaXMuZXhjbHVzaXZlR1NUQW1vdW50O1xuICAgICAgY2FzZSBTb2xlSW52b2ljZVRheFR5cGVFbnVtLk5PX1RBWDpcbiAgICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFdoZW4gdGF4IGluY2x1c2l2ZSwgR1NUIGFtb3VudCBpcyBpbmNsdWRlZCB0byB0b3RhbCBwcmljZVxuICAgKi9cbiAgcHJpdmF0ZSBnZXQgaW5jbHVzaXZlR1NUQW1vdW50KCk6IG51bWJlciB7XG4gICAgY29uc3QgZ3N0UHJpY2UgPSB0aGlzLml0ZW1zQ29sbGVjdGlvbi5nc3RQcmljZTtcblxuICAgIHJldHVybiByb3VuZChnc3RQcmljZSAtIChnc3RQcmljZSAvICgxICsgQ2hhcnRBY2NvdW50cy5HU1RSYXRpbykpLCAyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGVuIHRheCBleGNsdXNpdmUsIEdTVCBhbW91bnQgc2hvdWxkIGJlIGFkZGVkIGFkZGl0aW9uYWxseSB0byB0b3RhbCBwcmljZVxuICAgKi9cbiAgcHJpdmF0ZSBnZXQgZXhjbHVzaXZlR1NUQW1vdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHJvdW5kKHRoaXMuaXRlbXNDb2xsZWN0aW9uLmdzdFByaWNlICogQ2hhcnRBY2NvdW50cy5HU1RSYXRpbywgMilcbiAgfVxuXG4gIGlzRHJhZnQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdHVzID09PSBTb2xlSW52b2ljZVN0YXR1c2VzRW51bS5EUkFGVDtcbiAgfVxuXG4gIGlzQ2FuY2VsbGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0YXR1cyA9PT0gU29sZUludm9pY2VTdGF0dXNlc0VudW0uQ0FOQ0VMRUQ7XG4gIH1cblxuICBpc1BlbmRpbmcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdHVzID09PSBTb2xlSW52b2ljZVN0YXR1c2VzRW51bS5QRU5ESU5HO1xuICB9XG5cbiAgaXNQYWlkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0YXR1cyA9PT0gU29sZUludm9pY2VTdGF0dXNlc0VudW0uUEFJRDtcbiAgfVxuXG4gIGlzUGFpZENhc2goKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdHVzID09PSBTb2xlSW52b2ljZVN0YXR1c2VzRW51bS5QQUlEX0NBU0g7XG4gIH1cblxuICBpc092ZXJkdWUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNQZW5kaW5nKCkgJiYgdGhpcy5kYXRlVG8gPCBuZXcgRGF0ZSgpO1xuICB9XG5cbiAgaXNVbnBhaWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNQZW5kaW5nKCkgJiYgdGhpcy5kYXRlVG8gPj0gbmV3IERhdGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHU1QgaXMgbm90IGF2YWlsYWJsZSBmb3IgaW52b2ljZXMgd2l0aG91dCB0YXhlc1xuICAgKi9cbiAgaXNOb1RheCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50YXhUeXBlID09PSBTb2xlSW52b2ljZVRheFR5cGVFbnVtLk5PX1RBWDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHU1QgYW1vdW50IGlzIG5vdCBpbmNsdWRlZCBpbiBpdGVtcyBwcmljZXMgZm9yIGludm9pY2VzIHdpdGggdGF4IGV4Y2x1c2l2ZSxcbiAgICogd2Ugc2hvdWxkIGFkZCBHU1QgYW1vdW50IGFkZGl0aW9uYWx5IHRvIHN1YnRvdGFsIHByaWNlIHRvIGdldCB0b3RhbCBwcmljZVxuICAgKi9cbiAgaXNUYXhFeGNsdXNpdmUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudGF4VHlwZSA9PT0gU29sZUludm9pY2VUYXhUeXBlRW51bS5UQVhfRVhDTFVTSVZFO1xuICB9XG5cbiAgLyoqXG4gICAqIEdTVCBhbW91bnQgYWxyZWFkeSBpbmNsdWRlZCBpbiBpdGVtcyBwcmljZXMgZm9yIGludm9pY2VzIHdpdGggdGF4IGluY2x1c2l2ZSxcbiAgICogd2Ugc2hvdWxkIHN1YnRyYWN0IEdTVCBhbW91bnQgZnJvbSB0b3RhbCBwcmljZSB0byBnZXQgc3VidG90YWwgcHJpY2VcbiAgICovXG4gIGlzVGF4SW5jbHVzaXZlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnRheFR5cGUgPT09IFNvbGVJbnZvaWNlVGF4VHlwZUVudW0uVEFYX0lOQ0xVU0lWRTtcbiAgfVxuXG4gIGdldE51bWJlcigpOiBzdHJpbmcge1xuICAgIHJldHVybiBTdHJpbmcodGhpcy5udW1iZXIpLnBhZFN0YXJ0KFNvbGVJbnZvaWNlLk5VTUJFUl9MRU5HVEgsICcwJyk7XG4gIH1cblxuICBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgaW52b2ljZS0ke3RoaXMuZ2V0TnVtYmVyKCl9LnBkZmA7XG4gIH1cblxuICBnZXRUcmFuc2FjdGlvbnNJZHMoKTogbnVtYmVyW10ge1xuICAgIHJldHVybiBuZXcgQ29sbGVjdGlvbih0aGlzLml0ZW1zKS5tYXBCeSgndHJhbnNhY3Rpb24uaWQnKTtcbiAgfVxufVxuIl19
155
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29sZS1pbnZvaWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL21vZGVscy9zb2xlL3NvbGUtaW52b2ljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFdBQVcsSUFBSSxlQUFlLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQy9CLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNwRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxVQUFVLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxLQUFLLE1BQU0sY0FBYyxDQUFDO0FBRWpDLE1BQU0sT0FBTyxXQUFZLFNBQVEsZUFBZTtJQUFoRDs7UUF3QkUsV0FBTSxHQUE0Qix1QkFBdUIsQ0FBQyxLQUFLLENBQUM7UUFDaEUsWUFBTyxHQUEyQixzQkFBc0IsQ0FBQyxNQUFNLENBQUM7SUEwSWxFLENBQUM7YUFsS1Esa0JBQWEsR0FBRyxDQUFDLENBQUM7SUEwQnpCOztPQUVHO0lBQ0gsSUFBSSxlQUFlO1FBQ2pCLE9BQU8sSUFBSSx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBWSxLQUFLO1FBQ2YsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLFFBQVE7UUFDVixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRTtZQUN6QixPQUFPLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztTQUNwQztRQUVELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLFVBQVU7UUFDWixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRTtZQUN6QixPQUFPLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztTQUNwQztRQUVELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLFNBQVM7UUFDWCxRQUFRLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDcEIsS0FBSyxzQkFBc0IsQ0FBQyxhQUFhO2dCQUN2QyxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztZQUNqQyxLQUFLLHNCQUFzQixDQUFDLGFBQWE7Z0JBQ3ZDLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDO1lBQ2pDLEtBQUssc0JBQXNCLENBQUMsTUFBTTtnQkFDaEMsT0FBTyxDQUFDLENBQUM7U0FDWjtJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILElBQVksa0JBQWtCO1FBQzVCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDO1FBRS9DLE9BQU8sS0FBSyxDQUFDLFFBQVEsR0FBRyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsR0FBRyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFZLGtCQUFrQjtRQUM1QixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsR0FBRyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQ3pFLENBQUM7SUFFRCxPQUFPO1FBQ0wsT0FBTyxJQUFJLENBQUMsTUFBTSxLQUFLLHVCQUF1QixDQUFDLEtBQUssQ0FBQztJQUN2RCxDQUFDO0lBRUQsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDLE1BQU0sS0FBSyx1QkFBdUIsQ0FBQyxRQUFRLENBQUM7SUFDMUQsQ0FBQztJQUVELFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLEtBQUssdUJBQXVCLENBQUMsT0FBTyxDQUFDO0lBQ3pELENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUMsTUFBTSxLQUFLLHVCQUF1QixDQUFDLElBQUksQ0FBQztJQUN0RCxDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLE1BQU0sS0FBSyx1QkFBdUIsQ0FBQyxTQUFTLENBQUM7SUFDM0QsQ0FBQztJQUVELE1BQU07UUFDSixPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDakQsQ0FBQztJQUVELFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVELFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7SUFDdEQsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksSUFBSSxFQUFFLENBQUM7SUFDdkQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsT0FBTztRQUNMLE9BQU8sSUFBSSxDQUFDLE9BQU8sS0FBSyxzQkFBc0IsQ0FBQyxNQUFNLENBQUM7SUFDeEQsQ0FBQztJQUVEOzs7T0FHRztJQUNILGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQyxPQUFPLEtBQUssc0JBQXNCLENBQUMsYUFBYSxDQUFDO0lBQy9ELENBQUM7SUFFRDs7O09BR0c7SUFDSCxjQUFjO1FBQ1osT0FBTyxJQUFJLENBQUMsT0FBTyxLQUFLLHNCQUFzQixDQUFDLGFBQWEsQ0FBQztJQUMvRCxDQUFDO0lBRUQsU0FBUztRQUNQLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxXQUFXLElBQUksQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDO0lBQzNDLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsT0FBTyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDNUQsQ0FBQzs7QUE5SkQ7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDOzZDQUNGO0FBR2Y7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDOzJDQUNKO0FBR2I7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDO3lDQUNOO0FBR1g7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDOzZDQUNGO0FBR3ZCO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLGVBQWUsQ0FBQzswQ0FDSDtBQUd6QjtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUM7MENBQ0w7QUFHbkI7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDO2dEQUNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU29sZUludm9pY2UgYXMgU29sZUludm9pY2VCYXNlIH0gZnJvbSAnLi4vLi4vZGIvTW9kZWxzL3NvbGUvc29sZS1pbnZvaWNlJztcbmltcG9ydCB7IFVzZXIgfSBmcm9tICcuLi91c2VyJztcbmltcG9ydCB7IFNvbGVCdXNpbmVzcyB9IGZyb20gJy4vc29sZS1idXNpbmVzcyc7XG5pbXBvcnQgeyBTb2xlSW52b2ljZUl0ZW0gfSBmcm9tICcuL3NvbGUtaW52b2ljZS1pdGVtJztcbmltcG9ydCB7IFNvbGVDb250YWN0IH0gZnJvbSAnLi9zb2xlLWNvbnRhY3QnO1xuaW1wb3J0IHsgVHlwZSB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IFNvbGVJbnZvaWNlU3RhdHVzZXNFbnVtIH0gZnJvbSAnLi4vLi4vZGIvRW51bXMvc29sZS1pbnZvaWNlLXN0YXR1c2VzLmVudW0nO1xuaW1wb3J0IHsgQmFua0FjY291bnQgfSBmcm9tICcuLi9iYW5rJztcbmltcG9ydCB7IFNvbGVJbnZvaWNlVGF4VHlwZUVudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy9zb2xlLWludm9pY2UtdGF4LXR5cGUuZW51bSc7XG5pbXBvcnQgeyBDb2xsZWN0aW9uLCBTb2xlSW52b2ljZUl0ZW1Db2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vY29sbGVjdGlvbnMnO1xuaW1wb3J0IHsgQ2hhcnRBY2NvdW50cyB9IGZyb20gJy4uL2NoYXJ0LWFjY291bnRzJztcbmltcG9ydCByb3VuZCBmcm9tICdsb2Rhc2gvcm91bmQnO1xuXG5leHBvcnQgY2xhc3MgU29sZUludm9pY2UgZXh0ZW5kcyBTb2xlSW52b2ljZUJhc2Uge1xuICBzdGF0aWMgTlVNQkVSX0xFTkdUSCA9IDQ7XG5cbiAgQFR5cGUoKCkgPT4gRGF0ZSlcbiAgZGF0ZUZyb206IERhdGU7XG5cbiAgQFR5cGUoKCkgPT4gRGF0ZSlcbiAgZGF0ZVRvOiBEYXRlO1xuXG4gIEBUeXBlKCgpID0+IFVzZXIpXG4gIHVzZXI6IFVzZXI7XG5cbiAgQFR5cGUoKCkgPT4gU29sZUJ1c2luZXNzKVxuICBidXNpbmVzczogU29sZUJ1c2luZXNzO1xuXG4gIEBUeXBlKCgpID0+IFNvbGVJbnZvaWNlSXRlbSlcbiAgaXRlbXM6IFNvbGVJbnZvaWNlSXRlbVtdO1xuXG4gIEBUeXBlKCgpID0+IFNvbGVDb250YWN0KVxuICBwYXllcjogU29sZUNvbnRhY3Q7XG5cbiAgQFR5cGUoKCkgPT4gQmFua0FjY291bnQpXG4gIGJhbmtBY2NvdW50OiBCYW5rQWNjb3VudDtcblxuICBzdGF0dXM6IFNvbGVJbnZvaWNlU3RhdHVzZXNFbnVtID0gU29sZUludm9pY2VTdGF0dXNlc0VudW0uRFJBRlQ7XG4gIHRheFR5cGU6IFNvbGVJbnZvaWNlVGF4VHlwZUVudW0gPSBTb2xlSW52b2ljZVRheFR5cGVFbnVtLk5PX1RBWDtcblxuICAvKipcbiAgICogR2V0IGl0ZW1zIGFycmF5IGFzIGNvbGxlY3Rpb25cbiAgICovXG4gIGdldCBpdGVtc0NvbGxlY3Rpb24oKTogU29sZUludm9pY2VJdGVtQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBTb2xlSW52b2ljZUl0ZW1Db2xsZWN0aW9uKHRoaXMuaXRlbXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRvdGFsIHByaWNlIG9mIGFsbCBpdGVtc1xuICAgKi9cbiAgcHJpdmF0ZSBnZXQgcHJpY2UoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtc0NvbGxlY3Rpb24uc3VtQnkoJ3RvdGFsUHJpY2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUb3RhbCBpbnZvaWNlIHByaWNlIHdpdGhvdXQgR1NUXG4gICAqL1xuICBnZXQgbmV0UHJpY2UoKTogbnVtYmVyIHtcbiAgICBpZiAodGhpcy5pc1RheEluY2x1c2l2ZSgpKSB7XG4gICAgICByZXR1cm4gdGhpcy5wcmljZSAtIHRoaXMuR1NUQW1vdW50O1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnByaWNlO1xuICB9XG5cbiAgLyoqXG4gICAqIFRvdGFsIGZpbmFsIHByaWNlIChuZXQgKyBHU1QpXG4gICAqL1xuICBnZXQgZ3Jvc3NQcmljZSgpOiBudW1iZXIge1xuICAgIGlmICh0aGlzLmlzVGF4RXhjbHVzaXZlKCkpIHtcbiAgICAgIHJldHVybiB0aGlzLnByaWNlICsgdGhpcy5HU1RBbW91bnQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMucHJpY2U7XG4gIH1cblxuICAvKipcbiAgICogVG90YWwgR1NUIGFtb3VudFxuICAgKi9cbiAgZ2V0IEdTVEFtb3VudCgpOiBudW1iZXIge1xuICAgIHN3aXRjaCAodGhpcy50YXhUeXBlKSB7XG4gICAgICBjYXNlIFNvbGVJbnZvaWNlVGF4VHlwZUVudW0uVEFYX0lOQ0xVU0lWRTpcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5jbHVzaXZlR1NUQW1vdW50O1xuICAgICAgY2FzZSBTb2xlSW52b2ljZVRheFR5cGVFbnVtLlRBWF9FWENMVVNJVkU6XG4gICAgICAgIHJldHVybiB0aGlzLmV4Y2x1c2l2ZUdTVEFtb3VudDtcbiAgICAgIGNhc2UgU29sZUludm9pY2VUYXhUeXBlRW51bS5OT19UQVg6XG4gICAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBXaGVuIHRheCBpbmNsdXNpdmUsIEdTVCBhbW91bnQgaXMgaW5jbHVkZWQgdG8gdG90YWwgcHJpY2VcbiAgICovXG4gIHByaXZhdGUgZ2V0IGluY2x1c2l2ZUdTVEFtb3VudCgpOiBudW1iZXIge1xuICAgIGNvbnN0IGdzdFByaWNlID0gdGhpcy5pdGVtc0NvbGxlY3Rpb24uZ3N0UHJpY2U7XG5cbiAgICByZXR1cm4gcm91bmQoZ3N0UHJpY2UgLSAoZ3N0UHJpY2UgLyAoMSArIENoYXJ0QWNjb3VudHMuR1NUUmF0aW8pKSwgMik7XG4gIH1cblxuICAvKipcbiAgICogV2hlbiB0YXggZXhjbHVzaXZlLCBHU1QgYW1vdW50IHNob3VsZCBiZSBhZGRlZCBhZGRpdGlvbmFsbHkgdG8gdG90YWwgcHJpY2VcbiAgICovXG4gIHByaXZhdGUgZ2V0IGV4Y2x1c2l2ZUdTVEFtb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiByb3VuZCh0aGlzLml0ZW1zQ29sbGVjdGlvbi5nc3RQcmljZSAqIENoYXJ0QWNjb3VudHMuR1NUUmF0aW8sIDIpXG4gIH1cblxuICBpc0RyYWZ0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0YXR1cyA9PT0gU29sZUludm9pY2VTdGF0dXNlc0VudW0uRFJBRlQ7XG4gIH1cblxuICBpc0NhbmNlbGxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0dXMgPT09IFNvbGVJbnZvaWNlU3RhdHVzZXNFbnVtLkNBTkNFTEVEO1xuICB9XG5cbiAgaXNQZW5kaW5nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0YXR1cyA9PT0gU29sZUludm9pY2VTdGF0dXNlc0VudW0uUEVORElORztcbiAgfVxuXG4gIGlzQWxsb2NhdGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0YXR1cyA9PT0gU29sZUludm9pY2VTdGF0dXNlc0VudW0uUEFJRDtcbiAgfVxuXG4gIGlzUGFpZENhc2goKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdHVzID09PSBTb2xlSW52b2ljZVN0YXR1c2VzRW51bS5QQUlEX0NBU0g7XG4gIH1cblxuICBpc1BhaWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNBbGxvY2F0ZWQoKSB8fCB0aGlzLmlzUGFpZENhc2goKTtcbiAgfVxuXG4gIGlzRWRpdGFibGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNEcmFmdCgpIHx8IHRoaXMuaXNQZW5kaW5nKCk7XG4gIH1cblxuICBpc092ZXJkdWUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNQZW5kaW5nKCkgJiYgdGhpcy5kYXRlVG8gPCBuZXcgRGF0ZSgpO1xuICB9XG5cbiAgaXNVbnBhaWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNQZW5kaW5nKCkgJiYgdGhpcy5kYXRlVG8gPj0gbmV3IERhdGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHU1QgaXMgbm90IGF2YWlsYWJsZSBmb3IgaW52b2ljZXMgd2l0aG91dCB0YXhlc1xuICAgKi9cbiAgaXNOb1RheCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50YXhUeXBlID09PSBTb2xlSW52b2ljZVRheFR5cGVFbnVtLk5PX1RBWDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHU1QgYW1vdW50IGlzIG5vdCBpbmNsdWRlZCBpbiBpdGVtcyBwcmljZXMgZm9yIGludm9pY2VzIHdpdGggdGF4IGV4Y2x1c2l2ZSxcbiAgICogd2Ugc2hvdWxkIGFkZCBHU1QgYW1vdW50IGFkZGl0aW9uYWx5IHRvIHN1YnRvdGFsIHByaWNlIHRvIGdldCB0b3RhbCBwcmljZVxuICAgKi9cbiAgaXNUYXhFeGNsdXNpdmUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudGF4VHlwZSA9PT0gU29sZUludm9pY2VUYXhUeXBlRW51bS5UQVhfRVhDTFVTSVZFO1xuICB9XG5cbiAgLyoqXG4gICAqIEdTVCBhbW91bnQgYWxyZWFkeSBpbmNsdWRlZCBpbiBpdGVtcyBwcmljZXMgZm9yIGludm9pY2VzIHdpdGggdGF4IGluY2x1c2l2ZSxcbiAgICogd2Ugc2hvdWxkIHN1YnRyYWN0IEdTVCBhbW91bnQgZnJvbSB0b3RhbCBwcmljZSB0byBnZXQgc3VidG90YWwgcHJpY2VcbiAgICovXG4gIGlzVGF4SW5jbHVzaXZlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnRheFR5cGUgPT09IFNvbGVJbnZvaWNlVGF4VHlwZUVudW0uVEFYX0lOQ0xVU0lWRTtcbiAgfVxuXG4gIGdldE51bWJlcigpOiBzdHJpbmcge1xuICAgIHJldHVybiBTdHJpbmcodGhpcy5udW1iZXIpLnBhZFN0YXJ0KFNvbGVJbnZvaWNlLk5VTUJFUl9MRU5HVEgsICcwJyk7XG4gIH1cblxuICBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgaW52b2ljZS0ke3RoaXMuZ2V0TnVtYmVyKCl9LnBkZmA7XG4gIH1cblxuICBnZXRUcmFuc2FjdGlvbnNJZHMoKTogbnVtYmVyW10ge1xuICAgIHJldHVybiBuZXcgQ29sbGVjdGlvbih0aGlzLml0ZW1zKS5tYXBCeSgndHJhbnNhY3Rpb24uaWQnKTtcbiAgfVxufVxuIl19