ngx-tethys 18.2.11 → 18.2.13

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.
@@ -25,7 +25,7 @@ export class TinyDate {
25
25
  }
26
26
  else if (typeof date === 'string') {
27
27
  if (hasTimeInStringDate(date)) {
28
- // 如果字符串中包含时间,则需要将时间转换为UTC时间再传递给TZDate
28
+ // If the string contains time, you need to convert the time to UTC time before passing it to TZDate
29
29
  const originTime = new Date(date);
30
30
  const zoneTime = TZDate.tz(this.useTimeZone, originTime);
31
31
  const utcDate = fromZonedTime(zoneTime, this.useTimeZone).toISOString();
@@ -114,14 +114,10 @@ export class TinyDate {
114
114
  }
115
115
  // set
116
116
  setDate(amount) {
117
- const date = new Date(this.nativeDate);
118
- date.setDate(amount);
119
- return new TinyDate(date, this.useTimeZone);
117
+ return new TinyDate(this.nativeDate.setDate(amount), this.useTimeZone);
120
118
  }
121
119
  setHms(hour, minute, second) {
122
- const date = new Date(this.nativeDate);
123
- date.setHours(hour, minute, second);
124
- return new TinyDate(date, this.useTimeZone);
120
+ return new TinyDate(this.nativeDate?.setHours(hour, minute, second), this.useTimeZone);
125
121
  }
126
122
  setYear(year) {
127
123
  return new TinyDate(setYear(this.nativeDate, year), this.useTimeZone);
@@ -325,7 +321,7 @@ export class TinyDate {
325
321
  return new TinyDate(startOfWeek(startOfMonth(this.nativeDate), options), this.useTimeZone);
326
322
  }
327
323
  clone() {
328
- return new TinyDate(new Date(this.nativeDate), this.useTimeZone);
324
+ return new TinyDate(this.nativeDate, this.useTimeZone);
329
325
  }
330
326
  getUnixTime() {
331
327
  return getUnixTime(this.nativeDate);
@@ -388,4 +384,4 @@ export class TinyDate {
388
384
  return new TinyDate(subDays(this.nativeDate, amount), this.useTimeZone);
389
385
  }
390
386
  }
391
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlueS1kYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3V0aWwvZGF0ZS90aW55LWRhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN0QyxPQUFPLEVBQWlDLFFBQVEsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzNGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2pELE9BQU8sRUFDSCxPQUFPLEVBQ1AsUUFBUSxFQUNSLFVBQVUsRUFDVixTQUFTLEVBQ1QsV0FBVyxFQUNYLFVBQVUsRUFDVixRQUFRLEVBQ1IsUUFBUSxFQUNSLHdCQUF3QixFQUN4QiwwQkFBMEIsRUFDMUIsNEJBQTRCLEVBQzVCLHlCQUF5QixFQUN6QixnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLG1CQUFtQixFQUNuQixtQkFBbUIsRUFDbkIsaUJBQWlCLEVBQ2pCLFFBQVEsRUFDUixZQUFZLEVBQ1osVUFBVSxFQUNWLFlBQVksRUFDWixTQUFTLEVBQ1QsU0FBUyxFQUNULE1BQU0sRUFDTixZQUFZLEVBQ1osZ0JBQWdCLEVBQ2hCLGNBQWMsRUFDZCxVQUFVLEVBQ1YsV0FBVyxFQUNYLE9BQU8sRUFDUCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixXQUFXLEVBQ1gsYUFBYSxFQUNiLFlBQVksRUFDWixVQUFVLEVBQ1YsT0FBTyxFQUNQLFVBQVUsRUFDVixPQUFPLEVBQ1AsU0FBUyxFQUNULE1BQU0sRUFDTixpQkFBaUIsRUFDakIsUUFBUSxFQUNSLFVBQVUsRUFDVixPQUFPLEVBQ1AsVUFBVSxFQUNWLGNBQWMsRUFDZCxZQUFZLEVBQ1os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QUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzFILENBQUM7SUFFTyxZQUFZLENBQUMsSUFBUztRQUMxQixPQUFPLElBQUksWUFBWSxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUM3RCxDQUFDO0lBRUQsY0FBYztRQUNWLE9BQU8sSUFBSSxRQUFRLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVELFlBQVk7UUFDUixPQUFPLElBQUksUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxJQUFVO1FBQ3ZCLE9BQU8sZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsSUFBVTtRQUN4QixPQUFPLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUFjO1FBQ25CLE9BQU8sSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFRCxPQUFPLENBQUMsTUFBYztRQUNsQixPQUFPLElBQUksUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM1RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVFpEYXRlIH0gZnJvbSAnQGRhdGUtZm5zL3R6JztcbmltcG9ydCB7IEZpcnN0V2Vla0NvbnRhaW5zRGF0ZSwgTG9jYWxlLCBzZXRIb3Vycywgc2V0TWludXRlcywgc2V0U2Vjb25kcyB9IGZyb20gJ2RhdGUtZm5zJztcbmltcG9ydCB7IGZyb21ab25lZFRpbWUgfSBmcm9tICdkYXRlLWZucy10eic7XG5pbXBvcnQgeyBnZXREZWZhdWx0TG9jYWxlSWQgfSBmcm9tICduZ3gtdGV0aHlzL2kxOG4nO1xuaW1wb3J0IHsgaGFzVGltZUluU3RyaW5nRGF0ZSB9IGZyb20gJy4uL2hlbHBlcnMnO1xuaW1wb3J0IHtcbiAgICBhZGREYXlzLFxuICAgIGFkZEhvdXJzLFxuICAgIGFkZE1pbnV0ZXMsXG4gICAgYWRkTW9udGhzLFxuICAgIGFkZFF1YXJ0ZXJzLFxuICAgIGFkZFNlY29uZHMsXG4gICAgYWRkV2Vla3MsXG4gICAgYWRkWWVhcnMsXG4gICAgZGlmZmVyZW5jZUluQ2FsZW5kYXJEYXlzLFxuICAgIGRpZmZlcmVuY2VJbkNhbGVuZGFyTW9udGhzLFxuICAgIGRpZmZlcmVuY2VJbkNhbGVuZGFyUXVhcnRlcnMsXG4gICAgZGlmZmVyZW5jZUluQ2FsZW5kYXJZZWFycyxcbiAgICBkaWZmZXJlbmNlSW5EYXlzLFxuICAgIGRpZmZlcmVuY2VJbkhvdXJzLFxuICAgIGRpZmZlcmVuY2VJbk1pbnV0ZXMsXG4gICAgZGlmZmVyZW5jZUluU2Vjb25kcyxcbiAgICBkaWZmZXJlbmNlSW5XZWVrcyxcbiAgICBlbmRPZkRheSxcbiAgICBlbmRPZklTT1dlZWssXG4gICAgZW5kT2ZNb250aCxcbiAgICBlbmRPZlF1YXJ0ZXIsXG4gICAgZW5kT2ZXZWVrLFxuICAgIGVuZE9mWWVhcixcbiAgICBmb3JtYXQsXG4gICAgZnJvbVVuaXhUaW1lLFxuICAgIGdldERhdGVGbnNMb2NhbGUsXG4gICAgZ2V0RGF5c0luTW9udGgsXG4gICAgZ2V0UXVhcnRlcixcbiAgICBnZXRVbml4VGltZSxcbiAgICBnZXRXZWVrLFxuICAgIGlzU2FtZURheSxcbiAgICBpc1NhbWVIb3VyLFxuICAgIGlzU2FtZU1pbnV0ZSxcbiAgICBpc1NhbWVNb250aCxcbiAgICBpc1NhbWVRdWFydGVyLFxuICAgIGlzU2FtZVNlY29uZCxcbiAgICBpc1NhbWVZZWFyLFxuICAgIGlzVG9kYXksXG4gICAgaXNUb21vcnJvdyxcbiAgICBpc1ZhbGlkLFxuICAgIGlzV2Vla2VuZCxcbiAgICBzZXREYXksXG4gICAgc2V0RGVmYXVsdE9wdGlvbnMsXG4gICAgc2V0TW9udGgsXG4gICAgc2V0UXVhcnRlcixcbiAgICBzZXRZZWFyLFxuICAgIHN0YXJ0T2ZEYXksXG4gICAgc3RhcnRPZklTT1dlZWssXG4gICAgc3RhcnRPZk1vbnRoLFxuICAgIHN0YXJ0T2ZRdWFydGVyLFxuICAgIHN0YXJ0T2ZXZWVrLFxuICAgIHN0YXJ0T2ZZZWFyLFxuICAgIHN1YkRheXMsXG4gICAgc3ViV2Vla3Ncbn0gZnJvbSAnLi9mdW5jdGlvbnMnO1xuXG5leHBvcnQgdHlwZSBUaW55RGF0ZUNvbXBhcmVHcmFpbiA9ICdkZWNhZGUnIHwgJ3llYXInIHwgJ3F1YXJ0ZXInIHwgJ21vbnRoJyB8ICd3ZWVrJyB8ICdkYXknIHwgJ2hvdXInIHwgJ21pbnV0ZScgfCAnc2Vjb25kJztcblxuZXhwb3J0IHR5cGUgV2Vla0RheUluZGV4ID0gMCB8IDEgfCAyIHwgMyB8IDQgfCA1IHwgNjtcblxuZXhwb3J0IHR5cGUgVGlueURhdGVUeXBlID0gVGlueURhdGUgfCBEYXRlIHwgbnVsbDtcblxuZXhwb3J0IGZ1bmN0aW9uIHNvcnRSYW5nZVZhbHVlKHJhbmdlVmFsdWU6IFRpbnlEYXRlW10pOiBUaW55RGF0ZVtdIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShyYW5nZVZhbHVlKSkge1xuICAgICAgICBjb25zdCBbc3RhcnQsIGVuZF0gPSByYW5nZVZhbHVlO1xuICAgICAgICByZXR1cm4gc3RhcnQgJiYgZW5kICYmIHN0YXJ0LmlzQWZ0ZXJTZWNvbmQoZW5kKSA/IFtlbmQsIHN0YXJ0XSA6IFtzdGFydCwgZW5kXTtcbiAgICB9XG4gICAgcmV0dXJuIHJhbmdlVmFsdWU7XG59XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX1RJTUVaT05FID0gJ0FzaWEvU2hhbmdoYWknO1xuXG5leHBvcnQgY2xhc3MgVGlueURhdGUgaW1wbGVtZW50cyBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgICBuYXRpdmVEYXRlOiBEYXRlO1xuXG4gICAgcHJpdmF0ZSB1c2VUaW1lWm9uZTogc3RyaW5nO1xuXG4gICAgcHJpdmF0ZSBzdGF0aWMgbG9jYWxlOiBzdHJpbmcgPSBnZXREZWZhdWx0TG9jYWxlSWQoKTtcblxuICAgIHByb3RlY3RlZCBzdGF0aWMgZGF0ZUZuc0xvY2FsZTogTG9jYWxlID0gZ2V0RGF0ZUZuc0xvY2FsZShUaW55RGF0ZS5sb2NhbGUpO1xuXG4gICAgcHJvdGVjdGVkIHN0YXRpYyBkZWZhdWx0VGltZVpvbmU6IHN0cmluZyA9IERFRkFVTFRfVElNRVpPTkU7XG5cbiAgICBjb25zdHJ1Y3RvcihkYXRlPzogRGF0ZSB8IHN0cmluZyB8IG51bWJlciwgem9uZT86IHN0cmluZykge1xuICAgICAgICBzZXREZWZhdWx0T3B0aW9ucyh7IGxvY2FsZTogVGlueURhdGUuZGF0ZUZuc0xvY2FsZSB9KTtcbiAgICAgICAgdGhpcy51c2VUaW1lWm9uZSA9IHpvbmUgfHwgVGlueURhdGUuZGVmYXVsdFRpbWVab25lO1xuICAgICAgICBpZiAoZGF0ZSkge1xuICAgICAgICAgICAgaWYgKGRhdGUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5uYXRpdmVEYXRlID0gVGlueURhdGUudXRjVG9ab25lZFRpbWUoZGF0ZSwgdGhpcy51c2VUaW1lWm9uZSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBkYXRlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIGlmIChoYXNUaW1lSW5TdHJpbmdEYXRlKGRhdGUpKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIOWmguaenOWtl+espuS4suS4reWMheWQq+aXtumXtO+8jOWImemcgOimgeWwhuaXtumXtOi9rOaNouS4ulVUQ+aXtumXtOWGjeS8oOmAkue7mVRaRGF0ZVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBvcmlnaW5UaW1lID0gbmV3IERhdGUoZGF0ZSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHpvbmVUaW1lID0gVFpEYXRlLnR6KHRoaXMudXNlVGltZVpvbmUsIG9yaWdpblRpbWUpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB1dGNEYXRlID0gZnJvbVpvbmVkVGltZSh6b25lVGltZSwgdGhpcy51c2VUaW1lWm9uZSkudG9JU09TdHJpbmcoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5uYXRpdmVEYXRlID0gbmV3IFRaRGF0ZSh1dGNEYXRlLCB0aGlzLnVzZVRpbWVab25lKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm5hdGl2ZURhdGUgPSBuZXcgVFpEYXRlKGRhdGUsIHRoaXMudXNlVGltZVpvbmUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGRhdGUgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5uYXRpdmVEYXRlID0gbmV3IFRaRGF0ZShkYXRlLCB0aGlzLnVzZVRpbWVab25lKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIG5nRGV2TW9kZSA9PT0gJ3VuZGVmaW5lZCcgfHwgbmdEZXZNb2RlKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgICAgICBgVGhlIGlucHV0IGRhdGUgdHlwZSBpcyBub3Qgc3VwcG9ydGVkIGV4cGVjdCBEYXRlIHwgc3RyaW5nIHwgbnVtYmVyIHwgeyBkYXRlOiBudW1iZXI7IHdpdGhfdGltZTogMCB8IDF9LCBhY3R1YWwgJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVcbiAgICAgICAgICAgICAgICAgICAgKX1gXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubmF0aXZlRGF0ZSA9IG5ldyBUWkRhdGUoRGF0ZS5ub3coKSwgdGhpcy51c2VUaW1lWm9uZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzdGF0aWMgc2V0RGVmYXVsdExvY2FsZShsb2NhbGU6IHN0cmluZykge1xuICAgICAgICBUaW55RGF0ZS5sb2NhbGUgPSBsb2NhbGU7XG4gICAgICAgIFRpbnlEYXRlLmRhdGVGbnNMb2NhbGUgPSBnZXREYXRlRm5zTG9jYWxlKGxvY2FsZSk7XG4gICAgICAgIHJldHVybiBzZXREZWZhdWx0T3B0aW9ucyh7IGxvY2FsZTogVGlueURhdGUuZGF0ZUZuc0xvY2FsZSB9KTtcbiAgICB9XG5cbiAgICBzdGF0aWMgZ2V0RGVmYXVsdExvY2FsZSgpOiB7IGxvY2FsZTogc3RyaW5nOyBkYXRlRm5zTG9jYWxlOiBMb2NhbGUgfSB7XG4gICAgICAgIHJldHVybiB7IGxvY2FsZTogVGlueURhdGUubG9jYWxlLCBkYXRlRm5zTG9jYWxlOiBUaW55RGF0ZS5kYXRlRm5zTG9jYWxlIH07XG4gICAgfVxuXG4gICAgc3RhdGljIHNldERlZmF1bHRUaW1lWm9uZSh6b25lOiBzdHJpbmcpIHtcbiAgICAgICAgVGlueURhdGUuZGVmYXVsdFRpbWVab25lID0gem9uZSA/PyBERUZBVUxUX1RJTUVaT05FO1xuICAgIH1cblxuICAgIHN0YXRpYyBnZXREZWZhdWx0VGltZVpvbmUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIFRpbnlEYXRlLmRlZmF1bHRUaW1lWm9uZTtcbiAgICB9XG5cbiAgICBzdGF0aWMgdXRjVG9ab25lZFRpbWUodmFsdWU6IERhdGUgfCBudW1iZXIsIHRpbWVab25lPzogc3RyaW5nKTogRGF0ZSB7XG4gICAgICAgIHJldHVybiBUWkRhdGUudHoodGltZVpvbmUgfHwgVGlueURhdGUuZGVmYXVsdFRpbWVab25lLCB2YWx1ZSBhcyBhbnkpO1xuICAgIH1cblxuICAgIHN0YXRpYyBjcmVhdGVEYXRlSW5UaW1lWm9uZShcbiAgICAgICAgeWVhcjogbnVtYmVyLFxuICAgICAgICBtb250aDogbnVtYmVyLFxuICAgICAgICBkYXk6IG51bWJlcixcbiAgICAgICAgaG91cnM6IG51bWJlcixcbiAgICAgICAgbWludXRlczogbnVtYmVyLFxuICAgICAgICBzZWNvbmRzOiBudW1iZXIsXG4gICAgICAgIHRpbWVab25lPzogc3RyaW5nXG4gICAgKTogRGF0ZSB7XG4gICAgICAgIHJldHVybiBuZXcgVFpEYXRlKHllYXIsIG1vbnRoLCBkYXksIGhvdXJzLCBtaW51dGVzLCBzZWNvbmRzLCB0aW1lWm9uZSB8fCBUaW55RGF0ZS5kZWZhdWx0VGltZVpvbmUpO1xuICAgIH1cblxuICAgIHN0YXRpYyBmcm9tVW5peFRpbWUodW5peFRpbWU6IG51bWJlciwgdGltZVpvbmU/OiBzdHJpbmcpOiBUaW55RGF0ZSB7XG4gICAgICAgIHJldHVybiBuZXcgVGlueURhdGUoZnJvbVVuaXhUaW1lKHVuaXhUaW1lKSwgdGltZVpvbmUgfHwgVGlueURhdGUuZGVmYXVsdFRpbWVab25lKTtcbiAgICB9XG5cbiAgICAvLyBnZXRcbiAgICBnZXRUaW1lKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdGl2ZURhdGUuZ2V0VGltZSgpO1xuICAgIH1cblxuICAgIGdldERhdGUoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmF0aXZlRGF0ZS5nZXREYXRlKCk7XG4gICAgfVxuXG4gICAgZ2V0WWVhcigpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXRpdmVEYXRlLmdldEZ1bGxZZWFyKCk7XG4gICAgfVxuXG4gICAgZ2V0UXVhcnRlcigpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gZ2V0UXVhcnRlcih0aGlzLm5hdGl2ZURhdGUpO1xuICAgIH1cblxuICAgIGdldE1vbnRoKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdGl2ZURhdGUuZ2V0TW9udGgoKTtcbiAgICB9XG5cbiAgICBnZXRGdWxsWWVhcigpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXRpdmVEYXRlLmdldEZ1bGxZZWFyKCk7XG4gICAgfVxuXG4gICAgZ2V0V2VlayhvcHRpb25zOiB7IGxvY2FsZT86IExvY2FsZTsgd2Vla1N0YXJ0c09uPzogV2Vla0RheUluZGV4IH0gPSB7IHdlZWtTdGFydHNPbjogMSB9KTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIGdldFdlZWsodGhpcy5uYXRpdmVEYXRlLCBvcHRpb25zKTtcbiAgICB9XG5cbiAgICBnZXREYXkoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmF0aXZlRGF0ZS5nZXREYXkoKTtcbiAgICB9XG5cbiAgICBnZXRIb3VycygpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXRpdmVEYXRlLmdldEhvdXJzKCk7XG4gICAgfVxuXG4gICAgZ2V0TWludXRlcygpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXRpdmVEYXRlLmdldE1pbnV0ZXMoKTtcbiAgICB9XG5cbiAgICBnZXRTZWNvbmRzKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdGl2ZURhdGUuZ2V0U2Vjb25kcygpO1xuICAgIH1cblxuICAgIGdldE1pbGxpc2Vjb25kcygpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXRpdmVEYXRlLmdldE1pbGxpc2Vjb25kcygpO1xuICAgIH1cblxuICAgIGdldERheXNJbk1vbnRoKCkge1xuICAgICAgICByZXR1cm4gZ2V0RGF5c0luTW9udGgodGhpcy5uYXRpdmVEYXRlKTtcbiAgICB9XG5cbiAgICBnZXREYXlzSW5RdWFydGVyKCkge1xuICAgICAgICByZXR1cm4gZGlmZmVyZW5jZUluQ2FsZW5kYXJEYXlzKHRoaXMuZW5kT2ZRdWFydGVyKCkuYWRkU2Vjb25kcygxKS5uYXRpdmVEYXRlLCB0aGlzLnN0YXJ0T2ZRdWFydGVyKCkubmF0aXZlRGF0ZSk7XG4gICAgfVxuXG4gICAgLy8gc2V0XG4gICAgc2V0RGF0ZShhbW91bnQ6IG51bWJlcik6IFRpbnlEYXRlIHtcbiAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHRoaXMubmF0aXZlRGF0ZSk7XG4gICAgICAgIGRhdGUuc2V0RGF0ZShhbW91bnQpO1xuICAgICAgICByZXR1cm4gbmV3IFRpbnlEYXRlKGRhdGUsIHRoaXMudXNlVGltZVpvbmUpO1xuICAgIH1cblxuICAgIHNldEhtcyhob3VyOiBudW1iZXIsIG1pbnV0ZTogbnVtYmVyLCBzZWNvbmQ6IG51bWJlcik6IFRpbnlEYXRlIHtcbiAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHRoaXMubmF0aXZlRGF0ZSk7XG4gICAgICAgIGRhdGUuc2V0SG91cnMoaG91ciwgbWludXRlLCBzZWNvbmQpO1xuICAgICAgICByZXR1cm4gbmV3IFRpbnlEYXRlKGRhdGUsIHRoaXMudXNlVGltZVpvbmUpO1xuICAgIH1cblxuICAgIHNldFllYXIoeWVhcjogbnVtYmVyKTogVGlueURhdGUge1xuICAgICAgICByZXR1cm4gbmV3IFRpbnlEYXRlKHNldFllYXIodGhpcy5uYXRpdmVEYXRlLCB5ZWFyKSwgdGhpcy51c2VUaW1lWm9uZSk7XG4gICAgfVxuXG4gICAgc2V0TW9udGgobW9udGg6IG51bWJlcik6IFRpbnlEYXRlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBUaW55RGF0ZShzZXRNb250aCh0aGlzLm5hdGl2ZURhdGUsIG1vbnRoKSwgdGhpcy51c2VUaW1lWm9uZSk7XG4gICAgfVxuXG4gICAgc2V0UXVhcnRlcihxdWFydGVyOiBudW1iZXIpOiBUaW55RGF0ZSB7XG4gICAgICAgIHJldHVybiBuZXcgVGlueURhdGUoc2V0UXVhcnRlcih0aGlzLm5hdGl2ZURhdGUsIHF1YXJ0ZXIpLCB0aGlzLnVzZVRpbWVab25lKTtcbiAgICB9XG5cbiAgICBzZXREYXkoZGF5OiBudW1iZXIsIG9wdGlvbnM/OiB7IHdlZWtTdGFydHNPbjogV2Vla0RheUluZGV4IH0pOiBUaW55RGF0ZSB7XG4gICAgICAgIHJldHVybiBuZXcgVGlueURhdGUoc2V0RGF5KHRoaXMubmF0aXZlRGF0ZSwgZGF5LCBvcHRpb25zKSwgdGhpcy51c2VUaW1lWm9uZSk7XG4gICAgfVxuXG4gICAgc2V0SG91cnMoaG91cnM6IG51bWJlcik6IFRpbnlEYXRlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBUaW55RGF0ZShzZXRIb3Vycyh0aGlzLm5hdGl2ZURhdGUsIGhvdXJzKSwgdGhpcy51c2VUaW1lWm9uZSk7XG4gICAgfVxuXG4gICAgc2V0TWludXRlcyhtaW51dGVzOiBudW1iZXIpOiBUaW55RGF0ZSB7XG4gICAgICAgIHJldHVybiBuZXcgVGlueURhdGUoc2V0TWludXRlcyh0aGlzLm5hdGl2ZURhdGUsIG1pbnV0ZXMpLCB0aGlzLnVzZVRpbWVab25lKTtcbiAgICB9XG5cbiAgICBzZXRTZWNvbmRzKHNlY29uZHM6IG51bWJlcik6IFRpbnlEYXRlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBUaW55RGF0ZShzZXRTZWNvbmRzKHRoaXMubmF0aXZlRGF0ZSwgc2Vjb25kcyksIHRoaXMudXNlVGltZVpvbmUpO1xuICAgIH1cblxuICAgIC8vIGFkZFxuICAgIGFkZFllYXJzKGFtb3VudDogbnVtYmVyKTogVGlueURhdGUge1xuICAgICAgICByZXR1cm4gbmV3IFRpbnlEYXRlKGFkZFllYXJzKHRoaXMubmF0aXZlRGF0ZSwgYW1vdW50KSwgdGhpcy51c2VUaW1lWm9uZSk7XG4gICAgfVxuXG4gICAgYWRkUXVhcnRlcnMoYW1vdW50OiBudW1iZXIpOiBUaW55RGF0ZSB7XG4gICAgICAgIHJldHVybiBuZXcgVGlueURhdGUoYWRkUXVhcnRlcnModGhpcy5uYXRpdmVEYXRlLCBhbW91bnQpLCB0aGlzLnVzZVRpbWVab25lKTtcbiAgICB9XG5cbiAgICBhZGRNb250aHMoYW1vdW50OiBudW1iZXIpOiBUaW55RGF0ZSB7XG4gICAgICAgIHJldHVybiBuZXcgVGlueURhdGUoYWRkTW9udGhzKHRoaXMubmF0aXZlRGF0ZSwgYW1vdW50KSwgdGhpcy51c2VUaW1lWm9uZSk7XG4gICAgfVxuXG4gICAgYWRkV2Vla3MoYW1vdW50OiBudW1iZXIpOiBUaW55RGF0ZSB7XG4gICAgICAgIHJldHVybiBuZXcgVGlueURhdGUoYWRkV2Vla3ModGhpcy5uYXRpdmVEYXRlLCBhbW91bnQpLCB0aGlzLnVzZVRpbWVab25lKTtcbiAgICB9XG5cbiAgICBhZGREYXlzKGFtb3VudDogbnVtYmVyKTogVGlueURhdGUge1xuICAgICAgICByZXR1cm4gbmV3IFRpbnlEYXRlKGFkZERheXModGhpcy5uYXRpdmVEYXRlLCBhbW91bnQpLCB0aGlzLnVzZVRpbWVab25lKTtcbiAgICB9XG4gICAgYWRkSG91cnMoYW1vdW50OiBudW1iZXIpOiBUaW55RGF0ZSB7XG4gICAgICAgIHJldHVybiBuZXcgVGlueURhdGUoYWRkSG91cnModGhpcy5uYXRpdmVEYXRlLCBhbW91bnQpLCB0aGlzLnVzZVRpbWVab25lKTtcbiAgICB9XG5cbiAgICBhZGRTZWNvbmRzKGFtb3VudDogbnVtYmVyKTogVGlueURhdGUge1xuICAgICAgICByZXR1cm4gbmV3IFRpbnlEYXRlKGFkZFNlY29uZHModGhpcy5uYXRpdmVEYXRlLCBhbW91bnQpLCB0aGlzLnVzZVRpbWVab25lKTtcbiAgICB9XG5cbiAgICBhZGRNaW51dGVzKGFtb3VudDogbnVtYmVyKTogVGlueURhdGUge1xuICAgICAgICByZXR1cm4gbmV3IFRpbnlEYXRlKGFkZE1pbnV0ZXModGhpcy5uYXRpdmVEYXRlLCBhbW91bnQpLCB0aGlzLnVzZVRpbWVab25lKTtcbiAgICB9XG5cbiAgICAvLyBpc1NhbWVcblxuICAgIGlzU2FtZShkYXRlOiBUaW55RGF0ZVR5cGUsIGdyYWluOiBUaW55RGF0ZUNvbXBhcmVHcmFpbiA9ICdkYXknKTogYm9vbGVhbiB7XG4gICAgICAgIGxldCBmbjtcbiAgICAgICAgc3dpdGNoIChncmFpbikge1xuICAgICAgICAgICAgY2FzZSAnZGVjYWRlJzpcbiAgICAgICAgICAgICAgICBmbiA9IChwcmU6IERhdGUsIG5leHQ6IERhdGUpID0+IE1hdGguYWJzKHByZS5nZXRGdWxsWWVhcigpIC0gbmV4dC5nZXRGdWxsWWVhcigpKSA8IDExO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAneWVhcic6XG4gICAgICAgICAgICAgICAgZm4gPSBpc1NhbWVZZWFyO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnbW9udGgnOlxuICAgICAgICAgICAgICAgIGZuID0gaXNTYW1lTW9udGg7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdxdWFydGVyJzpcbiAgICAgICAgICAgICAgICBmbiA9IGlzU2FtZVF1YXJ0ZXI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdkYXknOlxuICAgICAgICAgICAgICAgIGZuID0gaXNTYW1lRGF5O1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnaG91cic6XG4gICAgICAgICAgICAgICAgZm4gPSBpc1NhbWVIb3VyO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnbWludXRlJzpcbiAgICAgICAgICAgICAgICBmbiA9IGlzU2FtZU1pbnV0ZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3NlY29uZCc6XG4gICAgICAgICAgICAgICAgZm4gPSBpc1NhbWVTZWNvbmQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGZuID0gaXNTYW1lRGF5O1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmbih0aGlzLm5hdGl2ZURhdGUsIHRoaXMudG9OYXRpdmVEYXRlKGRhdGUpKTtcbiAgICB9XG5cbiAgICBpc1NhbWVZZWFyKGRhdGU6IFRpbnlEYXRlVHlwZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1NhbWUoZGF0ZSwgJ3llYXInKTtcbiAgICB9XG5cbiAgICBpc1NhbWVNb250aChkYXRlOiBUaW55RGF0ZVR5cGUpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNTYW1lKGRhdGUsICdtb250aCcpO1xuICAgIH1cblxuICAgIGlzU2FtZVF1YXJ0ZXIoZGF0ZTogVGlueURhdGVUeXBlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzU2FtZShkYXRlLCAncXVhcnRlcicpO1xuICAgIH1cblxuICAgIGlzU2FtZURheShkYXRlOiBUaW55RGF0ZVR5cGUpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNTYW1lKGRhdGUsICdkYXknKTtcbiAgICB9XG5cbiAgICBpc1NhbWVIb3VyKGRhdGU6IFRpbnlEYXRlVHlwZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1NhbWUoZGF0ZSwgJ2hvdXInKTtcbiAgICB9XG5cbiAgICBpc1NhbWVNaW51dGUoZGF0ZTogVGlueURhdGVUeXBlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzU2FtZShkYXRlLCAnbWludXRlJyk7XG4gICAgfVxuXG4gICAgaXNTYW1lU2Vjb25kKGRhdGU6IFRpbnlEYXRlVHlwZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1NhbWUoZGF0ZSwgJ3NlY29uZCcpO1xuICAgIH1cblxuICAgIC8vIGlzQmVmb3JlIGFuZCBpc0FmdGVyXG4gICAgaXNCZWZvcmVZZWFyKGRhdGU6IFRpbnlEYXRlVHlwZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wYXJlKGRhdGUsICd5ZWFyJyk7XG4gICAgfVxuXG4gICAgaXNCZWZvcmVRdWFydGVyKGRhdGU6IFRpbnlEYXRlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbXBhcmUoZGF0ZSwgJ3F1YXJ0ZXInKTtcbiAgICB9XG5cbiAgICBpc0JlZm9yZU1vbnRoKGRhdGU6IFRpbnlEYXRlVHlwZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wYXJlKGRhdGUsICdtb250aCcpO1xuICAgIH1cblxuICAgIGlzQmVmb3JlV2VlayhkYXRlOiBUaW55RGF0ZVR5cGUpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcGFyZShkYXRlLCAnd2VlaycpO1xuICAgIH1cblxuICAgIGlzQmVmb3JlRGF5KGRhdGU6IFRpbnlEYXRlVHlwZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wYXJlKGRhdGUsICdkYXknKTtcbiAgICB9XG5cbiAgICBpc0JlZm9yZUhvdXIoZGF0ZTogVGlueURhdGVUeXBlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbXBhcmUoZGF0ZSwgJ2hvdXInKTtcbiAgICB9XG5cbiAgICBpc0JlZm9yZU1pbnV0ZShkYXRlOiBUaW55RGF0ZVR5cGUpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcGFyZShkYXRlLCAnbWludXRlJyk7XG4gICAgfVxuXG4gICAgaXNCZWZvcmVTZWNvbmQoZGF0ZTogVGlueURhdGVUeXBlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbXBhcmUoZGF0ZSwgJ3NlY29uZCcpO1xuICAgIH1cblxuICAgIGlzQWZ0ZXJZZWFyKGRhdGU6IFRpbnlEYXRlVHlwZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wYXJlKGRhdGUsICd5ZWFyJywgZmFsc2UpO1xuICAgIH1cblxuICAgIGlzQWZ0ZXJRdWFydGVyKGRhdGU6IFRpbnlEYXRlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbXBhcmUoZGF0ZSwgJ3F1YXJ0ZXInLCBmYWxzZSk7XG4gICAgfVxuXG4gICAgaXNBZnRlck1vbnRoKGRhdGU6IFRpbnlEYXRlVHlwZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wYXJlKGRhdGUsICdtb250aCcsIGZhbHNlKTtcbiAgICB9XG5cbiAgICBpc0FmdGVyV2VlayhkYXRlOiBUaW55RGF0ZVR5cGUpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcGFyZShkYXRlLCAnd2VlaycsIGZhbHNlKTtcbiAgICB9XG5cbiAgICBpc0FmdGVyRGF5KGRhdGU6IFRpbnlEYXRlVHlwZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wYXJlKGRhdGUsICdkYXknLCBmYWxzZSk7XG4gICAgfVxuXG4gICAgaXNBZnRlckhvdXIoZGF0ZTogVGlueURhdGVUeXBlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbXBhcmUoZGF0ZSwgJ2hvdXInLCBmYWxzZSk7XG4gICAgfVxuXG4gICAgaXNBZnRlck1pbnV0ZShkYXRlOiBUaW55RGF0ZVR5cGUpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcGFyZShkYXRlLCAnbWludXRlJywgZmFsc2UpO1xuICAgIH1cblxuICAgIGlzQWZ0ZXJTZWNvbmQoZGF0ZTogVGlueURhdGVUeXBlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbXBhcmUoZGF0ZSwgJ3NlY29uZCcsIGZhbHNlKTtcbiAgICB9XG5cbiAgICAvLyBpc1xuICAgIGlzV2Vla2VuZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGlzV2Vla2VuZCh0aGlzLm5hdGl2ZURhdGUpO1xuICAgIH1cblxuICAgIGlzVG9kYXkoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBpc1RvZGF5KHRoaXMubmF0aXZlRGF0ZSk7XG4gICAgfVxuXG4gICAgaXNUb21vcnJvdygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGlzVG9tb3Jyb3codGhpcy5uYXRpdmVEYXRlKTtcbiAgICB9XG5cbiAgICBpc1ZhbGlkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gaXNWYWxpZCh0aGlzLm5hdGl2ZURhdGUpO1xuICAgIH1cblxuICAgIC8vIHN0YXJ0T2YgYW5kIGVuZE9mXG4gICAgc3RhcnRPZlllYXIoKTogVGlueURhdGUge1xuICAgICAgICByZXR1cm4gbmV3IFRpbnlEYXRlKHN0YXJ0T2ZZZWFyKHRoaXMubmF0aXZlRGF0ZSksIHRoaXMudXNlVGltZVpvbmUpO1xuICAgIH1cblxuICAgIHN0YXJ0T2ZRdWFydGVyKCk6IFRpbnlEYXRlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBUaW55RGF0ZShzdGFydE9mUXVhcnRlcih0aGlzLm5hdGl2ZURhdGUpLCB0aGlzLnVzZVRpbWVab25lKTtcbiAgICB9XG5cbiAgICBzdGFydE9mTW9udGgoKTogVGlueURhdGUge1xuICAgICAgICByZXR1cm4gbmV3IFRpbnlEYXRlKHN0YXJ0T2ZNb250aCh0aGlzLm5hdGl2ZURhdGUpLCB0aGlzLnVzZVRpbWVab25lKTtcbiAgICB9XG5cbiAgICBzdGFydE9mV2VlayhvcHRpb25zPzogeyBsb2NhbGU/OiBMb2NhbGU7IHdlZWtTdGFydHNPbj86IFdlZWtEYXlJbmRleCB9KTogVGlueURhdGUge1xuICAgICAgICByZXR1cm4gbmV3IFRpbnlEYXRlKHN0YXJ0T2ZXZWVrKHRoaXMubmF0aXZlRGF0ZSwgb3B0aW9ucyksIHRoaXMudXNlVGltZVpvbmUpO1xuICAgIH1cblxuICAgIHN0YXJ0T2ZEYXkoKTogVGlueURhdGUge1xuICAgICAgICByZXR1cm4gbmV3IFRpbnlEYXRlKHN0YXJ0T2ZEYXkodGhpcy5uYXRpdmVEYXRlKSwgdGhpcy51c2VUaW1lWm9uZSk7XG4gICAgfVxuXG4gICAgZW5kT2ZZZWFyKCk6IFRpbnlEYXRlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBUaW55RGF0ZShlbmRPZlllYXIodGhpcy5uYXRpdmVEYXRlKSwgdGhpcy51c2VUaW1lWm9uZSk7XG4gICAgfVxuXG4gICAgZW5kT2ZRdWFydGVyKCk6IFRpbnlEYXRlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBUaW55RGF0ZShlbmRPZlF1YXJ0ZXIodGhpcy5uYXRpdmVEYXRlKSwgdGhpcy51c2VUaW1lWm9uZSk7XG4gICAgfVxuXG4gICAgZW5kT2ZNb250aCgpOiBUaW55RGF0ZSB7XG4gICAgICAgIHJldHVybiBuZXcgVGlueURhdGUoZW5kT2ZNb250aCh0aGlzLm5hdGl2ZURhdGUpLCB0aGlzLnVzZVRpbWVab25lKTtcbiAgICB9XG5cbiAgICBlbmRPZldlZWsob3B0aW9ucz86IHsgbG9jYWxlPzogTG9jYWxlOyB3ZWVrU3RhcnRzT24/OiBXZWVrRGF5SW5kZXggfSk6IFRpbnlEYXRlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBUaW55RGF0ZShlbmRPZldlZWsodGhpcy5uYXRpdmVEYXRlLCBvcHRpb25zKSwgdGhpcy51c2VUaW1lWm9uZSk7XG4gICAgfVxuXG4gICAgZW5kT2ZEYXkoKTogVGlueURhdGUge1xuICAgICAgICByZXR1cm4gbmV3IFRpbnlEYXRlKGVuZE9mRGF5KHRoaXMubmF0aXZlRGF0ZSksIHRoaXMudXNlVGltZVpvbmUpO1xuICAgIH1cblxuICAgIC8vIG90aGVyXG4gICAgZm9ybWF0KFxuICAgICAgICBtYXQ6IHN0cmluZyxcbiAgICAgICAgb3B0aW9ucz86IHtcbiAgICAgICAgICAgIGxvY2FsZT86IExvY2FsZTtcbiAgICAgICAgICAgIHdlZWtTdGFydHNPbj86IFdlZWtEYXlJbmRleDtcbiAgICAgICAgICAgIGZpcnN0V2Vla0NvbnRhaW5zRGF0ZT86IEZpcnN0V2Vla0NvbnRhaW5zRGF0ZTtcbiAgICAgICAgICAgIHVzZUFkZGl0aW9uYWxXZWVrWWVhclRva2Vucz86IGJvb2xlYW47XG4gICAgICAgICAgICB1c2VBZGRpdGlvbmFsRGF5T2ZZZWFyVG9rZW5zPzogYm9vbGVhbjtcbiAgICAgICAgfVxuICAgICkge1xuICAgICAgICByZXR1cm4gZm9ybWF0KHRoaXMubmF0aXZlRGF0ZSwgbWF0LCBvcHRpb25zKTtcbiAgICB9XG5cbiAgICBjYWxlbmRhclN0YXJ0KG9wdGlvbnM/OiB7IHdlZWtTdGFydHNPbjogV2Vla0RheUluZGV4IHwgdW5kZWZpbmVkIH0pOiBUaW55RGF0ZSB7XG4gICAgICAgIHJldHVybiBuZXcgVGlueURhdGUoc3RhcnRPZldlZWsoc3RhcnRPZk1vbnRoKHRoaXMubmF0aXZlRGF0ZSksIG9wdGlvbnMpLCB0aGlzLnVzZVRpbWVab25lKTtcbiAgICB9XG5cbiAgICBjbG9uZSgpOiBUaW55RGF0ZSB7XG4gICAgICAgIHJldHVybiBuZXcgVGlueURhdGUobmV3IERhdGUodGhpcy5uYXRpdmVEYXRlKSwgdGhpcy51c2VUaW1lWm9uZSk7XG4gICAgfVxuXG4gICAgZ2V0VW5peFRpbWUoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIGdldFVuaXhUaW1lKHRoaXMubmF0aXZlRGF0ZSk7XG4gICAgfVxuXG4gICAgY29tcGFyZShkYXRlOiBUaW55RGF0ZVR5cGUsIGdyYWluOiBUaW55RGF0ZUNvbXBhcmVHcmFpbiA9ICdkYXknLCBpc0JlZm9yZTogYm9vbGVhbiA9IHRydWUpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKGRhdGUgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgZm47XG4gICAgICAgIHN3aXRjaCAoZ3JhaW4pIHtcbiAgICAgICAgICAgIGNhc2UgJ3llYXInOlxuICAgICAgICAgICAgICAgIGZuID0gZGlmZmVyZW5jZUluQ2FsZW5kYXJZZWFycztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3F1YXJ0ZXInOlxuICAgICAgICAgICAgICAgIGZuID0gZGlmZmVyZW5jZUluQ2FsZW5kYXJRdWFydGVycztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ21vbnRoJzpcbiAgICAgICAgICAgICAgICBmbiA9IGRpZmZlcmVuY2VJbkNhbGVuZGFyTW9udGhzO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnZGF5JzpcbiAgICAgICAgICAgICAgICBmbiA9IGRpZmZlcmVuY2VJbkNhbGVuZGFyRGF5cztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3dlZWsnOlxuICAgICAgICAgICAgICAgIGZuID0gZGlmZmVyZW5jZUluV2Vla3M7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdob3VyJzpcbiAgICAgICAgICAgICAgICBmbiA9IGRpZmZlcmVuY2VJbkhvdXJzO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnbWludXRlJzpcbiAgICAgICAgICAgICAgICBmbiA9IGRpZmZlcmVuY2VJbk1pbnV0ZXM7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdzZWNvbmQnOlxuICAgICAgICAgICAgICAgIGZuID0gZGlmZmVyZW5jZUluU2Vjb25kcztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgZm4gPSBkaWZmZXJlbmNlSW5DYWxlbmRhckRheXM7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGlzQmVmb3JlID8gZm4odGhpcy5uYXRpdmVEYXRlLCB0aGlzLnRvTmF0aXZlRGF0ZShkYXRlKSkgPCAwIDogZm4odGhpcy5uYXRpdmVEYXRlLCB0aGlzLnRvTmF0aXZlRGF0ZShkYXRlKSkgPiAwO1xuICAgIH1cblxuICAgIHByaXZhdGUgdG9OYXRpdmVEYXRlKGRhdGU6IGFueSk6IERhdGUge1xuICAgICAgICByZXR1cm4gZGF0ZSBpbnN0YW5jZW9mIFRpbnlEYXRlID8gZGF0ZS5uYXRpdmVEYXRlIDogZGF0ZTtcbiAgICB9XG5cbiAgICBzdGFydE9mSVNPV2VlaygpOiBUaW55RGF0ZSB7XG4gICAgICAgIHJldHVybiBuZXcgVGlueURhdGUoc3RhcnRPZklTT1dlZWsodGhpcy5uYXRpdmVEYXRlKSwgdGhpcy51c2VUaW1lWm9uZSk7XG4gICAgfVxuXG4gICAgZW5kT2ZJU09XZWVrKCk6IFRpbnlEYXRlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBUaW55RGF0ZShlbmRPZklTT1dlZWsodGhpcy5uYXRpdmVEYXRlKSwgdGhpcy51c2VUaW1lWm9uZSk7XG4gICAgfVxuXG4gICAgZGlmZmVyZW5jZUluRGF5cyhkYXRlOiBEYXRlKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIGRpZmZlcmVuY2VJbkRheXModGhpcy5uYXRpdmVEYXRlLCBkYXRlKTtcbiAgICB9XG5cbiAgICBkaWZmZXJlbmNlSW5Ib3VycyhkYXRlOiBEYXRlKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIGRpZmZlcmVuY2VJbkhvdXJzKHRoaXMubmF0aXZlRGF0ZSwgZGF0ZSk7XG4gICAgfVxuXG4gICAgc3ViV2Vla3MoYW1vdW50OiBudW1iZXIpOiBUaW55RGF0ZSB7XG4gICAgICAgIHJldHVybiBuZXcgVGlueURhdGUoc3ViV2Vla3ModGhpcy5uYXRpdmVEYXRlLCBhbW91bnQpLCB0aGlzLnVzZVRpbWVab25lKTtcbiAgICB9XG5cbiAgICBzdWJEYXlzKGFtb3VudDogbnVtYmVyKTogVGlueURhdGUge1xuICAgICAgICByZXR1cm4gbmV3IFRpbnlEYXRlKHN1YkRheXModGhpcy5uYXRpdmVEYXRlLCBhbW91bnQpLCB0aGlzLnVzZVRpbWVab25lKTtcbiAgICB9XG59XG4iXX0=
387
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlueS1kYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3V0aWwvZGF0ZS90aW55LWRhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN0QyxPQUFPLEVBQWlDLFFBQVEsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzNGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2pELE9BQU8sRUFDSCxPQUFPLEVBQ1AsUUFBUSxFQUNSLFVBQVUsRUFDVixTQUFTLEVBQ1QsV0FBVyxFQUNYLFVBQVUsRUFDVixRQUFRLEVBQ1IsUUFBUSxFQUNSLHdCQUF3QixFQUN4QiwwQkFBMEIsRUFDMUIsNEJBQTRCLEVBQzVCLHlCQUF5QixFQUN6QixnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLG1CQUFtQixFQUNuQixtQkFBbUIsRUFDbkIsaUJBQWlCLEVBQ2pCLFFBQVEsRUFDUixZQUFZLEVBQ1osVUFBVSxFQUNWLFlBQVksRUFDWixTQUFTLEVBQ1QsU0FBUyxFQUNULE1BQU0sRUFDTixZQUFZLEVBQ1osZ0JBQWdCLEVBQ2hCLGNBQWMsRUFDZCxVQUFVLEVBQ1YsV0FBVyxFQUNYLE9BQU8sRUFDUCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixXQUFXLEVBQ1gsYUFBYSxFQUNiLFlBQVksRUFDWixVQUFVLEVBQ1YsT0FBTyxFQUNQLFVBQVUsRUFDVixPQUFPLEVBQ1AsU0FBUyxFQUNULE1BQU0sRUFDTixpQkFBaUIsRUFDakIsUUFBUSxFQUNSLFVBQVUsRUFDVixPQUFPLEVBQ1AsVUFBVSxFQUNWLGNBQWMsRUFDZCxZQUFZLEVBQ1os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O0lBQzdELENBQUM7SUFFRCxjQUFjO1FBQ1YsT0FBTyxJQUFJLFFBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRUQsWUFBWTtRQUNSLE9BQU8sSUFBSSxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVELGdCQUFnQixDQUFDLElBQVU7UUFDdkIsT0FBTyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxJQUFVO1FBQ3hCLE9BQU8saUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsUUFBUSxDQUFDLE1BQWM7UUFDbkIsT0FBTyxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUVELE9BQU8sQ0FBQyxNQUFjO1FBQ2xCLE9BQU8sSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzVFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUWkRhdGUgfSBmcm9tICdAZGF0ZS1mbnMvdHonO1xuaW1wb3J0IHsgRmlyc3RXZWVrQ29udGFpbnNEYXRlLCBMb2NhbGUsIHNldEhvdXJzLCBzZXRNaW51dGVzLCBzZXRTZWNvbmRzIH0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgZnJvbVpvbmVkVGltZSB9IGZyb20gJ2RhdGUtZm5zLXR6JztcbmltcG9ydCB7IGdldERlZmF1bHRMb2NhbGVJZCB9IGZyb20gJ25neC10ZXRoeXMvaTE4bic7XG5pbXBvcnQgeyBoYXNUaW1lSW5TdHJpbmdEYXRlIH0gZnJvbSAnLi4vaGVscGVycyc7XG5pbXBvcnQge1xuICAgIGFkZERheXMsXG4gICAgYWRkSG91cnMsXG4gICAgYWRkTWludXRlcyxcbiAgICBhZGRNb250aHMsXG4gICAgYWRkUXVhcnRlcnMsXG4gICAgYWRkU2Vjb25kcyxcbiAgICBhZGRXZWVrcyxcbiAgICBhZGRZZWFycyxcbiAgICBkaWZmZXJlbmNlSW5DYWxlbmRhckRheXMsXG4gICAgZGlmZmVyZW5jZUluQ2FsZW5kYXJNb250aHMsXG4gICAgZGlmZmVyZW5jZUluQ2FsZW5kYXJRdWFydGVycyxcbiAgICBkaWZmZXJlbmNlSW5DYWxlbmRhclllYXJzLFxuICAgIGRpZmZlcmVuY2VJbkRheXMsXG4gICAgZGlmZmVyZW5jZUluSG91cnMsXG4gICAgZGlmZmVyZW5jZUluTWludXRlcyxcbiAgICBkaWZmZXJlbmNlSW5TZWNvbmRzLFxuICAgIGRpZmZlcmVuY2VJbldlZWtzLFxuICAgIGVuZE9mRGF5LFxuICAgIGVuZE9mSVNPV2VlayxcbiAgICBlbmRPZk1vbnRoLFxuICAgIGVuZE9mUXVhcnRlcixcbiAgICBlbmRPZldlZWssXG4gICAgZW5kT2ZZZWFyLFxuICAgIGZvcm1hdCxcbiAgICBmcm9tVW5peFRpbWUsXG4gICAgZ2V0RGF0ZUZuc0xvY2FsZSxcbiAgICBnZXREYXlzSW5Nb250aCxcbiAgICBnZXRRdWFydGVyLFxuICAgIGdldFVuaXhUaW1lLFxuICAgIGdldFdlZWssXG4gICAgaXNTYW1lRGF5LFxuICAgIGlzU2FtZUhvdXIsXG4gICAgaXNTYW1lTWludXRlLFxuICAgIGlzU2FtZU1vbnRoLFxuICAgIGlzU2FtZVF1YXJ0ZXIsXG4gICAgaXNTYW1lU2Vjb25kLFxuICAgIGlzU2FtZVllYXIsXG4gICAgaXNUb2RheSxcbiAgICBpc1RvbW9ycm93LFxuICAgIGlzVmFsaWQsXG4gICAgaXNXZWVrZW5kLFxuICAgIHNldERheSxcbiAgICBzZXREZWZhdWx0T3B0aW9ucyxcbiAgICBzZXRNb250aCxcbiAgICBzZXRRdWFydGVyLFxuICAgIHNldFllYXIsXG4gICAgc3RhcnRPZkRheSxcbiAgICBzdGFydE9mSVNPV2VlayxcbiAgICBzdGFydE9mTW9udGgsXG4gICAgc3RhcnRPZlF1YXJ0ZXIsXG4gICAgc3RhcnRPZldlZWssXG4gICAgc3RhcnRPZlllYXIsXG4gICAgc3ViRGF5cyxcbiAgICBzdWJXZWVrc1xufSBmcm9tICcuL2Z1bmN0aW9ucyc7XG5cbmV4cG9ydCB0eXBlIFRpbnlEYXRlQ29tcGFyZUdyYWluID0gJ2RlY2FkZScgfCAneWVhcicgfCAncXVhcnRlcicgfCAnbW9udGgnIHwgJ3dlZWsnIHwgJ2RheScgfCAnaG91cicgfCAnbWludXRlJyB8ICdzZWNvbmQnO1xuXG5leHBvcnQgdHlwZSBXZWVrRGF5SW5kZXggPSAwIHwgMSB8IDIgfCAzIHwgNCB8IDUgfCA2O1xuXG5leHBvcnQgdHlwZSBUaW55RGF0ZVR5cGUgPSBUaW55RGF0ZSB8IERhdGUgfCBudWxsO1xuXG5leHBvcnQgZnVuY3Rpb24gc29ydFJhbmdlVmFsdWUocmFuZ2VWYWx1ZTogVGlueURhdGVbXSk6IFRpbnlEYXRlW10ge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHJhbmdlVmFsdWUpKSB7XG4gICAgICAgIGNvbnN0IFtzdGFydCwgZW5kXSA9IHJhbmdlVmFsdWU7XG4gICAgICAgIHJldHVybiBzdGFydCAmJiBlbmQgJiYgc3RhcnQuaXNBZnRlclNlY29uZChlbmQpID8gW2VuZCwgc3RhcnRdIDogW3N0YXJ0LCBlbmRdO1xuICAgIH1cbiAgICByZXR1cm4gcmFuZ2VWYWx1ZTtcbn1cblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfVElNRVpPTkUgPSAnQXNpYS9TaGFuZ2hhaSc7XG5cbmV4cG9ydCBjbGFzcyBUaW55RGF0ZSBpbXBsZW1lbnRzIFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgIG5hdGl2ZURhdGU6IERhdGU7XG5cbiAgICBwcml2YXRlIHVzZVRpbWVab25lOiBzdHJpbmc7XG5cbiAgICBwcml2YXRlIHN0YXRpYyBsb2NhbGU6IHN0cmluZyA9IGdldERlZmF1bHRMb2NhbGVJZCgpO1xuXG4gICAgcHJvdGVjdGVkIHN0YXRpYyBkYXRlRm5zTG9jYWxlOiBMb2NhbGUgPSBnZXREYXRlRm5zTG9jYWxlKFRpbnlEYXRlLmxvY2FsZSk7XG5cbiAgICBwcm90ZWN0ZWQgc3RhdGljIGRlZmF1bHRUaW1lWm9uZTogc3RyaW5nID0gREVGQVVMVF9USU1FWk9ORTtcblxuICAgIGNvbnN0cnVjdG9yKGRhdGU/OiBEYXRlIHwgc3RyaW5nIHwgbnVtYmVyLCB6b25lPzogc3RyaW5nKSB7XG4gICAgICAgIHNldERlZmF1bHRPcHRpb25zKHsgbG9jYWxlOiBUaW55RGF0ZS5kYXRlRm5zTG9jYWxlIH0pO1xuICAgICAgICB0aGlzLnVzZVRpbWVab25lID0gem9uZSB8fCBUaW55RGF0ZS5kZWZhdWx0VGltZVpvbmU7XG4gICAgICAgIGlmIChkYXRlKSB7XG4gICAgICAgICAgICBpZiAoZGF0ZSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm5hdGl2ZURhdGUgPSBUaW55RGF0ZS51dGNUb1pvbmVkVGltZShkYXRlLCB0aGlzLnVzZVRpbWVab25lKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGRhdGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgaWYgKGhhc1RpbWVJblN0cmluZ0RhdGUoZGF0ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIHN0cmluZyBjb250YWlucyB0aW1lLCB5b3UgbmVlZCB0byBjb252ZXJ0IHRoZSB0aW1lIHRvIFVUQyB0aW1lIGJlZm9yZSBwYXNzaW5nIGl0IHRvIFRaRGF0ZVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBvcmlnaW5UaW1lID0gbmV3IERhdGUoZGF0ZSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHpvbmVUaW1lID0gVFpEYXRlLnR6KHRoaXMudXNlVGltZVpvbmUsIG9yaWdpblRpbWUpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB1dGNEYXRlID0gZnJvbVpvbmVkVGltZSh6b25lVGltZSwgdGhpcy51c2VUaW1lWm9uZSkudG9JU09TdHJpbmcoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5uYXRpdmVEYXRlID0gbmV3IFRaRGF0ZSh1dGNEYXRlLCB0aGlzLnVzZVRpbWVab25lKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm5hdGl2ZURhdGUgPSBuZXcgVFpEYXRlKGRhdGUsIHRoaXMudXNlVGltZVpvbmUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGRhdGUgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5uYXRpdmVEYXRlID0gbmV3IFRaRGF0ZShkYXRlLCB0aGlzLnVzZVRpbWVab25lKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIG5nRGV2TW9kZSA9PT0gJ3VuZGVmaW5lZCcgfHwgbmdEZXZNb2RlKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgICAgICBgVGhlIGlucHV0IGRhdGUgdHlwZSBpcyBub3Qgc3VwcG9ydGVkIGV4cGVjdCBEYXRlIHwgc3RyaW5nIHwgbnVtYmVyIHwgeyBkYXRlOiBudW1iZXI7IHdpdGhfdGltZTogMCB8IDF9LCBhY3R1YWwgJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVcbiAgICAgICAgICAgICAgICAgICAgKX1gXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubmF0aXZlRGF0ZSA9IG5ldyBUWkRhdGUoRGF0ZS5ub3coKSwgdGhpcy51c2VUaW1lWm9uZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzdGF0aWMgc2V0RGVmYXVsdExvY2FsZShsb2NhbGU6IHN0cmluZykge1xuICAgICAgICBUaW55RGF0ZS5sb2NhbGUgPSBsb2NhbGU7XG4gICAgICAgIFRpbnlEYXRlLmRhdGVGbnNMb2NhbGUgPSBnZXREYXRlRm5zTG9jYWxlKGxvY2FsZSk7XG4gICAgICAgIHJldHVybiBzZXREZWZhdWx0T3B0aW9ucyh7IGxvY2FsZTogVGlueURhdGUuZGF0ZUZuc0xvY2FsZSB9KTtcbiAgICB9XG5cbiAgICBzdGF0aWMgZ2V0RGVmYXVsdExvY2FsZSgpOiB7IGxvY2FsZTogc3RyaW5nOyBkYXRlRm5zTG9jYWxlOiBMb2NhbGUgfSB7XG4gICAgICAgIHJldHVybiB7IGxvY2FsZTogVGlueURhdGUubG9jYWxlLCBkYXRlRm5zTG9jYWxlOiBUaW55RGF0ZS5kYXRlRm5zTG9jYWxlIH07XG4gICAgfVxuXG4gICAgc3RhdGljIHNldERlZmF1bHRUaW1lWm9uZSh6b25lOiBzdHJpbmcpIHtcbiAgICAgICAgVGlueURhdGUuZGVmYXVsdFRpbWVab25lID0gem9uZSA/PyBERUZBVUxUX1RJTUVaT05FO1xuICAgIH1cblxuICAgIHN0YXRpYyBnZXREZWZhdWx0VGltZVpvbmUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIFRpbnlEYXRlLmRlZmF1bHRUaW1lWm9uZTtcbiAgICB9XG5cbiAgICBzdGF0aWMgdXRjVG9ab25lZFRpbWUodmFsdWU6IERhdGUgfCBudW1iZXIsIHRpbWVab25lPzogc3RyaW5nKTogRGF0ZSB7XG4gICAgICAgIHJldHVybiBUWkRhdGUudHoodGltZVpvbmUgfHwgVGlueURhdGUuZGVmYXVsdFRpbWVab25lLCB2YWx1ZSBhcyBhbnkpO1xuICAgIH1cblxuICAgIHN0YXRpYyBjcmVhdGVEYXRlSW5UaW1lWm9uZShcbiAgICAgICAgeWVhcjogbnVtYmVyLFxuICAgICAgICBtb250aDogbnVtYmVyLFxuICAgICAgICBkYXk6IG51bWJlcixcbiAgICAgICAgaG91cnM6IG51bWJlcixcbiAgICAgICAgbWludXRlczogbnVtYmVyLFxuICAgICAgICBzZWNvbmRzOiBudW1iZXIsXG4gICAgICAgIHRpbWVab25lPzogc3RyaW5nXG4gICAgKTogRGF0ZSB7XG4gICAgICAgIHJldHVybiBuZXcgVFpEYXRlKHllYXIsIG1vbnRoLCBkYXksIGhvdXJzLCBtaW51dGVzLCBzZWNvbmRzLCB0aW1lWm9uZSB8fCBUaW55RGF0ZS5kZWZhdWx0VGltZVpvbmUpO1xuICAgIH1cblxuICAgIHN0YXRpYyBmcm9tVW5peFRpbWUodW5peFRpbWU6IG51bWJlciwgdGltZVpvbmU/OiBzdHJpbmcpOiBUaW55RGF0ZSB7XG4gICAgICAgIHJldHVybiBuZXcgVGlueURhdGUoZnJvbVVuaXhUaW1lKHVuaXhUaW1lKSwgdGltZVpvbmUgfHwgVGlueURhdGUuZGVmYXVsdFRpbWVab25lKTtcbiAgICB9XG5cbiAgICAvLyBnZXRcbiAgICBnZXRUaW1lKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdGl2ZURhdGUuZ2V0VGltZSgpO1xuICAgIH1cblxuICAgIGdldERhdGUoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmF0aXZlRGF0ZS5nZXREYXRlKCk7XG4gICAgfVxuXG4gICAgZ2V0WWVhcigpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXRpdmVEYXRlLmdldEZ1bGxZZWFyKCk7XG4gICAgfVxuXG4gICAgZ2V0UXVhcnRlcigpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gZ2V0UXVhcnRlcih0aGlzLm5hdGl2ZURhdGUpO1xuICAgIH1cblxuICAgIGdldE1vbnRoKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdGl2ZURhdGUuZ2V0TW9udGgoKTtcbiAgICB9XG5cbiAgICBnZXRGdWxsWWVhcigpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXRpdmVEYXRlLmdldEZ1bGxZZWFyKCk7XG4gICAgfVxuXG4gICAgZ2V0V2VlayhvcHRpb25zOiB7IGxvY2FsZT86IExvY2FsZTsgd2Vla1N0YXJ0c09uPzogV2Vla0RheUluZGV4IH0gPSB7IHdlZWtTdGFydHNPbjogMSB9KTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIGdldFdlZWsodGhpcy5uYXRpdmVEYXRlLCBvcHRpb25zKTtcbiAgICB9XG5cbiAgICBnZXREYXkoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmF0aXZlRGF0ZS5nZXREYXkoKTtcbiAgICB9XG5cbiAgICBnZXRIb3VycygpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXRpdmVEYXRlLmdldEhvdXJzKCk7XG4gICAgfVxuXG4gICAgZ2V0TWludXRlcygpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXRpdmVEYXRlLmdldE1pbnV0ZXMoKTtcbiAgICB9XG5cbiAgICBnZXRTZWNvbmRzKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdGl2ZURhdGUuZ2V0U2Vjb25kcygpO1xuICAgIH1cblxuICAgIGdldE1pbGxpc2Vjb25kcygpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXRpdmVEYXRlLmdldE1pbGxpc2Vjb25kcygpO1xuICAgIH1cblxuICAgIGdldERheXNJbk1vbnRoKCkge1xuICAgICAgICByZXR1cm4gZ2V0RGF5c0luTW9udGgodGhpcy5uYXRpdmVEYXRlKTtcbiAgICB9XG5cbiAgICBnZXREYXlzSW5RdWFydGVyKCkge1xuICAgICAgICByZXR1cm4gZGlmZmVyZW5jZUluQ2FsZW5kYXJEYXlzKHRoaXMuZW5kT2ZRdWFydGVyKCkuYWRkU2Vjb25kcygxKS5uYXRpdmVEYXRlLCB0aGlzLnN0YXJ0T2ZRdWFydGVyKCkubmF0aXZlRGF0ZSk7XG4gICAgfVxuXG4gICAgLy8gc2V0XG4gICAgc2V0RGF0ZShhbW91bnQ6IG51bWJlcik6IFRpbnlEYXRlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBUaW55RGF0ZSh0aGlzLm5hdGl2ZURhdGUuc2V0RGF0ZShhbW91bnQpLCB0aGlzLnVzZVRpbWVab25lKTtcbiAgICB9XG5cbiAgICBzZXRIbXMoaG91cjogbnVtYmVyLCBtaW51dGU6IG51bWJlciwgc2Vjb25kOiBudW1iZXIpOiBUaW55RGF0ZSB7XG4gICAgICAgIHJldHVybiBuZXcgVGlueURhdGUodGhpcy5uYXRpdmVEYXRlPy5zZXRIb3Vycyhob3VyLCBtaW51dGUsIHNlY29uZCksIHRoaXMudXNlVGltZVpvbmUpO1xuICAgIH1cblxuICAgIHNldFllYXIoeWVhcjogbnVtYmVyKTogVGlueURhdGUge1xuICAgICAgICByZXR1cm4gbmV3IFRpbnlEYXRlKHNldFllYXIodGhpcy5uYXRpdmVEYXRlLCB5ZWFyKSwgdGhpcy51c2VUaW1lWm9uZSk7XG4gICAgfVxuXG4gICAgc2V0TW9udGgobW9udGg6IG51bWJlcik6IFRpbnlEYXRlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBUaW55RGF0ZShzZXRNb250aCh0aGlzLm5hdGl2ZURhdGUsIG1vbnRoKSwgdGhpcy51c2VUaW1lWm9uZSk7XG4gICAgfVxuXG4gICAgc2V0UXVhcnRlcihxdWFydGVyOiBudW1iZXIpOiBUaW55RGF0ZSB7XG4gICAgICAgIHJldHVybiBuZXcgVGlueURhdGUoc2V0UXVhcnRlcih0aGlzLm5hdGl2ZURhdGUsIHF1YXJ0ZXIpLCB0aGlzLnVzZVRpbWVab25lKTtcbiAgICB9XG5cbiAgICBzZXREYXkoZGF5OiBudW1iZXIsIG9wdGlvbnM/OiB7IHdlZWtTdGFydHNPbjogV2Vla0RheUluZGV4IH0pOiBUaW55RGF0ZSB7XG4gICAgICAgIHJldHVybiBuZXcgVGlueURhdGUoc2V0RGF5KHRoaXMubmF0aXZlRGF0ZSwgZGF5LCBvcHRpb25zKSwgdGhpcy51c2VUaW1lWm9uZSk7XG4gICAgfVxuXG4gICAgc2V0SG91cnMoaG91cnM6IG51bWJlcik6IFRpbnlEYXRlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBUaW55RGF0ZShzZXRIb3Vycyh0aGlzLm5hdGl2ZURhdGUsIGhvdXJzKSwgdGhpcy51c2VUaW1lWm9uZSk7XG4gICAgfVxuXG4gICAgc2V0TWludXRlcyhtaW51dGVzOiBudW1iZXIpOiBUaW55RGF0ZSB7XG4gICAgICAgIHJldHVybiBuZXcgVGlueURhdGUoc2V0TWludXRlcyh0aGlzLm5hdGl2ZURhdGUsIG1pbnV0ZXMpLCB0aGlzLnVzZVRpbWVab25lKTtcbiAgICB9XG5cbiAgICBzZXRTZWNvbmRzKHNlY29uZHM6IG51bWJlcik6IFRpbnlEYXRlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBUaW55RGF0ZShzZXRTZWNvbmRzKHRoaXMubmF0aXZlRGF0ZSwgc2Vjb25kcyksIHRoaXMudXNlVGltZVpvbmUpO1xuICAgIH1cblxuICAgIC8vIGFkZFxuICAgIGFkZFllYXJzKGFtb3VudDogbnVtYmVyKTogVGlueURhdGUge1xuICAgICAgICByZXR1cm4gbmV3IFRpbnlEYXRlKGFkZFllYXJzKHRoaXMubmF0aXZlRGF0ZSwgYW1vdW50KSwgdGhpcy51c2VUaW1lWm9uZSk7XG4gICAgfVxuXG4gICAgYWRkUXVhcnRlcnMoYW1vdW50OiBudW1iZXIpOiBUaW55RGF0ZSB7XG4gICAgICAgIHJldHVybiBuZXcgVGlueURhdGUoYWRkUXVhcnRlcnModGhpcy5uYXRpdmVEYXRlLCBhbW91bnQpLCB0aGlzLnVzZVRpbWVab25lKTtcbiAgICB9XG5cbiAgICBhZGRNb250aHMoYW1vdW50OiBudW1iZXIpOiBUaW55RGF0ZSB7XG4gICAgICAgIHJldHVybiBuZXcgVGlueURhdGUoYWRkTW9udGhzKHRoaXMubmF0aXZlRGF0ZSwgYW1vdW50KSwgdGhpcy51c2VUaW1lWm9uZSk7XG4gICAgfVxuXG4gICAgYWRkV2Vla3MoYW1vdW50OiBudW1iZXIpOiBUaW55RGF0ZSB7XG4gICAgICAgIHJldHVybiBuZXcgVGlueURhdGUoYWRkV2Vla3ModGhpcy5uYXRpdmVEYXRlLCBhbW91bnQpLCB0aGlzLnVzZVRpbWVab25lKTtcbiAgICB9XG5cbiAgICBhZGREYXlzKGFtb3VudDogbnVtYmVyKTogVGlueURhdGUge1xuICAgICAgICByZXR1cm4gbmV3IFRpbnlEYXRlKGFkZERheXModGhpcy5uYXRpdmVEYXRlLCBhbW91bnQpLCB0aGlzLnVzZVRpbWVab25lKTtcbiAgICB9XG4gICAgYWRkSG91cnMoYW1vdW50OiBudW1iZXIpOiBUaW55RGF0ZSB7XG4gICAgICAgIHJldHVybiBuZXcgVGlueURhdGUoYWRkSG91cnModGhpcy5uYXRpdmVEYXRlLCBhbW91bnQpLCB0aGlzLnVzZVRpbWVab25lKTtcbiAgICB9XG5cbiAgICBhZGRTZWNvbmRzKGFtb3VudDogbnVtYmVyKTogVGlueURhdGUge1xuICAgICAgICByZXR1cm4gbmV3IFRpbnlEYXRlKGFkZFNlY29uZHModGhpcy5uYXRpdmVEYXRlLCBhbW91bnQpLCB0aGlzLnVzZVRpbWVab25lKTtcbiAgICB9XG5cbiAgICBhZGRNaW51dGVzKGFtb3VudDogbnVtYmVyKTogVGlueURhdGUge1xuICAgICAgICByZXR1cm4gbmV3IFRpbnlEYXRlKGFkZE1pbnV0ZXModGhpcy5uYXRpdmVEYXRlLCBhbW91bnQpLCB0aGlzLnVzZVRpbWVab25lKTtcbiAgICB9XG5cbiAgICAvLyBpc1NhbWVcblxuICAgIGlzU2FtZShkYXRlOiBUaW55RGF0ZVR5cGUsIGdyYWluOiBUaW55RGF0ZUNvbXBhcmVHcmFpbiA9ICdkYXknKTogYm9vbGVhbiB7XG4gICAgICAgIGxldCBmbjtcbiAgICAgICAgc3dpdGNoIChncmFpbikge1xuICAgICAgICAgICAgY2FzZSAnZGVjYWRlJzpcbiAgICAgICAgICAgICAgICBmbiA9IChwcmU6IERhdGUsIG5leHQ6IERhdGUpID0+IE1hdGguYWJzKHByZS5nZXRGdWxsWWVhcigpIC0gbmV4dC5nZXRGdWxsWWVhcigpKSA8IDExO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAneWVhcic6XG4gICAgICAgICAgICAgICAgZm4gPSBpc1NhbWVZZWFyO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnbW9udGgnOlxuICAgICAgICAgICAgICAgIGZuID0gaXNTYW1lTW9udGg7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdxdWFydGVyJzpcbiAgICAgICAgICAgICAgICBmbiA9IGlzU2FtZVF1YXJ0ZXI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdkYXknOlxuICAgICAgICAgICAgICAgIGZuID0gaXNTYW1lRGF5O1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnaG91cic6XG4gICAgICAgICAgICAgICAgZm4gPSBpc1NhbWVIb3VyO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnbWludXRlJzpcbiAgICAgICAgICAgICAgICBmbiA9IGlzU2FtZU1pbnV0ZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3NlY29uZCc6XG4gICAgICAgICAgICAgICAgZm4gPSBpc1NhbWVTZWNvbmQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGZuID0gaXNTYW1lRGF5O1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmbih0aGlzLm5hdGl2ZURhdGUsIHRoaXMudG9OYXRpdmVEYXRlKGRhdGUpKTtcbiAgICB9XG5cbiAgICBpc1NhbWVZZWFyKGRhdGU6IFRpbnlEYXRlVHlwZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1NhbWUoZGF0ZSwgJ3llYXInKTtcbiAgICB9XG5cbiAgICBpc1NhbWVNb250aChkYXRlOiBUaW55RGF0ZVR5cGUpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNTYW1lKGRhdGUsICdtb250aCcpO1xuICAgIH1cblxuICAgIGlzU2FtZVF1YXJ0ZXIoZGF0ZTogVGlueURhdGVUeXBlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzU2FtZShkYXRlLCAncXVhcnRlcicpO1xuICAgIH1cblxuICAgIGlzU2FtZURheShkYXRlOiBUaW55RGF0ZVR5cGUpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNTYW1lKGRhdGUsICdkYXknKTtcbiAgICB9XG5cbiAgICBpc1NhbWVIb3VyKGRhdGU6IFRpbnlEYXRlVHlwZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1NhbWUoZGF0ZSwgJ2hvdXInKTtcbiAgICB9XG5cbiAgICBpc1NhbWVNaW51dGUoZGF0ZTogVGlueURhdGVUeXBlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzU2FtZShkYXRlLCAnbWludXRlJyk7XG4gICAgfVxuXG4gICAgaXNTYW1lU2Vjb25kKGRhdGU6IFRpbnlEYXRlVHlwZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1NhbWUoZGF0ZSwgJ3NlY29uZCcpO1xuICAgIH1cblxuICAgIC8vIGlzQmVmb3JlIGFuZCBpc0FmdGVyXG4gICAgaXNCZWZvcmVZZWFyKGRhdGU6IFRpbnlEYXRlVHlwZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wYXJlKGRhdGUsICd5ZWFyJyk7XG4gICAgfVxuXG4gICAgaXNCZWZvcmVRdWFydGVyKGRhdGU6IFRpbnlEYXRlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbXBhcmUoZGF0ZSwgJ3F1YXJ0ZXInKTtcbiAgICB9XG5cbiAgICBpc0JlZm9yZU1vbnRoKGRhdGU6IFRpbnlEYXRlVHlwZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wYXJlKGRhdGUsICdtb250aCcpO1xuICAgIH1cblxuICAgIGlzQmVmb3JlV2VlayhkYXRlOiBUaW55RGF0ZVR5cGUpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcGFyZShkYXRlLCAnd2VlaycpO1xuICAgIH1cblxuICAgIGlzQmVmb3JlRGF5KGRhdGU6IFRpbnlEYXRlVHlwZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wYXJlKGRhdGUsICdkYXknKTtcbiAgICB9XG5cbiAgICBpc0JlZm9yZUhvdXIoZGF0ZTogVGlueURhdGVUeXBlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbXBhcmUoZGF0ZSwgJ2hvdXInKTtcbiAgICB9XG5cbiAgICBpc0JlZm9yZU1pbnV0ZShkYXRlOiBUaW55RGF0ZVR5cGUpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcGFyZShkYXRlLCAnbWludXRlJyk7XG4gICAgfVxuXG4gICAgaXNCZWZvcmVTZWNvbmQoZGF0ZTogVGlueURhdGVUeXBlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbXBhcmUoZGF0ZSwgJ3NlY29uZCcpO1xuICAgIH1cblxuICAgIGlzQWZ0ZXJZZWFyKGRhdGU6IFRpbnlEYXRlVHlwZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wYXJlKGRhdGUsICd5ZWFyJywgZmFsc2UpO1xuICAgIH1cblxuICAgIGlzQWZ0ZXJRdWFydGVyKGRhdGU6IFRpbnlEYXRlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbXBhcmUoZGF0ZSwgJ3F1YXJ0ZXInLCBmYWxzZSk7XG4gICAgfVxuXG4gICAgaXNBZnRlck1vbnRoKGRhdGU6IFRpbnlEYXRlVHlwZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wYXJlKGRhdGUsICdtb250aCcsIGZhbHNlKTtcbiAgICB9XG5cbiAgICBpc0FmdGVyV2VlayhkYXRlOiBUaW55RGF0ZVR5cGUpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcGFyZShkYXRlLCAnd2VlaycsIGZhbHNlKTtcbiAgICB9XG5cbiAgICBpc0FmdGVyRGF5KGRhdGU6IFRpbnlEYXRlVHlwZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wYXJlKGRhdGUsICdkYXknLCBmYWxzZSk7XG4gICAgfVxuXG4gICAgaXNBZnRlckhvdXIoZGF0ZTogVGlueURhdGVUeXBlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbXBhcmUoZGF0ZSwgJ2hvdXInLCBmYWxzZSk7XG4gICAgfVxuXG4gICAgaXNBZnRlck1pbnV0ZShkYXRlOiBUaW55RGF0ZVR5cGUpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcGFyZShkYXRlLCAnbWludXRlJywgZmFsc2UpO1xuICAgIH1cblxuICAgIGlzQWZ0ZXJTZWNvbmQoZGF0ZTogVGlueURhdGVUeXBlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbXBhcmUoZGF0ZSwgJ3NlY29uZCcsIGZhbHNlKTtcbiAgICB9XG5cbiAgICAvLyBpc1xuICAgIGlzV2Vla2VuZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGlzV2Vla2VuZCh0aGlzLm5hdGl2ZURhdGUpO1xuICAgIH1cblxuICAgIGlzVG9kYXkoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBpc1RvZGF5KHRoaXMubmF0aXZlRGF0ZSk7XG4gICAgfVxuXG4gICAgaXNUb21vcnJvdygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGlzVG9tb3Jyb3codGhpcy5uYXRpdmVEYXRlKTtcbiAgICB9XG5cbiAgICBpc1ZhbGlkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gaXNWYWxpZCh0aGlzLm5hdGl2ZURhdGUpO1xuICAgIH1cblxuICAgIC8vIHN0YXJ0T2YgYW5kIGVuZE9mXG4gICAgc3RhcnRPZlllYXIoKTogVGlueURhdGUge1xuICAgICAgICByZXR1cm4gbmV3IFRpbnlEYXRlKHN0YXJ0T2ZZZWFyKHRoaXMubmF0aXZlRGF0ZSksIHRoaXMudXNlVGltZVpvbmUpO1xuICAgIH1cblxuICAgIHN0YXJ0T2ZRdWFydGVyKCk6IFRpbnlEYXRlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBUaW55RGF0ZShzdGFydE9mUXVhcnRlcih0aGlzLm5hdGl2ZURhdGUpLCB0aGlzLnVzZVRpbWVab25lKTtcbiAgICB9XG5cbiAgICBzdGFydE9mTW9udGgoKTogVGlueURhdGUge1xuICAgICAgICByZXR1cm4gbmV3IFRpbnlEYXRlKHN0YXJ0T2ZNb250aCh0aGlzLm5hdGl2ZURhdGUpLCB0aGlzLnVzZVRpbWVab25lKTtcbiAgICB9XG5cbiAgICBzdGFydE9mV2VlayhvcHRpb25zPzogeyBsb2NhbGU/OiBMb2NhbGU7IHdlZWtTdGFydHNPbj86IFdlZWtEYXlJbmRleCB9KTogVGlueURhdGUge1xuICAgICAgICByZXR1cm4gbmV3IFRpbnlEYXRlKHN0YXJ0T2ZXZWVrKHRoaXMubmF0aXZlRGF0ZSwgb3B0aW9ucyksIHRoaXMudXNlVGltZVpvbmUpO1xuICAgIH1cblxuICAgIHN0YXJ0T2ZEYXkoKTogVGlueURhdGUge1xuICAgICAgICByZXR1cm4gbmV3IFRpbnlEYXRlKHN0YXJ0T2ZEYXkodGhpcy5uYXRpdmVEYXRlKSwgdGhpcy51c2VUaW1lWm9uZSk7XG4gICAgfVxuXG4gICAgZW5kT2ZZZWFyKCk6IFRpbnlEYXRlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBUaW55RGF0ZShlbmRPZlllYXIodGhpcy5uYXRpdmVEYXRlKSwgdGhpcy51c2VUaW1lWm9uZSk7XG4gICAgfVxuXG4gICAgZW5kT2ZRdWFydGVyKCk6IFRpbnlEYXRlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBUaW55RGF0ZShlbmRPZlF1YXJ0ZXIodGhpcy5uYXRpdmVEYXRlKSwgdGhpcy51c2VUaW1lWm9uZSk7XG4gICAgfVxuXG4gICAgZW5kT2ZNb250aCgpOiBUaW55RGF0ZSB7XG4gICAgICAgIHJldHVybiBuZXcgVGlueURhdGUoZW5kT2ZNb250aCh0aGlzLm5hdGl2ZURhdGUpLCB0aGlzLnVzZVRpbWVab25lKTtcbiAgICB9XG5cbiAgICBlbmRPZldlZWsob3B0aW9ucz86IHsgbG9jYWxlPzogTG9jYWxlOyB3ZWVrU3RhcnRzT24/OiBXZWVrRGF5SW5kZXggfSk6IFRpbnlEYXRlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBUaW55RGF0ZShlbmRPZldlZWsodGhpcy5uYXRpdmVEYXRlLCBvcHRpb25zKSwgdGhpcy51c2VUaW1lWm9uZSk7XG4gICAgfVxuXG4gICAgZW5kT2ZEYXkoKTogVGlueURhdGUge1xuICAgICAgICByZXR1cm4gbmV3IFRpbnlEYXRlKGVuZE9mRGF5KHRoaXMubmF0aXZlRGF0ZSksIHRoaXMudXNlVGltZVpvbmUpO1xuICAgIH1cblxuICAgIC8vIG90aGVyXG4gICAgZm9ybWF0KFxuICAgICAgICBtYXQ6IHN0cmluZyxcbiAgICAgICAgb3B0aW9ucz86IHtcbiAgICAgICAgICAgIGxvY2FsZT86IExvY2FsZTtcbiAgICAgICAgICAgIHdlZWtTdGFydHNPbj86IFdlZWtEYXlJbmRleDtcbiAgICAgICAgICAgIGZpcnN0V2Vla0NvbnRhaW5zRGF0ZT86IEZpcnN0V2Vla0NvbnRhaW5zRGF0ZTtcbiAgICAgICAgICAgIHVzZUFkZGl0aW9uYWxXZWVrWWVhclRva2Vucz86IGJvb2xlYW47XG4gICAgICAgICAgICB1c2VBZGRpdGlvbmFsRGF5T2ZZZWFyVG9rZW5zPzogYm9vbGVhbjtcbiAgICAgICAgfVxuICAgICkge1xuICAgICAgICByZXR1cm4gZm9ybWF0KHRoaXMubmF0aXZlRGF0ZSwgbWF0LCBvcHRpb25zKTtcbiAgICB9XG5cbiAgICBjYWxlbmRhclN0YXJ0KG9wdGlvbnM/OiB7IHdlZWtTdGFydHNPbjogV2Vla0RheUluZGV4IHwgdW5kZWZpbmVkIH0pOiBUaW55RGF0ZSB7XG4gICAgICAgIHJldHVybiBuZXcgVGlueURhdGUoc3RhcnRPZldlZWsoc3RhcnRPZk1vbnRoKHRoaXMubmF0aXZlRGF0ZSksIG9wdGlvbnMpLCB0aGlzLnVzZVRpbWVab25lKTtcbiAgICB9XG5cbiAgICBjbG9uZSgpOiBUaW55RGF0ZSB7XG4gICAgICAgIHJldHVybiBuZXcgVGlueURhdGUodGhpcy5uYXRpdmVEYXRlLCB0aGlzLnVzZVRpbWVab25lKTtcbiAgICB9XG5cbiAgICBnZXRVbml4VGltZSgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gZ2V0VW5peFRpbWUodGhpcy5uYXRpdmVEYXRlKTtcbiAgICB9XG5cbiAgICBjb21wYXJlKGRhdGU6IFRpbnlEYXRlVHlwZSwgZ3JhaW46IFRpbnlEYXRlQ29tcGFyZUdyYWluID0gJ2RheScsIGlzQmVmb3JlOiBib29sZWFuID0gdHJ1ZSk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoZGF0ZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGxldCBmbjtcbiAgICAgICAgc3dpdGNoIChncmFpbikge1xuICAgICAgICAgICAgY2FzZSAneWVhcic6XG4gICAgICAgICAgICAgICAgZm4gPSBkaWZmZXJlbmNlSW5DYWxlbmRhclllYXJzO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAncXVhcnRlcic6XG4gICAgICAgICAgICAgICAgZm4gPSBkaWZmZXJlbmNlSW5DYWxlbmRhclF1YXJ0ZXJzO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnbW9udGgnOlxuICAgICAgICAgICAgICAgIGZuID0gZGlmZmVyZW5jZUluQ2FsZW5kYXJNb250aHM7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdkYXknOlxuICAgICAgICAgICAgICAgIGZuID0gZGlmZmVyZW5jZUluQ2FsZW5kYXJEYXlzO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnd2Vlayc6XG4gICAgICAgICAgICAgICAgZm4gPSBkaWZmZXJlbmNlSW5XZWVrcztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2hvdXInOlxuICAgICAgICAgICAgICAgIGZuID0gZGlmZmVyZW5jZUluSG91cnM7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdtaW51dGUnOlxuICAgICAgICAgICAgICAgIGZuID0gZGlmZmVyZW5jZUluTWludXRlcztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3NlY29uZCc6XG4gICAgICAgICAgICAgICAgZm4gPSBkaWZmZXJlbmNlSW5TZWNvbmRzO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBmbiA9IGRpZmZlcmVuY2VJbkNhbGVuZGFyRGF5cztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXNCZWZvcmUgPyBmbih0aGlzLm5hdGl2ZURhdGUsIHRoaXMudG9OYXRpdmVEYXRlKGRhdGUpKSA8IDAgOiBmbih0aGlzLm5hdGl2ZURhdGUsIHRoaXMudG9OYXRpdmVEYXRlKGRhdGUpKSA+IDA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB0b05hdGl2ZURhdGUoZGF0ZTogYW55KTogRGF0ZSB7XG4gICAgICAgIHJldHVybiBkYXRlIGluc3RhbmNlb2YgVGlueURhdGUgPyBkYXRlLm5hdGl2ZURhdGUgOiBkYXRlO1xuICAgIH1cblxuICAgIHN0YXJ0T2ZJU09XZWVrKCk6IFRpbnlEYXRlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBUaW55RGF0ZShzdGFydE9mSVNPV2Vlayh0aGlzLm5hdGl2ZURhdGUpLCB0aGlzLnVzZVRpbWVab25lKTtcbiAgICB9XG5cbiAgICBlbmRPZklTT1dlZWsoKTogVGlueURhdGUge1xuICAgICAgICByZXR1cm4gbmV3IFRpbnlEYXRlKGVuZE9mSVNPV2Vlayh0aGlzLm5hdGl2ZURhdGUpLCB0aGlzLnVzZVRpbWVab25lKTtcbiAgICB9XG5cbiAgICBkaWZmZXJlbmNlSW5EYXlzKGRhdGU6IERhdGUpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gZGlmZmVyZW5jZUluRGF5cyh0aGlzLm5hdGl2ZURhdGUsIGRhdGUpO1xuICAgIH1cblxuICAgIGRpZmZlcmVuY2VJbkhvdXJzKGRhdGU6IERhdGUpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gZGlmZmVyZW5jZUluSG91cnModGhpcy5uYXRpdmVEYXRlLCBkYXRlKTtcbiAgICB9XG5cbiAgICBzdWJXZWVrcyhhbW91bnQ6IG51bWJlcik6IFRpbnlEYXRlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBUaW55RGF0ZShzdWJXZWVrcyh0aGlzLm5hdGl2ZURhdGUsIGFtb3VudCksIHRoaXMudXNlVGltZVpvbmUpO1xuICAgIH1cblxuICAgIHN1YkRheXMoYW1vdW50OiBudW1iZXIpOiBUaW55RGF0ZSB7XG4gICAgICAgIHJldHVybiBuZXcgVGlueURhdGUoc3ViRGF5cyh0aGlzLm5hdGl2ZURhdGUsIGFtb3VudCksIHRoaXMudXNlVGltZVpvbmUpO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,3 +1,3 @@
1
1
  import { Version } from '@angular/core';
2
- export const VERSION = new Version('18.2.11');
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEMsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmVyc2lvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY29uc3QgVkVSU0lPTiA9IG5ldyBWZXJzaW9uKCcxOC4yLjExJyk7XG4iXX0=
2
+ export const VERSION = new Version('18.2.13');
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEMsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmVyc2lvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY29uc3QgVkVSU0lPTiA9IG5ldyBWZXJzaW9uKCcxOC4yLjEzJyk7XG4iXX0=
@@ -1291,7 +1291,7 @@ class ThyCascader extends TabIndexDisabledControlValueAccessorMixin {
1291
1291
  this.ngZone.runOutsideAngular(() => {
1292
1292
  this.resizeSubscription = new Observable(observer => {
1293
1293
  const resize = new ResizeObserver((entries) => {
1294
- observer.next();
1294
+ observer.next(entries);
1295
1295
  });
1296
1296
  resize.observe(this.trigger.nativeElement);
1297
1297
  }).subscribe(() => {