@discordeno/bot 19.0.0-next.c570a88 → 19.0.0-next.c6ca749

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.
@@ -238,6 +238,7 @@ function transformMessage(bot, payload) {
238
238
  });
239
239
  if (props.type) message.type = payload.type;
240
240
  if (props.webhookId && payload.webhook_id) message.webhookId = bot.transformers.snowflake(payload.webhook_id);
241
+ if (props.poll && payload.poll) message.poll = bot.transformers.poll(bot, payload.poll);
241
242
  if (props.call && payload.call) message.call = bot.transformers.messageCall(bot, payload.call);
242
243
  return bot.transformers.customizers.message(bot, payload, message);
243
244
  }
@@ -265,4 +266,4 @@ function transformMessageCall(bot, payload) {
265
266
  return bot.transformers.customizers.messageCall(bot, payload, call);
266
267
  }
267
268
 
268
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvbWVzc2FnZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXNjb3JkQXBwbGljYXRpb25JbnRlZ3JhdGlvblR5cGUsXG4gIHR5cGUgRGlzY29yZE1lc3NhZ2UsXG4gIHR5cGUgRGlzY29yZE1lc3NhZ2VDYWxsLFxuICB0eXBlIERpc2NvcmRNZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YSxcbiAgdHlwZSBJbnRlcmFjdGlvblR5cGVzLFxuICB0eXBlIE1lc3NhZ2VBY3Rpdml0eVR5cGVzLFxuICB0eXBlIE1lc3NhZ2VUeXBlcyxcbiAgdHlwZSBTdGlja2VyRm9ybWF0VHlwZXMsXG59IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJ1xuaW1wb3J0IHsgQ0hBTk5FTF9NRU5USU9OX1JFR0VYIH0gZnJvbSAnLi4vY29uc3RhbnRzLmpzJ1xuaW1wb3J0IHsgc25vd2ZsYWtlVG9UaW1lc3RhbXAsIHR5cGUgQm90IH0gZnJvbSAnLi4vaW5kZXguanMnXG5pbXBvcnQgeyBNZXNzYWdlRmxhZ3MgfSBmcm9tICcuLi90eXBpbmdzLmpzJ1xuaW1wb3J0IHR5cGUgeyBBdHRhY2htZW50IH0gZnJvbSAnLi9hdHRhY2htZW50LmpzJ1xuaW1wb3J0IHR5cGUgeyBDaGFubmVsIH0gZnJvbSAnLi9jaGFubmVsLmpzJ1xuaW1wb3J0IHR5cGUgeyBDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudC5qcydcbmltcG9ydCB0eXBlIHsgRW1iZWQgfSBmcm9tICcuL2VtYmVkLmpzJ1xuaW1wb3J0IHR5cGUgeyBFbW9qaSB9IGZyb20gJy4vZW1vamkuanMnXG5pbXBvcnQgdHlwZSB7IE1lbWJlciB9IGZyb20gJy4vbWVtYmVyLmpzJ1xuaW1wb3J0IHsgVG9nZ2xlQml0ZmllbGQgfSBmcm9tICcuL3RvZ2dsZXMvVG9nZ2xlQml0ZmllbGQuanMnXG5pbXBvcnQgdHlwZSB7IFVzZXIgfSBmcm9tICcuL3VzZXIuanMnXG5cbmNvbnN0IGJhc2VNZXNzYWdlOiBQYXJ0aWFsPE1lc3NhZ2U+ICYgTWVzc2FnZUJhc2UgPSB7XG4gIGdldCBjcm9zc3Bvc3RlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncz8uY29udGFpbnMoTWVzc2FnZUZsYWdzLkNyb3NzcG9zdGVkKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgY3Jvc3Nwb3N0ZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLkNyb3NzcG9zdGVkKVxuICAgIGVsc2UgdGhpcy5mbGFncy5yZW1vdmUoTWVzc2FnZUZsYWdzLkNyb3NzcG9zdGVkKVxuICB9LFxuICBnZXQgZXBoZW1lcmFsKCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuRXBoZW1lcmFsKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgZXBoZW1lcmFsKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmZsYWdzKSByZXR1cm5cbiAgICBpZiAodmFsdWUpIHRoaXMuZmxhZ3MuYWRkKE1lc3NhZ2VGbGFncy5FcGhlbWVyYWwpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuRXBoZW1lcmFsKVxuICB9LFxuICBnZXQgZmFpbGVkVG9NZW50aW9uU29tZVJvbGVzSW5UaHJlYWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmxhZ3M/LmNvbnRhaW5zKE1lc3NhZ2VGbGFncy5GYWlsZWRUb01lbnRpb25Tb21lUm9sZXNJblRocmVhZCkgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IGZhaWxlZFRvTWVudGlvblNvbWVSb2xlc0luVGhyZWFkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmZsYWdzKSByZXR1cm5cbiAgICBpZiAodmFsdWUpIHRoaXMuZmxhZ3MuYWRkKE1lc3NhZ2VGbGFncy5GYWlsZWRUb01lbnRpb25Tb21lUm9sZXNJblRocmVhZClcbiAgICBlbHNlIHRoaXMuZmxhZ3MucmVtb3ZlKE1lc3NhZ2VGbGFncy5GYWlsZWRUb01lbnRpb25Tb21lUm9sZXNJblRocmVhZClcbiAgfSxcbiAgZ2V0IGhhc1RocmVhZCgpIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncz8uY29udGFpbnMoTWVzc2FnZUZsYWdzLkhhc1RocmVhZCkgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IGhhc1RocmVhZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5mbGFncykgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmZsYWdzLmFkZChNZXNzYWdlRmxhZ3MuSGFzVGhyZWFkKVxuICAgIGVsc2UgdGhpcy5mbGFncy5yZW1vdmUoTWVzc2FnZUZsYWdzLkhhc1RocmVhZClcbiAgfSxcbiAgZ2V0IGlzQ3Jvc3Nwb3N0KCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuSXNDcm9zc3Bvc3QpID8/IGZhbHNlXG4gIH0sXG4gIHNldCBpc0Nyb3NzcG9zdCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5mbGFncykgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmZsYWdzLmFkZChNZXNzYWdlRmxhZ3MuSXNDcm9zc3Bvc3QpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuSXNDcm9zc3Bvc3QpXG4gIH0sXG4gIGdldCBsb2FkaW5nKCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuTG9hZGluZykgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IGxvYWRpbmcodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLkxvYWRpbmcpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuTG9hZGluZylcbiAgfSxcbiAgZ2V0IG1lbnRpb25lZFVzZXJJZHMoKSB7XG4gICAgcmV0dXJuIHRoaXMubWVudGlvbnM/Lm1hcCgodXNlcikgPT4gdXNlci5pZCkgPz8gW11cbiAgfSxcbiAgZ2V0IG1lbnRpb25FdmVyeW9uZSgpIHtcbiAgICByZXR1cm4gdGhpcy5iaXRmaWVsZD8uY29udGFpbnMoMikgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IG1lbnRpb25FdmVyeW9uZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5iaXRmaWVsZCkgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmJpdGZpZWxkLmFkZCgyKVxuICAgIGVsc2UgdGhpcy5iaXRmaWVsZC5yZW1vdmUoMilcbiAgfSxcbiAgZ2V0IHBpbm5lZCgpIHtcbiAgICByZXR1cm4gdGhpcy5iaXRmaWVsZD8uY29udGFpbnMoMykgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IHBpbm5lZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5iaXRmaWVsZCkgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmJpdGZpZWxkLmFkZCgzKVxuICAgIGVsc2UgdGhpcy5iaXRmaWVsZC5yZW1vdmUoMylcbiAgfSxcbiAgZ2V0IHNvdXJjZU1lc3NhZ2VEZWxldGVkKCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuU291cmNlTWVzc2FnZURlbGV0ZWQpID8/IGZhbHNlXG4gIH0sXG4gIHNldCBzb3VyY2VNZXNzYWdlRGVsZXRlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5mbGFncykgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmZsYWdzLmFkZChNZXNzYWdlRmxhZ3MuU291cmNlTWVzc2FnZURlbGV0ZWQpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuU291cmNlTWVzc2FnZURlbGV0ZWQpXG4gIH0sXG4gIGdldCBzdXBwcmVzc0VtYmVkcygpIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncz8uY29udGFpbnMoTWVzc2FnZUZsYWdzLlN1cHByZXNzRW1iZWRzKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgc3VwcHJlc3NFbWJlZHModmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLlN1cHByZXNzRW1iZWRzKVxuICAgIGVsc2UgdGhpcy5mbGFncy5yZW1vdmUoTWVzc2FnZUZsYWdzLlN1cHByZXNzRW1iZWRzKVxuICB9LFxuICBnZXQgc3VwcHJlc3NOb3RpZmljYXRpb25zKCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuU3VwcHJlc3NOb3RpZmljYXRpb25zKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgc3VwcHJlc3NOb3RpZmljYXRpb25zKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmZsYWdzKSByZXR1cm5cbiAgICBpZiAodmFsdWUpIHRoaXMuZmxhZ3MuYWRkKE1lc3NhZ2VGbGFncy5TdXBwcmVzc05vdGlmaWNhdGlvbnMpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuU3VwcHJlc3NOb3RpZmljYXRpb25zKVxuICB9LFxuICBnZXQgdGltZXN0YW1wKCkge1xuICAgIHJldHVybiB0aGlzLmlkID8gc25vd2ZsYWtlVG9UaW1lc3RhbXAodGhpcy5pZCkgOiAwXG4gIH0sXG4gIGdldCB0dHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuYml0ZmllbGQ/LmNvbnRhaW5zKDEpID8/IGZhbHNlXG4gIH0sXG4gIHNldCB0dHModmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuYml0ZmllbGQpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5iaXRmaWVsZC5hZGQoMSlcbiAgICBlbHNlIHRoaXMuYml0ZmllbGQucmVtb3ZlKDEpXG4gIH0sXG4gIGdldCB1cmdlbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmxhZ3M/LmNvbnRhaW5zKE1lc3NhZ2VGbGFncy5VcmdlbnQpID8/IGZhbHNlXG4gIH0sXG4gIHNldCB1cmdlbnQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLlVyZ2VudClcbiAgICBlbHNlIHRoaXMuZmxhZ3MucmVtb3ZlKE1lc3NhZ2VGbGFncy5VcmdlbnQpXG4gIH0sXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVzc2FnZUJhc2Uge1xuICAvKiogSG9sZHMgYWxsIHRoZSBib29sZWFuIHZhbHVlcyBvbiB0aGlzIG1lc3NhZ2UuICovXG4gIGJpdGZpZWxkPzogVG9nZ2xlQml0ZmllbGRcbiAgLyoqIFdoZXRoZXIgdGhpcyBtZXNzYWdlIGhhcyBiZWVuIHB1Ymxpc2hlZCB0byBzdWJzY3JpYmVkIGNoYW5uZWxzICh2aWEgQ2hhbm5lbCBGb2xsb3dpbmcpICovXG4gIGNyb3NzcG9zdGVkOiBib29sZWFuXG4gIC8qKiBXaGV0aGVyIHRoaXMgbWVzc2FnZSBpcyBvbmx5IHZpc2libGUgdG8gdGhlIHVzZXIgd2hvIGludm9rZWQgdGhlIEludGVyYWN0aW9uICovXG4gIGVwaGVtZXJhbDogYm9vbGVhblxuICAvKiogV2hldGhlciB0aGlzIG1lc3NhZ2UgZmFpbGVkIHRvIG1lbnRpb24gc29tZSByb2xlcyBhbmQgYWRkIHRoZWlyIG1lbWJlcnMgdG8gdGhlIHRocmVhZCAqL1xuICBmYWlsZWRUb01lbnRpb25Tb21lUm9sZXNJblRocmVhZDogYm9vbGVhblxuICAvKiogTWVzc2FnZSBmbGFncyBjb21iaW5lZCBhcyBhIGJpdGZpZWxkICovXG4gIGZsYWdzPzogVG9nZ2xlQml0ZmllbGRcbiAgLyoqIFdoZXRoZXIgdGhpcyBtZXNzYWdlIGhhcyBhbiBhc3NvY2lhdGVkIHRocmVhZCwgd2l0aCB0aGUgc2FtZSBpZCBhcyB0aGUgbWVzc2FnZSAqL1xuICBoYXNUaHJlYWQ6IGJvb2xlYW5cbiAgLyoqIFdoZXRoZXIgdGhpcyBtZXNzYWdlIG9yaWdpbmF0ZWQgZnJvbSBhIG1lc3NhZ2UgaW4gYW5vdGhlciBjaGFubmVsICh2aWEgQ2hhbm5lbCBGb2xsb3dpbmcpICovXG4gIGlzQ3Jvc3Nwb3N0OiBib29sZWFuXG4gIC8qKiBXaGV0aGVyIHRoaXMgbWVzc2FnZSBpcyBhbiBJbnRlcmFjdGlvbiBSZXNwb25zZSBhbmQgdGhlIGJvdCBpcyBcInRoaW5raW5nXCIgKi9cbiAgbG9hZGluZzogYm9vbGVhblxuICAvKiogVGhlIGlkcyBvZiB0aGUgdXNlcnMgd2hvIHdlcmUgbWVudGlvbmVkIGluIHRoaXMgbWVzc2FnZS4gKi9cbiAgbWVudGlvbmVkVXNlcklkczogYmlnaW50W11cbiAgLyoqIFdoZXRoZXIgdGhpcyBtZXNzYWdlIG1lbnRpb25zIGV2ZXJ5b25lICovXG4gIG1lbnRpb25FdmVyeW9uZTogYm9vbGVhblxuICAvKiogV2hldGhlciB0aGlzIG1lc3NhZ2UgaXMgcGlubmVkICovXG4gIHBpbm5lZDogYm9vbGVhblxuICAvKiogV2hldGhlciB0aGUgc291cmNlIG1lc3NhZ2UgZm9yIHRoaXMgY3Jvc3Nwb3N0IGhhcyBiZWVuIGRlbGV0ZWQgKHZpYSBDaGFubmVsIEZvbGxvd2luZykgKi9cbiAgc291cmNlTWVzc2FnZURlbGV0ZWQ6IGJvb2xlYW5cbiAgLyoqIFdoZXRoZXIgZG8gbm90IGluY2x1ZGUgYW55IGVtYmVkcyB3aGVuIHNlcmlhbGl6aW5nIHRoaXMgbWVzc2FnZSAqL1xuICBzdXBwcmVzc0VtYmVkczogYm9vbGVhblxuICAvKiogV2hldGhlciB0aGlzIG1lc3NhZ2Ugd2lsbCBub3QgdHJpZ2dlciBwdXNoIGFuZCBkZXNrdG9wIG5vdGlmaWNhdGlvbnMgKi9cbiAgc3VwcHJlc3NOb3RpZmljYXRpb25zOiBib29sZWFuXG4gIC8qKiBUaGUgdGltZXN0YW1wIGluIG1pbGxpc2Vjb25kcyB3aGVuIHRoaXMgbWVzc2FnZSB3YXMgY3JlYXRlZCAqL1xuICB0aW1lc3RhbXA6IG51bWJlclxuICAvKiogV2hldGhlciB0aGlzIHdhcyBhIFRUUyBtZXNzYWdlLiAqL1xuICB0dHM6IGJvb2xlYW5cbiAgLyoqIFdoZXRoZXIgdGhpcyBtZXNzYWdlIGNhbWUgZnJvbSB0aGUgdXJnZW50IG1lc3NhZ2Ugc3lzdGVtICovXG4gIHVyZ2VudDogYm9vbGVhblxufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlQmFzZSB7XG4gIC8qKiBTZW50IHdpdGggUmljaCBQcmVzZW5jZS1yZWxhdGVkIGNoYXQgZW1iZWRzICovXG4gIGFjdGl2aXR5Pzoge1xuICAgIC8qKiBUeXBlIG9mIG1lc3NhZ2UgYWN0aXZpdHkgKi9cbiAgICB0eXBlOiBNZXNzYWdlQWN0aXZpdHlUeXBlc1xuICAgIC8qKiBwYXJ0eV9pZCBmcm9tIGEgUmljaCBQcmVzZW5jZSBldmVudCAqL1xuICAgIHBhcnR5SWQ/OiBzdHJpbmdcbiAgfVxuICAvKiogaWYgdGhlIG1lc3NhZ2UgaXMgYW4gSW50ZXJhY3Rpb24gb3IgYXBwbGljYXRpb24tb3duZWQgd2ViaG9vaywgdGhpcyBpcyB0aGUgaWQgb2YgdGhlIGFwcGxpY2F0aW9uICovXG4gIGFwcGxpY2F0aW9uSWQ/OiBiaWdpbnRcbiAgLyoqIEFueSBhdHRhY2hlZCBmaWxlcyBvbiB0aGlzIG1lc3NhZ2UuICovXG4gIGF0dGFjaG1lbnRzPzogQXR0YWNobWVudFtdXG4gIC8qKiBUaGUgYXV0aG9yIG9mIHRoaXMgbWVzc2FnZSAobm90IGd1YXJhbnRlZWQgdG8gYmUgYSB2YWxpZCB1c2VyKSBOb3RlOiBUaGUgYXV0aG9yIG9iamVjdCBmb2xsb3dzIHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIHVzZXIgb2JqZWN0LCBidXQgaXMgb25seSBhIHZhbGlkIHVzZXIgaW4gdGhlIGNhc2Ugd2hlcmUgdGhlIG1lc3NhZ2UgaXMgZ2VuZXJhdGVkIGJ5IGEgdXNlciBvciBib3QgdXNlci4gSWYgdGhlIG1lc3NhZ2UgaXMgZ2VuZXJhdGVkIGJ5IGEgd2ViaG9vaywgdGhlIGF1dGhvciBvYmplY3QgY29ycmVzcG9uZHMgdG8gdGhlIHdlYmhvb2sncyBpZCwgdXNlcm5hbWUsIGFuZCBhdmF0YXIuIFlvdSBjYW4gdGVsbCBpZiBhIG1lc3NhZ2UgaXMgZ2VuZXJhdGVkIGJ5IGEgd2ViaG9vayBieSBjaGVja2luZyBmb3IgdGhlIHdlYmhvb2tfaWQgb24gdGhlIG1lc3NhZ2Ugb2JqZWN0LiAqL1xuICBhdXRob3I6IFVzZXJcbiAgLyoqIGlkIG9mIHRoZSBjaGFubmVsIHRoZSBtZXNzYWdlIHdhcyBzZW50IGluICovXG4gIGNoYW5uZWxJZDogYmlnaW50XG4gIC8qKiBUaGUgY29tcG9uZW50cyByZWxhdGVkIHRvIHRoaXMgbWVzc2FnZSAqL1xuICBjb21wb25lbnRzOiBDb21wb25lbnRbXVxuICAvKiogQ29udGVudHMgb2YgdGhlIG1lc3NhZ2UgKi9cbiAgY29udGVudDogc3RyaW5nXG4gIC8qKiBUaGUgdGltZXN0YW1wIGluIG1pbGxpc2Vjb25kcyB3aGVuIHRoaXMgbWVzc2FnZSB3YXMgZWRpdGVkIGxhc3QuICovXG4gIGVkaXRlZFRpbWVzdGFtcD86IG51bWJlclxuICAvKiogQW55IGVtYmVkZGVkIGNvbnRlbnQgKi9cbiAgZW1iZWRzPzogRW1iZWRbXVxuICAvKiogaWQgb2YgdGhlIGd1aWxkIHRoZSBtZXNzYWdlIHdhcyBzZW50IGluIE5vdGU6IEZvciBNRVNTQUdFX0NSRUFURSBhbmQgTUVTU0FHRV9VUERBVEUgZXZlbnRzLCB0aGUgbWVzc2FnZSBvYmplY3QgbWF5IG5vdCBjb250YWluIGEgZ3VpbGRfaWQgb3IgbWVtYmVyIGZpZWxkIHNpbmNlIHRoZSBldmVudHMgYXJlIHNlbnQgZGlyZWN0bHkgdG8gdGhlIHJlY2VpdmluZyB1c2VyIGFuZCB0aGUgYm90IHdobyBzZW50IHRoZSBtZXNzYWdlLCByYXRoZXIgdGhhbiBiZWluZyBzZW50IHRocm91Z2ggdGhlIGd1aWxkIGxpa2Ugbm9uLWVwaGVtZXJhbCBtZXNzYWdlcy4gKi9cbiAgZ3VpbGRJZD86IGJpZ2ludFxuICAvKiogaWQgb2YgdGhlIG1lc3NhZ2UgKi9cbiAgaWQ6IGJpZ2ludFxuICAvKiogc2VudCBpZiB0aGUgbWVzc2FnZSBpcyBzZW50IGFzIGEgcmVzdWx0IG9mIGFuIGludGVyYWN0aW9uICovXG4gIGludGVyYWN0aW9uTWV0YWRhdGE/OiBNZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YVxuICAvKipcbiAgICogU2VudCBpZiB0aGUgbWVzc2FnZSBpcyBhIHJlc3BvbnNlIHRvIGFuIEludGVyYWN0aW9uXG4gICAqXG4gICAqIEBkZXByZWNhdGVkIERlcHJlY2F0ZWQgaW4gZmF2b3Igb2Yge0BsaW5rIGludGVyYWN0aW9uTWV0YWRhdGF9XG4gICAqL1xuICBpbnRlcmFjdGlvbj86IHtcbiAgICAvKiogSWQgb2YgdGhlIGludGVyYWN0aW9uICovXG4gICAgaWQ6IGJpZ2ludFxuICAgIC8qKiBUaGUgbWVtYmVyIHdobyBpbnZva2VkIHRoZSBpbnRlcmFjdGlvbiBpbiB0aGUgZ3VpbGQgICovXG4gICAgbWVtYmVyPzogTWVtYmVyXG4gICAgLyoqIFRoZSBuYW1lIG9mIHRoZSBBcHBsaWNhdGlvbkNvbW1hbmQgaW5jbHVkaW5nIHRoZSBuYW1lIG9mIHRoZSBzdWJjb21tYW5kL3N1YmNvbW1hbmQgZ3JvdXAgKi9cbiAgICBuYW1lOiBzdHJpbmdcbiAgICAvKiogVGhlIHR5cGUgb2YgaW50ZXJhY3Rpb24gKi9cbiAgICB0eXBlOiBJbnRlcmFjdGlvblR5cGVzXG4gICAgLyoqIFRoZSB1c2VyIHdobyBpbnZva2VkIHRoZSBpbnRlcmFjdGlvbiAqL1xuICAgIHVzZXI6IFVzZXJcbiAgfVxuICAvKiogTWVtYmVyIHByb3BlcnRpZXMgZm9yIHRoaXMgbWVzc2FnZSdzIGF1dGhvciBOb3RlOiBUaGUgbWVtYmVyIG9iamVjdCBleGlzdHMgaW4gTUVTU0FHRV9DUkVBVEUgYW5kIE1FU1NBR0VfVVBEQVRFIGV2ZW50cyBmcm9tIHRleHQtYmFzZWQgZ3VpbGQgY2hhbm5lbHMuIFRoaXMgYWxsb3dzIGJvdHMgdG8gb2J0YWluIHJlYWwtdGltZSBtZW1iZXIgZGF0YSB3aXRob3V0IHJlcXVpcmluZyBib3RzIHRvIHN0b3JlIG1lbWJlciBzdGF0ZSBpbiBtZW1vcnkuICovXG4gIG1lbWJlcj86IE1lbWJlclxuICAvKiogVXNlcnMgc3BlY2lmaWNhbGx5IG1lbnRpb25lZCBpbiB0aGUgbWVzc2FnZSBOb3RlOiBUaGUgdXNlciBvYmplY3RzIGluIHRoZSBtZW50aW9ucyBhcnJheSB3aWxsIG9ubHkgaGF2ZSB0aGUgcGFydGlhbCBtZW1iZXIgZmllbGQgcHJlc2VudCBpbiBNRVNTQUdFX0NSRUFURSBhbmQgTUVTU0FHRV9VUERBVEUgZXZlbnRzIGZyb20gdGV4dC1iYXNlZCBndWlsZCBjaGFubmVscy4gKi9cbiAgbWVudGlvbnM/OiBVc2VyW11cbiAgLyoqIENoYW5uZWxzIHNwZWNpZmljYWxseSBtZW50aW9uZWQgaW4gdGhpcyBtZXNzYWdlIE5vdGU6IE5vdCBhbGwgY2hhbm5lbCBtZW50aW9ucyBpbiBhIG1lc3NhZ2Ugd2lsbCBhcHBlYXIgaW4gbWVudGlvbl9jaGFubmVscy4gT25seSB0ZXh0dWFsIGNoYW5uZWxzIHRoYXQgYXJlIHZpc2libGUgdG8gZXZlcnlvbmUgaW4gYSBkaXNjb3ZlcmFibGUgZ3VpbGQgd2lsbCBldmVyIGJlIGluY2x1ZGVkLiBPbmx5IGNyb3NzcG9zdGVkIG1lc3NhZ2VzICh2aWEgQ2hhbm5lbCBGb2xsb3dpbmcpIGN1cnJlbnRseSBpbmNsdWRlIG1lbnRpb25fY2hhbm5lbHMgYXQgYWxsLiBJZiBubyBtZW50aW9ucyBpbiB0aGUgbWVzc2FnZSBtZWV0IHRoZXNlIHJlcXVpcmVtZW50cywgdGhpcyBmaWVsZCB3aWxsIG5vdCBiZSBzZW50LiAqL1xuICBtZW50aW9uZWRDaGFubmVsSWRzPzogYmlnaW50W11cbiAgLyoqIFJvbGVzIHNwZWNpZmljYWxseSBtZW50aW9uZWQgaW4gdGhpcyBtZXNzYWdlICovXG4gIG1lbnRpb25lZFJvbGVJZHM/OiBiaWdpbnRbXVxuICAvKiogRGF0YSBzaG93aW5nIHRoZSBzb3VyY2Ugb2YgYSBjcm9zc3Bvc3RlZCBjaGFubmVsIGZvbGxvdyBhZGQsIHBpbiBvciByZXBseSBtZXNzYWdlICovXG4gIG1lc3NhZ2VSZWZlcmVuY2U/OiB7XG4gICAgLyoqIGlkIG9mIHRoZSBvcmlnaW5hdGluZyBtZXNzYWdlJ3MgY2hhbm5lbCBOb3RlOiBjaGFubmVsX2lkIGlzIG9wdGlvbmFsIHdoZW4gY3JlYXRpbmcgYSByZXBseSwgYnV0IHdpbGwgYWx3YXlzIGJlIHByZXNlbnQgd2hlbiByZWNlaXZpbmcgYW4gZXZlbnQvcmVzcG9uc2UgdGhhdCBpbmNsdWRlcyB0aGlzIGRhdGEgbW9kZWwuICovXG4gICAgY2hhbm5lbElkPzogYmlnaW50XG4gICAgLyoqIGlkIG9mIHRoZSBvcmlnaW5hdGluZyBtZXNzYWdlJ3MgZ3VpbGQgKi9cbiAgICBndWlsZElkPzogYmlnaW50XG4gICAgLyoqIGlkIG9mIHRoZSBvcmlnaW5hdGluZyBtZXNzYWdlICovXG4gICAgbWVzc2FnZUlkPzogYmlnaW50XG4gIH1cbiAgLyoqIFVzZWQgZm9yIHZhbGlkYXRpbmcgYSBtZXNzYWdlIHdhcyBzZW50ICovXG4gIG5vbmNlPzogc3RyaW5nIHwgbnVtYmVyXG4gIC8qKiBSZWFjdGlvbnMgb24gdGhpcyBtZXNzYWdlLiAqL1xuICByZWFjdGlvbnM/OiBBcnJheTx7XG4gICAgLyoqIFdoZXRoZXIgdGhlIGN1cnJlbnQgdXNlciByZWFjdGVkIHVzaW5nIHRoaXMgZW1vamkgKi9cbiAgICBtZTogYm9vbGVhblxuICAgIC8qKlx0V2hldGhlciB0aGUgY3VycmVudCB1c2VyIHN1cGVyLXJlYWN0ZWQgdXNpbmcgdGhpcyBlbW9qaSAqL1xuICAgIG1lQnVyc3Q6IGJvb2xlYW5cbiAgICAvKiogVGltZXMgdGhpcyBlbW9qaSBoYXMgYmVlbiB1c2VkIHRvIHJlYWN0ICovXG4gICAgY291bnQ6IG51bWJlclxuICAgIC8qKlx0UmVhY3Rpb24gY291bnQgZGV0YWlscyBvYmplY3QgKi9cbiAgICBjb3VudERldGFpbHM6IHtcbiAgICAgIC8qKiBDb3VudCBvZiBzdXBlciByZWFjdGlvbnMgKi9cbiAgICAgIGJ1cnN0OiBudW1iZXJcbiAgICAgIC8qKlx0Q291bnQgb2Ygbm9ybWFsIHJlYWN0aW9ucyAqL1xuICAgICAgbm9ybWFsOiBudW1iZXJcbiAgICB9XG4gICAgLyoqIEVtb2ppIGluZm9ybWF0aW9uICovXG4gICAgZW1vamk6IEVtb2ppXG4gICAgLyoqIEhFWCBjb2xvcnMgdXNlZCBmb3Igc3VwZXIgcmVhY3Rpb24gKi9cbiAgICBidXJzdENvbG9yczogc3RyaW5nW11cbiAgfT5cbiAgLyoqIFNlbnQgaWYgdGhlIG1lc3NhZ2UgY29udGFpbnMgc3RpY2tlcnMgKi9cbiAgc3RpY2tlckl0ZW1zPzogQXJyYXk8e1xuICAgIC8qKiBUaGUgaWQgb2YgdGhpcyBzdGlja2VyLiAqL1xuICAgIGlkOiBiaWdpbnRcbiAgICAvKiogVGhlIG5hbWUgb2YgdGhpcyBzdGlja2VyLiAqL1xuICAgIG5hbWU6IHN0cmluZ1xuICAgIC8qKiBUaGUgdHlwZSBvZiB0aGlzIHN0aWNrZXJzIGZvcm1hdC4gKi9cbiAgICBmb3JtYXRUeXBlOiBTdGlja2VyRm9ybWF0VHlwZXNcbiAgfT5cbiAgLyoqIFR5cGUgb2YgbWVzc2FnZSAqL1xuICB0eXBlOiBNZXNzYWdlVHlwZXNcbiAgLyoqIFRoZSB0aHJlYWQgdGhhdCB3YXMgc3RhcnRlZCBmcm9tIHRoaXMgbWVzc2FnZSwgaW5jbHVkZXMgdGhyZWFkIG1lbWJlciBvYmplY3QgICovXG4gIHRocmVhZD86IENoYW5uZWxcbiAgLyoqIElmIHRoZSBtZXNzYWdlIGlzIGdlbmVyYXRlZCBieSBhIHdlYmhvb2ssIHRoaXMgaXMgdGhlIHdlYmhvb2sncyBpZCAqL1xuICB3ZWJob29rSWQ/OiBiaWdpbnRcbiAgLyoqIFRoZSBjYWxsIGFzc29jaWF0ZWQgd2l0aCB0aGUgbWVzc2FnZSAqL1xuICBjYWxsPzogTWVzc2FnZUNhbGxcbn1cblxuY29uc3QgRU1QVFlfU1RSSU5HID0gJydcblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybU1lc3NhZ2UoYm90OiBCb3QsIHBheWxvYWQ6IERpc2NvcmRNZXNzYWdlKTogTWVzc2FnZSB7XG4gIGNvbnN0IGd1aWxkSWQgPSBwYXlsb2FkLmd1aWxkX2lkID8gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5ndWlsZF9pZCkgOiB1bmRlZmluZWRcbiAgY29uc3QgdXNlcklkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5hdXRob3IuaWQpXG5cbiAgY29uc3QgbWVzc2FnZTogTWVzc2FnZSA9IE9iamVjdC5jcmVhdGUoYmFzZU1lc3NhZ2UpXG4gIG1lc3NhZ2UuYml0ZmllbGQgPSBuZXcgVG9nZ2xlQml0ZmllbGQoKVxuICBtZXNzYWdlLmZsYWdzID0gbmV3IFRvZ2dsZUJpdGZpZWxkKHBheWxvYWQuZmxhZ3MpXG5cbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLm1lc3NhZ2VcblxuICBpZiAocHJvcHMuYXV0aG9yICYmIHBheWxvYWQuYXV0aG9yKSBtZXNzYWdlLmF1dGhvciA9IGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHBheWxvYWQuYXV0aG9yKVxuICBpZiAocHJvcHMuYXBwbGljYXRpb25JZCAmJiBwYXlsb2FkLmFwcGxpY2F0aW9uX2lkKSBtZXNzYWdlLmFwcGxpY2F0aW9uSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmFwcGxpY2F0aW9uX2lkKVxuICBpZiAocHJvcHMuYXR0YWNobWVudHMgJiYgcGF5bG9hZC5hdHRhY2htZW50cz8ubGVuZ3RoKVxuICAgIG1lc3NhZ2UuYXR0YWNobWVudHMgPSBwYXlsb2FkLmF0dGFjaG1lbnRzLm1hcCgoYXR0YWNobWVudCkgPT4gYm90LnRyYW5zZm9ybWVycy5hdHRhY2htZW50KGJvdCwgYXR0YWNobWVudCkpXG4gIGlmIChwcm9wcy5jaGFubmVsSWQgJiYgcGF5bG9hZC5jaGFubmVsX2lkKSBtZXNzYWdlLmNoYW5uZWxJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuY2hhbm5lbF9pZClcbiAgaWYgKHByb3BzLmNvbXBvbmVudHMgJiYgcGF5bG9hZC5jb21wb25lbnRzPy5sZW5ndGgpIG1lc3NhZ2UuY29tcG9uZW50cyA9IHBheWxvYWQuY29tcG9uZW50cy5tYXAoKGNvbXApID0+IGJvdC50cmFuc2Zvcm1lcnMuY29tcG9uZW50KGJvdCwgY29tcCkpXG4gIGlmIChwcm9wcy5jb250ZW50ICYmIHBheWxvYWQuY29udGVudCkgbWVzc2FnZS5jb250ZW50ID0gcGF5bG9hZC5jb250ZW50ID8/IEVNUFRZX1NUUklOR1xuICBpZiAocHJvcHMuZWRpdGVkVGltZXN0YW1wICYmIHBheWxvYWQuZWRpdGVkX3RpbWVzdGFtcCkgbWVzc2FnZS5lZGl0ZWRUaW1lc3RhbXAgPSBEYXRlLnBhcnNlKHBheWxvYWQuZWRpdGVkX3RpbWVzdGFtcClcbiAgaWYgKHByb3BzLmVtYmVkcyAmJiBwYXlsb2FkLmVtYmVkcz8ubGVuZ3RoKSBtZXNzYWdlLmVtYmVkcyA9IHBheWxvYWQuZW1iZWRzLm1hcCgoZW1iZWQpID0+IGJvdC50cmFuc2Zvcm1lcnMuZW1iZWQoYm90LCBlbWJlZCkpXG4gIGlmIChwcm9wcy5ndWlsZElkICYmIGd1aWxkSWQpIG1lc3NhZ2UuZ3VpbGRJZCA9IGd1aWxkSWRcbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQpIG1lc3NhZ2UuaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmlkKVxuICBpZiAocGF5bG9hZC5pbnRlcmFjdGlvbl9tZXRhZGF0YSkgbWVzc2FnZS5pbnRlcmFjdGlvbk1ldGFkYXRhID0gdHJhbnNmb3JtTWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGEoYm90LCBwYXlsb2FkLmludGVyYWN0aW9uX21ldGFkYXRhKVxuICBpZiAocGF5bG9hZC5pbnRlcmFjdGlvbikge1xuICAgIGNvbnN0IGludGVyYWN0aW9uID0ge30gYXMgTm9uTnVsbGFibGU8TWVzc2FnZVsnaW50ZXJhY3Rpb24nXT5cbiAgICBsZXQgZWRpdGVkID0gZmFsc2VcbiAgICBpZiAocHJvcHMuaW50ZXJhY3Rpb24uaWQpIHtcbiAgICAgIGludGVyYWN0aW9uLmlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pbnRlcmFjdGlvbi5pZClcbiAgICAgIGVkaXRlZCA9IHRydWVcbiAgICB9XG4gICAgaWYgKHByb3BzLmludGVyYWN0aW9uLm1lbWJlciAmJiBwYXlsb2FkLmludGVyYWN0aW9uLm1lbWJlcikge1xuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBUT0RPOiBwYXJ0aWFsIC0gY2hlY2sgd2h5IHRoaXMgaXMgcGFydGlhbCBhbmQgaGFuZGxlIGFzIG5lZWRlZFxuICAgICAgaW50ZXJhY3Rpb24ubWVtYmVyID0gYm90LnRyYW5zZm9ybWVycy5tZW1iZXIoYm90LCBwYXlsb2FkLmludGVyYWN0aW9uLm1lbWJlciwgZ3VpbGRJZCwgcGF5bG9hZC5pbnRlcmFjdGlvbi51c2VyLmlkKVxuICAgICAgZWRpdGVkID0gdHJ1ZVxuICAgIH1cbiAgICBpZiAocHJvcHMuaW50ZXJhY3Rpb24ubmFtZSkge1xuICAgICAgaW50ZXJhY3Rpb24ubmFtZSA9IHBheWxvYWQuaW50ZXJhY3Rpb24ubmFtZVxuICAgICAgZWRpdGVkID0gdHJ1ZVxuICAgIH1cbiAgICBpZiAocHJvcHMuaW50ZXJhY3Rpb24udHlwZSkge1xuICAgICAgaW50ZXJhY3Rpb24udHlwZSA9IHBheWxvYWQuaW50ZXJhY3Rpb24udHlwZVxuICAgICAgZWRpdGVkID0gdHJ1ZVxuICAgIH1cbiAgICBpZiAocHJvcHMuaW50ZXJhY3Rpb24udXNlcikge1xuICAgICAgaW50ZXJhY3Rpb24udXNlciA9IGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHBheWxvYWQuaW50ZXJhY3Rpb24udXNlcilcbiAgICAgIGVkaXRlZCA9IHRydWVcbiAgICB9XG5cbiAgICBpZiAoZWRpdGVkKSBtZXNzYWdlLmludGVyYWN0aW9uID0gaW50ZXJhY3Rpb25cbiAgfVxuICBpZiAocHJvcHMubWVtYmVyICYmIGd1aWxkSWQgJiYgcGF5bG9hZC5tZW1iZXIpIG1lc3NhZ2UubWVtYmVyID0gYm90LnRyYW5zZm9ybWVycy5tZW1iZXIoYm90LCBwYXlsb2FkLm1lbWJlciwgZ3VpbGRJZCwgdXNlcklkKVxuICBpZiAocGF5bG9hZC5tZW50aW9uX2V2ZXJ5b25lKSBtZXNzYWdlLm1lbnRpb25FdmVyeW9uZSA9IHRydWVcbiAgaWYgKHByb3BzLm1lbnRpb25lZENoYW5uZWxJZHMgJiYgcGF5bG9hZC5tZW50aW9uX2NoYW5uZWxzPy5sZW5ndGgpIHtcbiAgICBtZXNzYWdlLm1lbnRpb25lZENoYW5uZWxJZHMgPSBbXG4gICAgICAvLyBLZWVwIGFueSBpZHMgdGh0IGRpc2NvcmQgc2VuZHNcbiAgICAgIC4uLihwYXlsb2FkLm1lbnRpb25fY2hhbm5lbHMgPz8gW10pLm1hcCgobSkgPT4gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UobS5pZCkpLFxuICAgICAgLy8gQWRkIGFueSBvdGhlciBpZHMgdGhhdCBjYW4gYmUgdmFsaWRhdGVkIGluIGEgY2hhbm5lbCBtZW50aW9uIGZvcm1hdFxuICAgICAgLi4uKHBheWxvYWQuY29udGVudD8ubWF0Y2goQ0hBTk5FTF9NRU5USU9OX1JFR0VYKSA/PyBbXSkubWFwKCh0ZXh0KSA9PlxuICAgICAgICAvLyBjb252ZXJ0cyB0aGUgPCMxMjM+IGludG8gMTIzXG4gICAgICAgIGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHRleHQuc3Vic3RyaW5nKDIsIHRleHQubGVuZ3RoIC0gMSkpLFxuICAgICAgKSxcbiAgICBdXG4gIH1cbiAgaWYgKHByb3BzLm1lbnRpb25lZFJvbGVJZHMgJiYgcGF5bG9hZC5tZW50aW9uX3JvbGVzPy5sZW5ndGgpXG4gICAgbWVzc2FnZS5tZW50aW9uZWRSb2xlSWRzID0gcGF5bG9hZC5tZW50aW9uX3JvbGVzLm1hcCgoaWQpID0+IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKGlkKSlcbiAgaWYgKHByb3BzLm1lbnRpb25zICYmIHBheWxvYWQubWVudGlvbnM/Lmxlbmd0aCkgbWVzc2FnZS5tZW50aW9ucyA9IHBheWxvYWQubWVudGlvbnMubWFwKCh1c2VyKSA9PiBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCB1c2VyKSlcbiAgaWYgKHBheWxvYWQubWVzc2FnZV9yZWZlcmVuY2UpIHtcbiAgICBjb25zdCByZWZlcmVuY2UgPSB7fSBhcyBOb25OdWxsYWJsZTxNZXNzYWdlWydtZXNzYWdlUmVmZXJlbmNlJ10+XG4gICAgbGV0IGVkaXRlZCA9IGZhbHNlXG5cbiAgICBpZiAocHJvcHMubWVzc2FnZVJlZmVyZW5jZS5jaGFubmVsSWQgJiYgcGF5bG9hZC5tZXNzYWdlX3JlZmVyZW5jZS5jaGFubmVsX2lkKSB7XG4gICAgICByZWZlcmVuY2UuY2hhbm5lbElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5tZXNzYWdlX3JlZmVyZW5jZS5jaGFubmVsX2lkKVxuICAgICAgZWRpdGVkID0gdHJ1ZVxuICAgIH1cbiAgICBpZiAocHJvcHMubWVzc2FnZVJlZmVyZW5jZS5ndWlsZElkICYmIHBheWxvYWQubWVzc2FnZV9yZWZlcmVuY2UuZ3VpbGRfaWQpIHtcbiAgICAgIHJlZmVyZW5jZS5ndWlsZElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5tZXNzYWdlX3JlZmVyZW5jZS5ndWlsZF9pZClcbiAgICAgIGVkaXRlZCA9IHRydWVcbiAgICB9XG4gICAgaWYgKHByb3BzLm1lc3NhZ2VSZWZlcmVuY2UubWVzc2FnZUlkICYmIHBheWxvYWQubWVzc2FnZV9yZWZlcmVuY2UubWVzc2FnZV9pZCkge1xuICAgICAgcmVmZXJlbmNlLm1lc3NhZ2VJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQubWVzc2FnZV9yZWZlcmVuY2UubWVzc2FnZV9pZClcbiAgICAgIGVkaXRlZCA9IHRydWVcbiAgICB9XG5cbiAgICBpZiAoZWRpdGVkKSBtZXNzYWdlLm1lc3NhZ2VSZWZlcmVuY2UgPSByZWZlcmVuY2VcbiAgfVxuICBpZiAocHJvcHMubm9uY2UgJiYgcGF5bG9hZC5ub25jZSkgbWVzc2FnZS5ub25jZSA9IHBheWxvYWQubm9uY2VcbiAgaWYgKHBheWxvYWQucGlubmVkKSBtZXNzYWdlLnBpbm5lZCA9IHRydWVcbiAgaWYgKHByb3BzLnJlYWN0aW9ucyAmJiBwYXlsb2FkLnJlYWN0aW9ucz8ubGVuZ3RoKSB7XG4gICAgbWVzc2FnZS5yZWFjdGlvbnMgPSBwYXlsb2FkLnJlYWN0aW9ucy5tYXAoKHJlYWN0aW9uKSA9PiAoe1xuICAgICAgbWU6IHJlYWN0aW9uLm1lLFxuICAgICAgbWVCdXJzdDogcmVhY3Rpb24ubWVfYnVyc3QsXG4gICAgICBjb3VudDogcmVhY3Rpb24uY291bnQsXG4gICAgICBjb3VudERldGFpbHM6IHtcbiAgICAgICAgYnVyc3Q6IHJlYWN0aW9uLmNvdW50X2RldGFpbHMuYnVyc3QsXG4gICAgICAgIG5vcm1hbDogcmVhY3Rpb24uY291bnRfZGV0YWlscy5ub3JtYWwsXG4gICAgICB9LFxuICAgICAgZW1vamk6IGJvdC50cmFuc2Zvcm1lcnMuZW1vamkoYm90LCByZWFjdGlvbi5lbW9qaSksXG4gICAgICBidXJzdENvbG9yczogcmVhY3Rpb24uYnVyc3RfY29sb3JzLFxuICAgIH0pKVxuICB9XG4gIGlmIChwcm9wcy5zdGlja2VySXRlbXMgJiYgcGF5bG9hZC5zdGlja2VyX2l0ZW1zPy5sZW5ndGgpXG4gICAgbWVzc2FnZS5zdGlja2VySXRlbXMgPSBwYXlsb2FkLnN0aWNrZXJfaXRlbXMubWFwKChpdGVtKSA9PiAoe1xuICAgICAgaWQ6IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKGl0ZW0uaWQpLFxuICAgICAgbmFtZTogaXRlbS5uYW1lLFxuICAgICAgZm9ybWF0VHlwZTogaXRlbS5mb3JtYXRfdHlwZSxcbiAgICB9KSlcbiAgaWYgKHBheWxvYWQudHRzKSBtZXNzYWdlLnR0cyA9IHRydWVcbiAgaWYgKHByb3BzLnRocmVhZCAmJiBwYXlsb2FkLnRocmVhZCkgbWVzc2FnZS50aHJlYWQgPSBib3QudHJhbnNmb3JtZXJzLmNoYW5uZWwoYm90LCB7IGNoYW5uZWw6IHBheWxvYWQudGhyZWFkLCBndWlsZElkIH0pXG4gIGlmIChwcm9wcy50eXBlKSBtZXNzYWdlLnR5cGUgPSBwYXlsb2FkLnR5cGVcbiAgaWYgKHByb3BzLndlYmhvb2tJZCAmJiBwYXlsb2FkLndlYmhvb2tfaWQpIG1lc3NhZ2Uud2ViaG9va0lkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC53ZWJob29rX2lkKVxuICBpZiAocHJvcHMuY2FsbCAmJiBwYXlsb2FkLmNhbGwpIG1lc3NhZ2UuY2FsbCA9IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZUNhbGwoYm90LCBwYXlsb2FkLmNhbGwpXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMubWVzc2FnZShib3QsIHBheWxvYWQsIG1lc3NhZ2UpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1NZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YShib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZE1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhKTogTWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGEge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMubWVzc2FnZS5pbnRlcmFjdGlvbk1ldGFkYXRhXG4gIGNvbnN0IG1ldGFkYXRhID0ge30gYXMgTWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGFcblxuICBpZiAocHJvcHMuaWQpIG1ldGFkYXRhLmlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pZClcbiAgaWYgKHByb3BzLmF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnMpIHtcbiAgICBtZXRhZGF0YS5hdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzID0ge31cbiAgICBpZiAocGF5bG9hZC5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzAnXSlcbiAgICAgIG1ldGFkYXRhLmF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnNbRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlLkd1aWxkSW5zdGFsbF0gPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShcbiAgICAgICAgcGF5bG9hZC5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzAnXSxcbiAgICAgIClcbiAgICBpZiAocGF5bG9hZC5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzEnXSlcbiAgICAgIG1ldGFkYXRhLmF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnNbRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlLlVzZXJJbnN0YWxsXSA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKFxuICAgICAgICBwYXlsb2FkLmF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVyc1snMSddLFxuICAgICAgKVxuICB9XG4gIGlmIChwcm9wcy5pbnRlcmFjdGVkTWVzc2FnZUlkICYmIHBheWxvYWQuaW50ZXJhY3RlZF9tZXNzYWdlX2lkKVxuICAgIG1ldGFkYXRhLmludGVyYWN0ZWRNZXNzYWdlSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmludGVyYWN0ZWRfbWVzc2FnZV9pZClcbiAgaWYgKHByb3BzLm9yaWdpbmFsUmVzcG9uc2VNZXNzYWdlSWQgJiYgcGF5bG9hZC5vcmlnaW5hbF9yZXNwb25zZV9tZXNzYWdlX2lkKVxuICAgIG1ldGFkYXRhLm9yaWdpbmFsUmVzcG9uc2VNZXNzYWdlSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLm9yaWdpbmFsX3Jlc3BvbnNlX21lc3NhZ2VfaWQpXG4gIGlmIChwcm9wcy50cmlnZ2VyaW5nSW50ZXJhY3Rpb25NZXRhZGF0YSAmJiBwYXlsb2FkLnRyaWdnZXJpbmdfaW50ZXJhY3Rpb25fbWV0YWRhdGEpXG4gICAgbWV0YWRhdGEudHJpZ2dlcmluZ0ludGVyYWN0aW9uTWV0YWRhdGEgPSB0cmFuc2Zvcm1NZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YShib3QsIHBheWxvYWQudHJpZ2dlcmluZ19pbnRlcmFjdGlvbl9tZXRhZGF0YSlcbiAgaWYgKHByb3BzLnR5cGUpIG1ldGFkYXRhLnR5cGUgPSBwYXlsb2FkLnR5cGVcbiAgaWYgKHByb3BzLnVzZXJJZCkgbWV0YWRhdGEudXNlcklkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC51c2VyX2lkKVxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLm1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhKGJvdCwgcGF5bG9hZCwgbWV0YWRhdGEpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1NZXNzYWdlQ2FsbChib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZE1lc3NhZ2VDYWxsKTogTWVzc2FnZUNhbGwge1xuICBjb25zdCBjYWxsID0ge30gYXMgTWVzc2FnZUNhbGxcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLm1lc3NhZ2UuY2FsbFxuXG4gIGlmIChwcm9wcy5wYXJ0aWNpcGFudHMgJiYgcGF5bG9hZC5wYXJ0aWNpcGFudHMpIGNhbGwucGFydGljaXBhbnRzID0gcGF5bG9hZC5wYXJ0aWNpcGFudHMubWFwKCh4KSA9PiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZSh4KSlcbiAgaWYgKHByb3BzLmVuZGVkVGltZXN0YW1wICYmIHBheWxvYWQuZW5kZWRfdGltZXN0YW1wKSBjYWxsLmVuZGVkVGltZXN0YW1wID0gRGF0ZS5wYXJzZShwYXlsb2FkLmVuZGVkX3RpbWVzdGFtcClcblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5tZXNzYWdlQ2FsbChib3QsIHBheWxvYWQsIGNhbGwpXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGEge1xuICAvKiogSWQgb2YgdGhlIGludGVyYWN0aW9uICovXG4gIGlkOiBiaWdpbnRcbiAgLyoqIFRoZSB0eXBlIG9mIGludGVyYWN0aW9uICovXG4gIHR5cGU6IEludGVyYWN0aW9uVHlwZXNcbiAgLyoqIElEIG9mIHRoZSB1c2VyIHdobyB0cmlnZ2VyZWQgdGhlIGludGVyYWN0aW9uICovXG4gIHVzZXJJZDogYmlnaW50XG4gIC8qKiBJRHMgZm9yIGluc3RhbGxhdGlvbiBjb250ZXh0KHMpIHJlbGF0ZWQgdG8gYW4gaW50ZXJhY3Rpb24gKi9cbiAgYXV0aG9yaXppbmdJbnRlZ3JhdGlvbk93bmVyczogUGFydGlhbDxSZWNvcmQ8RGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlLCBiaWdpbnQ+PlxuICAvKiogSUQgb2YgdGhlIG9yaWdpbmFsIHJlc3BvbnNlIG1lc3NhZ2UsIHByZXNlbnQgb25seSBvbiBmb2xsb3ctdXAgbWVzc2FnZXMgKi9cbiAgb3JpZ2luYWxSZXNwb25zZU1lc3NhZ2VJZD86IGJpZ2ludFxuICAvKiogSUQgb2YgdGhlIG1lc3NhZ2UgdGhhdCBjb250YWluZWQgaW50ZXJhY3RpdmUgY29tcG9uZW50LCBwcmVzZW50IG9ubHkgb24gbWVzc2FnZXMgY3JlYXRlZCBmcm9tIGNvbXBvbmVudCBpbnRlcmFjdGlvbnMgKi9cbiAgaW50ZXJhY3RlZE1lc3NhZ2VJZD86IGJpZ2ludFxuICAvKiogTWV0YWRhdGEgZm9yIHRoZSBpbnRlcmFjdGlvbiB0aGF0IHdhcyB1c2VkIHRvIG9wZW4gdGhlIG1vZGFsLCBwcmVzZW50IG9ubHkgb24gbW9kYWwgc3VibWl0IGludGVyYWN0aW9ucyAqL1xuICB0cmlnZ2VyaW5nSW50ZXJhY3Rpb25NZXRhZGF0YT86IE1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVzc2FnZUNhbGwge1xuICAvKiogQXJyYXkgb2YgdXNlciBvYmplY3QgaWRzIHRoYXQgcGFydGljaXBhdGVkIGluIHRoZSBjYWxsICovXG4gIHBhcnRpY2lwYW50czogYmlnaW50W11cbiAgLyoqIFRpbWUgd2hlbiBjYWxsIGVuZGVkICovXG4gIGVuZGVkVGltZXN0YW1wOiBudW1iZXJcbn1cbiJdLCJuYW1lcyI6WyJ0cmFuc2Zvcm1NZXNzYWdlIiwidHJhbnNmb3JtTWVzc2FnZUNhbGwiLCJ0cmFuc2Zvcm1NZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YSIsImJhc2VNZXNzYWdlIiwiY3Jvc3Nwb3N0ZWQiLCJmbGFncyIsImNvbnRhaW5zIiwiTWVzc2FnZUZsYWdzIiwiQ3Jvc3Nwb3N0ZWQiLCJ2YWx1ZSIsImFkZCIsInJlbW92ZSIsImVwaGVtZXJhbCIsIkVwaGVtZXJhbCIsImZhaWxlZFRvTWVudGlvblNvbWVSb2xlc0luVGhyZWFkIiwiRmFpbGVkVG9NZW50aW9uU29tZVJvbGVzSW5UaHJlYWQiLCJoYXNUaHJlYWQiLCJIYXNUaHJlYWQiLCJpc0Nyb3NzcG9zdCIsIklzQ3Jvc3Nwb3N0IiwibG9hZGluZyIsIkxvYWRpbmciLCJtZW50aW9uZWRVc2VySWRzIiwibWVudGlvbnMiLCJtYXAiLCJ1c2VyIiwiaWQiLCJtZW50aW9uRXZlcnlvbmUiLCJiaXRmaWVsZCIsInBpbm5lZCIsInNvdXJjZU1lc3NhZ2VEZWxldGVkIiwiU291cmNlTWVzc2FnZURlbGV0ZWQiLCJzdXBwcmVzc0VtYmVkcyIsIlN1cHByZXNzRW1iZWRzIiwic3VwcHJlc3NOb3RpZmljYXRpb25zIiwiU3VwcHJlc3NOb3RpZmljYXRpb25zIiwidGltZXN0YW1wIiwic25vd2ZsYWtlVG9UaW1lc3RhbXAiLCJ0dHMiLCJ1cmdlbnQiLCJVcmdlbnQiLCJFTVBUWV9TVFJJTkciLCJib3QiLCJwYXlsb2FkIiwiZ3VpbGRJZCIsImd1aWxkX2lkIiwidHJhbnNmb3JtZXJzIiwic25vd2ZsYWtlIiwidW5kZWZpbmVkIiwidXNlcklkIiwiYXV0aG9yIiwibWVzc2FnZSIsIk9iamVjdCIsImNyZWF0ZSIsIlRvZ2dsZUJpdGZpZWxkIiwicHJvcHMiLCJkZXNpcmVkUHJvcGVydGllcyIsImFwcGxpY2F0aW9uSWQiLCJhcHBsaWNhdGlvbl9pZCIsImF0dGFjaG1lbnRzIiwibGVuZ3RoIiwiYXR0YWNobWVudCIsImNoYW5uZWxJZCIsImNoYW5uZWxfaWQiLCJjb21wb25lbnRzIiwiY29tcCIsImNvbXBvbmVudCIsImNvbnRlbnQiLCJlZGl0ZWRUaW1lc3RhbXAiLCJlZGl0ZWRfdGltZXN0YW1wIiwiRGF0ZSIsInBhcnNlIiwiZW1iZWRzIiwiZW1iZWQiLCJpbnRlcmFjdGlvbl9tZXRhZGF0YSIsImludGVyYWN0aW9uTWV0YWRhdGEiLCJpbnRlcmFjdGlvbiIsImVkaXRlZCIsIm1lbWJlciIsIm5hbWUiLCJ0eXBlIiwibWVudGlvbl9ldmVyeW9uZSIsIm1lbnRpb25lZENoYW5uZWxJZHMiLCJtZW50aW9uX2NoYW5uZWxzIiwibSIsIm1hdGNoIiwiQ0hBTk5FTF9NRU5USU9OX1JFR0VYIiwidGV4dCIsInN1YnN0cmluZyIsIm1lbnRpb25lZFJvbGVJZHMiLCJtZW50aW9uX3JvbGVzIiwibWVzc2FnZV9yZWZlcmVuY2UiLCJyZWZlcmVuY2UiLCJtZXNzYWdlUmVmZXJlbmNlIiwibWVzc2FnZUlkIiwibWVzc2FnZV9pZCIsIm5vbmNlIiwicmVhY3Rpb25zIiwicmVhY3Rpb24iLCJtZSIsIm1lQnVyc3QiLCJtZV9idXJzdCIsImNvdW50IiwiY291bnREZXRhaWxzIiwiYnVyc3QiLCJjb3VudF9kZXRhaWxzIiwibm9ybWFsIiwiZW1vamkiLCJidXJzdENvbG9ycyIsImJ1cnN0X2NvbG9ycyIsInN0aWNrZXJJdGVtcyIsInN0aWNrZXJfaXRlbXMiLCJpdGVtIiwiZm9ybWF0VHlwZSIsImZvcm1hdF90eXBlIiwidGhyZWFkIiwiY2hhbm5lbCIsIndlYmhvb2tJZCIsIndlYmhvb2tfaWQiLCJjYWxsIiwibWVzc2FnZUNhbGwiLCJjdXN0b21pemVycyIsIm1ldGFkYXRhIiwiYXV0aG9yaXppbmdJbnRlZ3JhdGlvbk93bmVycyIsImF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVycyIsIkRpc2NvcmRBcHBsaWNhdGlvbkludGVncmF0aW9uVHlwZSIsIkd1aWxkSW5zdGFsbCIsIlVzZXJJbnN0YWxsIiwiaW50ZXJhY3RlZE1lc3NhZ2VJZCIsImludGVyYWN0ZWRfbWVzc2FnZV9pZCIsIm9yaWdpbmFsUmVzcG9uc2VNZXNzYWdlSWQiLCJvcmlnaW5hbF9yZXNwb25zZV9tZXNzYWdlX2lkIiwidHJpZ2dlcmluZ0ludGVyYWN0aW9uTWV0YWRhdGEiLCJ0cmlnZ2VyaW5nX2ludGVyYWN0aW9uX21ldGFkYXRhIiwidXNlcl9pZCIsIm1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhIiwicGFydGljaXBhbnRzIiwieCIsImVuZGVkVGltZXN0YW1wIiwiZW5kZWRfdGltZXN0YW1wIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztJQXVSZ0JBLGdCQUFnQjtlQUFoQkE7O0lBOElBQyxvQkFBb0I7ZUFBcEJBOztJQTVCQUMsbUNBQW1DO2VBQW5DQTs7O3VCQWhZVDsyQkFDK0I7dUJBQ1M7eUJBQ2xCO2dDQU9FO0FBRy9CLE1BQU1DLGNBQThDO0lBQ2xELElBQUlDLGVBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUNDLEtBQUssRUFBRUMsU0FBU0MscUJBQVksQ0FBQ0MsV0FBVyxLQUFLO0lBQzNEO0lBQ0EsSUFBSUosYUFBWUssTUFBZ0I7UUFDOUIsSUFBSSxDQUFDLElBQUksQ0FBQ0osS0FBSyxFQUFFO1FBQ2pCLElBQUlJLE9BQU8sSUFBSSxDQUFDSixLQUFLLENBQUNLLEdBQUcsQ0FBQ0gscUJBQVksQ0FBQ0MsV0FBVzthQUM3QyxJQUFJLENBQUNILEtBQUssQ0FBQ00sTUFBTSxDQUFDSixxQkFBWSxDQUFDQyxXQUFXO0lBQ2pEO0lBQ0EsSUFBSUksYUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDUCxLQUFLLEVBQUVDLFNBQVNDLHFCQUFZLENBQUNNLFNBQVMsS0FBSztJQUN6RDtJQUNBLElBQUlELFdBQVVILE1BQWdCO1FBQzVCLElBQUksQ0FBQyxJQUFJLENBQUNKLEtBQUssRUFBRTtRQUNqQixJQUFJSSxPQUFPLElBQUksQ0FBQ0osS0FBSyxDQUFDSyxHQUFHLENBQUNILHFCQUFZLENBQUNNLFNBQVM7YUFDM0MsSUFBSSxDQUFDUixLQUFLLENBQUNNLE1BQU0sQ0FBQ0oscUJBQVksQ0FBQ00sU0FBUztJQUMvQztJQUNBLElBQUlDLG9DQUFtQztRQUNyQyxPQUFPLElBQUksQ0FBQ1QsS0FBSyxFQUFFQyxTQUFTQyxxQkFBWSxDQUFDUSxnQ0FBZ0MsS0FBSztJQUNoRjtJQUNBLElBQUlELGtDQUFpQ0wsTUFBZ0I7UUFDbkQsSUFBSSxDQUFDLElBQUksQ0FBQ0osS0FBSyxFQUFFO1FBQ2pCLElBQUlJLE9BQU8sSUFBSSxDQUFDSixLQUFLLENBQUNLLEdBQUcsQ0FBQ0gscUJBQVksQ0FBQ1EsZ0NBQWdDO2FBQ2xFLElBQUksQ0FBQ1YsS0FBSyxDQUFDTSxNQUFNLENBQUNKLHFCQUFZLENBQUNRLGdDQUFnQztJQUN0RTtJQUNBLElBQUlDLGFBQVk7UUFDZCxPQUFPLElBQUksQ0FBQ1gsS0FBSyxFQUFFQyxTQUFTQyxxQkFBWSxDQUFDVSxTQUFTLEtBQUs7SUFDekQ7SUFDQSxJQUFJRCxXQUFVUCxNQUFnQjtRQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDSixLQUFLLEVBQUU7UUFDakIsSUFBSUksT0FBTyxJQUFJLENBQUNKLEtBQUssQ0FBQ0ssR0FBRyxDQUFDSCxxQkFBWSxDQUFDVSxTQUFTO2FBQzNDLElBQUksQ0FBQ1osS0FBSyxDQUFDTSxNQUFNLENBQUNKLHFCQUFZLENBQUNVLFNBQVM7SUFDL0M7SUFDQSxJQUFJQyxlQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDYixLQUFLLEVBQUVDLFNBQVNDLHFCQUFZLENBQUNZLFdBQVcsS0FBSztJQUMzRDtJQUNBLElBQUlELGFBQVlULE1BQWdCO1FBQzlCLElBQUksQ0FBQyxJQUFJLENBQUNKLEtBQUssRUFBRTtRQUNqQixJQUFJSSxPQUFPLElBQUksQ0FBQ0osS0FBSyxDQUFDSyxHQUFHLENBQUNILHFCQUFZLENBQUNZLFdBQVc7YUFDN0MsSUFBSSxDQUFDZCxLQUFLLENBQUNNLE1BQU0sQ0FBQ0oscUJBQVksQ0FBQ1ksV0FBVztJQUNqRDtJQUNBLElBQUlDLFdBQVU7UUFDWixPQUFPLElBQUksQ0FBQ2YsS0FBSyxFQUFFQyxTQUFTQyxxQkFBWSxDQUFDYyxPQUFPLEtBQUs7SUFDdkQ7SUFDQSxJQUFJRCxTQUFRWCxNQUFnQjtRQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDSixLQUFLLEVBQUU7UUFDakIsSUFBSUksT0FBTyxJQUFJLENBQUNKLEtBQUssQ0FBQ0ssR0FBRyxDQUFDSCxxQkFBWSxDQUFDYyxPQUFPO2FBQ3pDLElBQUksQ0FBQ2hCLEtBQUssQ0FBQ00sTUFBTSxDQUFDSixxQkFBWSxDQUFDYyxPQUFPO0lBQzdDO0lBQ0EsSUFBSUMsb0JBQW1CO1FBQ3JCLE9BQU8sSUFBSSxDQUFDQyxRQUFRLEVBQUVDLElBQUksQ0FBQ0MsT0FBU0EsS0FBS0MsRUFBRSxLQUFLLEVBQUU7SUFDcEQ7SUFDQSxJQUFJQyxtQkFBa0I7UUFDcEIsT0FBTyxJQUFJLENBQUNDLFFBQVEsRUFBRXRCLFNBQVMsTUFBTTtJQUN2QztJQUNBLElBQUlxQixpQkFBZ0JsQixNQUFnQjtRQUNsQyxJQUFJLENBQUMsSUFBSSxDQUFDbUIsUUFBUSxFQUFFO1FBQ3BCLElBQUluQixPQUFPLElBQUksQ0FBQ21CLFFBQVEsQ0FBQ2xCLEdBQUcsQ0FBQzthQUN4QixJQUFJLENBQUNrQixRQUFRLENBQUNqQixNQUFNLENBQUM7SUFDNUI7SUFDQSxJQUFJa0IsVUFBUztRQUNYLE9BQU8sSUFBSSxDQUFDRCxRQUFRLEVBQUV0QixTQUFTLE1BQU07SUFDdkM7SUFDQSxJQUFJdUIsUUFBT3BCLE1BQWdCO1FBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUNtQixRQUFRLEVBQUU7UUFDcEIsSUFBSW5CLE9BQU8sSUFBSSxDQUFDbUIsUUFBUSxDQUFDbEIsR0FBRyxDQUFDO2FBQ3hCLElBQUksQ0FBQ2tCLFFBQVEsQ0FBQ2pCLE1BQU0sQ0FBQztJQUM1QjtJQUNBLElBQUltQix3QkFBdUI7UUFDekIsT0FBTyxJQUFJLENBQUN6QixLQUFLLEVBQUVDLFNBQVNDLHFCQUFZLENBQUN3QixvQkFBb0IsS0FBSztJQUNwRTtJQUNBLElBQUlELHNCQUFxQnJCLE1BQWdCO1FBQ3ZDLElBQUksQ0FBQyxJQUFJLENBQUNKLEtBQUssRUFBRTtRQUNqQixJQUFJSSxPQUFPLElBQUksQ0FBQ0osS0FBSyxDQUFDSyxHQUFHLENBQUNILHFCQUFZLENBQUN3QixvQkFBb0I7YUFDdEQsSUFBSSxDQUFDMUIsS0FBSyxDQUFDTSxNQUFNLENBQUNKLHFCQUFZLENBQUN3QixvQkFBb0I7SUFDMUQ7SUFDQSxJQUFJQyxrQkFBaUI7UUFDbkIsT0FBTyxJQUFJLENBQUMzQixLQUFLLEVBQUVDLFNBQVNDLHFCQUFZLENBQUMwQixjQUFjLEtBQUs7SUFDOUQ7SUFDQSxJQUFJRCxnQkFBZXZCLE1BQWdCO1FBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUNKLEtBQUssRUFBRTtRQUNqQixJQUFJSSxPQUFPLElBQUksQ0FBQ0osS0FBSyxDQUFDSyxHQUFHLENBQUNILHFCQUFZLENBQUMwQixjQUFjO2FBQ2hELElBQUksQ0FBQzVCLEtBQUssQ0FBQ00sTUFBTSxDQUFDSixxQkFBWSxDQUFDMEIsY0FBYztJQUNwRDtJQUNBLElBQUlDLHlCQUF3QjtRQUMxQixPQUFPLElBQUksQ0FBQzdCLEtBQUssRUFBRUMsU0FBU0MscUJBQVksQ0FBQzRCLHFCQUFxQixLQUFLO0lBQ3JFO0lBQ0EsSUFBSUQsdUJBQXNCekIsTUFBZ0I7UUFDeEMsSUFBSSxDQUFDLElBQUksQ0FBQ0osS0FBSyxFQUFFO1FBQ2pCLElBQUlJLE9BQU8sSUFBSSxDQUFDSixLQUFLLENBQUNLLEdBQUcsQ0FBQ0gscUJBQVksQ0FBQzRCLHFCQUFxQjthQUN2RCxJQUFJLENBQUM5QixLQUFLLENBQUNNLE1BQU0sQ0FBQ0oscUJBQVksQ0FBQzRCLHFCQUFxQjtJQUMzRDtJQUNBLElBQUlDLGFBQVk7UUFDZCxPQUFPLElBQUksQ0FBQ1YsRUFBRSxHQUFHVyxJQUFBQSwyQkFBb0IsRUFBQyxJQUFJLENBQUNYLEVBQUUsSUFBSTtJQUNuRDtJQUNBLElBQUlZLE9BQU07UUFDUixPQUFPLElBQUksQ0FBQ1YsUUFBUSxFQUFFdEIsU0FBUyxNQUFNO0lBQ3ZDO0lBQ0EsSUFBSWdDLEtBQUk3QixNQUFnQjtRQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDbUIsUUFBUSxFQUFFO1FBQ3BCLElBQUluQixPQUFPLElBQUksQ0FBQ21CLFFBQVEsQ0FBQ2xCLEdBQUcsQ0FBQzthQUN4QixJQUFJLENBQUNrQixRQUFRLENBQUNqQixNQUFNLENBQUM7SUFDNUI7SUFDQSxJQUFJNEIsVUFBUztRQUNYLE9BQU8sSUFBSSxDQUFDbEMsS0FBSyxFQUFFQyxTQUFTQyxxQkFBWSxDQUFDaUMsTUFBTSxLQUFLO0lBQ3REO0lBQ0EsSUFBSUQsUUFBTzlCLE1BQWdCO1FBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUNKLEtBQUssRUFBRTtRQUNqQixJQUFJSSxPQUFPLElBQUksQ0FBQ0osS0FBSyxDQUFDSyxHQUFHLENBQUNILHFCQUFZLENBQUNpQyxNQUFNO2FBQ3hDLElBQUksQ0FBQ25DLEtBQUssQ0FBQ00sTUFBTSxDQUFDSixxQkFBWSxDQUFDaUMsTUFBTTtJQUM1QztBQUNGO0FBZ0pBLE1BQU1DLGVBQWU7QUFFZCxTQUFTekMsaUJBQWlCMEMsR0FBUSxFQUFFQyxPQUF1QjtJQUNoRSxNQUFNQyxVQUFVRCxRQUFRRSxRQUFRLEdBQUdILElBQUlJLFlBQVksQ0FBQ0MsU0FBUyxDQUFDSixRQUFRRSxRQUFRLElBQUlHO0lBQ2xGLE1BQU1DLFNBQVNQLElBQUlJLFlBQVksQ0FBQ0MsU0FBUyxDQUFDSixRQUFRTyxNQUFNLENBQUN4QixFQUFFO0lBRTNELE1BQU15QixVQUFtQkMsT0FBT0MsTUFBTSxDQUFDbEQ7SUFDdkNnRCxRQUFRdkIsUUFBUSxHQUFHLElBQUkwQiw4QkFBYztJQUNyQ0gsUUFBUTlDLEtBQUssR0FBRyxJQUFJaUQsOEJBQWMsQ0FBQ1gsUUFBUXRDLEtBQUs7SUFFaEQsTUFBTWtELFFBQVFiLElBQUlJLFlBQVksQ0FBQ1UsaUJBQWlCLENBQUNMLE9BQU87SUFFeEQsSUFBSUksTUFBTUwsTUFBTSxJQUFJUCxRQUFRTyxNQUFNLEVBQUVDLFFBQVFELE1BQU0sR0FBR1IsSUFBSUksWUFBWSxDQUFDckIsSUFBSSxDQUFDaUIsS0FBS0MsUUFBUU8sTUFBTTtJQUM5RixJQUFJSyxNQUFNRSxhQUFhLElBQUlkLFFBQVFlLGNBQWMsRUFBRVAsUUFBUU0sYUFBYSxHQUFHZixJQUFJSSxZQUFZLENBQUNDLFNBQVMsQ0FBQ0osUUFBUWUsY0FBYztJQUM1SCxJQUFJSCxNQUFNSSxXQUFXLElBQUloQixRQUFRZ0IsV0FBVyxFQUFFQyxRQUM1Q1QsUUFBUVEsV0FBVyxHQUFHaEIsUUFBUWdCLFdBQVcsQ0FBQ25DLEdBQUcsQ0FBQyxDQUFDcUMsYUFBZW5CLElBQUlJLFlBQVksQ0FBQ2UsVUFBVSxDQUFDbkIsS0FBS21CO0lBQ2pHLElBQUlOLE1BQU1PLFNBQVMsSUFBSW5CLFFBQVFvQixVQUFVLEVBQUVaLFFBQVFXLFNBQVMsR0FBR3BCLElBQUlJLFlBQVksQ0FBQ0MsU0FBUyxDQUFDSixRQUFRb0IsVUFBVTtJQUM1RyxJQUFJUixNQUFNUyxVQUFVLElBQUlyQixRQUFRcUIsVUFBVSxFQUFFSixRQUFRVCxRQUFRYSxVQUFVLEdBQUdyQixRQUFRcUIsVUFBVSxDQUFDeEMsR0FBRyxDQUFDLENBQUN5QyxPQUFTdkIsSUFBSUksWUFBWSxDQUFDb0IsU0FBUyxDQUFDeEIsS0FBS3VCO0lBQzFJLElBQUlWLE1BQU1ZLE9BQU8sSUFBSXhCLFFBQVF3QixPQUFPLEVBQUVoQixRQUFRZ0IsT0FBTyxHQUFHeEIsUUFBUXdCLE9BQU8sSUFBSTFCO0lBQzNFLElBQUljLE1BQU1hLGVBQWUsSUFBSXpCLFFBQVEwQixnQkFBZ0IsRUFBRWxCLFFBQVFpQixlQUFlLEdBQUdFLEtBQUtDLEtBQUssQ0FBQzVCLFFBQVEwQixnQkFBZ0I7SUFDcEgsSUFBSWQsTUFBTWlCLE1BQU0sSUFBSTdCLFFBQVE2QixNQUFNLEVBQUVaLFFBQVFULFFBQVFxQixNQUFNLEdBQUc3QixRQUFRNkIsTUFBTSxDQUFDaEQsR0FBRyxDQUFDLENBQUNpRCxRQUFVL0IsSUFBSUksWUFBWSxDQUFDMkIsS0FBSyxDQUFDL0IsS0FBSytCO0lBQ3ZILElBQUlsQixNQUFNWCxPQUFPLElBQUlBLFNBQVNPLFFBQVFQLE9BQU8sR0FBR0E7SUFDaEQsSUFBSVcsTUFBTTdCLEVBQUUsSUFBSWlCLFFBQVFqQixFQUFFLEVBQUV5QixRQUFRekIsRUFBRSxHQUFHZ0IsSUFBSUksWUFBWSxDQUFDQyxTQUFTLENBQUNKLFFBQVFqQixFQUFFO0lBQzlFLElBQUlpQixRQUFRK0Isb0JBQW9CLEVBQUV2QixRQUFRd0IsbUJBQW1CLEdBQUd6RSxvQ0FBb0N3QyxLQUFLQyxRQUFRK0Isb0JBQW9CO0lBQ3JJLElBQUkvQixRQUFRaUMsV0FBVyxFQUFFO1FBQ3ZCLE1BQU1BLGNBQWMsQ0FBQztRQUNyQixJQUFJQyxTQUFTO1FBQ2IsSUFBSXRCLE1BQU1xQixXQUFXLENBQUNsRCxFQUFFLEVBQUU7WUFDeEJrRCxZQUFZbEQsRUFBRSxHQUFHZ0IsSUFBSUksWUFBWSxDQUFDQyxTQUFTLENBQUNKLFFBQVFpQyxXQUFXLENBQUNsRCxFQUFFO1lBQ2xFbUQsU0FBUztRQUNYO1FBQ0EsSUFBSXRCLE1BQU1xQixXQUFXLENBQUNFLE1BQU0sSUFBSW5DLFFBQVFpQyxXQUFXLENBQUNFLE1BQU0sRUFBRTtZQUMxRCxrRkFBa0Y7WUFDbEZGLFlBQVlFLE1BQU0sR0FBR3BDLElBQUlJLFlBQVksQ0FBQ2dDLE1BQU0sQ0FBQ3BDLEtBQUtDLFFBQVFpQyxXQUFXLENBQUNFLE1BQU0sRUFBRWxDLFNBQVNELFFBQVFpQyxXQUFXLENBQUNuRCxJQUFJLENBQUNDLEVBQUU7WUFDbEhtRCxTQUFTO1FBQ1g7UUFDQSxJQUFJdEIsTUFBTXFCLFdBQVcsQ0FBQ0csSUFBSSxFQUFFO1lBQzFCSCxZQUFZRyxJQUFJLEdBQUdwQyxRQUFRaUMsV0FBVyxDQUFDRyxJQUFJO1lBQzNDRixTQUFTO1FBQ1g7UUFDQSxJQUFJdEIsTUFBTXFCLFdBQVcsQ0FBQ0ksSUFBSSxFQUFFO1lBQzFCSixZQUFZSSxJQUFJLEdBQUdyQyxRQUFRaUMsV0FBVyxDQUFDSSxJQUFJO1lBQzNDSCxTQUFTO1FBQ1g7UUFDQSxJQUFJdEIsTUFBTXFCLFdBQVcsQ0FBQ25ELElBQUksRUFBRTtZQUMxQm1ELFlBQVluRCxJQUFJLEdBQUdpQixJQUFJSSxZQUFZLENBQUNyQixJQUFJLENBQUNpQixLQUFLQyxRQUFRaUMsV0FBVyxDQUFDbkQsSUFBSTtZQUN0RW9ELFNBQVM7UUFDWDtRQUVBLElBQUlBLFFBQVExQixRQUFReUIsV0FBVyxHQUFHQTtJQUNwQztJQUNBLElBQUlyQixNQUFNdUIsTUFBTSxJQUFJbEMsV0FBV0QsUUFBUW1DLE1BQU0sRUFBRTNCLFFBQVEyQixNQUFNLEdBQUdwQyxJQUFJSSxZQUFZLENBQUNnQyxNQUFNLENBQUNwQyxLQUFLQyxRQUFRbUMsTUFBTSxFQUFFbEMsU0FBU0s7SUFDdEgsSUFBSU4sUUFBUXNDLGdCQUFnQixFQUFFOUIsUUFBUXhCLGVBQWUsR0FBRztJQUN4RCxJQUFJNEIsTUFBTTJCLG1CQUFtQixJQUFJdkMsUUFBUXdDLGdCQUFnQixFQUFFdkIsUUFBUTtRQUNqRVQsUUFBUStCLG1CQUFtQixHQUFHO1lBQzVCLGlDQUFpQztlQUM5QixBQUFDdkMsQ0FBQUEsUUFBUXdDLGdCQUFnQixJQUFJLEVBQUUsQUFBRCxFQUFHM0QsR0FBRyxDQUFDLENBQUM0RCxJQUFNMUMsSUFBSUksWUFBWSxDQUFDQyxTQUFTLENBQUNxQyxFQUFFMUQsRUFBRTtZQUM5RSxzRUFBc0U7ZUFDbkUsQUFBQ2lCLENBQUFBLFFBQVF3QixPQUFPLEVBQUVrQixNQUFNQyxnQ0FBcUIsS0FBSyxFQUFFLEFBQUQsRUFBRzlELEdBQUcsQ0FBQyxDQUFDK0QsT0FDNUQsK0JBQStCO2dCQUMvQjdDLElBQUlJLFlBQVksQ0FBQ0MsU0FBUyxDQUFDd0MsS0FBS0MsU0FBUyxDQUFDLEdBQUdELEtBQUszQixNQUFNLEdBQUc7U0FFOUQ7SUFDSDtJQUNBLElBQUlMLE1BQU1rQyxnQkFBZ0IsSUFBSTlDLFFBQVErQyxhQUFhLEVBQUU5QixRQUNuRFQsUUFBUXNDLGdCQUFnQixHQUFHOUMsUUFBUStDLGFBQWEsQ0FBQ2xFLEdBQUcsQ0FBQyxDQUFDRSxLQUFPZ0IsSUFBSUksWUFBWSxDQUFDQyxTQUFTLENBQUNyQjtJQUMxRixJQUFJNkIsTUFBTWhDLFFBQVEsSUFBSW9CLFFBQVFwQixRQUFRLEVBQUVxQyxRQUFRVCxRQUFRNUIsUUFBUSxHQUFHb0IsUUFBUXBCLFFBQVEsQ0FBQ0MsR0FBRyxDQUFDLENBQUNDLE9BQVNpQixJQUFJSSxZQUFZLENBQUNyQixJQUFJLENBQUNpQixLQUFLakI7SUFDN0gsSUFBSWtCLFFBQVFnRCxpQkFBaUIsRUFBRTtRQUM3QixNQUFNQyxZQUFZLENBQUM7UUFDbkIsSUFBSWYsU0FBUztRQUViLElBQUl0QixNQUFNc0MsZ0JBQWdCLENBQUMvQixTQUFTLElBQUluQixRQUFRZ0QsaUJBQWlCLENBQUM1QixVQUFVLEVBQUU7WUFDNUU2QixVQUFVOUIsU0FBUyxHQUFHcEIsSUFBSUksWUFBWSxDQUFDQyxTQUFTLENBQUNKLFFBQVFnRCxpQkFBaUIsQ0FBQzVCLFVBQVU7WUFDckZjLFNBQVM7UUFDWDtRQUNBLElBQUl0QixNQUFNc0MsZ0JBQWdCLENBQUNqRCxPQUFPLElBQUlELFFBQVFnRCxpQkFBaUIsQ0FBQzlDLFFBQVEsRUFBRTtZQUN4RStDLFVBQVVoRCxPQUFPLEdBQUdGLElBQUlJLFlBQVksQ0FBQ0MsU0FBUyxDQUFDSixRQUFRZ0QsaUJBQWlCLENBQUM5QyxRQUFRO1lBQ2pGZ0MsU0FBUztRQUNYO1FBQ0EsSUFBSXRCLE1BQU1zQyxnQkFBZ0IsQ0FBQ0MsU0FBUyxJQUFJbkQsUUFBUWdELGlCQUFpQixDQUFDSSxVQUFVLEVBQUU7WUFDNUVILFVBQVVFLFNBQVMsR0FBR3BELElBQUlJLFlBQVksQ0FBQ0MsU0FBUyxDQUFDSixRQUFRZ0QsaUJBQWlCLENBQUNJLFVBQVU7WUFDckZsQixTQUFTO1FBQ1g7UUFFQSxJQUFJQSxRQUFRMUIsUUFBUTBDLGdCQUFnQixHQUFHRDtJQUN6QztJQUNBLElBQUlyQyxNQUFNeUMsS0FBSyxJQUFJckQsUUFBUXFELEtBQUssRUFBRTdDLFFBQVE2QyxLQUFLLEdBQUdyRCxRQUFRcUQsS0FBSztJQUMvRCxJQUFJckQsUUFBUWQsTUFBTSxFQUFFc0IsUUFBUXRCLE1BQU0sR0FBRztJQUNyQyxJQUFJMEIsTUFBTTBDLFNBQVMsSUFBSXRELFFBQVFzRCxTQUFTLEVBQUVyQyxRQUFRO1FBQ2hEVCxRQUFROEMsU0FBUyxHQUFHdEQsUUFBUXNELFNBQVMsQ0FBQ3pFLEdBQUcsQ0FBQyxDQUFDMEUsV0FBYyxDQUFBO2dCQUN2REMsSUFBSUQsU0FBU0MsRUFBRTtnQkFDZkMsU0FBU0YsU0FBU0csUUFBUTtnQkFDMUJDLE9BQU9KLFNBQVNJLEtBQUs7Z0JBQ3JCQyxjQUFjO29CQUNaQyxPQUFPTixTQUFTTyxhQUFhLENBQUNELEtBQUs7b0JBQ25DRSxRQUFRUixTQUFTTyxhQUFhLENBQUNDLE1BQU07Z0JBQ3ZDO2dCQUNBQyxPQUFPakUsSUFBSUksWUFBWSxDQUFDNkQsS0FBSyxDQUFDakUsS0FBS3dELFNBQVNTLEtBQUs7Z0JBQ2pEQyxhQUFhVixTQUFTVyxZQUFZO1lBQ3BDLENBQUE7SUFDRjtJQUNBLElBQUl0RCxNQUFNdUQsWUFBWSxJQUFJbkUsUUFBUW9FLGFBQWEsRUFBRW5ELFFBQy9DVCxRQUFRMkQsWUFBWSxHQUFHbkUsUUFBUW9FLGFBQWEsQ0FBQ3ZGLEdBQUcsQ0FBQyxDQUFDd0YsT0FBVSxDQUFBO1lBQzFEdEYsSUFBSWdCLElBQUlJLFlBQVksQ0FBQ0MsU0FBUyxDQUFDaUUsS0FBS3RGLEVBQUU7WUFDdENxRCxNQUFNaUMsS0FBS2pDLElBQUk7WUFDZmtDLFlBQVlELEtBQUtFLFdBQVc7UUFDOUIsQ0FBQTtJQUNGLElBQUl2RSxRQUFRTCxHQUFHLEVBQUVhLFFBQVFiLEdBQUcsR0FBRztJQUMvQixJQUFJaUIsTUFBTTRELE1BQU0sSUFBSXhFLFFBQVF3RSxNQUFNLEVBQUVoRSxRQUFRZ0UsTUFBTSxHQUFHekUsSUFBSUksWUFBWSxDQUFDc0UsT0FBTyxDQUFDMUUsS0FBSztRQUFFMEUsU0FBU3pFLFFBQVF3RSxNQUFNO1FBQUV2RTtJQUFRO0lBQ3RILElBQUlXLE1BQU15QixJQUFJLEVBQUU3QixRQUFRNkIsSUFBSSxHQUFHckMsUUFBUXFDLElBQUk7SUFDM0MsSUFBSXpCLE1BQU04RCxTQUFTLElBQUkxRSxRQUFRMkUsVUFBVSxFQUFFbkUsUUFBUWtFLFNBQVMsR0FBRzNFLElBQUlJLFlBQVksQ0FBQ0MsU0FBUyxDQUFDSixRQUFRMkUsVUFBVTtJQUM1RyxJQUFJL0QsTUFBTWdFLElBQUksSUFBSTVFLFFBQVE0RSxJQUFJLEVBQUVwRSxRQUFRb0UsSUFBSSxHQUFHN0UsSUFBSUksWUFBWSxDQUFDMEUsV0FBVyxDQUFDOUUsS0FBS0MsUUFBUTRFLElBQUk7SUFFN0YsT0FBTzdFLElBQUlJLFlBQVksQ0FBQzJFLFdBQVcsQ0FBQ3RFLE9BQU8sQ0FBQ1QsS0FBS0MsU0FBU1E7QUFDNUQ7QUFFTyxTQUFTakQsb0NBQW9Dd0MsR0FBUSxFQUFFQyxPQUEwQztJQUN0RyxNQUFNWSxRQUFRYixJQUFJSSxZQUFZLENBQUNVLGlCQUFpQixDQUFDTCxPQUFPLENBQUN3QixtQkFBbUI7SUFDNUUsTUFBTStDLFdBQVcsQ0FBQztJQUVsQixJQUFJbkUsTUFBTTdCLEVBQUUsRUFBRWdHLFNBQVNoRyxFQUFFLEdBQUdnQixJQUFJSSxZQUFZLENBQUNDLFNBQVMsQ0FBQ0osUUFBUWpCLEVBQUU7SUFDakUsSUFBSTZCLE1BQU1vRSw0QkFBNEIsRUFBRTtRQUN0Q0QsU0FBU0MsNEJBQTRCLEdBQUcsQ0FBQztRQUN6QyxJQUFJaEYsUUFBUWlGLDhCQUE4QixDQUFDLElBQUksRUFDN0NGLFNBQVNDLDRCQUE0QixDQUFDRSx3Q0FBaUMsQ0FBQ0MsWUFBWSxDQUFDLEdBQUdwRixJQUFJSSxZQUFZLENBQUNDLFNBQVMsQ0FDaEhKLFFBQVFpRiw4QkFBOEIsQ0FBQyxJQUFJO1FBRS9DLElBQUlqRixRQUFRaUYsOEJBQThCLENBQUMsSUFBSSxFQUM3Q0YsU0FBU0MsNEJBQTRCLENBQUNFLHdDQUFpQyxDQUFDRSxXQUFXLENBQUMsR0FBR3JGLElBQUlJLFlBQVksQ0FBQ0MsU0FBUyxDQUMvR0osUUFBUWlGLDhCQUE4QixDQUFDLElBQUk7SUFFakQ7SUFDQSxJQUFJckUsTUFBTXlFLG1CQUFtQixJQUFJckYsUUFBUXNGLHFCQUFxQixFQUM1RFAsU0FBU00sbUJBQW1CLEdBQUd0RixJQUFJSSxZQUFZLENBQUNDLFNBQVMsQ0FBQ0osUUFBUXNGLHFCQUFxQjtJQUN6RixJQUFJMUUsTUFBTTJFLHlCQUF5QixJQUFJdkYsUUFBUXdGLDRCQUE0QixFQUN6RVQsU0FBU1EseUJBQXlCLEdBQUd4RixJQUFJSSxZQUFZLENBQUNDLFNBQVMsQ0FBQ0osUUFBUXdGLDRCQUE0QjtJQUN0RyxJQUFJNUUsTUFBTTZFLDZCQUE2QixJQUFJekYsUUFBUTBGLCtCQUErQixFQUNoRlgsU0FBU1UsNkJBQTZCLEdBQUdsSSxvQ0FBb0N3QyxLQUFLQyxRQUFRMEYsK0JBQStCO0lBQzNILElBQUk5RSxNQUFNeUIsSUFBSSxFQUFFMEMsU0FBUzFDLElBQUksR0FBR3JDLFFBQVFxQyxJQUFJO0lBQzVDLElBQUl6QixNQUFNTixNQUFNLEVBQUV5RSxTQUFTekUsTUFBTSxHQUFHUCxJQUFJSSxZQUFZLENBQUNDLFNBQVMsQ0FBQ0osUUFBUTJGLE9BQU87SUFFOUUsT0FBTzVGLElBQUlJLFlBQVksQ0FBQzJFLFdBQVcsQ0FBQ2MsMEJBQTBCLENBQUM3RixLQUFLQyxTQUFTK0U7QUFDL0U7QUFFTyxTQUFTekgscUJBQXFCeUMsR0FBUSxFQUFFQyxPQUEyQjtJQUN4RSxNQUFNNEUsT0FBTyxDQUFDO0lBQ2QsTUFBTWhFLFFBQVFiLElBQUlJLFlBQVksQ0FBQ1UsaUJBQWlCLENBQUNMLE9BQU8sQ0FBQ29FLElBQUk7SUFFN0QsSUFBSWhFLE1BQU1pRixZQUFZLElBQUk3RixRQUFRNkYsWUFBWSxFQUFFakIsS0FBS2lCLFlBQVksR0FBRzdGLFFBQVE2RixZQUFZLENBQUNoSCxHQUFHLENBQUMsQ0FBQ2lILElBQU0vRixJQUFJSSxZQUFZLENBQUNDLFNBQVMsQ0FBQzBGO0lBQy9ILElBQUlsRixNQUFNbUYsY0FBYyxJQUFJL0YsUUFBUWdHLGVBQWUsRUFBRXBCLEtBQUttQixjQUFjLEdBQUdwRSxLQUFLQyxLQUFLLENBQUM1QixRQUFRZ0csZUFBZTtJQUU3RyxPQUFPakcsSUFBSUksWUFBWSxDQUFDMkUsV0FBVyxDQUFDRCxXQUFXLENBQUM5RSxLQUFLQyxTQUFTNEU7QUFDaEUifQ==
269
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvbWVzc2FnZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXNjb3JkQXBwbGljYXRpb25JbnRlZ3JhdGlvblR5cGUsXG4gIHR5cGUgRGlzY29yZE1lc3NhZ2UsXG4gIHR5cGUgRGlzY29yZE1lc3NhZ2VDYWxsLFxuICB0eXBlIERpc2NvcmRNZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YSxcbiAgdHlwZSBJbnRlcmFjdGlvblR5cGVzLFxuICB0eXBlIE1lc3NhZ2VBY3Rpdml0eVR5cGVzLFxuICB0eXBlIE1lc3NhZ2VUeXBlcyxcbiAgdHlwZSBTdGlja2VyRm9ybWF0VHlwZXMsXG59IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJ1xuaW1wb3J0IHsgQ0hBTk5FTF9NRU5USU9OX1JFR0VYIH0gZnJvbSAnLi4vY29uc3RhbnRzLmpzJ1xuaW1wb3J0IHsgc25vd2ZsYWtlVG9UaW1lc3RhbXAsIHR5cGUgQm90LCB0eXBlIFBvbGwgfSBmcm9tICcuLi9pbmRleC5qcydcbmltcG9ydCB7IE1lc3NhZ2VGbGFncyB9IGZyb20gJy4uL3R5cGluZ3MuanMnXG5pbXBvcnQgdHlwZSB7IEF0dGFjaG1lbnQgfSBmcm9tICcuL2F0dGFjaG1lbnQuanMnXG5pbXBvcnQgdHlwZSB7IENoYW5uZWwgfSBmcm9tICcuL2NoYW5uZWwuanMnXG5pbXBvcnQgdHlwZSB7IENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50LmpzJ1xuaW1wb3J0IHR5cGUgeyBFbWJlZCB9IGZyb20gJy4vZW1iZWQuanMnXG5pbXBvcnQgdHlwZSB7IEVtb2ppIH0gZnJvbSAnLi9lbW9qaS5qcydcbmltcG9ydCB0eXBlIHsgTWVtYmVyIH0gZnJvbSAnLi9tZW1iZXIuanMnXG5pbXBvcnQgeyBUb2dnbGVCaXRmaWVsZCB9IGZyb20gJy4vdG9nZ2xlcy9Ub2dnbGVCaXRmaWVsZC5qcydcbmltcG9ydCB0eXBlIHsgVXNlciB9IGZyb20gJy4vdXNlci5qcydcblxuY29uc3QgYmFzZU1lc3NhZ2U6IFBhcnRpYWw8TWVzc2FnZT4gJiBNZXNzYWdlQmFzZSA9IHtcbiAgZ2V0IGNyb3NzcG9zdGVkKCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuQ3Jvc3Nwb3N0ZWQpID8/IGZhbHNlXG4gIH0sXG4gIHNldCBjcm9zc3Bvc3RlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5mbGFncykgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmZsYWdzLmFkZChNZXNzYWdlRmxhZ3MuQ3Jvc3Nwb3N0ZWQpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuQ3Jvc3Nwb3N0ZWQpXG4gIH0sXG4gIGdldCBlcGhlbWVyYWwoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmxhZ3M/LmNvbnRhaW5zKE1lc3NhZ2VGbGFncy5FcGhlbWVyYWwpID8/IGZhbHNlXG4gIH0sXG4gIHNldCBlcGhlbWVyYWwodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLkVwaGVtZXJhbClcbiAgICBlbHNlIHRoaXMuZmxhZ3MucmVtb3ZlKE1lc3NhZ2VGbGFncy5FcGhlbWVyYWwpXG4gIH0sXG4gIGdldCBmYWlsZWRUb01lbnRpb25Tb21lUm9sZXNJblRocmVhZCgpIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncz8uY29udGFpbnMoTWVzc2FnZUZsYWdzLkZhaWxlZFRvTWVudGlvblNvbWVSb2xlc0luVGhyZWFkKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgZmFpbGVkVG9NZW50aW9uU29tZVJvbGVzSW5UaHJlYWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLkZhaWxlZFRvTWVudGlvblNvbWVSb2xlc0luVGhyZWFkKVxuICAgIGVsc2UgdGhpcy5mbGFncy5yZW1vdmUoTWVzc2FnZUZsYWdzLkZhaWxlZFRvTWVudGlvblNvbWVSb2xlc0luVGhyZWFkKVxuICB9LFxuICBnZXQgaGFzVGhyZWFkKCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuSGFzVGhyZWFkKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgaGFzVGhyZWFkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmZsYWdzKSByZXR1cm5cbiAgICBpZiAodmFsdWUpIHRoaXMuZmxhZ3MuYWRkKE1lc3NhZ2VGbGFncy5IYXNUaHJlYWQpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuSGFzVGhyZWFkKVxuICB9LFxuICBnZXQgaXNDcm9zc3Bvc3QoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmxhZ3M/LmNvbnRhaW5zKE1lc3NhZ2VGbGFncy5Jc0Nyb3NzcG9zdCkgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IGlzQ3Jvc3Nwb3N0KHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmZsYWdzKSByZXR1cm5cbiAgICBpZiAodmFsdWUpIHRoaXMuZmxhZ3MuYWRkKE1lc3NhZ2VGbGFncy5Jc0Nyb3NzcG9zdClcbiAgICBlbHNlIHRoaXMuZmxhZ3MucmVtb3ZlKE1lc3NhZ2VGbGFncy5Jc0Nyb3NzcG9zdClcbiAgfSxcbiAgZ2V0IGxvYWRpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmxhZ3M/LmNvbnRhaW5zKE1lc3NhZ2VGbGFncy5Mb2FkaW5nKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgbG9hZGluZyh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5mbGFncykgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmZsYWdzLmFkZChNZXNzYWdlRmxhZ3MuTG9hZGluZylcbiAgICBlbHNlIHRoaXMuZmxhZ3MucmVtb3ZlKE1lc3NhZ2VGbGFncy5Mb2FkaW5nKVxuICB9LFxuICBnZXQgbWVudGlvbmVkVXNlcklkcygpIHtcbiAgICByZXR1cm4gdGhpcy5tZW50aW9ucz8ubWFwKCh1c2VyKSA9PiB1c2VyLmlkKSA/PyBbXVxuICB9LFxuICBnZXQgbWVudGlvbkV2ZXJ5b25lKCkge1xuICAgIHJldHVybiB0aGlzLmJpdGZpZWxkPy5jb250YWlucygyKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgbWVudGlvbkV2ZXJ5b25lKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmJpdGZpZWxkKSByZXR1cm5cbiAgICBpZiAodmFsdWUpIHRoaXMuYml0ZmllbGQuYWRkKDIpXG4gICAgZWxzZSB0aGlzLmJpdGZpZWxkLnJlbW92ZSgyKVxuICB9LFxuICBnZXQgcGlubmVkKCkge1xuICAgIHJldHVybiB0aGlzLmJpdGZpZWxkPy5jb250YWlucygzKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgcGlubmVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmJpdGZpZWxkKSByZXR1cm5cbiAgICBpZiAodmFsdWUpIHRoaXMuYml0ZmllbGQuYWRkKDMpXG4gICAgZWxzZSB0aGlzLmJpdGZpZWxkLnJlbW92ZSgzKVxuICB9LFxuICBnZXQgc291cmNlTWVzc2FnZURlbGV0ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmxhZ3M/LmNvbnRhaW5zKE1lc3NhZ2VGbGFncy5Tb3VyY2VNZXNzYWdlRGVsZXRlZCkgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IHNvdXJjZU1lc3NhZ2VEZWxldGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmZsYWdzKSByZXR1cm5cbiAgICBpZiAodmFsdWUpIHRoaXMuZmxhZ3MuYWRkKE1lc3NhZ2VGbGFncy5Tb3VyY2VNZXNzYWdlRGVsZXRlZClcbiAgICBlbHNlIHRoaXMuZmxhZ3MucmVtb3ZlKE1lc3NhZ2VGbGFncy5Tb3VyY2VNZXNzYWdlRGVsZXRlZClcbiAgfSxcbiAgZ2V0IHN1cHByZXNzRW1iZWRzKCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuU3VwcHJlc3NFbWJlZHMpID8/IGZhbHNlXG4gIH0sXG4gIHNldCBzdXBwcmVzc0VtYmVkcyh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5mbGFncykgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmZsYWdzLmFkZChNZXNzYWdlRmxhZ3MuU3VwcHJlc3NFbWJlZHMpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuU3VwcHJlc3NFbWJlZHMpXG4gIH0sXG4gIGdldCBzdXBwcmVzc05vdGlmaWNhdGlvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmxhZ3M/LmNvbnRhaW5zKE1lc3NhZ2VGbGFncy5TdXBwcmVzc05vdGlmaWNhdGlvbnMpID8/IGZhbHNlXG4gIH0sXG4gIHNldCBzdXBwcmVzc05vdGlmaWNhdGlvbnModmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLlN1cHByZXNzTm90aWZpY2F0aW9ucylcbiAgICBlbHNlIHRoaXMuZmxhZ3MucmVtb3ZlKE1lc3NhZ2VGbGFncy5TdXBwcmVzc05vdGlmaWNhdGlvbnMpXG4gIH0sXG4gIGdldCB0aW1lc3RhbXAoKSB7XG4gICAgcmV0dXJuIHRoaXMuaWQgPyBzbm93Zmxha2VUb1RpbWVzdGFtcCh0aGlzLmlkKSA6IDBcbiAgfSxcbiAgZ2V0IHR0cygpIHtcbiAgICByZXR1cm4gdGhpcy5iaXRmaWVsZD8uY29udGFpbnMoMSkgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IHR0cyh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5iaXRmaWVsZCkgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmJpdGZpZWxkLmFkZCgxKVxuICAgIGVsc2UgdGhpcy5iaXRmaWVsZC5yZW1vdmUoMSlcbiAgfSxcbiAgZ2V0IHVyZ2VudCgpIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncz8uY29udGFpbnMoTWVzc2FnZUZsYWdzLlVyZ2VudCkgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IHVyZ2VudCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5mbGFncykgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmZsYWdzLmFkZChNZXNzYWdlRmxhZ3MuVXJnZW50KVxuICAgIGVsc2UgdGhpcy5mbGFncy5yZW1vdmUoTWVzc2FnZUZsYWdzLlVyZ2VudClcbiAgfSxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNZXNzYWdlQmFzZSB7XG4gIC8qKiBIb2xkcyBhbGwgdGhlIGJvb2xlYW4gdmFsdWVzIG9uIHRoaXMgbWVzc2FnZS4gKi9cbiAgYml0ZmllbGQ/OiBUb2dnbGVCaXRmaWVsZFxuICAvKiogV2hldGhlciB0aGlzIG1lc3NhZ2UgaGFzIGJlZW4gcHVibGlzaGVkIHRvIHN1YnNjcmliZWQgY2hhbm5lbHMgKHZpYSBDaGFubmVsIEZvbGxvd2luZykgKi9cbiAgY3Jvc3Nwb3N0ZWQ6IGJvb2xlYW5cbiAgLyoqIFdoZXRoZXIgdGhpcyBtZXNzYWdlIGlzIG9ubHkgdmlzaWJsZSB0byB0aGUgdXNlciB3aG8gaW52b2tlZCB0aGUgSW50ZXJhY3Rpb24gKi9cbiAgZXBoZW1lcmFsOiBib29sZWFuXG4gIC8qKiBXaGV0aGVyIHRoaXMgbWVzc2FnZSBmYWlsZWQgdG8gbWVudGlvbiBzb21lIHJvbGVzIGFuZCBhZGQgdGhlaXIgbWVtYmVycyB0byB0aGUgdGhyZWFkICovXG4gIGZhaWxlZFRvTWVudGlvblNvbWVSb2xlc0luVGhyZWFkOiBib29sZWFuXG4gIC8qKiBNZXNzYWdlIGZsYWdzIGNvbWJpbmVkIGFzIGEgYml0ZmllbGQgKi9cbiAgZmxhZ3M/OiBUb2dnbGVCaXRmaWVsZFxuICAvKiogV2hldGhlciB0aGlzIG1lc3NhZ2UgaGFzIGFuIGFzc29jaWF0ZWQgdGhyZWFkLCB3aXRoIHRoZSBzYW1lIGlkIGFzIHRoZSBtZXNzYWdlICovXG4gIGhhc1RocmVhZDogYm9vbGVhblxuICAvKiogV2hldGhlciB0aGlzIG1lc3NhZ2Ugb3JpZ2luYXRlZCBmcm9tIGEgbWVzc2FnZSBpbiBhbm90aGVyIGNoYW5uZWwgKHZpYSBDaGFubmVsIEZvbGxvd2luZykgKi9cbiAgaXNDcm9zc3Bvc3Q6IGJvb2xlYW5cbiAgLyoqIFdoZXRoZXIgdGhpcyBtZXNzYWdlIGlzIGFuIEludGVyYWN0aW9uIFJlc3BvbnNlIGFuZCB0aGUgYm90IGlzIFwidGhpbmtpbmdcIiAqL1xuICBsb2FkaW5nOiBib29sZWFuXG4gIC8qKiBUaGUgaWRzIG9mIHRoZSB1c2VycyB3aG8gd2VyZSBtZW50aW9uZWQgaW4gdGhpcyBtZXNzYWdlLiAqL1xuICBtZW50aW9uZWRVc2VySWRzOiBiaWdpbnRbXVxuICAvKiogV2hldGhlciB0aGlzIG1lc3NhZ2UgbWVudGlvbnMgZXZlcnlvbmUgKi9cbiAgbWVudGlvbkV2ZXJ5b25lOiBib29sZWFuXG4gIC8qKiBXaGV0aGVyIHRoaXMgbWVzc2FnZSBpcyBwaW5uZWQgKi9cbiAgcGlubmVkOiBib29sZWFuXG4gIC8qKiBXaGV0aGVyIHRoZSBzb3VyY2UgbWVzc2FnZSBmb3IgdGhpcyBjcm9zc3Bvc3QgaGFzIGJlZW4gZGVsZXRlZCAodmlhIENoYW5uZWwgRm9sbG93aW5nKSAqL1xuICBzb3VyY2VNZXNzYWdlRGVsZXRlZDogYm9vbGVhblxuICAvKiogV2hldGhlciBkbyBub3QgaW5jbHVkZSBhbnkgZW1iZWRzIHdoZW4gc2VyaWFsaXppbmcgdGhpcyBtZXNzYWdlICovXG4gIHN1cHByZXNzRW1iZWRzOiBib29sZWFuXG4gIC8qKiBXaGV0aGVyIHRoaXMgbWVzc2FnZSB3aWxsIG5vdCB0cmlnZ2VyIHB1c2ggYW5kIGRlc2t0b3Agbm90aWZpY2F0aW9ucyAqL1xuICBzdXBwcmVzc05vdGlmaWNhdGlvbnM6IGJvb2xlYW5cbiAgLyoqIFRoZSB0aW1lc3RhbXAgaW4gbWlsbGlzZWNvbmRzIHdoZW4gdGhpcyBtZXNzYWdlIHdhcyBjcmVhdGVkICovXG4gIHRpbWVzdGFtcDogbnVtYmVyXG4gIC8qKiBXaGV0aGVyIHRoaXMgd2FzIGEgVFRTIG1lc3NhZ2UuICovXG4gIHR0czogYm9vbGVhblxuICAvKiogV2hldGhlciB0aGlzIG1lc3NhZ2UgY2FtZSBmcm9tIHRoZSB1cmdlbnQgbWVzc2FnZSBzeXN0ZW0gKi9cbiAgdXJnZW50OiBib29sZWFuXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2VCYXNlIHtcbiAgLyoqIFNlbnQgd2l0aCBSaWNoIFByZXNlbmNlLXJlbGF0ZWQgY2hhdCBlbWJlZHMgKi9cbiAgYWN0aXZpdHk/OiB7XG4gICAgLyoqIFR5cGUgb2YgbWVzc2FnZSBhY3Rpdml0eSAqL1xuICAgIHR5cGU6IE1lc3NhZ2VBY3Rpdml0eVR5cGVzXG4gICAgLyoqIHBhcnR5X2lkIGZyb20gYSBSaWNoIFByZXNlbmNlIGV2ZW50ICovXG4gICAgcGFydHlJZD86IHN0cmluZ1xuICB9XG4gIC8qKiBpZiB0aGUgbWVzc2FnZSBpcyBhbiBJbnRlcmFjdGlvbiBvciBhcHBsaWNhdGlvbi1vd25lZCB3ZWJob29rLCB0aGlzIGlzIHRoZSBpZCBvZiB0aGUgYXBwbGljYXRpb24gKi9cbiAgYXBwbGljYXRpb25JZD86IGJpZ2ludFxuICAvKiogQW55IGF0dGFjaGVkIGZpbGVzIG9uIHRoaXMgbWVzc2FnZS4gKi9cbiAgYXR0YWNobWVudHM/OiBBdHRhY2htZW50W11cbiAgLyoqIFRoZSBhdXRob3Igb2YgdGhpcyBtZXNzYWdlIChub3QgZ3VhcmFudGVlZCB0byBiZSBhIHZhbGlkIHVzZXIpIE5vdGU6IFRoZSBhdXRob3Igb2JqZWN0IGZvbGxvd3MgdGhlIHN0cnVjdHVyZSBvZiB0aGUgdXNlciBvYmplY3QsIGJ1dCBpcyBvbmx5IGEgdmFsaWQgdXNlciBpbiB0aGUgY2FzZSB3aGVyZSB0aGUgbWVzc2FnZSBpcyBnZW5lcmF0ZWQgYnkgYSB1c2VyIG9yIGJvdCB1c2VyLiBJZiB0aGUgbWVzc2FnZSBpcyBnZW5lcmF0ZWQgYnkgYSB3ZWJob29rLCB0aGUgYXV0aG9yIG9iamVjdCBjb3JyZXNwb25kcyB0byB0aGUgd2ViaG9vaydzIGlkLCB1c2VybmFtZSwgYW5kIGF2YXRhci4gWW91IGNhbiB0ZWxsIGlmIGEgbWVzc2FnZSBpcyBnZW5lcmF0ZWQgYnkgYSB3ZWJob29rIGJ5IGNoZWNraW5nIGZvciB0aGUgd2ViaG9va19pZCBvbiB0aGUgbWVzc2FnZSBvYmplY3QuICovXG4gIGF1dGhvcjogVXNlclxuICAvKiogaWQgb2YgdGhlIGNoYW5uZWwgdGhlIG1lc3NhZ2Ugd2FzIHNlbnQgaW4gKi9cbiAgY2hhbm5lbElkOiBiaWdpbnRcbiAgLyoqIFRoZSBjb21wb25lbnRzIHJlbGF0ZWQgdG8gdGhpcyBtZXNzYWdlICovXG4gIGNvbXBvbmVudHM6IENvbXBvbmVudFtdXG4gIC8qKiBDb250ZW50cyBvZiB0aGUgbWVzc2FnZSAqL1xuICBjb250ZW50OiBzdHJpbmdcbiAgLyoqIFRoZSB0aW1lc3RhbXAgaW4gbWlsbGlzZWNvbmRzIHdoZW4gdGhpcyBtZXNzYWdlIHdhcyBlZGl0ZWQgbGFzdC4gKi9cbiAgZWRpdGVkVGltZXN0YW1wPzogbnVtYmVyXG4gIC8qKiBBbnkgZW1iZWRkZWQgY29udGVudCAqL1xuICBlbWJlZHM/OiBFbWJlZFtdXG4gIC8qKiBpZCBvZiB0aGUgZ3VpbGQgdGhlIG1lc3NhZ2Ugd2FzIHNlbnQgaW4gTm90ZTogRm9yIE1FU1NBR0VfQ1JFQVRFIGFuZCBNRVNTQUdFX1VQREFURSBldmVudHMsIHRoZSBtZXNzYWdlIG9iamVjdCBtYXkgbm90IGNvbnRhaW4gYSBndWlsZF9pZCBvciBtZW1iZXIgZmllbGQgc2luY2UgdGhlIGV2ZW50cyBhcmUgc2VudCBkaXJlY3RseSB0byB0aGUgcmVjZWl2aW5nIHVzZXIgYW5kIHRoZSBib3Qgd2hvIHNlbnQgdGhlIG1lc3NhZ2UsIHJhdGhlciB0aGFuIGJlaW5nIHNlbnQgdGhyb3VnaCB0aGUgZ3VpbGQgbGlrZSBub24tZXBoZW1lcmFsIG1lc3NhZ2VzLiAqL1xuICBndWlsZElkPzogYmlnaW50XG4gIC8qKiBpZCBvZiB0aGUgbWVzc2FnZSAqL1xuICBpZDogYmlnaW50XG4gIC8qKiBzZW50IGlmIHRoZSBtZXNzYWdlIGlzIHNlbnQgYXMgYSByZXN1bHQgb2YgYW4gaW50ZXJhY3Rpb24gKi9cbiAgaW50ZXJhY3Rpb25NZXRhZGF0YT86IE1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhXG4gIC8qKlxuICAgKiBTZW50IGlmIHRoZSBtZXNzYWdlIGlzIGEgcmVzcG9uc2UgdG8gYW4gSW50ZXJhY3Rpb25cbiAgICpcbiAgICogQGRlcHJlY2F0ZWQgRGVwcmVjYXRlZCBpbiBmYXZvciBvZiB7QGxpbmsgaW50ZXJhY3Rpb25NZXRhZGF0YX1cbiAgICovXG4gIGludGVyYWN0aW9uPzoge1xuICAgIC8qKiBJZCBvZiB0aGUgaW50ZXJhY3Rpb24gKi9cbiAgICBpZDogYmlnaW50XG4gICAgLyoqIFRoZSBtZW1iZXIgd2hvIGludm9rZWQgdGhlIGludGVyYWN0aW9uIGluIHRoZSBndWlsZCAgKi9cbiAgICBtZW1iZXI/OiBNZW1iZXJcbiAgICAvKiogVGhlIG5hbWUgb2YgdGhlIEFwcGxpY2F0aW9uQ29tbWFuZCBpbmNsdWRpbmcgdGhlIG5hbWUgb2YgdGhlIHN1YmNvbW1hbmQvc3ViY29tbWFuZCBncm91cCAqL1xuICAgIG5hbWU6IHN0cmluZ1xuICAgIC8qKiBUaGUgdHlwZSBvZiBpbnRlcmFjdGlvbiAqL1xuICAgIHR5cGU6IEludGVyYWN0aW9uVHlwZXNcbiAgICAvKiogVGhlIHVzZXIgd2hvIGludm9rZWQgdGhlIGludGVyYWN0aW9uICovXG4gICAgdXNlcjogVXNlclxuICB9XG4gIC8qKiBNZW1iZXIgcHJvcGVydGllcyBmb3IgdGhpcyBtZXNzYWdlJ3MgYXV0aG9yIE5vdGU6IFRoZSBtZW1iZXIgb2JqZWN0IGV4aXN0cyBpbiBNRVNTQUdFX0NSRUFURSBhbmQgTUVTU0FHRV9VUERBVEUgZXZlbnRzIGZyb20gdGV4dC1iYXNlZCBndWlsZCBjaGFubmVscy4gVGhpcyBhbGxvd3MgYm90cyB0byBvYnRhaW4gcmVhbC10aW1lIG1lbWJlciBkYXRhIHdpdGhvdXQgcmVxdWlyaW5nIGJvdHMgdG8gc3RvcmUgbWVtYmVyIHN0YXRlIGluIG1lbW9yeS4gKi9cbiAgbWVtYmVyPzogTWVtYmVyXG4gIC8qKiBVc2VycyBzcGVjaWZpY2FsbHkgbWVudGlvbmVkIGluIHRoZSBtZXNzYWdlIE5vdGU6IFRoZSB1c2VyIG9iamVjdHMgaW4gdGhlIG1lbnRpb25zIGFycmF5IHdpbGwgb25seSBoYXZlIHRoZSBwYXJ0aWFsIG1lbWJlciBmaWVsZCBwcmVzZW50IGluIE1FU1NBR0VfQ1JFQVRFIGFuZCBNRVNTQUdFX1VQREFURSBldmVudHMgZnJvbSB0ZXh0LWJhc2VkIGd1aWxkIGNoYW5uZWxzLiAqL1xuICBtZW50aW9ucz86IFVzZXJbXVxuICAvKiogQ2hhbm5lbHMgc3BlY2lmaWNhbGx5IG1lbnRpb25lZCBpbiB0aGlzIG1lc3NhZ2UgTm90ZTogTm90IGFsbCBjaGFubmVsIG1lbnRpb25zIGluIGEgbWVzc2FnZSB3aWxsIGFwcGVhciBpbiBtZW50aW9uX2NoYW5uZWxzLiBPbmx5IHRleHR1YWwgY2hhbm5lbHMgdGhhdCBhcmUgdmlzaWJsZSB0byBldmVyeW9uZSBpbiBhIGRpc2NvdmVyYWJsZSBndWlsZCB3aWxsIGV2ZXIgYmUgaW5jbHVkZWQuIE9ubHkgY3Jvc3Nwb3N0ZWQgbWVzc2FnZXMgKHZpYSBDaGFubmVsIEZvbGxvd2luZykgY3VycmVudGx5IGluY2x1ZGUgbWVudGlvbl9jaGFubmVscyBhdCBhbGwuIElmIG5vIG1lbnRpb25zIGluIHRoZSBtZXNzYWdlIG1lZXQgdGhlc2UgcmVxdWlyZW1lbnRzLCB0aGlzIGZpZWxkIHdpbGwgbm90IGJlIHNlbnQuICovXG4gIG1lbnRpb25lZENoYW5uZWxJZHM/OiBiaWdpbnRbXVxuICAvKiogUm9sZXMgc3BlY2lmaWNhbGx5IG1lbnRpb25lZCBpbiB0aGlzIG1lc3NhZ2UgKi9cbiAgbWVudGlvbmVkUm9sZUlkcz86IGJpZ2ludFtdXG4gIC8qKiBEYXRhIHNob3dpbmcgdGhlIHNvdXJjZSBvZiBhIGNyb3NzcG9zdGVkIGNoYW5uZWwgZm9sbG93IGFkZCwgcGluIG9yIHJlcGx5IG1lc3NhZ2UgKi9cbiAgbWVzc2FnZVJlZmVyZW5jZT86IHtcbiAgICAvKiogaWQgb2YgdGhlIG9yaWdpbmF0aW5nIG1lc3NhZ2UncyBjaGFubmVsIE5vdGU6IGNoYW5uZWxfaWQgaXMgb3B0aW9uYWwgd2hlbiBjcmVhdGluZyBhIHJlcGx5LCBidXQgd2lsbCBhbHdheXMgYmUgcHJlc2VudCB3aGVuIHJlY2VpdmluZyBhbiBldmVudC9yZXNwb25zZSB0aGF0IGluY2x1ZGVzIHRoaXMgZGF0YSBtb2RlbC4gKi9cbiAgICBjaGFubmVsSWQ/OiBiaWdpbnRcbiAgICAvKiogaWQgb2YgdGhlIG9yaWdpbmF0aW5nIG1lc3NhZ2UncyBndWlsZCAqL1xuICAgIGd1aWxkSWQ/OiBiaWdpbnRcbiAgICAvKiogaWQgb2YgdGhlIG9yaWdpbmF0aW5nIG1lc3NhZ2UgKi9cbiAgICBtZXNzYWdlSWQ/OiBiaWdpbnRcbiAgfVxuICAvKiogVXNlZCBmb3IgdmFsaWRhdGluZyBhIG1lc3NhZ2Ugd2FzIHNlbnQgKi9cbiAgbm9uY2U/OiBzdHJpbmcgfCBudW1iZXJcbiAgLyoqIFJlYWN0aW9ucyBvbiB0aGlzIG1lc3NhZ2UuICovXG4gIHJlYWN0aW9ucz86IEFycmF5PHtcbiAgICAvKiogV2hldGhlciB0aGUgY3VycmVudCB1c2VyIHJlYWN0ZWQgdXNpbmcgdGhpcyBlbW9qaSAqL1xuICAgIG1lOiBib29sZWFuXG4gICAgLyoqXHRXaGV0aGVyIHRoZSBjdXJyZW50IHVzZXIgc3VwZXItcmVhY3RlZCB1c2luZyB0aGlzIGVtb2ppICovXG4gICAgbWVCdXJzdDogYm9vbGVhblxuICAgIC8qKiBUaW1lcyB0aGlzIGVtb2ppIGhhcyBiZWVuIHVzZWQgdG8gcmVhY3QgKi9cbiAgICBjb3VudDogbnVtYmVyXG4gICAgLyoqXHRSZWFjdGlvbiBjb3VudCBkZXRhaWxzIG9iamVjdCAqL1xuICAgIGNvdW50RGV0YWlsczoge1xuICAgICAgLyoqIENvdW50IG9mIHN1cGVyIHJlYWN0aW9ucyAqL1xuICAgICAgYnVyc3Q6IG51bWJlclxuICAgICAgLyoqXHRDb3VudCBvZiBub3JtYWwgcmVhY3Rpb25zICovXG4gICAgICBub3JtYWw6IG51bWJlclxuICAgIH1cbiAgICAvKiogRW1vamkgaW5mb3JtYXRpb24gKi9cbiAgICBlbW9qaTogRW1vamlcbiAgICAvKiogSEVYIGNvbG9ycyB1c2VkIGZvciBzdXBlciByZWFjdGlvbiAqL1xuICAgIGJ1cnN0Q29sb3JzOiBzdHJpbmdbXVxuICB9PlxuICAvKiogU2VudCBpZiB0aGUgbWVzc2FnZSBjb250YWlucyBzdGlja2VycyAqL1xuICBzdGlja2VySXRlbXM/OiBBcnJheTx7XG4gICAgLyoqIFRoZSBpZCBvZiB0aGlzIHN0aWNrZXIuICovXG4gICAgaWQ6IGJpZ2ludFxuICAgIC8qKiBUaGUgbmFtZSBvZiB0aGlzIHN0aWNrZXIuICovXG4gICAgbmFtZTogc3RyaW5nXG4gICAgLyoqIFRoZSB0eXBlIG9mIHRoaXMgc3RpY2tlcnMgZm9ybWF0LiAqL1xuICAgIGZvcm1hdFR5cGU6IFN0aWNrZXJGb3JtYXRUeXBlc1xuICB9PlxuICAvKiogVHlwZSBvZiBtZXNzYWdlICovXG4gIHR5cGU6IE1lc3NhZ2VUeXBlc1xuICAvKiogVGhlIHRocmVhZCB0aGF0IHdhcyBzdGFydGVkIGZyb20gdGhpcyBtZXNzYWdlLCBpbmNsdWRlcyB0aHJlYWQgbWVtYmVyIG9iamVjdCAgKi9cbiAgdGhyZWFkPzogQ2hhbm5lbFxuICAvKiogSWYgdGhlIG1lc3NhZ2UgaXMgZ2VuZXJhdGVkIGJ5IGEgd2ViaG9vaywgdGhpcyBpcyB0aGUgd2ViaG9vaydzIGlkICovXG4gIHdlYmhvb2tJZD86IGJpZ2ludFxuICAvKiogQSBwb2xsISAqL1xuICBwb2xsPzogUG9sbFxuICAvKiogVGhlIGNhbGwgYXNzb2NpYXRlZCB3aXRoIHRoZSBtZXNzYWdlICovXG4gIGNhbGw/OiBNZXNzYWdlQ2FsbFxufVxuXG5jb25zdCBFTVBUWV9TVFJJTkcgPSAnJ1xuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtTWVzc2FnZShib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZE1lc3NhZ2UpOiBNZXNzYWdlIHtcbiAgY29uc3QgZ3VpbGRJZCA9IHBheWxvYWQuZ3VpbGRfaWQgPyBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmd1aWxkX2lkKSA6IHVuZGVmaW5lZFxuICBjb25zdCB1c2VySWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmF1dGhvci5pZClcblxuICBjb25zdCBtZXNzYWdlOiBNZXNzYWdlID0gT2JqZWN0LmNyZWF0ZShiYXNlTWVzc2FnZSlcbiAgbWVzc2FnZS5iaXRmaWVsZCA9IG5ldyBUb2dnbGVCaXRmaWVsZCgpXG4gIG1lc3NhZ2UuZmxhZ3MgPSBuZXcgVG9nZ2xlQml0ZmllbGQocGF5bG9hZC5mbGFncylcblxuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMubWVzc2FnZVxuXG4gIGlmIChwcm9wcy5hdXRob3IgJiYgcGF5bG9hZC5hdXRob3IpIG1lc3NhZ2UuYXV0aG9yID0gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgcGF5bG9hZC5hdXRob3IpXG4gIGlmIChwcm9wcy5hcHBsaWNhdGlvbklkICYmIHBheWxvYWQuYXBwbGljYXRpb25faWQpIG1lc3NhZ2UuYXBwbGljYXRpb25JZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuYXBwbGljYXRpb25faWQpXG4gIGlmIChwcm9wcy5hdHRhY2htZW50cyAmJiBwYXlsb2FkLmF0dGFjaG1lbnRzPy5sZW5ndGgpXG4gICAgbWVzc2FnZS5hdHRhY2htZW50cyA9IHBheWxvYWQuYXR0YWNobWVudHMubWFwKChhdHRhY2htZW50KSA9PiBib3QudHJhbnNmb3JtZXJzLmF0dGFjaG1lbnQoYm90LCBhdHRhY2htZW50KSlcbiAgaWYgKHByb3BzLmNoYW5uZWxJZCAmJiBwYXlsb2FkLmNoYW5uZWxfaWQpIG1lc3NhZ2UuY2hhbm5lbElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5jaGFubmVsX2lkKVxuICBpZiAocHJvcHMuY29tcG9uZW50cyAmJiBwYXlsb2FkLmNvbXBvbmVudHM/Lmxlbmd0aCkgbWVzc2FnZS5jb21wb25lbnRzID0gcGF5bG9hZC5jb21wb25lbnRzLm1hcCgoY29tcCkgPT4gYm90LnRyYW5zZm9ybWVycy5jb21wb25lbnQoYm90LCBjb21wKSlcbiAgaWYgKHByb3BzLmNvbnRlbnQgJiYgcGF5bG9hZC5jb250ZW50KSBtZXNzYWdlLmNvbnRlbnQgPSBwYXlsb2FkLmNvbnRlbnQgPz8gRU1QVFlfU1RSSU5HXG4gIGlmIChwcm9wcy5lZGl0ZWRUaW1lc3RhbXAgJiYgcGF5bG9hZC5lZGl0ZWRfdGltZXN0YW1wKSBtZXNzYWdlLmVkaXRlZFRpbWVzdGFtcCA9IERhdGUucGFyc2UocGF5bG9hZC5lZGl0ZWRfdGltZXN0YW1wKVxuICBpZiAocHJvcHMuZW1iZWRzICYmIHBheWxvYWQuZW1iZWRzPy5sZW5ndGgpIG1lc3NhZ2UuZW1iZWRzID0gcGF5bG9hZC5lbWJlZHMubWFwKChlbWJlZCkgPT4gYm90LnRyYW5zZm9ybWVycy5lbWJlZChib3QsIGVtYmVkKSlcbiAgaWYgKHByb3BzLmd1aWxkSWQgJiYgZ3VpbGRJZCkgbWVzc2FnZS5ndWlsZElkID0gZ3VpbGRJZFxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgbWVzc2FnZS5pZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaWQpXG4gIGlmIChwYXlsb2FkLmludGVyYWN0aW9uX21ldGFkYXRhKSBtZXNzYWdlLmludGVyYWN0aW9uTWV0YWRhdGEgPSB0cmFuc2Zvcm1NZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YShib3QsIHBheWxvYWQuaW50ZXJhY3Rpb25fbWV0YWRhdGEpXG4gIGlmIChwYXlsb2FkLmludGVyYWN0aW9uKSB7XG4gICAgY29uc3QgaW50ZXJhY3Rpb24gPSB7fSBhcyBOb25OdWxsYWJsZTxNZXNzYWdlWydpbnRlcmFjdGlvbiddPlxuICAgIGxldCBlZGl0ZWQgPSBmYWxzZVxuICAgIGlmIChwcm9wcy5pbnRlcmFjdGlvbi5pZCkge1xuICAgICAgaW50ZXJhY3Rpb24uaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmludGVyYWN0aW9uLmlkKVxuICAgICAgZWRpdGVkID0gdHJ1ZVxuICAgIH1cbiAgICBpZiAocHJvcHMuaW50ZXJhY3Rpb24ubWVtYmVyICYmIHBheWxvYWQuaW50ZXJhY3Rpb24ubWVtYmVyKSB7XG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIFRPRE86IHBhcnRpYWwgLSBjaGVjayB3aHkgdGhpcyBpcyBwYXJ0aWFsIGFuZCBoYW5kbGUgYXMgbmVlZGVkXG4gICAgICBpbnRlcmFjdGlvbi5tZW1iZXIgPSBib3QudHJhbnNmb3JtZXJzLm1lbWJlcihib3QsIHBheWxvYWQuaW50ZXJhY3Rpb24ubWVtYmVyLCBndWlsZElkLCBwYXlsb2FkLmludGVyYWN0aW9uLnVzZXIuaWQpXG4gICAgICBlZGl0ZWQgPSB0cnVlXG4gICAgfVxuICAgIGlmIChwcm9wcy5pbnRlcmFjdGlvbi5uYW1lKSB7XG4gICAgICBpbnRlcmFjdGlvbi5uYW1lID0gcGF5bG9hZC5pbnRlcmFjdGlvbi5uYW1lXG4gICAgICBlZGl0ZWQgPSB0cnVlXG4gICAgfVxuICAgIGlmIChwcm9wcy5pbnRlcmFjdGlvbi50eXBlKSB7XG4gICAgICBpbnRlcmFjdGlvbi50eXBlID0gcGF5bG9hZC5pbnRlcmFjdGlvbi50eXBlXG4gICAgICBlZGl0ZWQgPSB0cnVlXG4gICAgfVxuICAgIGlmIChwcm9wcy5pbnRlcmFjdGlvbi51c2VyKSB7XG4gICAgICBpbnRlcmFjdGlvbi51c2VyID0gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgcGF5bG9hZC5pbnRlcmFjdGlvbi51c2VyKVxuICAgICAgZWRpdGVkID0gdHJ1ZVxuICAgIH1cblxuICAgIGlmIChlZGl0ZWQpIG1lc3NhZ2UuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvblxuICB9XG4gIGlmIChwcm9wcy5tZW1iZXIgJiYgZ3VpbGRJZCAmJiBwYXlsb2FkLm1lbWJlcikgbWVzc2FnZS5tZW1iZXIgPSBib3QudHJhbnNmb3JtZXJzLm1lbWJlcihib3QsIHBheWxvYWQubWVtYmVyLCBndWlsZElkLCB1c2VySWQpXG4gIGlmIChwYXlsb2FkLm1lbnRpb25fZXZlcnlvbmUpIG1lc3NhZ2UubWVudGlvbkV2ZXJ5b25lID0gdHJ1ZVxuICBpZiAocHJvcHMubWVudGlvbmVkQ2hhbm5lbElkcyAmJiBwYXlsb2FkLm1lbnRpb25fY2hhbm5lbHM/Lmxlbmd0aCkge1xuICAgIG1lc3NhZ2UubWVudGlvbmVkQ2hhbm5lbElkcyA9IFtcbiAgICAgIC8vIEtlZXAgYW55IGlkcyB0aHQgZGlzY29yZCBzZW5kc1xuICAgICAgLi4uKHBheWxvYWQubWVudGlvbl9jaGFubmVscyA/PyBbXSkubWFwKChtKSA9PiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShtLmlkKSksXG4gICAgICAvLyBBZGQgYW55IG90aGVyIGlkcyB0aGF0IGNhbiBiZSB2YWxpZGF0ZWQgaW4gYSBjaGFubmVsIG1lbnRpb24gZm9ybWF0XG4gICAgICAuLi4ocGF5bG9hZC5jb250ZW50Py5tYXRjaChDSEFOTkVMX01FTlRJT05fUkVHRVgpID8/IFtdKS5tYXAoKHRleHQpID0+XG4gICAgICAgIC8vIGNvbnZlcnRzIHRoZSA8IzEyMz4gaW50byAxMjNcbiAgICAgICAgYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UodGV4dC5zdWJzdHJpbmcoMiwgdGV4dC5sZW5ndGggLSAxKSksXG4gICAgICApLFxuICAgIF1cbiAgfVxuICBpZiAocHJvcHMubWVudGlvbmVkUm9sZUlkcyAmJiBwYXlsb2FkLm1lbnRpb25fcm9sZXM/Lmxlbmd0aClcbiAgICBtZXNzYWdlLm1lbnRpb25lZFJvbGVJZHMgPSBwYXlsb2FkLm1lbnRpb25fcm9sZXMubWFwKChpZCkgPT4gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoaWQpKVxuICBpZiAocHJvcHMubWVudGlvbnMgJiYgcGF5bG9hZC5tZW50aW9ucz8ubGVuZ3RoKSBtZXNzYWdlLm1lbnRpb25zID0gcGF5bG9hZC5tZW50aW9ucy5tYXAoKHVzZXIpID0+IGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHVzZXIpKVxuICBpZiAocGF5bG9hZC5tZXNzYWdlX3JlZmVyZW5jZSkge1xuICAgIGNvbnN0IHJlZmVyZW5jZSA9IHt9IGFzIE5vbk51bGxhYmxlPE1lc3NhZ2VbJ21lc3NhZ2VSZWZlcmVuY2UnXT5cbiAgICBsZXQgZWRpdGVkID0gZmFsc2VcblxuICAgIGlmIChwcm9wcy5tZXNzYWdlUmVmZXJlbmNlLmNoYW5uZWxJZCAmJiBwYXlsb2FkLm1lc3NhZ2VfcmVmZXJlbmNlLmNoYW5uZWxfaWQpIHtcbiAgICAgIHJlZmVyZW5jZS5jaGFubmVsSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLm1lc3NhZ2VfcmVmZXJlbmNlLmNoYW5uZWxfaWQpXG4gICAgICBlZGl0ZWQgPSB0cnVlXG4gICAgfVxuICAgIGlmIChwcm9wcy5tZXNzYWdlUmVmZXJlbmNlLmd1aWxkSWQgJiYgcGF5bG9hZC5tZXNzYWdlX3JlZmVyZW5jZS5ndWlsZF9pZCkge1xuICAgICAgcmVmZXJlbmNlLmd1aWxkSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLm1lc3NhZ2VfcmVmZXJlbmNlLmd1aWxkX2lkKVxuICAgICAgZWRpdGVkID0gdHJ1ZVxuICAgIH1cbiAgICBpZiAocHJvcHMubWVzc2FnZVJlZmVyZW5jZS5tZXNzYWdlSWQgJiYgcGF5bG9hZC5tZXNzYWdlX3JlZmVyZW5jZS5tZXNzYWdlX2lkKSB7XG4gICAgICByZWZlcmVuY2UubWVzc2FnZUlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5tZXNzYWdlX3JlZmVyZW5jZS5tZXNzYWdlX2lkKVxuICAgICAgZWRpdGVkID0gdHJ1ZVxuICAgIH1cblxuICAgIGlmIChlZGl0ZWQpIG1lc3NhZ2UubWVzc2FnZVJlZmVyZW5jZSA9IHJlZmVyZW5jZVxuICB9XG4gIGlmIChwcm9wcy5ub25jZSAmJiBwYXlsb2FkLm5vbmNlKSBtZXNzYWdlLm5vbmNlID0gcGF5bG9hZC5ub25jZVxuICBpZiAocGF5bG9hZC5waW5uZWQpIG1lc3NhZ2UucGlubmVkID0gdHJ1ZVxuICBpZiAocHJvcHMucmVhY3Rpb25zICYmIHBheWxvYWQucmVhY3Rpb25zPy5sZW5ndGgpIHtcbiAgICBtZXNzYWdlLnJlYWN0aW9ucyA9IHBheWxvYWQucmVhY3Rpb25zLm1hcCgocmVhY3Rpb24pID0+ICh7XG4gICAgICBtZTogcmVhY3Rpb24ubWUsXG4gICAgICBtZUJ1cnN0OiByZWFjdGlvbi5tZV9idXJzdCxcbiAgICAgIGNvdW50OiByZWFjdGlvbi5jb3VudCxcbiAgICAgIGNvdW50RGV0YWlsczoge1xuICAgICAgICBidXJzdDogcmVhY3Rpb24uY291bnRfZGV0YWlscy5idXJzdCxcbiAgICAgICAgbm9ybWFsOiByZWFjdGlvbi5jb3VudF9kZXRhaWxzLm5vcm1hbCxcbiAgICAgIH0sXG4gICAgICBlbW9qaTogYm90LnRyYW5zZm9ybWVycy5lbW9qaShib3QsIHJlYWN0aW9uLmVtb2ppKSxcbiAgICAgIGJ1cnN0Q29sb3JzOiByZWFjdGlvbi5idXJzdF9jb2xvcnMsXG4gICAgfSkpXG4gIH1cbiAgaWYgKHByb3BzLnN0aWNrZXJJdGVtcyAmJiBwYXlsb2FkLnN0aWNrZXJfaXRlbXM/Lmxlbmd0aClcbiAgICBtZXNzYWdlLnN0aWNrZXJJdGVtcyA9IHBheWxvYWQuc3RpY2tlcl9pdGVtcy5tYXAoKGl0ZW0pID0+ICh7XG4gICAgICBpZDogYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoaXRlbS5pZCksXG4gICAgICBuYW1lOiBpdGVtLm5hbWUsXG4gICAgICBmb3JtYXRUeXBlOiBpdGVtLmZvcm1hdF90eXBlLFxuICAgIH0pKVxuICBpZiAocGF5bG9hZC50dHMpIG1lc3NhZ2UudHRzID0gdHJ1ZVxuICBpZiAocHJvcHMudGhyZWFkICYmIHBheWxvYWQudGhyZWFkKSBtZXNzYWdlLnRocmVhZCA9IGJvdC50cmFuc2Zvcm1lcnMuY2hhbm5lbChib3QsIHsgY2hhbm5lbDogcGF5bG9hZC50aHJlYWQsIGd1aWxkSWQgfSlcbiAgaWYgKHByb3BzLnR5cGUpIG1lc3NhZ2UudHlwZSA9IHBheWxvYWQudHlwZVxuICBpZiAocHJvcHMud2ViaG9va0lkICYmIHBheWxvYWQud2ViaG9va19pZCkgbWVzc2FnZS53ZWJob29rSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLndlYmhvb2tfaWQpXG4gIGlmIChwcm9wcy5wb2xsICYmIHBheWxvYWQucG9sbCkgbWVzc2FnZS5wb2xsID0gYm90LnRyYW5zZm9ybWVycy5wb2xsKGJvdCwgcGF5bG9hZC5wb2xsKVxuICBpZiAocHJvcHMuY2FsbCAmJiBwYXlsb2FkLmNhbGwpIG1lc3NhZ2UuY2FsbCA9IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZUNhbGwoYm90LCBwYXlsb2FkLmNhbGwpXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMubWVzc2FnZShib3QsIHBheWxvYWQsIG1lc3NhZ2UpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1NZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YShib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZE1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhKTogTWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGEge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMubWVzc2FnZS5pbnRlcmFjdGlvbk1ldGFkYXRhXG4gIGNvbnN0IG1ldGFkYXRhID0ge30gYXMgTWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGFcblxuICBpZiAocHJvcHMuaWQpIG1ldGFkYXRhLmlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pZClcbiAgaWYgKHByb3BzLmF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnMpIHtcbiAgICBtZXRhZGF0YS5hdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzID0ge31cbiAgICBpZiAocGF5bG9hZC5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzAnXSlcbiAgICAgIG1ldGFkYXRhLmF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnNbRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlLkd1aWxkSW5zdGFsbF0gPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShcbiAgICAgICAgcGF5bG9hZC5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzAnXSxcbiAgICAgIClcbiAgICBpZiAocGF5bG9hZC5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzEnXSlcbiAgICAgIG1ldGFkYXRhLmF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnNbRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlLlVzZXJJbnN0YWxsXSA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKFxuICAgICAgICBwYXlsb2FkLmF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVyc1snMSddLFxuICAgICAgKVxuICB9XG4gIGlmIChwcm9wcy5pbnRlcmFjdGVkTWVzc2FnZUlkICYmIHBheWxvYWQuaW50ZXJhY3RlZF9tZXNzYWdlX2lkKVxuICAgIG1ldGFkYXRhLmludGVyYWN0ZWRNZXNzYWdlSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmludGVyYWN0ZWRfbWVzc2FnZV9pZClcbiAgaWYgKHByb3BzLm9yaWdpbmFsUmVzcG9uc2VNZXNzYWdlSWQgJiYgcGF5bG9hZC5vcmlnaW5hbF9yZXNwb25zZV9tZXNzYWdlX2lkKVxuICAgIG1ldGFkYXRhLm9yaWdpbmFsUmVzcG9uc2VNZXNzYWdlSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLm9yaWdpbmFsX3Jlc3BvbnNlX21lc3NhZ2VfaWQpXG4gIGlmIChwcm9wcy50cmlnZ2VyaW5nSW50ZXJhY3Rpb25NZXRhZGF0YSAmJiBwYXlsb2FkLnRyaWdnZXJpbmdfaW50ZXJhY3Rpb25fbWV0YWRhdGEpXG4gICAgbWV0YWRhdGEudHJpZ2dlcmluZ0ludGVyYWN0aW9uTWV0YWRhdGEgPSB0cmFuc2Zvcm1NZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YShib3QsIHBheWxvYWQudHJpZ2dlcmluZ19pbnRlcmFjdGlvbl9tZXRhZGF0YSlcbiAgaWYgKHByb3BzLnR5cGUpIG1ldGFkYXRhLnR5cGUgPSBwYXlsb2FkLnR5cGVcbiAgaWYgKHByb3BzLnVzZXJJZCkgbWV0YWRhdGEudXNlcklkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC51c2VyX2lkKVxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLm1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhKGJvdCwgcGF5bG9hZCwgbWV0YWRhdGEpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1NZXNzYWdlQ2FsbChib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZE1lc3NhZ2VDYWxsKTogTWVzc2FnZUNhbGwge1xuICBjb25zdCBjYWxsID0ge30gYXMgTWVzc2FnZUNhbGxcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLm1lc3NhZ2UuY2FsbFxuXG4gIGlmIChwcm9wcy5wYXJ0aWNpcGFudHMgJiYgcGF5bG9hZC5wYXJ0aWNpcGFudHMpIGNhbGwucGFydGljaXBhbnRzID0gcGF5bG9hZC5wYXJ0aWNpcGFudHMubWFwKCh4KSA9PiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZSh4KSlcbiAgaWYgKHByb3BzLmVuZGVkVGltZXN0YW1wICYmIHBheWxvYWQuZW5kZWRfdGltZXN0YW1wKSBjYWxsLmVuZGVkVGltZXN0YW1wID0gRGF0ZS5wYXJzZShwYXlsb2FkLmVuZGVkX3RpbWVzdGFtcClcblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5tZXNzYWdlQ2FsbChib3QsIHBheWxvYWQsIGNhbGwpXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGEge1xuICAvKiogSWQgb2YgdGhlIGludGVyYWN0aW9uICovXG4gIGlkOiBiaWdpbnRcbiAgLyoqIFRoZSB0eXBlIG9mIGludGVyYWN0aW9uICovXG4gIHR5cGU6IEludGVyYWN0aW9uVHlwZXNcbiAgLyoqIElEIG9mIHRoZSB1c2VyIHdobyB0cmlnZ2VyZWQgdGhlIGludGVyYWN0aW9uICovXG4gIHVzZXJJZDogYmlnaW50XG4gIC8qKiBJRHMgZm9yIGluc3RhbGxhdGlvbiBjb250ZXh0KHMpIHJlbGF0ZWQgdG8gYW4gaW50ZXJhY3Rpb24gKi9cbiAgYXV0aG9yaXppbmdJbnRlZ3JhdGlvbk93bmVyczogUGFydGlhbDxSZWNvcmQ8RGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlLCBiaWdpbnQ+PlxuICAvKiogSUQgb2YgdGhlIG9yaWdpbmFsIHJlc3BvbnNlIG1lc3NhZ2UsIHByZXNlbnQgb25seSBvbiBmb2xsb3ctdXAgbWVzc2FnZXMgKi9cbiAgb3JpZ2luYWxSZXNwb25zZU1lc3NhZ2VJZD86IGJpZ2ludFxuICAvKiogSUQgb2YgdGhlIG1lc3NhZ2UgdGhhdCBjb250YWluZWQgaW50ZXJhY3RpdmUgY29tcG9uZW50LCBwcmVzZW50IG9ubHkgb24gbWVzc2FnZXMgY3JlYXRlZCBmcm9tIGNvbXBvbmVudCBpbnRlcmFjdGlvbnMgKi9cbiAgaW50ZXJhY3RlZE1lc3NhZ2VJZD86IGJpZ2ludFxuICAvKiogTWV0YWRhdGEgZm9yIHRoZSBpbnRlcmFjdGlvbiB0aGF0IHdhcyB1c2VkIHRvIG9wZW4gdGhlIG1vZGFsLCBwcmVzZW50IG9ubHkgb24gbW9kYWwgc3VibWl0IGludGVyYWN0aW9ucyAqL1xuICB0cmlnZ2VyaW5nSW50ZXJhY3Rpb25NZXRhZGF0YT86IE1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVzc2FnZUNhbGwge1xuICAvKiogQXJyYXkgb2YgdXNlciBvYmplY3QgaWRzIHRoYXQgcGFydGljaXBhdGVkIGluIHRoZSBjYWxsICovXG4gIHBhcnRpY2lwYW50czogYmlnaW50W11cbiAgLyoqIFRpbWUgd2hlbiBjYWxsIGVuZGVkICovXG4gIGVuZGVkVGltZXN0YW1wOiBudW1iZXJcbn1cbiJdLCJuYW1lcyI6WyJ0cmFuc2Zvcm1NZXNzYWdlIiwidHJhbnNmb3JtTWVzc2FnZUNhbGwiLCJ0cmFuc2Zvcm1NZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YSIsImJhc2VNZXNzYWdlIiwiY3Jvc3Nwb3N0ZWQiLCJmbGFncyIsImNvbnRhaW5zIiwiTWVzc2FnZUZsYWdzIiwiQ3Jvc3Nwb3N0ZWQiLCJ2YWx1ZSIsImFkZCIsInJlbW92ZSIsImVwaGVtZXJhbCIsIkVwaGVtZXJhbCIsImZhaWxlZFRvTWVudGlvblNvbWVSb2xlc0luVGhyZWFkIiwiRmFpbGVkVG9NZW50aW9uU29tZVJvbGVzSW5UaHJlYWQiLCJoYXNUaHJlYWQiLCJIYXNUaHJlYWQiLCJpc0Nyb3NzcG9zdCIsIklzQ3Jvc3Nwb3N0IiwibG9hZGluZyIsIkxvYWRpbmciLCJtZW50aW9uZWRVc2VySWRzIiwibWVudGlvbnMiLCJtYXAiLCJ1c2VyIiwiaWQiLCJtZW50aW9uRXZlcnlvbmUiLCJiaXRmaWVsZCIsInBpbm5lZCIsInNvdXJjZU1lc3NhZ2VEZWxldGVkIiwiU291cmNlTWVzc2FnZURlbGV0ZWQiLCJzdXBwcmVzc0VtYmVkcyIsIlN1cHByZXNzRW1iZWRzIiwic3VwcHJlc3NOb3RpZmljYXRpb25zIiwiU3VwcHJlc3NOb3RpZmljYXRpb25zIiwidGltZXN0YW1wIiwic25vd2ZsYWtlVG9UaW1lc3RhbXAiLCJ0dHMiLCJ1cmdlbnQiLCJVcmdlbnQiLCJFTVBUWV9TVFJJTkciLCJib3QiLCJwYXlsb2FkIiwiZ3VpbGRJZCIsImd1aWxkX2lkIiwidHJhbnNmb3JtZXJzIiwic25vd2ZsYWtlIiwidW5kZWZpbmVkIiwidXNlcklkIiwiYXV0aG9yIiwibWVzc2FnZSIsIk9iamVjdCIsImNyZWF0ZSIsIlRvZ2dsZUJpdGZpZWxkIiwicHJvcHMiLCJkZXNpcmVkUHJvcGVydGllcyIsImFwcGxpY2F0aW9uSWQiLCJhcHBsaWNhdGlvbl9pZCIsImF0dGFjaG1lbnRzIiwibGVuZ3RoIiwiYXR0YWNobWVudCIsImNoYW5uZWxJZCIsImNoYW5uZWxfaWQiLCJjb21wb25lbnRzIiwiY29tcCIsImNvbXBvbmVudCIsImNvbnRlbnQiLCJlZGl0ZWRUaW1lc3RhbXAiLCJlZGl0ZWRfdGltZXN0YW1wIiwiRGF0ZSIsInBhcnNlIiwiZW1iZWRzIiwiZW1iZWQiLCJpbnRlcmFjdGlvbl9tZXRhZGF0YSIsImludGVyYWN0aW9uTWV0YWRhdGEiLCJpbnRlcmFjdGlvbiIsImVkaXRlZCIsIm1lbWJlciIsIm5hbWUiLCJ0eXBlIiwibWVudGlvbl9ldmVyeW9uZSIsIm1lbnRpb25lZENoYW5uZWxJZHMiLCJtZW50aW9uX2NoYW5uZWxzIiwibSIsIm1hdGNoIiwiQ0hBTk5FTF9NRU5USU9OX1JFR0VYIiwidGV4dCIsInN1YnN0cmluZyIsIm1lbnRpb25lZFJvbGVJZHMiLCJtZW50aW9uX3JvbGVzIiwibWVzc2FnZV9yZWZlcmVuY2UiLCJyZWZlcmVuY2UiLCJtZXNzYWdlUmVmZXJlbmNlIiwibWVzc2FnZUlkIiwibWVzc2FnZV9pZCIsIm5vbmNlIiwicmVhY3Rpb25zIiwicmVhY3Rpb24iLCJtZSIsIm1lQnVyc3QiLCJtZV9idXJzdCIsImNvdW50IiwiY291bnREZXRhaWxzIiwiYnVyc3QiLCJjb3VudF9kZXRhaWxzIiwibm9ybWFsIiwiZW1vamkiLCJidXJzdENvbG9ycyIsImJ1cnN0X2NvbG9ycyIsInN0aWNrZXJJdGVtcyIsInN0aWNrZXJfaXRlbXMiLCJpdGVtIiwiZm9ybWF0VHlwZSIsImZvcm1hdF90eXBlIiwidGhyZWFkIiwiY2hhbm5lbCIsIndlYmhvb2tJZCIsIndlYmhvb2tfaWQiLCJwb2xsIiwiY2FsbCIsIm1lc3NhZ2VDYWxsIiwiY3VzdG9taXplcnMiLCJtZXRhZGF0YSIsImF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnMiLCJhdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnMiLCJEaXNjb3JkQXBwbGljYXRpb25JbnRlZ3JhdGlvblR5cGUiLCJHdWlsZEluc3RhbGwiLCJVc2VySW5zdGFsbCIsImludGVyYWN0ZWRNZXNzYWdlSWQiLCJpbnRlcmFjdGVkX21lc3NhZ2VfaWQiLCJvcmlnaW5hbFJlc3BvbnNlTWVzc2FnZUlkIiwib3JpZ2luYWxfcmVzcG9uc2VfbWVzc2FnZV9pZCIsInRyaWdnZXJpbmdJbnRlcmFjdGlvbk1ldGFkYXRhIiwidHJpZ2dlcmluZ19pbnRlcmFjdGlvbl9tZXRhZGF0YSIsInVzZXJfaWQiLCJtZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YSIsInBhcnRpY2lwYW50cyIsIngiLCJlbmRlZFRpbWVzdGFtcCIsImVuZGVkX3RpbWVzdGFtcCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7SUF5UmdCQSxnQkFBZ0I7ZUFBaEJBOztJQStJQUMsb0JBQW9CO2VBQXBCQTs7SUE1QkFDLG1DQUFtQztlQUFuQ0E7Ozt1QkFuWVQ7MkJBQytCO3VCQUNvQjt5QkFDN0I7Z0NBT0U7QUFHL0IsTUFBTUMsY0FBOEM7SUFDbEQsSUFBSUMsZUFBYztRQUNoQixPQUFPLElBQUksQ0FBQ0MsS0FBSyxFQUFFQyxTQUFTQyxxQkFBWSxDQUFDQyxXQUFXLEtBQUs7SUFDM0Q7SUFDQSxJQUFJSixhQUFZSyxNQUFnQjtRQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDSixLQUFLLEVBQUU7UUFDakIsSUFBSUksT0FBTyxJQUFJLENBQUNKLEtBQUssQ0FBQ0ssR0FBRyxDQUFDSCxxQkFBWSxDQUFDQyxXQUFXO2FBQzdDLElBQUksQ0FBQ0gsS0FBSyxDQUFDTSxNQUFNLENBQUNKLHFCQUFZLENBQUNDLFdBQVc7SUFDakQ7SUFDQSxJQUFJSSxhQUFZO1FB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