@elderbyte/ngx-starter 18.11.1 → 18.12.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,10 +1,6 @@
1
1
  import { DataContextLifeCycleBinding } from './data-context-life-cycle-binding';
2
+ import { DeepPartialPatcher } from '../datasource/patch/deep-partial-patcher';
2
3
  export class DataContextSourceEventBinding extends DataContextLifeCycleBinding {
3
- /***************************************************************************
4
- * *
5
- * Fields *
6
- * *
7
- **************************************************************************/
8
4
  /***************************************************************************
9
5
  * *
10
6
  * Constructor *
@@ -36,11 +32,32 @@ export class DataContextSourceEventBinding extends DataContextLifeCycleBinding {
36
32
  }
37
33
  // We might also be able to perform deletions locally, and avoid reload data
38
34
  if (event.modified) {
39
- this._dataContext.update(event.modified);
35
+ this.updateExisting(event.modified);
36
+ }
37
+ if (event.patches) {
38
+ this.updateExisting(this.buildPatchUpdates(event.patches));
39
+ }
40
+ }
41
+ updateExisting(entities) {
42
+ if (entities.length > 0) {
43
+ this._dataContext.update(entities);
40
44
  }
41
45
  }
42
46
  isReloadDesirable(event) {
43
47
  return event.unknownChanges || event.created || event.deletedIds;
44
48
  }
49
+ buildPatchUpdates(patches) {
50
+ return patches
51
+ .map((patch) => {
52
+ const existing = this._dataContext.findById(patch.entityId);
53
+ if (existing) {
54
+ return DeepPartialPatcher.patchShallowCopy(existing, patch.patch);
55
+ }
56
+ else {
57
+ return null;
58
+ }
59
+ })
60
+ .filter((update) => !!update);
61
+ }
45
62
  }
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1jb250ZXh0LXNvdXJjZS1ldmVudC1iaW5kaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tbW9uL2RhdGEvZGF0YS1jb250ZXh0L2RhdGEtY29udGV4dC1zb3VyY2UtZXZlbnQtYmluZGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTtBQUcvRSxNQUFNLE9BQU8sNkJBQXVDLFNBQVEsMkJBQTJCO0lBQ3JGOzs7O2dGQUk0RTtJQUU1RTs7OztnRkFJNEU7SUFFNUUsWUFDRSxXQUE0QixFQUNYLE9BQXVCLEVBQ3ZCLGVBQXdCO1FBRXpDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQTtRQUhELFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ3ZCLG9CQUFlLEdBQWYsZUFBZSxDQUFTO1FBR3pDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQTtJQUNsQixDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRWxFLFNBQVM7UUFDakIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUNoRSxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQ2xDLENBQUE7SUFDSCxDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRXBFLHFCQUFxQixDQUFDLEtBQStCO1FBQzNELElBQUksSUFBSSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMxRCxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFBO1lBQ2pELE9BQU07UUFDUixDQUFDO1FBRUQsNEVBQTRFO1FBRTVFLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUMxQyxDQUFDO0lBQ0gsQ0FBQztJQUVPLGlCQUFpQixDQUFDLEtBQStCO1FBQ3ZELE9BQU8sS0FBSyxDQUFDLGNBQWMsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUE7SUFDbEUsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSURhdGFDb250ZXh0IH0gZnJvbSAnLi9kYXRhLWNvbnRleHQnXG5pbXBvcnQgeyBJRGF0YVNvdXJjZSB9IGZyb20gJy4uL2RhdGFzb3VyY2UvZGF0YS1zb3VyY2UnXG5pbXBvcnQgeyBEYXRhQ29udGV4dExpZmVDeWNsZUJpbmRpbmcgfSBmcm9tICcuL2RhdGEtY29udGV4dC1saWZlLWN5Y2xlLWJpbmRpbmcnXG5pbXBvcnQgeyBEYXRhU291cmNlQ2hhbmdlRXZlbnQgfSBmcm9tICcuLi9kYXRhc291cmNlL2RhdGEtc291cmNlLWNoYW5nZS1ldmVudCdcblxuZXhwb3J0IGNsYXNzIERhdGFDb250ZXh0U291cmNlRXZlbnRCaW5kaW5nPFQgPSBhbnk+IGV4dGVuZHMgRGF0YUNvbnRleHRMaWZlQ3ljbGVCaW5kaW5nIHtcbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG4gICAgZGF0YUNvbnRleHQ6IElEYXRhQ29udGV4dDxUPixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRhdGFBcGk6IElEYXRhU291cmNlPFQ+LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVsb2FkT25DaGFuZ2VzOiBib29sZWFuXG4gICkge1xuICAgIHN1cGVyKGRhdGFDb250ZXh0KVxuICAgIHRoaXMuc3Vic2NyaWJlKClcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBJbnRlcm5hbCBJbXBsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByb3RlY3RlZCBzdWJzY3JpYmUoKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uID0gdGhpcy5kYXRhQXBpLmRhdGFDaGFuZ2VkLnN1YnNjcmliZSgoZXZlbnQpID0+XG4gICAgICB0aGlzLmhhbmRsZURhdGFDaGFuZ2VFdmVudChldmVudClcbiAgICApXG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIGhhbmRsZURhdGFDaGFuZ2VFdmVudChldmVudDogRGF0YVNvdXJjZUNoYW5nZUV2ZW50PFQ+KTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVsb2FkT25DaGFuZ2VzICYmIHRoaXMuaXNSZWxvYWREZXNpcmFibGUoZXZlbnQpKSB7XG4gICAgICB0aGlzLl9kYXRhQ29udGV4dC5yZWxvYWQoJ0RhdGFTb3VyY2VDaGFuZ2VFdmVudCcpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICAvLyBXZSBtaWdodCBhbHNvIGJlIGFibGUgdG8gcGVyZm9ybSBkZWxldGlvbnMgbG9jYWxseSwgYW5kIGF2b2lkIHJlbG9hZCBkYXRhXG5cbiAgICBpZiAoZXZlbnQubW9kaWZpZWQpIHtcbiAgICAgIHRoaXMuX2RhdGFDb250ZXh0LnVwZGF0ZShldmVudC5tb2RpZmllZClcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGlzUmVsb2FkRGVzaXJhYmxlKGV2ZW50OiBEYXRhU291cmNlQ2hhbmdlRXZlbnQ8VD4pIHtcbiAgICByZXR1cm4gZXZlbnQudW5rbm93bkNoYW5nZXMgfHwgZXZlbnQuY3JlYXRlZCB8fCBldmVudC5kZWxldGVkSWRzXG4gIH1cbn1cbiJdfQ==
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1jb250ZXh0LXNvdXJjZS1ldmVudC1iaW5kaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tbW9uL2RhdGEvZGF0YS1jb250ZXh0L2RhdGEtY29udGV4dC1zb3VyY2UtZXZlbnQtYmluZGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTtBQUsvRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQTtBQUU3RSxNQUFNLE9BQU8sNkJBQXVDLFNBQVEsMkJBQTJCO0lBQ3JGOzs7O2dGQUk0RTtJQUU1RSxZQUNFLFdBQTRCLEVBQ1gsT0FBdUIsRUFDdkIsZUFBd0I7UUFFekMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFBO1FBSEQsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFDdkIsb0JBQWUsR0FBZixlQUFlLENBQVM7UUFHekMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFBO0lBQ2xCLENBQUM7SUFFRDs7OztnRkFJNEU7SUFFbEUsU0FBUztRQUNqQixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQ2hFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FDbEMsQ0FBQTtJQUNILENBQUM7SUFFRDs7OztnRkFJNEU7SUFFcEUscUJBQXFCLENBQUMsS0FBK0I7UUFDM0QsSUFBSSxJQUFJLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzFELElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUE7WUFDakQsT0FBTTtRQUNSLENBQUM7UUFFRCw0RUFBNEU7UUFFNUUsSUFBSSxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDckMsQ0FBQztRQUVELElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFBO1FBQzVELENBQUM7SUFDSCxDQUFDO0lBRU8sY0FBYyxDQUFDLFFBQWE7UUFDbEMsSUFBSSxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQ3BDLENBQUM7SUFDSCxDQUFDO0lBRU8saUJBQWlCLENBQUMsS0FBK0I7UUFDdkQsT0FBTyxLQUFLLENBQUMsY0FBYyxJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQTtJQUNsRSxDQUFDO0lBRU8saUJBQWlCLENBQUMsT0FBbUM7UUFDM0QsT0FBTyxPQUFPO2FBQ1gsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDYixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUE7WUFDM0QsSUFBSSxRQUFRLEVBQUUsQ0FBQztnQkFDYixPQUFPLGtCQUFrQixDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUE7WUFDbkUsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE9BQU8sSUFBSSxDQUFBO1lBQ2IsQ0FBQztRQUNILENBQUMsQ0FBQzthQUNELE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQ2pDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElEYXRhQ29udGV4dCB9IGZyb20gJy4vZGF0YS1jb250ZXh0J1xuaW1wb3J0IHsgSURhdGFTb3VyY2UgfSBmcm9tICcuLi9kYXRhc291cmNlL2RhdGEtc291cmNlJ1xuaW1wb3J0IHsgRGF0YUNvbnRleHRMaWZlQ3ljbGVCaW5kaW5nIH0gZnJvbSAnLi9kYXRhLWNvbnRleHQtbGlmZS1jeWNsZS1iaW5kaW5nJ1xuaW1wb3J0IHtcbiAgRGF0YVNvdXJjZUNoYW5nZUV2ZW50LFxuICBEYXRhU291cmNlRW50aXR5UGF0Y2gsXG59IGZyb20gJy4uL2RhdGFzb3VyY2UvZGF0YS1zb3VyY2UtY2hhbmdlLWV2ZW50J1xuaW1wb3J0IHsgRGVlcFBhcnRpYWxQYXRjaGVyIH0gZnJvbSAnLi4vZGF0YXNvdXJjZS9wYXRjaC9kZWVwLXBhcnRpYWwtcGF0Y2hlcidcblxuZXhwb3J0IGNsYXNzIERhdGFDb250ZXh0U291cmNlRXZlbnRCaW5kaW5nPFQgPSBhbnk+IGV4dGVuZHMgRGF0YUNvbnRleHRMaWZlQ3ljbGVCaW5kaW5nIHtcbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG4gICAgZGF0YUNvbnRleHQ6IElEYXRhQ29udGV4dDxUPixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRhdGFBcGk6IElEYXRhU291cmNlPFQ+LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVsb2FkT25DaGFuZ2VzOiBib29sZWFuXG4gICkge1xuICAgIHN1cGVyKGRhdGFDb250ZXh0KVxuICAgIHRoaXMuc3Vic2NyaWJlKClcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBJbnRlcm5hbCBJbXBsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByb3RlY3RlZCBzdWJzY3JpYmUoKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uID0gdGhpcy5kYXRhQXBpLmRhdGFDaGFuZ2VkLnN1YnNjcmliZSgoZXZlbnQpID0+XG4gICAgICB0aGlzLmhhbmRsZURhdGFDaGFuZ2VFdmVudChldmVudClcbiAgICApXG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIGhhbmRsZURhdGFDaGFuZ2VFdmVudChldmVudDogRGF0YVNvdXJjZUNoYW5nZUV2ZW50PFQ+KTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVsb2FkT25DaGFuZ2VzICYmIHRoaXMuaXNSZWxvYWREZXNpcmFibGUoZXZlbnQpKSB7XG4gICAgICB0aGlzLl9kYXRhQ29udGV4dC5yZWxvYWQoJ0RhdGFTb3VyY2VDaGFuZ2VFdmVudCcpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICAvLyBXZSBtaWdodCBhbHNvIGJlIGFibGUgdG8gcGVyZm9ybSBkZWxldGlvbnMgbG9jYWxseSwgYW5kIGF2b2lkIHJlbG9hZCBkYXRhXG5cbiAgICBpZiAoZXZlbnQubW9kaWZpZWQpIHtcbiAgICAgIHRoaXMudXBkYXRlRXhpc3RpbmcoZXZlbnQubW9kaWZpZWQpXG4gICAgfVxuXG4gICAgaWYgKGV2ZW50LnBhdGNoZXMpIHtcbiAgICAgIHRoaXMudXBkYXRlRXhpc3RpbmcodGhpcy5idWlsZFBhdGNoVXBkYXRlcyhldmVudC5wYXRjaGVzKSlcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUV4aXN0aW5nKGVudGl0aWVzOiBUW10pOiB2b2lkIHtcbiAgICBpZiAoZW50aXRpZXMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5fZGF0YUNvbnRleHQudXBkYXRlKGVudGl0aWVzKVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaXNSZWxvYWREZXNpcmFibGUoZXZlbnQ6IERhdGFTb3VyY2VDaGFuZ2VFdmVudDxUPikge1xuICAgIHJldHVybiBldmVudC51bmtub3duQ2hhbmdlcyB8fCBldmVudC5jcmVhdGVkIHx8IGV2ZW50LmRlbGV0ZWRJZHNcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRQYXRjaFVwZGF0ZXMocGF0Y2hlczogRGF0YVNvdXJjZUVudGl0eVBhdGNoPFQ+W10pOiBUW10ge1xuICAgIHJldHVybiBwYXRjaGVzXG4gICAgICAubWFwKChwYXRjaCkgPT4ge1xuICAgICAgICBjb25zdCBleGlzdGluZyA9IHRoaXMuX2RhdGFDb250ZXh0LmZpbmRCeUlkKHBhdGNoLmVudGl0eUlkKVxuICAgICAgICBpZiAoZXhpc3RpbmcpIHtcbiAgICAgICAgICByZXR1cm4gRGVlcFBhcnRpYWxQYXRjaGVyLnBhdGNoU2hhbGxvd0NvcHkoZXhpc3RpbmcsIHBhdGNoLnBhdGNoKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBudWxsXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICAuZmlsdGVyKCh1cGRhdGUpID0+ICEhdXBkYXRlKVxuICB9XG59XG4iXX0=
@@ -1,24 +1,34 @@
1
- export var DataSourceChangeType;
2
- (function (DataSourceChangeType) {
3
- })(DataSourceChangeType || (DataSourceChangeType = {}));
1
+ export class DataSourceEntityPatch {
2
+ constructor(entityId, patch) {
3
+ this.entityId = entityId;
4
+ this.patch = patch;
5
+ }
6
+ }
7
+ /**
8
+ * Notifies about changes in a DataSource.
9
+ */
4
10
  export class DataSourceChangeEvent {
5
11
  static unknownChanges() {
6
- return new DataSourceChangeEvent(null, null, null);
12
+ return new DataSourceChangeEvent(null, null, null, null);
7
13
  }
8
14
  static deleted(ids) {
9
- return new DataSourceChangeEvent(ids, null, null);
15
+ return new DataSourceChangeEvent(ids, null, null, null);
10
16
  }
11
17
  static modified(modified) {
12
- return new DataSourceChangeEvent(null, modified, null);
18
+ return new DataSourceChangeEvent(null, modified, null, null);
13
19
  }
14
20
  static created(created) {
15
- return new DataSourceChangeEvent(null, null, created);
21
+ return new DataSourceChangeEvent(null, null, created, null);
22
+ }
23
+ static patched(patches) {
24
+ return new DataSourceChangeEvent(null, null, null, patches);
16
25
  }
17
- constructor(deletedIds, modified, created) {
26
+ constructor(deletedIds, modified, created, patches) {
18
27
  this.deletedIds = deletedIds;
19
28
  this.modified = modified;
20
29
  this.created = created;
21
- this.unknownChanges = !deletedIds && !modified && !created;
30
+ this.patches = patches;
31
+ this.unknownChanges = !deletedIds && !modified && !created && !patches;
22
32
  }
23
33
  }
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1zb3VyY2UtY2hhbmdlLWV2ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tbW9uL2RhdGEvZGF0YXNvdXJjZS9kYXRhLXNvdXJjZS1jaGFuZ2UtZXZlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksb0JBQXVCO0FBQW5DLFdBQVksb0JBQW9CO0FBQUUsQ0FBQyxFQUF2QixvQkFBb0IsS0FBcEIsb0JBQW9CLFFBQUc7QUFFbkMsTUFBTSxPQUFPLHFCQUFxQjtJQUN6QixNQUFNLENBQUMsY0FBYztRQUMxQixPQUFPLElBQUkscUJBQXFCLENBQUksSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUN2RCxDQUFDO0lBRU0sTUFBTSxDQUFDLE9BQU8sQ0FBTSxHQUFVO1FBQ25DLE9BQU8sSUFBSSxxQkFBcUIsQ0FBVyxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFBO0lBQzdELENBQUM7SUFFTSxNQUFNLENBQUMsUUFBUSxDQUFJLFFBQWE7UUFDckMsT0FBTyxJQUFJLHFCQUFxQixDQUFJLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUE7SUFDM0QsQ0FBQztJQUVNLE1BQU0sQ0FBQyxPQUFPLENBQUksT0FBWTtRQUNuQyxPQUFPLElBQUkscUJBQXFCLENBQUksSUFBSSxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQTtJQUMxRCxDQUFDO0lBWUQsWUFDa0IsVUFBaUIsRUFDakIsUUFBYSxFQUNiLE9BQVk7UUFGWixlQUFVLEdBQVYsVUFBVSxDQUFPO1FBQ2pCLGFBQVEsR0FBUixRQUFRLENBQUs7UUFDYixZQUFPLEdBQVAsT0FBTyxDQUFLO1FBRTVCLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxVQUFVLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxPQUFPLENBQUE7SUFDNUQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gRGF0YVNvdXJjZUNoYW5nZVR5cGUge31cblxuZXhwb3J0IGNsYXNzIERhdGFTb3VyY2VDaGFuZ2VFdmVudDxULCBUSWQgPSBhbnk+IHtcbiAgcHVibGljIHN0YXRpYyB1bmtub3duQ2hhbmdlczxUPigpOiBEYXRhU291cmNlQ2hhbmdlRXZlbnQ8VD4ge1xuICAgIHJldHVybiBuZXcgRGF0YVNvdXJjZUNoYW5nZUV2ZW50PFQ+KG51bGwsIG51bGwsIG51bGwpXG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGRlbGV0ZWQ8VElkPihpZHM6IFRJZFtdKTogRGF0YVNvdXJjZUNoYW5nZUV2ZW50PGFueSwgVElkPiB7XG4gICAgcmV0dXJuIG5ldyBEYXRhU291cmNlQ2hhbmdlRXZlbnQ8YW55LCBUSWQ+KGlkcywgbnVsbCwgbnVsbClcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgbW9kaWZpZWQ8VD4obW9kaWZpZWQ6IFRbXSk6IERhdGFTb3VyY2VDaGFuZ2VFdmVudDxUPiB7XG4gICAgcmV0dXJuIG5ldyBEYXRhU291cmNlQ2hhbmdlRXZlbnQ8VD4obnVsbCwgbW9kaWZpZWQsIG51bGwpXG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGNyZWF0ZWQ8VD4oY3JlYXRlZDogVFtdKTogRGF0YVNvdXJjZUNoYW5nZUV2ZW50PFQ+IHtcbiAgICByZXR1cm4gbmV3IERhdGFTb3VyY2VDaGFuZ2VFdmVudDxUPihudWxsLCBudWxsLCBjcmVhdGVkKVxuICB9XG5cbiAgLy8gZW50aXRpZXMgLT4gZGF0YSBtdXN0IGJlIHVwZGF0ZWQgd2l0aCBuZXcgdmVyc2lvbnNcbiAgLy8gZW50aXR5LWlkcyAtPiBtdXN0IGJlIGRvd25sb2FkZWQgZmluZEJ5SWRzKCkgYW5kIGRhdGEgdXBkYXRlZFxuICAvLyBlbnRpdHktcGF0Y2hlcyAtPiBlbnRpdHkgbXVzdCBiZSBsb29rZWQgdXAgJiBhcHBsaWVkIGxvY2FsbHkgJiByZXBsYWNlZFxuXG4gIC8vIGNvbnN0IGVudGl0eSA9IGRjLmZpbmRCeUlkKGVudGl0eS1pZCk7XG4gIC8vIGRjLnJlcGxhY2UoZW50aXR5KTtcbiAgLy8gZGMucmVwbGFjZUFsbChlbnRpdGllcyk7XG5cbiAgcHVibGljIHJlYWRvbmx5IHVua25vd25DaGFuZ2VzOiBib29sZWFuXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IGRlbGV0ZWRJZHM6IFRJZFtdLFxuICAgIHB1YmxpYyByZWFkb25seSBtb2RpZmllZDogVFtdLFxuICAgIHB1YmxpYyByZWFkb25seSBjcmVhdGVkOiBUW11cbiAgKSB7XG4gICAgdGhpcy51bmtub3duQ2hhbmdlcyA9ICFkZWxldGVkSWRzICYmICFtb2RpZmllZCAmJiAhY3JlYXRlZFxuICB9XG59XG4iXX0=
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1zb3VyY2UtY2hhbmdlLWV2ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tbW9uL2RhdGEvZGF0YXNvdXJjZS9kYXRhLXNvdXJjZS1jaGFuZ2UtZXZlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLHFCQUFxQjtJQUNoQyxZQUNTLFFBQVksRUFDWixLQUEwQjtRQUQxQixhQUFRLEdBQVIsUUFBUSxDQUFJO1FBQ1osVUFBSyxHQUFMLEtBQUssQ0FBcUI7SUFDaEMsQ0FBQztDQUNMO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8scUJBQXFCO0lBQ3pCLE1BQU0sQ0FBQyxjQUFjO1FBQzFCLE9BQU8sSUFBSSxxQkFBcUIsQ0FBUyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUNsRSxDQUFDO0lBRU0sTUFBTSxDQUFDLE9BQU8sQ0FBTSxHQUFVO1FBQ25DLE9BQU8sSUFBSSxxQkFBcUIsQ0FBVyxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUNuRSxDQUFDO0lBRU0sTUFBTSxDQUFDLFFBQVEsQ0FBZSxRQUFhO1FBQ2hELE9BQU8sSUFBSSxxQkFBcUIsQ0FBUyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUN0RSxDQUFDO0lBRU0sTUFBTSxDQUFDLE9BQU8sQ0FBZSxPQUFZO1FBQzlDLE9BQU8sSUFBSSxxQkFBcUIsQ0FBUyxJQUFJLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUNyRSxDQUFDO0lBRU0sTUFBTSxDQUFDLE9BQU8sQ0FDbkIsT0FBd0M7UUFFeEMsT0FBTyxJQUFJLHFCQUFxQixDQUFJLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFBO0lBQ2hFLENBQUM7SUFZRCxZQUNrQixVQUFpQixFQUNqQixRQUFhLEVBQ2IsT0FBWSxFQUNaLE9BQW1DO1FBSG5DLGVBQVUsR0FBVixVQUFVLENBQU87UUFDakIsYUFBUSxHQUFSLFFBQVEsQ0FBSztRQUNiLFlBQU8sR0FBUCxPQUFPLENBQUs7UUFDWixZQUFPLEdBQVAsT0FBTyxDQUE0QjtRQUVuRCxJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsVUFBVSxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFBO0lBQ3hFLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlZXBQYXJ0aWFsUGF0Y2ggfSBmcm9tICcuL3BhdGNoL2RlZXAtcGFydGlhbC1wYXRjaGVyJ1xuXG5leHBvcnQgY2xhc3MgRGF0YVNvdXJjZUVudGl0eVBhdGNoPFQsIElkID0gYW55PiB7XG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZW50aXR5SWQ6IElkLFxuICAgIHB1YmxpYyBwYXRjaDogRGVlcFBhcnRpYWxQYXRjaDxUPlxuICApIHt9XG59XG5cbi8qKlxuICogTm90aWZpZXMgYWJvdXQgY2hhbmdlcyBpbiBhIERhdGFTb3VyY2UuXG4gKi9cbmV4cG9ydCBjbGFzcyBEYXRhU291cmNlQ2hhbmdlRXZlbnQ8VCwgVElkID0gYW55PiB7XG4gIHB1YmxpYyBzdGF0aWMgdW5rbm93bkNoYW5nZXM8VCwgVElkID0gYW55PigpOiBEYXRhU291cmNlQ2hhbmdlRXZlbnQ8VD4ge1xuICAgIHJldHVybiBuZXcgRGF0YVNvdXJjZUNoYW5nZUV2ZW50PFQsIFRJZD4obnVsbCwgbnVsbCwgbnVsbCwgbnVsbClcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZGVsZXRlZDxUSWQ+KGlkczogVElkW10pOiBEYXRhU291cmNlQ2hhbmdlRXZlbnQ8YW55LCBUSWQ+IHtcbiAgICByZXR1cm4gbmV3IERhdGFTb3VyY2VDaGFuZ2VFdmVudDxhbnksIFRJZD4oaWRzLCBudWxsLCBudWxsLCBudWxsKVxuICB9XG5cbiAgcHVibGljIHN0YXRpYyBtb2RpZmllZDxULCBUSWQgPSBhbnk+KG1vZGlmaWVkOiBUW10pOiBEYXRhU291cmNlQ2hhbmdlRXZlbnQ8VD4ge1xuICAgIHJldHVybiBuZXcgRGF0YVNvdXJjZUNoYW5nZUV2ZW50PFQsIFRJZD4obnVsbCwgbW9kaWZpZWQsIG51bGwsIG51bGwpXG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGNyZWF0ZWQ8VCwgVElkID0gYW55PihjcmVhdGVkOiBUW10pOiBEYXRhU291cmNlQ2hhbmdlRXZlbnQ8VD4ge1xuICAgIHJldHVybiBuZXcgRGF0YVNvdXJjZUNoYW5nZUV2ZW50PFQsIFRJZD4obnVsbCwgbnVsbCwgY3JlYXRlZCwgbnVsbClcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgcGF0Y2hlZDxULCBUSWQgPSBhbnk+KFxuICAgIHBhdGNoZXM6IERhdGFTb3VyY2VFbnRpdHlQYXRjaDxULCBUSWQ+W11cbiAgKTogRGF0YVNvdXJjZUNoYW5nZUV2ZW50PFQ+IHtcbiAgICByZXR1cm4gbmV3IERhdGFTb3VyY2VDaGFuZ2VFdmVudDxUPihudWxsLCBudWxsLCBudWxsLCBwYXRjaGVzKVxuICB9XG5cbiAgLy8gZW50aXRpZXMgLT4gZGF0YSBtdXN0IGJlIHVwZGF0ZWQgd2l0aCBuZXcgdmVyc2lvbnNcbiAgLy8gZW50aXR5LWlkcyAtPiBtdXN0IGJlIGRvd25sb2FkZWQgZmluZEJ5SWRzKCkgYW5kIGRhdGEgdXBkYXRlZFxuICAvLyBlbnRpdHktcGF0Y2hlcyAtPiBlbnRpdHkgbXVzdCBiZSBsb29rZWQgdXAgJiBhcHBsaWVkIGxvY2FsbHkgJiByZXBsYWNlZFxuXG4gIC8vIGNvbnN0IGVudGl0eSA9IGRjLmZpbmRCeUlkKGVudGl0eS1pZCk7XG4gIC8vIGRjLnJlcGxhY2UoZW50aXR5KTtcbiAgLy8gZGMucmVwbGFjZUFsbChlbnRpdGllcyk7XG5cbiAgcHVibGljIHJlYWRvbmx5IHVua25vd25DaGFuZ2VzOiBib29sZWFuXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IGRlbGV0ZWRJZHM6IFRJZFtdLFxuICAgIHB1YmxpYyByZWFkb25seSBtb2RpZmllZDogVFtdLFxuICAgIHB1YmxpYyByZWFkb25seSBjcmVhdGVkOiBUW10sXG4gICAgcHVibGljIHJlYWRvbmx5IHBhdGNoZXM6IERhdGFTb3VyY2VFbnRpdHlQYXRjaDxUPltdXG4gICkge1xuICAgIHRoaXMudW5rbm93bkNoYW5nZXMgPSAhZGVsZXRlZElkcyAmJiAhbW9kaWZpZWQgJiYgIWNyZWF0ZWQgJiYgIXBhdGNoZXNcbiAgfVxufVxuIl19
@@ -0,0 +1,58 @@
1
+ export class DeepPartialPatcher {
2
+ /***************************************************************************
3
+ * *
4
+ * Public API *
5
+ * *
6
+ **************************************************************************/
7
+ /**
8
+ * All modified parts are deep cloned so the original is never modified.
9
+ */
10
+ static patchDeepClone(original, patch) {
11
+ return this.mapReducePatch(original, patch);
12
+ }
13
+ /**
14
+ * Returns a shallow copy of the original, but may modify nested objects.
15
+ */
16
+ static patchShallowCopy(original, patch) {
17
+ const shallowCopy = { ...original };
18
+ return this.patchOriginal(shallowCopy, patch);
19
+ }
20
+ /**
21
+ * Modifies the original directly. Returns a reference to the original object.
22
+ */
23
+ static patchOriginal(original, patch) {
24
+ const result = original;
25
+ for (const key in patch) {
26
+ if (patch[key] && typeof patch[key] === 'object' && !Array.isArray(patch[key])) {
27
+ // Recursively apply patch for nested objects
28
+ result[key] = DeepPartialPatcher.patchOriginal(result[key], patch[key]);
29
+ }
30
+ else {
31
+ // Apply patch for non-object fields
32
+ result[key] = patch[key];
33
+ }
34
+ }
35
+ return result;
36
+ }
37
+ /***************************************************************************
38
+ * *
39
+ * Private methods *
40
+ * *
41
+ **************************************************************************/
42
+ static mapReducePatch(obj, pobj) {
43
+ return Object.entries(obj).reduce((acc, [key, value]) => {
44
+ if (!(key in pobj)) {
45
+ return { ...acc, [key]: value }; // If key doesn't exist in pobj, copy the value from obj
46
+ }
47
+ if (typeof pobj[key] === 'object' && pobj[key] !== null && !Array.isArray(pobj[key])) {
48
+ // If it's an object (but not an array), recursively apply rmap
49
+ return { ...acc, [key]: this.mapReducePatch(obj[key], pobj[key]) };
50
+ }
51
+ else {
52
+ // Otherwise, copy the value from pobj
53
+ return { ...acc, [key]: pobj[key] };
54
+ }
55
+ }, {});
56
+ }
57
+ }
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcC1wYXJ0aWFsLXBhdGNoZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21tb24vZGF0YS9kYXRhc291cmNlL3BhdGNoL2RlZXAtcGFydGlhbC1wYXRjaGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE1BQU0sT0FBTyxrQkFBa0I7SUFDN0I7Ozs7Z0ZBSTRFO0lBRTVFOztPQUVHO0lBQ0ksTUFBTSxDQUFDLGNBQWMsQ0FBSSxRQUFXLEVBQUUsS0FBMEI7UUFDckUsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQU0sQ0FBQTtJQUNsRCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsZ0JBQWdCLENBQUksUUFBVyxFQUFFLEtBQTBCO1FBQ3ZFLE1BQU0sV0FBVyxHQUFHLEVBQUUsR0FBRyxRQUFRLEVBQUUsQ0FBQTtRQUNuQyxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFBO0lBQy9DLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxhQUFhLENBQUksUUFBVyxFQUFFLEtBQTBCO1FBQ3BFLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQTtRQUV2QixLQUFLLE1BQU0sR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ3hCLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLFFBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDL0UsNkNBQTZDO2dCQUM3QyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsa0JBQWtCLENBQUMsYUFBYSxDQUM1QyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQ1gsS0FBSyxDQUFDLEdBQUcsQ0FBaUMsQ0FDcEMsQ0FBQTtZQUNWLENBQUM7aUJBQU0sQ0FBQztnQkFDTixvQ0FBb0M7Z0JBQ3BDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFRLENBQUE7WUFDakMsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLE1BQU0sQ0FBQTtJQUNmLENBQUM7SUFFRDs7OztnRkFJNEU7SUFFcEUsTUFBTSxDQUFDLGNBQWMsQ0FDM0IsR0FBd0IsRUFDeEIsSUFBeUI7UUFFekIsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFO1lBQ3RELElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUNuQixPQUFPLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQSxDQUFDLHdEQUF3RDtZQUMxRixDQUFDO1lBQ0QsSUFBSSxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxRQUFRLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDckYsK0RBQStEO2dCQUMvRCxPQUFPLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFBO1lBQ3BFLENBQUM7aUJBQU0sQ0FBQztnQkFDTixzQ0FBc0M7Z0JBQ3RDLE9BQU8sRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFBO1lBQ3JDLENBQUM7UUFDSCxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUE7SUFDUixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBEZWVwUGFydGlhbFBhdGNoPFQ+ID0ge1xuICBbSyBpbiBrZXlvZiBUXT86IFRbS10gZXh0ZW5kcyBvYmplY3QgPyBEZWVwUGFydGlhbFBhdGNoPFRbS10+IDogVFtLXVxufVxuXG5leHBvcnQgY2xhc3MgRGVlcFBhcnRpYWxQYXRjaGVyIHtcbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgLyoqXG4gICAqIEFsbCBtb2RpZmllZCBwYXJ0cyBhcmUgZGVlcCBjbG9uZWQgc28gdGhlIG9yaWdpbmFsIGlzIG5ldmVyIG1vZGlmaWVkLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBwYXRjaERlZXBDbG9uZTxUPihvcmlnaW5hbDogVCwgcGF0Y2g6IERlZXBQYXJ0aWFsUGF0Y2g8VD4pOiBUIHtcbiAgICByZXR1cm4gdGhpcy5tYXBSZWR1Y2VQYXRjaChvcmlnaW5hbCwgcGF0Y2gpIGFzIFRcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgc2hhbGxvdyBjb3B5IG9mIHRoZSBvcmlnaW5hbCwgYnV0IG1heSBtb2RpZnkgbmVzdGVkIG9iamVjdHMuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHBhdGNoU2hhbGxvd0NvcHk8VD4ob3JpZ2luYWw6IFQsIHBhdGNoOiBEZWVwUGFydGlhbFBhdGNoPFQ+KTogVCB7XG4gICAgY29uc3Qgc2hhbGxvd0NvcHkgPSB7IC4uLm9yaWdpbmFsIH1cbiAgICByZXR1cm4gdGhpcy5wYXRjaE9yaWdpbmFsKHNoYWxsb3dDb3B5LCBwYXRjaClcbiAgfVxuXG4gIC8qKlxuICAgKiBNb2RpZmllcyB0aGUgb3JpZ2luYWwgZGlyZWN0bHkuIFJldHVybnMgYSByZWZlcmVuY2UgdG8gdGhlIG9yaWdpbmFsIG9iamVjdC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcGF0Y2hPcmlnaW5hbDxUPihvcmlnaW5hbDogVCwgcGF0Y2g6IERlZXBQYXJ0aWFsUGF0Y2g8VD4pOiBUIHtcbiAgICBjb25zdCByZXN1bHQgPSBvcmlnaW5hbFxuXG4gICAgZm9yIChjb25zdCBrZXkgaW4gcGF0Y2gpIHtcbiAgICAgIGlmIChwYXRjaFtrZXldICYmIHR5cGVvZiBwYXRjaFtrZXldID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheShwYXRjaFtrZXldKSkge1xuICAgICAgICAvLyBSZWN1cnNpdmVseSBhcHBseSBwYXRjaCBmb3IgbmVzdGVkIG9iamVjdHNcbiAgICAgICAgcmVzdWx0W2tleV0gPSBEZWVwUGFydGlhbFBhdGNoZXIucGF0Y2hPcmlnaW5hbChcbiAgICAgICAgICByZXN1bHRba2V5XSxcbiAgICAgICAgICBwYXRjaFtrZXldIGFzIERlZXBQYXJ0aWFsUGF0Y2g8VFtrZXlvZiBUXT5cbiAgICAgICAgKSBhcyBhbnlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIEFwcGx5IHBhdGNoIGZvciBub24tb2JqZWN0IGZpZWxkc1xuICAgICAgICByZXN1bHRba2V5XSA9IHBhdGNoW2tleV0gYXMgYW55XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdFxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgbWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSBzdGF0aWMgbWFwUmVkdWNlUGF0Y2goXG4gICAgb2JqOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICAgIHBvYmo6IFJlY29yZDxzdHJpbmcsIGFueT5cbiAgKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKG9iaikucmVkdWNlKChhY2MsIFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgaWYgKCEoa2V5IGluIHBvYmopKSB7XG4gICAgICAgIHJldHVybiB7IC4uLmFjYywgW2tleV06IHZhbHVlIH0gLy8gSWYga2V5IGRvZXNuJ3QgZXhpc3QgaW4gcG9iaiwgY29weSB0aGUgdmFsdWUgZnJvbSBvYmpcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgcG9ialtrZXldID09PSAnb2JqZWN0JyAmJiBwb2JqW2tleV0gIT09IG51bGwgJiYgIUFycmF5LmlzQXJyYXkocG9ialtrZXldKSkge1xuICAgICAgICAvLyBJZiBpdCdzIGFuIG9iamVjdCAoYnV0IG5vdCBhbiBhcnJheSksIHJlY3Vyc2l2ZWx5IGFwcGx5IHJtYXBcbiAgICAgICAgcmV0dXJuIHsgLi4uYWNjLCBba2V5XTogdGhpcy5tYXBSZWR1Y2VQYXRjaChvYmpba2V5XSwgcG9ialtrZXldKSB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBPdGhlcndpc2UsIGNvcHkgdGhlIHZhbHVlIGZyb20gcG9ialxuICAgICAgICByZXR1cm4geyAuLi5hY2MsIFtrZXldOiBwb2JqW2tleV0gfVxuICAgICAgfVxuICAgIH0sIHt9KVxuICB9XG59XG4iXX0=
@@ -73,9 +73,15 @@ export class TemporalUtil {
73
73
  static getLastSevenDays(referenceDate = TemporalUtil.getDateTodayLocalized()) {
74
74
  return new TemporalPlainDateInterval(referenceDate.subtract({ days: 7 }), referenceDate);
75
75
  }
76
+ static getLastSevenDaysIncludingToday(referenceDate = TemporalUtil.getDateTodayLocalized()) {
77
+ return new TemporalPlainDateInterval(referenceDate.subtract({ days: 7 - 1 }), referenceDate.add({ days: 1 }));
78
+ }
76
79
  static getLastThirtyDays(referenceDate = TemporalUtil.getDateTodayLocalized()) {
77
80
  return new TemporalPlainDateInterval(referenceDate.subtract({ days: 30 }), referenceDate);
78
81
  }
82
+ static getLastThirtyDaysIncludingToday(referenceDate = TemporalUtil.getDateTodayLocalized()) {
83
+ return new TemporalPlainDateInterval(referenceDate.subtract({ days: 30 - 1 }), referenceDate.add({ days: 1 }));
84
+ }
79
85
  static getCurrentWeek(referenceDate = TemporalUtil.getDateTodayLocalized()) {
80
86
  const startOfWeek = referenceDate.subtract({
81
87
  days: referenceDate.dayOfWeek - 1,
@@ -184,4 +190,4 @@ export class TemporalUtil {
184
190
  });
185
191
  }
186
192
  }
187
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcG9yYWwtdXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbW1vbi90aW1lL3RlbXBvcmFsLXV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQ2hELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFBO0FBRTFFLE1BQU0sT0FBTyxZQUFZO0lBQ3ZCLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxJQUFpRDtRQUNqRixJQUFJLElBQUksWUFBWSxRQUFRLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDM0MsT0FBTyxJQUFJLElBQUksQ0FDYixJQUFJLENBQUMsSUFBSSxFQUNULElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUNkLElBQUksQ0FBQyxHQUFHLEVBQ1IsSUFBSSxDQUFDLElBQUksRUFDVCxJQUFJLENBQUMsTUFBTSxFQUNYLElBQUksQ0FBQyxNQUFNLEVBQ1gsSUFBSSxDQUFDLFdBQVcsQ0FDakIsQ0FBQTtRQUNILENBQUM7UUFDRCxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ3RELENBQUM7SUFFRCxNQUFNLENBQUMsMEJBQTBCLENBQUMsSUFBVTtRQUMxQyxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFBO1FBQ3RFLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUE7UUFDekUsT0FBTyxRQUFRLENBQUMsYUFBYSxDQUFD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QUcsQ0FBQyxDQUFBO1FBQ3JDLElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNqRCxPQUFPLElBQUksQ0FBQTtRQUNiLENBQUM7UUFFRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDekIsT0FBTyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQztnQkFDN0IsSUFBSSxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzFCLE1BQU0sRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzdCLENBQUMsQ0FBQTtRQUNKLENBQUM7UUFFRCxPQUFPLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO1lBQzdCLElBQUksRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzFCLE1BQU0sRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzVCLE1BQU0sRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzdCLENBQUMsQ0FBQTtJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRlbXBvcmFsIH0gZnJvbSAnQGpzLXRlbXBvcmFsL3BvbHlmaWxsJ1xuaW1wb3J0IHsgVGVtcG9yYWxQbGFpbkRhdGVJbnRlcnZhbCB9IGZyb20gJy4vdGVtcG9yYWwtcGxhaW4tZGF0ZS1pbnRlcnZhbCdcblxuZXhwb3J0IGNsYXNzIFRlbXBvcmFsVXRpbCB7XG4gIHN0YXRpYyBnZXRKU0RhdGVGcm9tUGxhaW5EYXRlVGltZShkYXRlOiBUZW1wb3JhbC5QbGFpbkRhdGUgfCBUZW1wb3JhbC5QbGFpbkRhdGVUaW1lKTogRGF0ZSB7XG4gICAgaWYgKGRhdGUgaW5zdGFuY2VvZiBUZW1wb3JhbC5QbGFpbkRhdGVUaW1lKSB7XG4gICAgICByZXR1cm4gbmV3IERhdGUoXG4gICAgICAgIGRhdGUueWVhcixcbiAgICAgICAgZGF0ZS5tb250aCAtIDEsXG4gICAgICAgIGRhdGUuZGF5LFxuICAgICAgICBkYXRlLmhvdXIsXG4gICAgICAgIGRhdGUubWludXRlLFxuICAgICAgICBkYXRlLnNlY29uZCxcbiAgICAgICAgZGF0ZS5taWxsaXNlY29uZFxuICAgICAgKVxuICAgIH1cbiAgICByZXR1cm4gbmV3IERhdGUoZGF0ZS55ZWFyLCBkYXRlLm1vbnRoIC0gMSwgZGF0ZS5kYXkpXG4gIH1cblxuICBzdGF0aWMgZ2V0UGxhaW5EYXRlVGltZUZyb21KU0RhdGUoZGF0ZTogRGF0ZSk6IFRlbXBvcmFsLlBsYWluRGF0ZVRpbWUge1xuICAgIGNvbnN0IGluc3RhbnQgPSBUZW1wb3JhbC5JbnN0YW50LmZyb21FcG9jaE1pbGxpc2Vjb25kcyhkYXRlLmdldFRpbWUoKSlcbiAgICBjb25zdCBkYXRlVGltZUlzbyA9IGluc3RhbnQudG9ab25lZERhdGVUaW1lSVNPKFRlbXBvcmFsLk5vdy50aW1lWm9uZUlkKCkpXG4gICAgcmV0dXJuIFRlbXBvcmFsLlBsYWluRGF0ZVRpbWUuZnJvbShkYXRlVGltZUlzbylcbiAgfVxuXG4gIHN0YXRpYyBnZXRQbGFpbkRhdGVUaW1lRnJvbVBsYWluRGF0ZUFuZFBsYWluVGltZShcbiAgICBkYXRlOiBUZW1wb3JhbC5QbGFpbkRhdGUsXG4gICAgdGltZTogVGVtcG9yYWwuUGxhaW5UaW1lXG4gICk6IFRlbXBvcmFsLlBsYWluRGF0ZVRpbWUge1xuICAgIHJldHVybiBUZW1wb3JhbC5QbGFpbkRhdGVUaW1lLmZyb20oe1xuICAgICAgeWVhcjogZGF0ZS55ZWFyLFxuICAgICAgbW9udGg6IGRhdGUubW9udGgsXG4gICAgICBkYXk6IGRhdGUuZGF5LFxuICAgICAgaG91cjogdGltZS5ob3VyLFxuICAgICAgbWludXRlOiB0aW1lLm1pbnV0ZSxcbiAgICAgIHNlY29uZDogdGltZS5zZWNvbmQsXG4gICAgICBtaWxsaXNlY29uZDogdGltZS5taWxsaXNlY29uZCxcbiAgICB9KVxuICB9XG5cbiAgc3RhdGljIGlzRmlyc3REYXlPZldlZWsoZGF0ZTogVGVtcG9yYWwuUGxhaW5EYXRlIHwgVGVtcG9yYWwuUGxhaW5EYXRlVGltZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBkYXRlLmRheU9mV2VlayA9PT0gMVxuICB9XG5cbiAgc3RhdGljIGdldFBsYWluRGF0ZUZyb21KU0RhdGUoZGF0ZTogRGF0ZSk6IFRlbXBvcmFsLlBsYWluRGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlVGVtcG9yYWxMb2NhbGl6ZWREYXRlRnJvbVRpbWVzdGFtcChkYXRlLmdldFRpbWUoKSlcbiAgfVxuXG4gIHN0YXRpYyBnZXRQbGFpblRpbWVGcm9tSlNEYXRlKGRhdGU6IERhdGUpOiBUZW1wb3JhbC5QbGFpblRpbWUge1xuICAgIGNvbnN0IGluc3RhbnQgPSBUZW1wb3JhbC5JbnN0YW50LmZyb21FcG9jaE1pbGxpc2Vjb25kcyhkYXRlLmdldFRpbWUoKSlcbiAgICBjb25zdCBkYXRlVGltZUlzbyA9IGluc3RhbnQudG9ab25lZERhdGVUaW1lSVNPKFRlbXBvcmFsLk5vdy50aW1lWm9uZUlkKCkpXG4gICAgcmV0dXJuIFRlbXBvcmFsLlBsYWluVGltZS5mcm9tKGRhdGVUaW1lSXNvKVxuICB9XG5cbiAgc3RhdGljIGdldFBsYWluRGF0ZVRpbWVGcm9tU3RyaW5nKGRhdGVTdHJpbmc6IHN0cmluZyk6IFRlbXBvcmFsLlBsYWluRGF0ZVRpbWUge1xuICAgIGxldCBqc0RhdGU6IERhdGUgPSBudWxsXG4gICAgdHJ5IHtcbiAgICAgIGpzRGF0ZSA9IG5ldyBEYXRlKGRhdGVTdHJpbmcpXG4gICAgICBpZiAodHlwZW9mIGpzRGF0ZSAhPT0gJ29iamVjdCcgfHwganNEYXRlLmNvbnN0cnVjdG9yLm5hbWUgIT09ICdEYXRlJykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgZGF0ZSBzdHJpbmcnKVxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUud2FybignSW52YWxpZCBkYXRlIHN0cmluZycsIGRhdGVTdHJpbmcpXG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmdldFBsYWluRGF0ZVRpbWVGcm9tSlNEYXRlKGpzRGF0ZSlcbiAgfVxuXG4gIHN0YXRpYyBnZXRIdG1sVGltZVN0cmluZ0Zyb21QbGFpblRpbWUodGltZTogVGVtcG9yYWwuUGxhaW5UaW1lIHwgVGVtcG9yYWwuUGxhaW5EYXRlVGltZSk6IHN0cmluZyB7XG4gICAgaWYgKCF0aW1lKSB7XG4gICAgICByZXR1cm4gJzAwOjAwOjAwJ1xuICAgIH1cbiAgICByZXR1cm4gKFxuICAgICAgdGltZS5ob3VyLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKSArXG4gICAgICAnOicgK1xuICAgICAgdGltZS5taW51dGUudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpICtcbiAgICAgICc6JyArXG4gICAgICB0aW1lLnNlY29uZC50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJylcbiAgICApXG4gIH1cblxuICBzdGF0aWMgZ2V0UXVhcnRlckZvckRhdGUoXG4gICAgZGF0ZTogVGVtcG9yYWwuUGxhaW5EYXRlID0gVGVtcG9yYWxVdGlsLmdldERhdGVUb2RheUxvY2FsaXplZCgpXG4gICk6IG51bWJlciB7XG4gICAgcmV0dXJuIE1hdGguZmxvb3IoKGRhdGUubW9udGggLSAxKSAvIDMpICsgMVxuICB9XG5cbiAgc3RhdGljIGdldEN1cnJlbnREYXkoXG4gICAgcmVmZXJlbmNlRGF0ZTogVGVtcG9yYWwuUGxhaW5EYXRlID0gVGVtcG9yYWxVdGlsLmdldERhdGVUb2RheUxvY2FsaXplZCgpXG4gICk6IFRlbXBvcmFsUGxhaW5EYXRlSW50ZXJ2YWwge1xuICAgIGNvbnN0IHRvZGF5ID0gcmVmZXJlbmNlRGF0ZVxuICAgIGNvbnN0IHRvbW9ycm93ID0gdG9kYXkuYWRkKHsgZGF5czogMSB9KVxuICAgIHJldHVybiBuZXcgVGVtcG9yYWxQbGFpbkRhdGVJbnRlcnZhbCh0b2RheSwgdG9tb3Jyb3cpXG4gIH1cblxuICBzdGF0aWMgZ2V0WWVzdGVyZGF5KFxuICAgIHJlZmVyZW5jZURhdGU6IFRlbXBvcmFsLlBsYWluRGF0ZSA9IFRlbXBvcmFsVXRpbC5nZXREYXRlVG9kYXlMb2NhbGl6ZWQoKVxuICApOiBUZW1wb3JhbFBsYWluRGF0ZUludGVydmFsIHtcbiAgICBjb25zdCB5ZXN0ZXJkYXkgPSByZWZlcmVuY2VEYXRlLnN1YnRyYWN0KHsgZGF5czogMSB9KVxuICAgIHJldHVybiBuZXcgVGVtcG9yYWxQbGFpbkRhdGVJbnRlcnZhbCh5ZXN0ZXJkYXksIHJlZmVyZW5jZURhdGUpXG4gIH1cblxuICBzdGF0aWMgZ2V0TGFzdFNldmVuRGF5cyhcbiAgICByZWZlcmVuY2VEYXRlOiBUZW1wb3JhbC5QbGFpbkRhdGUgPSBUZW1wb3JhbFV0aWwuZ2V0RGF0ZVRvZGF5TG9jYWxpemVkKClcbiAgKTogVGVtcG9yYWxQbGFpbkRhdGVJbnRlcnZhbCB7XG4gICAgcmV0dXJuIG5ldyBUZW1wb3JhbFBsYWluRGF0ZUludGVydmFsKHJlZmVyZW5jZURhdGUuc3VidHJhY3QoeyBkYXlzOiA3IH0pLCByZWZlcmVuY2VEYXRlKVxuICB9XG5cbiAgc3RhdGljIGdldExhc3RUaGlydHlEYXlzKFxuICAgIHJlZmVyZW5jZURhdGU6IFRlbXBvcmFsLlBsYWluRGF0ZSA9IFRlbXBvcmFsVXRpbC5nZXREYXRlVG9kYXlMb2NhbGl6ZWQoKVxuICApOiBUZW1wb3JhbFBsYWluRGF0ZUludGVydmFsIHtcbiAgICByZXR1cm4gbmV3IFRlbXBvcmFsUGxhaW5EYXRlSW50ZXJ2YWwocmVmZXJlbmNlRGF0ZS5zdWJ0cmFjdCh7IGRheXM6IDMwIH0pLCByZWZlcmVuY2VEYXRlKVxuICB9XG5cbiAgc3RhdGljIGdldEN1cnJlbnRXZWVrKFxuICAgIHJlZmVyZW5jZURhdGU6IFRlbXBvcmFsLlBsYWluRGF0ZSA9IFRlbXBvcmFsVXRpbC5nZXREYXRlVG9kYXlMb2NhbGl6ZWQoKVxuICApOiBUZW1wb3JhbFBsYWluRGF0ZUludGVydmFsIHtcbiAgICBjb25zdCBzdGFydE9mV2VlayA9IHJlZmVyZW5jZURhdGUuc3VidHJhY3Qoe1xuICAgICAgZGF5czogcmVmZXJlbmNlRGF0ZS5kYXlPZldlZWsgLSAxLFxuICAgIH0pXG4gICAgY29uc3QgZW5kT2ZXZWVrID0gc3RhcnRPZldlZWsuYWRkKHsgZGF5czogNyB9KVxuICAgIHJldHVybiBuZXcgVGVtcG9yYWxQbGFpbkRhdGVJbnRlcnZhbChzdGFydE9mV2VlaywgZW5kT2ZXZWVrKVxuICB9XG5cbiAgc3RhdGljIGdldEN1cnJlbnRNb250aChcbiAgICByZWZlcmVuY2VEYXRlOiBUZW1wb3JhbC5QbGFpbkRhdGUgPSBUZW1wb3JhbFV0aWwuZ2V0RGF0ZVRvZGF5TG9jYWxpemVkKClcbiAgKTogVGVtcG9yYWxQbGFpbkRhdGVJbnRlcnZhbCB7XG4gICAgY29uc3Qgc3RhcnRPZk1vbnRoID0gcmVmZXJlbmNlRGF0ZS5zdWJ0cmFjdCh7XG4gICAgICBkYXlzOiByZWZlcmVuY2VEYXRlLmRheSAtIDEsXG4gICAgfSlcbiAgICBjb25zdCBlbmRPZk1vbnRoID0gc3RhcnRPZk1vbnRoLmFkZCh7IG1vbnRoczogMSB9KVxuICAgIHJldHVybiBuZXcgVGVtcG9yYWxQbGFpbkRhdGVJbnRlcnZhbChzdGFydE9mTW9udGgsIGVuZE9mTW9udGgpXG4gIH1cblxuICBzdGF0aWMgZ2V0Q3VycmVudFF1YXJ0ZXIoXG4gICAgcmVmZXJlbmNlRGF0ZTogVGVtcG9yYWwuUGxhaW5EYXRlID0gVGVtcG9yYWxVdGlsLmdldERhdGVUb2RheUxvY2FsaXplZCgpXG4gICk6IFRlbXBvcmFsUGxhaW5EYXRlSW50ZXJ2YWwge1xuICAgIGNvbnN0IHF1YXJ0ZXIgPSBNYXRoLmZsb29yKChyZWZlcmVuY2VEYXRlLm1vbnRoIC0gMSkgLyAzKVxuICAgIGNvbnN0IHN0YXJ0T2ZRdWFydGVyID0gcmVmZXJlbmNlRGF0ZS5zdWJ0cmFjdCh7XG4gICAgICBtb250aHM6IHJlZmVyZW5jZURhdGUubW9udGggLSAxIC0gcXVhcnRlciAqIDMsXG4gICAgICBkYXlzOiByZWZlcmVuY2VEYXRlLmRheSAtIDEsXG4gICAgfSlcbiAgICBjb25zdCBlbmRPZlF1YXJ0ZXIgPSBzdGFydE9mUXVhcnRlci5hZGQoeyBtb250aHM6IDMgfSlcbiAgICByZXR1cm4gbmV3IFRlbXBvcmFsUGxhaW5EYXRlSW50ZXJ2YWwoc3RhcnRPZlF1YXJ0ZXIsIGVuZE9mUXVhcnRlcilcbiAgfVxuXG4gIHN0YXRpYyBnZXRQcmV2aW91c1F1YXJ0ZXIoXG4gICAgcmVmZXJlbmNlRGF0ZTogVGVtcG9yYWwuUGxhaW5EYXRlID0gVGVtcG9yYWxVdGlsLmdldERhdGVUb2RheUxvY2FsaXplZCgpXG4gICk6IFRlbXBvcmFsUGxhaW5EYXRlSW50ZXJ2YWwge1xuICAgIHJldHVybiBUZW1wb3JhbFV0aWwuZ2V0Q3VycmVudFF1YXJ0ZXIocmVmZXJlbmNlRGF0ZSkuc2hpZnRNb250aHMoLTMpXG4gIH1cblxuICBzdGF0aWMgZ2V0Q3VycmVudFllYXIoXG4gICAgcmVmZXJlbmNlRGF0ZTogVGVtcG9yYWwuUGxhaW5EYXRlID0gVGVtcG9yYWxVdGlsLmdldERhdGVUb2RheUxvY2FsaXplZCgpXG4gICk6IFRlbXBvcmFsUGxhaW5EYXRlSW50ZXJ2YWwge1xuICAgIGNvbnN0IHN0YXJ0T2ZZZWFyID0gcmVmZXJlbmNlRGF0ZS5zdWJ0cmFjdCh7XG4gICAgICBkYXlzOiByZWZlcmVuY2VEYXRlLmRheU9mWWVhciAtIDEsXG4gICAgfSlcbiAgICBjb25zdCBlbmRPZlllYXIgPSBzdGFydE9mWWVhci5hZGQoeyB5ZWFyczogMSB9KVxuICAgIHJldHVybiBuZXcgVGVtcG9yYWxQbGFpbkRhdGVJbnRlcnZhbChzdGFydE9mWWVhciwgZW5kT2ZZZWFyKVxuICB9XG5cbiAgc3RhdGljIGdldFByZXZpb3VzWWVhcihcbiAgICByZWZlcmVuY2VEYXRlOiBUZW1wb3JhbC5QbGFpbkRhdGUgPSBUZW1wb3JhbFV0aWwuZ2V0RGF0ZVRvZGF5TG9jYWxpemVkKClcbiAgKTogVGVtcG9yYWxQbGFpbkRhdGVJbnRlcnZhbCB7XG4gICAgcmV0dXJuIFRlbXBvcmFsVXRpbC5nZXRDdXJyZW50WWVhcihyZWZlcmVuY2VEYXRlKS5zaGlmdFllYXJzKC0xKVxuICB9XG5cbiAgc3RhdGljIGdldE5leHRZZWFyKFxuICAgIHJlZmVyZW5jZURhdGU6IFRlbXBvcmFsLlBsYWluRGF0ZSA9IFRlbXBvcmFsVXRpbC5nZXREYXRlVG9kYXlMb2NhbGl6ZWQoKVxuICApOiBUZW1wb3JhbFBsYWluRGF0ZUludGVydmFsIHtcbiAgICByZXR1cm4gVGVtcG9yYWxVdGlsLmdldEN1cnJlbnRZZWFyKHJlZmVyZW5jZURhdGUpLnNoaWZ0WWVhcnMoMSlcbiAgfVxuXG4gIHN0YXRpYyBnZXRMYXN0MzY1RGF5cyhcbiAgICByZWZlcmVuY2VEYXRlOiBUZW1wb3JhbC5QbGFpbkRhdGUgPSBUZW1wb3JhbFV0aWwuZ2V0RGF0ZVRvZGF5TG9jYWxpemVkKClcbiAgKTogVGVtcG9yYWxQbGFpbkRhdGVJbnRlcnZhbCB7XG4gICAgcmV0dXJuIG5ldyBUZW1wb3JhbFBsYWluRGF0ZUludGVydmFsKHJlZmVyZW5jZURhdGUuc3VidHJhY3QoeyBkYXlzOiAzNjUgfSksIHJlZmVyZW5jZURhdGUpXG4gIH1cblxuICBzdGF0aWMgZ2V0TGFzdDkwRGF5cyhcbiAgICByZWZlcmVuY2VEYXRlOiBUZW1wb3JhbC5QbGFpbkRhdGUgPSBUZW1wb3JhbFV0aWwuZ2V0RGF0ZVRvZGF5TG9jYWxpemVkKClcbiAgKTogVGVtcG9yYWxQbGFpbkRhdGVJbnRlcnZhbCB7XG4gICAgcmV0dXJuIG5ldyBUZW1wb3JhbFBsYWluRGF0ZUludGVydmFsKHJlZmVyZW5jZURhdGUuc3VidHJhY3QoeyBkYXlzOiA5MCB9KSwgcmVmZXJlbmNlRGF0ZSlcbiAgfVxuXG4gIHN0YXRpYyBnZXRQcmV2aW91c01vbnRoKFxuICAgIHJlZmVyZW5jZURhdGU6IFRlbXBvcmFsLlBsYWluRGF0ZSA9IFRlbXBvcmFsVXRpbC5nZXREYXRlVG9kYXlMb2NhbGl6ZWQoKVxuICApOiBUZW1wb3JhbFBsYWluRGF0ZUludGVydmFsIHtcbiAgICByZXR1cm4gVGVtcG9yYWxVdGlsLmdldEN1cnJlbnRNb250aChyZWZlcmVuY2VEYXRlKS5zaGlmdE1vbnRocygtMSlcbiAgfVxuXG4gIHN0YXRpYyBnZXROZXh0TW9udGgoXG4gICAgcmVmZXJlbmNlRGF0ZTogVGVtcG9yYWwuUGxhaW5EYXRlID0gVGVtcG9yYWxVdGlsLmdldERhdGVUb2RheUxvY2FsaXplZCgpXG4gICk6IFRlbXBvcmFsUGxhaW5EYXRlSW50ZXJ2YWwge1xuICAgIHJldHVybiBUZW1wb3JhbFV0aWwuZ2V0Q3VycmVudE1vbnRoKHJlZmVyZW5jZURhdGUpLnNoaWZ0TW9udGhzKDEpXG4gIH1cblxuICBzdGF0aWMgZ2V0UHJldmlvdXNXZWVrKFxuICAgIHJlZmVyZW5jZURhdGU6IFRlbXBvcmFsLlBsYWluRGF0ZSA9IFRlbXBvcmFsVXRpbC5nZXREYXRlVG9kYXlMb2NhbGl6ZWQoKVxuICApOiBUZW1wb3JhbFBsYWluRGF0ZUludGVydmFsIHtcbiAgICByZXR1cm4gVGVtcG9yYWxVdGlsLmdldEN1cnJlbnRXZWVrKHJlZmVyZW5jZURhdGUpLnNoaWZ0RGF5cygtNylcbiAgfVxuXG4gIHN0YXRpYyBnZXREYXRlVG9kYXlMb2NhbGl6ZWQoKTogVGVtcG9yYWwuUGxhaW5EYXRlIHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVUZW1wb3JhbExvY2FsaXplZERhdGVGcm9tVGltZXN0YW1wKERhdGUubm93KCkpXG4gIH1cblxuICBzdGF0aWMgY3JlYXRlVGVtcG9yYWxMb2NhbGl6ZWREYXRlRnJvbVRpbWVzdGFtcCh0aW1lc3RhbXA6IG51bWJlcik6IFRlbXBvcmFsLlBsYWluRGF0ZSB7XG4gICAgY29uc3QgaW5zdGFudCA9IFRlbXBvcmFsLkluc3RhbnQuZnJvbUVwb2NoTWlsbGlzZWNvbmRzKHRpbWVzdGFtcClcbiAgICBjb25zdCBkYXRlVGltZUlzbyA9IGluc3RhbnQudG9ab25lZERhdGVUaW1lSVNPKFRlbXBvcmFsLk5vdy50aW1lWm9uZUlkKCkpXG4gICAgY29uc3QgZGF0ZSA9IFRlbXBvcmFsLlBsYWluRGF0ZS5mcm9tKGRhdGVUaW1lSXNvKVxuICAgIHJldHVybiBkYXRlXG4gIH1cblxuICBzdGF0aWMgZ2V0SHRtbERhdGVTdHJpbmcoZGF0ZTogVGVtcG9yYWwuUGxhaW5EYXRlIHwgVGVtcG9yYWwuUGxhaW5EYXRlVGltZSk6IHN0cmluZyB7XG4gICAgaWYgKCFkYXRlKSB7XG4gICAgICByZXR1cm4gJydcbiAgICB9XG4gICAgcmV0dXJuIChcbiAgICAgIGRhdGUueWVhciArXG4gICAgICAnLScgK1xuICAgICAgZGF0ZS5tb250aC50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJykgK1xuICAgICAgJy0nICtcbiAgICAgIGRhdGUuZGF5LnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKVxuICAgIClcbiAgfVxuXG4gIHN0YXRpYyBnZXRQbGFpbkRhdGVGcm9tSHRtbERhdGVTdHJpbmcoZGF0ZVN0cmluZzogc3RyaW5nKTogVGVtcG9yYWwuUGxhaW5EYXRlIHtcbiAgICBpZiAoIWRhdGVTdHJpbmcpIHtcbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuICAgIGNvbnN0IGRhdGVBcnIgPSBkYXRlU3RyaW5nLnNwbGl0KCctJylcbiAgICBpZiAoZGF0ZUFyci5sZW5ndGggIT09IDMpIHtcbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuICAgIHJldHVybiBUZW1wb3JhbC5QbGFpbkRhdGUuZnJvbSh7XG4gICAgICB5ZWFyOiBwYXJzZUludChkYXRlQXJyWzBdKSxcbiAgICAgIG1vbnRoOiBwYXJzZUludChkYXRlQXJyWzFdKSxcbiAgICAgIGRheTogcGFyc2VJbnQoZGF0ZUFyclsyXSksXG4gICAgfSlcbiAgfVxuXG4gIHN0YXRpYyBnZXRQbGFpblRpbWVGcm9tSHRtbFRpbWVTdHJpbmcodGltZVN0cmluZzogc3RyaW5nKTogVGVtcG9yYWwuUGxhaW5UaW1lIHtcbiAgICBpZiAoIXRpbWVTdHJpbmcpIHtcbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuICAgIGNvbnN0IHRpbWVBcnIgPSB0aW1lU3RyaW5nLnNwbGl0KCc6JylcbiAgICBpZiAodGltZUFyci5sZW5ndGggIT09IDIgJiYgdGltZUFyci5sZW5ndGggIT09IDMpIHtcbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuXG4gICAgaWYgKHRpbWVBcnIubGVuZ3RoID09PSAyKSB7XG4gICAgICByZXR1cm4gVGVtcG9yYWwuUGxhaW5UaW1lLmZyb20oe1xuICAgICAgICBob3VyOiBwYXJzZUludCh0aW1lQXJyWzBdKSxcbiAgICAgICAgbWludXRlOiBwYXJzZUludCh0aW1lQXJyWzFdKSxcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgcmV0dXJuIFRlbXBvcmFsLlBsYWluVGltZS5mcm9tKHtcbiAgICAgIGhvdXI6IHBhcnNlSW50KHRpbWVBcnJbMF0pLFxuICAgICAgbWludXRlOiBwYXJzZUludCh0aW1lQXJyWzFdKSxcbiAgICAgIHNlY29uZDogcGFyc2VJbnQodGltZUFyclsyXSksXG4gICAgfSlcbiAgfVxufVxuIl19
193
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcG9yYWwtdXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbW1vbi90aW1lL3RlbXBvcmFsLXV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQ2hELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFBO0FBRTFFLE1BQU0sT0FBTyxZQUFZO0lBQ3ZCLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxJQUFpRDtRQUNqRixJQUFJLElBQUksWUFBWSxRQUFRLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDM0MsT0FBTyxJQUFJLElBQUksQ0FDYixJQUFJLENBQUMsSUFBSSxFQUNULElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUNkLElBQUksQ0FBQyxHQUFHLEVBQ1IsSUFBSSxDQUFDLElBQUksRUFDVCxJQUFJLENBQUMsTUFBTSxFQUNYLElBQUksQ0FBQyxNQUFNLEVBQ1gsSUFBSSxDQUFDLFdBQVcsQ0FDakIsQ0FBQTtRQUNILENBQUM7UUFDRCxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ3RELENBQUM7SUFFRCxNQUFNLENBQUMsMEJBQTBCLENBQUMsSUFBVTtRQUMxQyxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFBO1FBQ3RFLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUE7UUFDekUsT0FBTyxRQUFRLENBQUMsYUFBYSxDQUFD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QUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDNUIsTUFBTSxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDN0IsQ0FBQyxDQUFBO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGVtcG9yYWwgfSBmcm9tICdAanMtdGVtcG9yYWwvcG9seWZpbGwnXG5pbXBvcnQgeyBUZW1wb3JhbFBsYWluRGF0ZUludGVydmFsIH0gZnJvbSAnLi90ZW1wb3JhbC1wbGFpbi1kYXRlLWludGVydmFsJ1xuXG5leHBvcnQgY2xhc3MgVGVtcG9yYWxVdGlsIHtcbiAgc3RhdGljIGdldEpTRGF0ZUZyb21QbGFpbkRhdGVUaW1lKGRhdGU6IFRlbXBvcmFsLlBsYWluRGF0ZSB8IFRlbXBvcmFsLlBsYWluRGF0ZVRpbWUpOiBEYXRlIHtcbiAgICBpZiAoZGF0ZSBpbnN0YW5jZW9mIFRlbXBvcmFsLlBsYWluRGF0ZVRpbWUpIHtcbiAgICAgIHJldHVybiBuZXcgRGF0ZShcbiAgICAgICAgZGF0ZS55ZWFyLFxuICAgICAgICBkYXRlLm1vbnRoIC0gMSxcbiAgICAgICAgZGF0ZS5kYXksXG4gICAgICAgIGRhdGUuaG91cixcbiAgICAgICAgZGF0ZS5taW51dGUsXG4gICAgICAgIGRhdGUuc2Vjb25kLFxuICAgICAgICBkYXRlLm1pbGxpc2Vjb25kXG4gICAgICApXG4gICAgfVxuICAgIHJldHVybiBuZXcgRGF0ZShkYXRlLnllYXIsIGRhdGUubW9udGggLSAxLCBkYXRlLmRheSlcbiAgfVxuXG4gIHN0YXRpYyBnZXRQbGFpbkRhdGVUaW1lRnJvbUpTRGF0ZShkYXRlOiBEYXRlKTogVGVtcG9yYWwuUGxhaW5EYXRlVGltZSB7XG4gICAgY29uc3QgaW5zdGFudCA9IFRlbXBvcmFsLkluc3RhbnQuZnJvbUVwb2NoTWlsbGlzZWNvbmRzKGRhdGUuZ2V0VGltZSgpKVxuICAgIGNvbnN0IGRhdGVUaW1lSXNvID0gaW5zdGFudC50b1pvbmVkRGF0ZVRpbWVJU08oVGVtcG9yYWwuTm93LnRpbWVab25lSWQoKSlcbiAgICByZXR1cm4gVGVtcG9yYWwuUGxhaW5EYXRlVGltZS5mcm9tKGRhdGVUaW1lSXNvKVxuICB9XG5cbiAgc3RhdGljIGdldFBsYWluRGF0ZVRpbWVGcm9tUGxhaW5EYXRlQW5kUGxhaW5UaW1lKFxuICAgIGRhdGU6IFRlbXBvcmFsLlBsYWluRGF0ZSxcbiAgICB0aW1lOiBUZW1wb3JhbC5QbGFpblRpbWVcbiAgKTogVGVtcG9yYWwuUGxhaW5EYXRlVGltZSB7XG4gICAgcmV0dXJuIFRlbXBvcmFsLlBsYWluRGF0ZVRpbWUuZnJvbSh7XG4gICAgICB5ZWFyOiBkYXRlLnllYXIsXG4gICAgICBtb250aDogZGF0ZS5tb250aCxcbiAgICAgIGRheTogZGF0ZS5kYXksXG4gICAgICBob3VyOiB0aW1lLmhvdXIsXG4gICAgICBtaW51dGU6IHRpbWUubWludXRlLFxuICAgICAgc2Vjb25kOiB0aW1lLnNlY29uZCxcbiAgICAgIG1pbGxpc2Vjb25kOiB0aW1lLm1pbGxpc2Vjb25kLFxuICAgIH0pXG4gIH1cblxuICBzdGF0aWMgaXNGaXJzdERheU9mV2VlayhkYXRlOiBUZW1wb3JhbC5QbGFpbkRhdGUgfCBUZW1wb3JhbC5QbGFpbkRhdGVUaW1lKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGRhdGUuZGF5T2ZXZWVrID09PSAxXG4gIH1cblxuICBzdGF0aWMgZ2V0UGxhaW5EYXRlRnJvbUpTRGF0ZShkYXRlOiBEYXRlKTogVGVtcG9yYWwuUGxhaW5EYXRlIHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVUZW1wb3JhbExvY2FsaXplZERhdGVGcm9tVGltZXN0YW1wKGRhdGUuZ2V0VGltZSgpKVxuICB9XG5cbiAgc3RhdGljIGdldFBsYWluVGltZUZyb21KU0RhdGUoZGF0ZTogRGF0ZSk6IFRlbXBvcmFsLlBsYWluVGltZSB7XG4gICAgY29uc3QgaW5zdGFudCA9IFRlbXBvcmFsLkluc3RhbnQuZnJvbUVwb2NoTWlsbGlzZWNvbmRzKGRhdGUuZ2V0VGltZSgpKVxuICAgIGNvbnN0IGRhdGVUaW1lSXNvID0gaW5zdGFudC50b1pvbmVkRGF0ZVRpbWVJU08oVGVtcG9yYWwuTm93LnRpbWVab25lSWQoKSlcbiAgICByZXR1cm4gVGVtcG9yYWwuUGxhaW5UaW1lLmZyb20oZGF0ZVRpbWVJc28pXG4gIH1cblxuICBzdGF0aWMgZ2V0UGxhaW5EYXRlVGltZUZyb21TdHJpbmcoZGF0ZVN0cmluZzogc3RyaW5nKTogVGVtcG9yYWwuUGxhaW5EYXRlVGltZSB7XG4gICAgbGV0IGpzRGF0ZTogRGF0ZSA9IG51bGxcbiAgICB0cnkge1xuICAgICAganNEYXRlID0gbmV3IERhdGUoZGF0ZVN0cmluZylcbiAgICAgIGlmICh0eXBlb2YganNEYXRlICE9PSAnb2JqZWN0JyB8fCBqc0RhdGUuY29uc3RydWN0b3IubmFtZSAhPT0gJ0RhdGUnKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBkYXRlIHN0cmluZycpXG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS53YXJuKCdJbnZhbGlkIGRhdGUgc3RyaW5nJywgZGF0ZVN0cmluZylcbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZ2V0UGxhaW5EYXRlVGltZUZyb21KU0RhdGUoanNEYXRlKVxuICB9XG5cbiAgc3RhdGljIGdldEh0bWxUaW1lU3RyaW5nRnJvbVBsYWluVGltZSh0aW1lOiBUZW1wb3JhbC5QbGFpblRpbWUgfCBUZW1wb3JhbC5QbGFpbkRhdGVUaW1lKTogc3RyaW5nIHtcbiAgICBpZiAoIXRpbWUpIHtcbiAgICAgIHJldHVybiAnMDA6MDA6MDAnXG4gICAgfVxuICAgIHJldHVybiAoXG4gICAgICB0aW1lLmhvdXIudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpICtcbiAgICAgICc6JyArXG4gICAgICB0aW1lLm1pbnV0ZS50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJykgK1xuICAgICAgJzonICtcbiAgICAgIHRpbWUuc2Vjb25kLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKVxuICAgIClcbiAgfVxuXG4gIHN0YXRpYyBnZXRRdWFydGVyRm9yRGF0ZShcbiAgICBkYXRlOiBUZW1wb3JhbC5QbGFpbkRhdGUgPSBUZW1wb3JhbFV0aWwuZ2V0RGF0ZVRvZGF5TG9jYWxpemVkKClcbiAgKTogbnVtYmVyIHtcbiAgICByZXR1cm4gTWF0aC5mbG9vcigoZGF0ZS5tb250aCAtIDEpIC8gMykgKyAxXG4gIH1cblxuICBzdGF0aWMgZ2V0Q3VycmVudERheShcbiAgICByZWZlcmVuY2VEYXRlOiBUZW1wb3JhbC5QbGFpbkRhdGUgPSBUZW1wb3JhbFV0aWwuZ2V0RGF0ZVRvZGF5TG9jYWxpemVkKClcbiAgKTogVGVtcG9yYWxQbGFpbkRhdGVJbnRlcnZhbCB7XG4gICAgY29uc3QgdG9kYXkgPSByZWZlcmVuY2VEYXRlXG4gICAgY29uc3QgdG9tb3Jyb3cgPSB0b2RheS5hZGQoeyBkYXlzOiAxIH0pXG4gICAgcmV0dXJuIG5ldyBUZW1wb3JhbFBsYWluRGF0ZUludGVydmFsKHRvZGF5LCB0b21vcnJvdylcbiAgfVxuXG4gIHN0YXRpYyBnZXRZZXN0ZXJkYXkoXG4gICAgcmVmZXJlbmNlRGF0ZTogVGVtcG9yYWwuUGxhaW5EYXRlID0gVGVtcG9yYWxVdGlsLmdldERhdGVUb2RheUxvY2FsaXplZCgpXG4gICk6IFRlbXBvcmFsUGxhaW5EYXRlSW50ZXJ2YWwge1xuICAgIGNvbnN0IHllc3RlcmRheSA9IHJlZmVyZW5jZURhdGUuc3VidHJhY3QoeyBkYXlzOiAxIH0pXG4gICAgcmV0dXJuIG5ldyBUZW1wb3JhbFBsYWluRGF0ZUludGVydmFsKHllc3RlcmRheSwgcmVmZXJlbmNlRGF0ZSlcbiAgfVxuXG4gIHN0YXRpYyBnZXRMYXN0U2V2ZW5EYXlzKFxuICAgIHJlZmVyZW5jZURhdGU6IFRlbXBvcmFsLlBsYWluRGF0ZSA9IFRlbXBvcmFsVXRpbC5nZXREYXRlVG9kYXlMb2NhbGl6ZWQoKVxuICApOiBUZW1wb3JhbFBsYWluRGF0ZUludGVydmFsIHtcbiAgICByZXR1cm4gbmV3IFRlbXBvcmFsUGxhaW5EYXRlSW50ZXJ2YWwocmVmZXJlbmNlRGF0ZS5zdWJ0cmFjdCh7IGRheXM6IDcgfSksIHJlZmVyZW5jZURhdGUpXG4gIH1cblxuICBzdGF0aWMgZ2V0TGFzdFNldmVuRGF5c0luY2x1ZGluZ1RvZGF5KFxuICAgIHJlZmVyZW5jZURhdGU6IFRlbXBvcmFsLlBsYWluRGF0ZSA9IFRlbXBvcmFsVXRpbC5nZXREYXRlVG9kYXlMb2NhbGl6ZWQoKVxuICApOiBUZW1wb3JhbFBsYWluRGF0ZUludGVydmFsIHtcbiAgICByZXR1cm4gbmV3IFRlbXBvcmFsUGxhaW5EYXRlSW50ZXJ2YWwoXG4gICAgICByZWZlcmVuY2VEYXRlLnN1YnRyYWN0KHsgZGF5czogNyAtIDEgfSksXG4gICAgICByZWZlcmVuY2VEYXRlLmFkZCh7IGRheXM6IDEgfSlcbiAgICApXG4gIH1cblxuICBzdGF0aWMgZ2V0TGFzdFRoaXJ0eURheXMoXG4gICAgcmVmZXJlbmNlRGF0ZTogVGVtcG9yYWwuUGxhaW5EYXRlID0gVGVtcG9yYWxVdGlsLmdldERhdGVUb2RheUxvY2FsaXplZCgpXG4gICk6IFRlbXBvcmFsUGxhaW5EYXRlSW50ZXJ2YWwge1xuICAgIHJldHVybiBuZXcgVGVtcG9yYWxQbGFpbkRhdGVJbnRlcnZhbChyZWZlcmVuY2VEYXRlLnN1YnRyYWN0KHsgZGF5czogMzAgfSksIHJlZmVyZW5jZURhdGUpXG4gIH1cblxuICBzdGF0aWMgZ2V0TGFzdFRoaXJ0eURheXNJbmNsdWRpbmdUb2RheShcbiAgICByZWZlcmVuY2VEYXRlOiBUZW1wb3JhbC5QbGFpbkRhdGUgPSBUZW1wb3JhbFV0aWwuZ2V0RGF0ZVRvZGF5TG9jYWxpemVkKClcbiAgKTogVGVtcG9yYWxQbGFpbkRhdGVJbnRlcnZhbCB7XG4gICAgcmV0dXJuIG5ldyBUZW1wb3JhbFBsYWluRGF0ZUludGVydmFsKFxuICAgICAgcmVmZXJlbmNlRGF0ZS5zdWJ0cmFjdCh7IGRheXM6IDMwIC0gMSB9KSxcbiAgICAgIHJlZmVyZW5jZURhdGUuYWRkKHsgZGF5czogMSB9KVxuICAgIClcbiAgfVxuXG4gIHN0YXRpYyBnZXRDdXJyZW50V2VlayhcbiAgICByZWZlcmVuY2VEYXRlOiBUZW1wb3JhbC5QbGFpbkRhdGUgPSBUZW1wb3JhbFV0aWwuZ2V0RGF0ZVRvZGF5TG9jYWxpemVkKClcbiAgKTogVGVtcG9yYWxQbGFpbkRhdGVJbnRlcnZhbCB7XG4gICAgY29uc3Qgc3RhcnRPZldlZWsgPSByZWZlcmVuY2VEYXRlLnN1YnRyYWN0KHtcbiAgICAgIGRheXM6IHJlZmVyZW5jZURhdGUuZGF5T2ZXZWVrIC0gMSxcbiAgICB9KVxuICAgIGNvbnN0IGVuZE9mV2VlayA9IHN0YXJ0T2ZXZWVrLmFkZCh7IGRheXM6IDcgfSlcbiAgICByZXR1cm4gbmV3IFRlbXBvcmFsUGxhaW5EYXRlSW50ZXJ2YWwoc3RhcnRPZldlZWssIGVuZE9mV2VlaylcbiAgfVxuXG4gIHN0YXRpYyBnZXRDdXJyZW50TW9udGgoXG4gICAgcmVmZXJlbmNlRGF0ZTogVGVtcG9yYWwuUGxhaW5EYXRlID0gVGVtcG9yYWxVdGlsLmdldERhdGVUb2RheUxvY2FsaXplZCgpXG4gICk6IFRlbXBvcmFsUGxhaW5EYXRlSW50ZXJ2YWwge1xuICAgIGNvbnN0IHN0YXJ0T2ZNb250aCA9IHJlZmVyZW5jZURhdGUuc3VidHJhY3Qoe1xuICAgICAgZGF5czogcmVmZXJlbmNlRGF0ZS5kYXkgLSAxLFxuICAgIH0pXG4gICAgY29uc3QgZW5kT2ZNb250aCA9IHN0YXJ0T2ZNb250aC5hZGQoeyBtb250aHM6IDEgfSlcbiAgICByZXR1cm4gbmV3IFRlbXBvcmFsUGxhaW5EYXRlSW50ZXJ2YWwoc3RhcnRPZk1vbnRoLCBlbmRPZk1vbnRoKVxuICB9XG5cbiAgc3RhdGljIGdldEN1cnJlbnRRdWFydGVyKFxuICAgIHJlZmVyZW5jZURhdGU6IFRlbXBvcmFsLlBsYWluRGF0ZSA9IFRlbXBvcmFsVXRpbC5nZXREYXRlVG9kYXlMb2NhbGl6ZWQoKVxuICApOiBUZW1wb3JhbFBsYWluRGF0ZUludGVydmFsIHtcbiAgICBjb25zdCBxdWFydGVyID0gTWF0aC5mbG9vcigocmVmZXJlbmNlRGF0ZS5tb250aCAtIDEpIC8gMylcbiAgICBjb25zdCBzdGFydE9mUXVhcnRlciA9IHJlZmVyZW5jZURhdGUuc3VidHJhY3Qoe1xuICAgICAgbW9udGhzOiByZWZlcmVuY2VEYXRlLm1vbnRoIC0gMSAtIHF1YXJ0ZXIgKiAzLFxuICAgICAgZGF5czogcmVmZXJlbmNlRGF0ZS5kYXkgLSAxLFxuICAgIH0pXG4gICAgY29uc3QgZW5kT2ZRdWFydGVyID0gc3RhcnRPZlF1YXJ0ZXIuYWRkKHsgbW9udGhzOiAzIH0pXG4gICAgcmV0dXJuIG5ldyBUZW1wb3JhbFBsYWluRGF0ZUludGVydmFsKHN0YXJ0T2ZRdWFydGVyLCBlbmRPZlF1YXJ0ZXIpXG4gIH1cblxuICBzdGF0aWMgZ2V0UHJldmlvdXNRdWFydGVyKFxuICAgIHJlZmVyZW5jZURhdGU6IFRlbXBvcmFsLlBsYWluRGF0ZSA9IFRlbXBvcmFsVXRpbC5nZXREYXRlVG9kYXlMb2NhbGl6ZWQoKVxuICApOiBUZW1wb3JhbFBsYWluRGF0ZUludGVydmFsIHtcbiAgICByZXR1cm4gVGVtcG9yYWxVdGlsLmdldEN1cnJlbnRRdWFydGVyKHJlZmVyZW5jZURhdGUpLnNoaWZ0TW9udGhzKC0zKVxuICB9XG5cbiAgc3RhdGljIGdldEN1cnJlbnRZZWFyKFxuICAgIHJlZmVyZW5jZURhdGU6IFRlbXBvcmFsLlBsYWluRGF0ZSA9IFRlbXBvcmFsVXRpbC5nZXREYXRlVG9kYXlMb2NhbGl6ZWQoKVxuICApOiBUZW1wb3JhbFBsYWluRGF0ZUludGVydmFsIHtcbiAgICBjb25zdCBzdGFydE9mWWVhciA9IHJlZmVyZW5jZURhdGUuc3VidHJhY3Qoe1xuICAgICAgZGF5czogcmVmZXJlbmNlRGF0ZS5kYXlPZlllYXIgLSAxLFxuICAgIH0pXG4gICAgY29uc3QgZW5kT2ZZZWFyID0gc3RhcnRPZlllYXIuYWRkKHsgeWVhcnM6IDEgfSlcbiAgICByZXR1cm4gbmV3IFRlbXBvcmFsUGxhaW5EYXRlSW50ZXJ2YWwoc3RhcnRPZlllYXIsIGVuZE9mWWVhcilcbiAgfVxuXG4gIHN0YXRpYyBnZXRQcmV2aW91c1llYXIoXG4gICAgcmVmZXJlbmNlRGF0ZTogVGVtcG9yYWwuUGxhaW5EYXRlID0gVGVtcG9yYWxVdGlsLmdldERhdGVUb2RheUxvY2FsaXplZCgpXG4gICk6IFRlbXBvcmFsUGxhaW5EYXRlSW50ZXJ2YWwge1xuICAgIHJldHVybiBUZW1wb3JhbFV0aWwuZ2V0Q3VycmVudFllYXIocmVmZXJlbmNlRGF0ZSkuc2hpZnRZZWFycygtMSlcbiAgfVxuXG4gIHN0YXRpYyBnZXROZXh0WWVhcihcbiAgICByZWZlcmVuY2VEYXRlOiBUZW1wb3JhbC5QbGFpbkRhdGUgPSBUZW1wb3JhbFV0aWwuZ2V0RGF0ZVRvZGF5TG9jYWxpemVkKClcbiAgKTogVGVtcG9yYWxQbGFpbkRhdGVJbnRlcnZhbCB7XG4gICAgcmV0dXJuIFRlbXBvcmFsVXRpbC5nZXRDdXJyZW50WWVhcihyZWZlcmVuY2VEYXRlKS5zaGlmdFllYXJzKDEpXG4gIH1cblxuICBzdGF0aWMgZ2V0TGFzdDM2NURheXMoXG4gICAgcmVmZXJlbmNlRGF0ZTogVGVtcG9yYWwuUGxhaW5EYXRlID0gVGVtcG9yYWxVdGlsLmdldERhdGVUb2RheUxvY2FsaXplZCgpXG4gICk6IFRlbXBvcmFsUGxhaW5EYXRlSW50ZXJ2YWwge1xuICAgIHJldHVybiBuZXcgVGVtcG9yYWxQbGFpbkRhdGVJbnRlcnZhbChyZWZlcmVuY2VEYXRlLnN1YnRyYWN0KHsgZGF5czogMzY1IH0pLCByZWZlcmVuY2VEYXRlKVxuICB9XG5cbiAgc3RhdGljIGdldExhc3Q5MERheXMoXG4gICAgcmVmZXJlbmNlRGF0ZTogVGVtcG9yYWwuUGxhaW5EYXRlID0gVGVtcG9yYWxVdGlsLmdldERhdGVUb2RheUxvY2FsaXplZCgpXG4gICk6IFRlbXBvcmFsUGxhaW5EYXRlSW50ZXJ2YWwge1xuICAgIHJldHVybiBuZXcgVGVtcG9yYWxQbGFpbkRhdGVJbnRlcnZhbChyZWZlcmVuY2VEYXRlLnN1YnRyYWN0KHsgZGF5czogOTAgfSksIHJlZmVyZW5jZURhdGUpXG4gIH1cblxuICBzdGF0aWMgZ2V0UHJldmlvdXNNb250aChcbiAgICByZWZlcmVuY2VEYXRlOiBUZW1wb3JhbC5QbGFpbkRhdGUgPSBUZW1wb3JhbFV0aWwuZ2V0RGF0ZVRvZGF5TG9jYWxpemVkKClcbiAgKTogVGVtcG9yYWxQbGFpbkRhdGVJbnRlcnZhbCB7XG4gICAgcmV0dXJuIFRlbXBvcmFsVXRpbC5nZXRDdXJyZW50TW9udGgocmVmZXJlbmNlRGF0ZSkuc2hpZnRNb250aHMoLTEpXG4gIH1cblxuICBzdGF0aWMgZ2V0TmV4dE1vbnRoKFxuICAgIHJlZmVyZW5jZURhdGU6IFRlbXBvcmFsLlBsYWluRGF0ZSA9IFRlbXBvcmFsVXRpbC5nZXREYXRlVG9kYXlMb2NhbGl6ZWQoKVxuICApOiBUZW1wb3JhbFBsYWluRGF0ZUludGVydmFsIHtcbiAgICByZXR1cm4gVGVtcG9yYWxVdGlsLmdldEN1cnJlbnRNb250aChyZWZlcmVuY2VEYXRlKS5zaGlmdE1vbnRocygxKVxuICB9XG5cbiAgc3RhdGljIGdldFByZXZpb3VzV2VlayhcbiAgICByZWZlcmVuY2VEYXRlOiBUZW1wb3JhbC5QbGFpbkRhdGUgPSBUZW1wb3JhbFV0aWwuZ2V0RGF0ZVRvZGF5TG9jYWxpemVkKClcbiAgKTogVGVtcG9yYWxQbGFpbkRhdGVJbnRlcnZhbCB7XG4gICAgcmV0dXJuIFRlbXBvcmFsVXRpbC5nZXRDdXJyZW50V2VlayhyZWZlcmVuY2VEYXRlKS5zaGlmdERheXMoLTcpXG4gIH1cblxuICBzdGF0aWMgZ2V0RGF0ZVRvZGF5TG9jYWxpemVkKCk6IFRlbXBvcmFsLlBsYWluRGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlVGVtcG9yYWxMb2NhbGl6ZWREYXRlRnJvbVRpbWVzdGFtcChEYXRlLm5vdygpKVxuICB9XG5cbiAgc3RhdGljIGNyZWF0ZVRlbXBvcmFsTG9jYWxpemVkRGF0ZUZyb21UaW1lc3RhbXAodGltZXN0YW1wOiBudW1iZXIpOiBUZW1wb3JhbC5QbGFpbkRhdGUge1xuICAgIGNvbnN0IGluc3RhbnQgPSBUZW1wb3JhbC5JbnN0YW50LmZyb21FcG9jaE1pbGxpc2Vjb25kcyh0aW1lc3RhbXApXG4gICAgY29uc3QgZGF0ZVRpbWVJc28gPSBpbnN0YW50LnRvWm9uZWREYXRlVGltZUlTTyhUZW1wb3JhbC5Ob3cudGltZVpvbmVJZCgpKVxuICAgIGNvbnN0IGRhdGUgPSBUZW1wb3JhbC5QbGFpbkRhdGUuZnJvbShkYXRlVGltZUlzbylcbiAgICByZXR1cm4gZGF0ZVxuICB9XG5cbiAgc3RhdGljIGdldEh0bWxEYXRlU3RyaW5nKGRhdGU6IFRlbXBvcmFsLlBsYWluRGF0ZSB8IFRlbXBvcmFsLlBsYWluRGF0ZVRpbWUpOiBzdHJpbmcge1xuICAgIGlmICghZGF0ZSkge1xuICAgICAgcmV0dXJuICcnXG4gICAgfVxuICAgIHJldHVybiAoXG4gICAgICBkYXRlLnllYXIgK1xuICAgICAgJy0nICtcbiAgICAgIGRhdGUubW9udGgudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpICtcbiAgICAgICctJyArXG4gICAgICBkYXRlLmRheS50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJylcbiAgICApXG4gIH1cblxuICBzdGF0aWMgZ2V0UGxhaW5EYXRlRnJvbUh0bWxEYXRlU3RyaW5nKGRhdGVTdHJpbmc6IHN0cmluZyk6IFRlbXBvcmFsLlBsYWluRGF0ZSB7XG4gICAgaWYgKCFkYXRlU3RyaW5nKSB7XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cbiAgICBjb25zdCBkYXRlQXJyID0gZGF0ZVN0cmluZy5zcGxpdCgnLScpXG4gICAgaWYgKGRhdGVBcnIubGVuZ3RoICE9PSAzKSB7XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cbiAgICByZXR1cm4gVGVtcG9yYWwuUGxhaW5EYXRlLmZyb20oe1xuICAgICAgeWVhcjogcGFyc2VJbnQoZGF0ZUFyclswXSksXG4gICAgICBtb250aDogcGFyc2VJbnQoZGF0ZUFyclsxXSksXG4gICAgICBkYXk6IHBhcnNlSW50KGRhdGVBcnJbMl0pLFxuICAgIH0pXG4gIH1cblxuICBzdGF0aWMgZ2V0UGxhaW5UaW1lRnJvbUh0bWxUaW1lU3RyaW5nKHRpbWVTdHJpbmc6IHN0cmluZyk6IFRlbXBvcmFsLlBsYWluVGltZSB7XG4gICAgaWYgKCF0aW1lU3RyaW5nKSB7XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cbiAgICBjb25zdCB0aW1lQXJyID0gdGltZVN0cmluZy5zcGxpdCgnOicpXG4gICAgaWYgKHRpbWVBcnIubGVuZ3RoICE9PSAyICYmIHRpbWVBcnIubGVuZ3RoICE9PSAzKSB7XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cblxuICAgIGlmICh0aW1lQXJyLmxlbmd0aCA9PT0gMikge1xuICAgICAgcmV0dXJuIFRlbXBvcmFsLlBsYWluVGltZS5mcm9tKHtcbiAgICAgICAgaG91cjogcGFyc2VJbnQodGltZUFyclswXSksXG4gICAgICAgIG1pbnV0ZTogcGFyc2VJbnQodGltZUFyclsxXSksXG4gICAgICB9KVxuICAgIH1cblxuICAgIHJldHVybiBUZW1wb3JhbC5QbGFpblRpbWUuZnJvbSh7XG4gICAgICBob3VyOiBwYXJzZUludCh0aW1lQXJyWzBdKSxcbiAgICAgIG1pbnV0ZTogcGFyc2VJbnQodGltZUFyclsxXSksXG4gICAgICBzZWNvbmQ6IHBhcnNlSW50KHRpbWVBcnJbMl0pLFxuICAgIH0pXG4gIH1cbn1cbiJdfQ==
@@ -24,7 +24,7 @@ export class ElderIntervalPickerToggleComponent {
24
24
  this.isDisabledInput = false;
25
25
  this.isResultTextVisible = true;
26
26
  this.isHelpTextsVisible = false;
27
- this.isOverlayCenteredToScreen = false;
27
+ this.isSelectLastModeExcludingToday = false;
28
28
  this.inputAnchorDateTime = input(null);
29
29
  this.inputInterval = null;
30
30
  this.anchorDateTime = null;
@@ -88,13 +88,14 @@ export class ElderIntervalPickerToggleComponent {
88
88
  this.intervalInputElement = inputComponent;
89
89
  }
90
90
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ElderIntervalPickerToggleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
91
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.2", type: ElderIntervalPickerToggleComponent, isStandalone: true, selector: "elder-interval-picker-toggle", inputs: { intervalInputElement: { classPropertyName: "intervalInputElement", publicName: "intervalInputElement", isSignal: false, isRequired: false, transformFunction: null }, isEmittingOnChange: { classPropertyName: "isEmittingOnChange", publicName: "isEmittingOnChange", isSignal: false, isRequired: false, transformFunction: null }, showAnchor: { classPropertyName: "showAnchor", publicName: "showAnchor", isSignal: false, isRequired: false, transformFunction: null }, isAnchorReadOnly: { classPropertyName: "isAnchorReadOnly", publicName: "isAnchorReadOnly", isSignal: false, isRequired: false, transformFunction: null }, isDisabledInput: { classPropertyName: "isDisabledInput", publicName: "isDisabledInput", isSignal: false, isRequired: false, transformFunction: null }, isResultTextVisible: { classPropertyName: "isResultTextVisible", publicName: "isResultTextVisible", isSignal: false, isRequired: false, transformFunction: null }, isHelpTextsVisible: { classPropertyName: "isHelpTextsVisible", publicName: "isHelpTextsVisible", isSignal: false, isRequired: false, transformFunction: null }, isOverlayCenteredToScreen: { classPropertyName: "isOverlayCenteredToScreen", publicName: "isOverlayCenteredToScreen", isSignal: false, isRequired: false, transformFunction: null }, inputAnchorDateTime: { classPropertyName: "inputAnchorDateTime", publicName: "inputAnchorDateTime", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "connectedIntervalPicker", first: true, predicate: ["connectedIntervalPicker"], descendants: true }], ngImport: i0, template: `
91
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.2", type: ElderIntervalPickerToggleComponent, isStandalone: true, selector: "elder-interval-picker-toggle", inputs: { intervalInputElement: { classPropertyName: "intervalInputElement", publicName: "intervalInputElement", isSignal: false, isRequired: false, transformFunction: null }, isEmittingOnChange: { classPropertyName: "isEmittingOnChange", publicName: "isEmittingOnChange", isSignal: false, isRequired: false, transformFunction: null }, showAnchor: { classPropertyName: "showAnchor", publicName: "showAnchor", isSignal: false, isRequired: false, transformFunction: null }, isAnchorReadOnly: { classPropertyName: "isAnchorReadOnly", publicName: "isAnchorReadOnly", isSignal: false, isRequired: false, transformFunction: null }, isDisabledInput: { classPropertyName: "isDisabledInput", publicName: "isDisabledInput", isSignal: false, isRequired: false, transformFunction: null }, isResultTextVisible: { classPropertyName: "isResultTextVisible", publicName: "isResultTextVisible", isSignal: false, isRequired: false, transformFunction: null }, isHelpTextsVisible: { classPropertyName: "isHelpTextsVisible", publicName: "isHelpTextsVisible", isSignal: false, isRequired: false, transformFunction: null }, isSelectLastModeExcludingToday: { classPropertyName: "isSelectLastModeExcludingToday", publicName: "isSelectLastModeExcludingToday", isSignal: false, isRequired: false, transformFunction: null }, inputAnchorDateTime: { classPropertyName: "inputAnchorDateTime", publicName: "inputAnchorDateTime", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "connectedIntervalPicker", first: true, predicate: ["connectedIntervalPicker"], descendants: true }], ngImport: i0, template: `
92
92
  <span style="padding-right: 8px">
93
93
  <button
94
94
  mat-icon-button
95
95
  [elderOverlayOrigin]="dateIntervalOverlay"
96
96
  [elderOverlayTrigger]="dateIntervalOverlay"
97
97
  [disabled]="isButtonDisabled"
98
+ (click)="pullIntervalData()"
98
99
  class="elder-control-icon-button mat-datepicker-toggle"
99
100
  >
100
101
  <mat-icon>date_range</mat-icon>
@@ -115,11 +116,12 @@ export class ElderIntervalPickerToggleComponent {
115
116
  [isAnchorReadOnly]="isAnchorReadOnly"
116
117
  [isResultTextVisible]="isResultTextVisible"
117
118
  [isHelpTextsVisible]="isHelpTextsVisible"
119
+ [isSelectLastModeExcludingToday]="isSelectLastModeExcludingToday"
118
120
  ></elder-interval-picker>
119
121
  </div>
120
122
  </elder-dialog-panel>
121
123
  </elder-overlay>
122
- `, isInline: true, dependencies: [{ kind: "component", type: ElderIntervalPickerComponent, selector: "elder-interval-picker", inputs: ["isEmittingOnChange", "intervalInputMode", "showAnchor", "isAnchorReadOnly", "isResultTextVisible", "isHelpTextsVisible", "inputInterval", "inputAnchorDateTime"], outputs: ["dateChange"] }, { kind: "component", type: ElderOverlayComponent, selector: "elder-overlay", inputs: ["originX", "originY", "overlayX", "overlayY", "offsetY", "offsetX", "backdrop", "backdropVisible", "origin", "positionStrategy", "overlaySize"], outputs: ["keydownEvents", "attachedChange"], exportAs: ["elderOverlay"] }, { kind: "component", type: ElderDialogPanelComponent, selector: "elder-dialog-panel" }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: ElderOverlayTriggerDirective, selector: "[elderOverlayTrigger]", inputs: ["elderOverlayTrigger", "elderOverlayTriggerType", "elderOverlayTriggerEnabled"] }, { kind: "directive", type: ElderOverlayOriginDirective, selector: "[elderOverlayOrigin]", inputs: ["elderOverlayOrigin"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
124
+ `, isInline: true, dependencies: [{ kind: "component", type: ElderIntervalPickerComponent, selector: "elder-interval-picker", inputs: ["isEmittingOnChange", "intervalInputMode", "showAnchor", "isAnchorReadOnly", "isResultTextVisible", "isHelpTextsVisible", "isSelectLastModeExcludingToday", "inputInterval", "inputAnchorDateTime"], outputs: ["dateChange"] }, { kind: "component", type: ElderOverlayComponent, selector: "elder-overlay", inputs: ["originX", "originY", "overlayX", "overlayY", "offsetY", "offsetX", "backdrop", "backdropVisible", "origin", "positionStrategy", "overlaySize"], outputs: ["keydownEvents", "attachedChange"], exportAs: ["elderOverlay"] }, { kind: "component", type: ElderDialogPanelComponent, selector: "elder-dialog-panel" }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: ElderOverlayTriggerDirective, selector: "[elderOverlayTrigger]", inputs: ["elderOverlayTrigger", "elderOverlayTriggerType", "elderOverlayTriggerEnabled"] }, { kind: "directive", type: ElderOverlayOriginDirective, selector: "[elderOverlayOrigin]", inputs: ["elderOverlayOrigin"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
123
125
  }
124
126
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ElderIntervalPickerToggleComponent, decorators: [{
125
127
  type: Component,
@@ -146,6 +148,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
146
148
  [elderOverlayOrigin]="dateIntervalOverlay"
147
149
  [elderOverlayTrigger]="dateIntervalOverlay"
148
150
  [disabled]="isButtonDisabled"
151
+ (click)="pullIntervalData()"
149
152
  class="elder-control-icon-button mat-datepicker-toggle"
150
153
  >
151
154
  <mat-icon>date_range</mat-icon>
@@ -166,6 +169,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
166
169
  [isAnchorReadOnly]="isAnchorReadOnly"
167
170
  [isResultTextVisible]="isResultTextVisible"
168
171
  [isHelpTextsVisible]="isHelpTextsVisible"
172
+ [isSelectLastModeExcludingToday]="isSelectLastModeExcludingToday"
169
173
  ></elder-interval-picker>
170
174
  </div>
171
175
  </elder-dialog-panel>
@@ -190,7 +194,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
190
194
  type: Input
191
195
  }], isHelpTextsVisible: [{
192
196
  type: Input
193
- }], isOverlayCenteredToScreen: [{
197
+ }], isSelectLastModeExcludingToday: [{
194
198
  type: Input
195
199
  }] } });
196
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItaW50ZXJ2YWwtcGlja2VyLXRvZ2dsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL3RpbWUvZWxkZXItaW50ZXJ2YWwtcGlja2VyL2VsZGVyLWludGVydmFsLXBpY2tlci10b2dnbGUvZWxkZXItaW50ZXJ2YWwtcGlja2VyLXRvZ2dsZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUMzRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sOEJBQThCLENBQUE7QUFDaEYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ2hELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUdwRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQTtBQUM1RyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxpRUFBaUUsQ0FBQTtBQUM5RyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQTtBQUMvRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwrRUFBK0UsQ0FBQTtBQUN6SCxPQUFPLEVBQ0wsMkJBQTJCLEdBRTVCLE1BQU0saUZBQWlGLENBQUE7QUFDeEYsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sb0NBQW9DLENBQUE7O0FBb0RqRixNQUFNLE9BQU8sa0NBQWtDO0lBbEQvQztRQW1ERTs7OztvRkFJNEU7UUFFM0QsUUFBRyxHQUFH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QUFBO0lBQzVDLENBQUM7OEdBdEdVLGtDQUFrQztrR0FBbEMsa0NBQWtDLGlvREFsQ25DOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0JULDREQTNDQyw0QkFBNEIsdVFBSTVCLHFCQUFxQiw4UkFDckIseUJBQXlCLCtEQUN6QixPQUFPLDJJQUNQLGFBQWEsNkZBRWIsNEJBQTRCLDRKQUM1QiwyQkFBMkI7OzJGQW9DbEIsa0NBQWtDO2tCQWxEOUMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsOEJBQThCO29CQUN4QyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFO3dCQUNQLDRCQUE0Qjt3QkFDNUIsMkJBQTJCO3dCQUMzQixZQUFZO3dCQUNaLFFBQVE7d0JBQ1IscUJBQXFCO3dCQUNyQix5QkFBeUI7d0JBQ3pCLE9BQU87d0JBQ1AsYUFBYTt3QkFDYixTQUFTO3dCQUNULDRCQUE0Qjt3QkFDNUIsMkJBQTJCO3FCQUM1QjtvQkFDRCxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErQlQ7b0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEOzhCQVdDLHVCQUF1QjtzQkFEdEIsU0FBUzt1QkFBQyx5QkFBeUI7Z0JBRzNCLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLHlCQUF5QjtzQkFBakMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGlucHV0LCBJbnB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IE1hdEljb25CdXR0b24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nXG5pbXBvcnQgeyBNYXRGb3JtRmllbGQsIE1hdExhYmVsLCBNYXRTdWZmaXggfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJ1xuaW1wb3J0IHsgTWF0SWNvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nXG5pbXBvcnQgeyBMb2dnZXJGYWN0b3J5IH0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgSW50ZXJ2YWwgfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vdGltZS9pbnRlcnZhbCdcbmltcG9ydCB7IEVsZGVyT3ZlcmxheU9yaWdpbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbXBvbmVudHMvb3ZlcmxheXMvZWxkZXItb3ZlcmxheS1vcmlnaW4uZGlyZWN0aXZlJ1xuaW1wb3J0IHsgRWxkZXJPdmVybGF5VHJpZ2dlckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbXBvbmVudHMvb3ZlcmxheXMvZWxkZXItb3ZlcmxheS10cmlnZ2VyLmRpcmVjdGl2ZSdcbmltcG9ydCB7IEVsZGVyT3ZlcmxheUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbXBvbmVudHMvb3ZlcmxheXMvZWxkZXItb3ZlcmxheS5jb21wb25lbnQnXG5pbXBvcnQgeyBFbGRlckRpYWxvZ1BhbmVsQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tcG9uZW50cy9wYW5lbHMvZWxkZXItZGlhbG9nLXBhbmVsL2VsZGVyLWRpYWxvZy1wYW5lbC5jb21wb25lbnQnXG5pbXBvcnQge1xuICBFbGRlckludGVydmFsSW5wdXRDb21wb25lbnQsXG4gIEludGVydmFsSW5wdXRNb2RlLFxufSBmcm9tICcuLi8uLi8uLi8uLi9jb21wb25lbnRzL3RpbWUvZWxkZXItaW50ZXJ2YWwtaW5wdXQvZWxkZXItaW50ZXJ2YWwtaW5wdXQuY29tcG9uZW50J1xuaW1wb3J0IHsgRWxkZXJJbnRlcnZhbFBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4uL2VsZGVyLWludGVydmFsLXBpY2tlci5jb21wb25lbnQnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VsZGVyLWludGVydmFsLXBpY2tlci10b2dnbGUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgRWxkZXJJbnRlcnZhbFBpY2tlckNvbXBvbmVudCxcbiAgICBFbGRlckludGVydmFsSW5wdXRDb21wb25lbnQsXG4gICAgTWF0Rm9ybUZpZWxkLFxuICAgIE1hdExhYmVsLFxuICAgIEVsZGVyT3ZlcmxheUNvbXBvbmVudCxcbiAgICBFbGRlckRpYWxvZ1BhbmVsQ29tcG9uZW50LFxuICAgIE1hdEljb24sXG4gICAgTWF0SWNvbkJ1dHRvbixcbiAgICBNYXRTdWZmaXgsXG4gICAgRWxkZXJPdmVybGF5VHJpZ2dlckRpcmVjdGl2ZSxcbiAgICBFbGRlck92ZXJsYXlPcmlnaW5EaXJlY3RpdmUsXG4gIF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPHNwYW4gc3R5bGU9XCJwYWRkaW5nLXJpZ2h0OiA4cHhcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgIFtlbGRlck92ZXJsYXlPcmlnaW5dPVwiZGF0ZUludGVydmFsT3ZlcmxheVwiXG4gICAgICAgIFtlbGRlck92ZXJsYXlUcmlnZ2VyXT1cImRhdGVJbnRlcnZhbE92ZXJsYXlcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiaXNCdXR0b25EaXNhYmxlZFwiXG4gICAgICAgIGNsYXNzPVwiZWxkZXItY29udHJvbC1pY29uLWJ1dHRvbiBtYXQtZGF0ZXBpY2tlci10b2dnbGVcIlxuICAgICAgPlxuICAgICAgICA8bWF0LWljb24+ZGF0ZV9yYW5nZTwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L3NwYW4+XG5cbiAgICA8ZWxkZXItb3ZlcmxheSAjZGF0ZUludGVydmFsT3ZlcmxheSAoYXR0YWNoZWRDaGFuZ2UpPVwiaGFuZGxlT3ZlcmxheUF0dGFjaGVkQ2hhbmdlKCRldmVudClcIj5cbiAgICAgIDxlbGRlci1kaWFsb2ctcGFuZWw+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwYi1tZCBwdC14c1wiPlxuICAgICAgICAgIDxlbGRlci1pbnRlcnZhbC1waWNrZXJcbiAgICAgICAgICAgICNjb25uZWN0ZWRJbnRlcnZhbFBpY2tlclxuICAgICAgICAgICAgW2ludGVydmFsSW5wdXRNb2RlXT1cImludGVydmFsSW5wdXRNb2RlXCJcbiAgICAgICAgICAgIFtpc0VtaXR0aW5nT25DaGFuZ2VdPVwiaXNFbWl0dGluZ09uQ2hhbmdlXCJcbiAgICAgICAgICAgIFtpbnB1dEludGVydmFsXT1cImlucHV0SW50ZXJ2YWxcIlxuICAgICAgICAgICAgKGRhdGVDaGFuZ2UpPVwiaGFuZGxlSW50ZXJ2YWxQaWNrZXJEYXRlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgW3Nob3dBbmNob3JdPVwic2hvd0FuY2hvclwiXG4gICAgICAgICAgICBbaW5wdXRBbmNob3JEYXRlVGltZV09XCJpbnB1dEFuY2hvckRhdGVUaW1lKClcIlxuICAgICAgICAgICAgW2lzQW5jaG9yUmVhZE9ubHldPVwiaXNBbmNob3JSZWFkT25seVwiXG4gICAgICAgICAgICBbaXNSZXN1bHRUZXh0VmlzaWJsZV09XCJpc1Jlc3VsdFRleHRWaXNpYmxlXCJcbiAgICAgICAgICAgIFtpc0hlbHBUZXh0c1Zpc2libGVdPVwiaXNIZWxwVGV4dHNWaXNpYmxlXCJcbiAgICAgICAgICA+PC9lbGRlci1pbnRlcnZhbC1waWNrZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9lbGRlci1kaWFsb2ctcGFuZWw+XG4gICAgPC9lbGRlci1vdmVybGF5PlxuICBgLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJJbnRlcnZhbFBpY2tlclRvZ2dsZUNvbXBvbmVudCB7XG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKVxuXG4gIEBWaWV3Q2hpbGQoJ2Nvbm5lY3RlZEludGVydmFsUGlja2VyJylcbiAgY29ubmVjdGVkSW50ZXJ2YWxQaWNrZXIhOiBFbGRlckludGVydmFsUGlja2VyQ29tcG9uZW50XG5cbiAgQElucHV0KCkgaW50ZXJ2YWxJbnB1dEVsZW1lbnQ/OiBFbGRlckludGVydmFsSW5wdXRDb21wb25lbnRcbiAgQElucHV0KCkgaXNFbWl0dGluZ09uQ2hhbmdlOiBib29sZWFuID0gdHJ1ZVxuICBASW5wdXQoKSBzaG93QW5jaG9yOiBib29sZWFuID0gZmFsc2VcbiAgQElucHV0KCkgaXNBbmNob3JSZWFkT25seSA9IGZhbHNlXG4gIEBJbnB1dCgpIGlzRGlzYWJsZWRJbnB1dCA9IGZhbHNlXG4gIEBJbnB1dCgpIGlzUmVzdWx0VGV4dFZpc2libGUgPSB0cnVlXG4gIEBJbnB1dCgpIGlzSGVscFRleHRzVmlzaWJsZSA9IGZhbHNlXG4gIEBJbnB1dCgpIGlzT3ZlcmxheUNlbnRlcmVkVG9TY3JlZW4gPSBmYWxzZVxuXG4gIHJlYWRvbmx5IGlucHV0QW5jaG9yRGF0ZVRpbWUgPSBpbnB1dDxEYXRlPihudWxsKVxuXG4gIGlucHV0SW50ZXJ2YWw6IEludGVydmFsID0gbnVsbFxuICBhbmNob3JEYXRlVGltZTogRGF0ZSA9IG51bGxcbiAgaW50ZXJ2YWxJbnB1dE1vZGU6IEludGVydmFsSW5wdXRNb2RlID0gJ2RhdGUtcmFuZ2UnIC8vIHdpbGwgYmUgb3ZlcndyaXR0ZW4gYnkgY29ubmVjdGVkIGVsZW1lbnQgYWZ0ZXIgdmlldyBpbml0XG4gIGlzQnV0dG9uRGlzYWJsZWQgPSBmYWxzZVxuXG4gIGlucHV0SW50ZXJ2YWxFbFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uXG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIExpZmUgQ3ljbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgbmdPbkluaXQoKTogdm9pZCB7fVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuaW5wdXRJbnRlcnZhbEVsU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKClcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pbnRlcnZhbElucHV0RWxlbWVudC5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5pc0J1dHRvbkRpc2FibGVkID0gdHJ1ZVxuICAgIH1cblxuICAgIGlmICh0aGlzLmlzRGlzYWJsZWRJbnB1dCkge1xuICAgICAgdGhpcy5pc0J1dHRvbkRpc2FibGVkID0gdHJ1ZVxuICAgIH1cblxuICAgIHRoaXMuaW5wdXRJbnRlcnZhbEVsU3Vic2NyaXB0aW9uID0gdGhpcy5pbnRlcnZhbElucHV0RWxlbWVudC52YWx1ZVVwZGF0ZWQuc3Vic2NyaWJlKFxuICAgICAgKGludGVydmFsKSA9PiB7XG4gICAgICAgIHRoaXMucHVsbEludGVydmFsRGF0YSgpXG4gICAgICB9XG4gICAgKVxuICAgIHRoaXMuaW50ZXJ2YWxJbnB1dE1vZGUgPSB0aGlzLmludGVydmFsSW5wdXRFbGVtZW50Lm1vZGVcblxuICAgIGlmICh0aGlzLmludGVydmFsSW5wdXRFbGVtZW50Py52YWx1ZSkge1xuICAgICAgdGhpcy5pbnB1dEludGVydmFsID0gdGhpcy5pbnRlcnZhbElucHV0RWxlbWVudC5pbnRlcnZhbFxuICAgIH1cblxuICAgIHRoaXMucHVsbEludGVydmFsRGF0YSgpXG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBoYW5kbGVPdmVybGF5QXR0YWNoZWRDaGFuZ2UoYXR0YWNoZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0VtaXR0aW5nT25DaGFuZ2UpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICB0aGlzLnB1bGxJbnRlcnZhbERhdGEoKVxuICB9XG5cbiAgdXBkYXRlSW50ZXJ2YWxJbnB1dEVsZW1lbnQoaW50ZXJ2YWw6IEludGVydmFsKTogdm9pZCB7XG4gICAgdGhpcy5pbnRlcnZhbElucHV0RWxlbWVudC52YWx1ZSA9IGludGVydmFsXG4gIH1cblxuICBwdWxsSW50ZXJ2YWxEYXRhKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pbnRlcnZhbElucHV0RWxlbWVudCkge1xuICAgICAgdGhpcy5jb25uZWN0ZWRJbnRlcnZhbFBpY2tlci5zdmMucHVsbElucHV0SW50ZXJ2YWwoKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgdGhpcy5pbnB1dEludGVydmFsID0gdGhpcy5pbnRlcnZhbElucHV0RWxlbWVudCEudmFsdWUgYXMgSW50ZXJ2YWxcbiAgICB0aGlzLmNvbm5lY3RlZEludGVydmFsUGlja2VyLnN2Yy5zZXREYXRlVGltZXNGcm9tRWxkZXJJbnRlcnZhbCh0aGlzLmlucHV0SW50ZXJ2YWwpXG4gIH1cblxuICBoYW5kbGVJbnRlcnZhbFBpY2tlckRhdGVDaGFuZ2UoaW50ZXJ2YWw6IEludGVydmFsKTogdm9pZCB7XG4gICAgdGhpcy5pbnB1dEludGVydmFsID0gaW50ZXJ2YWxcblxuICAgIGlmICh0aGlzLmludGVydmFsSW5wdXRFbGVtZW50KSB7XG4gICAgICB0aGlzLnVwZGF0ZUludGVydmFsSW5wdXRFbGVtZW50KHRoaXMuaW5wdXRJbnRlcnZhbClcbiAgICB9XG4gIH1cblxuICByZWdpc3RlcklucHV0Q29tcG9uZW50KGlucHV0Q29tcG9uZW50OiBFbGRlckludGVydmFsSW5wdXRDb21wb25lbnQpIHtcbiAgICB0aGlzLmludGVydmFsSW5wdXRFbGVtZW50ID0gaW5wdXRDb21wb25lbnRcbiAgfVxufVxuIl19
200
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItaW50ZXJ2YWwtcGlja2VyLXRvZ2dsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL3RpbWUvZWxkZXItaW50ZXJ2YWwtcGlja2VyL2VsZGVyLWludGVydmFsLXBpY2tlci10b2dnbGUvZWxkZXItaW50ZXJ2YWwtcGlja2VyLXRvZ2dsZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUMzRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sOEJBQThCLENBQUE7QUFDaEYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ2hELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUdwRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQTtBQUM1RyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxpRUFBaUUsQ0FBQTtBQUM5RyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQTtBQUMvRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwrRUFBK0UsQ0FBQTtBQUN6SCxPQUFPLEVBQ0wsMkJBQTJCLEdBRTVCLE1BQU0saUZBQWlGLENBQUE7QUFDeEYsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sb0NBQW9DLENBQUE7O0FBc0RqRixNQUFNLE9BQU8sa0NBQWtDO0lBcEQvQztRQXFERTs7OztvRkFJNEU7UUFFM0QsUUFBRyxHQUFH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QUFBO0lBQzVDLENBQUM7OEdBdEdVLGtDQUFrQztrR0FBbEMsa0NBQWtDLGdwREFwQ25DOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQ1QsNERBN0NDLDRCQUE0Qix5U0FJNUIscUJBQXFCLDhSQUNyQix5QkFBeUIsK0RBQ3pCLE9BQU8sMklBQ1AsYUFBYSw2RkFFYiw0QkFBNEIsNEpBQzVCLDJCQUEyQjs7MkZBc0NsQixrQ0FBa0M7a0JBcEQ5QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSw4QkFBOEI7b0JBQ3hDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUU7d0JBQ1AsNEJBQTRCO3dCQUM1QiwyQkFBMkI7d0JBQzNCLFlBQVk7d0JBQ1osUUFBUTt3QkFDUixxQkFBcUI7d0JBQ3JCLHlCQUF5Qjt3QkFDekIsT0FBTzt3QkFDUCxhQUFhO3dCQUNiLFNBQVM7d0JBQ1QsNEJBQTRCO3dCQUM1QiwyQkFBMkI7cUJBQzVCO29CQUNELFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUNUO29CQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRDs4QkFXQyx1QkFBdUI7c0JBRHRCLFNBQVM7dUJBQUMseUJBQXlCO2dCQUczQixvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyw4QkFBOEI7c0JBQXRDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbnB1dCwgSW5wdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBNYXRJY29uQnV0dG9uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJ1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkLCBNYXRMYWJlbCwgTWF0U3VmZml4IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCdcbmltcG9ydCB7IE1hdEljb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJ1xuaW1wb3J0IHsgTG9nZ2VyRmFjdG9yeSB9IGZyb20gJ0BlbGRlcmJ5dGUvdHMtbG9nZ2VyJ1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IEludGVydmFsIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL3RpbWUvaW50ZXJ2YWwnXG5pbXBvcnQgeyBFbGRlck92ZXJsYXlPcmlnaW5EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi8uLi9jb21wb25lbnRzL292ZXJsYXlzL2VsZGVyLW92ZXJsYXktb3JpZ2luLmRpcmVjdGl2ZSdcbmltcG9ydCB7IEVsZGVyT3ZlcmxheVRyaWdnZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi8uLi9jb21wb25lbnRzL292ZXJsYXlzL2VsZGVyLW92ZXJsYXktdHJpZ2dlci5kaXJlY3RpdmUnXG5pbXBvcnQgeyBFbGRlck92ZXJsYXlDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi9jb21wb25lbnRzL292ZXJsYXlzL2VsZGVyLW92ZXJsYXkuY29tcG9uZW50J1xuaW1wb3J0IHsgRWxkZXJEaWFsb2dQYW5lbENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbXBvbmVudHMvcGFuZWxzL2VsZGVyLWRpYWxvZy1wYW5lbC9lbGRlci1kaWFsb2ctcGFuZWwuY29tcG9uZW50J1xuaW1wb3J0IHtcbiAgRWxkZXJJbnRlcnZhbElucHV0Q29tcG9uZW50LFxuICBJbnRlcnZhbElucHV0TW9kZSxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vY29tcG9uZW50cy90aW1lL2VsZGVyLWludGVydmFsLWlucHV0L2VsZGVyLWludGVydmFsLWlucHV0LmNvbXBvbmVudCdcbmltcG9ydCB7IEVsZGVySW50ZXJ2YWxQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuLi9lbGRlci1pbnRlcnZhbC1waWNrZXIuY29tcG9uZW50J1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlbGRlci1pbnRlcnZhbC1waWNrZXItdG9nZ2xlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIEVsZGVySW50ZXJ2YWxQaWNrZXJDb21wb25lbnQsXG4gICAgRWxkZXJJbnRlcnZhbElucHV0Q29tcG9uZW50LFxuICAgIE1hdEZvcm1GaWVsZCxcbiAgICBNYXRMYWJlbCxcbiAgICBFbGRlck92ZXJsYXlDb21wb25lbnQsXG4gICAgRWxkZXJEaWFsb2dQYW5lbENvbXBvbmVudCxcbiAgICBNYXRJY29uLFxuICAgIE1hdEljb25CdXR0b24sXG4gICAgTWF0U3VmZml4LFxuICAgIEVsZGVyT3ZlcmxheVRyaWdnZXJEaXJlY3RpdmUsXG4gICAgRWxkZXJPdmVybGF5T3JpZ2luRGlyZWN0aXZlLFxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxzcGFuIHN0eWxlPVwicGFkZGluZy1yaWdodDogOHB4XCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICBbZWxkZXJPdmVybGF5T3JpZ2luXT1cImRhdGVJbnRlcnZhbE92ZXJsYXlcIlxuICAgICAgICBbZWxkZXJPdmVybGF5VHJpZ2dlcl09XCJkYXRlSW50ZXJ2YWxPdmVybGF5XCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImlzQnV0dG9uRGlzYWJsZWRcIlxuICAgICAgICAoY2xpY2spPVwicHVsbEludGVydmFsRGF0YSgpXCJcbiAgICAgICAgY2xhc3M9XCJlbGRlci1jb250cm9sLWljb24tYnV0dG9uIG1hdC1kYXRlcGlja2VyLXRvZ2dsZVwiXG4gICAgICA+XG4gICAgICAgIDxtYXQtaWNvbj5kYXRlX3JhbmdlPC9tYXQtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvc3Bhbj5cblxuICAgIDxlbGRlci1vdmVybGF5ICNkYXRlSW50ZXJ2YWxPdmVybGF5IChhdHRhY2hlZENoYW5nZSk9XCJoYW5kbGVPdmVybGF5QXR0YWNoZWRDaGFuZ2UoJGV2ZW50KVwiPlxuICAgICAgPGVsZGVyLWRpYWxvZy1wYW5lbD5cbiAgICAgICAgPGRpdiBjbGFzcz1cInBiLW1kIHB0LXhzXCI+XG4gICAgICAgICAgPGVsZGVyLWludGVydmFsLXBpY2tlclxuICAgICAgICAgICAgI2Nvbm5lY3RlZEludGVydmFsUGlja2VyXG4gICAgICAgICAgICBbaW50ZXJ2YWxJbnB1dE1vZGVdPVwiaW50ZXJ2YWxJbnB1dE1vZGVcIlxuICAgICAgICAgICAgW2lzRW1pdHRpbmdPbkNoYW5nZV09XCJpc0VtaXR0aW5nT25DaGFuZ2VcIlxuICAgICAgICAgICAgW2lucHV0SW50ZXJ2YWxdPVwiaW5wdXRJbnRlcnZhbFwiXG4gICAgICAgICAgICAoZGF0ZUNoYW5nZSk9XCJoYW5kbGVJbnRlcnZhbFBpY2tlckRhdGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICBbc2hvd0FuY2hvcl09XCJzaG93QW5jaG9yXCJcbiAgICAgICAgICAgIFtpbnB1dEFuY2hvckRhdGVUaW1lXT1cImlucHV0QW5jaG9yRGF0ZVRpbWUoKVwiXG4gICAgICAgICAgICBbaXNBbmNob3JSZWFkT25seV09XCJpc0FuY2hvclJlYWRPbmx5XCJcbiAgICAgICAgICAgIFtpc1Jlc3VsdFRleHRWaXNpYmxlXT1cImlzUmVzdWx0VGV4dFZpc2libGVcIlxuICAgICAgICAgICAgW2lzSGVscFRleHRzVmlzaWJsZV09XCJpc0hlbHBUZXh0c1Zpc2libGVcIlxuICAgICAgICAgICAgW2lzU2VsZWN0TGFzdE1vZGVFeGNsdWRpbmdUb2RheV09XCJpc1NlbGVjdExhc3RNb2RlRXhjbHVkaW5nVG9kYXlcIlxuICAgICAgICAgID48L2VsZGVyLWludGVydmFsLXBpY2tlcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2VsZGVyLWRpYWxvZy1wYW5lbD5cbiAgICA8L2VsZGVyLW92ZXJsYXk+XG4gIGAsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBFbGRlckludGVydmFsUGlja2VyVG9nZ2xlQ29tcG9uZW50IHtcbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2cgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpXG5cbiAgQFZpZXdDaGlsZCgnY29ubmVjdGVkSW50ZXJ2YWxQaWNrZXInKVxuICBjb25uZWN0ZWRJbnRlcnZhbFBpY2tlciE6IEVsZGVySW50ZXJ2YWxQaWNrZXJDb21wb25lbnRcblxuICBASW5wdXQoKSBpbnRlcnZhbElucHV0RWxlbWVudD86IEVsZGVySW50ZXJ2YWxJbnB1dENvbXBvbmVudFxuICBASW5wdXQoKSBpc0VtaXR0aW5nT25DaGFuZ2U6IGJvb2xlYW4gPSB0cnVlXG4gIEBJbnB1dCgpIHNob3dBbmNob3I6IGJvb2xlYW4gPSBmYWxzZVxuICBASW5wdXQoKSBpc0FuY2hvclJlYWRPbmx5ID0gZmFsc2VcbiAgQElucHV0KCkgaXNEaXNhYmxlZElucHV0ID0gZmFsc2VcbiAgQElucHV0KCkgaXNSZXN1bHRUZXh0VmlzaWJsZSA9IHRydWVcbiAgQElucHV0KCkgaXNIZWxwVGV4dHNWaXNpYmxlID0gZmFsc2VcbiAgQElucHV0KCkgaXNTZWxlY3RMYXN0TW9kZUV4Y2x1ZGluZ1RvZGF5ID0gZmFsc2VcblxuICByZWFkb25seSBpbnB1dEFuY2hvckRhdGVUaW1lID0gaW5wdXQ8RGF0ZT4obnVsbClcblxuICBpbnB1dEludGVydmFsOiBJbnRlcnZhbCA9IG51bGxcbiAgYW5jaG9yRGF0ZVRpbWU6IERhdGUgPSBudWxsXG4gIGludGVydmFsSW5wdXRNb2RlOiBJbnRlcnZhbElucHV0TW9kZSA9ICdkYXRlLXJhbmdlJyAvLyB3aWxsIGJlIG92ZXJ3cml0dGVuIGJ5IGNvbm5lY3RlZCBlbGVtZW50IGFmdGVyIHZpZXcgaW5pdFxuICBpc0J1dHRvbkRpc2FibGVkID0gZmFsc2VcblxuICBpbnB1dEludGVydmFsRWxTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvblxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBMaWZlIEN5Y2xlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge31cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmlucHV0SW50ZXJ2YWxFbFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpXG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaW50ZXJ2YWxJbnB1dEVsZW1lbnQuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuaXNCdXR0b25EaXNhYmxlZCA9IHRydWVcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pc0Rpc2FibGVkSW5wdXQpIHtcbiAgICAgIHRoaXMuaXNCdXR0b25EaXNhYmxlZCA9IHRydWVcbiAgICB9XG5cbiAgICB0aGlzLmlucHV0SW50ZXJ2YWxFbFN1YnNjcmlwdGlvbiA9IHRoaXMuaW50ZXJ2YWxJbnB1dEVsZW1lbnQudmFsdWVVcGRhdGVkLnN1YnNjcmliZShcbiAgICAgIChpbnRlcnZhbCkgPT4ge1xuICAgICAgICB0aGlzLnB1bGxJbnRlcnZhbERhdGEoKVxuICAgICAgfVxuICAgIClcbiAgICB0aGlzLmludGVydmFsSW5wdXRNb2RlID0gdGhpcy5pbnRlcnZhbElucHV0RWxlbWVudC5tb2RlXG5cbiAgICBpZiAodGhpcy5pbnRlcnZhbElucHV0RWxlbWVudD8udmFsdWUpIHtcbiAgICAgIHRoaXMuaW5wdXRJbnRlcnZhbCA9IHRoaXMuaW50ZXJ2YWxJbnB1dEVsZW1lbnQuaW50ZXJ2YWxcbiAgICB9XG5cbiAgICB0aGlzLnB1bGxJbnRlcnZhbERhdGEoKVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgaGFuZGxlT3ZlcmxheUF0dGFjaGVkQ2hhbmdlKGF0dGFjaGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNFbWl0dGluZ09uQ2hhbmdlKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgdGhpcy5wdWxsSW50ZXJ2YWxEYXRhKClcbiAgfVxuXG4gIHVwZGF0ZUludGVydmFsSW5wdXRFbGVtZW50KGludGVydmFsOiBJbnRlcnZhbCk6IHZvaWQge1xuICAgIHRoaXMuaW50ZXJ2YWxJbnB1dEVsZW1lbnQudmFsdWUgPSBpbnRlcnZhbFxuICB9XG5cbiAgcHVsbEludGVydmFsRGF0YSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaW50ZXJ2YWxJbnB1dEVsZW1lbnQpIHtcbiAgICAgIHRoaXMuY29ubmVjdGVkSW50ZXJ2YWxQaWNrZXIuc3ZjLnB1bGxJbnB1dEludGVydmFsKClcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHRoaXMuaW5wdXRJbnRlcnZhbCA9IHRoaXMuaW50ZXJ2YWxJbnB1dEVsZW1lbnQhLnZhbHVlIGFzIEludGVydmFsXG4gICAgdGhpcy5jb25uZWN0ZWRJbnRlcnZhbFBpY2tlci5zdmMuc2V0RGF0ZVRpbWVzRnJvbUVsZGVySW50ZXJ2YWwodGhpcy5pbnB1dEludGVydmFsKVxuICB9XG5cbiAgaGFuZGxlSW50ZXJ2YWxQaWNrZXJEYXRlQ2hhbmdlKGludGVydmFsOiBJbnRlcnZhbCk6IHZvaWQge1xuICAgIHRoaXMuaW5wdXRJbnRlcnZhbCA9IGludGVydmFsXG5cbiAgICBpZiAodGhpcy5pbnRlcnZhbElucHV0RWxlbWVudCkge1xuICAgICAgdGhpcy51cGRhdGVJbnRlcnZhbElucHV0RWxlbWVudCh0aGlzLmlucHV0SW50ZXJ2YWwpXG4gICAgfVxuICB9XG5cbiAgcmVnaXN0ZXJJbnB1dENvbXBvbmVudChpbnB1dENvbXBvbmVudDogRWxkZXJJbnRlcnZhbElucHV0Q29tcG9uZW50KSB7XG4gICAgdGhpcy5pbnRlcnZhbElucHV0RWxlbWVudCA9IGlucHV0Q29tcG9uZW50XG4gIH1cbn1cbiJdfQ==