ets-fe-ng-sdk 17.0.62 → 17.0.63

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.
@@ -214,4 +214,4 @@ FormArray.prototype.getFormattedValue = function () {
214
214
  FormControl.prototype.getFormattedValue = function () {
215
215
  return this.formattedValue;
216
216
  };
217
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdG90eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvcHJvdG90eXBlcy9wcm90b3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBbUIsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBNkp0QyxvQkFBb0I7QUFDcEIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEdBQUcsVUFBd0IsU0FBUyxHQUFHLEdBQUc7SUFDbEUsT0FBTyxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQzVDLENBQUMsQ0FBQztBQUNGLE1BQU0sQ0FBQyxTQUFTLENBQUMsYUFBYSxHQUFHLFVBQXdCLFNBQVMsR0FBRyxHQUFHO0lBQ3RFLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLEdBQUcsQ0FBQyxDQUFDLElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDckYsQ0FBQyxDQUFDO0FBQ0YsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsVUFBd0IsU0FBUyxHQUFHLEdBQUcsRUFBRSxXQUFXLEdBQUcsRUFBRTtJQUNqRixJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUM7SUFDWixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUNwQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEIsRUFBRSxJQUFJLENBQUMsSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0tBQy9CO0lBQ0QsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUMvQyxDQUFDLENBQUM7QUFDRixNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsR0FBRztJQUNoQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ3pDLENBQUMsQ0FBQztBQUNGLE1BQU0sQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLEdBQUcsVUFBd0IsU0FBUyxHQUFHLEdBQUcsRUFBRSxXQUFXLEdBQUcsRUFBRTtJQUMzRixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQ2pELENBQUMsQ0FBQztBQUNGLE1BQU0sQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLEdBQUcsVUFBd0IsU0FBaUIsRUFBRSxjQUFzQjtJQUNuRyxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksY0FBYztRQUFFLE9BQU8sSUFBSSxDQUFDO0lBQy9DLE9BQU8sU0FBUyxDQUFDLE1BQU0sQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQztBQUMvRCxDQUFDLENBQUM7QUFDRixZQUFZO0FBRVosbUJBQW1CO0FBQ25CLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHO0lBQ3RCLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUNYLEtBQUssTUFBTSxDQUFDLElBQUksSUFBSSxFQUFFO1FBQ3BCLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDUjtJQUNELE9BQU8sQ0FBQyxDQUFDO0FBQ1gsQ0FBQyxDQUFDO0FBQ0YsS0FBSyxDQUFDLFNBQVMsQ0FBQyxZQUFZLEdBQUcsVUFBNkIsS0FBSyxHQUFHLENBQUM7SUFDbkUsT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQzFDLENBQUMsQ0FBQztBQUNGLEtBQUssQ0FBQyxTQUFTLENBQUMsUUFBUSxHQUFHO0lBQ3pCLE9BQU8sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0FBQzdCLENBQUMsQ0FBQztBQUNGLEtBQUssQ0FBQyxTQUFTLENBQUMsaUJBQWlCLEdBQUcsVUFBNkIsS0FBYyxFQUFFLFVBQW1CLEtBQUs7SUFDdkcsSUFBSSxPQUFPLEVBQUU7UUFDWCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFZLENBQUMsRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBWSxDQUFDLEVBQUUsTUFBTSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDdEg7U0FBTTtRQUNMLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQVksQ0FBQyxFQUFFLE1BQU0sSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFZLENBQUMsRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUN0SDtBQUNILENBQUMsQ0FBQztBQUNGLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLFVBQTZCLEtBQWMsRUFBRSxXQUFvQixLQUFLLEVBQUUsVUFBbUIsS0FBSztJQUN0SCxJQUFJLE9BQU87UUFDVCxPQUFPLFFBQVE7WUFDYixDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDeEcsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDOztRQUVsRyxPQUFPLFFBQVE7WUFDYixDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDeEcsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFD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QUFFLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztTQUMzRztJQUNILE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyxDQUFDO0FBQ0YsU0FBUyxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsR0FBRztJQUN0QyxNQUFNLElBQUksR0FBRyxFQUFFLENBQUM7SUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRO1FBQUUsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDOztRQUU3QyxLQUFLLE1BQU0sT0FBTyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbkMsSUFBSSxDQUFDLElBQUksQ0FBMkIsT0FBUSxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQztTQUNuRTtJQUNILE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyxDQUFDO0FBQ0YsV0FBVyxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsR0FBRztJQUN4QyxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7QUFDN0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQXJyYXksIEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBjbG9uZURlZXAgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBTdHJpbmcge1xuICAgIHN0cmlwQ2hhcihjaGFyYWN0ZXI/OiBzdHJpbmcpOiBzdHJpbmc7XG4gICAgbGFzdFN0cmlwQ2hhcihjaGFyYWN0ZXI/OiBzdHJpbmcpOiBzdHJpbmc7XG4gICAgdW5DaGFyKGNoYXJhY3Rlcj86IHN0cmluZywgcmVwbGFjZW1lbnQ/OiBzdHJpbmcpOiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogQ29udmVydHMgUGFzY2FsIGNhc2UgdG8gU2VudGVuY2UgY2FzZVxuICAgICAqIEBleGFtcGxlICdzbWFsbEJvb2snLnRvU2VudGVuY2VDYXNlKCkgPSAnU21hbGwgQm9vaydcbiAgICAgKi9cbiAgICB0b1NlbnRlbmNlQ2FzZSgpOiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogUmVwbGFjZXMgYWxsIG9jY3VycmVuY2VzIG9mIGEgc3Vic3RyaW5nXG4gICAgICogQHJldHVybnMgVGhlIHN0cmluZyBhZnRlciByZXBsYWNlbWVudFxuICAgICAqL1xuICAgIHJlcGxhY2VBbGxTdWJTdHIoY2hhcmFjdGVyPzogc3RyaW5nLCByZXBsYWNlbWVudD86IHN0cmluZyk6IHN0cmluZztcbiAgICAvKipcbiAgICAgKlxuICAgICAqIEBwYXJhbSBjaGFyYWN0ZXIgQ2hhcmFjdGVyIHRvIGFkZCBiZWZvcmUgc3RyaW5nXG4gICAgICogQHBhcmFtIGV4cGVjdGVkTGVuZ3RoIEV4cGVjdGVkIGxlbmd0aCBvZiB0aGUgc3RyaW5nIGFmdGVyIGFkZGl0aW9uIG9mIHRoZSBjaGFyYWN0ZXJcbiAgICAgKi9cbiAgICBhZGRQcmVjZWRpbmdDaGFyKGNoYXJhY3Rlcjogc3RyaW5nLCBleHBlY3RlZExlbmd0aDogbnVtYmVyKTogc3RyaW5nO1xuICB9XG5cbiAgaW50ZXJmYWNlIEFycmF5PFQ+IHtcbiAgICBtZXJnZSgpOiBUO1xuICAgIC8qKlxuICAgICAqIEBwYXJhbSBpbmRleCBUaGUgaW5kZXggdG8gc2VsZWN0IGZyb20gdGhlIGVuZC5cbiAgICAgKiBAZGVmYXVsdFZhbHVlIDBcbiAgICAgKiBAZXhhbXBsZSBbJ2EnLCdiJywnYyddLnJldmVyc2VJbmRleCgxKSByZXR1cm5zICdiJ1xuICAgICAqIEBleGFtcGxlIFsnYScsJ2InLCdjJywnZCcsJ2UnXS5yZXZlcnNlSW5kZXgoMikgcmV0dXJucyAnYydcbiAgICAgKi9cbiAgICByZXZlcnNlSW5kZXgoaW5kZXg/OiBudW1iZXIpOiBUO1xuICAgIGxhc3RJdGVtKCk6IFQ7XG4gICAgLyoqXG4gICAgICogU2h1ZmZsZXMgdGhlIGNvbnRlbnQgb2YgYW4gYXJyYXlcbiAgICAgKi9cbiAgICBzaHVmZmxlKCk6IFRbXTtcblxuICAgIC8qKlxuICAgICAqIFNvcnQgYnkgdGhlIGxlbmd0aCBvZiB0aGUgZmllbGQgc3BlY2lmaWVkIGluIGFzY2VuZGluZyBvcmRlclxuICAgICAqIEBwYXJhbSBmaWVsZCBGaWVsZCBuYW1lIHRvIGNvbXBhcmUgd2l0aFxuICAgICAqIEBwYXJhbSByZXZlcnNlIFNob3VsZCBpdCBiZSBpbiBhIGRlc2NlbmRpbmcgb3JkZXJcbiAgICAgKi9cbiAgICBzb3J0QnlGaWVsZExlbmd0aChmaWVsZDoga2V5b2YgVCwgcmV2ZXJzZT86IGJvb2xlYW4pOiBUW107XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEBwYXJhbSBmaWVsZCBGaWVsZCBuYW1lIHRvIGNvbXBhcmUgd2l0aFxuICAgICAqIEBwYXJhbSBpc1N0cmluZyBJcyB0aGUgZGF0YSB0eXBlIG9mIHRoZSBmaWVsZCBhIHN0cmluZ1xuICAgICAqIEBwYXJhbSByZXZlcnNlIFNob3VsZCBpdCBiZSBpbiBhIGRlc2NlbmRpbmcgb3JkZXJcbiAgICAgKi9cbiAgICBzb3J0MihmaWVsZDoga2V5b2YgVCwgaXNTdHJpbmc/OiBib29sZWFuLCByZXZlcnNlPzogYm9vbGVhbik6IFRbXTtcbiAgICAvKipcbiAgICAgKiBEZXRlY3RzIHRoZSBkYXRhIHR5cGUgb2YgdGhlIGZpZWxkIHRvIHNvcnQgYnlcbiAgICAgKiBAcGFyYW0gZmllbGQgRmllbGQgbmFtZSB0byBjb21wYXJlIHdpdGhcbiAgICAgKiBAcGFyYW0gcmV2ZXJzZSBTaG91bGQgaXQgYmUgaW4gYSBkZXNjZW5kaW5nIG9yZGVyXG4gICAgICovXG4gICAgc29ydDMoZmllbGQ6IGtleW9mIFQsIHJldmVyc2U/OiBib29sZWFuKTogVFtdO1xuICAgIC8qKlxuICAgICAqIFJlbW92ZSBpdGVtcyBmcm9tIGFuIGFycmF5IHRoYXQgZG9uJ3QgaGF2ZSB2YWx1ZXMgaW4gYW55IG9mIGl0cyBmaWVsZHNcbiAgICAgKiBAcGFyYW0gZXhwZWN0ZWRGaWVsZHMgRmllbGRzIHRvIGNoZWNrIGZvciBlbXB0aW5lc3MsIHRoZSBmdW5jdGlvbiB3aWxsIHJlbW92ZSB0aGUgaXRlbXMgdGhhdCBkb24ndCBoYXZlIGFueSB2YWx1ZSBpbiBhbGwgdGhlIGZpZWxkcyBzcGVjaWZpZWRcbiAgICAgKi9cbiAgICByZW1vdmVFbXB0eUl0ZW1zKFxuICAgICAgZXhwZWN0ZWRGaWVsZHM/OiAoa2V5b2YgVClbXSxcbiAgICAgIGNvbmZpZz86IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFNwZWNpZnkgd2hldGhlciB0byBjaGVjayB0aGUgdmFsdWUgaW4gYm9vbGVhbiBmaWVsZHMuXG4gICAgICAgICAqIEBkZWZhdWx0VmFsdWUgYGZhbHNlYFxuICAgICAgICAgKi9cbiAgICAgICAgaWdub3JlQm9vbGVhbkZpZWxkcz86IGJvb2xlYW47XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBTcGVjaWZ5IHdoZXRoZXIgdG8gY2hlY2sgZm9yIGVtcHRpbmVzcyBpbiB0aGUgJ2V4cGVjdGVkRmllbGRzJyBvciBjaGVjayBmb3IgZW1wdGluZXNzIGluIHRoZSBvdGhlciBmaWVsZHMgZXhjbHVkaW5nIHRoZSBmaWVsZHMgc3BlY2lmaWVkXG4gICAgICAgICAqIEBkZWZhdWx0VmFsdWUgYGluY2x1ZGVkYFxuICAgICAgICAgKi9cbiAgICAgICAgZmllbGRzVHlwZT86ICdpbmNsdWRlZCcgfCAnZXhjbHVkZWQnO1xuICAgICAgfSxcbiAgICApOiBUW107XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyBhbiBhcnJheSB0byBhIGtleSB2YWx1ZSBwYWlyLlxuICAgICAqIEBwYXJhbSBhcnIgQXJyYXkgdG8gYmUgY29udmVydGVkXG4gICAgICogQHBhcmFtIGtleUZpZWxkIFRoZSBmaWVsZCB0byBiZSB1c2VkIGFzIHRoZSBrZXlcbiAgICAgKiBAcmV0dXJucyBBbiBpbmRleCBvYmplY3QgY29udGFpbmluZyB0aGUga2V5RmllbGQgYXMgdGhlIGluZGV4IGtleSBhbmQgZWFjaCBpdGVtIG9mIHRoZSBhcnJheSBhcyB2YWx1ZSBhc3NpZ25lZCB0byBlYWNoIGluZGV4XG4gICAgICovXG4gICAgdG9NYXAoa2V5RmllbGQ6IGtleW9mIFQpOiB7IFt4OiBzdHJpbmddOiBUIH07XG4gICAgdG9NYXA8TlQ+KGtleUZpZWxkOiBrZXlvZiBULCBtYXA6IChpdGVtOiBUKSA9PiBOVCk6IHsgW3g6IHN0cmluZ106IE5UIH07XG4gICAgdG9NYXA8TlQ+KGtleUZpZWxkOiBrZXlvZiBULCBtYXA/OiAoaXRlbTogVCkgPT4gTlQpO1xuXG4gICAgLyoqXG4gICAgICogR3JvdXBzIGFuIGFycmF5IGJ5IHVuaXF1ZSBlbnRyaWVzIGluIGEgZmllbGQuXG4gICAgICogQHBhcmFtIGFyciBBcnJheSB0byBiZSBncm91cGVkXG4gICAgICogQHBhcmFtIGtleUZpZWxkIFRoZSBmaWVsZCB0byBiZSB1c2VkIGFzIHRoZSBrZXlcbiAgICAgKi9cbiAgICBncm91cEJ5KGtleUZpZWxkOiBrZXlvZiBULCBrZXlNYXA/OiAodmFsdWU6IFQpID0+IHN0cmluZyk6IHsgW3g6IHN0cmluZ106IFRbXSB9O1xuXG4gICAgLyoqXG4gICAgICogVHVybnMgYW4gYXJyYXkgdG8gYSBtYXAuXG4gICAgICovXG4gICAgdG9Cb29sZWFuTWFwKCk6IHsgW3g6IHN0cmluZ106IGJvb2xlYW4gfTtcbiAgfVxuICBpbnRlcmZhY2UgRnVuY3Rpb24ge1xuICAgIGNsb25lOiBhbnk7XG4gIH1cbn1cbmRlY2xhcmUgbW9kdWxlICdAYW5ndWxhci9mb3Jtcycge1xuICBpbnRlcmZhY2UgRm9ybUFycmF5PFRDb250cm9sIGV4dGVuZHMgQWJzdHJhY3RDb250cm9sPGFueT4gPSBhbnk+XG4gICAgZXh0ZW5kcyBBYnN0cmFjdENvbnRyb2w8ybVUeXBlZE9yVW50eXBlZDxUQ29udHJvbCwgybVGb3JtQXJyYXlWYWx1ZTxUQ29udHJvbD4sIGFueT4sIMm1VHlwZWRPclVudHlwZWQ8VENvbnRyb2wsIMm1Rm9ybUFycmF5UmF3VmFsdWU8VENvbnRyb2w+LCBhbnk+PiB7XG4gICAgY0Zvcm1TdHJ1Y3R1cmU6IFRDb250cm9sO1xuICAgIGNBZGRJdGVtKGluZGV4PzogbnVtYmVyLCBkYXRhPzogVENvbnRyb2wpOiBGb3JtQXJyYXk8VENvbnRyb2w+O1xuICAgIC8qKlxuICAgICAqIEhhbmRsZXMgdGhlIGRlbGV0aW9uIG9mIHJvd3MgZnJvbSBhIEZvcm1BcnJheVxuICAgICAqIEBwYXJhbSBpbmRleCBJbmRleCBvZiB0aGUgcm93IHRvIGRlbGV0ZVxuICAgICAqIEBwYXJhbSBmYSBUaGUgRm9ybUFycmF5IHRoYXQgaG9sZHMgdGhlIHJvd3NcbiAgICAgKiBAcGFyYW0gZGVsZXRlU2VydmljZSBUaGUgZGVsZXRpb24gc2VydmljZSB0byBiZSBjYWxsZWQgKEl0IHNob3VsZCBiZSBhbiBhbm9ueW1vdXMgZnVuY3Rpb24pXG4gICAgICogQHBhcmFtIGFkZFJvd0Z1bmMgVGhlIGZ1bmN0aW9uIChhbm9ueW1vdXMpIHRoYXQgYWRkcyBhIG5ldyByb3cgdG8gdGhlIEZvcm1BcnJheVxuICAgICAqIEBwYXJhbSBlbWl0RXZlbnQgU3BlY2lmeSB3aGV0aGVyIHRvIGVtaXQgYW4gZXZlbnQgd2hlbiBtYW5pcHVsYXRpbmcgdGhlIEZvcm1BcnJheVxuICAgICAqIEByZXR1cm5zXG4gICAgICovXG4gICAgY1JlbW92ZUl0ZW0oXG4gICAgICBpbmRleDogbnVtYmVyLFxuICAgICAgZGVsZXRlU2VydmljZT86ICguLi5hcmdzKSA9PiBQcm9taXNlPGFueT4gfCBPYnNlcnZhYmxlPGFueT4sXG4gICAgICBhZGRSb3dGdW5jPzogKC4uLmFyZ3MpID0+IGFueSxcbiAgICAgIGVtaXRFdmVudD86IGJvb2xlYW4sXG4gICAgKTogUHJvbWlzZTxGb3JtQXJyYXk8VENvbnRyb2w+PjtcbiAgfVxuICBleHBvcnQgaW50ZXJmYWNlIEFic3RyYWN0Q29udHJvbCB7XG4gICAgZm9ybWF0dGVkVmFsdWU/OiBhbnk7XG4gICAgbGFiZWxWYWx1ZT86IHN0cmluZztcbiAgICBnZXRGb3JtYXR0ZWRWYWx1ZTogKCkgPT4gYW55O1xuICB9XG4gIGV4cG9ydCBpbnRlcmZhY2UgRm9ybUNvbnRyb2wge1xuICAgIGZvcm1hdHRlZFZhbHVlPzogc3RyaW5nO1xuICAgIGxhYmVsVmFsdWU/OiBzdHJpbmc7XG4gICAgZ2V0Rm9ybWF0dGVkVmFsdWU6ICgpID0+IHN0cmluZztcbiAgfVxuICBleHBvcnQgaW50ZXJmYWNlIEZvcm1Hcm91cCB7XG4gICAgZm9ybWF0dGVkVmFsdWU/OiB7IFt4OiBzdHJpbmddOiBzdHJpbmdbXSB8IHsgW3g6IHN0cmluZ106IHN0cmluZyB9W10gfTtcbiAgICBnZXRGb3JtYXR0ZWRWYWx1ZTogKCkgPT4geyBbeDogc3RyaW5nXTogc3RyaW5nW10gfCB7IFt4OiBzdHJpbmddOiBzdHJpbmcgfVtdIH07XG4gIH1cbiAgZXhwb3J0IGludGVyZmFjZSBGb3JtQXJyYXkge1xuICAgIGZvcm1hdHRlZFZhbHVlPzogc3RyaW5nW10gfCB7IFt4OiBzdHJpbmddOiBzdHJpbmcgfVtdO1xuICAgIGdldEZvcm1hdHRlZFZhbHVlOiAoKSA9PiBzdHJpbmdbXSB8IHsgW3g6IHN0cmluZ106IHN0cmluZyB9W107XG4gIH1cbn1cblxuZGVjbGFyZSBtb2R1bGUgJ0Bhbmd1bGFyL3JvdXRlcicge1xuICBpbnRlcmZhY2UgUm91dGUge1xuICAgIGN1c3RvbURhdGE/OiB7XG4gICAgICBtaUlEPzogc3RyaW5nO1xuICAgICAgdGl0bGU/OiBzdHJpbmc7XG4gICAgfTtcbiAgfVxufVxuXG4vLyNyZWdpb24gIHN0cmluZyAqL1xuU3RyaW5nLnByb3RvdHlwZS5zdHJpcENoYXIgPSBmdW5jdGlvbiAodGhpczogc3RyaW5nLCBjaGFyYWN0ZXIgPSAnLycpIHtcbiAgcmV0dXJuICh0aGlzICsgJycpLnJlcGxhY2UoY2hhcmFjdGVyLCAnJyk7XG59O1xuU3RyaW5nLnByb3RvdHlwZS5sYXN0U3RyaXBDaGFyID0gZnVuY3Rpb24gKHRoaXM6IHN0cmluZywgY2hhcmFjdGVyID0gJy8nKSB7XG4gIHJldHVybiB0aGlzW3RoaXM/Lmxlbmd0aCAtIDFdID09IGNoYXJhY3RlciA/IHRoaXMuc2xpY2UoMCwgdGhpcy5sZW5ndGggLSAxKSA6IHRoaXM7XG59O1xuU3RyaW5nLnByb3RvdHlwZS51bkNoYXIgPSBmdW5jdGlvbiAodGhpczogc3RyaW5nLCBjaGFyYWN0ZXIgPSAnLycsIHJlcGxhY2VtZW50ID0gJycpIHtcbiAgbGV0IHRlID0gJyc7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGUgPSB0aGlzW2ldO1xuICAgIHRlICs9IGUgIT0gY2hhcmFjdGVyID8gZSA6ICcnO1xuICB9XG4gIHJldHVybiB0ZS5zcGxpdChjaGFyYWN0ZXIpLmpvaW4ocmVwbGFjZW1lbnQpO1xufTtcblN0cmluZy5wcm90b3R5cGUudG9TZW50ZW5jZUNhc2UgPSBmdW5jdGlvbiAodGhpczogc3RyaW5nKSB7XG4gIHJldHVybiB0aGlzLnJlcGxhY2UoLyhbQS1aXSkvZywgJyAkMScpO1xufTtcblN0cmluZy5wcm90b3R5cGUucmVwbGFjZUFsbFN1YlN0ciA9IGZ1bmN0aW9uICh0aGlzOiBzdHJpbmcsIGNoYXJhY3RlciA9ICcvJywgcmVwbGFjZW1lbnQgPSAnJykge1xuICByZXR1cm4gdGhpcy5zcGxpdChjaGFyYWN0ZXIpLmpvaW4ocmVwbGFjZW1lbnQpO1xufTtcblN0cmluZy5wcm90b3R5cGUuYWRkUHJlY2VkaW5nQ2hhciA9IGZ1bmN0aW9uICh0aGlzOiBzdHJpbmcsIGNoYXJhY3Rlcjogc3RyaW5nLCBleHBlY3RlZExlbmd0aDogbnVtYmVyKSB7XG4gIGlmICh0aGlzLmxlbmd0aCA+PSBleHBlY3RlZExlbmd0aCkgcmV0dXJuIHRoaXM7XG4gIHJldHVybiBjaGFyYWN0ZXIucmVwZWF0KGV4cGVjdGVkTGVuZ3RoIC0gdGhpcy5sZW5ndGgpICsgdGhpcztcbn07XG4vLyNlbmRyZWdpb25cblxuLy8jcmVnaW9uICBhcnJheSAqL1xuQXJyYXkucHJvdG90eXBlLm1lcmdlID0gZnVuY3Rpb24gPFQ+KHRoaXM6IEFycmF5PFQ+KSB7XG4gIGxldCByID0gJyc7XG4gIGZvciAoY29uc3QgaSBvZiB0aGlzKSB7XG4gICAgciArPSBpO1xuICB9XG4gIHJldHVybiByO1xufTtcbkFycmF5LnByb3RvdHlwZS5yZXZlcnNlSW5kZXggPSBmdW5jdGlvbiA8VD4odGhpczogQXJyYXk8VD4sIGluZGV4ID0gMCkge1xuICByZXR1cm4gdGhpc1t0aGlzPy5sZW5ndGggLSAoMSArIGluZGV4KV07XG59O1xuQXJyYXkucHJvdG90eXBlLmxhc3RJdGVtID0gZnVuY3Rpb24gPFQ+KHRoaXM6IEFycmF5PFQ+KSB7XG4gIHJldHVybiB0aGlzLnJldmVyc2VJbmRleCgpO1xufTtcbkFycmF5LnByb3RvdHlwZS5zb3J0QnlGaWVsZExlbmd0aCA9IGZ1bmN0aW9uIDxUPih0aGlzOiBBcnJheTxUPiwgZmllbGQ6IGtleW9mIFQsIHJldmVyc2U6IGJvb2xlYW4gPSBmYWxzZSkge1xuICBpZiAocmV2ZXJzZSkge1xuICAgIHJldHVybiB0aGlzLmZpbHRlcigoeCkgPT4geCAhPSBudWxsKS5zb3J0KChiLCBhKSA9PiAoYVtmaWVsZCBhcyBhbnldPy5sZW5ndGggfHwgMCkgLSAoYltmaWVsZCBhcyBhbnldPy5sZW5ndGggfHwgMCkpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiB0aGlzLmZpbHRlcigoeCkgPT4geCAhPSBudWxsKS5zb3J0KChhLCBiKSA9PiAoYVtmaWVsZCBhcyBhbnldPy5sZW5ndGggfHwgMCkgLSAoYltmaWVsZCBhcyBhbnldPy5sZW5ndGggfHwgMCkpO1xuICB9XG59O1xuQXJyYXkucHJvdG90eXBlLnNvcnQyID0gZnVuY3Rpb24gPFQ+KHRoaXM6IEFycmF5PFQ+LCBmaWVsZDoga2V5b2YgVCwgaXNTdHJpbmc6IGJvb2xlYW4gPSBmYWxzZSwgcmV2ZXJzZTogYm9vbGVhbiA9IGZhbHNlKSB7XG4gIGlmIChyZXZlcnNlKVxuICAgIHJldHVybiBpc1N0cmluZ1xuICAgICAgPyB0aGlzLmZpbHRlcigoeCkgPT4geCAhPSBudWxsKS5zb3J0KChiLCBhKSA9PiBzb3J0QWxwaGFOdW0oYVtmaWVsZF0/LnRvU3RyaW5nKCksIGJbZmllbGRdPy50b1N0cmluZygpKSlcbiAgICAgIDogdGhpcy5maWx0ZXIoKHgpID0+IHggIT0gbnVsbCkuc29ydCgoYiwgYSkgPT4gKGFbZmllbGQgYXMgYW55XSB8fCAwKSAtIChiW2ZpZWxkIGFzIGFueV0gfHwgMCkpO1xuICBlbHNlXG4gICAgcmV0dXJuIGlzU3RyaW5nXG4gICAgICA/IHRoaXMuZmlsdGVyKCh4KSA9PiB4ICE9IG51bGwpLnNvcnQoKGEsIGIpID0+IHNvcnRBbHBoYU51bShhW2ZpZWxkXT8udG9TdHJpbmcoKSwgYltmaWVsZF0/LnRvU3RyaW5nKCkpKVxuICAgICAgOiB0aGlzLmZpbHRlcigoeCkgPT4geCAhPSBudWxsKS5zb3J0KChhLCBiKSA9PiAoYVtmaWVsZCBhcyBhbnldIHx8IDApIC0gKGJbZmllbGQgYXMgYW55XSB8fCAwKSk7XG59O1xuQXJyYXkucHJvdG90eXBlLnNvcnQzID0gZnVuY3Rpb24gPFQ+KHRoaXM6IEFycmF5PFQ+LCBmaWVsZDoga2V5b2YgVCwgcmV2ZXJzZTogYm9vbGVhbiA9IGZhbHNlKSB7XG4gIGxldCBpc1N0cmluZzogYm9vbGVhbiA9IHRoaXMuc29tZSgoeCkgPT4gaXNOYU4oeFtmaWVsZF0gYXMgYW55KSk7XG4gIHJldHVybiBpc1N0cmluZyA/IHRoaXMuc29ydDIoZmllbGQsIHRydWUsIHJldmVyc2UpIDogdGhpcy5zb3J0MihmaWVsZCwgZmFsc2UsIHJldmVyc2UpO1xufTtcbnZhciByZUEgPSAvW15hLXpBLVpdL2c7XG52YXIgcmVOID0gL1teMC05XS9nO1xuXG5mdW5jdGlvbiBzb3J0QWxwaGFOdW0oYTogc3RyaW5nLCBiOiBzdHJpbmcpIHtcbiAgdmFyIGFBID0gYT8udG9VcHBlckNhc2UoKT8ucmVwbGFjZShyZUEsICcnKTtcbiAgdmFyIGJBID0gYj8udG9VcHBlckNhc2UoKT8ucmVwbGFjZShyZUEsICcnKTtcbiAgaWYgKGFBID09PSBiQSkge1xuICAgIHZhciBhTiA9IHBhcnNlSW50KGE/LnJlcGxhY2UocmVOLCAnJyksIDEwKTtcbiAgICB2YXIgYk4gPSBwYXJzZUludChiPy5yZXBsYWNlKHJlTiwgJycpLCAxMCk7XG4gICAgcmV0dXJuIGFOID09PSBiTiA/IDAgOiBhTiA+IGJOID8gMSA6IC0xO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBhQSA+IGJBID8gMSA6IC0xO1xuICB9XG59XG5cbkFycmF5LnByb3RvdHlwZS5yZW1vdmVFbXB0eUl0ZW1zID0gZnVuY3Rpb24gPFQ+KFxuICB0aGlzOiBBcnJheTxUPixcbiAgZXhwZWN0ZWRGaWVsZHM/OiAoa2V5b2YgVClbXSxcbiAgY29uZmlnPzoge1xuICAgIGlnbm9yZUJvb2xlYW5GaWVsZHM/OiBib29sZWFuO1xuICAgIGZpZWxkc1R5cGU/OiAnaW5jbHVkZWQnIHwgJ2V4Y2x1ZGVkJztcbiAgfSxcbikge1xuICAvLyBkZWJ1Z2dlcjtcbiAgY29uc3QgaWdub3JlQm9vbGVhbkZpZWxkcyA9IGNvbmZpZz8uaWdub3JlQm9vbGVhbkZpZWxkcyA9PSB0cnVlO1xuICBjb25zdCBmaWVsZHNUeXBlID0gY29uZmlnPy5maWVsZHNUeXBlIHx8ICdpbmNsdWRlZCc7XG4gIGlmICghdGhpcy5sZW5ndGgpIHJldHVybiB0aGlzO1xuICBsZXQgZmllbGRMaXN0OiBzdHJpbmdbXTtcbiAgaWYgKGZpZWxkc1R5cGUgPT0gJ2luY2x1ZGVkJykgZmllbGRMaXN0ID0gZXhwZWN0ZWRGaWVsZHM/Lmxlbmd0aCA/IChleHBlY3RlZEZpZWxkcyBhcyBzdHJpbmdbXSkgOiBPYmplY3Qua2V5cyh0aGlzWzBdKTtcbiAgZWxzZSBpZiAoZmllbGRzVHlwZSA9PSAnZXhjbHVkZWQnKVxuICAgIGZpZWxkTGlzdCA9IGV4cGVjdGVkRmllbGRzPy5sZW5ndGggPyBPYmplY3Qua2V5cyh0aGlzWzBdKS5maWx0ZXIoKHgpID0+ICFleHBlY3RlZEZpZWxkcy5pbmNsdWRlcyh4IGFzIGFueSkpIDogT2JqZWN0LmtleXModGhpc1swXSk7XG4gIGNvbnN0IHJlbW92ZWRJdGVtczogVFtdID0gW107XG4gIGlmIChmaWVsZExpc3QpIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChpZ25vcmVCb29sZWFuRmllbGRzICYmIGkgPT0gMCkge1xuICAgICAgICBmaWVsZExpc3QgPSBmaWVsZExpc3QuZmlsdGVyKChmKSA9PiB0eXBlb2YgdGhpc1swXVtmXSAhPSAnYm9vbGVhbicpO1xuICAgICAgfVxuICAgICAgY29uc3QgaXRlbSA9IHRoaXNbaV07XG4gICAgICBpZiAoZmllbGRMaXN0LnNvbWUoKGYpID0+IGl0ZW1bZl0gIT0gbnVsbCkpIGNvbnRpbnVlO1xuICAgICAgcmVtb3ZlZEl0ZW1zLnB1c2goLi4udGhpcy5zcGxpY2UoaSwgMSkpO1xuICAgICAgaSA9IGktLTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlbW92ZWRJdGVtcztcbn07XG5BcnJheS5wcm90b3R5cGUudG9NYXAgPSBmdW5jdGlvbiA8VCwgTlQ+KHRoaXM6IEFycmF5PFQ+LCBrZXlGaWVsZDoga2V5b2YgVCwgbWFwPzogKGl0ZW06IFQpID0+IE5UKSB7XG4gIC8vIGRlYnVnZ2VyO1xuICBjb25zdCByZXQ6IHsgW3g6IHN0cmluZ106IFQgfCBOVCB9ID0ge307XG4gIGZvciAoY29uc3QgaXRlcmF0b3Igb2YgdGhpcykge1xuICAgIHJldFtpdGVyYXRvcltrZXlGaWVsZD8udG9TdHJpbmcoKV1dID0gbWFwID8gbWFwKGl0ZXJhdG9yKSA6IGl0ZXJhdG9yO1xuICB9XG4gIHJldHVybiByZXQ7XG59O1xuQXJyYXkucHJvdG90eXBlLmdyb3VwQnkgPSBmdW5jdGlvbiA8VD4odGhpczogQXJyYXk8VD4sIGtleUZpZWxkOiBrZXlvZiBULCBrZXlNYXA/OiAodmFsdWU6IFQpID0+IHN0cmluZyk6IHsgW3g6IHN0cmluZ106IFRbXSB9IHtcbiAgLy8gZGVidWdnZXI7XG4gIGNvbnN0IHJldDogeyBbeDogc3RyaW5nXTogVFtdIH0gPSB7fTtcbiAgZm9yIChjb25zdCBpdGVyYXRvciBvZiB0aGlzKSB7XG4gICAgY29uc3QgZ3JvdXAgPSBrZXlNYXAgPyBrZXlNYXAoaXRlcmF0b3IpIDogKGl0ZXJhdG9yW2tleUZpZWxkXSBhcyBzdHJpbmcpO1xuICAgIGlmIChyZXRbZ3JvdXBdKSByZXRbZ3JvdXBdLnB1c2goaXRlcmF0b3IpO1xuICAgIGVsc2UgcmV0W2dyb3VwXSA9IFtpdGVyYXRvcl07XG4gIH1cblxuICByZXR1cm4gcmV0O1xufTtcbkFycmF5LnByb3RvdHlwZS50b0Jvb2xlYW5NYXAgPSBmdW5jdGlvbiAodGhpczogQXJyYXk8YW55Pik6IHsgW3g6IHN0cmluZ106IGJvb2xlYW4gfSB7XG4gIC8vIGRlYnVnZ2VyO1xuICBjb25zdCByZXQ6IHsgW3g6IHN0cmluZ106IGJvb2xlYW4gfSA9IHt9O1xuICBmb3IgKGNvbnN0IGl0ZXJhdG9yIG9mIHRoaXMpIHtcbiAgICByZXRbaXRlcmF0b3JdID0gdHJ1ZTtcbiAgfVxuICByZXR1cm4gcmV0O1xufTtcblxuQXJyYXkucHJvdG90eXBlLnNodWZmbGUgPSBmdW5jdGlvbiA8VD4odGhpczogQXJyYXk8VD4pIHtcbiAgLy8gZGVidWdnZXI7XG4gIGNvbnN0IG5ld0FycjogVFtdID0gW107XG4gIHdoaWxlICh0aGlzLmxlbmd0aCkge1xuICAgIG5ld0Fyci5wdXNoKC4uLnRoaXMuc3BsaWNlKE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIHRoaXMubGVuZ3RoIC0gMSksIDEpKTtcbiAgfVxuICByZXR1cm4gbmV3QXJyO1xufTtcblxuLy8jZW5kcmVnaW9uXG5cbi8vI3JlZ2lvbiBGdW5jdGlvblxuRnVuY3Rpb24ucHJvdG90eXBlLmNsb25lID0gZnVuY3Rpb24gKCkge1xuICB2YXIgdGhhdCA9IHRoaXM7XG4gIHZhciB0ZW1wID0gZnVuY3Rpb24gdGVtcG9yYXJ5KCkge1xuICAgIHJldHVybiB0aGF0LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gIH07XG4gIGZvciAodmFyIGtleSBpbiB0aGlzKSB7XG4gICAgaWYgKHRoaXMuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgdGVtcFtrZXldID0gdGhpc1trZXldO1xuICAgIH1cbiAgfVxuICByZXR1cm4gdGVtcDtcbn07XG4vLyNlbmRyZWdpb25cblxuLy8jcmVnaW9uIEZPUk1BUlJBWVxuRm9ybUFycmF5LnByb3RvdHlwZS5jQWRkSXRlbSA9IGZ1bmN0aW9uIDxUQ29udHJvbCBleHRlbmRzIEFic3RyYWN0Q29udHJvbDxhbnk+ID0gYW55PihcbiAgdGhpczogRm9ybUFycmF5PFRDb250cm9sPixcbiAgaW5kZXg/OiBudW1iZXIsXG4gIHZhbD86IHR5cGVvZiB0aGlzLmNGb3JtU3RydWN0dXJlLnZhbHVlLFxuKSB7XG4gIGNvbnN0IGZvcm0gPSBjbG9uZURlZXAodGhpcy5jRm9ybVN0cnVjdHVyZSk7XG4gIGlmICh2YWwpIHtcbiAgICBmb3JtLnBhdGNoVmFsdWUodmFsKTtcbiAgfVxuICB0aGlzLmluc2VydChpbmRleCwgZm9ybSk7XG4gIHJldHVybiB0aGlzO1xufTtcbkZvcm1BcnJheS5wcm90b3R5cGUuY1JlbW92ZUl0ZW0gPSBmdW5jdGlvbiA8VENvbnRyb2wgZXh0ZW5kcyBBYnN0cmFjdENvbnRyb2w8YW55PiA9IGFueT4oXG4gIHRoaXM6IEZvcm1BcnJheTxUQ29udHJvbD4sXG4gIGluZGV4OiBudW1iZXIsXG4gIGRlbGV0ZVNlcnZpY2U/OiAoLi4uYXJncykgPT4gUHJvbWlzZTxhbnk+IHwgT2JzZXJ2YWJsZTxhbnk+LFxuICBhZGRSb3dGdW5jPzogKC4uLmFyZ3MpID0+IGFueSxcbiAgZW1pdEV2ZW50ID0gdHJ1ZSxcbikge1xuICByZXR1cm4gbmV3IFByb21pc2U8Rm9ybUFycmF5PFRDb250cm9sPj4oKHN1YikgPT4ge1xuICAgIGNvbnN0IGlkID0gdGhpcy5jb250cm9sc1tpbmRleF0/LnZhbHVlPy5pZDtcbiAgICAvLyBkZWJ1Z2dlcjtcbiAgICBpZiAoaWQgJiYgZGVsZXRlU2VydmljZSkge1xuICAgICAgY29uc3QgcmVxID0gZGVsZXRlU2VydmljZShpZCk7XG4gICAgICBsZXQgcHM6IFByb21pc2U8YW55PiA9IG51bGw7XG4gICAgICBpZiAocmVxWyd0b1Byb21pc2UnXSkge1xuICAgICAgICBwcyA9IHJlcVsndG9Qcm9taXNlJ10oKTtcbiAgICAgIH1cbiAgICAgIHBzPy50aGVuKChyKSA9PiB7XG4gICAgICAgIHN1Yih0aGlzKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmNvbnRyb2xzLmxlbmd0aCA9PSAxICYmIGlkKSB7XG4gICAgICB0aGlzLnJlbW92ZUF0KGluZGV4LCB7IGVtaXRFdmVudCB9KTtcbiAgICAgIGlmIChhZGRSb3dGdW5jKSBhZGRSb3dGdW5jKCk7XG4gICAgICBlbHNlIHRoaXMuY0FkZEl0ZW0oKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuY29udHJvbHMubGVuZ3RoID4gMSkgdGhpcy5yZW1vdmVBdChpbmRleCwgeyBlbWl0RXZlbnQgfSk7XG4gICAgZWxzZSBpZiAodGhpcy5jb250cm9scy5sZW5ndGggPT0gMSkge1xuICAgICAgdGhpcy5jb250cm9sc1swXS5yZXNldCgpO1xuICAgIH1cbiAgfSk7XG59O1xuRm9ybUdyb3VwLnByb3RvdHlwZS5nZXRGb3JtYXR0ZWRWYWx1ZSA9IGZ1bmN0aW9uICh0aGlzOiBGb3JtR3JvdXApIHtcbiAgY29uc3QgZGF0YSA9IHt9O1xuICBpZiAoIXRoaXMuY29udHJvbHMpIHJldHVybiB0aGlzLmZvcm1hdHRlZFZhbHVlO1xuICBlbHNlXG4gICAgZm9yIChjb25zdCBjb250cm9sTmFtZSBpbiB0aGlzLmNvbnRyb2xzKSB7XG4gICAgICBkYXRhW2NvbnRyb2xOYW1lXSA9ICg8Rm9ybUNvbnRyb2wgfCBGb3JtR3JvdXAgfCBGb3JtQXJyYXk+dGhpcy5jb250cm9sc1tjb250cm9sTmFtZV0pLmdldEZvcm1hdHRlZFZhbHVlKCk7XG4gICAgfVxuICByZXR1cm4gZGF0YTtcbn07XG5Gb3JtQXJyYXkucHJvdG90eXBlLmdldEZvcm1hdHRlZFZhbHVlID0gZnVuY3Rpb24gKHRoaXM6IEZvcm1BcnJheSkge1xuICBjb25zdCBkYXRhID0gW107XG4gIGlmICghdGhpcy5jb250cm9scykgcmV0dXJuIHRoaXMuZm9ybWF0dGVkVmFsdWU7XG4gIGVsc2VcbiAgICBmb3IgKGNvbnN0IGNvbnRyb2wgb2YgdGhpcy5jb250cm9scykge1xuICAgICAgZGF0YS5wdXNoKCg8Rm9ybUNvbnRyb2wgfCBGb3JtR3JvdXA+Y29udHJvbCkuZ2V0Rm9ybWF0dGVkVmFsdWUoKSk7XG4gICAgfVxuICByZXR1cm4gZGF0YTtcbn07XG5Gb3JtQ29udHJvbC5wcm90b3R5cGUuZ2V0Rm9ybWF0dGVkVmFsdWUgPSBmdW5jdGlvbiAodGhpczogRm9ybUNvbnRyb2wpIHtcbiAgcmV0dXJuIHRoaXMuZm9ybWF0dGVkVmFsdWU7XG59O1xuLy8jZW5kcmVnaW9uXG5cbmV4cG9ydCB7fTtcbiJdfQ==
217
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdG90eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvcHJvdG90eXBlcy9wcm90b3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBbUIsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBaUt0QyxvQkFBb0I7QUFDcEIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEdBQUcsVUFBd0IsU0FBUyxHQUFHLEdBQUc7SUFDbEUsT0FBTyxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQzVDLENBQUMsQ0FBQztBQUNGLE1BQU0sQ0FBQyxTQUFTLENBQUMsYUFBYSxHQUFHLFVBQXdCLFNBQVMsR0FBRyxHQUFHO0lBQ3RFLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLEdBQUcsQ0FBQyxDQUFDLElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDckYsQ0FBQyxDQUFDO0FBQ0YsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsVUFBd0IsU0FBUyxHQUFHLEdBQUcsRUFBRSxXQUFXLEdBQUcsRUFBRTtJQUNqRixJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUM7SUFDWixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUNwQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENB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SSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDeEcsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDOztRQUVsRyxPQUFPLFFBQVE7WUFDYixDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDeEcsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFD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QUFFLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztTQUMzRztJQUNILE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyxDQUFDO0FBQ0YsU0FBUyxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsR0FBRztJQUN0QyxNQUFNLElBQUksR0FBRyxFQUFFLENBQUM7SUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRO1FBQUUsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDOztRQUU3QyxLQUFLLE1BQU0sT0FBTyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbkMsSUFBSSxDQUFDLElBQUksQ0FBMkIsT0FBUSxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQztTQUNuRTtJQUNILE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyxDQUFDO0FBQ0YsV0FBVyxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsR0FBRztJQUN4QyxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7QUFDN0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQXJyYXksIEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBjbG9uZURlZXAgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBTdHJpbmcge1xuICAgIHN0cmlwQ2hhcihjaGFyYWN0ZXI/OiBzdHJpbmcpOiBzdHJpbmc7XG4gICAgbGFzdFN0cmlwQ2hhcihjaGFyYWN0ZXI/OiBzdHJpbmcpOiBzdHJpbmc7XG4gICAgdW5DaGFyKGNoYXJhY3Rlcj86IHN0cmluZywgcmVwbGFjZW1lbnQ/OiBzdHJpbmcpOiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogQ29udmVydHMgUGFzY2FsIGNhc2UgdG8gU2VudGVuY2UgY2FzZVxuICAgICAqIEBleGFtcGxlICdzbWFsbEJvb2snLnRvU2VudGVuY2VDYXNlKCkgPSAnU21hbGwgQm9vaydcbiAgICAgKi9cbiAgICB0b1NlbnRlbmNlQ2FzZSgpOiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogUmVwbGFjZXMgYWxsIG9jY3VycmVuY2VzIG9mIGEgc3Vic3RyaW5nXG4gICAgICogQHJldHVybnMgVGhlIHN0cmluZyBhZnRlciByZXBsYWNlbWVudFxuICAgICAqL1xuICAgIHJlcGxhY2VBbGxTdWJTdHIoY2hhcmFjdGVyPzogc3RyaW5nLCByZXBsYWNlbWVudD86IHN0cmluZyk6IHN0cmluZztcbiAgICAvKipcbiAgICAgKlxuICAgICAqIEBwYXJhbSBjaGFyYWN0ZXIgQ2hhcmFjdGVyIHRvIGFkZCBiZWZvcmUgc3RyaW5nXG4gICAgICogQHBhcmFtIGV4cGVjdGVkTGVuZ3RoIEV4cGVjdGVkIGxlbmd0aCBvZiB0aGUgc3RyaW5nIGFmdGVyIGFkZGl0aW9uIG9mIHRoZSBjaGFyYWN0ZXJcbiAgICAgKi9cbiAgICBhZGRQcmVjZWRpbmdDaGFyKGNoYXJhY3Rlcjogc3RyaW5nLCBleHBlY3RlZExlbmd0aDogbnVtYmVyKTogc3RyaW5nO1xuICB9XG5cbiAgaW50ZXJmYWNlIEFycmF5PFQ+IHtcbiAgICBtZXJnZSgpOiBUO1xuICAgIC8qKlxuICAgICAqIEBwYXJhbSBpbmRleCBUaGUgaW5kZXggdG8gc2VsZWN0IGZyb20gdGhlIGVuZC5cbiAgICAgKiBAZGVmYXVsdFZhbHVlIDBcbiAgICAgKiBAZXhhbXBsZSBbJ2EnLCdiJywnYyddLnJldmVyc2VJbmRleCgxKSByZXR1cm5zICdiJ1xuICAgICAqIEBleGFtcGxlIFsnYScsJ2InLCdjJywnZCcsJ2UnXS5yZXZlcnNlSW5kZXgoMikgcmV0dXJucyAnYydcbiAgICAgKi9cbiAgICByZXZlcnNlSW5kZXgoaW5kZXg/OiBudW1iZXIpOiBUO1xuICAgIGxhc3RJdGVtKCk6IFQ7XG4gICAgLyoqXG4gICAgICogU2h1ZmZsZXMgdGhlIGNvbnRlbnQgb2YgYW4gYXJyYXlcbiAgICAgKi9cbiAgICBzaHVmZmxlKCk6IFRbXTtcblxuICAgIC8qKlxuICAgICAqIFNvcnQgYnkgdGhlIGxlbmd0aCBvZiB0aGUgZmllbGQgc3BlY2lmaWVkIGluIGFzY2VuZGluZyBvcmRlclxuICAgICAqIEBwYXJhbSBmaWVsZCBGaWVsZCBuYW1lIHRvIGNvbXBhcmUgd2l0aFxuICAgICAqIEBwYXJhbSByZXZlcnNlIFNob3VsZCBpdCBiZSBpbiBhIGRlc2NlbmRpbmcgb3JkZXJcbiAgICAgKi9cbiAgICBzb3J0QnlGaWVsZExlbmd0aChmaWVsZDoga2V5b2YgVCwgcmV2ZXJzZT86IGJvb2xlYW4pOiBUW107XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEBwYXJhbSBmaWVsZCBGaWVsZCBuYW1lIHRvIGNvbXBhcmUgd2l0aFxuICAgICAqIEBwYXJhbSBpc1N0cmluZyBJcyB0aGUgZGF0YSB0eXBlIG9mIHRoZSBmaWVsZCBhIHN0cmluZ1xuICAgICAqIEBwYXJhbSByZXZlcnNlIFNob3VsZCBpdCBiZSBpbiBhIGRlc2NlbmRpbmcgb3JkZXJcbiAgICAgKi9cbiAgICBzb3J0MihmaWVsZDoga2V5b2YgVCwgaXNTdHJpbmc/OiBib29sZWFuLCByZXZlcnNlPzogYm9vbGVhbik6IFRbXTtcbiAgICAvKipcbiAgICAgKiBEZXRlY3RzIHRoZSBkYXRhIHR5cGUgb2YgdGhlIGZpZWxkIHRvIHNvcnQgYnlcbiAgICAgKiBAcGFyYW0gZmllbGQgRmllbGQgbmFtZSB0byBjb21wYXJlIHdpdGhcbiAgICAgKiBAcGFyYW0gcmV2ZXJzZSBTaG91bGQgaXQgYmUgaW4gYSBkZXNjZW5kaW5nIG9yZGVyXG4gICAgICovXG4gICAgc29ydDMoZmllbGQ6IGtleW9mIFQsIHJldmVyc2U/OiBib29sZWFuKTogVFtdO1xuICAgIC8qKlxuICAgICAqIFJlbW92ZSBpdGVtcyBmcm9tIGFuIGFycmF5IHRoYXQgZG9uJ3QgaGF2ZSB2YWx1ZXMgaW4gYW55IG9mIGl0cyBmaWVsZHNcbiAgICAgKiBAcGFyYW0gZXhwZWN0ZWRGaWVsZHMgRmllbGRzIHRvIGNoZWNrIGZvciBlbXB0aW5lc3MsIHRoZSBmdW5jdGlvbiB3aWxsIHJlbW92ZSB0aGUgaXRlbXMgdGhhdCBkb24ndCBoYXZlIGFueSB2YWx1ZSBpbiBhbGwgdGhlIGZpZWxkcyBzcGVjaWZpZWRcbiAgICAgKi9cbiAgICByZW1vdmVFbXB0eUl0ZW1zKFxuICAgICAgZXhwZWN0ZWRGaWVsZHM/OiAoa2V5b2YgVClbXSxcbiAgICAgIGNvbmZpZz86IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFNwZWNpZnkgd2hldGhlciB0byBjaGVjayB0aGUgdmFsdWUgaW4gYm9vbGVhbiBmaWVsZHMuXG4gICAgICAgICAqIEBkZWZhdWx0VmFsdWUgYGZhbHNlYFxuICAgICAgICAgKi9cbiAgICAgICAgaWdub3JlQm9vbGVhbkZpZWxkcz86IGJvb2xlYW47XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBTcGVjaWZ5IHdoZXRoZXIgdG8gY2hlY2sgZm9yIGVtcHRpbmVzcyBpbiB0aGUgJ2V4cGVjdGVkRmllbGRzJyBvciBjaGVjayBmb3IgZW1wdGluZXNzIGluIHRoZSBvdGhlciBmaWVsZHMgZXhjbHVkaW5nIHRoZSBmaWVsZHMgc3BlY2lmaWVkXG4gICAgICAgICAqIEBkZWZhdWx0VmFsdWUgYGluY2x1ZGVkYFxuICAgICAgICAgKi9cbiAgICAgICAgZmllbGRzVHlwZT86ICdpbmNsdWRlZCcgfCAnZXhjbHVkZWQnO1xuICAgICAgfSxcbiAgICApOiBUW107XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyBhbiBhcnJheSB0byBhIGtleSB2YWx1ZSBwYWlyLlxuICAgICAqIEBwYXJhbSBhcnIgQXJyYXkgdG8gYmUgY29udmVydGVkXG4gICAgICogQHBhcmFtIGtleUZpZWxkIFRoZSBmaWVsZCB0byBiZSB1c2VkIGFzIHRoZSBrZXlcbiAgICAgKiBAcmV0dXJucyBBbiBpbmRleCBvYmplY3QgY29udGFpbmluZyB0aGUga2V5RmllbGQgYXMgdGhlIGluZGV4IGtleSBhbmQgZWFjaCBpdGVtIG9mIHRoZSBhcnJheSBhcyB2YWx1ZSBhc3NpZ25lZCB0byBlYWNoIGluZGV4XG4gICAgICovXG4gICAgdG9NYXAoa2V5RmllbGQ6IGtleW9mIFQpOiB7IFt4OiBzdHJpbmddOiBUIH07XG4gICAgdG9NYXA8TlQ+KGtleUZpZWxkOiBrZXlvZiBULCBtYXA6IChpdGVtOiBUKSA9PiBOVCk6IHsgW3g6IHN0cmluZ106IE5UIH07XG4gICAgdG9NYXA8TlQ+KGtleUZpZWxkOiBrZXlvZiBULCBtYXA/OiAoaXRlbTogVCkgPT4gTlQpO1xuXG4gICAgLyoqXG4gICAgICogR3JvdXBzIGFuIGFycmF5IGJ5IHVuaXF1ZSBlbnRyaWVzIGluIGEgZmllbGQuXG4gICAgICogQHBhcmFtIGFyciBBcnJheSB0byBiZSBncm91cGVkXG4gICAgICogQHBhcmFtIGtleUZpZWxkIFRoZSBmaWVsZCB0byBiZSB1c2VkIGFzIHRoZSBrZXlcbiAgICAgKi9cbiAgICBncm91cEJ5KGtleUZpZWxkOiBrZXlvZiBULCBrZXlNYXA/OiAodmFsdWU6IFQpID0+IHN0cmluZyk6IHsgW3g6IHN0cmluZ106IFRbXSB9O1xuXG4gICAgLyoqXG4gICAgICogVHVybnMgYW4gYXJyYXkgdG8gYSBtYXAuXG4gICAgICovXG4gICAgdG9Cb29sZWFuTWFwKCk6IHsgW3g6IHN0cmluZ106IGJvb2xlYW4gfTtcbiAgfVxuICBpbnRlcmZhY2UgRnVuY3Rpb24ge1xuICAgIGNsb25lOiBhbnk7XG4gIH1cbn1cbmRlY2xhcmUgbW9kdWxlICdAYW5ndWxhci9mb3Jtcycge1xuICBpbnRlcmZhY2UgRm9ybUFycmF5PFRDb250cm9sIGV4dGVuZHMgQWJzdHJhY3RDb250cm9sPGFueT4gPSBhbnk+XG4gICAgZXh0ZW5kcyBBYnN0cmFjdENvbnRyb2w8ybVUeXBlZE9yVW50eXBlZDxUQ29udHJvbCwgybVGb3JtQXJyYXlWYWx1ZTxUQ29udHJvbD4sIGFueT4sIMm1VHlwZWRPclVudHlwZWQ8VENvbnRyb2wsIMm1Rm9ybUFycmF5UmF3VmFsdWU8VENvbnRyb2w+LCBhbnk+PiB7XG4gICAgY0Zvcm1TdHJ1Y3R1cmU6IFRDb250cm9sO1xuICAgIGNBZGRJdGVtKGluZGV4PzogbnVtYmVyLCBkYXRhPzogVENvbnRyb2wpOiBGb3JtQXJyYXk8VENvbnRyb2w+O1xuICAgIC8qKlxuICAgICAqIEhhbmRsZXMgdGhlIGRlbGV0aW9uIG9mIHJvd3MgZnJvbSBhIEZvcm1BcnJheVxuICAgICAqIEBwYXJhbSBpbmRleCBJbmRleCBvZiB0aGUgcm93IHRvIGRlbGV0ZVxuICAgICAqIEBwYXJhbSBmYSBUaGUgRm9ybUFycmF5IHRoYXQgaG9sZHMgdGhlIHJvd3NcbiAgICAgKiBAcGFyYW0gZGVsZXRlU2VydmljZSBUaGUgZGVsZXRpb24gc2VydmljZSB0byBiZSBjYWxsZWQgKEl0IHNob3VsZCBiZSBhbiBhbm9ueW1vdXMgZnVuY3Rpb24pXG4gICAgICogQHBhcmFtIGFkZFJvd0Z1bmMgVGhlIGZ1bmN0aW9uIChhbm9ueW1vdXMpIHRoYXQgYWRkcyBhIG5ldyByb3cgdG8gdGhlIEZvcm1BcnJheVxuICAgICAqIEBwYXJhbSBlbWl0RXZlbnQgU3BlY2lmeSB3aGV0aGVyIHRvIGVtaXQgYW4gZXZlbnQgd2hlbiBtYW5pcHVsYXRpbmcgdGhlIEZvcm1BcnJheVxuICAgICAqIEByZXR1cm5zXG4gICAgICovXG4gICAgY1JlbW92ZUl0ZW0oXG4gICAgICBpbmRleDogbnVtYmVyLFxuICAgICAgZGVsZXRlU2VydmljZT86ICguLi5hcmdzKSA9PiBQcm9taXNlPGFueT4gfCBPYnNlcnZhYmxlPGFueT4sXG4gICAgICBhZGRSb3dGdW5jPzogKC4uLmFyZ3MpID0+IGFueSxcbiAgICAgIGVtaXRFdmVudD86IGJvb2xlYW4sXG4gICAgKTogUHJvbWlzZTxGb3JtQXJyYXk8VENvbnRyb2w+PjtcbiAgfVxuICBleHBvcnQgaW50ZXJmYWNlIEFic3RyYWN0Q29udHJvbCB7XG4gICAgZm9ybWF0dGVkVmFsdWU/OiBhbnk7XG4gICAgbGFiZWxWYWx1ZT86IHN0cmluZztcbiAgICBnZXRGb3JtYXR0ZWRWYWx1ZTogKCkgPT4gYW55O1xuICB9XG4gIGV4cG9ydCBpbnRlcmZhY2UgRm9ybUNvbnRyb2wge1xuICAgIGZvcm1hdHRlZFZhbHVlPzogc3RyaW5nO1xuICAgIGxhYmVsVmFsdWU/OiBzdHJpbmc7XG4gICAgZ2V0Rm9ybWF0dGVkVmFsdWU6ICgpID0+IHN0cmluZztcbiAgfVxuICBleHBvcnQgaW50ZXJmYWNlIEZvcm1Hcm91cCB7XG4gICAgZm9ybWF0dGVkVmFsdWU/OiB7IFt4OiBzdHJpbmddOiBzdHJpbmdbXSB8IHsgW3g6IHN0cmluZ106IHN0cmluZyB9W10gfTtcbiAgICBnZXRGb3JtYXR0ZWRWYWx1ZTogKCkgPT4geyBbeDogc3RyaW5nXTogc3RyaW5nW10gfCB7IFt4OiBzdHJpbmddOiBzdHJpbmcgfVtdIH07XG4gIH1cbiAgZXhwb3J0IGludGVyZmFjZSBGb3JtQXJyYXkge1xuICAgIGZvcm1hdHRlZFZhbHVlPzogc3RyaW5nW10gfCB7IFt4OiBzdHJpbmddOiBzdHJpbmcgfVtdO1xuICAgIGdldEZvcm1hdHRlZFZhbHVlOiAoKSA9PiBzdHJpbmdbXSB8IHsgW3g6IHN0cmluZ106IHN0cmluZyB9W107XG4gIH1cbn1cblxuZGVjbGFyZSBtb2R1bGUgJ0Bhbmd1bGFyL3JvdXRlcicge1xuICBpbnRlcmZhY2UgUm91dGUge1xuICAgIGN1c3RvbURhdGE/OiB7XG4gICAgICBtaUlEPzogc3RyaW5nO1xuICAgICAgdGl0bGU/OiBzdHJpbmc7XG4gICAgICBwYWdlQ29tcG9uZW50Pzoge1xuICAgICAgICBjZW50ZXJIZWFkZXI/OiBib29sZWFuO1xuICAgICAgICBoaWRlSGVhZGVyPzogYm9vbGVhbjtcbiAgICAgIH07XG4gICAgfTtcbiAgfVxufVxuXG4vLyNyZWdpb24gIHN0cmluZyAqL1xuU3RyaW5nLnByb3RvdHlwZS5zdHJpcENoYXIgPSBmdW5jdGlvbiAodGhpczogc3RyaW5nLCBjaGFyYWN0ZXIgPSAnLycpIHtcbiAgcmV0dXJuICh0aGlzICsgJycpLnJlcGxhY2UoY2hhcmFjdGVyLCAnJyk7XG59O1xuU3RyaW5nLnByb3RvdHlwZS5sYXN0U3RyaXBDaGFyID0gZnVuY3Rpb24gKHRoaXM6IHN0cmluZywgY2hhcmFjdGVyID0gJy8nKSB7XG4gIHJldHVybiB0aGlzW3RoaXM/Lmxlbmd0aCAtIDFdID09IGNoYXJhY3RlciA/IHRoaXMuc2xpY2UoMCwgdGhpcy5sZW5ndGggLSAxKSA6IHRoaXM7XG59O1xuU3RyaW5nLnByb3RvdHlwZS51bkNoYXIgPSBmdW5jdGlvbiAodGhpczogc3RyaW5nLCBjaGFyYWN0ZXIgPSAnLycsIHJlcGxhY2VtZW50ID0gJycpIHtcbiAgbGV0IHRlID0gJyc7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGUgPSB0aGlzW2ldO1xuICAgIHRlICs9IGUgIT0gY2hhcmFjdGVyID8gZSA6ICcnO1xuICB9XG4gIHJldHVybiB0ZS5zcGxpdChjaGFyYWN0ZXIpLmpvaW4ocmVwbGFjZW1lbnQpO1xufTtcblN0cmluZy5wcm90b3R5cGUudG9TZW50ZW5jZUNhc2UgPSBmdW5jdGlvbiAodGhpczogc3RyaW5nKSB7XG4gIHJldHVybiB0aGlzLnJlcGxhY2UoLyhbQS1aXSkvZywgJyAkMScpO1xufTtcblN0cmluZy5wcm90b3R5cGUucmVwbGFjZUFsbFN1YlN0ciA9IGZ1bmN0aW9uICh0aGlzOiBzdHJpbmcsIGNoYXJhY3RlciA9ICcvJywgcmVwbGFjZW1lbnQgPSAnJykge1xuICByZXR1cm4gdGhpcy5zcGxpdChjaGFyYWN0ZXIpLmpvaW4ocmVwbGFjZW1lbnQpO1xufTtcblN0cmluZy5wcm90b3R5cGUuYWRkUHJlY2VkaW5nQ2hhciA9IGZ1bmN0aW9uICh0aGlzOiBzdHJpbmcsIGNoYXJhY3Rlcjogc3RyaW5nLCBleHBlY3RlZExlbmd0aDogbnVtYmVyKSB7XG4gIGlmICh0aGlzLmxlbmd0aCA+PSBleHBlY3RlZExlbmd0aCkgcmV0dXJuIHRoaXM7XG4gIHJldHVybiBjaGFyYWN0ZXIucmVwZWF0KGV4cGVjdGVkTGVuZ3RoIC0gdGhpcy5sZW5ndGgpICsgdGhpcztcbn07XG4vLyNlbmRyZWdpb25cblxuLy8jcmVnaW9uICBhcnJheSAqL1xuQXJyYXkucHJvdG90eXBlLm1lcmdlID0gZnVuY3Rpb24gPFQ+KHRoaXM6IEFycmF5PFQ+KSB7XG4gIGxldCByID0gJyc7XG4gIGZvciAoY29uc3QgaSBvZiB0aGlzKSB7XG4gICAgciArPSBpO1xuICB9XG4gIHJldHVybiByO1xufTtcbkFycmF5LnByb3RvdHlwZS5yZXZlcnNlSW5kZXggPSBmdW5jdGlvbiA8VD4odGhpczogQXJyYXk8VD4sIGluZGV4ID0gMCkge1xuICByZXR1cm4gdGhpc1t0aGlzPy5sZW5ndGggLSAoMSArIGluZGV4KV07XG59O1xuQXJyYXkucHJvdG90eXBlLmxhc3RJdGVtID0gZnVuY3Rpb24gPFQ+KHRoaXM6IEFycmF5PFQ+KSB7XG4gIHJldHVybiB0aGlzLnJldmVyc2VJbmRleCgpO1xufTtcbkFycmF5LnByb3RvdHlwZS5zb3J0QnlGaWVsZExlbmd0aCA9IGZ1bmN0aW9uIDxUPih0aGlzOiBBcnJheTxUPiwgZmllbGQ6IGtleW9mIFQsIHJldmVyc2U6IGJvb2xlYW4gPSBmYWxzZSkge1xuICBpZiAocmV2ZXJzZSkge1xuICAgIHJldHVybiB0aGlzLmZpbHRlcigoeCkgPT4geCAhPSBudWxsKS5zb3J0KChiLCBhKSA9PiAoYVtmaWVsZCBhcyBhbnldPy5sZW5ndGggfHwgMCkgLSAoYltmaWVsZCBhcyBhbnldPy5sZW5ndGggfHwgMCkpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiB0aGlzLmZpbHRlcigoeCkgPT4geCAhPSBudWxsKS5zb3J0KChhLCBiKSA9PiAoYVtmaWVsZCBhcyBhbnldPy5sZW5ndGggfHwgMCkgLSAoYltmaWVsZCBhcyBhbnldPy5sZW5ndGggfHwgMCkpO1xuICB9XG59O1xuQXJyYXkucHJvdG90eXBlLnNvcnQyID0gZnVuY3Rpb24gPFQ+KHRoaXM6IEFycmF5PFQ+LCBmaWVsZDoga2V5b2YgVCwgaXNTdHJpbmc6IGJvb2xlYW4gPSBmYWxzZSwgcmV2ZXJzZTogYm9vbGVhbiA9IGZhbHNlKSB7XG4gIGlmIChyZXZlcnNlKVxuICAgIHJldHVybiBpc1N0cmluZ1xuICAgICAgPyB0aGlzLmZpbHRlcigoeCkgPT4geCAhPSBudWxsKS5zb3J0KChiLCBhKSA9PiBzb3J0QWxwaGFOdW0oYVtmaWVsZF0/LnRvU3RyaW5nKCksIGJbZmllbGRdPy50b1N0cmluZygpKSlcbiAgICAgIDogdGhpcy5maWx0ZXIoKHgpID0+IHggIT0gbnVsbCkuc29ydCgoYiwgYSkgPT4gKGFbZmllbGQgYXMgYW55XSB8fCAwKSAtIChiW2ZpZWxkIGFzIGFueV0gfHwgMCkpO1xuICBlbHNlXG4gICAgcmV0dXJuIGlzU3RyaW5nXG4gICAgICA/IHRoaXMuZmlsdGVyKCh4KSA9PiB4ICE9IG51bGwpLnNvcnQoKGEsIGIpID0+IHNvcnRBbHBoYU51bShhW2ZpZWxkXT8udG9TdHJpbmcoKSwgYltmaWVsZF0/LnRvU3RyaW5nKCkpKVxuICAgICAgOiB0aGlzLmZpbHRlcigoeCkgPT4geCAhPSBudWxsKS5zb3J0KChhLCBiKSA9PiAoYVtmaWVsZCBhcyBhbnldIHx8IDApIC0gKGJbZmllbGQgYXMgYW55XSB8fCAwKSk7XG59O1xuQXJyYXkucHJvdG90eXBlLnNvcnQzID0gZnVuY3Rpb24gPFQ+KHRoaXM6IEFycmF5PFQ+LCBmaWVsZDoga2V5b2YgVCwgcmV2ZXJzZTogYm9vbGVhbiA9IGZhbHNlKSB7XG4gIGxldCBpc1N0cmluZzogYm9vbGVhbiA9IHRoaXMuc29tZSgoeCkgPT4gaXNOYU4oeFtmaWVsZF0gYXMgYW55KSk7XG4gIHJldHVybiBpc1N0cmluZyA/IHRoaXMuc29ydDIoZmllbGQsIHRydWUsIHJldmVyc2UpIDogdGhpcy5zb3J0MihmaWVsZCwgZmFsc2UsIHJldmVyc2UpO1xufTtcbnZhciByZUEgPSAvW15hLXpBLVpdL2c7XG52YXIgcmVOID0gL1teMC05XS9nO1xuXG5mdW5jdGlvbiBzb3J0QWxwaGFOdW0oYTogc3RyaW5nLCBiOiBzdHJpbmcpIHtcbiAgdmFyIGFBID0gYT8udG9VcHBlckNhc2UoKT8ucmVwbGFjZShyZUEsICcnKTtcbiAgdmFyIGJBID0gYj8udG9VcHBlckNhc2UoKT8ucmVwbGFjZShyZUEsICcnKTtcbiAgaWYgKGFBID09PSBiQSkge1xuICAgIHZhciBhTiA9IHBhcnNlSW50KGE/LnJlcGxhY2UocmVOLCAnJyksIDEwKTtcbiAgICB2YXIgYk4gPSBwYXJzZUludChiPy5yZXBsYWNlKHJlTiwgJycpLCAxMCk7XG4gICAgcmV0dXJuIGFOID09PSBiTiA/IDAgOiBhTiA+IGJOID8gMSA6IC0xO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBhQSA+IGJBID8gMSA6IC0xO1xuICB9XG59XG5cbkFycmF5LnByb3RvdHlwZS5yZW1vdmVFbXB0eUl0ZW1zID0gZnVuY3Rpb24gPFQ+KFxuICB0aGlzOiBBcnJheTxUPixcbiAgZXhwZWN0ZWRGaWVsZHM/OiAoa2V5b2YgVClbXSxcbiAgY29uZmlnPzoge1xuICAgIGlnbm9yZUJvb2xlYW5GaWVsZHM/OiBib29sZWFuO1xuICAgIGZpZWxkc1R5cGU/OiAnaW5jbHVkZWQnIHwgJ2V4Y2x1ZGVkJztcbiAgfSxcbikge1xuICAvLyBkZWJ1Z2dlcjtcbiAgY29uc3QgaWdub3JlQm9vbGVhbkZpZWxkcyA9IGNvbmZpZz8uaWdub3JlQm9vbGVhbkZpZWxkcyA9PSB0cnVlO1xuICBjb25zdCBmaWVsZHNUeXBlID0gY29uZmlnPy5maWVsZHNUeXBlIHx8ICdpbmNsdWRlZCc7XG4gIGlmICghdGhpcy5sZW5ndGgpIHJldHVybiB0aGlzO1xuICBsZXQgZmllbGRMaXN0OiBzdHJpbmdbXTtcbiAgaWYgKGZpZWxkc1R5cGUgPT0gJ2luY2x1ZGVkJykgZmllbGRMaXN0ID0gZXhwZWN0ZWRGaWVsZHM/Lmxlbmd0aCA/IChleHBlY3RlZEZpZWxkcyBhcyBzdHJpbmdbXSkgOiBPYmplY3Qua2V5cyh0aGlzWzBdKTtcbiAgZWxzZSBpZiAoZmllbGRzVHlwZSA9PSAnZXhjbHVkZWQnKVxuICAgIGZpZWxkTGlzdCA9IGV4cGVjdGVkRmllbGRzPy5sZW5ndGggPyBPYmplY3Qua2V5cyh0aGlzWzBdKS5maWx0ZXIoKHgpID0+ICFleHBlY3RlZEZpZWxkcy5pbmNsdWRlcyh4IGFzIGFueSkpIDogT2JqZWN0LmtleXModGhpc1swXSk7XG4gIGNvbnN0IHJlbW92ZWRJdGVtczogVFtdID0gW107XG4gIGlmIChmaWVsZExpc3QpIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChpZ25vcmVCb29sZWFuRmllbGRzICYmIGkgPT0gMCkge1xuICAgICAgICBmaWVsZExpc3QgPSBmaWVsZExpc3QuZmlsdGVyKChmKSA9PiB0eXBlb2YgdGhpc1swXVtmXSAhPSAnYm9vbGVhbicpO1xuICAgICAgfVxuICAgICAgY29uc3QgaXRlbSA9IHRoaXNbaV07XG4gICAgICBpZiAoZmllbGRMaXN0LnNvbWUoKGYpID0+IGl0ZW1bZl0gIT0gbnVsbCkpIGNvbnRpbnVlO1xuICAgICAgcmVtb3ZlZEl0ZW1zLnB1c2goLi4udGhpcy5zcGxpY2UoaSwgMSkpO1xuICAgICAgaSA9IGktLTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlbW92ZWRJdGVtcztcbn07XG5BcnJheS5wcm90b3R5cGUudG9NYXAgPSBmdW5jdGlvbiA8VCwgTlQ+KHRoaXM6IEFycmF5PFQ+LCBrZXlGaWVsZDoga2V5b2YgVCwgbWFwPzogKGl0ZW06IFQpID0+IE5UKSB7XG4gIC8vIGRlYnVnZ2VyO1xuICBjb25zdCByZXQ6IHsgW3g6IHN0cmluZ106IFQgfCBOVCB9ID0ge307XG4gIGZvciAoY29uc3QgaXRlcmF0b3Igb2YgdGhpcykge1xuICAgIHJldFtpdGVyYXRvcltrZXlGaWVsZD8udG9TdHJpbmcoKV1dID0gbWFwID8gbWFwKGl0ZXJhdG9yKSA6IGl0ZXJhdG9yO1xuICB9XG4gIHJldHVybiByZXQ7XG59O1xuQXJyYXkucHJvdG90eXBlLmdyb3VwQnkgPSBmdW5jdGlvbiA8VD4odGhpczogQXJyYXk8VD4sIGtleUZpZWxkOiBrZXlvZiBULCBrZXlNYXA/OiAodmFsdWU6IFQpID0+IHN0cmluZyk6IHsgW3g6IHN0cmluZ106IFRbXSB9IHtcbiAgLy8gZGVidWdnZXI7XG4gIGNvbnN0IHJldDogeyBbeDogc3RyaW5nXTogVFtdIH0gPSB7fTtcbiAgZm9yIChjb25zdCBpdGVyYXRvciBvZiB0aGlzKSB7XG4gICAgY29uc3QgZ3JvdXAgPSBrZXlNYXAgPyBrZXlNYXAoaXRlcmF0b3IpIDogKGl0ZXJhdG9yW2tleUZpZWxkXSBhcyBzdHJpbmcpO1xuICAgIGlmIChyZXRbZ3JvdXBdKSByZXRbZ3JvdXBdLnB1c2goaXRlcmF0b3IpO1xuICAgIGVsc2UgcmV0W2dyb3VwXSA9IFtpdGVyYXRvcl07XG4gIH1cblxuICByZXR1cm4gcmV0O1xufTtcbkFycmF5LnByb3RvdHlwZS50b0Jvb2xlYW5NYXAgPSBmdW5jdGlvbiAodGhpczogQXJyYXk8YW55Pik6IHsgW3g6IHN0cmluZ106IGJvb2xlYW4gfSB7XG4gIC8vIGRlYnVnZ2VyO1xuICBjb25zdCByZXQ6IHsgW3g6IHN0cmluZ106IGJvb2xlYW4gfSA9IHt9O1xuICBmb3IgKGNvbnN0IGl0ZXJhdG9yIG9mIHRoaXMpIHtcbiAgICByZXRbaXRlcmF0b3JdID0gdHJ1ZTtcbiAgfVxuICByZXR1cm4gcmV0O1xufTtcblxuQXJyYXkucHJvdG90eXBlLnNodWZmbGUgPSBmdW5jdGlvbiA8VD4odGhpczogQXJyYXk8VD4pIHtcbiAgLy8gZGVidWdnZXI7XG4gIGNvbnN0IG5ld0FycjogVFtdID0gW107XG4gIHdoaWxlICh0aGlzLmxlbmd0aCkge1xuICAgIG5ld0Fyci5wdXNoKC4uLnRoaXMuc3BsaWNlKE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIHRoaXMubGVuZ3RoIC0gMSksIDEpKTtcbiAgfVxuICByZXR1cm4gbmV3QXJyO1xufTtcblxuLy8jZW5kcmVnaW9uXG5cbi8vI3JlZ2lvbiBGdW5jdGlvblxuRnVuY3Rpb24ucHJvdG90eXBlLmNsb25lID0gZnVuY3Rpb24gKCkge1xuICB2YXIgdGhhdCA9IHRoaXM7XG4gIHZhciB0ZW1wID0gZnVuY3Rpb24gdGVtcG9yYXJ5KCkge1xuICAgIHJldHVybiB0aGF0LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gIH07XG4gIGZvciAodmFyIGtleSBpbiB0aGlzKSB7XG4gICAgaWYgKHRoaXMuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgdGVtcFtrZXldID0gdGhpc1trZXldO1xuICAgIH1cbiAgfVxuICByZXR1cm4gdGVtcDtcbn07XG4vLyNlbmRyZWdpb25cblxuLy8jcmVnaW9uIEZPUk1BUlJBWVxuRm9ybUFycmF5LnByb3RvdHlwZS5jQWRkSXRlbSA9IGZ1bmN0aW9uIDxUQ29udHJvbCBleHRlbmRzIEFic3RyYWN0Q29udHJvbDxhbnk+ID0gYW55PihcbiAgdGhpczogRm9ybUFycmF5PFRDb250cm9sPixcbiAgaW5kZXg/OiBudW1iZXIsXG4gIHZhbD86IHR5cGVvZiB0aGlzLmNGb3JtU3RydWN0dXJlLnZhbHVlLFxuKSB7XG4gIGNvbnN0IGZvcm0gPSBjbG9uZURlZXAodGhpcy5jRm9ybVN0cnVjdHVyZSk7XG4gIGlmICh2YWwpIHtcbiAgICBmb3JtLnBhdGNoVmFsdWUodmFsKTtcbiAgfVxuICB0aGlzLmluc2VydChpbmRleCwgZm9ybSk7XG4gIHJldHVybiB0aGlzO1xufTtcbkZvcm1BcnJheS5wcm90b3R5cGUuY1JlbW92ZUl0ZW0gPSBmdW5jdGlvbiA8VENvbnRyb2wgZXh0ZW5kcyBBYnN0cmFjdENvbnRyb2w8YW55PiA9IGFueT4oXG4gIHRoaXM6IEZvcm1BcnJheTxUQ29udHJvbD4sXG4gIGluZGV4OiBudW1iZXIsXG4gIGRlbGV0ZVNlcnZpY2U/OiAoLi4uYXJncykgPT4gUHJvbWlzZTxhbnk+IHwgT2JzZXJ2YWJsZTxhbnk+LFxuICBhZGRSb3dGdW5jPzogKC4uLmFyZ3MpID0+IGFueSxcbiAgZW1pdEV2ZW50ID0gdHJ1ZSxcbikge1xuICByZXR1cm4gbmV3IFByb21pc2U8Rm9ybUFycmF5PFRDb250cm9sPj4oKHN1YikgPT4ge1xuICAgIGNvbnN0IGlkID0gdGhpcy5jb250cm9sc1tpbmRleF0/LnZhbHVlPy5pZDtcbiAgICAvLyBkZWJ1Z2dlcjtcbiAgICBpZiAoaWQgJiYgZGVsZXRlU2VydmljZSkge1xuICAgICAgY29uc3QgcmVxID0gZGVsZXRlU2VydmljZShpZCk7XG4gICAgICBsZXQgcHM6IFByb21pc2U8YW55PiA9IG51bGw7XG4gICAgICBpZiAocmVxWyd0b1Byb21pc2UnXSkge1xuICAgICAgICBwcyA9IHJlcVsndG9Qcm9taXNlJ10oKTtcbiAgICAgIH1cbiAgICAgIHBzPy50aGVuKChyKSA9PiB7XG4gICAgICAgIHN1Yih0aGlzKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmNvbnRyb2xzLmxlbmd0aCA9PSAxICYmIGlkKSB7XG4gICAgICB0aGlzLnJlbW92ZUF0KGluZGV4LCB7IGVtaXRFdmVudCB9KTtcbiAgICAgIGlmIChhZGRSb3dGdW5jKSBhZGRSb3dGdW5jKCk7XG4gICAgICBlbHNlIHRoaXMuY0FkZEl0ZW0oKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuY29udHJvbHMubGVuZ3RoID4gMSkgdGhpcy5yZW1vdmVBdChpbmRleCwgeyBlbWl0RXZlbnQgfSk7XG4gICAgZWxzZSBpZiAodGhpcy5jb250cm9scy5sZW5ndGggPT0gMSkge1xuICAgICAgdGhpcy5jb250cm9sc1swXS5yZXNldCgpO1xuICAgIH1cbiAgfSk7XG59O1xuRm9ybUdyb3VwLnByb3RvdHlwZS5nZXRGb3JtYXR0ZWRWYWx1ZSA9IGZ1bmN0aW9uICh0aGlzOiBGb3JtR3JvdXApIHtcbiAgY29uc3QgZGF0YSA9IHt9O1xuICBpZiAoIXRoaXMuY29udHJvbHMpIHJldHVybiB0aGlzLmZvcm1hdHRlZFZhbHVlO1xuICBlbHNlXG4gICAgZm9yIChjb25zdCBjb250cm9sTmFtZSBpbiB0aGlzLmNvbnRyb2xzKSB7XG4gICAgICBkYXRhW2NvbnRyb2xOYW1lXSA9ICg8Rm9ybUNvbnRyb2wgfCBGb3JtR3JvdXAgfCBGb3JtQXJyYXk+dGhpcy5jb250cm9sc1tjb250cm9sTmFtZV0pLmdldEZvcm1hdHRlZFZhbHVlKCk7XG4gICAgfVxuICByZXR1cm4gZGF0YTtcbn07XG5Gb3JtQXJyYXkucHJvdG90eXBlLmdldEZvcm1hdHRlZFZhbHVlID0gZnVuY3Rpb24gKHRoaXM6IEZvcm1BcnJheSkge1xuICBjb25zdCBkYXRhID0gW107XG4gIGlmICghdGhpcy5jb250cm9scykgcmV0dXJuIHRoaXMuZm9ybWF0dGVkVmFsdWU7XG4gIGVsc2VcbiAgICBmb3IgKGNvbnN0IGNvbnRyb2wgb2YgdGhpcy5jb250cm9scykge1xuICAgICAgZGF0YS5wdXNoKCg8Rm9ybUNvbnRyb2wgfCBGb3JtR3JvdXA+Y29udHJvbCkuZ2V0Rm9ybWF0dGVkVmFsdWUoKSk7XG4gICAgfVxuICByZXR1cm4gZGF0YTtcbn07XG5Gb3JtQ29udHJvbC5wcm90b3R5cGUuZ2V0Rm9ybWF0dGVkVmFsdWUgPSBmdW5jdGlvbiAodGhpczogRm9ybUNvbnRyb2wpIHtcbiAgcmV0dXJuIHRoaXMuZm9ybWF0dGVkVmFsdWU7XG59O1xuLy8jZW5kcmVnaW9uXG5cbmV4cG9ydCB7fTtcbiJdfQ==