studiokit-scaffolding-js 7.3.0-next.2.2 → 7.3.0-next.2.3

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.
@@ -79,7 +79,7 @@ class ExternalGroupsAttach extends _react.Component {
79
79
  isShowingErrorAlert: true,
80
80
  isUniTimeScheduleLoadingDone: true
81
81
  });
82
- } else {
82
+ } else if (!(0, _fetch.isFetchCancelledData)(data)) {
83
83
  this.setUserUniTimeGroups(userId, data.externalGroups);
84
84
  }
85
85
  });
@@ -217,4 +217,4 @@ class ExternalGroupsAttach extends _react.Component {
217
217
  }
218
218
  }
219
219
  exports.ExternalGroupsAttach = ExternalGroupsAttach;
220
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwicmVxdWlyZSIsIl9yZWFjdCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX3JlYWN0Qm9vdHN0cmFwIiwiX3V1aWQiLCJfY29uc3RhbnRzIiwiX2FjdGlvbkNyZWF0b3IiLCJfbm9TdG9yZVNhZ2EiLCJfZmV0Y2giLCJfbW9kZWwiLCJfc2hhcmQiLCJfdXNlciIsIl9BbGVydFdpdGhJY29uIiwiX0xvYWRpbmciLCJfanN4UnVudGltZSIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsImRlZmF1bHQiLCJoYXMiLCJnZXQiLCJzZXQiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIkV4dGVybmFsR3JvdXBzQXR0YWNoIiwiQ29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJwcm9wcyIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJncm91cFVzZXJSb2xlcyIsImV4dGVybmFsVGVybUlkIiwic2VsZWN0ZWRFeHRlcm5hbEdyb3VwcyIsImNhbkNvbm5lY3RBbnlFeHRlcm5hbEdyb3VwcyIsImNhbkNvbm5lY3RPd25FeHRlcm5hbEdyb3VwcyIsInVzZXJJbmZvIiwib3duZXJzIiwiZmlsdGVyIiwiZ3JvdXBVc2VyUm9sZSIsInJvbGUiLCJCQVNFX1JPTEUiLCJHUk9VUF9PV05FUiIsIm93bmVyc0luaXRpYWxTY2hlZHVsZURhdGEiLCJmb3JFYWNoIiwib3duZXIiLCJvd25lckRhdGEiLCJob29rSWQiLCJ1dWlkdjQiLCJzdGF0dXMiLCJpZCIsIk1PREVMX1NUQVRVUyIsIlVOSU5JVElBTElaRUQiLCJSRUFEWSIsImV4dGVybmFsR3JvdXBzIiwic2VnIiwidXNlcklkIiwidW5kZWZpbmVkIiwic2V0U3RhdGUiLCJvd25lclNjaGVkdWxlcyIsImlzVW5pVGltZVNjaGVkdWxlTG9hZGluZ0RvbmUiLCJvd25lclNjaGVkdWxlIiwiZ2V0T3duZXJVbmlUaW1lR3JvdXBzIiwiZXZlbnQiLCJleHRlcm5hbElkIiwidGFyZ2V0IiwidmFsdWUiLCJjaGVja2VkIiwib3JpZ2luYWxDb25uZWN0ZWRFeHRlcm5hbEdyb3VwcyIsImFsbE93bmVyRXh0ZXJuYWxHcm91cHMiLCJtYXAiLCJzdGF0ZSIsIm9zIiwicmVkdWNlIiwiYSIsImIiLCJjb25jYXQiLCJzZWxlY3RlZEV4dGVybmFsR3JvdXBzQ29weSIsInNsaWNlIiwib3JpZ2luYWxDb25uZWN0ZWRFeHRlcm5hbEdyb3VwIiwiZmluZCIsIm9lZyIsInNlbGVjdGVkRXh0ZXJuYWxHcm91cCIsImFvIiwicHVzaCIsInJlbW92ZSIsImhhbmRsZVNlbGVjdGVkRXh0ZXJuYWxHcm91cHMiLCJpc1B1cmR1ZVNoYXJkIiwicmVnaXN0ZXJOb1N0b3JlQWN0aW9uSG9vayIsImRhdGEiLCJ1bnJlZ2lzdGVyTm9TdG9yZUFjdGlvbkhvb2siLCJpc0ZldGNoRXJyb3JEYXRhIiwiaXNTaG93aW5nRXJyb3JBbGVydCIsInNldFVzZXJVbmlUaW1lR3JvdXBzIiwiZGlzcGF0Y2hNb2RlbEZldGNoUmVxdWVzdCIsIm1vZGVsTmFtZSIsInF1ZXJ5UGFyYW1zIiwibm9TdG9yZSIsImd1aWQiLCJldmVyeSIsImxlbmd0aCIsImpzeHMiLCJjaGlsZHJlbiIsImpzeCIsImRpc3BsYXlOYW1lIiwiZGlzcGxheVVuaVRpbWVHcm91cHMiLCJkaXNhYmxlZCIsIm9yZGVyQnkiLCJlZyIsImluZGV4IiwiaXNDb25uZWN0ZWQiLCJzb21lIiwiZXh0ZXJuYWxQcm92aWRlcklkIiwiRm9ybUNoZWNrIiwidHlwZSIsIm9uQ2hhbmdlIiwiaGFuZGxlU2VsZWN0RXh0ZXJuYWxHcm91cHMiLCJsYWJlbCIsIm5hbWUiLCJkZXNjcmlwdGlvbiIsImNvbXBvbmVudERpZE1vdW50Iiwic2V0T3duZXJTY2hlZHVsZXMiLCJnZXRNb2RlbEFycmF5IiwiY29tcG9uZW50V2lsbFVubW91bnQiLCJjb21wb25lbnREaWRVcGRhdGUiLCJwcmV2UHJvcHMiLCJwcmV2RXh0ZXJuYWxUZXJtSWQiLCJwcmV2R3JvdXBVc2VyUm9sZXMiLCJrZXlzIiwicmVuZGVyIiwiZGlzYWJsZWRJbmZvTWVzc2FnZSIsImhhc0FueUV4dGVybmFsR3JvdXBzIiwiTG9hZGluZyIsIkFsZXJ0V2l0aEljb24iLCJ2YXJpYW50Iiwib25DbG9zZSIsImNsYXNzTmFtZSIsIkZvcm1Hcm91cCIsImRpc3BsYXlPd25lclNjaGVkdWxlcyIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9Hcm91cHMvRXh0ZXJuYWxHcm91cHMvQXR0YWNoLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaWN0aW9uYXJ5LCBldmVyeSwgZm9yRWFjaCwgbWFwLCBvcmRlckJ5LCByZW1vdmUsIHNldCwgc29tZSB9IGZyb20gJ2xvZGFzaCdcbmltcG9ydCBSZWFjdCwgeyBDaGFuZ2VFdmVudCwgQ29tcG9uZW50IH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBGb3JtQ2hlY2ssIEZvcm1Hcm91cCB9IGZyb20gJ3JlYWN0LWJvb3RzdHJhcCdcbmltcG9ydCB7IHY0IGFzIHV1aWR2NCB9IGZyb20gJ3V1aWQnXG5pbXBvcnQgeyBCQVNFX1JPTEUsIE1PREVMX1NUQVRVUyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cydcbmltcG9ydCB7IGRpc3BhdGNoTW9kZWxGZXRjaFJlcXVlc3QgfSBmcm9tICcuLi8uLi8uLi9yZWR1eC9hY3Rpb25DcmVhdG9yJ1xuaW1wb3J0IHsgcmVnaXN0ZXJOb1N0b3JlQWN0aW9uSG9vaywgdW5yZWdpc3Rlck5vU3RvcmVBY3Rpb25Ib29rIH0gZnJvbSAnLi4vLi4vLi4vcmVkdXgvc2FnYXMvbm9TdG9yZVNhZ2EnXG5pbXBvcnQge1xuXHRFeHRlcm5hbEdyb3VwLFxuXHRGZXRjaEVycm9yRGF0YSxcblx0R3JvdXBVc2VyUm9sZSxcblx0SW5zdHJ1Y3RvclNjaGVkdWxlLFxuXHRMdGlMYXVuY2gsXG5cdE1vZGVsQ29sbGVjdGlvbixcblx0T3duZXJTY2hlZHVsZSxcblx0VW5pVGltZUdyb3VwLFxuXHRVc2VySW5mb1xufSBmcm9tICcuLi8uLi8uLi90eXBlcydcbmltcG9ydCB7IGlzRmV0Y2hFcnJvckRhdGEgfSBmcm9tICcuLi8uLi8uLi91dGlscy9mZXRjaCdcbmltcG9ydCB7IGdldE1vZGVsQXJyYXkgfSBmcm9tICcuLi8uLi8uLi91dGlscy9tb2RlbCdcbmltcG9ydCB7IGlzUHVyZHVlU2hhcmQgfSBmcm9tICcuLi8uLi8uLi91dGlscy9zaGFyZCdcbmltcG9ydCB7IGRpc3BsYXlOYW1lIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvdXNlcidcbmltcG9ydCB7IEFsZXJ0V2l0aEljb24gfSBmcm9tICcuLi8uLi9BbGVydFdpdGhJY29uJ1xuaW1wb3J0IHsgTG9hZGluZyB9IGZyb20gJy4uLy4uL0xvYWRpbmcnXG5cbmV4cG9ydCBpbnRlcmZhY2UgRXh0ZXJuYWxHcm91cHNBdHRhY2hQcm9wcyB7XG5cdHVzZXJJbmZvOiBVc2VySW5mb1xuXHRjYW5SZWFkRXh0ZXJuYWxHcm91cHM6IGJvb2xlYW5cblx0Y2FuQ29ubmVjdEFueUV4dGVybmFsR3JvdXBzOiBib29sZWFuXG5cdGNhbkNvbm5lY3RPd25FeHRlcm5hbEdyb3VwczogYm9vbGVhblxuXHRvcmlnaW5hbENvbm5lY3RlZEV4dGVybmFsR3JvdXBzOiBBcnJheTxFeHRlcm5hbEdyb3VwIHwgTHRpTGF1bmNoPlxuXHRzZWxlY3RlZEV4dGVybmFsR3JvdXBzOiBBcnJheTxFeHRlcm5hbEdyb3VwIHwgTHRpTGF1bmNoIHwgVW5pVGltZUdyb3VwPlxuXHRleHRlcm5hbFRlcm1JZDogbnVtYmVyXG5cdGhhbmRsZVNlbGVjdGVkRXh0ZXJuYWxHcm91cHM6IChleHRlcm5hbEdyb3VwczogQXJyYXk8RXh0ZXJuYWxHcm91cCB8IEx0aUxhdW5jaCB8IFVuaVRpbWVHcm91cD4pID0+IHZvaWRcblx0Z3JvdXBVc2VyUm9sZXM6IE1vZGVsQ29sbGVjdGlvbjxHcm91cFVzZXJSb2xlPlxuXHRkaXNhYmxlZD86IGJvb2xlYW5cblx0ZGlzYWJsZWRJbmZvTWVzc2FnZT86IHN0cmluZyB8IFJlYWN0LkpTWC5FbGVtZW50XG59XG5cbmludGVyZmFjZSBFeHRlcm5hbEdyb3Vwc0F0dGFjaFN0YXRlIHtcblx0b3duZXJTY2hlZHVsZXM/OiBEaWN0aW9uYXJ5PE93bmVyU2NoZWR1bGU+XG5cdGlzVW5pVGltZVNjaGVkdWxlTG9hZGluZ0RvbmU6IGJvb2xlYW5cblx0aXNTaG93aW5nRXJyb3JBbGVydDogYm9vbGVhblxufVxuXG5leHBvcnQgY2xhc3MgRXh0ZXJuYWxHcm91cHNBdHRhY2ggZXh0ZW5kcyBDb21wb25lbnQ8RXh0ZXJuYWxHcm91cHNBdHRhY2hQcm9wcywgRXh0ZXJuYWxHcm91cHNBdHRhY2hTdGF0ZT4ge1xuXHRjb25zdHJ1Y3Rvcihwcm9wczogRXh0ZXJuYWxHcm91cHNBdHRhY2hQcm9wcykge1xuXHRcdHN1cGVyKHByb3BzKVxuXHRcdHRoaXMuc3RhdGUgPSB7XG5cdFx0XHRvd25lclNjaGVkdWxlczogdW5kZWZpbmVkLFxuXHRcdFx0aXNVbmlUaW1lU2NoZWR1bGVMb2FkaW5nRG9uZTogZmFsc2UsXG5cdFx0XHRpc1Nob3dpbmdFcnJvckFsZXJ0OiBmYWxzZVxuXHRcdH1cblx0fVxuXG5cdGNvbXBvbmVudERpZE1vdW50KCkge1xuXHRcdGNvbnN0IHsgZ3JvdXBVc2VyUm9sZXMsIGV4dGVybmFsVGVybUlkLCBzZWxlY3RlZEV4dGVybmFsR3JvdXBzIH0gPSB0aGlzLnByb3BzXG5cdFx0dGhpcy5zZXRPd25lclNjaGVkdWxlcyhnZXRNb2RlbEFycmF5KGdyb3VwVXNlclJvbGVzKSwgZXh0ZXJuYWxUZXJtSWQsIHNlbGVjdGVkRXh0ZXJuYWxHcm91cHMpXG5cdH1cblxuXHRjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcblx0XHRjb25zdCB7IG93bmVyU2NoZWR1bGVzIH0gPSB0aGlzLnN0YXRlXG5cdFx0Zm9yRWFjaChvd25lclNjaGVkdWxlcywgb3MgPT4gdW5yZWdpc3Rlck5vU3RvcmVBY3Rpb25Ib29rKG9zLmhvb2tJZCkpXG5cdH1cblxuXHRjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzOiBSZWFkb25seTxFeHRlcm5hbEdyb3Vwc0F0dGFjaFByb3BzPikge1xuXHRcdGNvbnN0IHsgZXh0ZXJuYWxUZXJtSWQ6IHByZXZFeHRlcm5hbFRlcm1JZCwgZ3JvdXBVc2VyUm9sZXM6IHByZXZHcm91cFVzZXJSb2xlcyB9ID0gcHJldlByb3BzXG5cdFx0Y29uc3QgeyBleHRlcm5hbFRlcm1JZCwgZ3JvdXBVc2VyUm9sZXMsIHNlbGVjdGVkRXh0ZXJuYWxHcm91cHMgfSA9IHRoaXMucHJvcHNcblx0XHQvLyBBc3N1bWVzIGdyb3VwIHVzZXIgcm9sZXMgYXJlIGNoYW5naW5nIG9uZSBhdCBhIHRpbWUuIENhbiBiZSBtYWRlIGZhbmNpZXIgaWYgdGhlIG5lZWQgYXJpc2VzXG5cdFx0aWYgKFxuXHRcdFx0cHJldkV4dGVybmFsVGVybUlkICE9PSBleHRlcm5hbFRlcm1JZCB8fFxuXHRcdFx0T2JqZWN0LmtleXMocHJldkdyb3VwVXNlclJvbGVzKS5sZW5ndGggIT09IE9iamVjdC5rZXlzKGdyb3VwVXNlclJvbGVzKS5sZW5ndGhcblx0XHQpIHtcblx0XHRcdHRoaXMuc2V0T3duZXJTY2hlZHVsZXMoZ2V0TW9kZWxBcnJheShncm91cFVzZXJSb2xlcyksIGV4dGVybmFsVGVybUlkLCBzZWxlY3RlZEV4dGVybmFsR3JvdXBzKVxuXHRcdH1cblx0fVxuXG5cdHNldE93bmVyU2NoZWR1bGVzID0gKFxuXHRcdGdyb3VwVXNlclJvbGVzOiBHcm91cFVzZXJSb2xlW10sXG5cdFx0ZXh0ZXJuYWxUZXJtSWQ6IG51bWJlcixcblx0XHRzZWxlY3RlZEV4dGVybmFsR3JvdXBzOiBBcnJheTxFeHRlcm5hbEdyb3VwIHwgTHRpTGF1bmNoIHwgVW5pVGltZUdyb3VwPlxuXHQpID0+IHtcblx0XHRjb25zdCB7IGNhbkNvbm5lY3RBbnlFeHRlcm5hbEdyb3VwcywgY2FuQ29ubmVjdE93bkV4dGVybmFsR3JvdXBzLCB1c2VySW5mbyB9ID0gdGhpcy5wcm9wc1xuXHRcdGNvbnN0IG93bmVycyA9IGdyb3VwVXNlclJvbGVzLmZpbHRlcihncm91cFVzZXJSb2xlID0+IHtcblx0XHRcdHJldHVybiBncm91cFVzZXJSb2xlLnJvbGUgPT09IEJBU0VfUk9MRS5HUk9VUF9PV05FUlxuXHRcdH0pXG5cblx0XHRjb25zdCBvd25lcnNJbml0aWFsU2NoZWR1bGVEYXRhOiBEaWN0aW9uYXJ5PE93bmVyU2NoZWR1bGU+ID0ge31cblx0XHRvd25lcnMuZm9yRWFjaChvd25lciA9PiB7XG5cdFx0XHRjb25zdCBvd25lckRhdGE6IE93bmVyU2NoZWR1bGUgPSB7XG5cdFx0XHRcdGhvb2tJZDogdXVpZHY0KCksXG5cdFx0XHRcdHN0YXR1czpcblx0XHRcdFx0XHRjYW5Db25uZWN0QW55RXh0ZXJuYWxHcm91cHMgfHwgKHVzZXJJbmZvLmlkID09PSBvd25lci5pZCAmJiBjYW5Db25uZWN0T3duRXh0ZXJuYWxHcm91cHMpXG5cdFx0XHRcdFx0XHQ/IE1PREVMX1NUQVRVUy5VTklOSVRJQUxJWkVEXG5cdFx0XHRcdFx0XHQ6IE1PREVMX1NUQVRVUy5SRUFEWSxcblx0XHRcdFx0b3duZXIsXG5cdFx0XHRcdGV4dGVybmFsR3JvdXBzOiAhKFxuXHRcdFx0XHRcdGNhbkNvbm5lY3RBbnlFeHRlcm5hbEdyb3VwcyB8fFxuXHRcdFx0XHRcdCh1c2VySW5mby5pZCA9PT0gb3duZXIuaWQgJiYgY2FuQ29ubmVjdE93bkV4dGVybmFsR3JvdXBzKVxuXHRcdFx0XHQpXG5cdFx0XHRcdFx0PyBzZWxlY3RlZEV4dGVybmFsR3JvdXBzLmZpbHRlcihzZWcgPT4gc2VnLnVzZXJJZCA9PT0gb3duZXIuaWQpXG5cdFx0XHRcdFx0OiB1bmRlZmluZWRcblx0XHRcdH1cblx0XHRcdHNldChvd25lcnNJbml0aWFsU2NoZWR1bGVEYXRhLCBbb3duZXIudXNlcklkXSwgb3duZXJEYXRhKVxuXHRcdH0pXG5cdFx0dGhpcy5zZXRTdGF0ZShcblx0XHRcdHtcblx0XHRcdFx0b3duZXJTY2hlZHVsZXM6IG93bmVyc0luaXRpYWxTY2hlZHVsZURhdGEsXG5cdFx0XHRcdGlzVW5pVGltZVNjaGVkdWxlTG9hZGluZ0RvbmU6IGZhbHNlXG5cdFx0XHR9LFxuXHRcdFx0KCkgPT5cblx0XHRcdFx0Zm9yRWFjaChvd25lcnNJbml0aWFsU2NoZWR1bGVEYXRhLCAob3duZXJTY2hlZHVsZSwgdXNlcklkKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5nZXRPd25lclVuaVRpbWVHcm91cHMob3duZXJTY2hlZHVsZSwgdXNlcklkLCBleHRlcm5hbFRlcm1JZClcblx0XHRcdFx0fSlcblx0XHQpXG5cdH1cblxuXHRoYW5kbGVTZWxlY3RFeHRlcm5hbEdyb3VwcyA9IChldmVudDogQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHtcblx0XHRjb25zdCBleHRlcm5hbElkID0gZXZlbnQudGFyZ2V0LnZhbHVlXG5cdFx0Y29uc3QgY2hlY2tlZCA9IGV2ZW50LnRhcmdldC5jaGVja2VkXG5cdFx0Y29uc3QgeyBvcmlnaW5hbENvbm5lY3RlZEV4dGVybmFsR3JvdXBzLCBzZWxlY3RlZEV4dGVybmFsR3JvdXBzIH0gPSB0aGlzLnByb3BzXG5cblx0XHRjb25zdCBhbGxPd25lckV4dGVybmFsR3JvdXBzID0gbWFwKHRoaXMuc3RhdGUub3duZXJTY2hlZHVsZXMsIG9zID0+IG9zLmV4dGVybmFsR3JvdXBzKS5yZWR1Y2UoKGEsIGIpID0+XG5cdFx0XHQoYSB8fCBbXSkuY29uY2F0KGIgfHwgW10pXG5cdFx0KVxuXHRcdGNvbnN0IHNlbGVjdGVkRXh0ZXJuYWxHcm91cHNDb3B5ID0gc2VsZWN0ZWRFeHRlcm5hbEdyb3Vwcy5zbGljZSgpXG5cblx0XHRpZiAoY2hlY2tlZCkge1xuXHRcdFx0Y29uc3Qgb3JpZ2luYWxDb25uZWN0ZWRFeHRlcm5hbEdyb3VwID0gb3JpZ2luYWxDb25uZWN0ZWRFeHRlcm5hbEdyb3Vwcy5maW5kKFxuXHRcdFx0XHRvZWcgPT4gb2VnLmV4dGVybmFsSWQgPT09IGV4dGVybmFsSWRcblx0XHRcdClcblx0XHRcdGNvbnN0IHNlbGVjdGVkRXh0ZXJuYWxHcm91cCA9IG9yaWdpbmFsQ29ubmVjdGVkRXh0ZXJuYWxHcm91cFxuXHRcdFx0XHQ/IG9yaWdpbmFsQ29ubmVjdGVkRXh0ZXJuYWxHcm91cFxuXHRcdFx0XHQ6IGFsbE93bmVyRXh0ZXJuYWxHcm91cHM/LmZpbmQoYW8gPT4gYW8uZXh0ZXJuYWxJZCA9PT0gZXh0ZXJuYWxJZClcblxuXHRcdFx0aWYgKHNlbGVjdGVkRXh0ZXJuYWxHcm91cCkge1xuXHRcdFx0XHRzZWxlY3RlZEV4dGVybmFsR3JvdXBzQ29weS5wdXNoKHNlbGVjdGVkRXh0ZXJuYWxHcm91cClcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0cmVtb3ZlKHNlbGVjdGVkRXh0ZXJuYWxHcm91cHNDb3B5LCBzZWcgPT4gc2VnLmV4dGVybmFsSWQgPT09IGV4dGVybmFsSWQpXG5cdFx0fVxuXG5cdFx0dGhpcy5wcm9wcy5oYW5kbGVTZWxlY3RlZEV4dGVybmFsR3JvdXBzKHNlbGVjdGVkRXh0ZXJuYWxHcm91cHNDb3B5KVxuXHR9XG5cblx0Z2V0T3duZXJVbmlUaW1lR3JvdXBzID0gKG93bmVyU2NoZWR1bGU6IE93bmVyU2NoZWR1bGUsIHVzZXJJZDogc3RyaW5nLCBleHRlcm5hbFRlcm1JZDogbnVtYmVyKSA9PiB7XG5cdFx0aWYgKGlzUHVyZHVlU2hhcmQoKSAmJiBvd25lclNjaGVkdWxlLnN0YXR1cyA9PT0gTU9ERUxfU1RBVFVTLlVOSU5JVElBTElaRUQgJiYgIW93bmVyU2NoZWR1bGUuZXh0ZXJuYWxHcm91cHMpIHtcblx0XHRcdHJlZ2lzdGVyTm9TdG9yZUFjdGlvbkhvb2sob3duZXJTY2hlZHVsZS5ob29rSWQsIChkYXRhOiBJbnN0cnVjdG9yU2NoZWR1bGUgfCBGZXRjaEVycm9yRGF0YSB8IG51bGwpID0+IHtcblx0XHRcdFx0dW5yZWdpc3Rlck5vU3RvcmVBY3Rpb25Ib29rKG93bmVyU2NoZWR1bGUuaG9va0lkKVxuXHRcdFx0XHRpZiAoIWRhdGEgfHwgaXNGZXRjaEVycm9yRGF0YShkYXRhKSkge1xuXHRcdFx0XHRcdHRoaXMuc2V0U3RhdGUoeyBpc1Nob3dpbmdFcnJvckFsZXJ0OiB0cnVlLCBpc1VuaVRpbWVTY2hlZHVsZUxvYWRpbmdEb25lOiB0cnVlIH0pXG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0dGhpcy5zZXRVc2VyVW5pVGltZUdyb3Vwcyh1c2VySWQsIGRhdGEuZXh0ZXJuYWxHcm91cHMpXG5cdFx0XHRcdH1cblx0XHRcdH0pXG5cdFx0XHRkaXNwYXRjaE1vZGVsRmV0Y2hSZXF1ZXN0KHtcblx0XHRcdFx0bW9kZWxOYW1lOiAndW5pVGltZUluc3RydWN0b3JTY2hlZHVsZScsXG5cdFx0XHRcdHF1ZXJ5UGFyYW1zOiB7XG5cdFx0XHRcdFx0ZXh0ZXJuYWxUZXJtSWQsXG5cdFx0XHRcdFx0dXNlcklkXG5cdFx0XHRcdH0sXG5cdFx0XHRcdG5vU3RvcmU6IHRydWUsXG5cdFx0XHRcdGd1aWQ6IG93bmVyU2NoZWR1bGUuaG9va0lkXG5cdFx0XHR9KVxuXHRcdH1cblx0fVxuXG5cdHNldFVzZXJVbmlUaW1lR3JvdXBzID0gKHVzZXJJZDogc3RyaW5nLCBleHRlcm5hbEdyb3VwczogVW5pVGltZUdyb3VwW10pID0+IHtcblx0XHQvLyBTZXR0aW5nIHRoZSB1c2VyJ3MgY291cnNlIHNlY3Rpb25zIGxvYWQgc3RhdHVzIHRvIGJlIHJlYWR5XG5cdFx0Y29uc3Qgb3duZXJTY2hlZHVsZXMgPSB0aGlzLnN0YXRlLm93bmVyU2NoZWR1bGVzIHx8IHt9XG5cdFx0b3duZXJTY2hlZHVsZXNbdXNlcklkXS5zdGF0dXMgPSBNT0RFTF9TVEFUVVMuUkVBRFlcblx0XHRvd25lclNjaGVkdWxlc1t1c2VySWRdLmV4dGVybmFsR3JvdXBzID0gZXh0ZXJuYWxHcm91cHNcblxuXHRcdGNvbnN0IGlzVW5pVGltZVNjaGVkdWxlTG9hZGluZ0RvbmUgPSBldmVyeShvd25lclNjaGVkdWxlcywgb3MgPT4gb3Muc3RhdHVzID09PSBNT0RFTF9TVEFUVVMuUkVBRFkpXG5cblx0XHR0aGlzLnNldFN0YXRlKHtcblx0XHRcdG93bmVyU2NoZWR1bGVzLFxuXHRcdFx0aXNVbmlUaW1lU2NoZWR1bGVMb2FkaW5nRG9uZVxuXHRcdH0pXG5cdH1cblxuXHRkaXNwbGF5T3duZXJTY2hlZHVsZXMgPSAob3duZXJTY2hlZHVsZXM6IERpY3Rpb25hcnk8T3duZXJTY2hlZHVsZT4pID0+IHtcblx0XHRyZXR1cm4gbWFwKG93bmVyU2NoZWR1bGVzLCBvcyA9PiB7XG5cdFx0XHRpZiAoISFvcy5leHRlcm5hbEdyb3VwcyAmJiBvcy5leHRlcm5hbEdyb3Vwcy5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdHJldHVybiAoXG5cdFx0XHRcdFx0PGRpdiBrZXk9e29zLmhvb2tJZH0+XG5cdFx0XHRcdFx0XHQ8aDQ+e2Rpc3BsYXlOYW1lKG9zLm93bmVyKX08L2g0PlxuXHRcdFx0XHRcdFx0e3RoaXMuZGlzcGxheVVuaVRpbWVHcm91cHMob3MuZXh0ZXJuYWxHcm91cHMpfVxuXHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHQpXG5cdFx0XHR9XG5cdFx0fSlcblx0fVxuXG5cdGRpc3BsYXlVbmlUaW1lR3JvdXBzID0gKGV4dGVybmFsR3JvdXBzOiBBcnJheTxFeHRlcm5hbEdyb3VwIHwgTHRpTGF1bmNoIHwgVW5pVGltZUdyb3VwPikgPT4ge1xuXHRcdGNvbnN0IHsgc2VsZWN0ZWRFeHRlcm5hbEdyb3VwcywgY2FuQ29ubmVjdEFueUV4dGVybmFsR3JvdXBzLCBjYW5Db25uZWN0T3duRXh0ZXJuYWxHcm91cHMsIHVzZXJJbmZvLCBkaXNhYmxlZCB9ID1cblx0XHRcdHRoaXMucHJvcHNcblxuXHRcdHJldHVybiBvcmRlckJ5KGV4dGVybmFsR3JvdXBzLCBbJ2Rlc2NyaXB0aW9uJ10pLm1hcCgoZWcsIGluZGV4KSA9PiB7XG5cdFx0XHRjb25zdCBpc0Nvbm5lY3RlZCA9IHNlbGVjdGVkRXh0ZXJuYWxHcm91cHMuc29tZShcblx0XHRcdFx0c2VnID0+XG5cdFx0XHRcdFx0c2VnLmV4dGVybmFsSWQgPT09IGVnLmV4dGVybmFsSWQgJiZcblx0XHRcdFx0XHRzZWcuZXh0ZXJuYWxQcm92aWRlcklkID09PSBlZy5leHRlcm5hbFByb3ZpZGVySWQgJiZcblx0XHRcdFx0XHRzZWcudXNlcklkID09PSBlZy51c2VySWRcblx0XHRcdClcblxuXHRcdFx0aWYgKFxuXHRcdFx0XHRjYW5Db25uZWN0QW55RXh0ZXJuYWxHcm91cHMgfHxcblx0XHRcdFx0KHVzZXJJbmZvLmlkID09PSBlZy51c2VySWQgJiYgY2FuQ29ubmVjdE93bkV4dGVybmFsR3JvdXBzKSB8fFxuXHRcdFx0XHRpc0Nvbm5lY3RlZFxuXHRcdFx0KSB7XG5cdFx0XHRcdHJldHVybiAoXG5cdFx0XHRcdFx0PEZvcm1DaGVja1xuXHRcdFx0XHRcdFx0aWQ9e2BleHRlcm5hbC1ncm91cC0ke2VnLmlkfWB9XG5cdFx0XHRcdFx0XHR0eXBlPVwiY2hlY2tib3hcIlxuXHRcdFx0XHRcdFx0a2V5PXtpbmRleH1cblx0XHRcdFx0XHRcdG9uQ2hhbmdlPXt0aGlzLmhhbmRsZVNlbGVjdEV4dGVybmFsR3JvdXBzfVxuXHRcdFx0XHRcdFx0dmFsdWU9e2VnLmV4dGVybmFsSWR9XG5cdFx0XHRcdFx0XHRjaGVja2VkPXtpc0Nvbm5lY3RlZH1cblx0XHRcdFx0XHRcdGRpc2FibGVkPXsodXNlckluZm8uaWQgIT09IGVnLnVzZXJJZCAmJiAhY2FuQ29ubmVjdEFueUV4dGVybmFsR3JvdXBzKSB8fCBkaXNhYmxlZH1cblx0XHRcdFx0XHRcdGxhYmVsPXtgJHtlZy5uYW1lfSAke2VnLmRlc2NyaXB0aW9uID8gYCgke2VnLmRlc2NyaXB0aW9ufSlgIDogJyd9YH1cblx0XHRcdFx0XHQvPlxuXHRcdFx0XHQpXG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gbnVsbFxuXHRcdH0pXG5cdH1cblxuXHRyZW5kZXIoKSB7XG5cdFx0Y29uc3QgeyBkaXNhYmxlZEluZm9NZXNzYWdlIH0gPSB0aGlzLnByb3BzXG5cdFx0Y29uc3QgeyBvd25lclNjaGVkdWxlcywgaXNVbmlUaW1lU2NoZWR1bGVMb2FkaW5nRG9uZSwgaXNTaG93aW5nRXJyb3JBbGVydCB9ID0gdGhpcy5zdGF0ZVxuXHRcdGNvbnN0IGhhc0FueUV4dGVybmFsR3JvdXBzID0gc29tZShvd25lclNjaGVkdWxlcywgb3MgPT4gISFvcy5leHRlcm5hbEdyb3VwcyAmJiBvcy5leHRlcm5hbEdyb3Vwcy5sZW5ndGggPiAwKVxuXG5cdFx0cmV0dXJuIChcblx0XHRcdDxkaXY+XG5cdFx0XHRcdHshaXNVbmlUaW1lU2NoZWR1bGVMb2FkaW5nRG9uZSAmJiA8TG9hZGluZyAvPn1cblx0XHRcdFx0e2lzVW5pVGltZVNjaGVkdWxlTG9hZGluZ0RvbmUgJiYgKFxuXHRcdFx0XHRcdDxkaXY+XG5cdFx0XHRcdFx0XHR7IWhhc0FueUV4dGVybmFsR3JvdXBzICYmIChcblx0XHRcdFx0XHRcdFx0PEFsZXJ0V2l0aEljb24gdmFyaWFudD1cImluZm9cIj5cblx0XHRcdFx0XHRcdFx0XHQ8cD5ObyBjb3Vyc2Ugc2VjdGlvbnMgZWxpZ2libGUgZm9yIHJvc3RlciBzeW5jLjwvcD5cblx0XHRcdFx0XHRcdFx0PC9BbGVydFdpdGhJY29uPlxuXHRcdFx0XHRcdFx0KX1cblx0XHRcdFx0XHRcdHshIWRpc2FibGVkSW5mb01lc3NhZ2UgJiYgaGFzQW55RXh0ZXJuYWxHcm91cHMgJiYgKFxuXHRcdFx0XHRcdFx0XHQ8QWxlcnRXaXRoSWNvbiB2YXJpYW50PVwiaW5mb1wiPlxuXHRcdFx0XHRcdFx0XHRcdDxwPntkaXNhYmxlZEluZm9NZXNzYWdlfTwvcD5cblx0XHRcdFx0XHRcdFx0PC9BbGVydFdpdGhJY29uPlxuXHRcdFx0XHRcdFx0KX1cblx0XHRcdFx0XHRcdHtpc1Nob3dpbmdFcnJvckFsZXJ0ICYmIChcblx0XHRcdFx0XHRcdFx0PEFsZXJ0V2l0aEljb25cblx0XHRcdFx0XHRcdFx0XHR2YXJpYW50PVwid2FybmluZ1wiXG5cdFx0XHRcdFx0XHRcdFx0b25DbG9zZT17KCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5zZXRTdGF0ZSh7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGlzU2hvd2luZ0Vycm9yQWxlcnQ6IGZhbHNlXG5cdFx0XHRcdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0XHRcdH19PlxuXHRcdFx0XHRcdFx0XHRcdDxwIGNsYXNzTmFtZT1cIm1hMFwiPk9vcHMhIFNvbWV0aGluZyB3ZW50IHdyb25nIHdoaWxlIGxvYWRpbmcuIFBsZWFzZSB0cnkgYWdhaW4uPC9wPlxuXHRcdFx0XHRcdFx0XHQ8L0FsZXJ0V2l0aEljb24+XG5cdFx0XHRcdFx0XHQpfXsnICd9XG5cdFx0XHRcdFx0XHR7aGFzQW55RXh0ZXJuYWxHcm91cHMgJiYgISFvd25lclNjaGVkdWxlcyAmJiAoXG5cdFx0XHRcdFx0XHRcdDxGb3JtR3JvdXAgY2xhc3NOYW1lPVwibWw0IGY2XCI+e3RoaXMuZGlzcGxheU93bmVyU2NoZWR1bGVzKG93bmVyU2NoZWR1bGVzKX08L0Zvcm1Hcm91cD5cblx0XHRcdFx0XHRcdCl9XG5cdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdCl9XG5cdFx0XHQ8L2Rpdj5cblx0XHQpXG5cdH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxJQUFBQSxPQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxNQUFBLEdBQUFDLHVCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxlQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxLQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxVQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxjQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxZQUFBLEdBQUFQLE9BQUE7QUFZQSxJQUFBUSxNQUFBLEdBQUFSLE9BQUE7QUFDQSxJQUFBUyxNQUFBLEdBQUFULE9BQUE7QUFDQSxJQUFBVSxNQUFBLEdBQUFWLE9BQUE7QUFDQSxJQUFBVyxLQUFBLEdBQUFYLE9BQUE7QUFDQSxJQUFBWSxjQUFBLEdBQUFaLE9BQUE7QUFDQSxJQUFBYSxRQUFBLEdBQUFiLE9BQUE7QUFBdUMsSUFB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
220
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwicmVxdWlyZSIsIl9yZWFjdCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX3JlYWN0Qm9vdHN0cmFwIiwiX3V1aWQiLCJfY29uc3RhbnRzIiwiX2FjdGlvbkNyZWF0b3IiLCJfbm9TdG9yZVNhZ2EiLCJfZmV0Y2giLCJfbW9kZWwiLCJfc2hhcmQiLCJfdXNlciIsIl9BbGVydFdpdGhJY29uIiwiX0xvYWRpbmciLCJfanN4UnVudGltZSIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsImRlZmF1bHQiLCJoYXMiLCJnZXQiLCJzZXQiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIkV4dGVybmFsR3JvdXBzQXR0YWNoIiwiQ29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJwcm9wcyIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJncm91cFVzZXJSb2xlcyIsImV4dGVybmFsVGVybUlkIiwic2VsZWN0ZWRFeHRlcm5hbEdyb3VwcyIsImNhbkNvbm5lY3RBbnlFeHRlcm5hbEdyb3VwcyIsImNhbkNvbm5lY3RPd25FeHRlcm5hbEdyb3VwcyIsInVzZXJJbmZvIiwib3duZXJzIiwiZmlsdGVyIiwiZ3JvdXBVc2VyUm9sZSIsInJvbGUiLCJCQVNFX1JPTEUiLCJHUk9VUF9PV05FUiIsIm93bmVyc0luaXRpYWxTY2hlZHVsZURhdGEiLCJmb3JFYWNoIiwib3duZXIiLCJvd25lckRhdGEiLCJob29rSWQiLCJ1dWlkdjQiLCJzdGF0dXMiLCJpZCIsIk1PREVMX1NUQVRVUyIsIlVOSU5JVElBTElaRUQiLCJSRUFEWSIsImV4dGVybmFsR3JvdXBzIiwic2VnIiwidXNlcklkIiwidW5kZWZpbmVkIiwic2V0U3RhdGUiLCJvd25lclNjaGVkdWxlcyIsImlzVW5pVGltZVNjaGVkdWxlTG9hZGluZ0RvbmUiLCJvd25lclNjaGVkdWxlIiwiZ2V0T3duZXJVbmlUaW1lR3JvdXBzIiwiZXZlbnQiLCJleHRlcm5hbElkIiwidGFyZ2V0IiwidmFsdWUiLCJjaGVja2VkIiwib3JpZ2luYWxDb25uZWN0ZWRFeHRlcm5hbEdyb3VwcyIsImFsbE93bmVyRXh0ZXJuYWxHcm91cHMiLCJtYXAiLCJzdGF0ZSIsIm9zIiwicmVkdWNlIiwiYSIsImIiLCJjb25jYXQiLCJzZWxlY3RlZEV4dGVybmFsR3JvdXBzQ29weSIsInNsaWNlIiwib3JpZ2luYWxDb25uZWN0ZWRFeHRlcm5hbEdyb3VwIiwiZmluZCIsIm9lZyIsInNlbGVjdGVkRXh0ZXJuYWxHcm91cCIsImFvIiwicHVzaCIsInJlbW92ZSIsImhhbmRsZVNlbGVjdGVkRXh0ZXJuYWxHcm91cHMiLCJpc1B1cmR1ZVNoYXJkIiwicmVnaXN0ZXJOb1N0b3JlQWN0aW9uSG9vayIsImRhdGEiLCJ1bnJlZ2lzdGVyTm9TdG9yZUFjdGlvbkhvb2siLCJpc0ZldGNoRXJyb3JEYXRhIiwiaXNTaG93aW5nRXJyb3JBbGVydCIsImlzRmV0Y2hDYW5jZWxsZWREYXRhIiwic2V0VXNlclVuaVRpbWVHcm91cHMiLCJkaXNwYXRjaE1vZGVsRmV0Y2hSZXF1ZXN0IiwibW9kZWxOYW1lIiwicXVlcnlQYXJhbXMiLCJub1N0b3JlIiwiZ3VpZCIsImV2ZXJ5IiwibGVuZ3RoIiwianN4cyIsImNoaWxkcmVuIiwianN4IiwiZGlzcGxheU5hbWUiLCJkaXNwbGF5VW5pVGltZUdyb3VwcyIsImRpc2FibGVkIiwib3JkZXJCeSIsImVnIiwiaW5kZXgiLCJpc0Nvbm5lY3RlZCIsInNvbWUiLCJleHRlcm5hbFByb3ZpZGVySWQiLCJGb3JtQ2hlY2siLCJ0eXBlIiwib25DaGFuZ2UiLCJoYW5kbGVTZWxlY3RFeHRlcm5hbEdyb3VwcyIsImxhYmVsIiwibmFtZSIsImRlc2NyaXB0aW9uIiwiY29tcG9uZW50RGlkTW91bnQiLCJzZXRPd25lclNjaGVkdWxlcyIsImdldE1vZGVsQXJyYXkiLCJjb21wb25lbnRXaWxsVW5tb3VudCIsImNvbXBvbmVudERpZFVwZGF0ZSIsInByZXZQcm9wcyIsInByZXZFeHRlcm5hbFRlcm1JZCIsInByZXZHcm91cFVzZXJSb2xlcyIsImtleXMiLCJyZW5kZXIiLCJkaXNhYmxlZEluZm9NZXNzYWdlIiwiaGFzQW55RXh0ZXJuYWxHcm91cHMiLCJMb2FkaW5nIiwiQWxlcnRXaXRoSWNvbiIsInZhcmlhbnQiLCJvbkNsb3NlIiwiY2xhc3NOYW1lIiwiRm9ybUdyb3VwIiwiZGlzcGxheU93bmVyU2NoZWR1bGVzIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0dyb3Vwcy9FeHRlcm5hbEdyb3Vwcy9BdHRhY2gudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpY3Rpb25hcnksIGV2ZXJ5LCBmb3JFYWNoLCBtYXAsIG9yZGVyQnksIHJlbW92ZSwgc2V0LCBzb21lIH0gZnJvbSAnbG9kYXNoJ1xuaW1wb3J0IFJlYWN0LCB7IENoYW5nZUV2ZW50LCBDb21wb25lbnQgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IEZvcm1DaGVjaywgRm9ybUdyb3VwIH0gZnJvbSAncmVhY3QtYm9vdHN0cmFwJ1xuaW1wb3J0IHsgdjQgYXMgdXVpZHY0IH0gZnJvbSAndXVpZCdcbmltcG9ydCB7IEJBU0VfUk9MRSwgTU9ERUxfU1RBVFVTIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzJ1xuaW1wb3J0IHsgZGlzcGF0Y2hNb2RlbEZldGNoUmVxdWVzdCB9IGZyb20gJy4uLy4uLy4uL3JlZHV4L2FjdGlvbkNyZWF0b3InXG5pbXBvcnQgeyByZWdpc3Rlck5vU3RvcmVBY3Rpb25Ib29rLCB1bnJlZ2lzdGVyTm9TdG9yZUFjdGlvbkhvb2sgfSBmcm9tICcuLi8uLi8uLi9yZWR1eC9zYWdhcy9ub1N0b3JlU2FnYSdcbmltcG9ydCB7XG5cdEV4dGVybmFsR3JvdXAsXG5cdEZldGNoRXJyb3JEYXRhLFxuXHRHcm91cFVzZXJSb2xlLFxuXHRJbnN0cnVjdG9yU2NoZWR1bGUsXG5cdEx0aUxhdW5jaCxcblx0TW9kZWxDb2xsZWN0aW9uLFxuXHRPd25lclNjaGVkdWxlLFxuXHRVbmlUaW1lR3JvdXAsXG5cdFVzZXJJbmZvXG59IGZyb20gJy4uLy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHsgRmV0Y2hDYW5jZWxsZWREYXRhIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvbmV0L0ZldGNoQ2FuY2VsbGVkRGF0YSdcbmltcG9ydCB7IGlzRmV0Y2hDYW5jZWxsZWREYXRhLCBpc0ZldGNoRXJyb3JEYXRhIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvZmV0Y2gnXG5pbXBvcnQgeyBnZXRNb2RlbEFycmF5IH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvbW9kZWwnXG5pbXBvcnQgeyBpc1B1cmR1ZVNoYXJkIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvc2hhcmQnXG5pbXBvcnQgeyBkaXNwbGF5TmFtZSB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL3VzZXInXG5pbXBvcnQgeyBBbGVydFdpdGhJY29uIH0gZnJvbSAnLi4vLi4vQWxlcnRXaXRoSWNvbidcbmltcG9ydCB7IExvYWRpbmcgfSBmcm9tICcuLi8uLi9Mb2FkaW5nJ1xuXG5leHBvcnQgaW50ZXJmYWNlIEV4dGVybmFsR3JvdXBzQXR0YWNoUHJvcHMge1xuXHR1c2VySW5mbzogVXNlckluZm9cblx0Y2FuUmVhZEV4dGVybmFsR3JvdXBzOiBib29sZWFuXG5cdGNhbkNvbm5lY3RBbnlFeHRlcm5hbEdyb3VwczogYm9vbGVhblxuXHRjYW5Db25uZWN0T3duRXh0ZXJuYWxHcm91cHM6IGJvb2xlYW5cblx0b3JpZ2luYWxDb25uZWN0ZWRFeHRlcm5hbEdyb3VwczogQXJyYXk8RXh0ZXJuYWxHcm91cCB8IEx0aUxhdW5jaD5cblx0c2VsZWN0ZWRFeHRlcm5hbEdyb3VwczogQXJyYXk8RXh0ZXJuYWxHcm91cCB8IEx0aUxhdW5jaCB8IFVuaVRpbWVHcm91cD5cblx0ZXh0ZXJuYWxUZXJtSWQ6IG51bWJlclxuXHRoYW5kbGVTZWxlY3RlZEV4dGVybmFsR3JvdXBzOiAoZXh0ZXJuYWxHcm91cHM6IEFycmF5PEV4dGVybmFsR3JvdXAgfCBMdGlMYXVuY2ggfCBVbmlUaW1lR3JvdXA+KSA9PiB2b2lkXG5cdGdyb3VwVXNlclJvbGVzOiBNb2RlbENvbGxlY3Rpb248R3JvdXBVc2VyUm9sZT5cblx0ZGlzYWJsZWQ/OiBib29sZWFuXG5cdGRpc2FibGVkSW5mb01lc3NhZ2U/OiBzdHJpbmcgfCBSZWFjdC5KU1guRWxlbWVudFxufVxuXG5pbnRlcmZhY2UgRXh0ZXJuYWxHcm91cHNBdHRhY2hTdGF0ZSB7XG5cdG93bmVyU2NoZWR1bGVzPzogRGljdGlvbmFyeTxPd25lclNjaGVkdWxlPlxuXHRpc1VuaVRpbWVTY2hlZHVsZUxvYWRpbmdEb25lOiBib29sZWFuXG5cdGlzU2hvd2luZ0Vycm9yQWxlcnQ6IGJvb2xlYW5cbn1cblxuZXhwb3J0IGNsYXNzIEV4dGVybmFsR3JvdXBzQXR0YWNoIGV4dGVuZHMgQ29tcG9uZW50PEV4dGVybmFsR3JvdXBzQXR0YWNoUHJvcHMsIEV4dGVybmFsR3JvdXBzQXR0YWNoU3RhdGU+IHtcblx0Y29uc3RydWN0b3IocHJvcHM6IEV4dGVybmFsR3JvdXBzQXR0YWNoUHJvcHMpIHtcblx0XHRzdXBlcihwcm9wcylcblx0XHR0aGlzLnN0YXRlID0ge1xuXHRcdFx0b3duZXJTY2hlZHVsZXM6IHVuZGVmaW5lZCxcblx0XHRcdGlzVW5pVGltZVNjaGVkdWxlTG9hZGluZ0RvbmU6IGZhbHNlLFxuXHRcdFx0aXNTaG93aW5nRXJyb3JBbGVydDogZmFsc2Vcblx0XHR9XG5cdH1cblxuXHRjb21wb25lbnREaWRNb3VudCgpIHtcblx0XHRjb25zdCB7IGdyb3VwVXNlclJvbGVzLCBleHRlcm5hbFRlcm1JZCwgc2VsZWN0ZWRFeHRlcm5hbEdyb3VwcyB9ID0gdGhpcy5wcm9wc1xuXHRcdHRoaXMuc2V0T3duZXJTY2hlZHVsZXMoZ2V0TW9kZWxBcnJheShncm91cFVzZXJSb2xlcyksIGV4dGVybmFsVGVybUlkLCBzZWxlY3RlZEV4dGVybmFsR3JvdXBzKVxuXHR9XG5cblx0Y29tcG9uZW50V2lsbFVubW91bnQoKSB7XG5cdFx0Y29uc3QgeyBvd25lclNjaGVkdWxlcyB9ID0gdGhpcy5zdGF0ZVxuXHRcdGZvckVhY2gob3duZXJTY2hlZHVsZXMsIG9zID0+IHVucmVnaXN0ZXJOb1N0b3JlQWN0aW9uSG9vayhvcy5ob29rSWQpKVxuXHR9XG5cblx0Y29tcG9uZW50RGlkVXBkYXRlKHByZXZQcm9wczogUmVhZG9ubHk8RXh0ZXJuYWxHcm91cHNBdHRhY2hQcm9wcz4pIHtcblx0XHRjb25zdCB7IGV4dGVybmFsVGVybUlkOiBwcmV2RXh0ZXJuYWxUZXJtSWQsIGdyb3VwVXNlclJvbGVzOiBwcmV2R3JvdXBVc2VyUm9sZXMgfSA9IHByZXZQcm9wc1xuXHRcdGNvbnN0IHsgZXh0ZXJuYWxUZXJtSWQsIGdyb3VwVXNlclJvbGVzLCBzZWxlY3RlZEV4dGVybmFsR3JvdXBzIH0gPSB0aGlzLnByb3BzXG5cdFx0Ly8gQXNzdW1lcyBncm91cCB1c2VyIHJvbGVzIGFyZSBjaGFuZ2luZyBvbmUgYXQgYSB0aW1lLiBDYW4gYmUgbWFkZSBmYW5jaWVyIGlmIHRoZSBuZWVkIGFyaXNlc1xuXHRcdGlmIChcblx0XHRcdHByZXZFeHRlcm5hbFRlcm1JZCAhPT0gZXh0ZXJuYWxUZXJtSWQgfHxcblx0XHRcdE9iamVjdC5rZXlzKHByZXZHcm91cFVzZXJSb2xlcykubGVuZ3RoICE9PSBPYmplY3Qua2V5cyhncm91cFVzZXJSb2xlcykubGVuZ3RoXG5cdFx0KSB7XG5cdFx0XHR0aGlzLnNldE93bmVyU2NoZWR1bGVzKGdldE1vZGVsQXJyYXkoZ3JvdXBVc2VyUm9sZXMpLCBleHRlcm5hbFRlcm1JZCwgc2VsZWN0ZWRFeHRlcm5hbEdyb3Vwcylcblx0XHR9XG5cdH1cblxuXHRzZXRPd25lclNjaGVkdWxlcyA9IChcblx0XHRncm91cFVzZXJSb2xlczogR3JvdXBVc2VyUm9sZVtdLFxuXHRcdGV4dGVybmFsVGVybUlkOiBudW1iZXIsXG5cdFx0c2VsZWN0ZWRFeHRlcm5hbEdyb3VwczogQXJyYXk8RXh0ZXJuYWxHcm91cCB8IEx0aUxhdW5jaCB8IFVuaVRpbWVHcm91cD5cblx0KSA9PiB7XG5cdFx0Y29uc3QgeyBjYW5Db25uZWN0QW55RXh0ZXJuYWxHcm91cHMsIGNhbkNvbm5lY3RPd25FeHRlcm5hbEdyb3VwcywgdXNlckluZm8gfSA9IHRoaXMucHJvcHNcblx0XHRjb25zdCBvd25lcnMgPSBncm91cFVzZXJSb2xlcy5maWx0ZXIoZ3JvdXBVc2VyUm9sZSA9PiB7XG5cdFx0XHRyZXR1cm4gZ3JvdXBVc2VyUm9sZS5yb2xlID09PSBCQVNFX1JPTEUuR1JPVVBfT1dORVJcblx0XHR9KVxuXG5cdFx0Y29uc3Qgb3duZXJzSW5pdGlhbFNjaGVkdWxlRGF0YTogRGljdGlvbmFyeTxPd25lclNjaGVkdWxlPiA9IHt9XG5cdFx0b3duZXJzLmZvckVhY2gob3duZXIgPT4ge1xuXHRcdFx0Y29uc3Qgb3duZXJEYXRhOiBPd25lclNjaGVkdWxlID0ge1xuXHRcdFx0XHRob29rSWQ6IHV1aWR2NCgpLFxuXHRcdFx0XHRzdGF0dXM6XG5cdFx0XHRcdFx0Y2FuQ29ubmVjdEFueUV4dGVybmFsR3JvdXBzIHx8ICh1c2VySW5mby5pZCA9PT0gb3duZXIuaWQgJiYgY2FuQ29ubmVjdE93bkV4dGVybmFsR3JvdXBzKVxuXHRcdFx0XHRcdFx0PyBNT0RFTF9TVEFUVVMuVU5JTklUSUFMSVpFRFxuXHRcdFx0XHRcdFx0OiBNT0RFTF9TVEFUVVMuUkVBRFksXG5cdFx0XHRcdG93bmVyLFxuXHRcdFx0XHRleHRlcm5hbEdyb3VwczogIShcblx0XHRcdFx0XHRjYW5Db25uZWN0QW55RXh0ZXJuYWxHcm91cHMgfHxcblx0XHRcdFx0XHQodXNlckluZm8uaWQgPT09IG93bmVyLmlkICYmIGNhbkNvbm5lY3RPd25FeHRlcm5hbEdyb3Vwcylcblx0XHRcdFx0KVxuXHRcdFx0XHRcdD8gc2VsZWN0ZWRFeHRlcm5hbEdyb3Vwcy5maWx0ZXIoc2VnID0+IHNlZy51c2VySWQgPT09IG93bmVyLmlkKVxuXHRcdFx0XHRcdDogdW5kZWZpbmVkXG5cdFx0XHR9XG5cdFx0XHRzZXQob3duZXJzSW5pdGlhbFNjaGVkdWxlRGF0YSwgW293bmVyLnVzZXJJZF0sIG93bmVyRGF0YSlcblx0XHR9KVxuXHRcdHRoaXMuc2V0U3RhdGUoXG5cdFx0XHR7XG5cdFx0XHRcdG93bmVyU2NoZWR1bGVzOiBvd25lcnNJbml0aWFsU2NoZWR1bGVEYXRhLFxuXHRcdFx0XHRpc1VuaVRpbWVTY2hlZHVsZUxvYWRpbmdEb25lOiBmYWxzZVxuXHRcdFx0fSxcblx0XHRcdCgpID0+XG5cdFx0XHRcdGZvckVhY2gob3duZXJzSW5pdGlhbFNjaGVkdWxlRGF0YSwgKG93bmVyU2NoZWR1bGUsIHVzZXJJZCkgPT4ge1xuXHRcdFx0XHRcdHRoaXMuZ2V0T3duZXJVbmlUaW1lR3JvdXBzKG93bmVyU2NoZWR1bGUsIHVzZXJJZCwgZXh0ZXJuYWxUZXJtSWQpXG5cdFx0XHRcdH0pXG5cdFx0KVxuXHR9XG5cblx0aGFuZGxlU2VsZWN0RXh0ZXJuYWxHcm91cHMgPSAoZXZlbnQ6IENoYW5nZUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB7XG5cdFx0Y29uc3QgZXh0ZXJuYWxJZCA9IGV2ZW50LnRhcmdldC52YWx1ZVxuXHRcdGNvbnN0IGNoZWNrZWQgPSBldmVudC50YXJnZXQuY2hlY2tlZFxuXHRcdGNvbnN0IHsgb3JpZ2luYWxDb25uZWN0ZWRFeHRlcm5hbEdyb3Vwcywgc2VsZWN0ZWRFeHRlcm5hbEdyb3VwcyB9ID0gdGhpcy5wcm9wc1xuXG5cdFx0Y29uc3QgYWxsT3duZXJFeHRlcm5hbEdyb3VwcyA9IG1hcCh0aGlzLnN0YXRlLm93bmVyU2NoZWR1bGVzLCBvcyA9PiBvcy5leHRlcm5hbEdyb3VwcykucmVkdWNlKChhLCBiKSA9PlxuXHRcdFx0KGEgfHwgW10pLmNvbmNhdChiIHx8IFtdKVxuXHRcdClcblx0XHRjb25zdCBzZWxlY3RlZEV4dGVybmFsR3JvdXBzQ29weSA9IHNlbGVjdGVkRXh0ZXJuYWxHcm91cHMuc2xpY2UoKVxuXG5cdFx0aWYgKGNoZWNrZWQpIHtcblx0XHRcdGNvbnN0IG9yaWdpbmFsQ29ubmVjdGVkRXh0ZXJuYWxHcm91cCA9IG9yaWdpbmFsQ29ubmVjdGVkRXh0ZXJuYWxHcm91cHMuZmluZChcblx0XHRcdFx0b2VnID0+IG9lZy5leHRlcm5hbElkID09PSBleHRlcm5hbElkXG5cdFx0XHQpXG5cdFx0XHRjb25zdCBzZWxlY3RlZEV4dGVybmFsR3JvdXAgPSBvcmlnaW5hbENvbm5lY3RlZEV4dGVybmFsR3JvdXBcblx0XHRcdFx0PyBvcmlnaW5hbENvbm5lY3RlZEV4dGVybmFsR3JvdXBcblx0XHRcdFx0OiBhbGxPd25lckV4dGVybmFsR3JvdXBzPy5maW5kKGFvID0+IGFvLmV4dGVybmFsSWQgPT09IGV4dGVybmFsSWQpXG5cblx0XHRcdGlmIChzZWxlY3RlZEV4dGVybmFsR3JvdXApIHtcblx0XHRcdFx0c2VsZWN0ZWRFeHRlcm5hbEdyb3Vwc0NvcHkucHVzaChzZWxlY3RlZEV4dGVybmFsR3JvdXApXG5cdFx0XHR9XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJlbW92ZShzZWxlY3RlZEV4dGVybmFsR3JvdXBzQ29weSwgc2VnID0+IHNlZy5leHRlcm5hbElkID09PSBleHRlcm5hbElkKVxuXHRcdH1cblxuXHRcdHRoaXMucHJvcHMuaGFuZGxlU2VsZWN0ZWRFeHRlcm5hbEdyb3VwcyhzZWxlY3RlZEV4dGVybmFsR3JvdXBzQ29weSlcblx0fVxuXG5cdGdldE93bmVyVW5pVGltZUdyb3VwcyA9IChvd25lclNjaGVkdWxlOiBPd25lclNjaGVkdWxlLCB1c2VySWQ6IHN0cmluZywgZXh0ZXJuYWxUZXJtSWQ6IG51bWJlcikgPT4ge1xuXHRcdGlmIChpc1B1cmR1ZVNoYXJkKCkgJiYgb3duZXJTY2hlZHVsZS5zdGF0dXMgPT09IE1PREVMX1NUQVRVUy5VTklOSVRJQUxJWkVEICYmICFvd25lclNjaGVkdWxlLmV4dGVybmFsR3JvdXBzKSB7XG5cdFx0XHRyZWdpc3Rlck5vU3RvcmVBY3Rpb25Ib29rKFxuXHRcdFx0XHRvd25lclNjaGVkdWxlLmhvb2tJZCxcblx0XHRcdFx0KGRhdGE6IEluc3RydWN0b3JTY2hlZHVsZSB8IEZldGNoQ2FuY2VsbGVkRGF0YSB8IEZldGNoRXJyb3JEYXRhIHwgbnVsbCkgPT4ge1xuXHRcdFx0XHRcdHVucmVnaXN0ZXJOb1N0b3JlQWN0aW9uSG9vayhvd25lclNjaGVkdWxlLmhvb2tJZClcblx0XHRcdFx0XHRpZiAoIWRhdGEgfHwgaXNGZXRjaEVycm9yRGF0YShkYXRhKSkge1xuXHRcdFx0XHRcdFx0dGhpcy5zZXRTdGF0ZSh7IGlzU2hvd2luZ0Vycm9yQWxlcnQ6IHRydWUsIGlzVW5pVGltZVNjaGVkdWxlTG9hZGluZ0RvbmU6IHRydWUgfSlcblx0XHRcdFx0XHR9IGVsc2UgaWYgKCFpc0ZldGNoQ2FuY2VsbGVkRGF0YShkYXRhKSkge1xuXHRcdFx0XHRcdFx0dGhpcy5zZXRVc2VyVW5pVGltZUdyb3Vwcyh1c2VySWQsIGRhdGEuZXh0ZXJuYWxHcm91cHMpXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHQpXG5cdFx0XHRkaXNwYXRjaE1vZGVsRmV0Y2hSZXF1ZXN0KHtcblx0XHRcdFx0bW9kZWxOYW1lOiAndW5pVGltZUluc3RydWN0b3JTY2hlZHVsZScsXG5cdFx0XHRcdHF1ZXJ5UGFyYW1zOiB7XG5cdFx0XHRcdFx0ZXh0ZXJuYWxUZXJtSWQsXG5cdFx0XHRcdFx0dXNlcklkXG5cdFx0XHRcdH0sXG5cdFx0XHRcdG5vU3RvcmU6IHRydWUsXG5cdFx0XHRcdGd1aWQ6IG93bmVyU2NoZWR1bGUuaG9va0lkXG5cdFx0XHR9KVxuXHRcdH1cblx0fVxuXG5cdHNldFVzZXJVbmlUaW1lR3JvdXBzID0gKHVzZXJJZDogc3RyaW5nLCBleHRlcm5hbEdyb3VwczogVW5pVGltZUdyb3VwW10pID0+IHtcblx0XHQvLyBTZXR0aW5nIHRoZSB1c2VyJ3MgY291cnNlIHNlY3Rpb25zIGxvYWQgc3RhdHVzIHRvIGJlIHJlYWR5XG5cdFx0Y29uc3Qgb3duZXJTY2hlZHVsZXMgPSB0aGlzLnN0YXRlLm93bmVyU2NoZWR1bGVzIHx8IHt9XG5cdFx0b3duZXJTY2hlZHVsZXNbdXNlcklkXS5zdGF0dXMgPSBNT0RFTF9TVEFUVVMuUkVBRFlcblx0XHRvd25lclNjaGVkdWxlc1t1c2VySWRdLmV4dGVybmFsR3JvdXBzID0gZXh0ZXJuYWxHcm91cHNcblxuXHRcdGNvbnN0IGlzVW5pVGltZVNjaGVkdWxlTG9hZGluZ0RvbmUgPSBldmVyeShvd25lclNjaGVkdWxlcywgb3MgPT4gb3Muc3RhdHVzID09PSBNT0RFTF9TVEFUVVMuUkVBRFkpXG5cblx0XHR0aGlzLnNldFN0YXRlKHtcblx0XHRcdG93bmVyU2NoZWR1bGVzLFxuXHRcdFx0aXNVbmlUaW1lU2NoZWR1bGVMb2FkaW5nRG9uZVxuXHRcdH0pXG5cdH1cblxuXHRkaXNwbGF5T3duZXJTY2hlZHVsZXMgPSAob3duZXJTY2hlZHVsZXM6IERpY3Rpb25hcnk8T3duZXJTY2hlZHVsZT4pID0+IHtcblx0XHRyZXR1cm4gbWFwKG93bmVyU2NoZWR1bGVzLCBvcyA9PiB7XG5cdFx0XHRpZiAoISFvcy5leHRlcm5hbEdyb3VwcyAmJiBvcy5leHRlcm5hbEdyb3Vwcy5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdHJldHVybiAoXG5cdFx0XHRcdFx0PGRpdiBrZXk9e29zLmhvb2tJZH0+XG5cdFx0XHRcdFx0XHQ8aDQ+e2Rpc3BsYXlOYW1lKG9zLm93bmVyKX08L2g0PlxuXHRcdFx0XHRcdFx0e3RoaXMuZGlzcGxheVVuaVRpbWVHcm91cHMob3MuZXh0ZXJuYWxHcm91cHMpfVxuXHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHQpXG5cdFx0XHR9XG5cdFx0fSlcblx0fVxuXG5cdGRpc3BsYXlVbmlUaW1lR3JvdXBzID0gKGV4dGVybmFsR3JvdXBzOiBBcnJheTxFeHRlcm5hbEdyb3VwIHwgTHRpTGF1bmNoIHwgVW5pVGltZUdyb3VwPikgPT4ge1xuXHRcdGNvbnN0IHsgc2VsZWN0ZWRFeHRlcm5hbEdyb3VwcywgY2FuQ29ubmVjdEFueUV4dGVybmFsR3JvdXBzLCBjYW5Db25uZWN0T3duRXh0ZXJuYWxHcm91cHMsIHVzZXJJbmZvLCBkaXNhYmxlZCB9ID1cblx0XHRcdHRoaXMucHJvcHNcblxuXHRcdHJldHVybiBvcmRlckJ5KGV4dGVybmFsR3JvdXBzLCBbJ2Rlc2NyaXB0aW9uJ10pLm1hcCgoZWcsIGluZGV4KSA9PiB7XG5cdFx0XHRjb25zdCBpc0Nvbm5lY3RlZCA9IHNlbGVjdGVkRXh0ZXJuYWxHcm91cHMuc29tZShcblx0XHRcdFx0c2VnID0+XG5cdFx0XHRcdFx0c2VnLmV4dGVybmFsSWQgPT09IGVnLmV4dGVybmFsSWQgJiZcblx0XHRcdFx0XHRzZWcuZXh0ZXJuYWxQcm92aWRlcklkID09PSBlZy5leHRlcm5hbFByb3ZpZGVySWQgJiZcblx0XHRcdFx0XHRzZWcudXNlcklkID09PSBlZy51c2VySWRcblx0XHRcdClcblxuXHRcdFx0aWYgKFxuXHRcdFx0XHRjYW5Db25uZWN0QW55RXh0ZXJuYWxHcm91cHMgfHxcblx0XHRcdFx0KHVzZXJJbmZvLmlkID09PSBlZy51c2VySWQgJiYgY2FuQ29ubmVjdE93bkV4dGVybmFsR3JvdXBzKSB8fFxuXHRcdFx0XHRpc0Nvbm5lY3RlZFxuXHRcdFx0KSB7XG5cdFx0XHRcdHJldHVybiAoXG5cdFx0XHRcdFx0PEZvcm1DaGVja1xuXHRcdFx0XHRcdFx0aWQ9e2BleHRlcm5hbC1ncm91cC0ke2VnLmlkfWB9XG5cdFx0XHRcdFx0XHR0eXBlPVwiY2hlY2tib3hcIlxuXHRcdFx0XHRcdFx0a2V5PXtpbmRleH1cblx0XHRcdFx0XHRcdG9uQ2hhbmdlPXt0aGlzLmhhbmRsZVNlbGVjdEV4dGVybmFsR3JvdXBzfVxuXHRcdFx0XHRcdFx0dmFsdWU9e2VnLmV4dGVybmFsSWR9XG5cdFx0XHRcdFx0XHRjaGVja2VkPXtpc0Nvbm5lY3RlZH1cblx0XHRcdFx0XHRcdGRpc2FibGVkPXsodXNlckluZm8uaWQgIT09IGVnLnVzZXJJZCAmJiAhY2FuQ29ubmVjdEFueUV4dGVybmFsR3JvdXBzKSB8fCBkaXNhYmxlZH1cblx0XHRcdFx0XHRcdGxhYmVsPXtgJHtlZy5uYW1lfSAke2VnLmRlc2NyaXB0aW9uID8gYCgke2VnLmRlc2NyaXB0aW9ufSlgIDogJyd9YH1cblx0XHRcdFx0XHQvPlxuXHRcdFx0XHQpXG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gbnVsbFxuXHRcdH0pXG5cdH1cblxuXHRyZW5kZXIoKSB7XG5cdFx0Y29uc3QgeyBkaXNhYmxlZEluZm9NZXNzYWdlIH0gPSB0aGlzLnByb3BzXG5cdFx0Y29uc3QgeyBvd25lclNjaGVkdWxlcywgaXNVbmlUaW1lU2NoZWR1bGVMb2FkaW5nRG9uZSwgaXNTaG93aW5nRXJyb3JBbGVydCB9ID0gdGhpcy5zdGF0ZVxuXHRcdGNvbnN0IGhhc0FueUV4dGVybmFsR3JvdXBzID0gc29tZShvd25lclNjaGVkdWxlcywgb3MgPT4gISFvcy5leHRlcm5hbEdyb3VwcyAmJiBvcy5leHRlcm5hbEdyb3Vwcy5sZW5ndGggPiAwKVxuXG5cdFx0cmV0dXJuIChcblx0XHRcdDxkaXY+XG5cdFx0XHRcdHshaXNVbmlUaW1lU2NoZWR1bGVMb2FkaW5nRG9uZSAmJiA8TG9hZGluZyAvPn1cblx0XHRcdFx0e2lzVW5pVGltZVNjaGVkdWxlTG9hZGluZ0RvbmUgJiYgKFxuXHRcdFx0XHRcdDxkaXY+XG5cdFx0XHRcdFx0XHR7IWhhc0FueUV4dGVybmFsR3JvdXBzICYmIChcblx0XHRcdFx0XHRcdFx0PEFsZXJ0V2l0aEljb24gdmFyaWFudD1cImluZm9cIj5cblx0XHRcdFx0XHRcdFx0XHQ8cD5ObyBjb3Vyc2Ugc2VjdGlvbnMgZWxpZ2libGUgZm9yIHJvc3RlciBzeW5jLjwvcD5cblx0XHRcdFx0XHRcdFx0PC9BbGVydFdpdGhJY29uPlxuXHRcdFx0XHRcdFx0KX1cblx0XHRcdFx0XHRcdHshIWRpc2FibGVkSW5mb01lc3NhZ2UgJiYgaGFzQW55RXh0ZXJuYWxHcm91cHMgJiYgKFxuXHRcdFx0XHRcdFx0XHQ8QWxlcnRXaXRoSWNvbiB2YXJpYW50PVwiaW5mb1wiPlxuXHRcdFx0XHRcdFx0XHRcdDxwPntkaXNhYmxlZEluZm9NZXNzYWdlfTwvcD5cblx0XHRcdFx0XHRcdFx0PC9BbGVydFdpdGhJY29uPlxuXHRcdFx0XHRcdFx0KX1cblx0XHRcdFx0XHRcdHtpc1Nob3dpbmdFcnJvckFsZXJ0ICYmIChcblx0XHRcdFx0XHRcdFx0PEFsZXJ0V2l0aEljb25cblx0XHRcdFx0XHRcdFx0XHR2YXJpYW50PVwid2FybmluZ1wiXG5cdFx0XHRcdFx0XHRcdFx0b25DbG9zZT17KCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5zZXRTdGF0ZSh7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGlzU2hvd2luZ0Vycm9yQWxlcnQ6IGZhbHNlXG5cdFx0XHRcdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0XHRcdH19PlxuXHRcdFx0XHRcdFx0XHRcdDxwIGNsYXNzTmFtZT1cIm1hMFwiPk9vcHMhIFNvbWV0aGluZyB3ZW50IHdyb25nIHdoaWxlIGxvYWRpbmcuIFBsZWFzZSB0cnkgYWdhaW4uPC9wPlxuXHRcdFx0XHRcdFx0XHQ8L0FsZXJ0V2l0aEljb24+XG5cdFx0XHRcdFx0XHQpfXsnICd9XG5cdFx0XHRcdFx0XHR7aGFzQW55RXh0ZXJuYWxHcm91cHMgJiYgISFvd25lclNjaGVkdWxlcyAmJiAoXG5cdFx0XHRcdFx0XHRcdDxGb3JtR3JvdXAgY2xhc3NOYW1lPVwibWw0IGY2XCI+e3RoaXMuZGlzcGxheU93bmVyU2NoZWR1bGVzKG93bmVyU2NoZWR1bGVzKX08L0Zvcm1Hcm91cD5cblx0XHRcdFx0XHRcdCl9XG5cdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdCl9XG5cdFx0XHQ8L2Rpdj5cblx0XHQpXG5cdH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxJQUFBQSxPQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxNQUFBLEdBQUFDLHVCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxlQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxLQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxVQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFB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
@@ -50,6 +50,9 @@ const LockDownBrowserCheck = () => {
50
50
  setHasLoaded(true);
51
51
  _noStoreSaga.noStoreHooks.registerNoStoreActionHook(hookId, data => {
52
52
  _noStoreSaga.noStoreHooks.unregisterNoStoreActionHook(hookId);
53
+ if ((0, _fetch.isFetchCancelledData)(data)) {
54
+ return;
55
+ }
53
56
  setTestData(data);
54
57
  });
55
58
  (0, _actionCreator.dispatchModelFetchRequest)({
@@ -195,4 +198,4 @@ const LockDownBrowserCheck = () => {
195
198
  // required for use in Routes / AsyncComponent
196
199
  exports.LockDownBrowserCheck = LockDownBrowserCheck;
197
200
  var _default = exports.default = LockDownBrowserCheck;
198
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfQ2FuY2VsIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfQ2hlY2tDaXJjbGUiLCJfcmVhY3QiLCJfcmVhY3RCb290c3RyYXAiLCJfcmVhY3RIZWxtZXQiLCJfdXVpZCIsIl9vcGVyYXRpbmdTeXN0ZW0iLCJfYWN0aW9uQ3JlYXRvciIsIl9ub1N0b3JlU2FnYSIsIl9mZXRjaCIsIl9sb2NrRG93bkJyb3dzZXIiLCJfTG9hZGluZyIsIl9FeGl0QnV0dG9uIiwiX2pzeFJ1bnRpbWUiLCJMb2NrRG93bkJyb3dzZXJDaGVjayIsIiQiLCJfcmVhY3RDb21waWxlclJ1bnRpbWUiLCJjIiwidDAiLCJTeW1ib2wiLCJmb3IiLCJnZXRMb2NrRG93bkJyb3dzZXJJbmZvIiwibG9ja0Rvd25Ccm93c2VySW5mbyIsInBsYXRmb3JtIiwiYnVpbGREYXRlV2luZG93cyIsIk9QRVJBVElOR19TWVNURU0iLCJXSU5ET1dTIiwiYnVpbGREYXRlTWFjIiwiTUFDIiwiYnVpbGREYXRlSXBhZCIsIklQQUQiLCJ1bmRlZmluZWQiLCJidWlsZERhdGUiLCJoYXNMb2FkZWQiLCJzZXRIYXNMb2FkZWQiLCJ1c2VTdGF0ZSIsInQxIiwidXVpZHY0IiwiaG9va0lkIiwidGVzdERhdGEiLCJzZXRUZXN0RGF0YSIsInQyIiwidDMiLCJub1N0b3JlSG9va3MiLCJyZWdpc3Rlck5vU3RvcmVBY3Rpb25Ib29rIiwiZGF0YSIsInVucmVnaXN0ZXJOb1N0b3JlQWN0aW9uSG9vayIsImRpc3BhdGNoTW9kZWxGZXRjaFJlcXVlc3QiLCJtb2RlbE5hbWUiLCJndWlkIiwibm9TdG9yZSIsInVzZUVmZmVjdCIsInQ0IiwiaXNGZXRjaEVycm9yRGF0YSIsImlzTG9ja0Rvd25Ccm93c2VyIiwiaXNBcGlMb2NrRG93bkJyb3dzZXIiLCJpc0xvY2tEb3duQnJvd3NlclJlYWR5VG9Vc2UiLCJpc0NsaWVudExvY2tEb3duQnJvd3NlciIsInQ1IiwianN4IiwiSGVsbWV0IiwidGl0bGUiLCJ0NiIsIkxvYWRpbmciLCJ0NyIsIkNvbnRhaW5lciIsImNsYXNzTmFtZSIsImNoaWxkcmVuIiwiUm93IiwianN4cyIsIkNvbCIsInhzIiwiRnJhZ21lbnQiLCJkZWZhdWx0IiwiaHJlZiIsImJ1aWxkSWQiLCJMb2NrRG93bkJyb3dzZXJFeGl0QnV0dG9uIiwidDgiLCJleHBvcnRzIiwiX2RlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9Mb2NrRG93bkJyb3dzZXIvQ2hlY2sudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBJY29uQ2FuY2VsIGZyb20gJ0BtYXRlcmlhbC11aS9pY29ucy9DYW5jZWwnXG5pbXBvcnQgSWNvbkNoZWNrQ2lyY2xlIGZyb20gJ0BtYXRlcmlhbC11aS9pY29ucy9DaGVja0NpcmNsZSdcbmltcG9ydCB7IEZ1bmN0aW9uQ29tcG9uZW50LCB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBDb2wsIENvbnRhaW5lciwgUm93IH0gZnJvbSAncmVhY3QtYm9vdHN0cmFwJ1xuaW1wb3J0IHsgSGVsbWV0IH0gZnJvbSAncmVhY3QtaGVsbWV0J1xuaW1wb3J0IHsgdjQgYXMgdXVpZHY0IH0gZnJvbSAndXVpZCdcbmltcG9ydCB7IE9QRVJBVElOR19TWVNURU0gfSBmcm9tICcuLi8uLi9jb25zdGFudHMvb3BlcmF0aW5nU3lzdGVtJ1xuaW1wb3J0IHsgZGlzcGF0Y2hNb2RlbEZldGNoUmVxdWVzdCB9IGZyb20gJy4uLy4uL3JlZHV4L2FjdGlvbkNyZWF0b3InXG5pbXBvcnQgeyBub1N0b3JlSG9va3MgfSBmcm9tICcuLi8uLi9yZWR1eC9zYWdhcy9ub1N0b3JlU2FnYSdcbmltcG9ydCB7IEZldGNoRXJyb3JEYXRhIH0gZnJvbSAnLi4vLi4vdHlwZXMvbmV0L0ZldGNoRXJyb3JEYXRhJ1xuaW1wb3J0IHsgaXNGZXRjaEVycm9yRGF0YSB9IGZyb20gJy4uLy4uL3V0aWxzL2ZldGNoJ1xuaW1wb3J0IHsgZ2V0TG9ja0Rvd25Ccm93c2VySW5mbyB9IGZyb20gJy4uLy4uL3V0aWxzL2xvY2tEb3duQnJvd3NlcidcbmltcG9ydCB7IExvYWRpbmcgfSBmcm9tICcuLi9Mb2FkaW5nJ1xuaW1wb3J0IHsgTG9ja0Rvd25Ccm93c2VyRXhpdEJ1dHRvbiB9IGZyb20gJy4vRXhpdEJ1dHRvbidcblxuaW50ZXJmYWNlIExvY2tEb3duQnJvd3NlclRlc3REYXRhIHtcblx0aXNMb2NrRG93bkJyb3dzZXI6IGJvb2xlYW5cbn1cblxuZXhwb3J0IGNvbnN0IExvY2tEb3duQnJvd3NlckNoZWNrOiBGdW5jdGlvbkNvbXBvbmVudCA9ICgpID0+IHtcblx0Y29uc3QgbG9ja0Rvd25Ccm93c2VySW5mbyA9IGdldExvY2tEb3duQnJvd3NlckluZm8oKVxuXHRjb25zdCBwbGF0Zm9ybSA9IGxvY2tEb3duQnJvd3NlckluZm8uYnVpbGREYXRlV2luZG93c1xuXHRcdD8gT1BFUkFUSU5HX1NZU1RFTS5XSU5ET1dTXG5cdFx0OiBsb2NrRG93bkJyb3dzZXJJbmZvLmJ1aWxkRGF0ZU1hY1xuXHRcdFx0PyBPUEVSQVRJTkdfU1lTVEVNLk1BQ1xuXHRcdFx0OiBsb2NrRG93bkJyb3dzZXJJbmZvLmJ1aWxkRGF0ZUlwYWRcblx0XHRcdFx0PyBPUEVSQVRJTkdfU1lTVEVNLklQQURcblx0XHRcdFx0OiB1bmRlZmluZWRcblx0Y29uc3QgYnVpbGREYXRlID1cblx0XHRsb2NrRG93bkJyb3dzZXJJbmZvLmJ1aWxkRGF0ZVdpbmRvd3MgfHwgbG9ja0Rvd25Ccm93c2VySW5mby5idWlsZERhdGVNYWMgfHwgbG9ja0Rvd25Ccm93c2VySW5mby5idWlsZERhdGVJcGFkXG5cblx0Y29uc3QgW2hhc0xvYWRlZCwgc2V0SGFzTG9hZGVkXSA9IHVzZVN0YXRlKGZhbHNlKVxuXHRjb25zdCBbaG9va0lkXSA9IHVzZVN0YXRlKHV1aWR2NCgpKVxuXHRjb25zdCBbdGVzdERhdGEsIHNldFRlc3REYXRhXSA9IHVzZVN0YXRlPExvY2tEb3duQnJvd3NlclRlc3REYXRhIHwgRmV0Y2hFcnJvckRhdGEgfCBudWxsPigpXG5cblx0dXNlRWZmZWN0KCgpID0+IHtcblx0XHRpZiAoIWhhc0xvYWRlZCkge1xuXHRcdFx0c2V0SGFzTG9hZGVkKHRydWUpXG5cdFx0XHRub1N0b3JlSG9va3MucmVnaXN0ZXJOb1N0b3JlQWN0aW9uSG9vayhob29rSWQsIChkYXRhOiBMb2NrRG93bkJyb3dzZXJUZXN0RGF0YSB8IEZldGNoRXJyb3JEYXRhIHwgbnVsbCkgPT4ge1xuXHRcdFx0XHRub1N0b3JlSG9va3MudW5yZWdpc3Rlck5vU3RvcmVBY3Rpb25Ib29rKGhvb2tJZClcblx0XHRcdFx0c2V0VGVzdERhdGEoZGF0YSlcblx0XHRcdH0pXG5cdFx0XHRkaXNwYXRjaE1vZGVsRmV0Y2hSZXF1ZXN0KHtcblx0XHRcdFx0bW9kZWxOYW1lOiAnbG9ja0Rvd25Ccm93c2VyVGVzdCcsXG5cdFx0XHRcdGd1aWQ6IGhvb2tJZCxcblx0XHRcdFx0bm9TdG9yZTogdHJ1ZVxuXHRcdFx0fSlcblx0XHR9XG5cdH0sIFtoYXNMb2FkZWQsIGhvb2tJZF0pXG5cblx0Y29uc3QgaXNBcGlMb2NrRG93bkJyb3dzZXIgPSAhIXRlc3REYXRhICYmICFpc0ZldGNoRXJyb3JEYXRhKHRlc3REYXRhKSAmJiB0ZXN0RGF0YS5pc0xvY2tEb3duQnJvd3NlclxuXHRjb25zdCBpc0xvY2tEb3duQnJvd3NlclJlYWR5VG9Vc2UgPSBsb2NrRG93bkJyb3dzZXJJbmZvLmlzQ2xpZW50TG9ja0Rvd25Ccm93c2VyICYmIGlzQXBpTG9ja0Rvd25Ccm93c2VyXG5cblx0cmV0dXJuIChcblx0XHQ8PlxuXHRcdFx0PEhlbG1ldCB0aXRsZT1cIkxvY2tEb3duIEJyb3dzZXIgQ2hlY2tcIiAvPlxuXHRcdFx0e3Rlc3REYXRhID09PSB1bmRlZmluZWQgJiYgPExvYWRpbmcgLz59XG5cdFx0XHR7dGVzdERhdGEgIT09IHVuZGVmaW5lZCAmJiAoXG5cdFx0XHRcdDxDb250YWluZXIgY2xhc3NOYW1lPVwibWFpbi1jb250ZW50XCI+XG5cdFx0XHRcdFx0PFJvdz5cblx0XHRcdFx0XHRcdDxDb2wgeHM9ezEyfT5cblx0XHRcdFx0XHRcdFx0PGgxPlxuXHRcdFx0XHRcdFx0XHRcdHtpc0xvY2tEb3duQnJvd3NlclJlYWR5VG9Vc2UgPyAoXG5cdFx0XHRcdFx0XHRcdFx0XHQ8PlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8SWNvbkNoZWNrQ2lyY2xlIGNsYXNzTmFtZT1cImZpbGwtZ3JlZW4gZjEgbXIyXCIgLz4gU3VjY2VzcyEgWW91IGFyZSB1c2luZ1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRMb2NrRG93biBCcm93c2VyLlxuXHRcdFx0XHRcdFx0XHRcdFx0PC8+XG5cdFx0XHRcdFx0XHRcdFx0KSA6IChcblx0XHRcdFx0XHRcdFx0XHRcdDw+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxJY29uQ2FuY2VsIGNsYXNzTmFtZT1cImZpbGwtcmVkIGYxIG1yMlwiIC8+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdE9vcHMhIFdlIGNvdWxkIG5vdCBjb25maXJtIExvY2tEb3duIEJyb3dzZXIgaXMgYmVpbmcgdXNlZC5cblx0XHRcdFx0XHRcdFx0XHRcdDwvPlxuXHRcdFx0XHRcdFx0XHRcdCl9XG5cdFx0XHRcdFx0XHRcdDwvaDE+XG5cdFx0XHRcdFx0XHRcdHtpc0xvY2tEb3duQnJvd3NlclJlYWR5VG9Vc2UgPyAoXG5cdFx0XHRcdFx0XHRcdFx0PHA+XG5cdFx0XHRcdFx0XHRcdFx0XHRZb3XigJlyZSBhbGwgc2V0IHRvIHVzZSBMb2NrRG93biBCcm93c2VyIGZvciB5b3VyIGFzc2Vzc21lbnRzLiBZb3UgY2FuIGNsb3NlIExvY2tEb3duXG5cdFx0XHRcdFx0XHRcdFx0XHRCcm93c2VyIHdoZW4geW914oCZcmUgcmVhZHkuXG5cdFx0XHRcdFx0XHRcdFx0PC9wPlxuXHRcdFx0XHRcdFx0XHQpIDogKFxuXHRcdFx0XHRcdFx0XHRcdDxwPlxuXHRcdFx0XHRcdFx0XHRcdFx0VGhlcmUgd2FzIGFuIGlzc3VlIGRldGVjdGluZyBMb2NrRG93biBCcm93c2VyLiBQbGVhc2V7JyAnfVxuXHRcdFx0XHRcdFx0XHRcdFx0e2xvY2tEb3duQnJvd3NlckluZm8uaXNDbGllbnRMb2NrRG93bkJyb3dzZXIgJiYgKFxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8PmNsb3NlIHRoZSBicm93c2VyIGFuZCB0cnkgYWdhaW4sIG9yIDwvPlxuXHRcdFx0XHRcdFx0XHRcdFx0KX1cblx0XHRcdFx0XHRcdFx0XHRcdGNvbnRhY3QgdXMgYXQgPGEgaHJlZj1cIm1haWx0bzp0bHRAcHVyZHVlLmVkdVwiPnRsdEBwdXJkdWUuZWR1PC9hPiBpZiB5b3UgY29udGludWUgdG9cblx0XHRcdFx0XHRcdFx0XHRcdGhhdmUgaXNzdWVzLlxuXHRcdFx0XHRcdFx0XHRcdDwvcD5cblx0XHRcdFx0XHRcdFx0KX1cblx0XHRcdFx0XHRcdFx0PGRsIGNsYXNzTmFtZT1cImY2XCI+XG5cdFx0XHRcdFx0XHRcdFx0PGR0PlxuXHRcdFx0XHRcdFx0XHRcdFx0e2xvY2tEb3duQnJvd3NlckluZm8uaXNDbGllbnRMb2NrRG93bkJyb3dzZXIgPyAoXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxJY29uQ2hlY2tDaXJjbGUgY2xhc3NOYW1lPVwiZmlsbC1ncmVlbiBmNFwiIC8+XG5cdFx0XHRcdFx0XHRcdFx0XHQpIDogKFxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8SWNvbkNhbmNlbCBjbGFzc05hbWU9XCJmaWxsLXJlZCBmNFwiIC8+XG5cdFx0XHRcdFx0XHRcdFx0XHQpfXsnICd9XG5cdFx0XHRcdFx0XHRcdFx0XHRDbGllbnRcblx0XHRcdFx0XHRcdFx0XHQ8L2R0PlxuXHRcdFx0XHRcdFx0XHRcdDxkZD5cblx0XHRcdFx0XHRcdFx0XHRcdHtsb2NrRG93bkJyb3dzZXJJbmZvLmlzQ2xpZW50TG9ja0Rvd25Ccm93c2VyID8gPD5Db25maXJtZWQ8Lz4gOiA8Pk5vdCBEZXRlY3RlZDwvPn1cblx0XHRcdFx0XHRcdFx0XHQ8L2RkPlxuXHRcdFx0XHRcdFx0XHRcdHtsb2NrRG93bkJyb3dzZXJJbmZvLmlzQ2xpZW50TG9ja0Rvd25Ccm93c2VyICYmXG5cdFx0XHRcdFx0XHRcdFx0XHQobG9ja0Rvd25Ccm93c2VySW5mby5idWlsZElkIHx8IHBsYXRmb3JtKSAmJiAoXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDw+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0e2xvY2tEb3duQnJvd3NlckluZm8uYnVpbGRJZCAmJiAoXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8PlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8ZHQ+QnVpbGQgSWQ8L2R0PlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8ZGQ+e2xvY2tEb3duQnJvd3NlckluZm8uYnVpbGRJZH08L2RkPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC8+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0KX1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR7cGxhdGZvcm0gJiYgKFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PD5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGR0PlBsYXRmb3JtPC9kdD5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGRkPntwbGF0Zm9ybX08L2RkPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8ZHQ+QnVpbGQgRGF0ZTwvZHQ+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxkZD57YnVpbGREYXRlfTwvZGQ+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8Lz5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQpfVxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8Lz5cblx0XHRcdFx0XHRcdFx0XHRcdCl9XG5cdFx0XHRcdFx0XHRcdFx0PGR0PlxuXHRcdFx0XHRcdFx0XHRcdFx0e2lzQXBpTG9ja0Rvd25Ccm93c2VyID8gKFxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8SWNvbkNoZWNrQ2lyY2xlIGNsYXNzTmFtZT1cImZpbGwtZ3JlZW4gZjRcIiAvPlxuXHRcdFx0XHRcdFx0XHRcdFx0KSA6IChcblx0XHRcdFx0XHRcdFx0XHRcdFx0PEljb25DYW5jZWwgY2xhc3NOYW1lPVwiZmlsbC1yZWQgZjRcIiAvPlxuXHRcdFx0XHRcdFx0XHRcdFx0KX17JyAnfVxuXHRcdFx0XHRcdFx0XHRcdFx0U2VydmVyXG5cdFx0XHRcdFx0XHRcdFx0PC9kdD5cblx0XHRcdFx0XHRcdFx0XHQ8ZGQ+e2lzQXBpTG9ja0Rvd25Ccm93c2VyID8gPD5Db25maXJtZWQ8Lz4gOiA8Pk5vdCBEZXRlY3RlZDwvPn08L2RkPlxuXHRcdFx0XHRcdFx0XHQ8L2RsPlxuXHRcdFx0XHRcdFx0XHR7bG9ja0Rvd25Ccm93c2VySW5mby5pc0NsaWVudExvY2tEb3duQnJvd3NlciAmJiA8TG9ja0Rvd25Ccm93c2VyRXhpdEJ1dHRvbiAvPn1cblx0XHRcdFx0XHRcdDwvQ29sPlxuXHRcdFx0XHRcdDwvUm93PlxuXHRcdFx0XHQ8L0NvbnRhaW5lcj5cblx0XHRcdCl9XG5cdFx0PC8+XG5cdClcbn1cblxuLy8gcmVxdWlyZWQgZm9yIHVzZSBpbiBSb3V0ZXMgLyBBc3luY0NvbXBvbmVudFxuZXhwb3J0IGRlZmF1bHQgTG9ja0Rvd25Ccm93c2VyQ2hlY2tcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxJQUFBQSxPQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxZQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxNQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxlQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxZQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxLQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxnQkFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sY0FBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsWUFBQSxHQUFBUixPQUFBO0FBRUEsSUFBQVMsTUFBQSxHQUFBVCxPQUFBO0FBQ0EsSUFBQVUsZ0JBQUEsR0FBQVYsT0FBQTtBQUNBLElBQUFXLFFBQUEsR0FBQVgsT0FBQTtBQUNBLElBQUFZLFdBQUEsR0FBQVosT0FBQTtBQUF3RCxJQUFBYSxXQUFBLEdBQUFiLE9BQUE7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
201
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfQ2FuY2VsIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfQ2hlY2tDaXJjbGUiLCJfcmVhY3QiLCJfcmVhY3RCb290c3RyYXAiLCJfcmVhY3RIZWxtZXQiLCJfdXVpZCIsIl9vcGVyYXRpbmdTeXN0ZW0iLCJfYWN0aW9uQ3JlYXRvciIsIl9ub1N0b3JlU2FnYSIsIl9mZXRjaCIsIl9sb2NrRG93bkJyb3dzZXIiLCJfTG9hZGluZyIsIl9FeGl0QnV0dG9uIiwiX2pzeFJ1bnRpbWUiLCJMb2NrRG93bkJyb3dzZXJDaGVjayIsIiQiLCJfcmVhY3RDb21waWxlclJ1bnRpbWUiLCJjIiwidDAiLCJTeW1ib2wiLCJmb3IiLCJnZXRMb2NrRG93bkJyb3dzZXJJbmZvIiwibG9ja0Rvd25Ccm93c2VySW5mbyIsInBsYXRmb3JtIiwiYnVpbGREYXRlV2luZG93cyIsIk9QRVJBVElOR19TWVNURU0iLCJXSU5ET1dTIiwiYnVpbGREYXRlTWFjIiwiTUFDIiwiYnVpbGREYXRlSXBhZCIsIklQQUQiLCJ1bmRlZmluZWQiLCJidWlsZERhdGUiLCJoYXNMb2FkZWQiLCJzZXRIYXNMb2FkZWQiLCJ1c2VTdGF0ZSIsInQxIiwidXVpZHY0IiwiaG9va0lkIiwidGVzdERhdGEiLCJzZXRUZXN0RGF0YSIsInQyIiwidDMiLCJub1N0b3JlSG9va3MiLCJyZWdpc3Rlck5vU3RvcmVBY3Rpb25Ib29rIiwiZGF0YSIsInVucmVnaXN0ZXJOb1N0b3JlQWN0aW9uSG9vayIsImlzRmV0Y2hDYW5jZWxsZWREYXRhIiwiZGlzcGF0Y2hNb2RlbEZldGNoUmVxdWVzdCIsIm1vZGVsTmFtZSIsImd1aWQiLCJub1N0b3JlIiwidXNlRWZmZWN0IiwidDQiLCJpc0ZldGNoRXJyb3JEYXRhIiwiaXNMb2NrRG93bkJyb3dzZXIiLCJpc0FwaUxvY2tEb3duQnJvd3NlciIsImlzTG9ja0Rvd25Ccm93c2VyUmVhZHlUb1VzZSIsImlzQ2xpZW50TG9ja0Rvd25Ccm93c2VyIiwidDUiLCJqc3giLCJIZWxtZXQiLCJ0aXRsZSIsInQ2IiwiTG9hZGluZyIsInQ3IiwiQ29udGFpbmVyIiwiY2xhc3NOYW1lIiwiY2hpbGRyZW4iLCJSb3ciLCJqc3hzIiwiQ29sIiwieHMiLCJGcmFnbWVudCIsImRlZmF1bHQiLCJocmVmIiwiYnVpbGRJZCIsIkxvY2tEb3duQnJvd3NlckV4aXRCdXR0b24iLCJ0OCIsImV4cG9ydHMiLCJfZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0xvY2tEb3duQnJvd3Nlci9DaGVjay50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEljb25DYW5jZWwgZnJvbSAnQG1hdGVyaWFsLXVpL2ljb25zL0NhbmNlbCdcbmltcG9ydCBJY29uQ2hlY2tDaXJjbGUgZnJvbSAnQG1hdGVyaWFsLXVpL2ljb25zL0NoZWNrQ2lyY2xlJ1xuaW1wb3J0IHsgRnVuY3Rpb25Db21wb25lbnQsIHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IENvbCwgQ29udGFpbmVyLCBSb3cgfSBmcm9tICdyZWFjdC1ib290c3RyYXAnXG5pbXBvcnQgeyBIZWxtZXQgfSBmcm9tICdyZWFjdC1oZWxtZXQnXG5pbXBvcnQgeyB2NCBhcyB1dWlkdjQgfSBmcm9tICd1dWlkJ1xuaW1wb3J0IHsgT1BFUkFUSU5HX1NZU1RFTSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9vcGVyYXRpbmdTeXN0ZW0nXG5pbXBvcnQgeyBkaXNwYXRjaE1vZGVsRmV0Y2hSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vcmVkdXgvYWN0aW9uQ3JlYXRvcidcbmltcG9ydCB7IG5vU3RvcmVIb29rcyB9IGZyb20gJy4uLy4uL3JlZHV4L3NhZ2FzL25vU3RvcmVTYWdhJ1xuaW1wb3J0IHsgRmV0Y2hDYW5jZWxsZWREYXRhIH0gZnJvbSAnLi4vLi4vdHlwZXMvbmV0L0ZldGNoQ2FuY2VsbGVkRGF0YSdcbmltcG9ydCB7IEZldGNoRXJyb3JEYXRhIH0gZnJvbSAnLi4vLi4vdHlwZXMvbmV0L0ZldGNoRXJyb3JEYXRhJ1xuaW1wb3J0IHsgaXNGZXRjaENhbmNlbGxlZERhdGEsIGlzRmV0Y2hFcnJvckRhdGEgfSBmcm9tICcuLi8uLi91dGlscy9mZXRjaCdcbmltcG9ydCB7IGdldExvY2tEb3duQnJvd3NlckluZm8gfSBmcm9tICcuLi8uLi91dGlscy9sb2NrRG93bkJyb3dzZXInXG5pbXBvcnQgeyBMb2FkaW5nIH0gZnJvbSAnLi4vTG9hZGluZydcbmltcG9ydCB7IExvY2tEb3duQnJvd3NlckV4aXRCdXR0b24gfSBmcm9tICcuL0V4aXRCdXR0b24nXG5cbmludGVyZmFjZSBMb2NrRG93bkJyb3dzZXJUZXN0RGF0YSB7XG5cdGlzTG9ja0Rvd25Ccm93c2VyOiBib29sZWFuXG59XG5cbmV4cG9ydCBjb25zdCBMb2NrRG93bkJyb3dzZXJDaGVjazogRnVuY3Rpb25Db21wb25lbnQgPSAoKSA9PiB7XG5cdGNvbnN0IGxvY2tEb3duQnJvd3NlckluZm8gPSBnZXRMb2NrRG93bkJyb3dzZXJJbmZvKClcblx0Y29uc3QgcGxhdGZvcm0gPSBsb2NrRG93bkJyb3dzZXJJbmZvLmJ1aWxkRGF0ZVdpbmRvd3Ncblx0XHQ/IE9QRVJBVElOR19TWVNURU0uV0lORE9XU1xuXHRcdDogbG9ja0Rvd25Ccm93c2VySW5mby5idWlsZERhdGVNYWNcblx0XHRcdD8gT1BFUkFUSU5HX1NZU1RFTS5NQUNcblx0XHRcdDogbG9ja0Rvd25Ccm93c2VySW5mby5idWlsZERhdGVJcGFkXG5cdFx0XHRcdD8gT1BFUkFUSU5HX1NZU1RFTS5JUEFEXG5cdFx0XHRcdDogdW5kZWZpbmVkXG5cdGNvbnN0IGJ1aWxkRGF0ZSA9XG5cdFx0bG9ja0Rvd25Ccm93c2VySW5mby5idWlsZERhdGVXaW5kb3dzIHx8IGxvY2tEb3duQnJvd3NlckluZm8uYnVpbGREYXRlTWFjIHx8IGxvY2tEb3duQnJvd3NlckluZm8uYnVpbGREYXRlSXBhZFxuXG5cdGNvbnN0IFtoYXNMb2FkZWQsIHNldEhhc0xvYWRlZF0gPSB1c2VTdGF0ZShmYWxzZSlcblx0Y29uc3QgW2hvb2tJZF0gPSB1c2VTdGF0ZSh1dWlkdjQoKSlcblx0Y29uc3QgW3Rlc3REYXRhLCBzZXRUZXN0RGF0YV0gPSB1c2VTdGF0ZTxMb2NrRG93bkJyb3dzZXJUZXN0RGF0YSB8IEZldGNoRXJyb3JEYXRhIHwgbnVsbD4oKVxuXG5cdHVzZUVmZmVjdCgoKSA9PiB7XG5cdFx0aWYgKCFoYXNMb2FkZWQpIHtcblx0XHRcdHNldEhhc0xvYWRlZCh0cnVlKVxuXHRcdFx0bm9TdG9yZUhvb2tzLnJlZ2lzdGVyTm9TdG9yZUFjdGlvbkhvb2soXG5cdFx0XHRcdGhvb2tJZCxcblx0XHRcdFx0KGRhdGE6IExvY2tEb3duQnJvd3NlclRlc3REYXRhIHwgRmV0Y2hDYW5jZWxsZWREYXRhIHwgRmV0Y2hFcnJvckRhdGEgfCBudWxsKSA9PiB7XG5cdFx0XHRcdFx0bm9TdG9yZUhvb2tzLnVucmVnaXN0ZXJOb1N0b3JlQWN0aW9uSG9vayhob29rSWQpXG5cdFx0XHRcdFx0aWYgKGlzRmV0Y2hDYW5jZWxsZWREYXRhKGRhdGEpKSByZXR1cm5cblx0XHRcdFx0XHRzZXRUZXN0RGF0YShkYXRhKVxuXHRcdFx0XHR9XG5cdFx0XHQpXG5cdFx0XHRkaXNwYXRjaE1vZGVsRmV0Y2hSZXF1ZXN0KHtcblx0XHRcdFx0bW9kZWxOYW1lOiAnbG9ja0Rvd25Ccm93c2VyVGVzdCcsXG5cdFx0XHRcdGd1aWQ6IGhvb2tJZCxcblx0XHRcdFx0bm9TdG9yZTogdHJ1ZVxuXHRcdFx0fSlcblx0XHR9XG5cdH0sIFtoYXNMb2FkZWQsIGhvb2tJZF0pXG5cblx0Y29uc3QgaXNBcGlMb2NrRG93bkJyb3dzZXIgPSAhIXRlc3REYXRhICYmICFpc0ZldGNoRXJyb3JEYXRhKHRlc3REYXRhKSAmJiB0ZXN0RGF0YS5pc0xvY2tEb3duQnJvd3NlclxuXHRjb25zdCBpc0xvY2tEb3duQnJvd3NlclJlYWR5VG9Vc2UgPSBsb2NrRG93bkJyb3dzZXJJbmZvLmlzQ2xpZW50TG9ja0Rvd25Ccm93c2VyICYmIGlzQXBpTG9ja0Rvd25Ccm93c2VyXG5cblx0cmV0dXJuIChcblx0XHQ8PlxuXHRcdFx0PEhlbG1ldCB0aXRsZT1cIkxvY2tEb3duIEJyb3dzZXIgQ2hlY2tcIiAvPlxuXHRcdFx0e3Rlc3REYXRhID09PSB1bmRlZmluZWQgJiYgPExvYWRpbmcgLz59XG5cdFx0XHR7dGVzdERhdGEgIT09IHVuZGVmaW5lZCAmJiAoXG5cdFx0XHRcdDxDb250YWluZXIgY2xhc3NOYW1lPVwibWFpbi1jb250ZW50XCI+XG5cdFx0XHRcdFx0PFJvdz5cblx0XHRcdFx0XHRcdDxDb2wgeHM9ezEyfT5cblx0XHRcdFx0XHRcdFx0PGgxPlxuXHRcdFx0XHRcdFx0XHRcdHtpc0xvY2tEb3duQnJvd3NlclJlYWR5VG9Vc2UgPyAoXG5cdFx0XHRcdFx0XHRcdFx0XHQ8PlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8SWNvbkNoZWNrQ2lyY2xlIGNsYXNzTmFtZT1cImZpbGwtZ3JlZW4gZjEgbXIyXCIgLz4gU3VjY2VzcyEgWW91IGFyZSB1c2luZ1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRMb2NrRG93biBCcm93c2VyLlxuXHRcdFx0XHRcdFx0XHRcdFx0PC8+XG5cdFx0XHRcdFx0XHRcdFx0KSA6IChcblx0XHRcdFx0XHRcdFx0XHRcdDw+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxJY29uQ2FuY2VsIGNsYXNzTmFtZT1cImZpbGwtcmVkIGYxIG1yMlwiIC8+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdE9vcHMhIFdlIGNvdWxkIG5vdCBjb25maXJtIExvY2tEb3duIEJyb3dzZXIgaXMgYmVpbmcgdXNlZC5cblx0XHRcdFx0XHRcdFx0XHRcdDwvPlxuXHRcdFx0XHRcdFx0XHRcdCl9XG5cdFx0XHRcdFx0XHRcdDwvaDE+XG5cdFx0XHRcdFx0XHRcdHtpc0xvY2tEb3duQnJvd3NlclJlYWR5VG9Vc2UgPyAoXG5cdFx0XHRcdFx0XHRcdFx0PHA+XG5cdFx0XHRcdFx0XHRcdFx0XHRZb3XigJlyZSBhbGwgc2V0IHRvIHVzZSBMb2NrRG93biBCcm93c2VyIGZvciB5b3VyIGFzc2Vzc21lbnRzLiBZb3UgY2FuIGNsb3NlIExvY2tEb3duXG5cdFx0XHRcdFx0XHRcdFx0XHRCcm93c2VyIHdoZW4geW914oCZcmUgcmVhZHkuXG5cdFx0XHRcdFx0XHRcdFx0PC9wPlxuXHRcdFx0XHRcdFx0XHQpIDogKFxuXHRcdFx0XHRcdFx0XHRcdDxwPlxuXHRcdFx0XHRcdFx0XHRcdFx0VGhlcmUgd2FzIGFuIGlzc3VlIGRldGVjdGluZyBMb2NrRG93biBCcm93c2VyLiBQbGVhc2V7JyAnfVxuXHRcdFx0XHRcdFx0XHRcdFx0e2xvY2tEb3duQnJvd3NlckluZm8uaXNDbGllbnRMb2NrRG93bkJyb3dzZXIgJiYgKFxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8PmNsb3NlIHRoZSBicm93c2VyIGFuZCB0cnkgYWdhaW4sIG9yIDwvPlxuXHRcdFx0XHRcdFx0XHRcdFx0KX1cblx0XHRcdFx0XHRcdFx0XHRcdGNvbnRhY3QgdXMgYXQgPGEgaHJlZj1cIm1haWx0bzp0bHRAcHVyZHVlLmVkdVwiPnRsdEBwdXJkdWUuZWR1PC9hPiBpZiB5b3UgY29udGludWUgdG9cblx0XHRcdFx0XHRcdFx0XHRcdGhhdmUgaXNzdWVzLlxuXHRcdFx0XHRcdFx0XHRcdDwvcD5cblx0XHRcdFx0XHRcdFx0KX1cblx0XHRcdFx0XHRcdFx0PGRsIGNsYXNzTmFtZT1cImY2XCI+XG5cdFx0XHRcdFx0XHRcdFx0PGR0PlxuXHRcdFx0XHRcdFx0XHRcdFx0e2xvY2tEb3duQnJvd3NlckluZm8uaXNDbGllbnRMb2NrRG93bkJyb3dzZXIgPyAoXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxJY29uQ2hlY2tDaXJjbGUgY2xhc3NOYW1lPVwiZmlsbC1ncmVlbiBmNFwiIC8+XG5cdFx0XHRcdFx0XHRcdFx0XHQpIDogKFxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8SWNvbkNhbmNlbCBjbGFzc05hbWU9XCJmaWxsLXJlZCBmNFwiIC8+XG5cdFx0XHRcdFx0XHRcdFx0XHQpfXsnICd9XG5cdFx0XHRcdFx0XHRcdFx0XHRDbGllbnRcblx0XHRcdFx0XHRcdFx0XHQ8L2R0PlxuXHRcdFx0XHRcdFx0XHRcdDxkZD5cblx0XHRcdFx0XHRcdFx0XHRcdHtsb2NrRG93bkJyb3dzZXJJbmZvLmlzQ2xpZW50TG9ja0Rvd25Ccm93c2VyID8gPD5Db25maXJtZWQ8Lz4gOiA8Pk5vdCBEZXRlY3RlZDwvPn1cblx0XHRcdFx0XHRcdFx0XHQ8L2RkPlxuXHRcdFx0XHRcdFx0XHRcdHtsb2NrRG93bkJyb3dzZXJJbmZvLmlzQ2xpZW50TG9ja0Rvd25Ccm93c2VyICYmXG5cdFx0XHRcdFx0XHRcdFx0XHQobG9ja0Rvd25Ccm93c2VySW5mby5idWlsZElkIHx8IHBsYXRmb3JtKSAmJiAoXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDw+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0e2xvY2tEb3duQnJvd3NlckluZm8uYnVpbGRJZCAmJiAoXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8PlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8ZHQ+QnVpbGQgSWQ8L2R0PlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8ZGQ+e2xvY2tEb3duQnJvd3NlckluZm8uYnVpbGRJZH08L2RkPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC8+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0KX1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR7cGxhdGZvcm0gJiYgKFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PD5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGR0PlBsYXRmb3JtPC9kdD5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGRkPntwbGF0Zm9ybX08L2RkPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8ZHQ+QnVpbGQgRGF0ZTwvZHQ+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxkZD57YnVpbGREYXRlfTwvZGQ+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8Lz5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQpfVxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8Lz5cblx0XHRcdFx0XHRcdFx0XHRcdCl9XG5cdFx0XHRcdFx0XHRcdFx0PGR0PlxuXHRcdFx0XHRcdFx0XHRcdFx0e2lzQXBpTG9ja0Rvd25Ccm93c2VyID8gKFxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8SWNvbkNoZWNrQ2lyY2xlIGNsYXNzTmFtZT1cImZpbGwtZ3JlZW4gZjRcIiAvPlxuXHRcdFx0XHRcdFx0XHRcdFx0KSA6IChcblx0XHRcdFx0XHRcdFx0XHRcdFx0PEljb25DYW5jZWwgY2xhc3NOYW1lPVwiZmlsbC1yZWQgZjRcIiAvPlxuXHRcdFx0XHRcdFx0XHRcdFx0KX17JyAnfVxuXHRcdFx0XHRcdFx0XHRcdFx0U2VydmVyXG5cdFx0XHRcdFx0XHRcdFx0PC9kdD5cblx0XHRcdFx0XHRcdFx0XHQ8ZGQ+e2lzQXBpTG9ja0Rvd25Ccm93c2VyID8gPD5Db25maXJtZWQ8Lz4gOiA8Pk5vdCBEZXRlY3RlZDwvPn08L2RkPlxuXHRcdFx0XHRcdFx0XHQ8L2RsPlxuXHRcdFx0XHRcdFx0XHR7bG9ja0Rvd25Ccm93c2VySW5mby5pc0NsaWVudExvY2tEb3duQnJvd3NlciAmJiA8TG9ja0Rvd25Ccm93c2VyRXhpdEJ1dHRvbiAvPn1cblx0XHRcdFx0XHRcdDwvQ29sPlxuXHRcdFx0XHRcdDwvUm93PlxuXHRcdFx0XHQ8L0NvbnRhaW5lcj5cblx0XHRcdCl9XG5cdFx0PC8+XG5cdClcbn1cblxuLy8gcmVxdWlyZWQgZm9yIHVzZSBpbiBSb3V0ZXMgLyBBc3luY0NvbXBvbmVudFxuZXhwb3J0IGRlZmF1bHQgTG9ja0Rvd25Ccm93c2VyQ2hlY2tcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxJQUFBQSxPQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxZQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxNQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxlQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxZQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxLQUFBLEdBQUFMLE9B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
@@ -1,5 +1,6 @@
1
1
  import React, { Component } from 'react';
2
2
  import { BaseReduxState, ExternalProvider, FetchErrorData, Model, ModelCollection, RoleDescriptions, UserRole, UserWithRoles } from '../../types';
3
+ import { FetchCancelledData } from '../../types/net/FetchCancelledData';
3
4
  import { CollectionComponentWrappedProps } from '../HOC/CollectionComponent';
4
5
  export interface UserRolesReduxProps {
5
6
  /** Is the current user allowed to add, update, and delete user roles? */
@@ -96,7 +97,7 @@ export declare class UserRoles extends Component<UserRolesProps, UserRolesState>
96
97
  textForRole: (role: string, lowercase?: boolean) => string;
97
98
  singularArticleForRole: (role: string) => string;
98
99
  addUserRoles: (identifiers: string[], role: string) => void;
99
- didAdd: (data: AddBusinessModel | FetchErrorData | null) => void;
100
+ didAdd: (data: AddBusinessModel | FetchCancelledData | FetchErrorData | null) => void;
100
101
  updateUserRole: (userRoleToUpdate: UserRole, newRole: string) => void;
101
102
  didUpdate: (isSuccess: boolean) => void;
102
103
  alertRemoveUserRole: (userRoleToRemove: UserRole) => void;
@@ -134,6 +134,9 @@ class UserRoles extends _react.Component {
134
134
  if (!roleForAdd || !identifiersToAdd || identifiersToAdd.length === 0) {
135
135
  throw new Error('didAdd was called in the incorrect state');
136
136
  }
137
+ if ((0, _fetch.isFetchCancelledData)(data)) {
138
+ return;
139
+ }
137
140
  if (!data || (0, _fetch.isFetchErrorData)(data)) {
138
141
  const failMessage = `The following identifiers were not added${entityName ? ` to your ${entityName}` : ''}:\r\n${identifiersToAdd.join('\r\n')}`;
139
142
  this.setState({
@@ -543,4 +546,4 @@ const mapStateToProps = (state, ownProps) => {
543
546
  };
544
547
  exports.mapStateToProps = mapStateToProps;
545
548
  var _default = exports.default = (0, _reactRedux.connect)(mapStateToProps)(UserRoles);
546
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwicmVxdWlyZSIsIl9yZWFjdCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX3JlYWN0Qm9vdHN0cmFwIiwiX3JlYWN0UmVkdXgiLCJfdXVpZCIsIl9BbGVydERpYWxvZyIsIl9Mb2FkaW5nIiwiX0FkZCIsIl9UYWJsZSIsIl9jb25zdGFudHMiLCJfYmFzZVJvbGUiLCJfbW9kZWxTdGF0dXMiLCJfYWN0aW9uQ3JlYXRvciIsIl9hY3Rpb25zIiwiX25vU3RvcmVTYWdhIiwiX2Jhc2VBY3Rpdml0eSIsIl9iYXNlUm9sZTIiLCJfZG9tYWluSWRlbnRpZmllciIsIl9lbnRpdHlVc2VyUm9sZSIsIl9mZXRjaCIsIl9zb3J0IiwiX3VzZXIiLCJfdXNlclJvbGUiLCJfQWxlcnRXaXRoSWNvbiIsIl9Db250ZXh0IiwiX2pzeFJ1bnRpbWUiLCJlIiwidCIsIldlYWtNYXAiLCJyIiwibiIsIl9fZXNNb2R1bGUiLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJkZWZhdWx0IiwiaGFzIiwiZ2V0Iiwic2V0IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJVc2VyUm9sZXMiLCJDb21wb25lbnQiLCJjb25zdHJ1Y3RvciIsIl90aGlzIiwiYXJndW1lbnRzIiwidGhpcyIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJzb3J0ZWRVc2VycyIsImFkZFVzZXJzSG9va0lkIiwidXVpZHY0IiwiaXNBZGRpbmciLCJpc1VwZGF0aW5nIiwiaXNSZW1vdmluZyIsInNob3VsZFJlc2V0QWRkRm9ybSIsInNob3VsZFNob3dSZW1vdmVEaWFsb2ciLCJwcm9wcyIsIm1vZGVsQXJyYXkiLCJ1c2VyUm9sZXMiLCJmaWx0ZXJVc2VycyIsInVzZXJzV2l0aFJvbGVzIiwidmFsdWVzIiwicmVkdWNlIiwicmVzdWx0IiwidXNlclJvbGUiLCJ1c2VySWQiLCJnZXRVc2VySWQiLCJ1c2VyV2l0aFJvbGVzIiwiY29udmVydFRvVXNlcldpdGhSb2xlcyIsInJvbGVzIiwicHVzaCIsImZpbHRlcmVkVXNlcnMiLCJzb3J0Iiwic29ydEJ5TmFtZXMiLCJzZXRTdGF0ZSIsInJvbGUiLCJsb3dlcmNhc2UiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJsb3dlcmNhc2VUZXh0Rm9yUm9sZSIsInJvbGVTdHJpbmciLCJ0ZXh0Rm9yUm9sZSIsInRleHRGb3JCYXNlUm9sZSIsInRvTG93ZXJDYXNlIiwic2luZ3VsYXJBcnRpY2xlRm9yUm9sZSIsInNpbmd1bGFyQXJ0aWNsZUZvckJhc2VSb2xlIiwiaWRlbnRpZmllcnMiLCJlbnRpdHkiLCJpZGVudGlmaWVyc1RvQWRkIiwicm9sZUZvckFkZCIsInN1Y2Nlc3NNZXNzYWdlIiwiZmFpbE1lc3NhZ2UiLCJleGlzdGluZ01lc3NhZ2UiLCJibG9ja2VkTWVzc2FnZSIsInN0YXRlIiwibm9TdG9yZUhvb2tzIiwicmVnaXN0ZXJOb1N0b3JlQWN0aW9uSG9vayIsImRhdGEiLCJ1bnJlZ2lzdGVyTm9TdG9yZUFjdGlvbkhvb2siLCJkaWRBZGQiLCJyb290TW9kZWxOYW1lIiwiZ2V0Um9vdE1vZGVsTmFtZSIsImRpc3BhdGNoTW9kZWxGZXRjaFJlcXVlc3QiLCJtb2RlbE5hbWUiLCJwYXRoUGFyYW1zIiwiaWQiLCJib2R5IiwiZW50aXR5SWQiLCJyb2xlTmFtZSIsIm5vU3RvcmUiLCJndWlkIiwiZW50aXR5TmFtZSIsIm9uQWRkIiwibW9kZWwiLCJFcnJvciIsImlzRmV0Y2hFcnJvckRhdGEiLCJqb2luIiwiYWRkZWRVc2VyUm9sZXMiLCJleGlzdGluZ1VzZXJSb2xlcyIsImJsb2NrZWRVc2VyUm9sZXMiLCJpbnZhbGlkSWRlbnRpZmllcnMiLCJhbGxvd2VkRG9tYWlucyIsImludmFsaWREb21haW5JZGVudGlmaWVycyIsInNpbmd1bGFyQXJ0aWNsZVN0cmluZyIsImFkZGVkTmFtZXMiLCJtYXAiLCJhdSIsImRpc3BsYXlOYW1lIiwidWlkIiwiZXhpc3RpbmdOYW1lcyIsImV1IiwiaGFzTXVsdGlwbGVFeGlzdGluZyIsImJsb2NrZWROYW1lcyIsImhhc011bHRpcGxlQmxvY2tlZCIsImdldERvbWFpbklkZW50aWZpZXJUeXBlUGx1cmFsU3RyaW5nIiwicmVwbGFjZSIsInVwZGF0ZWRNb2RlbCIsImNsb25lRGVlcCIsImZvckVhY2giLCJtb2RlbFBhdGgiLCJwcmVwYXJlRmV0Y2giLCJ0eXBlIiwiTU9ERUxfRkVUQ0hfUkVRVUVTVF9BQ1RJT05fVFlQRSIsIkZFVENIX1JFUVVFU1QiLCJnZXRFbmRwb2ludE1hcHBpbmdzIiwiZGlzcGF0Y2hBY3Rpb24iLCJNT0RFTF9GRVRDSF9SRVNVTFRfQUNUSU9OX1RZUEUiLCJGRVRDSF9SRVNVTFRfUkVDRUlWRUQiLCJ1c2VyUm9sZVRvVXBkYXRlIiwibmV3Um9sZSIsInJvbGVGb3JVcGRhdGUiLCJ1cGRhdGUiLCJxdWVyeVBhcmFtcyIsImlzU3VjY2VzcyIsIm9uVXBkYXRlIiwibmFtZSIsInVzZXJSb2xlVG9SZW1vdmUiLCJyb2xlRm9yUmVtb3ZlIiwid2FybmluZyIsImV4dGVybmFsUHJvdmlkZXJzIiwiZ3JvdXAiLCJkZWZhdWx0V2FybmluZyIsImpzeHMiLCJjbGFzc05hbWUiLCJjaGlsZHJlbiIsImV4dGVybmFsR3JvdXBzVG9SZW1vdmUiLCJleHRlcm5hbEdyb3VwcyIsImZpbHRlciIsImVnIiwiQkFTRV9ST0xFIiwiR1JPVVBfT1dORVIiLCJleHRlcm5hbEdyb3Vwc1RvUmVtb3ZlV2l0aFJvc3RlclN5bmMiLCJleHRlcm5hbFByb3ZpZGVySWQiLCJyb3N0ZXJTeW5jRW5hYmxlZCIsImpzeCIsImRlc2NyaXB0aW9uIiwic2hvdWxkUmVtb3ZlIiwiZGVsZXRlIiwib25SZW1vdmUiLCJjb21wb25lbnREaWRNb3VudCIsInNldFN0YXRlRnJvbVByb3BzIiwiY29tcG9uZW50RGlkVXBkYXRlIiwicHJldlByb3BzIiwicHJldk1vZGVsQXJyYXkiLCJtb2RlbFN0YXR1cyIsInByZXZNb2RlbFN0YXR1cyIsImlzRXF1YWwiLCJNT0RFTF9TVEFUVVMiLCJVTklOSVRJQUxJWkVEIiwiTE9BRElORyIsIkVSUk9SIiwiVVBEQVRJTkciLCJkaWRVcGRhdGUiLCJSRUFEWSIsIkRFTEVUSU5HIiwiZGlkUmVtb3ZlIiwicmVuZGVyIiwiY2FuTW9kaWZ5IiwicmVhZE9ubHkiLCJjYW5EZWxldGVTZWxmIiwiYWxsb3dNdWx0aXBsZVJvbGVzIiwiaXNBZGREaXNhYmxlZCIsImlzVXBkYXRlRGlzYWJsZWQiLCJpc0RlbGV0ZURpc2FibGVkIiwiZGVmYXVsdFJvbGUiLCJyZXF1aXJlZFJvbGUiLCJyb2xlRGVzY3JpcHRpb25zIiwiYWRkUm9sZUV4Y2x1ZGVMaXN0IiwicmVuZGVyVGFibGVEZXNjcmlwdGlvbiIsInJlbmRlckFkZERlc2NyaXB0aW9uIiwiYWRkYWJsZVJvbGVEZXNjcmlwdGlvbnMiLCJwaWNrQnkiLCJfIiwia2V5IiwiaW5jbHVkZXMiLCJrZXlzIiwic2hvdWxkUmVuZGVyQXNNdXRhYmxlIiwiRnJhZ21lbnQiLCJBbGVydFdpdGhJY29uIiwidmFyaWFudCIsImRpc21pc3NpYmxlIiwib25DbG9zZSIsIlVzZXJSb2xlc0FkZCIsImRpc2FibGVkIiwiaXNBZGRpbmdVc2Vyc1RvUm9sZSIsInNob3VsZFJlc2V0IiwiYWRkVXNlclJvbGVzIiwiUm93IiwiQ29sIiwieHMiLCJMb2FkaW5nIiwiVXNlclJvbGVzQ29udGV4dCIsIlByb3ZpZGVyIiwidmFsdWUiLCJ1cGRhdGVVc2VyUm9sZSIsInJlbW92ZVVzZXJSb2xlIiwiYWxlcnRSZW1vdmVVc2VyUm9sZSIsIlVzZXJSb2xlc1RhYmxlIiwidXNlcnMiLCJBbGVydERpYWxvZyIsImlzT3BlbiIsInRpdGxlIiwicmVtb3ZlVXNlclJvbGVUaXRsZSIsInJlbmRlclJlbW92ZVVzZXJSb2xlRGVzY3JpcHRpb24iLCJvbkRlc3Ryb3kiLCJkZXN0cm95VGV4dCIsIm9uQ2FuY2VsIiwiY2FuY2VsVGV4dCIsImV4cG9ydHMiLCJtYXBTdGF0ZVRvUHJvcHMiLCJvd25Qcm9wcyIsImNhbk1vZGlmeUdsb2JhbGx5IiwiY2FuUGVyZm9ybUFjdGl2aXR5R2xvYmFsbHkiLCJtb2RpZnlVc2VyUm9sZUFjdGl2aXR5TmFtZSIsImRlZmF1bHRPcHRpb25zIiwiY2FuUGVyZm9ybUFjdGl2aXR5T25FbnRpdHkiLCJkZWxldGVPd25Vc2VyUm9sZUFjdGl2aXR5TmFtZSIsIl9kZWZhdWx0IiwiY29ubmVjdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1VzZXJSb2xlcy9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY2xvbmVEZWVwLCBEaWN0aW9uYXJ5LCBpc0VxdWFsLCBwaWNrQnkgfSBmcm9tICdsb2Rhc2gnXG5pbXBvcnQgUmVhY3QsIHsgQ29tcG9uZW50IH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBDb2wsIFJvdyB9IGZyb20gJ3JlYWN0LWJvb3RzdHJhcCdcbmltcG9ydCB7IGNvbm5lY3QgfSBmcm9tICdyZWFjdC1yZWR1eCdcbmltcG9ydCB7IHY0IGFzIHV1aWR2NCB9IGZyb20gJ3V1aWQnXG5pbXBvcnQgeyBBbGVydERpYWxvZyB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvQWxlcnREaWFsb2cnXG5pbXBvcnQgeyBMb2FkaW5nIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9Mb2FkaW5nJ1xuaW1wb3J0IHsgVXNlclJvbGVzQWRkIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9Vc2VyUm9sZXMvQWRkJ1xuaW1wb3J0IHsgVXNlclJvbGVzVGFibGUgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL1VzZXJSb2xlcy9UYWJsZSdcbmltcG9ydCB7IGdldEVuZHBvaW50TWFwcGluZ3MgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnXG5pbXBvcnQgeyBCQVNFX1JPTEUgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvYmFzZVJvbGUnXG5pbXBvcnQgeyBNT0RFTF9TVEFUVVMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvbW9kZWxTdGF0dXMnXG5pbXBvcnQgeyBkaXNwYXRjaEFjdGlvbiwgZGlzcGF0Y2hNb2RlbEZldGNoUmVxdWVzdCB9IGZyb20gJy4uLy4uL3JlZHV4L2FjdGlvbkNyZWF0b3InXG5pbXBvcnQge1xuXHRNT0RFTF9GRVRDSF9SRVFVRVNUX0FDVElPTl9UWVBFLFxuXHRNT0RFTF9GRVRDSF9SRVNVTFRfQUNUSU9OX1RZUEUsXG5cdE1vZGVsRmV0Y2hSZXN1bHRBY3Rpb25cbn0gZnJvbSAnLi4vLi4vcmVkdXgvYWN0aW9ucydcbmltcG9ydCB7IG5vU3RvcmVIb29rcyB9IGZyb20gJy4uLy4uL3JlZHV4L3NhZ2FzL25vU3RvcmVTYWdhJ1xuaW1wb3J0IHtcblx0QmFzZVJlZHV4U3RhdGUsXG5cdEV4dGVybmFsUHJvdmlkZXIsXG5cdEZldGNoRXJyb3JEYXRhLFxuXHRHcm91cCxcblx0TW9kZWwsXG5cdE1vZGVsQ29sbGVjdGlvbixcblx0Um9sZURlc2NyaXB0aW9ucyxcblx0VXNlcixcblx0VXNlclJvbGUsXG5cdFVzZXJXaXRoUm9sZXNcbn0gZnJvbSAnLi4vLi4vdHlwZXMnXG5pbXBvcnQgeyBjYW5QZXJmb3JtQWN0aXZpdHlHbG9iYWxseSwgY2FuUGVyZm9ybUFjdGl2aXR5T25FbnRpdHksIGRlZmF1bHRPcHRpb25zIH0gZnJvbSAnLi4vLi4vdXRpbHMvYmFzZUFjdGl2aXR5J1xuaW1wb3J0IHsgc2luZ3VsYXJBcnRpY2xlRm9yQmFzZVJvbGUsIHRleHRGb3JCYXNlUm9sZSB9IGZyb20gJy4uLy4uL3V0aWxzL2Jhc2VSb2xlJ1xuaW1wb3J0IHsgZ2V0RG9tYWluSWRlbnRpZmllclR5cGVQbHVyYWxTdHJpbmcgfSBmcm9tICcuLi8uLi91dGlscy9kb21haW5JZGVudGlmaWVyJ1xuaW1wb3J0IHsgZ2V0Um9vdE1vZGVsTmFtZSB9IGZyb20gJy4uLy4uL3V0aWxzL2VudGl0eVVzZXJSb2xlJ1xuaW1wb3J0IHsgaXNGZXRjaEVycm9yRGF0YSwgcHJlcGFyZUZldGNoIH0gZnJvbSAnLi4vLi4vdXRpbHMvZmV0Y2gnXG5pbXBvcnQgeyBzb3J0QnlOYW1lcyB9IGZyb20gJy4uLy4uL3V0aWxzL3NvcnQnXG5pbXBvcnQgeyBkaXNwbGF5TmFtZSB9IGZyb20gJy4uLy4uL3V0aWxzL3VzZXInXG5pbXBvcnQgeyBjb252ZXJ0VG9Vc2VyV2l0aFJvbGVzLCBnZXRVc2VySWQgfSBmcm9tICcuLi8uLi91dGlscy91c2VyUm9sZSdcbmltcG9ydCB7IEFsZXJ0V2l0aEljb24gfSBmcm9tICcuLi9BbGVydFdpdGhJY29uJ1xuaW1wb3J0IHsgQ29sbGVjdGlvbkNvbXBvbmVudFdyYXBwZWRQcm9wcyB9IGZyb20gJy4uL0hPQy9Db2xsZWN0aW9uQ29tcG9uZW50J1xuaW1wb3J0IHsgVXNlclJvbGVzQ29udGV4dCB9IGZyb20gJy4vQ29udGV4dCdcblxuZXhwb3J0IGludGVyZmFjZSBVc2VyUm9sZXNSZWR1eFByb3BzIHtcblx0LyoqIElzIHRoZSBjdXJyZW50IHVzZXIgYWxsb3dlZCB0byBhZGQsIHVwZGF0ZSwgYW5kIGRlbGV0ZSB1c2VyIHJvbGVzPyAqL1xuXHRjYW5Nb2RpZnk/OiBib29sZWFuXG5cdC8qKiBJcyB0aGUgY3VycmVudCB1c2VyIGFsbG93ZWQgdG8gZGVsZXRlIHRoZWlyIG93biB1c2VyIHJvbGU/ICovXG5cdGNhbkRlbGV0ZVNlbGY/OiBib29sZWFuXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlclJvbGVzT3duUHJvcHMgZXh0ZW5kcyBDb2xsZWN0aW9uQ29tcG9uZW50V3JhcHBlZFByb3BzPFVzZXJSb2xlPiB7XG5cdC8qKiBTaG91bGQgdGhlIGNvbXBvbmVudCBwcmV2ZW50IG1vZGlmaWNhdGlvbnMsIGluZGVwZW5kZW50IG9mIHBlcm1pc3Npb25zPyAqL1xuXHRyZWFkT25seT86IGJvb2xlYW5cblx0LyoqIElzIHRoZSBjdXJyZW50IHVzZXIgYWxsb3dlZCB0byBkZWxldGUgdGhlaXIgb3duIHVzZXIgcm9sZT8gT3ZlcnJpZGVzIHRoZSB2YWx1ZSBmcm9tIHJlZHV4LiAqL1xuXHRjYW5EZWxldGVTZWxmPzogYm9vbGVhblxuXG5cdC8qKiBJZiBtdWx0aXBsZSByb2xlcyBhbGxvd2VkLCBlYWNoIHJvbGUgaXMgZGlzcGxheWVkIHBlciB1c2VyLCBvdGhlcndpc2UgYSBzZWxlY3QgZHJvcGRvd24gaXMgZGlzcGxheWVkLiAqL1xuXHRhbGxvd011bHRpcGxlUm9sZXM/OiBib29sZWFuXG5cdC8qKiBkaXNhYmxlIGFkZGluZyBuZXcgdXNlciByb2xlcyAqL1xuXHRpc0FkZERpc2FibGVkPzogYm9vbGVhblxuXHQvKiogZGlzYWJsZSBhbGwgdXNlciByb2xlIHNlbGVjdCBkcm9wZG93bnMsIGlmIGFueSAqL1xuXHRpc1VwZGF0ZURpc2FibGVkPzogYm9vbGVhblxuXHQvKiogZGlzYWJsZSBhbGwgdXNlciByb2xlIGRlbGV0ZSBidXR0b25zICovXG5cdGlzRGVsZXRlRGlzYWJsZWQ/OiBib29sZWFuXG5cblx0LyoqIFRoZSBhY3Rpdml0eSB0aGUgY3VycmVudCB1c2VyIG11c3QgaGF2ZSBpbiBvcmRlciB0byBhZGQsIHVwZGF0ZSwgb3IgZGVsZXRlIHVzZXIgcm9sZXMuICovXG5cdG1vZGlmeVVzZXJSb2xlQWN0aXZpdHlOYW1lOiBzdHJpbmdcblx0LyoqIChPcHRpb25hbCkgVGhlIGFjdGl2aXR5IHRoZSBjdXJyZW50IHVzZXIgbXVzdCBoYXZlIGluIG9yZGVyIHRvIGRlbGV0ZSB0aGVpciBvd24gdXNlciByb2xlcywgaWYgdGhleSBjYW5ub3QgbW9kaWZ5IGFsbC4gKi9cblx0ZGVsZXRlT3duVXNlclJvbGVBY3Rpdml0eU5hbWU/OiBzdHJpbmdcblx0LyoqIFRoZSByb2xlIHRoYXQgd2lsbCBiZSBzaG93biBmaXJzdCBpbiB0aGUgbGlzdCBvZiBhdmFpbGFibGUgcm9sZXMuICovXG5cdGRlZmF1bHRSb2xlOiBzdHJpbmdcblx0LyoqIChPcHRpb25hbCkgSWYgcHJvdmlkZWQsIHRoZSBsYXN0IHVzZXIgcm9sZSB3aXRoIHRoZSByZXF1aXJlZCByb2xlIHdpbGwgYmUgcHJldmVudGVkIGZyb20gYmVpbmcgcmVtb3ZlZC4gKi9cblx0cmVxdWlyZWRSb2xlPzogc3RyaW5nXG5cdC8qKiBBIGRpY3Rpb25hcnkgb2YgYWxsIHBvc3NpYmxlIHJvbGVzIGFuZCB0aGVpciBkZXNjcmlwdGlvbnMuICovXG5cdHJvbGVEZXNjcmlwdGlvbnM6IFJvbGVEZXNjcmlwdGlvbnNcblx0LyoqIChPcHRpb25hbCkgbGlzdCBvZiByb2xlcyB0aGF0IHNob3VsZCBiZSBleGNsdWRlZCBmcm9tIHRoZSBhZGQgb3B0aW9ucy4gKi9cblx0YWRkUm9sZUV4Y2x1ZGVMaXN0Pzogc3RyaW5nW11cblxuXHQvKiogKE9wdGlvbmFsKSBUaGUgZW50aXR5IHRoYXQgb3ducyB0aGUgdXNlciByb2xlcywgd2hlbiB0YXJnZXRpbmcgRW50aXR5VXNlclJvbGVzICovXG5cdGVudGl0eT86IE1vZGVsXG5cdC8qKiAoT3B0aW9uYWwpIEEgdXNlci1mcmllbmRseSBuYW1lIGZvciB0aGUgZW50aXR5IHR5cGUsIHdoZW4gdGFyZ2V0aW5nIEVudGl0eVVzZXJSb2xlcyAgKi9cblx0ZW50aXR5TmFtZT86IHN0cmluZ1xuXHQvKiogKE9wdGlvbmFsKSBzZXQgaWYgYHJlbmRlclJlbW92ZVVzZXJSb2xlRGVzY3JpcHRpb25gIHNob3VsZCBjaGVjayBmb3Igcm9zdGVyIHN5bmMgKi9cblx0ZXh0ZXJuYWxQcm92aWRlcnM/OiBNb2RlbENvbGxlY3Rpb248RXh0ZXJuYWxQcm92aWRlcj5cblxuXHQvKiogKE9wdGlvbmFsKSBBbGxvdyB1c2VycyB0byBiZSBleGNsdWRlZCBmcm9tIGJlaW5nIGRpc3BsYXllZCBpbiB0aGUgdGFibGUgKi9cblx0ZmlsdGVyVXNlcnM/OiAodXNlcnM6IFVzZXJXaXRoUm9sZXNbXSkgPT4gVXNlcldpdGhSb2xlc1tdXG5cdC8qKiAoT3B0aW9uYWwpIENhbGxiYWNrIHRoYXQgaXMgY2FsbGVkIGFmdGVyIHVzZXIgcm9sZXMgYXJlIGFkZGVkICovXG5cdG9uQWRkPzogKHVzZXJSb2xlczogVXNlclJvbGVbXSkgPT4gdm9pZFxuXHQvKiogKE9wdGlvbmFsKSBDYWxsYmFjayB0aGF0IGlzIGNhbGxlZCBhZnRlciBhIHVzZXIgcm9sZSBpcyB1cGRhdGVkICovXG5cdG9uVXBkYXRlPzogKHVzZXJSb2xlOiBVc2VyUm9sZSwgcm9sZTogc3RyaW5nKSA9PiB2b2lkXG5cdC8qKiAoT3B0aW9uYWwpIENhbGxiYWNrIHRoYXQgaXMgY2FsbGVkIGFmdGVyIGEgdXNlciByb2xlIGlzIHJlbW92ZWQgKi9cblx0b25SZW1vdmU/OiAodXNlclJvbGU6IFVzZXJSb2xlKSA9PiB2b2lkXG5cdC8qKiAoT3B0aW9uYWwpIFJlbmRlciBjdXN0b20gY29tcG9uZW50cyBiZXR3ZWVuIHRoZSBBZGQgYW5kIFRhYmxlIGNvbXBvbmVudHMgKi9cblx0cmVuZGVyVGFibGVEZXNjcmlwdGlvbj86IChjYW5Nb2RpZnk/OiBib29sZWFuKSA9PiBSZWFjdC5KU1guRWxlbWVudFxuXHQvKiogKE9wdGlvbmFsKSBSZW5kZXIgY3VzdG9tIGNvbXBvbmVudHMgYXQgdGhlIHN0YXJ0IG9mIHRoZSBBZGQgY29tcG9uZW50ICovXG5cdHJlbmRlckFkZERlc2NyaXB0aW9uPzogKGVudGl0eU5hbWU/OiBzdHJpbmcpID0+IFJlYWN0LkpTWC5FbGVtZW50XG5cdC8qKiAoT3B0aW9uYWwpIFByb3ZpZGUgY3VzdG9tIHVzZXItZnJpZW5kbHkgbmFtZXMgZm9yIGRpc3BsYXllZCByb2xlcyAqL1xuXHR0ZXh0Rm9yUm9sZT86IChyb2xlOiBzdHJpbmcpID0+IHN0cmluZ1xuXHQvKiogKE9wdGlvbmFsKSBQcm92aWRlIGN1c3RvbSB1c2VyLWZyaWVuZGx5IG5hbWVzIGZvciBkaXNwbGF5ZWQgcm9sZXMgdGhhdCByZXF1aXJlIGN1c3RvbSBjYXNpbmcgKi9cblx0bG93ZXJjYXNlVGV4dEZvclJvbGU/OiAocm9sZTogc3RyaW5nKSA9PiBzdHJpbmdcblx0LyoqIChPcHRpb25hbCkgUHJvdmlkZSBjdXN0b20gdXNlci1mcmllbmRseSBhcnRpY2xlcyAoXCJhXCIgdnMuIFwiYW5cIikgZm9yIGRpc3BsYXllZCByb2xlcyAqL1xuXHRzaW5ndWxhckFydGljbGVGb3JSb2xlPzogKHJvbGU6IHN0cmluZykgPT4gc3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlclJvbGVzUHJvcHMgZXh0ZW5kcyBVc2VyUm9sZXNSZWR1eFByb3BzLCBVc2VyUm9sZXNPd25Qcm9wcyB7fVxuXG5pbnRlcmZhY2UgVXNlclJvbGVzU3RhdGUge1xuXHRzb3J0ZWRVc2VyczogVXNlcldpdGhSb2xlc1tdXG5cdC8vIGFkZFxuXHRhZGRVc2Vyc0hvb2tJZDogc3RyaW5nXG5cdGlzQWRkaW5nOiBib29sZWFuXG5cdGlkZW50aWZpZXJzVG9BZGQ/OiBzdHJpbmdbXVxuXHRyb2xlRm9yQWRkPzogc3RyaW5nXG5cdHNob3VsZFJlc2V0QWRkRm9ybTogYm9vbGVhblxuXHQvLyB1cGRhdGVcblx0dXNlclJvbGVUb1VwZGF0ZT86IFVzZXJSb2xlXG5cdHJvbGVGb3JVcGRhdGU/OiBzdHJpbmdcblx0aXNVcGRhdGluZzogYm9vbGVhblxuXHQvLyByZW1vdmVcblx0c2hvdWxkU2hvd1JlbW92ZURpYWxvZzogYm9vbGVhblxuXHR1c2VyUm9sZVRvUmVtb3ZlPzogVXNlclJvbGVcblx0aXNSZW1vdmluZzogYm9vbGVhblxuXHQvLyBtZXNzYWdlc1xuXHRzdWNjZXNzTWVzc2FnZT86IHN0cmluZ1xuXHRleGlzdGluZ01lc3NhZ2U/OiBzdHJpbmdcblx0YmxvY2tlZE1lc3NhZ2U/OiBzdHJpbmdcblx0ZmFpbE1lc3NhZ2U/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBZGRCdXNpbmVzc01vZGVsIHtcblx0YWRkZWRVc2VyUm9sZXM6IFVzZXJSb2xlW11cblx0ZXhpc3RpbmdVc2VyUm9sZXM6IFVzZXJSb2xlW11cblx0YmxvY2tlZFVzZXJSb2xlcz86IFVzZXJSb2xlW11cblx0aW52YWxpZElkZW50aWZpZXJzOiBzdHJpbmdbXVxuXHRhbGxvd2VkRG9tYWluczogc3RyaW5nXG5cdGludmFsaWREb21haW5JZGVudGlmaWVyczogc3RyaW5nW11cbn1cblxuLyoqXG4gKiBDb21wb25lbnQgdXNlZCB0byBtYW5hZ2UgZWl0aGVyIFVzZXJSb2xlcyAoZ2xvYmFsIHJvbGVzKSBvciBFbnRpdHlVc2VyUm9sZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBVc2VyUm9sZXMgZXh0ZW5kcyBDb21wb25lbnQ8VXNlclJvbGVzUHJvcHMsIFVzZXJSb2xlc1N0YXRlPiB7XG5cdHN0YXRlOiBVc2VyUm9sZXNTdGF0ZSA9IHtcblx0XHRzb3J0ZWRVc2VyczogW10sXG5cdFx0Ly8gYWRkXG5cdFx0YWRkVXNlcnNIb29rSWQ6IHV1aWR2NCgpLFxuXHRcdGlzQWRkaW5nOiBmYWxzZSxcblx0XHRpc1VwZGF0aW5nOiBmYWxzZSxcblx0XHRpc1JlbW92aW5nOiBmYWxzZSxcblx0XHRzaG91bGRSZXNldEFkZEZvcm06IGZhbHNlLFxuXHRcdHNob3VsZFNob3dSZW1vdmVEaWFsb2c6IGZhbHNlXG5cdH1cblxuXHRjb21wb25lbnREaWRNb3VudCgpIHtcblx0XHR0aGlzLnNldFN0YXRlRnJvbVByb3BzKHRoaXMucHJvcHMpXG5cdFx0Y29uc3QgeyBhZGRVc2Vyc0hvb2tJZCB9ID0gdGhpcy5zdGF0ZVxuXHRcdG5vU3RvcmVIb29rcy51bnJlZ2lzdGVyTm9TdG9yZUFjdGlvbkhvb2soYWRkVXNlcnNIb29rSWQpXG5cdH1cblxuXHRjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzOiBVc2VyUm9sZXNQcm9wcykge1xuXHRcdGNvbnN0IHsgbW9kZWxBcnJheTogcHJldk1vZGVsQXJyYXksIG1vZGVsU3RhdHVzOiBwcmV2TW9kZWxTdGF0dXMgfSA9IHByZXZQcm9wc1xuXHRcdGNvbnN0IHsgbW9kZWxBcnJheSwgbW9kZWxTdGF0dXMsIGVudGl0eU5hbWUgfSA9IHRoaXMucHJvcHNcblxuXHRcdGlmICghaXNFcXVhbChwcmV2TW9kZWxBcnJheSwgbW9kZWxBcnJheSkpIHtcblx0XHRcdHRoaXMuc2V0U3RhdGVGcm9tUHJvcHModGhpcy5wcm9wcylcblx0XHR9XG5cblx0XHQvLyBsb2FkaW5nIGVycm9yXG5cdFx0aWYgKFxuXHRcdFx0KHByZXZNb2RlbFN0YXR1cyA9PT0gTU9ERUxfU1RBVFVTLlVOSU5JVElBTElaRUQgfHwgcHJldk1vZGVsU3RhdHVzID09PSBNT0RFTF9TVEFUVVMuTE9BRElORykgJiZcblx0XHRcdG1vZGVsU3RhdHVzID09PSBNT0RFTF9TVEFUVVMuRVJST1Jcblx0XHQpIHtcblx0XHRcdHRoaXMuc2V0U3RhdGUoe1xuXHRcdFx0XHRmYWlsTWVzc2FnZTogYE9vcHMhIFRoZXJlIHdhcyBhbiBlcnJvciBsb2FkaW5nJHtcblx0XHRcdFx0XHRlbnRpdHlOYW1lID8gYCB0aGUgcGVvcGxlIGZvciB5b3VyICR7ZW50aXR5TmFtZX1gIDogJydcblx0XHRcdFx0fS5cXHJcXG5QbGVhc2UgdHJ5IGFnYWluLmBcblx0XHRcdH0pXG5cdFx0fVxuXG5cdFx0Ly8gdXBkYXRpbmdcblx0XHRpZiAocHJldk1vZGVsU3RhdHVzID09PSBNT0RFTF9TVEFUVVMuVVBEQVRJTkcgJiYgbW9kZWxTdGF0dXMgIT09IE1PREVMX1NUQVRVUy5VUERBVElORykge1xuXHRcdFx0dGhpcy5kaWRVcGRhdGUobW9kZWxTdGF0dXMgPT09IE1PREVMX1NUQVRVUy5SRUFEWSlcblx0XHR9XG5cblx0XHQvLyByZW1vdmluZ1xuXHRcdGlmIChwcmV2TW9kZWxTdGF0dXMgPT09IE1PREVMX1NUQVRVUy5ERUxFVElORyAmJiBtb2RlbFN0YXR1cyAhPT0gTU9ERUxfU1RBVFVTLkRFTEVUSU5HKSB7XG5cdFx0XHR0aGlzLmRpZFJlbW92ZShtb2RlbFN0YXR1cyA9PT0gTU9ERUxfU1RBVFVTLlJFQURZKVxuXHRcdH1cblx0fVxuXG5cdHNldFN0YXRlRnJvbVByb3BzID0gKHByb3BzOiBVc2VyUm9sZXNQcm9wcykgPT4ge1xuXHRcdGNvbnN0IHsgbW9kZWxBcnJheTogdXNlclJvbGVzLCBmaWx0ZXJVc2VycyB9ID0gcHJvcHNcblx0XHRjb25zdCB1c2Vyc1dpdGhSb2xlcyA9IE9iamVjdC52YWx1ZXMoXG5cdFx0XHR1c2VyUm9sZXMucmVkdWNlKChyZXN1bHQ6IERpY3Rpb25hcnk8VXNlcldpdGhSb2xlcz4sIHVzZXJSb2xlOiBVc2VyUm9sZSkgPT4ge1xuXHRcdFx0XHRjb25zdCB1c2VySWQgPSBnZXRVc2VySWQodXNlclJvbGUpXG5cdFx0XHRcdGxldCB1c2VyV2l0aFJvbGVzID0gcmVzdWx0W3VzZXJJZF0gYXMgVXNlcldpdGhSb2xlcyB8IHVuZGVmaW5lZFxuXHRcdFx0XHRpZiAoIXVzZXJXaXRoUm9sZXMpIHtcblx0XHRcdFx0XHR1c2VyV2l0aFJvbGVzID0gY29udmVydFRvVXNlcldpdGhSb2xlcyh1c2VyUm9sZSlcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHR1c2VyV2l0aFJvbGVzLnJvbGVzLnB1c2godXNlclJvbGUpXG5cdFx0XHRcdH1cblx0XHRcdFx0cmVzdWx0W3VzZXJJZF0gPSB1c2VyV2l0aFJvbGVzXG5cdFx0XHRcdHJldHVybiByZXN1bHRcblx0XHRcdH0sIHt9KVxuXHRcdClcblx0XHRjb25zdCBmaWx0ZXJlZFVzZXJzID0gZmlsdGVyVXNlcnMgPyBmaWx0ZXJVc2Vycyh1c2Vyc1dpdGhSb2xlcykgOiB1c2Vyc1dpdGhSb2xlc1xuXHRcdGNvbnN0IHNvcnRlZFVzZXJzID0gZmlsdGVyZWRVc2Vycy5zb3J0KHNvcnRCeU5hbWVzKVxuXHRcdHRoaXMuc2V0U3RhdGUoe1xuXHRcdFx0c29ydGVkVXNlcnNcblx0XHR9KVxuXHR9XG5cblx0dGV4dEZvclJvbGUgPSAocm9sZTogc3RyaW5nLCBsb3dlcmNhc2UgPSBmYWxzZSkgPT4ge1xuXHRcdGlmIChsb3dlcmNhc2UgJiYgdGhpcy5wcm9wcy5sb3dlcmNhc2VUZXh0Rm9yUm9sZSkge1xuXHRcdFx0cmV0dXJuIHRoaXMucHJvcHMubG93ZXJjYXNlVGV4dEZvclJvbGUocm9sZSlcblx0XHR9XG5cdFx0Y29uc3Qgcm9sZVN0cmluZyA9IHRoaXMucHJvcHMudGV4dEZvclJvbGUgPyB0aGlzLnByb3BzLnRleHRGb3JSb2xlKHJvbGUpIDogdGV4dEZvckJhc2VSb2xlKHJvbGUpXG5cdFx0cmV0dXJuIGxvd2VyY2FzZSA/IHJvbGVTdHJpbmcudG9Mb3dlckNhc2UoKSA6IHJvbGVTdHJpbmdcblx0fVxuXG5cdHNpbmd1bGFyQXJ0aWNsZUZvclJvbGUgPSAocm9sZTogc3RyaW5nKSA9PiB7XG5cdFx0cmV0dXJuIHRoaXMucHJvcHMuc2luZ3VsYXJBcnRpY2xlRm9yUm9sZVxuXHRcdFx0PyB0aGlzLnByb3BzLnNpbmd1bGFyQXJ0aWNsZUZvclJvbGUocm9sZSlcblx0XHRcdDogc2luZ3VsYXJBcnRpY2xlRm9yQmFzZVJvbGUocm9sZSlcblx0fVxuXG5cdC8vI3JlZ2lvbiBBZGQgVXNlcnNcblxuXHRhZGRVc2VyUm9sZXMgPSAoaWRlbnRpZmllcnM6IHN0cmluZ1tdLCByb2xlOiBzdHJpbmcpID0+IHtcblx0XHRjb25zdCB7IGVudGl0eSB9ID0gdGhpcy5wcm9wc1xuXHRcdHRoaXMuc2V0U3RhdGUoe1xuXHRcdFx0aWRlbnRpZmllcnNUb0FkZDogaWRlbnRpZmllcnMsXG5cdFx0XHRyb2xlRm9yQWRkOiByb2xlLFxuXHRcdFx0c3VjY2Vzc01lc3NhZ2U6IHVuZGVmaW5lZCxcblx0XHRcdGZhaWxNZXNzYWdlOiB1bmRlZmluZWQsXG5cdFx0XHRleGlzdGluZ01lc3NhZ2U6IHVuZGVmaW5lZCxcblx0XHRcdGJsb2NrZWRNZXNzYWdlOiB1bmRlZmluZWQsXG5cdFx0XHRzaG91bGRSZXNldEFkZEZvcm06IGZhbHNlLFxuXHRcdFx0aXNBZGRpbmc6IHRydWVcblx0XHR9KVxuXHRcdGNvbnN0IHsgYWRkVXNlcnNIb29rSWQgfSA9IHRoaXMuc3RhdGVcblx0XHRub1N0b3JlSG9va3MucmVnaXN0ZXJOb1N0b3JlQWN0aW9uSG9vayhhZGRVc2Vyc0hvb2tJZCwgKGRhdGE6IEFkZEJ1c2luZXNzTW9kZWwgfCBGZXRjaEVycm9yRGF0YSB8IG51bGwpID0+IHtcblx0XHRcdG5vU3RvcmVIb29rcy51bnJlZ2lzdGVyTm9TdG9yZUFjdGlvbkhvb2soYWRkVXNlcnNIb29rSWQpXG5cdFx0XHR0aGlzLmRpZEFkZChkYXRhKVxuXHRcdH0pXG5cdFx0Y29uc3Qgcm9vdE1vZGVsTmFtZSA9IGdldFJvb3RNb2RlbE5hbWUodGhpcy5wcm9wcylcblx0XHRkaXNwYXRjaE1vZGVsRmV0Y2hSZXF1ZXN0KHtcblx0XHRcdG1vZGVsTmFtZTogYCR7cm9vdE1vZGVsTmFtZSA/IGAke3Jvb3RNb2RlbE5hbWV9LmAgOiAnJ31hZGRVc2VyUm9sZXNgLFxuXHRcdFx0cGF0aFBhcmFtczogZW50aXR5ID8gW2VudGl0eS5pZF0gOiB1bmRlZmluZWQsXG5cdFx0XHRib2R5OiB7XG5cdFx0XHRcdGVudGl0eUlkOiBlbnRpdHkgPyBlbnRpdHkuaWQgOiB1bmRlZmluZWQsXG5cdFx0XHRcdGlkZW50aWZpZXJzOiBpZGVudGlmaWVycyxcblx0XHRcdFx0cm9sZU5hbWU6IHJvbGVcblx0XHRcdH0sXG5cdFx0XHRub1N0b3JlOiB0cnVlLFxuXHRcdFx0Z3VpZDogYWRkVXNlcnNIb29rSWRcblx0XHR9KVxuXHR9XG5cblx0ZGlkQWRkID0gKGRhdGE6IEFkZEJ1c2luZXNzTW9kZWwgfCBGZXRjaEVycm9yRGF0YSB8IG51bGwpID0+IHtcblx0XHRjb25zdCB7IGVudGl0eU5hbWUsIG9uQWRkLCBtb2RlbCwgbW9kZWxOYW1lLCBwYXRoUGFyYW1zIH0gPSB0aGlzLnByb3BzXG5cdFx0Y29uc3QgeyByb2xlRm9yQWRkLCBpZGVudGlmaWVyc1RvQWRkIH0gPSB0aGlzLnN0YXRlXG5cdFx0aWYgKCFyb2xlRm9yQWRkIHx8ICFpZGVudGlmaWVyc1RvQWRkIHx8IGlkZW50aWZpZXJzVG9BZGQubGVuZ3RoID09PSAwKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoJ2RpZEFkZCB3YXMgY2FsbGVkIGluIHRoZSBpbmNvcnJlY3Qgc3RhdGUnKVxuXHRcdH1cblxuXHRcdGlmICghZGF0YSB8fCBpc0ZldGNoRXJyb3JEYXRhKGRhdGEpKSB7XG5cdFx0XHRjb25zdCBmYWlsTWVzc2FnZSA9IGBUaGUgZm9sbG93aW5nIGlkZW50aWZpZXJzIHdlcmUgbm90IGFkZGVkJHtcblx0XHRcdFx0ZW50aXR5TmFtZSA/IGAgdG8geW91ciAke2VudGl0eU5hbWV9YCA6ICcnXG5cdFx0XHR9OlxcclxcbiR7aWRlbnRpZmllcnNUb0FkZC5qb2luKCdcXHJcXG4nKX1gXG5cblx0XHRcdHRoaXMuc2V0U3RhdGUoe1xuXHRcdFx0XHRzaG91bGRSZXNldEFkZEZvcm06IHRydWUsXG5cdFx0XHRcdGlzQWRkaW5nOiBmYWxzZSxcblx0XHRcdFx0aWRlbnRpZmllcnNUb0FkZDogdW5kZWZpbmVkLFxuXHRcdFx0XHRyb2xlRm9yQWRkOiB1bmRlZmluZWQsXG5cdFx0XHRcdGZhaWxNZXNzYWdlXG5cdFx0XHR9KVxuXHRcdFx0cmV0dXJuXG5cdFx0fVxuXG5cdFx0Y29uc3Qge1xuXHRcdFx0YWRkZWRVc2VyUm9sZXMsXG5cdFx0XHRleGlzdGluZ1VzZXJSb2xlcyxcblx0XHRcdGJsb2NrZWRVc2VyUm9sZXMsXG5cdFx0XHRpbnZhbGlkSWRlbnRpZmllcnMsXG5cdFx0XHRhbGxvd2VkRG9tYWlucyxcblx0XHRcdGludmFsaWREb21haW5JZGVudGlmaWVyc1xuXHRcdH0gPSBkYXRhXG5cdFx0Y29uc3Qgcm9sZVN0cmluZyA9IHRoaXMudGV4dEZvclJvbGUocm9sZUZvckFkZCwgdHJ1ZSlcblx0XHRjb25zdCBzaW5ndWxhckFydGljbGVTdHJpbmcgPSB0aGlzLnNpbmd1bGFyQXJ0aWNsZUZvclJvbGUocm9sZUZvckFkZClcblxuXHRcdGNvbnN0IGFkZGVkTmFtZXMgPVxuXHRcdFx0YWRkZWRVc2VyUm9sZXMubGVuZ3RoID4gMFxuXHRcdFx0XHQ/IGFkZGVkVXNlclJvbGVzXG5cdFx0XHRcdFx0XHQubWFwKChhdTogVXNlcikgPT4ge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gYCR7ZGlzcGxheU5hbWUoYXUpfSR7YXUudWlkID8gYCAoJHthdS51aWR9KWAgOiAnJ31gXG5cdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0LmpvaW4oJ1xcclxcbicpXG5cdFx0XHRcdDogdW5kZWZpbmVkXG5cblx0XHRjb25zdCBzdWNjZXNzTWVzc2FnZSA9IGFkZGVkTmFtZXNcblx0XHRcdD8gYFRoZSBmb2xsb3dpbmcgJHtyb2xlU3RyaW5nfSR7YWRkZWRVc2VyUm9sZXMubGVuZ3RoID4gMSA/ICdzIHdlcmUnIDogJyB3YXMnfSBzdWNjZXNzZnVsbHkgYWRkZWQke1xuXHRcdFx0XHRcdGVudGl0eU5hbWUgPyBgIHRvIHlvdXIgJHtlbnRpdHlOYW1lfWAgOiAnJ1xuXHRcdFx0XHR9OlxcclxcbiR7YWRkZWROYW1lc31gXG5cdFx0XHQ6IHVuZGVmaW5lZFxuXG5cdFx0Y29uc3QgZXhpc3RpbmdOYW1lcyA9XG5cdFx0XHRleGlzdGluZ1VzZXJSb2xlcy5sZW5ndGggPiAwXG5cdFx0XHRcdD8gZXhpc3RpbmdVc2VyUm9sZXMubWFwKChldTogVXNlcikgPT4gYCR7ZGlzcGxheU5hbWUoZXUpfSR7ZXUudWlkID8gYCAoJHtldS51aWR9KWAgOiAnJ31gKS5qb2luKCdcXHJcXG4nKVxuXHRcdFx0XHQ6IHVuZGVmaW5lZFxuXG5cdFx0Y29uc3QgaGFzTXVsdGlwbGVFeGlzdGluZyA9IGV4aXN0aW5nVXNlclJvbGVzLmxlbmd0aCA+IDFcblx0XHRjb25zdCBleGlzdGluZ01lc3NhZ2UgPSBleGlzdGluZ05hbWVzXG5cdFx0XHQ/IGBUaGUgZm9sbG93aW5nICR7aGFzTXVsdGlwbGVFeGlzdGluZyA/ICdwZW9wbGUgd2VyZScgOiAncGVyc29uIHdhcyd9IGFscmVhZHkgJHtcblx0XHRcdFx0XHRlbnRpdHlOYW1lXG5cdFx0XHRcdFx0XHQ/IGBpbiB5b3VyICR7ZW50aXR5TmFtZX0gYXMgJHtoYXNNdWx0aXBsZUV4aXN0aW5nID8gJycgOiBgJHtzaW5ndWxhckFydGljbGVTdHJpbmd9IGB9YFxuXHRcdFx0XHRcdFx0OiBoYXNNdWx0aXBsZUV4aXN0aW5nXG5cdFx0XHRcdFx0XHRcdD8gJydcblx0XHRcdFx0XHRcdFx0OiBgJHtzaW5ndWxhckFydGljbGVTdHJpbmd9IGBcblx0XHRcdFx0fSR7cm9sZVN0cmluZ30ke2hhc011bHRpcGxlRXhpc3RpbmcgPyAncycgOiAnJ306XFxyXFxuJHtleGlzdGluZ05hbWVzfWBcblx0XHRcdDogdW5kZWZpbmVkXG5cblx0XHRjb25zdCBibG9ja2VkTmFtZXMgPVxuXHRcdFx0ISFibG9ja2VkVXNlclJvbGVzICYmIGJsb2NrZWRVc2VyUm9sZXMubGVuZ3RoID4gMFxuXHRcdFx0XHQ/IGJsb2NrZWRVc2VyUm9sZXMubWFwKChldTogVXNlcikgPT4gYCR7ZGlzcGxheU5hbWUoZXUpfSR7ZXUudWlkID8gYCAoJHtldS51aWR9KWAgOiAnJ31gKS5qb2luKCdcXHJcXG4nKVxuXHRcdFx0XHQ6IHVuZGVmaW5lZFxuXHRcdGNvbnN0IGhhc011bHRpcGxlQmxvY2tlZCA9ICEhYmxvY2tlZFVzZXJSb2xlcyAmJiBibG9ja2VkVXNlclJvbGVzLmxlbmd0aCA+IDFcblx0XHRjb25zdCBibG9ja2VkTWVzc2FnZSA9IGJsb2NrZWROYW1lc1xuXHRcdFx0PyBgVGhlIGZvbGxvd2luZyAke2hhc011bHRpcGxlQmxvY2tlZCA/ICdwZW9wbGUnIDogJ3BlcnNvbid9IGNvdWxkIG5vdCBiZSBhZGRlZCAke1xuXHRcdFx0XHRcdGVudGl0eU5hbWUgPyBgdG8geW91ciAke2VudGl0eU5hbWV9YCA6ICcnXG5cdFx0XHRcdH0gYXMgJHtoYXNNdWx0aXBsZUJsb2NrZWQgPyAnJyA6IGAke3Npbmd1bGFyQXJ0aWNsZVN0cmluZ30gYH0ke3JvbGVTdHJpbmd9JHtcblx0XHRcdFx0XHRoYXNNdWx0aXBsZUJsb2NrZWQgPyAncycgOiAnJ1xuXHRcdFx0XHR9IGJlY2F1c2UgdGhleSBhbHJlYWR5IGhhdmUgYSByb2xlOlxcclxcbiR7YmxvY2tlZE5hbWVzfWBcblx0XHRcdDogdW5kZWZpbmVkXG5cblx0XHRsZXQgZmFpbE1lc3NhZ2UgPVxuXHRcdFx0aW52YWxpZElkZW50aWZpZXJzLmxlbmd0aCA+IDBcblx0XHRcdFx0PyBgVGhlIGZvbGxvd2luZyAke2dldERvbWFpbklkZW50aWZpZXJUeXBlUGx1cmFsU3RyaW5nKCl9IGFyZSBpbnZhbGlkOlxcclxcbiR7aW52YWxpZElkZW50aWZpZXJzLmpvaW4oXG5cdFx0XHRcdFx0XHQnXFxyXFxuJ1xuXHRcdFx0XHRcdCl9YFxuXHRcdFx0XHQ6IHVuZGVmaW5lZFxuXG5cdFx0aWYgKGludmFsaWREb21haW5JZGVudGlmaWVycy5sZW5ndGggPiAwKSB7XG5cdFx0XHRmYWlsTWVzc2FnZSA9IGAke1xuXHRcdFx0XHRmYWlsTWVzc2FnZSA/IGAke2ZhaWxNZXNzYWdlfVxcclxcbmAgOiAnJ1xuXHRcdFx0fVRoZSBmb2xsb3dpbmcgJHtnZXREb21haW5JZGVudGlmaWVyVHlwZVBsdXJhbFN0cmluZygpfSBkbyBub3QgbWF0Y2ggdGhlIGFsbG93ZWQgZG9tYWlucyBvZiAke2FsbG93ZWREb21haW5zLnJlcGxhY2UoXG5cdFx0XHRcdCcsJyxcblx0XHRcdFx0JywgJ1xuXHRcdFx0KX06XFxyXFxuJHtpbnZhbGlkRG9tYWluSWRlbnRpZmllcnMuam9pbignXFxyXFxuJyl9YFxuXHRcdH1cblxuXHRcdHRoaXMuc2V0U3RhdGUoe1xuXHRcdFx0c2hvdWxkUmVzZXRBZGRGb3JtOiB0cnVlLFxuXHRcdFx0aXNBZGRpbmc6IGZhbHNlLFxuXHRcdFx0aWRlbnRpZmllcnNUb0FkZDogdW5kZWZpbmVkLFxuXHRcdFx0cm9sZUZvckFkZDogdW5kZWZpbmVkLFxuXHRcdFx0c3VjY2Vzc01lc3NhZ2UsXG5cdFx0XHRleGlzdGluZ01lc3NhZ2UsXG5cdFx0XHRibG9ja2VkTWVzc2FnZSxcblx0XHRcdGZhaWxNZXNzYWdlXG5cdFx0fSlcblxuXHRcdC8vIG9ubHkgcmVsb2FkIGlmIHdlIGhhZCBzb21lIHN1Y2Nlc3NmdWwgYWRkc1xuXHRcdGlmIChhZGRlZE5hbWVzKSB7XG5cdFx0XHQvLyB1cGRhdGUgcmVkdXggd2l0aCBhZGRlZCB1c2VyUm9sZXNcblx0XHRcdGNvbnN0IHVwZGF0ZWRNb2RlbCA9IGNsb25lRGVlcChtb2RlbClcblx0XHRcdGFkZGVkVXNlclJvbGVzLmZvckVhY2godXNlclJvbGUgPT4gKHVwZGF0ZWRNb2RlbFt1c2VyUm9sZS5pZF0gPSBjbG9uZURlZXAodXNlclJvbGUpKSlcblxuXHRcdFx0Ly8gY3JlYXRlIGEgZHVtbXkgYWN0aW9uIGFuZCBjYWxsIGBwcmVwYXJlRmV0Y2hgIHRvIGdldCB0aGUgZmluYWwgYG1vZGVsUGF0aGBcblx0XHRcdGNvbnN0IHsgbW9kZWxQYXRoIH0gPSBwcmVwYXJlRmV0Y2goXG5cdFx0XHRcdHtcblx0XHRcdFx0XHR0eXBlOiBNT0RFTF9GRVRDSF9SRVFVRVNUX0FDVElPTl9UWVBFLkZFVENIX1JFUVVFU1QsXG5cdFx0XHRcdFx0bW9kZWxOYW1lLFxuXHRcdFx0XHRcdHBhdGhQYXJhbXNcblx0XHRcdFx0fSxcblx0XHRcdFx0Z2V0RW5kcG9pbnRNYXBwaW5ncygpXG5cdFx0XHQpXG5cdFx0XHRkaXNwYXRjaEFjdGlvbjxNb2RlbEZldGNoUmVzdWx0QWN0aW9uPih7XG5cdFx0XHRcdHR5cGU6IE1PREVMX0ZFVENIX1JFU1VMVF9BQ1RJT05fVFlQRS5GRVRDSF9SRVNVTFRfUkVDRUlWRUQsXG5cdFx0XHRcdG1vZGVsUGF0aCxcblx0XHRcdFx0ZGF0YTogdXBkYXRlZE1vZGVsXG5cdFx0XHR9KVxuXG5cdFx0XHRpZiAob25BZGQpIHtcblx0XHRcdFx0b25BZGQoYWRkZWRVc2VyUm9sZXMpXG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Ly8jZW5kcmVnaW9uIEFkZCBVc2Vyc1xuXG5cdC8vI3JlZ2lvbiBVcGRhdGVcblxuXHR1cGRhdGVVc2VyUm9sZSA9ICh1c2VyUm9sZVRvVXBkYXRlOiBVc2VyUm9sZSwgbmV3Um9sZTogc3RyaW5nKSA9PiB7XG5cdFx0dGhpcy5zZXRTdGF0ZSh7XG5cdFx0XHRpc1VwZGF0aW5nOiB0cnVlLFxuXHRcdFx0dXNlclJvbGVUb1VwZGF0ZSxcblx0XHRcdHJvbGVGb3JVcGRhdGU6IG5ld1JvbGUsXG5cdFx0XHRzdWNjZXNzTWVzc2FnZTogdW5kZWZpbmVkLFxuXHRcdFx0ZmFpbE1lc3NhZ2U6IHVuZGVmaW5lZFxuXHRcdH0pXG5cdFx0dGhpcy5wcm9wcy51cGRhdGUoe1xuXHRcdFx0aWQ6IHVzZXJSb2xlVG9VcGRhdGUuaWQsXG5cdFx0XHRib2R5OiB7fSxcblx0XHRcdHF1ZXJ5UGFyYW1zOiB7XG5cdFx0XHRcdHJvbGVOYW1lOiBuZXdSb2xlXG5cdFx0XHR9XG5cdFx0fSlcblx0fVxuXG5cdGRpZFVwZGF0ZSA9IChpc1N1Y2Nlc3M6IGJvb2xlYW4pID0+IHtcblx0XHRjb25zdCB7IGVudGl0eU5hbWUsIG9uVXBkYXRlIH0gPSB0aGlzLnByb3BzXG5cdFx0Y29uc3QgeyB1c2VyUm9sZVRvVXBkYXRlLCByb2xlRm9yVXBkYXRlIH0gPSB0aGlzLnN0YXRlXG5cdFx0aWYgKHVzZXJSb2xlVG9VcGRhdGUgPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKCdgZGlkVXBkYXRlYCB3YXMgY2FsbGVkIHdpdGhvdXQgc2V0dGluZyBgdXNlclJvbGVUb1VwZGF0ZWAgaW4gc3RhdGUnKVxuXHRcdH1cblx0XHRpZiAocm9sZUZvclVwZGF0ZSA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoJ2BkaWRVcGRhdGVgIHdhcyBjYWxsZWQgd2l0aG91dCBzZXR0aW5nIGByb2xlRm9yVXBkYXRlYCBpbiBzdGF0ZScpXG5cdFx0fVxuXG5cdFx0Y29uc3QgbmFtZSA9IGRpc3BsYXlOYW1lKHVzZXJSb2xlVG9VcGRhdGUpXG5cdFx0Y29uc3Qgcm9sZVN0cmluZyA9IHRoaXMudGV4dEZvclJvbGUocm9sZUZvclVwZGF0ZSwgdHJ1ZSlcblx0XHRjb25zdCBzaW5ndWxhckFydGljbGVTdHJpbmcgPSB0aGlzLnNpbmd1bGFyQXJ0aWNsZUZvclJvbGUocm9sZUZvclVwZGF0ZSlcblxuXHRcdGlmICghaXNTdWNjZXNzKSB7XG5cdFx0XHRjb25zdCBmYWlsTWVzc2FnZSA9IGBPb3BzISBUaGVyZSB3YXMgYW4gZXJyb3IgdXBkYXRpbmcgJHtuYW1lfSB0byAke3Npbmd1bGFyQXJ0aWNsZVN0cmluZ30gJHtyb2xlU3RyaW5nfSR7XG5cdFx0XHRcdGVudGl0eU5hbWUgPyBgIGluIHlvdXIgJHtlbnRpdHlOYW1lfWAgOiAnJ1xuXHRcdFx0fS4gUGxlYXNlIHRyeSBhZ2Fpbi5gXG5cdFx0XHR0aGlzLnNldFN0YXRlKHtcblx0XHRcdFx0aXNVcGRhdGluZzogZmFsc2UsXG5cdFx0XHRcdHVzZXJSb2xlVG9VcGRhdGU6IHVuZGVmaW5lZCxcblx0XHRcdFx0cm9sZUZvclVwZGF0ZTogdW5kZWZpbmVkLFxuXHRcdFx0XHRmYWlsTWVzc2FnZVxuXHRcdFx0fSlcblx0XHRcdHJldHVyblxuXHRcdH1cblxuXHRcdGNvbnN0IHN1Y2Nlc3NNZXNzYWdlID0gYCR7bmFtZX0gd2FzIHN1Y2Nlc3NmdWxseSB1cGRhdGVkIHRvICR7c2luZ3VsYXJBcnRpY2xlU3RyaW5nfSAke3JvbGVTdHJpbmd9JHtcblx0XHRcdGVudGl0eU5hbWUgPyBgIGluIHlvdXIgJHtlbnRpdHlOYW1lfWAgOiAnJ1xuXHRcdH0uYFxuXG5cdFx0aWYgKG9uVXBkYXRlKSB7XG5cdFx0XHRvblVwZGF0ZSh1c2VyUm9sZVRvVXBkYXRlLCByb2xlRm9yVXBkYXRlKVxuXHRcdH1cblxuXHRcdHRoaXMuc2V0U3RhdGUoe1xuXHRcdFx0aXNVcGRhdGluZzogZmFsc2UsXG5cdFx0XHR1c2VyUm9sZVRvVXBkYXRlOiB1bmRlZmluZWQsXG5cdFx0XHRyb2xlRm9yVXBkYXRlOiB1bmRlZmluZWQsXG5cdFx0XHRzdWNjZXNzTWVzc2FnZVxuXHRcdH0pXG5cdH1cblxuXHQvLyNlbmRyZWdpb24gVXBkYXRlXG5cblx0Ly8jcmVnaW9uIFJlbW92ZSBVc2VyXG5cblx0YWxlcnRSZW1vdmVVc2VyUm9sZSA9ICh1c2VyUm9sZVRvUmVtb3ZlOiBVc2VyUm9sZSkgPT4ge1xuXHRcdHRoaXMuc2V0U3RhdGUoe1xuXHRcdFx0dXNlclJvbGVUb1JlbW92ZSxcblx0XHRcdHNob3VsZFNob3dSZW1vdmVEaWFsb2c6IHRydWVcblx0XHR9KVxuXHR9XG5cblx0cmVtb3ZlVXNlclJvbGVUaXRsZSA9IChyb2xlRm9yUmVtb3ZlOiBzdHJpbmcpID0+IHtcblx0XHRyZXR1cm4gYFJlbW92ZSAke3RoaXMudGV4dEZvclJvbGUocm9sZUZvclJlbW92ZSl9YFxuXHR9XG5cblx0cmVuZGVyUmVtb3ZlVXNlclJvbGVEZXNjcmlwdGlvbiA9ICh1c2VyUm9sZVRvUmVtb3ZlOiBVc2VyUm9sZSwgd2FybmluZz86IFJlYWN0LkpTWC5FbGVtZW50KSA9PiB7XG5cdFx0Y29uc3QgeyBlbnRpdHksIGV4dGVybmFsUHJvdmlkZXJzIH0gPSB0aGlzLnByb3BzXG5cdFx0Y29uc3QgZ3JvdXAgPSBlbnRpdHkgJiYgJ2V4dGVybmFsR3JvdXBzJyBpbiBlbnRpdHkgPyAoZW50aXR5IGFzIEdyb3VwKSA6IHVuZGVmaW5lZFxuXG5cdFx0Y29uc3Qgcm9sZVN0cmluZyA9IHRoaXMudGV4dEZvclJvbGUodXNlclJvbGVUb1JlbW92ZS5yb2xlLCB0cnVlKVxuXHRcdGNvbnN0IHNpbmd1bGFyQXJ0aWNsZVN0cmluZyA9IHRoaXMuc2luZ3VsYXJBcnRpY2xlRm9yUm9sZSh1c2VyUm9sZVRvUmVtb3ZlLnJvbGUpXG5cdFx0Y29uc3QgZGVmYXVsdFdhcm5pbmcgPSB3YXJuaW5nID8/IChcblx0XHRcdDxwIGNsYXNzTmFtZT1cIm1hMFwiPlxuXHRcdFx0XHRBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gPHN0cm9uZz5yZW1vdmUge2Rpc3BsYXlOYW1lKHVzZXJSb2xlVG9SZW1vdmUpfTwvc3Ryb25nPiBhc3snICd9XG5cdFx0XHRcdHtzaW5ndWxhckFydGljbGVTdHJpbmd9IHtyb2xlU3RyaW5nfT9cblx0XHRcdDwvcD5cblx0XHQpXG5cblx0XHRjb25zdCBleHRlcm5hbEdyb3Vwc1RvUmVtb3ZlID0gZ3JvdXA/LmV4dGVybmFsR3JvdXBzLmZpbHRlcihlZyA9PiBlZy51c2VySWQgPT09IHVzZXJSb2xlVG9SZW1vdmUuaWQpXG5cblx0XHRpZiAoXG5cdFx0XHQhZXh0ZXJuYWxHcm91cHNUb1JlbW92ZSB8fFxuXHRcdFx0ZXh0ZXJuYWxHcm91cHNUb1JlbW92ZS5sZW5ndGggPT09IDAgfHxcblx0XHRcdHVzZXJSb2xlVG9SZW1vdmUucm9sZSAhPT0gQkFTRV9ST0xFLkdST1VQX09XTkVSXG5cdFx0KSB7XG5cdFx0XHRyZXR1cm4gZGVmYXVsdFdhcm5pbmdcblx0XHR9XG5cblx0XHRjb25zdCBleHRlcm5hbEdyb3Vwc1RvUmVtb3ZlV2l0aFJvc3RlclN5bmMgPSBleHRlcm5hbEdyb3Vwc1RvUmVtb3ZlLmZpbHRlcihcblx0XHRcdGVnID0+IGV4dGVybmFsUHJvdmlkZXJzPy5bZWcuZXh0ZXJuYWxQcm92aWRlcklkXT8ucm9zdGVyU3luY0VuYWJsZWRcblx0XHQpXG5cblx0XHRyZXR1cm4gKFxuXHRcdFx0PGRpdj5cblx0XHRcdFx0PHA+XG5cdFx0XHRcdFx0VGhlIGZvbGxvd2luZyBjb3Vyc2Ugc2VjdGlvbnMgd2lsbCBiZSA8c3Ryb25nPmRpc2Nvbm5lY3RlZDwvc3Ryb25nPi57JyAnfVxuXHRcdFx0XHRcdHtleHRlcm5hbEdyb3Vwc1RvUmVtb3ZlV2l0aFJvc3RlclN5bmMubGVuZ3RoID4gMCAmJiAoXG5cdFx0XHRcdFx0XHQ8c3Bhbj5cblx0XHRcdFx0XHRcdFx0QW55IGF1dG9tYXRpY2FsbHkgYWRkZWQgc3R1ZGVudHMgd2lsbCBiZSA8c3Ryb25nPnJlbW92ZWQ8L3N0cm9uZz4uXG5cdFx0XHRcdFx0XHQ8L3NwYW4+XG5cdFx0XHRcdFx0KX1cblx0XHRcdFx0PC9wPlxuXHRcdFx0XHQ8dWw+XG5cdFx0XHRcdFx0e2V4dGVybmFsR3JvdXBzVG9SZW1vdmUubWFwKGVnID0+IChcblx0XHRcdFx0XHRcdDxsaSBrZXk9e2VnLmlkfT57ZWcuZGVzY3JpcHRpb259PC9saT5cblx0XHRcdFx0XHQpKX1cblx0XHRcdFx0PC91bD5cblx0XHRcdFx0e2RlZmF1bHRXYXJuaW5nfVxuXHRcdFx0PC9kaXY+XG5cdFx0KVxuXHR9XG5cblx0cmVtb3ZlVXNlclJvbGUgPSAoc2hvdWxkUmVtb3ZlOiBib29sZWFuKSA9PiB7XG5cdFx0Y29uc3QgeyB1c2VyUm9sZVRvUmVtb3ZlIH0gPSB0aGlzLnN0YXRlXG5cdFx0aWYgKHVzZXJSb2xlVG9SZW1vdmUgPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKCdgcmVtb3ZlVXNlcmAgd2FzIGNhbGxlZCB3aXRob3V0IHNldHRpbmcgYHVzZXJSb2xlVG9SZW1vdmVgIGluIHN0YXRlJylcblx0XHR9XG5cdFx0dGhpcy5zZXRTdGF0ZSh7XG5cdFx0XHRpc1JlbW92aW5nOiBzaG91bGRSZW1vdmUsXG5cdFx0XHRzaG91bGRTaG93UmVtb3ZlRGlhbG9nOiBmYWxzZSxcblx0XHRcdHN1Y2Nlc3NNZXNzYWdlOiB1bmRlZmluZWQsXG5cdFx0XHRmYWlsTWVzc2FnZTogdW5kZWZpbmVkLFxuXHRcdFx0Ly8gY2xlYXIgaWYgY2FuY2VsbGVkXG5cdFx0XHR1c2VyUm9sZVRvUmVtb3ZlOiBzaG91bGRSZW1vdmUgPyB1c2VyUm9sZVRvUmVtb3ZlIDogdW5kZWZpbmVkXG5cdFx0fSlcblx0XHRpZiAoIXNob3VsZFJlbW92ZSkge1xuXHRcdFx0cmV0dXJuXG5cdFx0fVxuXHRcdHRoaXMucHJvcHMuZGVsZXRlKHtcblx0XHRcdGlkOiB1c2VyUm9sZVRvUmVtb3ZlLmlkXG5cdFx0fSlcblx0fVxuXG5cdGRpZFJlbW92ZSA9IChpc1N1Y2Nlc3M6IGJvb2xlYW4pID0+IHtcblx0XHRjb25zdCB7IGVudGl0eU5hbWUsIG9uUmVtb3ZlIH0gPSB0aGlzLnByb3BzXG5cdFx0Y29uc3QgeyB1c2VyUm9sZVRvUmVtb3ZlIH0gPSB0aGlzLnN0YXRlXG5cdFx0aWYgKHVzZXJSb2xlVG9SZW1vdmUgPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKCdgZGlkUmVtb3ZlYCB3YXMgY2FsbGVkIHdpdGhvdXQgc2V0dGluZyBgdXNlclJvbGVUb1JlbW92ZWAgaW4gc3RhdGUnKVxuXHRcdH1cblxuXHRcdGNvbnN0IG5hbWUgPSBkaXNwbGF5TmFtZSh1c2VyUm9sZVRvUmVtb3ZlKVxuXHRcdGlmICghaXNTdWNjZXNzKSB7XG5cdFx0XHRjb25zdCBmYWlsTWVzc2FnZSA9IGBPb3BzISBUaGVyZSB3YXMgYW4gZXJyb3IgcmVtb3ZpbmcgJHtuYW1lfSR7XG5cdFx0XHRcdGVudGl0eU5hbWUgPyBgIGZyb20geW91ciAke2VudGl0eU5hbWV9YCA6ICcnXG5cdFx0XHR9LiBQbGVhc2UgdHJ5IGFnYWluLmBcblx0XHRcdHRoaXMuc2V0U3RhdGUoe1xuXHRcdFx0XHRpc1JlbW92aW5nOiBmYWxzZSxcblx0XHRcdFx0dXNlclJvbGVUb1JlbW92ZTogdW5kZWZpbmVkLFxuXHRcdFx0XHRmYWlsTWVzc2FnZVxuXHRcdFx0fSlcblx0XHRcdHJldHVyblxuXHRcdH1cblxuXHRcdGNvbnN0IHN1Y2Nlc3NNZXNzYWdlID0gYCR7bmFtZX0gd2FzIHN1Y2Nlc3NmdWxseSByZW1vdmVkJHtlbnRpdHlOYW1lID8gYCBmcm9tIHlvdXIgJHtlbnRpdHlOYW1lfWAgOiAnJ30uYFxuXG5cdFx0aWYgKG9uUmVtb3ZlKSB7XG5cdFx0XHRvblJlbW92ZSh1c2VyUm9sZVRvUmVtb3ZlKVxuXHRcdH1cblxuXHRcdHRoaXMuc2V0U3RhdGUoe1xuXHRcdFx0aXNSZW1vdmluZzogZmFsc2UsXG5cdFx0XHR1c2VyUm9sZVRvUmVtb3ZlOiB1bmRlZmluZWQsXG5cdFx0XHRzdWNjZXNzTWVzc2FnZVxuXHRcdH0pXG5cdH1cblxuXHQvLyNlbmRyZWdpb24gUmVtb3ZlIFVzZXJcblxuXHRyZW5kZXIoKSB7XG5cdFx0Y29uc3Qge1xuXHRcdFx0bW9kZWxTdGF0dXMsXG5cdFx0XHRjYW5Nb2RpZnksXG5cdFx0XHRyZWFkT25seSxcblx0XHRcdGNhbkRlbGV0ZVNlbGYsXG5cdFx0XHRhbGxvd011bHRpcGxlUm9sZXMsXG5cdFx0XHRpc0FkZERpc2FibGVkLFxuXHRcdFx0aXNVcGRhdGVEaXNhYmxlZCxcblx0XHRcdGlzRGVsZXRlRGlzYWJsZWQsXG5cdFx0XHRkZWZhdWx0Um9sZSxcblx0XHRcdHJlcXVpcmVkUm9sZSxcblx0XHRcdHJvbGVEZXNjcmlwdGlvbnMsXG5cdFx0XHRhZGRSb2xlRXhjbHVkZUxpc3QsXG5cdFx0XHRlbnRpdHlOYW1lLFxuXHRcdFx0cmVuZGVyVGFibGVEZXNjcmlwdGlvbixcblx0XHRcdHJlbmRlckFkZERlc2NyaXB0aW9uXG5cdFx0fSA9IHRoaXMucHJvcHNcblx0XHRjb25zdCB7XG5cdFx0XHRzb3J0ZWRVc2Vycyxcblx0XHRcdGlzQWRkaW5nLFxuXHRcdFx0aXNVcGRhdGluZyxcblx0XHRcdGlzUmVtb3ZpbmcsXG5cdFx0XHRzaG91bGRSZXNldEFkZEZvcm0sXG5cdFx0XHRzaG91bGRTaG93UmVtb3ZlRGlhbG9nLFxuXHRcdFx0dXNlclJvbGVUb1VwZGF0ZSxcblx0XHRcdHVzZXJSb2xlVG9SZW1vdmUsXG5cdFx0XHRzdWNjZXNzTWVzc2FnZSxcblx0XHRcdGV4aXN0aW5nTWVzc2FnZSxcblx0XHRcdGJsb2NrZWRNZXNzYWdlLFxuXHRcdFx0ZmFpbE1lc3NhZ2Vcblx0XHR9ID0gdGhpcy5zdGF0ZVxuXG5cdFx0Y29uc3QgYWRkYWJsZVJvbGVEZXNjcmlwdGlvbnMgPSBhZGRSb2xlRXhjbHVkZUxpc3Rcblx0XHRcdD8gcGlja0J5KHJvbGVEZXNjcmlwdGlvbnMsIChfLCBrZXkpID0+ICFhZGRSb2xlRXhjbHVkZUxpc3QuaW5jbHVkZXMoa2V5KSlcblx0XHRcdDogcm9sZURlc2NyaXB0aW9uc1xuXHRcdGNvbnN0IHJvbGVzID0gT2JqZWN0LmtleXMocm9sZURlc2NyaXB0aW9ucylcblx0XHRjb25zdCBzaG91bGRSZW5kZXJBc011dGFibGUgPSAhcmVhZE9ubHkgJiYgY2FuTW9kaWZ5XG5cblx0XHRyZXR1cm4gKFxuXHRcdFx0PD5cblx0XHRcdFx0eyEhc3VjY2Vzc01lc3NhZ2UgJiYgKFxuXHRcdFx0XHRcdDxBbGVydFdpdGhJY29uXG5cdFx0XHRcdFx0XHRpZD1cInN1Y2Nlc3NNZXNzYWdlQWxlcnRcIlxuXHRcdFx0XHRcdFx0dmFyaWFudD1cInN1Y2Nlc3NcIlxuXHRcdFx0XHRcdFx0ZGlzbWlzc2libGVcblx0XHRcdFx0XHRcdG9uQ2xvc2U9eygpID0+XG5cdFx0XHRcdFx0XHRcdHRoaXMuc2V0U3RhdGUoe1xuXHRcdFx0XHRcdFx0XHRcdHN1Y2Nlc3NNZXNzYWdlOiB1bmRlZmluZWRcblx0XHRcdFx0XHRcdFx0fSlcblx0XHRcdFx0XHRcdH0+XG5cdFx0XHRcdFx0XHQ8cCBjbGFzc05hbWU9XCJwcmUtd3JhcFwiPntzdWNjZXNzTWVzc2FnZX08L3A+XG5cdFx0XHRcdFx0PC9BbGVydFdpdGhJY29uPlxuXHRcdFx0XHQpfVxuXHRcdFx0XHR7ISFleGlzdGluZ01lc3NhZ2UgJiYgKFxuXHRcdFx0XHRcdDxBbGVydFdpdGhJY29uXG5cdFx0XHRcdFx0XHRpZD1cImV4aXN0aW5nTWVzc2FnZUFsZXJ0XCJcblx0XHRcdFx0XHRcdHZhcmlhbnQ9XCJpbmZvXCJcblx0XHRcdFx0XHRcdGRpc21pc3NpYmxlXG5cdFx0XHRcdFx0XHRvbkNsb3NlPXsoKSA9PlxuXHRcdFx0XHRcdFx0XHR0aGlzLnNldFN0YXRlKHtcblx0XHRcdFx0XHRcdFx0XHRleGlzdGluZ01lc3NhZ2U6IHVuZGVmaW5lZFxuXHRcdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0fT5cblx0XHRcdFx0XHRcdDxwIGNsYXNzTmFtZT1cInByZS13cmFwXCI+e2V4aXN0aW5nTWVzc2FnZX08L3A+XG5cdFx0XHRcdFx0PC9BbGVydFdpdGhJY29uPlxuXHRcdFx0XHQpfVxuXHRcdFx0XHR7ISFibG9ja2VkTWVzc2FnZSAmJiAoXG5cdFx0XHRcdFx0PEFsZXJ0V2l0aEljb25cblx0XHRcdFx0XHRcdGlkPVwiYmxvY2tlZE1lc3NhZ2VBbGVydFwiXG5cdFx0XHRcdFx0XHR2YXJpYW50PVwid2FybmluZ1wiXG5cdFx0XHRcdFx0XHRkaXNtaXNzaWJsZVxuXHRcdFx0XHRcdFx0b25DbG9zZT17KCkgPT5cblx0XHRcdFx0XHRcdFx0dGhpcy5zZXRTdGF0ZSh7XG5cdFx0XHRcdFx0XHRcdFx0YmxvY2tlZE1lc3NhZ2U6IHVuZGVmaW5lZFxuXHRcdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0fT5cblx0XHRcdFx0XHRcdDxwIGNsYXNzTmFtZT1cInByZS13cmFwXCI+e2Jsb2NrZWRNZXNzYWdlfTwvcD5cblx0XHRcdFx0XHQ8L0FsZXJ0V2l0aEljb24+XG5cdFx0XHRcdCl9XG5cdFx0XHRcdHshIWZhaWxNZXNzYWdlICYmIChcblx0XHRcdFx0XHQ8QWxlcnRXaXRoSWNvblxuXHRcdFx0XHRcdFx0aWQ9XCJmYWlsTWVzc2FnZUFsZXJ0XCJcblx0XHRcdFx0XHRcdHZhcmlhbnQ9XCJ3YXJuaW5nXCJcblx0XHRcdFx0XHRcdGRpc21pc3NpYmxlXG5cdFx0XHRcdFx0XHRvbkNsb3NlPXsoKSA9PlxuXHRcdFx0XHRcdFx0XHR0aGlzLnNldFN0YXRlKHtcblx0XHRcdFx0XHRcdFx0XHRmYWlsTWVzc2FnZTogdW5kZWZpbmVkXG5cdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHR9PlxuXHRcdFx0XHRcdFx0PHAgY2xhc3NOYW1lPVwicHJlLXdyYXBcIj57ZmFpbE1lc3NhZ2V9PC9wPlxuXHRcdFx0XHRcdDwvQWxlcnRXaXRoSWNvbj5cblx0XHRcdFx0KX1cblx0XHRcdFx0e3Nob3VsZFJlbmRlckFzTXV0YWJsZSAmJiAoXG5cdFx0XHRcdFx0PFVzZXJSb2xlc0FkZFxuXHRcdFx0XHRcdFx0aWQ9XCJlbnRpdHlVc2VyUm9sZXNBZGRcIlxuXHRcdFx0XHRcdFx0ZGlzYWJsZWQ9e2lzQWRkRGlzYWJsZWR9XG5cdFx0XHRcdFx0XHRlbnRpdHlOYW1lPXtlbnRpdHlOYW1lfVxuXHRcdFx0XHRcdFx0ZGVmYXVsdFJvbGU9e2RlZmF1bHRSb2xlfVxuXHRcdFx0XHRcdFx0cm9sZURlc2NyaXB0aW9ucz17YWRkYWJsZVJvbGVEZXNjcmlwdGlvbnN9XG5cdFx0XHRcdFx0XHRyZW5kZXJBZGREZXNjcmlwdGlvbj17cmVuZGVyQWRkRGVzY3JpcHRpb259XG5cdFx0XHRcdFx0XHR0ZXh0Rm9yUm9sZT17dGhpcy50ZXh0Rm9yUm9sZX1cblx0XHRcdFx0XHRcdGlzQWRkaW5nVXNlcnNUb1JvbGU9e2lzQWRkaW5nfVxuXHRcdFx0XHRcdFx0c2hvdWxkUmVzZXQ9e3Nob3VsZFJlc2V0QWRkRm9ybX1cblx0XHRcdFx0XHRcdGFkZFVzZXJSb2xlcz17dGhpcy5hZGRVc2VyUm9sZXN9XG5cdFx0XHRcdFx0Lz5cblx0XHRcdFx0KX1cblx0XHRcdFx0eyEhcmVuZGVyVGFibGVEZXNjcmlwdGlvbiAmJiByZW5kZXJUYWJsZURlc2NyaXB0aW9uKHNob3VsZFJlbmRlckFzTXV0YWJsZSl9XG5cdFx0XHRcdDxSb3cgY2xhc3NOYW1lPVwibXQzXCI+XG5cdFx0XHRcdFx0PENvbCB4cz17MTJ9PlxuXHRcdFx0XHRcdFx0e21vZGVsU3RhdHVzID09PSBNT0RFTF9TVEFUVVMuTE9BRElORyA/IChcblx0XHRcdFx0XHRcdFx0PExvYWRpbmcgLz5cblx0XHRcdFx0XHRcdCkgOiBzb3J0ZWRVc2Vycy5sZW5ndGggPiAwID8gKFxuXHRcdFx0XHRcdFx0XHQ8VXNlclJvbGVzQ29udGV4dC5Qcm92aWRlclxuXHRcdFx0XHRcdFx0XHRcdHZhbHVlPXt7XG5cdFx0XHRcdFx0XHRcdFx0XHRpc1VwZGF0ZURpc2FibGVkOiBpc1VwZGF0ZURpc2FibGVkIHx8IHJlYWRPbmx5LFxuXHRcdFx0XHRcdFx0XHRcdFx0aXNEZWxldGVEaXNhYmxlZDogaXNEZWxldGVEaXNhYmxlZCB8fCByZWFkT25seSxcblx0XHRcdFx0XHRcdFx0XHRcdGNhbk1vZGlmeTogc2hvdWxkUmVuZGVyQXNNdXRhYmxlLFxuXHRcdFx0XHRcdFx0XHRcdFx0Y2FuRGVsZXRlU2VsZixcblx0XHRcdFx0XHRcdFx0XHRcdGFsbG93TXVsdGlwbGVSb2xlcyxcblx0XHRcdFx0XHRcdFx0XHRcdHJvbGVzLFxuXHRcdFx0XHRcdFx0XHRcdFx0cmVxdWlyZWRSb2xlLFxuXHRcdFx0XHRcdFx0XHRcdFx0dGV4dEZvclJvbGU6IHRoaXMudGV4dEZvclJvbGUsXG5cdFx0XHRcdFx0XHRcdFx0XHR1c2VyUm9sZVRvVXBkYXRlLFxuXHRcdFx0XHRcdFx0XHRcdFx0aXNVcGRhdGluZyxcblx0XHRcdFx0XHRcdFx0XHRcdHVwZGF0ZVVzZXJSb2xlOiB0aGlzLnVwZGF0ZVVzZXJSb2xlLFxuXHRcdFx0XHRcdFx0XHRcdFx0dXNlclJvbGVUb1JlbW92ZSxcblx0XHRcdFx0XHRcdFx0XHRcdGlzUmVtb3ZpbmcsXG5cdFx0XHRcdFx0XHRcdFx0XHRyZW1vdmVVc2VyUm9sZTogdGhpcy5hbGVydFJlbW92ZVVzZXJSb2xlXG5cdFx0XHRcdFx0XHRcdFx0fX0+XG5cdFx0XHRcdFx0XHRcdFx0PFVzZXJSb2xlc1RhYmxlIGlkPVwiZW50aXR5VXNlclJvbGVzVGFibGVcIiB1c2Vycz17c29ydGVkVXNlcnN9IC8+XG5cdFx0XHRcdFx0XHRcdDwvVXNlclJvbGVzQ29udGV4dC5Qcm92aWRlcj5cblx0XHRcdFx0XHRcdCkgOiBudWxsfVxuXHRcdFx0XHRcdDwvQ29sPlxuXHRcdFx0XHQ8L1Jvdz5cblx0XHRcdFx0eyEhdXNlclJvbGVUb1JlbW92ZSAmJiAoXG5cdFx0XHRcdFx0PEFsZXJ0RGlhbG9nXG5cdFx0XHRcdFx0XHRpZD1cInJlbW92ZVVzZXJBbGVydFwiXG5cdFx0XHRcdFx0XHRpc09wZW49e3Nob3VsZFNob3dSZW1vdmVEaWFsb2d9XG5cdFx0XHRcdFx0XHR0aXRsZT17dGhpcy5yZW1vdmVVc2VyUm9sZVRpdGxlKHVzZXJSb2xlVG9SZW1vdmUucm9sZSl9XG5cdFx0XHRcdFx0XHRkZXNjcmlwdGlvbj17dGhpcy5yZW5kZXJSZW1vdmVVc2VyUm9sZURlc2NyaXB0aW9uKHVzZXJSb2xlVG9SZW1vdmUpfVxuXHRcdFx0XHRcdFx0b25EZXN0cm95PXsoKSA9PiB0aGlzLnJlbW92ZVVzZXJSb2xlKHRydWUpfVxuXHRcdFx0XHRcdFx0ZGVzdHJveVRleHQ9XCJZZXMsIHJlbW92ZSB0aGUgdXNlclwiXG5cdFx0XHRcdFx0XHRvbkNhbmNlbD17KCkgPT4gdGhpcy5yZW1vdmVVc2VyUm9sZShmYWxzZSl9XG5cdFx0XHRcdFx0XHRjYW5jZWxUZXh0PVwiTm8sIEkgY2hhbmdlZCBteSBtaW5kXCJcblx0XHRcdFx0XHQvPlxuXHRcdFx0XHQpfVxuXHRcdFx0PC8+XG5cdFx0KVxuXHR9XG59XG5cbmV4cG9ydCBjb25zdCBtYXBTdGF0ZVRvUHJvcHMgPSAoc3RhdGU6IEJhc2VSZWR1eFN0YXRlLCBvd25Qcm9wczogVXNlclJvbGVzT3duUHJvcHMpOiBVc2VyUm9sZXNSZWR1eFByb3BzID0+IHtcblx0Y29uc3QgY2FuTW9kaWZ5R2xvYmFsbHkgPSBjYW5QZXJmb3JtQWN0aXZpdHlHbG9iYWxseShvd25Qcm9wcy5tb2RpZnlVc2VyUm9sZUFjdGl2aXR5TmFtZSwgZGVmYXVsdE9wdGlvbnMoc3RhdGUpKVxuXG5cdGNvbnN0IGNhbk1vZGlmeSA9XG5cdFx0Y2FuTW9kaWZ5R2xvYmFsbHkgfHxcblx0XHQob3duUHJvcHMuZW50aXR5XG5cdFx0XHQ/IGNhblBlcmZvcm1BY3Rpdml0eU9uRW50aXR5KG93blByb3BzLm1vZGlmeVVzZXJSb2xlQWN0aXZpdHlOYW1lLCBkZWZhdWx0T3B0aW9ucyhzdGF0ZSwgb3duUHJvcHMsICdlbnRpdHknKSlcblx0XHRcdDogZmFsc2UpXG5cblx0cmV0dXJuIHtcblx0XHRjYW5Nb2RpZnksXG5cdFx0Y2FuRGVsZXRlU2VsZjpcblx0XHRcdGNhbk1vZGlmeSB8fFxuXHRcdFx0KG93blByb3BzLmVudGl0eSAmJiBvd25Qcm9wcy5kZWxldGVPd25Vc2VyUm9sZUFjdGl2aXR5TmFtZVxuXHRcdFx0XHQ/IGNhblBlcmZvcm1BY3Rpdml0eU9uRW50aXR5KFxuXHRcdFx0XHRcdFx0b3duUHJvcHMuZGVsZXRlT3duVXNlclJvbGVBY3Rpdml0eU5hbWUsXG5cdFx0XHRcdFx0XHRkZWZhdWx0T3B0aW9ucyhzdGF0ZSwgb3duUHJvcHMsICdlbnRpdHknKVxuXHRcdFx0XHRcdClcblx0XHRcdFx0OiBmYWxzZSlcblx0fVxufVxuXG5leHBvcnQgZGVmYXVsdCBjb25uZWN0KG1hcFN0YXRlVG9Qcm9wcykoVXNlclJvbGVzKVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLE9BQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUYsT0FBQTtBQUNB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
549
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwicmVxdWlyZSIsIl9yZWFjdCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX3JlYWN0Qm9vdHN0cmFwIiwiX3JlYWN0UmVkdXgiLCJfdXVpZCIsIl9BbGVydERpYWxvZyIsIl9Mb2FkaW5nIiwiX0FkZCIsIl9UYWJsZSIsIl9jb25zdGFudHMiLCJfYmFzZVJvbGUiLCJfbW9kZWxTdGF0dXMiLCJfYWN0aW9uQ3JlYXRvciIsIl9hY3Rpb25zIiwiX25vU3RvcmVTYWdhIiwiX2Jhc2VBY3Rpdml0eSIsIl9iYXNlUm9sZTIiLCJfZG9tYWluSWRlbnRpZmllciIsIl9lbnRpdHlVc2VyUm9sZSIsIl9mZXRjaCIsIl9zb3J0IiwiX3VzZXIiLCJfdXNlclJvbGUiLCJfQWxlcnRXaXRoSWNvbiIsIl9Db250ZXh0IiwiX2pzeFJ1bnRpbWUiLCJlIiwidCIsIldlYWtNYXAiLCJyIiwibiIsIl9fZXNNb2R1bGUiLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJkZWZhdWx0IiwiaGFzIiwiZ2V0Iiwic2V0IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJVc2VyUm9sZXMiLCJDb21wb25lbnQiLCJjb25zdHJ1Y3RvciIsIl90aGlzIiwiYXJndW1lbnRzIiwidGhpcyIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJzb3J0ZWRVc2VycyIsImFkZFVzZXJzSG9va0lkIiwidXVpZHY0IiwiaXNBZGRpbmciLCJpc1VwZGF0aW5nIiwiaXNSZW1vdmluZyIsInNob3VsZFJlc2V0QWRkRm9ybSIsInNob3VsZFNob3dSZW1vdmVEaWFsb2ciLCJwcm9wcyIsIm1vZGVsQXJyYXkiLCJ1c2VyUm9sZXMiLCJmaWx0ZXJVc2VycyIsInVzZXJzV2l0aFJvbGVzIiwidmFsdWVzIiwicmVkdWNlIiwicmVzdWx0IiwidXNlclJvbGUiLCJ1c2VySWQiLCJnZXRVc2VySWQiLCJ1c2VyV2l0aFJvbGVzIiwiY29udmVydFRvVXNlcldpdGhSb2xlcyIsInJvbGVzIiwicHVzaCIsImZpbHRlcmVkVXNlcnMiLCJzb3J0Iiwic29ydEJ5TmFtZXMiLCJzZXRTdGF0ZSIsInJvbGUiLCJsb3dlcmNhc2UiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJsb3dlcmNhc2VUZXh0Rm9yUm9sZSIsInJvbGVTdHJpbmciLCJ0ZXh0Rm9yUm9sZSIsInRleHRGb3JCYXNlUm9sZSIsInRvTG93ZXJDYXNlIiwic2luZ3VsYXJBcnRpY2xlRm9yUm9sZSIsInNpbmd1bGFyQXJ0aWNsZUZvckJhc2VSb2xlIiwiaWRlbnRpZmllcnMiLCJlbnRpdHkiLCJpZGVudGlmaWVyc1RvQWRkIiwicm9sZUZvckFkZCIsInN1Y2Nlc3NNZXNzYWdlIiwiZmFpbE1lc3NhZ2UiLCJleGlzdGluZ01lc3NhZ2UiLCJibG9ja2VkTWVzc2FnZSIsInN0YXRlIiwibm9TdG9yZUhvb2tzIiwicmVnaXN0ZXJOb1N0b3JlQWN0aW9uSG9vayIsImRhdGEiLCJ1bnJlZ2lzdGVyTm9TdG9yZUFjdGlvbkhvb2siLCJkaWRBZGQiLCJyb290TW9kZWxOYW1lIiwiZ2V0Um9vdE1vZGVsTmFtZSIsImRpc3BhdGNoTW9kZWxGZXRjaFJlcXVlc3QiLCJtb2RlbE5hbWUiLCJwYXRoUGFyYW1zIiwiaWQiLCJib2R5IiwiZW50aXR5SWQiLCJyb2xlTmFtZSIsIm5vU3RvcmUiLCJndWlkIiwiZW50aXR5TmFtZSIsIm9uQWRkIiwibW9kZWwiLCJFcnJvciIsImlzRmV0Y2hDYW5jZWxsZWREYXRhIiwiaXNGZXRjaEVycm9yRGF0YSIsImpvaW4iLCJhZGRlZFVzZXJSb2xlcyIsImV4aXN0aW5nVXNlclJvbGVzIiwiYmxvY2tlZFVzZXJSb2xlcyIsImludmFsaWRJZGVudGlmaWVycyIsImFsbG93ZWREb21haW5zIiwiaW52YWxpZERvbWFpbklkZW50aWZpZXJzIiwic2luZ3VsYXJBcnRpY2xlU3RyaW5nIiwiYWRkZWROYW1lcyIsIm1hcCIsImF1IiwiZGlzcGxheU5hbWUiLCJ1aWQiLCJleGlzdGluZ05hbWVzIiwiZXUiLCJoYXNNdWx0aXBsZUV4aXN0aW5nIiwiYmxvY2tlZE5hbWVzIiwiaGFzTXVsdGlwbGVCbG9ja2VkIiwiZ2V0RG9tYWluSWRlbnRpZmllclR5cGVQbHVyYWxTdHJpbmciLCJyZXBsYWNlIiwidXBkYXRlZE1vZGVsIiwiY2xvbmVEZWVwIiwiZm9yRWFjaCIsIm1vZGVsUGF0aCIsInByZXBhcmVGZXRjaCIsInR5cGUiLCJNT0RFTF9GRVRDSF9SRVFVRVNUX0FDVElPTl9UWVBFIiwiRkVUQ0hfUkVRVUVTVCIsImdldEVuZHBvaW50TWFwcGluZ3MiLCJkaXNwYXRjaEFjdGlvbiIsIk1PREVMX0ZFVENIX1JFU1VMVF9BQ1RJT05fVFlQRSIsIkZFVENIX1JFU1VMVF9SRUNFSVZFRCIsInVzZXJSb2xlVG9VcGRhdGUiLCJuZXdSb2xlIiwicm9sZUZvclVwZGF0ZSIsInVwZGF0ZSIsInF1ZXJ5UGFyYW1zIiwiaXNTdWNjZXNzIiwib25VcGRhdGUiLCJuYW1lIiwidXNlclJvbGVUb1JlbW92ZSIsInJvbGVGb3JSZW1vdmUiLCJ3YXJuaW5nIiwiZXh0ZXJuYWxQcm92aWRlcnMiLCJncm91cCIsImRlZmF1bHRXYXJuaW5nIiwianN4cyIsImNsYXNzTmFtZSIsImNoaWxkcmVuIiwiZXh0ZXJuYWxHcm91cHNUb1JlbW92ZSIsImV4dGVybmFsR3JvdXBzIiwiZmlsdGVyIiwiZWciLCJCQVNFX1JPTEUiLCJHUk9VUF9PV05FUiIsImV4dGVybmFsR3JvdXBzVG9SZW1vdmVXaXRoUm9zdGVyU3luYyIsImV4dGVybmFsUHJvdmlkZXJJZCIsInJvc3RlclN5bmNFbmFibGVkIiwianN4IiwiZGVzY3JpcHRpb24iLCJzaG91bGRSZW1vdmUiLCJkZWxldGUiLCJvblJlbW92ZSIsImNvbXBvbmVudERpZE1vdW50Iiwic2V0U3RhdGVGcm9tUHJvcHMiLCJjb21wb25lbnREaWRVcGRhdGUiLCJwcmV2UHJvcHMiLCJwcmV2TW9kZWxBcnJheSIsIm1vZGVsU3RhdHVzIiwicHJldk1vZGVsU3RhdHVzIiwiaXNFcXVhbCIsIk1PREVMX1NUQVRVUyIsIlVOSU5JVElBTElaRUQiLCJMT0FESU5HIiwiRVJST1IiLCJVUERBVElORyIsImRpZFVwZGF0ZSIsIlJFQURZIiwiREVMRVRJTkciLCJkaWRSZW1vdmUiLCJyZW5kZXIiLCJjYW5Nb2RpZnkiLCJyZWFkT25seSIsImNhbkRlbGV0ZVNlbGYiLCJhbGxvd011bHRpcGxlUm9sZXMiLCJpc0FkZERpc2FibGVkIiwiaXNVcGRhdGVEaXNhYmxlZCIsImlzRGVsZXRlRGlzYWJsZWQiLCJkZWZhdWx0Um9sZSIsInJlcXVpcmVkUm9sZSIsInJvbGVEZXNjcmlwdGlvbnMiLCJhZGRSb2xlRXhjbHVkZUxpc3QiLCJyZW5kZXJUYWJsZURlc2NyaXB0aW9uIiwicmVuZGVyQWRkRGVzY3JpcHRpb24iLCJhZGRhYmxlUm9sZURlc2NyaXB0aW9ucyIsInBpY2tCeSIsIl8iLCJrZXkiLCJpbmNsdWRlcyIsImtleXMiLCJzaG91bGRSZW5kZXJBc011dGFibGUiLCJGcmFnbWVudCIsIkFsZXJ0V2l0aEljb24iLCJ2YXJpYW50IiwiZGlzbWlzc2libGUiLCJvbkNsb3NlIiwiVXNlclJvbGVzQWRkIiwiZGlzYWJsZWQiLCJpc0FkZGluZ1VzZXJzVG9Sb2xlIiwic2hvdWxkUmVzZXQiLCJhZGRVc2VyUm9sZXMiLCJSb3ciLCJDb2wiLCJ4cyIsIkxvYWRpbmciLCJVc2VyUm9sZXNDb250ZXh0IiwiUHJvdmlkZXIiLCJ2YWx1ZSIsInVwZGF0ZVVzZXJSb2xlIiwicmVtb3ZlVXNlclJvbGUiLCJhbGVydFJlbW92ZVVzZXJSb2xlIiwiVXNlclJvbGVzVGFibGUiLCJ1c2VycyIsIkFsZXJ0RGlhbG9nIiwiaXNPcGVuIiwidGl0bGUiLCJyZW1vdmVVc2VyUm9sZVRpdGxlIiwicmVuZGVyUmVtb3ZlVXNlclJvbGVEZXNjcmlwdGlvbiIsIm9uRGVzdHJveSIsImRlc3Ryb3lUZXh0Iiwib25DYW5jZWwiLCJjYW5jZWxUZXh0IiwiZXhwb3J0cyIsIm1hcFN0YXRlVG9Qcm9wcyIsIm93blByb3BzIiwiY2FuTW9kaWZ5R2xvYmFsbHkiLCJjYW5QZXJmb3JtQWN0aXZpdHlHbG9iYWxseSIsIm1vZGlmeVVzZXJSb2xlQWN0aXZpdHlOYW1lIiwiZGVmYXVsdE9wdGlvbnMiLCJjYW5QZXJmb3JtQWN0aXZpdHlPbkVudGl0eSIsImRlbGV0ZU93blVzZXJSb2xlQWN0aXZpdHlOYW1lIiwiX2RlZmF1bHQiLCJjb25uZWN0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvVXNlclJvbGVzL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjbG9uZURlZXAsIERpY3Rpb25hcnksIGlzRXF1YWwsIHBpY2tCeSB9IGZyb20gJ2xvZGFzaCdcbmltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IENvbCwgUm93IH0gZnJvbSAncmVhY3QtYm9vdHN0cmFwJ1xuaW1wb3J0IHsgY29ubmVjdCB9IGZyb20gJ3JlYWN0LXJlZHV4J1xuaW1wb3J0IHsgdjQgYXMgdXVpZHY0IH0gZnJvbSAndXVpZCdcbmltcG9ydCB7IEFsZXJ0RGlhbG9nIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9BbGVydERpYWxvZydcbmltcG9ydCB7IExvYWRpbmcgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL0xvYWRpbmcnXG5pbXBvcnQgeyBVc2VyUm9sZXNBZGQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL1VzZXJSb2xlcy9BZGQnXG5pbXBvcnQgeyBVc2VyUm9sZXNUYWJsZSB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvVXNlclJvbGVzL1RhYmxlJ1xuaW1wb3J0IHsgZ2V0RW5kcG9pbnRNYXBwaW5ncyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cydcbmltcG9ydCB7IEJBU0VfUk9MRSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9iYXNlUm9sZSdcbmltcG9ydCB7IE1PREVMX1NUQVRVUyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9tb2RlbFN0YXR1cydcbmltcG9ydCB7IGRpc3BhdGNoQWN0aW9uLCBkaXNwYXRjaE1vZGVsRmV0Y2hSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vcmVkdXgvYWN0aW9uQ3JlYXRvcidcbmltcG9ydCB7XG5cdE1PREVMX0ZFVENIX1JFUVVFU1RfQUNUSU9OX1RZUEUsXG5cdE1PREVMX0ZFVENIX1JFU1VMVF9BQ1RJT05fVFlQRSxcblx0TW9kZWxGZXRjaFJlc3VsdEFjdGlvblxufSBmcm9tICcuLi8uLi9yZWR1eC9hY3Rpb25zJ1xuaW1wb3J0IHsgbm9TdG9yZUhvb2tzIH0gZnJvbSAnLi4vLi4vcmVkdXgvc2FnYXMvbm9TdG9yZVNhZ2EnXG5pbXBvcnQge1xuXHRCYXNlUmVkdXhTdGF0ZSxcblx0RXh0ZXJuYWxQcm92aWRlcixcblx0RmV0Y2hFcnJvckRhdGEsXG5cdEdyb3VwLFxuXHRNb2RlbCxcblx0TW9kZWxDb2xsZWN0aW9uLFxuXHRSb2xlRGVzY3JpcHRpb25zLFxuXHRVc2VyLFxuXHRVc2VyUm9sZSxcblx0VXNlcldpdGhSb2xlc1xufSBmcm9tICcuLi8uLi90eXBlcydcbmltcG9ydCB7IEZldGNoQ2FuY2VsbGVkRGF0YSB9IGZyb20gJy4uLy4uL3R5cGVzL25ldC9GZXRjaENhbmNlbGxlZERhdGEnXG5pbXBvcnQgeyBjYW5QZXJmb3JtQWN0aXZpdHlHbG9iYWxseSwgY2FuUGVyZm9ybUFjdGl2aXR5T25FbnRpdHksIGRlZmF1bHRPcHRpb25zIH0gZnJvbSAnLi4vLi4vdXRpbHMvYmFzZUFjdGl2aXR5J1xuaW1wb3J0IHsgc2luZ3VsYXJBcnRpY2xlRm9yQmFzZVJvbGUsIHRleHRGb3JCYXNlUm9sZSB9IGZyb20gJy4uLy4uL3V0aWxzL2Jhc2VSb2xlJ1xuaW1wb3J0IHsgZ2V0RG9tYWluSWRlbnRpZmllclR5cGVQbHVyYWxTdHJpbmcgfSBmcm9tICcuLi8uLi91dGlscy9kb21haW5JZGVudGlmaWVyJ1xuaW1wb3J0IHsgZ2V0Um9vdE1vZGVsTmFtZSB9IGZyb20gJy4uLy4uL3V0aWxzL2VudGl0eVVzZXJSb2xlJ1xuaW1wb3J0IHsgaXNGZXRjaENhbmNlbGxlZERhdGEsIGlzRmV0Y2hFcnJvckRhdGEsIHByZXBhcmVGZXRjaCB9IGZyb20gJy4uLy4uL3V0aWxzL2ZldGNoJ1xuaW1wb3J0IHsgc29ydEJ5TmFtZXMgfSBmcm9tICcuLi8uLi91dGlscy9zb3J0J1xuaW1wb3J0IHsgZGlzcGxheU5hbWUgfSBmcm9tICcuLi8uLi91dGlscy91c2VyJ1xuaW1wb3J0IHsgY29udmVydFRvVXNlcldpdGhSb2xlcywgZ2V0VXNlcklkIH0gZnJvbSAnLi4vLi4vdXRpbHMvdXNlclJvbGUnXG5pbXBvcnQgeyBBbGVydFdpdGhJY29uIH0gZnJvbSAnLi4vQWxlcnRXaXRoSWNvbidcbmltcG9ydCB7IENvbGxlY3Rpb25Db21wb25lbnRXcmFwcGVkUHJvcHMgfSBmcm9tICcuLi9IT0MvQ29sbGVjdGlvbkNvbXBvbmVudCdcbmltcG9ydCB7IFVzZXJSb2xlc0NvbnRleHQgfSBmcm9tICcuL0NvbnRleHQnXG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlclJvbGVzUmVkdXhQcm9wcyB7XG5cdC8qKiBJcyB0aGUgY3VycmVudCB1c2VyIGFsbG93ZWQgdG8gYWRkLCB1cGRhdGUsIGFuZCBkZWxldGUgdXNlciByb2xlcz8gKi9cblx0Y2FuTW9kaWZ5PzogYm9vbGVhblxuXHQvKiogSXMgdGhlIGN1cnJlbnQgdXNlciBhbGxvd2VkIHRvIGRlbGV0ZSB0aGVpciBvd24gdXNlciByb2xlPyAqL1xuXHRjYW5EZWxldGVTZWxmPzogYm9vbGVhblxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJSb2xlc093blByb3BzIGV4dGVuZHMgQ29sbGVjdGlvbkNvbXBvbmVudFdyYXBwZWRQcm9wczxVc2VyUm9sZT4ge1xuXHQvKiogU2hvdWxkIHRoZSBjb21wb25lbnQgcHJldmVudCBtb2RpZmljYXRpb25zLCBpbmRlcGVuZGVudCBvZiBwZXJtaXNzaW9ucz8gKi9cblx0cmVhZE9ubHk/OiBib29sZWFuXG5cdC8qKiBJcyB0aGUgY3VycmVudCB1c2VyIGFsbG93ZWQgdG8gZGVsZXRlIHRoZWlyIG93biB1c2VyIHJvbGU/IE92ZXJyaWRlcyB0aGUgdmFsdWUgZnJvbSByZWR1eC4gKi9cblx0Y2FuRGVsZXRlU2VsZj86IGJvb2xlYW5cblxuXHQvKiogSWYgbXVsdGlwbGUgcm9sZXMgYWxsb3dlZCwgZWFjaCByb2xlIGlzIGRpc3BsYXllZCBwZXIgdXNlciwgb3RoZXJ3aXNlIGEgc2VsZWN0IGRyb3Bkb3duIGlzIGRpc3BsYXllZC4gKi9cblx0YWxsb3dNdWx0aXBsZVJvbGVzPzogYm9vbGVhblxuXHQvKiogZGlzYWJsZSBhZGRpbmcgbmV3IHVzZXIgcm9sZXMgKi9cblx0aXNBZGREaXNhYmxlZD86IGJvb2xlYW5cblx0LyoqIGRpc2FibGUgYWxsIHVzZXIgcm9sZSBzZWxlY3QgZHJvcGRvd25zLCBpZiBhbnkgKi9cblx0aXNVcGRhdGVEaXNhYmxlZD86IGJvb2xlYW5cblx0LyoqIGRpc2FibGUgYWxsIHVzZXIgcm9sZSBkZWxldGUgYnV0dG9ucyAqL1xuXHRpc0RlbGV0ZURpc2FibGVkPzogYm9vbGVhblxuXG5cdC8qKiBUaGUgYWN0aXZpdHkgdGhlIGN1cnJlbnQgdXNlciBtdXN0IGhhdmUgaW4gb3JkZXIgdG8gYWRkLCB1cGRhdGUsIG9yIGRlbGV0ZSB1c2VyIHJvbGVzLiAqL1xuXHRtb2RpZnlVc2VyUm9sZUFjdGl2aXR5TmFtZTogc3RyaW5nXG5cdC8qKiAoT3B0aW9uYWwpIFRoZSBhY3Rpdml0eSB0aGUgY3VycmVudCB1c2VyIG11c3QgaGF2ZSBpbiBvcmRlciB0byBkZWxldGUgdGhlaXIgb3duIHVzZXIgcm9sZXMsIGlmIHRoZXkgY2Fubm90IG1vZGlmeSBhbGwuICovXG5cdGRlbGV0ZU93blVzZXJSb2xlQWN0aXZpdHlOYW1lPzogc3RyaW5nXG5cdC8qKiBUaGUgcm9sZSB0aGF0IHdpbGwgYmUgc2hvd24gZmlyc3QgaW4gdGhlIGxpc3Qgb2YgYXZhaWxhYmxlIHJvbGVzLiAqL1xuXHRkZWZhdWx0Um9sZTogc3RyaW5nXG5cdC8qKiAoT3B0aW9uYWwpIElmIHByb3ZpZGVkLCB0aGUgbGFzdCB1c2VyIHJvbGUgd2l0aCB0aGUgcmVxdWlyZWQgcm9sZSB3aWxsIGJlIHByZXZlbnRlZCBmcm9tIGJlaW5nIHJlbW92ZWQuICovXG5cdHJlcXVpcmVkUm9sZT86IHN0cmluZ1xuXHQvKiogQSBkaWN0aW9uYXJ5IG9mIGFsbCBwb3NzaWJsZSByb2xlcyBhbmQgdGhlaXIgZGVzY3JpcHRpb25zLiAqL1xuXHRyb2xlRGVzY3JpcHRpb25zOiBSb2xlRGVzY3JpcHRpb25zXG5cdC8qKiAoT3B0aW9uYWwpIGxpc3Qgb2Ygcm9sZXMgdGhhdCBzaG91bGQgYmUgZXhjbHVkZWQgZnJvbSB0aGUgYWRkIG9wdGlvbnMuICovXG5cdGFkZFJvbGVFeGNsdWRlTGlzdD86IHN0cmluZ1tdXG5cblx0LyoqIChPcHRpb25hbCkgVGhlIGVudGl0eSB0aGF0IG93bnMgdGhlIHVzZXIgcm9sZXMsIHdoZW4gdGFyZ2V0aW5nIEVudGl0eVVzZXJSb2xlcyAqL1xuXHRlbnRpdHk/OiBNb2RlbFxuXHQvKiogKE9wdGlvbmFsKSBBIHVzZXItZnJpZW5kbHkgbmFtZSBmb3IgdGhlIGVudGl0eSB0eXBlLCB3aGVuIHRhcmdldGluZyBFbnRpdHlVc2VyUm9sZXMgICovXG5cdGVudGl0eU5hbWU/OiBzdHJpbmdcblx0LyoqIChPcHRpb25hbCkgc2V0IGlmIGByZW5kZXJSZW1vdmVVc2VyUm9sZURlc2NyaXB0aW9uYCBzaG91bGQgY2hlY2sgZm9yIHJvc3RlciBzeW5jICovXG5cdGV4dGVybmFsUHJvdmlkZXJzPzogTW9kZWxDb2xsZWN0aW9uPEV4dGVybmFsUHJvdmlkZXI+XG5cblx0LyoqIChPcHRpb25hbCkgQWxsb3cgdXNlcnMgdG8gYmUgZXhjbHVkZWQgZnJvbSBiZWluZyBkaXNwbGF5ZWQgaW4gdGhlIHRhYmxlICovXG5cdGZpbHRlclVzZXJzPzogKHVzZXJzOiBVc2VyV2l0aFJvbGVzW10pID0+IFVzZXJXaXRoUm9sZXNbXVxuXHQvKiogKE9wdGlvbmFsKSBDYWxsYmFjayB0aGF0IGlzIGNhbGxlZCBhZnRlciB1c2VyIHJvbGVzIGFyZSBhZGRlZCAqL1xuXHRvbkFkZD86ICh1c2VyUm9sZXM6IFVzZXJSb2xlW10pID0+IHZvaWRcblx0LyoqIChPcHRpb25hbCkgQ2FsbGJhY2sgdGhhdCBpcyBjYWxsZWQgYWZ0ZXIgYSB1c2VyIHJvbGUgaXMgdXBkYXRlZCAqL1xuXHRvblVwZGF0ZT86ICh1c2VyUm9sZTogVXNlclJvbGUsIHJvbGU6IHN0cmluZykgPT4gdm9pZFxuXHQvKiogKE9wdGlvbmFsKSBDYWxsYmFjayB0aGF0IGlzIGNhbGxlZCBhZnRlciBhIHVzZXIgcm9sZSBpcyByZW1vdmVkICovXG5cdG9uUmVtb3ZlPzogKHVzZXJSb2xlOiBVc2VyUm9sZSkgPT4gdm9pZFxuXHQvKiogKE9wdGlvbmFsKSBSZW5kZXIgY3VzdG9tIGNvbXBvbmVudHMgYmV0d2VlbiB0aGUgQWRkIGFuZCBUYWJsZSBjb21wb25lbnRzICovXG5cdHJlbmRlclRhYmxlRGVzY3JpcHRpb24/OiAoY2FuTW9kaWZ5PzogYm9vbGVhbikgPT4gUmVhY3QuSlNYLkVsZW1lbnRcblx0LyoqIChPcHRpb25hbCkgUmVuZGVyIGN1c3RvbSBjb21wb25lbnRzIGF0IHRoZSBzdGFydCBvZiB0aGUgQWRkIGNvbXBvbmVudCAqL1xuXHRyZW5kZXJBZGREZXNjcmlwdGlvbj86IChlbnRpdHlOYW1lPzogc3RyaW5nKSA9PiBSZWFjdC5KU1guRWxlbWVudFxuXHQvKiogKE9wdGlvbmFsKSBQcm92aWRlIGN1c3RvbSB1c2VyLWZyaWVuZGx5IG5hbWVzIGZvciBkaXNwbGF5ZWQgcm9sZXMgKi9cblx0dGV4dEZvclJvbGU/OiAocm9sZTogc3RyaW5nKSA9PiBzdHJpbmdcblx0LyoqIChPcHRpb25hbCkgUHJvdmlkZSBjdXN0b20gdXNlci1mcmllbmRseSBuYW1lcyBmb3IgZGlzcGxheWVkIHJvbGVzIHRoYXQgcmVxdWlyZSBjdXN0b20gY2FzaW5nICovXG5cdGxvd2VyY2FzZVRleHRGb3JSb2xlPzogKHJvbGU6IHN0cmluZykgPT4gc3RyaW5nXG5cdC8qKiAoT3B0aW9uYWwpIFByb3ZpZGUgY3VzdG9tIHVzZXItZnJpZW5kbHkgYXJ0aWNsZXMgKFwiYVwiIHZzLiBcImFuXCIpIGZvciBkaXNwbGF5ZWQgcm9sZXMgKi9cblx0c2luZ3VsYXJBcnRpY2xlRm9yUm9sZT86IChyb2xlOiBzdHJpbmcpID0+IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJSb2xlc1Byb3BzIGV4dGVuZHMgVXNlclJvbGVzUmVkdXhQcm9wcywgVXNlclJvbGVzT3duUHJvcHMge31cblxuaW50ZXJmYWNlIFVzZXJSb2xlc1N0YXRlIHtcblx0c29ydGVkVXNlcnM6IFVzZXJXaXRoUm9sZXNbXVxuXHQvLyBhZGRcblx0YWRkVXNlcnNIb29rSWQ6IHN0cmluZ1xuXHRpc0FkZGluZzogYm9vbGVhblxuXHRpZGVudGlmaWVyc1RvQWRkPzogc3RyaW5nW11cblx0cm9sZUZvckFkZD86IHN0cmluZ1xuXHRzaG91bGRSZXNldEFkZEZvcm06IGJvb2xlYW5cblx0Ly8gdXBkYXRlXG5cdHVzZXJSb2xlVG9VcGRhdGU/OiBVc2VyUm9sZVxuXHRyb2xlRm9yVXBkYXRlPzogc3RyaW5nXG5cdGlzVXBkYXRpbmc6IGJvb2xlYW5cblx0Ly8gcmVtb3ZlXG5cdHNob3VsZFNob3dSZW1vdmVEaWFsb2c6IGJvb2xlYW5cblx0dXNlclJvbGVUb1JlbW92ZT86IFVzZXJSb2xlXG5cdGlzUmVtb3Zpbmc6IGJvb2xlYW5cblx0Ly8gbWVzc2FnZXNcblx0c3VjY2Vzc01lc3NhZ2U/OiBzdHJpbmdcblx0ZXhpc3RpbmdNZXNzYWdlPzogc3RyaW5nXG5cdGJsb2NrZWRNZXNzYWdlPzogc3RyaW5nXG5cdGZhaWxNZXNzYWdlPzogc3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWRkQnVzaW5lc3NNb2RlbCB7XG5cdGFkZGVkVXNlclJvbGVzOiBVc2VyUm9sZVtdXG5cdGV4aXN0aW5nVXNlclJvbGVzOiBVc2VyUm9sZVtdXG5cdGJsb2NrZWRVc2VyUm9sZXM/OiBVc2VyUm9sZVtdXG5cdGludmFsaWRJZGVudGlmaWVyczogc3RyaW5nW11cblx0YWxsb3dlZERvbWFpbnM6IHN0cmluZ1xuXHRpbnZhbGlkRG9tYWluSWRlbnRpZmllcnM6IHN0cmluZ1tdXG59XG5cbi8qKlxuICogQ29tcG9uZW50IHVzZWQgdG8gbWFuYWdlIGVpdGhlciBVc2VyUm9sZXMgKGdsb2JhbCByb2xlcykgb3IgRW50aXR5VXNlclJvbGVzLlxuICovXG5leHBvcnQgY2xhc3MgVXNlclJvbGVzIGV4dGVuZHMgQ29tcG9uZW50PFVzZXJSb2xlc1Byb3BzLCBVc2VyUm9sZXNTdGF0ZT4ge1xuXHRzdGF0ZTogVXNlclJvbGVzU3RhdGUgPSB7XG5cdFx0c29ydGVkVXNlcnM6IFtdLFxuXHRcdC8vIGFkZFxuXHRcdGFkZFVzZXJzSG9va0lkOiB1dWlkdjQoKSxcblx0XHRpc0FkZGluZzogZmFsc2UsXG5cdFx0aXNVcGRhdGluZzogZmFsc2UsXG5cdFx0aXNSZW1vdmluZzogZmFsc2UsXG5cdFx0c2hvdWxkUmVzZXRBZGRGb3JtOiBmYWxzZSxcblx0XHRzaG91bGRTaG93UmVtb3ZlRGlhbG9nOiBmYWxzZVxuXHR9XG5cblx0Y29tcG9uZW50RGlkTW91bnQoKSB7XG5cdFx0dGhpcy5zZXRTdGF0ZUZyb21Qcm9wcyh0aGlzLnByb3BzKVxuXHRcdGNvbnN0IHsgYWRkVXNlcnNIb29rSWQgfSA9IHRoaXMuc3RhdGVcblx0XHRub1N0b3JlSG9va3MudW5yZWdpc3Rlck5vU3RvcmVBY3Rpb25Ib29rKGFkZFVzZXJzSG9va0lkKVxuXHR9XG5cblx0Y29tcG9uZW50RGlkVXBkYXRlKHByZXZQcm9wczogVXNlclJvbGVzUHJvcHMpIHtcblx0XHRjb25zdCB7IG1vZGVsQXJyYXk6IHByZXZNb2RlbEFycmF5LCBtb2RlbFN0YXR1czogcHJldk1vZGVsU3RhdHVzIH0gPSBwcmV2UHJvcHNcblx0XHRjb25zdCB7IG1vZGVsQXJyYXksIG1vZGVsU3RhdHVzLCBlbnRpdHlOYW1lIH0gPSB0aGlzLnByb3BzXG5cblx0XHRpZiAoIWlzRXF1YWwocHJldk1vZGVsQXJyYXksIG1vZGVsQXJyYXkpKSB7XG5cdFx0XHR0aGlzLnNldFN0YXRlRnJvbVByb3BzKHRoaXMucHJvcHMpXG5cdFx0fVxuXG5cdFx0Ly8gbG9hZGluZyBlcnJvclxuXHRcdGlmIChcblx0XHRcdChwcmV2TW9kZWxTdGF0dXMgPT09IE1PREVMX1NUQVRVUy5VTklOSVRJQUxJWkVEIHx8IHByZXZNb2RlbFN0YXR1cyA9PT0gTU9ERUxfU1RBVFVTLkxPQURJTkcpICYmXG5cdFx0XHRtb2RlbFN0YXR1cyA9PT0gTU9ERUxfU1RBVFVTLkVSUk9SXG5cdFx0KSB7XG5cdFx0XHR0aGlzLnNldFN0YXRlKHtcblx0XHRcdFx0ZmFpbE1lc3NhZ2U6IGBPb3BzISBUaGVyZSB3YXMgYW4gZXJyb3IgbG9hZGluZyR7XG5cdFx0XHRcdFx0ZW50aXR5TmFtZSA/IGAgdGhlIHBlb3BsZSBmb3IgeW91ciAke2VudGl0eU5hbWV9YCA6ICcnXG5cdFx0XHRcdH0uXFxyXFxuUGxlYXNlIHRyeSBhZ2Fpbi5gXG5cdFx0XHR9KVxuXHRcdH1cblxuXHRcdC8vIHVwZGF0aW5nXG5cdFx0aWYgKHByZXZNb2RlbFN0YXR1cyA9PT0gTU9ERUxfU1RBVFVTLlVQREFUSU5HICYmIG1vZGVsU3RhdHVzICE9PSBNT0RFTF9TVEFUVVMuVVBEQVRJTkcpIHtcblx0XHRcdHRoaXMuZGlkVXBkYXRlKG1vZGVsU3RhdHVzID09PSBNT0RFTF9TVEFUVVMuUkVBRFkpXG5cdFx0fVxuXG5cdFx0Ly8gcmVtb3Zpbmdcblx0XHRpZiAocHJldk1vZGVsU3RhdHVzID09PSBNT0RFTF9TVEFUVVMuREVMRVRJTkcgJiYgbW9kZWxTdGF0dXMgIT09IE1PREVMX1NUQVRVUy5ERUxFVElORykge1xuXHRcdFx0dGhpcy5kaWRSZW1vdmUobW9kZWxTdGF0dXMgPT09IE1PREVMX1NUQVRVUy5SRUFEWSlcblx0XHR9XG5cdH1cblxuXHRzZXRTdGF0ZUZyb21Qcm9wcyA9IChwcm9wczogVXNlclJvbGVzUHJvcHMpID0+IHtcblx0XHRjb25zdCB7IG1vZGVsQXJyYXk6IHVzZXJSb2xlcywgZmlsdGVyVXNlcnMgfSA9IHByb3BzXG5cdFx0Y29uc3QgdXNlcnNXaXRoUm9sZXMgPSBPYmplY3QudmFsdWVzKFxuXHRcdFx0dXNlclJvbGVzLnJlZHVjZSgocmVzdWx0OiBEaWN0aW9uYXJ5PFVzZXJXaXRoUm9sZXM+LCB1c2VyUm9sZTogVXNlclJvbGUpID0+IHtcblx0XHRcdFx0Y29uc3QgdXNlcklkID0gZ2V0VXNlcklkKHVzZXJSb2xlKVxuXHRcdFx0XHRsZXQgdXNlcldpdGhSb2xlcyA9IHJlc3VsdFt1c2VySWRdIGFzIFVzZXJXaXRoUm9sZXMgfCB1bmRlZmluZWRcblx0XHRcdFx0aWYgKCF1c2VyV2l0aFJvbGVzKSB7XG5cdFx0XHRcdFx0dXNlcldpdGhSb2xlcyA9IGNvbnZlcnRUb1VzZXJXaXRoUm9sZXModXNlclJvbGUpXG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0dXNlcldpdGhSb2xlcy5yb2xlcy5wdXNoKHVzZXJSb2xlKVxuXHRcdFx0XHR9XG5cdFx0XHRcdHJlc3VsdFt1c2VySWRdID0gdXNlcldpdGhSb2xlc1xuXHRcdFx0XHRyZXR1cm4gcmVzdWx0XG5cdFx0XHR9LCB7fSlcblx0XHQpXG5cdFx0Y29uc3QgZmlsdGVyZWRVc2VycyA9IGZpbHRlclVzZXJzID8gZmlsdGVyVXNlcnModXNlcnNXaXRoUm9sZXMpIDogdXNlcnNXaXRoUm9sZXNcblx0XHRjb25zdCBzb3J0ZWRVc2VycyA9IGZpbHRlcmVkVXNlcnMuc29ydChzb3J0QnlOYW1lcylcblx0XHR0aGlzLnNldFN0YXRlKHtcblx0XHRcdHNvcnRlZFVzZXJzXG5cdFx0fSlcblx0fVxuXG5cdHRleHRGb3JSb2xlID0gKHJvbGU6IHN0cmluZywgbG93ZXJjYXNlID0gZmFsc2UpID0+IHtcblx0XHRpZiAobG93ZXJjYXNlICYmIHRoaXMucHJvcHMubG93ZXJjYXNlVGV4dEZvclJvbGUpIHtcblx0XHRcdHJldHVybiB0aGlzLnByb3BzLmxvd2VyY2FzZVRleHRGb3JSb2xlKHJvbGUpXG5cdFx0fVxuXHRcdGNvbnN0IHJvbGVTdHJpbmcgPSB0aGlzLnByb3BzLnRleHRGb3JSb2xlID8gdGhpcy5wcm9wcy50ZXh0Rm9yUm9sZShyb2xlKSA6IHRleHRGb3JCYXNlUm9sZShyb2xlKVxuXHRcdHJldHVybiBsb3dlcmNhc2UgPyByb2xlU3RyaW5nLnRvTG93ZXJDYXNlKCkgOiByb2xlU3RyaW5nXG5cdH1cblxuXHRzaW5ndWxhckFydGljbGVGb3JSb2xlID0gKHJvbGU6IHN0cmluZykgPT4ge1xuXHRcdHJldHVybiB0aGlzLnByb3BzLnNpbmd1bGFyQXJ0aWNsZUZvclJvbGVcblx0XHRcdD8gdGhpcy5wcm9wcy5zaW5ndWxhckFydGljbGVGb3JSb2xlKHJvbGUpXG5cdFx0XHQ6IHNpbmd1bGFyQXJ0aWNsZUZvckJhc2VSb2xlKHJvbGUpXG5cdH1cblxuXHQvLyNyZWdpb24gQWRkIFVzZXJzXG5cblx0YWRkVXNlclJvbGVzID0gKGlkZW50aWZpZXJzOiBzdHJpbmdbXSwgcm9sZTogc3RyaW5nKSA9PiB7XG5cdFx0Y29uc3QgeyBlbnRpdHkgfSA9IHRoaXMucHJvcHNcblx0XHR0aGlzLnNldFN0YXRlKHtcblx0XHRcdGlkZW50aWZpZXJzVG9BZGQ6IGlkZW50aWZpZXJzLFxuXHRcdFx0cm9sZUZvckFkZDogcm9sZSxcblx0XHRcdHN1Y2Nlc3NNZXNzYWdlOiB1bmRlZmluZWQsXG5cdFx0XHRmYWlsTWVzc2FnZTogdW5kZWZpbmVkLFxuXHRcdFx0ZXhpc3RpbmdNZXNzYWdlOiB1bmRlZmluZWQsXG5cdFx0XHRibG9ja2VkTWVzc2FnZTogdW5kZWZpbmVkLFxuXHRcdFx0c2hvdWxkUmVzZXRBZGRGb3JtOiBmYWxzZSxcblx0XHRcdGlzQWRkaW5nOiB0cnVlXG5cdFx0fSlcblx0XHRjb25zdCB7IGFkZFVzZXJzSG9va0lkIH0gPSB0aGlzLnN0YXRlXG5cdFx0bm9TdG9yZUhvb2tzLnJlZ2lzdGVyTm9TdG9yZUFjdGlvbkhvb2soXG5cdFx0XHRhZGRVc2Vyc0hvb2tJZCxcblx0XHRcdChkYXRhOiBBZGRCdXNpbmVzc01vZGVsIHwgRmV0Y2hDYW5jZWxsZWREYXRhIHwgRmV0Y2hFcnJvckRhdGEgfCBudWxsKSA9PiB7XG5cdFx0XHRcdG5vU3RvcmVIb29rcy51bnJlZ2lzdGVyTm9TdG9yZUFjdGlvbkhvb2soYWRkVXNlcnNIb29rSWQpXG5cdFx0XHRcdHRoaXMuZGlkQWRkKGRhdGEpXG5cdFx0XHR9XG5cdFx0KVxuXHRcdGNvbnN0IHJvb3RNb2RlbE5hbWUgPSBnZXRSb290TW9kZWxOYW1lKHRoaXMucHJvcHMpXG5cdFx0ZGlzcGF0Y2hNb2RlbEZldGNoUmVxdWVzdCh7XG5cdFx0XHRtb2RlbE5hbWU6IGAke3Jvb3RNb2RlbE5hbWUgPyBgJHtyb290TW9kZWxOYW1lfS5gIDogJyd9YWRkVXNlclJvbGVzYCxcblx0XHRcdHBhdGhQYXJhbXM6IGVudGl0eSA/IFtlbnRpdHkuaWRdIDogdW5kZWZpbmVkLFxuXHRcdFx0Ym9keToge1xuXHRcdFx0XHRlbnRpdHlJZDogZW50aXR5ID8gZW50aXR5LmlkIDogdW5kZWZpbmVkLFxuXHRcdFx0XHRpZGVudGlmaWVyczogaWRlbnRpZmllcnMsXG5cdFx0XHRcdHJvbGVOYW1lOiByb2xlXG5cdFx0XHR9LFxuXHRcdFx0bm9TdG9yZTogdHJ1ZSxcblx0XHRcdGd1aWQ6IGFkZFVzZXJzSG9va0lkXG5cdFx0fSlcblx0fVxuXG5cdGRpZEFkZCA9IChkYXRhOiBBZGRCdXNpbmVzc01vZGVsIHwgRmV0Y2hDYW5jZWxsZWREYXRhIHwgRmV0Y2hFcnJvckRhdGEgfCBudWxsKSA9PiB7XG5cdFx0Y29uc3QgeyBlbnRpdHlOYW1lLCBvbkFkZCwgbW9kZWwsIG1vZGVsTmFtZSwgcGF0aFBhcmFtcyB9ID0gdGhpcy5wcm9wc1xuXHRcdGNvbnN0IHsgcm9sZUZvckFkZCwgaWRlbnRpZmllcnNUb0FkZCB9ID0gdGhpcy5zdGF0ZVxuXHRcdGlmICghcm9sZUZvckFkZCB8fCAhaWRlbnRpZmllcnNUb0FkZCB8fCBpZGVudGlmaWVyc1RvQWRkLmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKCdkaWRBZGQgd2FzIGNhbGxlZCBpbiB0aGUgaW5jb3JyZWN0IHN0YXRlJylcblx0XHR9XG5cblx0XHRpZiAoaXNGZXRjaENhbmNlbGxlZERhdGEoZGF0YSkpIHtcblx0XHRcdHJldHVyblxuXHRcdH1cblxuXHRcdGlmICghZGF0YSB8fCBpc0ZldGNoRXJyb3JEYXRhKGRhdGEpKSB7XG5cdFx0XHRjb25zdCBmYWlsTWVzc2FnZSA9IGBUaGUgZm9sbG93aW5nIGlkZW50aWZpZXJzIHdlcmUgbm90IGFkZGVkJHtcblx0XHRcdFx0ZW50aXR5TmFtZSA/IGAgdG8geW91ciAke2VudGl0eU5hbWV9YCA6ICcnXG5cdFx0XHR9OlxcclxcbiR7aWRlbnRpZmllcnNUb0FkZC5qb2luKCdcXHJcXG4nKX1gXG5cblx0XHRcdHRoaXMuc2V0U3RhdGUoe1xuXHRcdFx0XHRzaG91bGRSZXNldEFkZEZvcm06IHRydWUsXG5cdFx0XHRcdGlzQWRkaW5nOiBmYWxzZSxcblx0XHRcdFx0aWRlbnRpZmllcnNUb0FkZDogdW5kZWZpbmVkLFxuXHRcdFx0XHRyb2xlRm9yQWRkOiB1bmRlZmluZWQsXG5cdFx0XHRcdGZhaWxNZXNzYWdlXG5cdFx0XHR9KVxuXHRcdFx0cmV0dXJuXG5cdFx0fVxuXG5cdFx0Y29uc3Qge1xuXHRcdFx0YWRkZWRVc2VyUm9sZXMsXG5cdFx0XHRleGlzdGluZ1VzZXJSb2xlcyxcblx0XHRcdGJsb2NrZWRVc2VyUm9sZXMsXG5cdFx0XHRpbnZhbGlkSWRlbnRpZmllcnMsXG5cdFx0XHRhbGxvd2VkRG9tYWlucyxcblx0XHRcdGludmFsaWREb21haW5JZGVudGlmaWVyc1xuXHRcdH0gPSBkYXRhXG5cdFx0Y29uc3Qgcm9sZVN0cmluZyA9IHRoaXMudGV4dEZvclJvbGUocm9sZUZvckFkZCwgdHJ1ZSlcblx0XHRjb25zdCBzaW5ndWxhckFydGljbGVTdHJpbmcgPSB0aGlzLnNpbmd1bGFyQXJ0aWNsZUZvclJvbGUocm9sZUZvckFkZClcblxuXHRcdGNvbnN0IGFkZGVkTmFtZXMgPVxuXHRcdFx0YWRkZWRVc2VyUm9sZXMubGVuZ3RoID4gMFxuXHRcdFx0XHQ/IGFkZGVkVXNlclJvbGVzXG5cdFx0XHRcdFx0XHQubWFwKChhdTogVXNlcikgPT4ge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gYCR7ZGlzcGxheU5hbWUoYXUpfSR7YXUudWlkID8gYCAoJHthdS51aWR9KWAgOiAnJ31gXG5cdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0LmpvaW4oJ1xcclxcbicpXG5cdFx0XHRcdDogdW5kZWZpbmVkXG5cblx0XHRjb25zdCBzdWNjZXNzTWVzc2FnZSA9IGFkZGVkTmFtZXNcblx0XHRcdD8gYFRoZSBmb2xsb3dpbmcgJHtyb2xlU3RyaW5nfSR7YWRkZWRVc2VyUm9sZXMubGVuZ3RoID4gMSA/ICdzIHdlcmUnIDogJyB3YXMnfSBzdWNjZXNzZnVsbHkgYWRkZWQke1xuXHRcdFx0XHRcdGVudGl0eU5hbWUgPyBgIHRvIHlvdXIgJHtlbnRpdHlOYW1lfWAgOiAnJ1xuXHRcdFx0XHR9OlxcclxcbiR7YWRkZWROYW1lc31gXG5cdFx0XHQ6IHVuZGVmaW5lZFxuXG5cdFx0Y29uc3QgZXhpc3RpbmdOYW1lcyA9XG5cdFx0XHRleGlzdGluZ1VzZXJSb2xlcy5sZW5ndGggPiAwXG5cdFx0XHRcdD8gZXhpc3RpbmdVc2VyUm9sZXMubWFwKChldTogVXNlcikgPT4gYCR7ZGlzcGxheU5hbWUoZXUpfSR7ZXUudWlkID8gYCAoJHtldS51aWR9KWAgOiAnJ31gKS5qb2luKCdcXHJcXG4nKVxuXHRcdFx0XHQ6IHVuZGVmaW5lZFxuXG5cdFx0Y29uc3QgaGFzTXVsdGlwbGVFeGlzdGluZyA9IGV4aXN0aW5nVXNlclJvbGVzLmxlbmd0aCA+IDFcblx0XHRjb25zdCBleGlzdGluZ01lc3NhZ2UgPSBleGlzdGluZ05hbWVzXG5cdFx0XHQ/IGBUaGUgZm9sbG93aW5nICR7aGFzTXVsdGlwbGVFeGlzdGluZyA/ICdwZW9wbGUgd2VyZScgOiAncGVyc29uIHdhcyd9IGFscmVhZHkgJHtcblx0XHRcdFx0XHRlbnRpdHlOYW1lXG5cdFx0XHRcdFx0XHQ/IGBpbiB5b3VyICR7ZW50aXR5TmFtZX0gYXMgJHtoYXNNdWx0aXBsZUV4aXN0aW5nID8gJycgOiBgJHtzaW5ndWxhckFydGljbGVTdHJpbmd9IGB9YFxuXHRcdFx0XHRcdFx0OiBoYXNNdWx0aXBsZUV4aXN0aW5nXG5cdFx0XHRcdFx0XHRcdD8gJydcblx0XHRcdFx0XHRcdFx0OiBgJHtzaW5ndWxhckFydGljbGVTdHJpbmd9IGBcblx0XHRcdFx0fSR7cm9sZVN0cmluZ30ke2hhc011bHRpcGxlRXhpc3RpbmcgPyAncycgOiAnJ306XFxyXFxuJHtleGlzdGluZ05hbWVzfWBcblx0XHRcdDogdW5kZWZpbmVkXG5cblx0XHRjb25zdCBibG9ja2VkTmFtZXMgPVxuXHRcdFx0ISFibG9ja2VkVXNlclJvbGVzICYmIGJsb2NrZWRVc2VyUm9sZXMubGVuZ3RoID4gMFxuXHRcdFx0XHQ/IGJsb2NrZWRVc2VyUm9sZXMubWFwKChldTogVXNlcikgPT4gYCR7ZGlzcGxheU5hbWUoZXUpfSR7ZXUudWlkID8gYCAoJHtldS51aWR9KWAgOiAnJ31gKS5qb2luKCdcXHJcXG4nKVxuXHRcdFx0XHQ6IHVuZGVmaW5lZFxuXHRcdGNvbnN0IGhhc011bHRpcGxlQmxvY2tlZCA9ICEhYmxvY2tlZFVzZXJSb2xlcyAmJiBibG9ja2VkVXNlclJvbGVzLmxlbmd0aCA+IDFcblx0XHRjb25zdCBibG9ja2VkTWVzc2FnZSA9IGJsb2NrZWROYW1lc1xuXHRcdFx0PyBgVGhlIGZvbGxvd2luZyAke2hhc011bHRpcGxlQmxvY2tlZCA/ICdwZW9wbGUnIDogJ3BlcnNvbid9IGNvdWxkIG5vdCBiZSBhZGRlZCAke1xuXHRcdFx0XHRcdGVudGl0eU5hbWUgPyBgdG8geW91ciAke2VudGl0eU5hbWV9YCA6ICcnXG5cdFx0XHRcdH0gYXMgJHtoYXNNdWx0aXBsZUJsb2NrZWQgPyAnJyA6IGAke3Npbmd1bGFyQXJ0aWNsZVN0cmluZ30gYH0ke3JvbGVTdHJpbmd9JHtcblx0XHRcdFx0XHRoYXNNdWx0aXBsZUJsb2NrZWQgPyAncycgOiAnJ1xuXHRcdFx0XHR9IGJlY2F1c2UgdGhleSBhbHJlYWR5IGhhdmUgYSByb2xlOlxcclxcbiR7YmxvY2tlZE5hbWVzfWBcblx0XHRcdDogdW5kZWZpbmVkXG5cblx0XHRsZXQgZmFpbE1lc3NhZ2UgPVxuXHRcdFx0aW52YWxpZElkZW50aWZpZXJzLmxlbmd0aCA+IDBcblx0XHRcdFx0PyBgVGhlIGZvbGxvd2luZyAke2dldERvbWFpbklkZW50aWZpZXJUeXBlUGx1cmFsU3RyaW5nKCl9IGFyZSBpbnZhbGlkOlxcclxcbiR7aW52YWxpZElkZW50aWZpZXJzLmpvaW4oXG5cdFx0XHRcdFx0XHQnXFxyXFxuJ1xuXHRcdFx0XHRcdCl9YFxuXHRcdFx0XHQ6IHVuZGVmaW5lZFxuXG5cdFx0aWYgKGludmFsaWREb21haW5JZGVudGlmaWVycy5sZW5ndGggPiAwKSB7XG5cdFx0XHRmYWlsTWVzc2FnZSA9IGAke1xuXHRcdFx0XHRmYWlsTWVzc2FnZSA/IGAke2ZhaWxNZXNzYWdlfVxcclxcbmAgOiAnJ1xuXHRcdFx0fVRoZSBmb2xsb3dpbmcgJHtnZXREb21haW5JZGVudGlmaWVyVHlwZVBsdXJhbFN0cmluZygpfSBkbyBub3QgbWF0Y2ggdGhlIGFsbG93ZWQgZG9tYWlucyBvZiAke2FsbG93ZWREb21haW5zLnJlcGxhY2UoXG5cdFx0XHRcdCcsJyxcblx0XHRcdFx0JywgJ1xuXHRcdFx0KX06XFxyXFxuJHtpbnZhbGlkRG9tYWluSWRlbnRpZmllcnMuam9pbignXFxyXFxuJyl9YFxuXHRcdH1cblxuXHRcdHRoaXMuc2V0U3RhdGUoe1xuXHRcdFx0c2hvdWxkUmVzZXRBZGRGb3JtOiB0cnVlLFxuXHRcdFx0aXNBZGRpbmc6IGZhbHNlLFxuXHRcdFx0aWRlbnRpZmllcnNUb0FkZDogdW5kZWZpbmVkLFxuXHRcdFx0cm9sZUZvckFkZDogdW5kZWZpbmVkLFxuXHRcdFx0c3VjY2Vzc01lc3NhZ2UsXG5cdFx0XHRleGlzdGluZ01lc3NhZ2UsXG5cdFx0XHRibG9ja2VkTWVzc2FnZSxcblx0XHRcdGZhaWxNZXNzYWdlXG5cdFx0fSlcblxuXHRcdC8vIG9ubHkgcmVsb2FkIGlmIHdlIGhhZCBzb21lIHN1Y2Nlc3NmdWwgYWRkc1xuXHRcdGlmIChhZGRlZE5hbWVzKSB7XG5cdFx0XHQvLyB1cGRhdGUgcmVkdXggd2l0aCBhZGRlZCB1c2VyUm9sZXNcblx0XHRcdGNvbnN0IHVwZGF0ZWRNb2RlbCA9IGNsb25lRGVlcChtb2RlbClcblx0XHRcdGFkZGVkVXNlclJvbGVzLmZvckVhY2godXNlclJvbGUgPT4gKHVwZGF0ZWRNb2RlbFt1c2VyUm9sZS5pZF0gPSBjbG9uZURlZXAodXNlclJvbGUpKSlcblxuXHRcdFx0Ly8gY3JlYXRlIGEgZHVtbXkgYWN0aW9uIGFuZCBjYWxsIGBwcmVwYXJlRmV0Y2hgIHRvIGdldCB0aGUgZmluYWwgYG1vZGVsUGF0aGBcblx0XHRcdGNvbnN0IHsgbW9kZWxQYXRoIH0gPSBwcmVwYXJlRmV0Y2goXG5cdFx0XHRcdHtcblx0XHRcdFx0XHR0eXBlOiBNT0RFTF9GRVRDSF9SRVFVRVNUX0FDVElPTl9UWVBFLkZFVENIX1JFUVVFU1QsXG5cdFx0XHRcdFx0bW9kZWxOYW1lLFxuXHRcdFx0XHRcdHBhdGhQYXJhbXNcblx0XHRcdFx0fSxcblx0XHRcdFx0Z2V0RW5kcG9pbnRNYXBwaW5ncygpXG5cdFx0XHQpXG5cdFx0XHRkaXNwYXRjaEFjdGlvbjxNb2RlbEZldGNoUmVzdWx0QWN0aW9uPih7XG5cdFx0XHRcdHR5cGU6IE1PREVMX0ZFVENIX1JFU1VMVF9BQ1RJT05fVFlQRS5GRVRDSF9SRVNVTFRfUkVDRUlWRUQsXG5cdFx0XHRcdG1vZGVsUGF0aCxcblx0XHRcdFx0ZGF0YTogdXBkYXRlZE1vZGVsXG5cdFx0XHR9KVxuXG5cdFx0XHRpZiAob25BZGQpIHtcblx0XHRcdFx0b25BZGQoYWRkZWRVc2VyUm9sZXMpXG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Ly8jZW5kcmVnaW9uIEFkZCBVc2Vyc1xuXG5cdC8vI3JlZ2lvbiBVcGRhdGVcblxuXHR1cGRhdGVVc2VyUm9sZSA9ICh1c2VyUm9sZVRvVXBkYXRlOiBVc2VyUm9sZSwgbmV3Um9sZTogc3RyaW5nKSA9PiB7XG5cdFx0dGhpcy5zZXRTdGF0ZSh7XG5cdFx0XHRpc1VwZGF0aW5nOiB0cnVlLFxuXHRcdFx0dXNlclJvbGVUb1VwZGF0ZSxcblx0XHRcdHJvbGVGb3JVcGRhdGU6IG5ld1JvbGUsXG5cdFx0XHRzdWNjZXNzTWVzc2FnZTogdW5kZWZpbmVkLFxuXHRcdFx0ZmFpbE1lc3NhZ2U6IHVuZGVmaW5lZFxuXHRcdH0pXG5cdFx0dGhpcy5wcm9wcy51cGRhdGUoe1xuXHRcdFx0aWQ6IHVzZXJSb2xlVG9VcGRhdGUuaWQsXG5cdFx0XHRib2R5OiB7fSxcblx0XHRcdHF1ZXJ5UGFyYW1zOiB7XG5cdFx0XHRcdHJvbGVOYW1lOiBuZXdSb2xlXG5cdFx0XHR9XG5cdFx0fSlcblx0fVxuXG5cdGRpZFVwZGF0ZSA9IChpc1N1Y2Nlc3M6IGJvb2xlYW4pID0+IHtcblx0XHRjb25zdCB7IGVudGl0eU5hbWUsIG9uVXBkYXRlIH0gPSB0aGlzLnByb3BzXG5cdFx0Y29uc3QgeyB1c2VyUm9sZVRvVXBkYXRlLCByb2xlRm9yVXBkYXRlIH0gPSB0aGlzLnN0YXRlXG5cdFx0aWYgKHVzZXJSb2xlVG9VcGRhdGUgPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKCdgZGlkVXBkYXRlYCB3YXMgY2FsbGVkIHdpdGhvdXQgc2V0dGluZyBgdXNlclJvbGVUb1VwZGF0ZWAgaW4gc3RhdGUnKVxuXHRcdH1cblx0XHRpZiAocm9sZUZvclVwZGF0ZSA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoJ2BkaWRVcGRhdGVgIHdhcyBjYWxsZWQgd2l0aG91dCBzZXR0aW5nIGByb2xlRm9yVXBkYXRlYCBpbiBzdGF0ZScpXG5cdFx0fVxuXG5cdFx0Y29uc3QgbmFtZSA9IGRpc3BsYXlOYW1lKHVzZXJSb2xlVG9VcGRhdGUpXG5cdFx0Y29uc3Qgcm9sZVN0cmluZyA9IHRoaXMudGV4dEZvclJvbGUocm9sZUZvclVwZGF0ZSwgdHJ1ZSlcblx0XHRjb25zdCBzaW5ndWxhckFydGljbGVTdHJpbmcgPSB0aGlzLnNpbmd1bGFyQXJ0aWNsZUZvclJvbGUocm9sZUZvclVwZGF0ZSlcblxuXHRcdGlmICghaXNTdWNjZXNzKSB7XG5cdFx0XHRjb25zdCBmYWlsTWVzc2FnZSA9IGBPb3BzISBUaGVyZSB3YXMgYW4gZXJyb3IgdXBkYXRpbmcgJHtuYW1lfSB0byAke3Npbmd1bGFyQXJ0aWNsZVN0cmluZ30gJHtyb2xlU3RyaW5nfSR7XG5cdFx0XHRcdGVudGl0eU5hbWUgPyBgIGluIHlvdXIgJHtlbnRpdHlOYW1lfWAgOiAnJ1xuXHRcdFx0fS4gUGxlYXNlIHRyeSBhZ2Fpbi5gXG5cdFx0XHR0aGlzLnNldFN0YXRlKHtcblx0XHRcdFx0aXNVcGRhdGluZzogZmFsc2UsXG5cdFx0XHRcdHVzZXJSb2xlVG9VcGRhdGU6IHVuZGVmaW5lZCxcblx0XHRcdFx0cm9sZUZvclVwZGF0ZTogdW5kZWZpbmVkLFxuXHRcdFx0XHRmYWlsTWVzc2FnZVxuXHRcdFx0fSlcblx0XHRcdHJldHVyblxuXHRcdH1cblxuXHRcdGNvbnN0IHN1Y2Nlc3NNZXNzYWdlID0gYCR7bmFtZX0gd2FzIHN1Y2Nlc3NmdWxseSB1cGRhdGVkIHRvICR7c2luZ3VsYXJBcnRpY2xlU3RyaW5nfSAke3JvbGVTdHJpbmd9JHtcblx0XHRcdGVudGl0eU5hbWUgPyBgIGluIHlvdXIgJHtlbnRpdHlOYW1lfWAgOiAnJ1xuXHRcdH0uYFxuXG5cdFx0aWYgKG9uVXBkYXRlKSB7XG5cdFx0XHRvblVwZGF0ZSh1c2VyUm9sZVRvVXBkYXRlLCByb2xlRm9yVXBkYXRlKVxuXHRcdH1cblxuXHRcdHRoaXMuc2V0U3RhdGUoe1xuXHRcdFx0aXNVcGRhdGluZzogZmFsc2UsXG5cdFx0XHR1c2VyUm9sZVRvVXBkYXRlOiB1bmRlZmluZWQsXG5cdFx0XHRyb2xlRm9yVXBkYXRlOiB1bmRlZmluZWQsXG5cdFx0XHRzdWNjZXNzTWVzc2FnZVxuXHRcdH0pXG5cdH1cblxuXHQvLyNlbmRyZWdpb24gVXBkYXRlXG5cblx0Ly8jcmVnaW9uIFJlbW92ZSBVc2VyXG5cblx0YWxlcnRSZW1vdmVVc2VyUm9sZSA9ICh1c2VyUm9sZVRvUmVtb3ZlOiBVc2VyUm9sZSkgPT4ge1xuXHRcdHRoaXMuc2V0U3RhdGUoe1xuXHRcdFx0dXNlclJvbGVUb1JlbW92ZSxcblx0XHRcdHNob3VsZFNob3dSZW1vdmVEaWFsb2c6IHRydWVcblx0XHR9KVxuXHR9XG5cblx0cmVtb3ZlVXNlclJvbGVUaXRsZSA9IChyb2xlRm9yUmVtb3ZlOiBzdHJpbmcpID0+IHtcblx0XHRyZXR1cm4gYFJlbW92ZSAke3RoaXMudGV4dEZvclJvbGUocm9sZUZvclJlbW92ZSl9YFxuXHR9XG5cblx0cmVuZGVyUmVtb3ZlVXNlclJvbGVEZXNjcmlwdGlvbiA9ICh1c2VyUm9sZVRvUmVtb3ZlOiBVc2VyUm9sZSwgd2FybmluZz86IFJlYWN0LkpTWC5FbGVtZW50KSA9PiB7XG5cdFx0Y29uc3QgeyBlbnRpdHksIGV4dGVybmFsUHJvdmlkZXJzIH0gPSB0aGlzLnByb3BzXG5cdFx0Y29uc3QgZ3JvdXAgPSBlbnRpdHkgJiYgJ2V4dGVybmFsR3JvdXBzJyBpbiBlbnRpdHkgPyAoZW50aXR5IGFzIEdyb3VwKSA6IHVuZGVmaW5lZFxuXG5cdFx0Y29uc3Qgcm9sZVN0cmluZyA9IHRoaXMudGV4dEZvclJvbGUodXNlclJvbGVUb1JlbW92ZS5yb2xlLCB0cnVlKVxuXHRcdGNvbnN0IHNpbmd1bGFyQXJ0aWNsZVN0cmluZyA9IHRoaXMuc2luZ3VsYXJBcnRpY2xlRm9yUm9sZSh1c2VyUm9sZVRvUmVtb3ZlLnJvbGUpXG5cdFx0Y29uc3QgZGVmYXVsdFdhcm5pbmcgPSB3YXJuaW5nID8/IChcblx0XHRcdDxwIGNsYXNzTmFtZT1cIm1hMFwiPlxuXHRcdFx0XHRBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gPHN0cm9uZz5yZW1vdmUge2Rpc3BsYXlOYW1lKHVzZXJSb2xlVG9SZW1vdmUpfTwvc3Ryb25nPiBhc3snICd9XG5cdFx0XHRcdHtzaW5ndWxhckFydGljbGVTdHJpbmd9IHtyb2xlU3RyaW5nfT9cblx0XHRcdDwvcD5cblx0XHQpXG5cblx0XHRjb25zdCBleHRlcm5hbEdyb3Vwc1RvUmVtb3ZlID0gZ3JvdXA/LmV4dGVybmFsR3JvdXBzLmZpbHRlcihlZyA9PiBlZy51c2VySWQgPT09IHVzZXJSb2xlVG9SZW1vdmUuaWQpXG5cblx0XHRpZiAoXG5cdFx0XHQhZXh0ZXJuYWxHcm91cHNUb1JlbW92ZSB8fFxuXHRcdFx0ZXh0ZXJuYWxHcm91cHNUb1JlbW92ZS5sZW5ndGggPT09IDAgfHxcblx0XHRcdHVzZXJSb2xlVG9SZW1vdmUucm9sZSAhPT0gQkFTRV9ST0xFLkdST1VQX09XTkVSXG5cdFx0KSB7XG5cdFx0XHRyZXR1cm4gZGVmYXVsdFdhcm5pbmdcblx0XHR9XG5cblx0XHRjb25zdCBleHRlcm5hbEdyb3Vwc1RvUmVtb3ZlV2l0aFJvc3RlclN5bmMgPSBleHRlcm5hbEdyb3Vwc1RvUmVtb3ZlLmZpbHRlcihcblx0XHRcdGVnID0+IGV4dGVybmFsUHJvdmlkZXJzPy5bZWcuZXh0ZXJuYWxQcm92aWRlcklkXT8ucm9zdGVyU3luY0VuYWJsZWRcblx0XHQpXG5cblx0XHRyZXR1cm4gKFxuXHRcdFx0PGRpdj5cblx0XHRcdFx0PHA+XG5cdFx0XHRcdFx0VGhlIGZvbGxvd2luZyBjb3Vyc2Ugc2VjdGlvbnMgd2lsbCBiZSA8c3Ryb25nPmRpc2Nvbm5lY3RlZDwvc3Ryb25nPi57JyAnfVxuXHRcdFx0XHRcdHtleHRlcm5hbEdyb3Vwc1RvUmVtb3ZlV2l0aFJvc3RlclN5bmMubGVuZ3RoID4gMCAmJiAoXG5cdFx0XHRcdFx0XHQ8c3Bhbj5cblx0XHRcdFx0XHRcdFx0QW55IGF1dG9tYXRpY2FsbHkgYWRkZWQgc3R1ZGVudHMgd2lsbCBiZSA8c3Ryb25nPnJlbW92ZWQ8L3N0cm9uZz4uXG5cdFx0XHRcdFx0XHQ8L3NwYW4+XG5cdFx0XHRcdFx0KX1cblx0XHRcdFx0PC9wPlxuXHRcdFx0XHQ8dWw+XG5cdFx0XHRcdFx0e2V4dGVybmFsR3JvdXBzVG9SZW1vdmUubWFwKGVnID0+IChcblx0XHRcdFx0XHRcdDxsaSBrZXk9e2VnLmlkfT57ZWcuZGVzY3JpcHRpb259PC9saT5cblx0XHRcdFx0XHQpKX1cblx0XHRcdFx0PC91bD5cblx0XHRcdFx0e2RlZmF1bHRXYXJuaW5nfVxuXHRcdFx0PC9kaXY+XG5cdFx0KVxuXHR9XG5cblx0cmVtb3ZlVXNlclJvbGUgPSAoc2hvdWxkUmVtb3ZlOiBib29sZWFuKSA9PiB7XG5cdFx0Y29uc3QgeyB1c2VyUm9sZVRvUmVtb3ZlIH0gPSB0aGlzLnN0YXRlXG5cdFx0aWYgKHVzZXJSb2xlVG9SZW1vdmUgPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKCdgcmVtb3ZlVXNlcmAgd2FzIGNhbGxlZCB3aXRob3V0IHNldHRpbmcgYHVzZXJSb2xlVG9SZW1vdmVgIGluIHN0YXRlJylcblx0XHR9XG5cdFx0dGhpcy5zZXRTdGF0ZSh7XG5cdFx0XHRpc1JlbW92aW5nOiBzaG91bGRSZW1vdmUsXG5cdFx0XHRzaG91bGRTaG93UmVtb3ZlRGlhbG9nOiBmYWxzZSxcblx0XHRcdHN1Y2Nlc3NNZXNzYWdlOiB1bmRlZmluZWQsXG5cdFx0XHRmYWlsTWVzc2FnZTogdW5kZWZpbmVkLFxuXHRcdFx0Ly8gY2xlYXIgaWYgY2FuY2VsbGVkXG5cdFx0XHR1c2VyUm9sZVRvUmVtb3ZlOiBzaG91bGRSZW1vdmUgPyB1c2VyUm9sZVRvUmVtb3ZlIDogdW5kZWZpbmVkXG5cdFx0fSlcblx0XHRpZiAoIXNob3VsZFJlbW92ZSkge1xuXHRcdFx0cmV0dXJuXG5cdFx0fVxuXHRcdHRoaXMucHJvcHMuZGVsZXRlKHtcblx0XHRcdGlkOiB1c2VyUm9sZVRvUmVtb3ZlLmlkXG5cdFx0fSlcblx0fVxuXG5cdGRpZFJlbW92ZSA9IChpc1N1Y2Nlc3M6IGJvb2xlYW4pID0+IHtcblx0XHRjb25zdCB7IGVudGl0eU5hbWUsIG9uUmVtb3ZlIH0gPSB0aGlzLnByb3BzXG5cdFx0Y29uc3QgeyB1c2VyUm9sZVRvUmVtb3ZlIH0gPSB0aGlzLnN0YXRlXG5cdFx0aWYgKHVzZXJSb2xlVG9SZW1vdmUgPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKCdgZGlkUmVtb3ZlYCB3YXMgY2FsbGVkIHdpdGhvdXQgc2V0dGluZyBgdXNlclJvbGVUb1JlbW92ZWAgaW4gc3RhdGUnKVxuXHRcdH1cblxuXHRcdGNvbnN0IG5hbWUgPSBkaXNwbGF5TmFtZSh1c2VyUm9sZVRvUmVtb3ZlKVxuXHRcdGlmICghaXNTdWNjZXNzKSB7XG5cdFx0XHRjb25zdCBmYWlsTWVzc2FnZSA9IGBPb3BzISBUaGVyZSB3YXMgYW4gZXJyb3IgcmVtb3ZpbmcgJHtuYW1lfSR7XG5cdFx0XHRcdGVudGl0eU5hbWUgPyBgIGZyb20geW91ciAke2VudGl0eU5hbWV9YCA6ICcnXG5cdFx0XHR9LiBQbGVhc2UgdHJ5IGFnYWluLmBcblx0XHRcdHRoaXMuc2V0U3RhdGUoe1xuXHRcdFx0XHRpc1JlbW92aW5nOiBmYWxzZSxcblx0XHRcdFx0dXNlclJvbGVUb1JlbW92ZTogdW5kZWZpbmVkLFxuXHRcdFx0XHRmYWlsTWVzc2FnZVxuXHRcdFx0fSlcblx0XHRcdHJldHVyblxuXHRcdH1cblxuXHRcdGNvbnN0IHN1Y2Nlc3NNZXNzYWdlID0gYCR7bmFtZX0gd2FzIHN1Y2Nlc3NmdWxseSByZW1vdmVkJHtlbnRpdHlOYW1lID8gYCBmcm9tIHlvdXIgJHtlbnRpdHlOYW1lfWAgOiAnJ30uYFxuXG5cdFx0aWYgKG9uUmVtb3ZlKSB7XG5cdFx0XHRvblJlbW92ZSh1c2VyUm9sZVRvUmVtb3ZlKVxuXHRcdH1cblxuXHRcdHRoaXMuc2V0U3RhdGUoe1xuXHRcdFx0aXNSZW1vdmluZzogZmFsc2UsXG5cdFx0XHR1c2VyUm9sZVRvUmVtb3ZlOiB1bmRlZmluZWQsXG5cdFx0XHRzdWNjZXNzTWVzc2FnZVxuXHRcdH0pXG5cdH1cblxuXHQvLyNlbmRyZWdpb24gUmVtb3ZlIFVzZXJcblxuXHRyZW5kZXIoKSB7XG5cdFx0Y29uc3Qge1xuXHRcdFx0bW9kZWxTdGF0dXMsXG5cdFx0XHRjYW5Nb2RpZnksXG5cdFx0XHRyZWFkT25seSxcblx0XHRcdGNhbkRlbGV0ZVNlbGYsXG5cdFx0XHRhbGxvd011bHRpcGxlUm9sZXMsXG5cdFx0XHRpc0FkZERpc2FibGVkLFxuXHRcdFx0aXNVcGRhdGVEaXNhYmxlZCxcblx0XHRcdGlzRGVsZXRlRGlzYWJsZWQsXG5cdFx0XHRkZWZhdWx0Um9sZSxcblx0XHRcdHJlcXVpcmVkUm9sZSxcblx0XHRcdHJvbGVEZXNjcmlwdGlvbnMsXG5cdFx0XHRhZGRSb2xlRXhjbHVkZUxpc3QsXG5cdFx0XHRlbnRpdHlOYW1lLFxuXHRcdFx0cmVuZGVyVGFibGVEZXNjcmlwdGlvbixcblx0XHRcdHJlbmRlckFkZERlc2NyaXB0aW9uXG5cdFx0fSA9IHRoaXMucHJvcHNcblx0XHRjb25zdCB7XG5cdFx0XHRzb3J0ZWRVc2Vycyxcblx0XHRcdGlzQWRkaW5nLFxuXHRcdFx0aXNVcGRhdGluZyxcblx0XHRcdGlzUmVtb3ZpbmcsXG5cdFx0XHRzaG91bGRSZXNldEFkZEZvcm0sXG5cdFx0XHRzaG91bGRTaG93UmVtb3ZlRGlhbG9nLFxuXHRcdFx0dXNlclJvbGVUb1VwZGF0ZSxcblx0XHRcdHVzZXJSb2xlVG9SZW1vdmUsXG5cdFx0XHRzdWNjZXNzTWVzc2FnZSxcblx0XHRcdGV4aXN0aW5nTWVzc2FnZSxcblx0XHRcdGJsb2NrZWRNZXNzYWdlLFxuXHRcdFx0ZmFpbE1lc3NhZ2Vcblx0XHR9ID0gdGhpcy5zdGF0ZVxuXG5cdFx0Y29uc3QgYWRkYWJsZVJvbGVEZXNjcmlwdGlvbnMgPSBhZGRSb2xlRXhjbHVkZUxpc3Rcblx0XHRcdD8gcGlja0J5KHJvbGVEZXNjcmlwdGlvbnMsIChfLCBrZXkpID0+ICFhZGRSb2xlRXhjbHVkZUxpc3QuaW5jbHVkZXMoa2V5KSlcblx0XHRcdDogcm9sZURlc2NyaXB0aW9uc1xuXHRcdGNvbnN0IHJvbGVzID0gT2JqZWN0LmtleXMocm9sZURlc2NyaXB0aW9ucylcblx0XHRjb25zdCBzaG91bGRSZW5kZXJBc011dGFibGUgPSAhcmVhZE9ubHkgJiYgY2FuTW9kaWZ5XG5cblx0XHRyZXR1cm4gKFxuXHRcdFx0PD5cblx0XHRcdFx0eyEhc3VjY2Vzc01lc3NhZ2UgJiYgKFxuXHRcdFx0XHRcdDxBbGVydFdpdGhJY29uXG5cdFx0XHRcdFx0XHRpZD1cInN1Y2Nlc3NNZXNzYWdlQWxlcnRcIlxuXHRcdFx0XHRcdFx0dmFyaWFudD1cInN1Y2Nlc3NcIlxuXHRcdFx0XHRcdFx0ZGlzbWlzc2libGVcblx0XHRcdFx0XHRcdG9uQ2xvc2U9eygpID0+XG5cdFx0XHRcdFx0XHRcdHRoaXMuc2V0U3RhdGUoe1xuXHRcdFx0XHRcdFx0XHRcdHN1Y2Nlc3NNZXNzYWdlOiB1bmRlZmluZWRcblx0XHRcdFx0XHRcdFx0fSlcblx0XHRcdFx0XHRcdH0+XG5cdFx0XHRcdFx0XHQ8cCBjbGFzc05hbWU9XCJwcmUtd3JhcFwiPntzdWNjZXNzTWVzc2FnZX08L3A+XG5cdFx0XHRcdFx0PC9BbGVydFdpdGhJY29uPlxuXHRcdFx0XHQpfVxuXHRcdFx0XHR7ISFleGlzdGluZ01lc3NhZ2UgJiYgKFxuXHRcdFx0XHRcdDxBbGVydFdpdGhJY29uXG5cdFx0XHRcdFx0XHRpZD1cImV4aXN0aW5nTWVzc2FnZUFsZXJ0XCJcblx0XHRcdFx0XHRcdHZhcmlhbnQ9XCJpbmZvXCJcblx0XHRcdFx0XHRcdGRpc21pc3NpYmxlXG5cdFx0XHRcdFx0XHRvbkNsb3NlPXsoKSA9PlxuXHRcdFx0XHRcdFx0XHR0aGlzLnNldFN0YXRlKHtcblx0XHRcdFx0XHRcdFx0XHRleGlzdGluZ01lc3NhZ2U6IHVuZGVmaW5lZFxuXHRcdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0fT5cblx0XHRcdFx0XHRcdDxwIGNsYXNzTmFtZT1cInByZS13cmFwXCI+e2V4aXN0aW5nTWVzc2FnZX08L3A+XG5cdFx0XHRcdFx0PC9BbGVydFdpdGhJY29uPlxuXHRcdFx0XHQpfVxuXHRcdFx0XHR7ISFibG9ja2VkTWVzc2FnZSAmJiAoXG5cdFx0XHRcdFx0PEFsZXJ0V2l0aEljb25cblx0XHRcdFx0XHRcdGlkPVwiYmxvY2tlZE1lc3NhZ2VBbGVydFwiXG5cdFx0XHRcdFx0XHR2YXJpYW50PVwid2FybmluZ1wiXG5cdFx0XHRcdFx0XHRkaXNtaXNzaWJsZVxuXHRcdFx0XHRcdFx0b25DbG9zZT17KCkgPT5cblx0XHRcdFx0XHRcdFx0dGhpcy5zZXRTdGF0ZSh7XG5cdFx0XHRcdFx0XHRcdFx0YmxvY2tlZE1lc3NhZ2U6IHVuZGVmaW5lZFxuXHRcdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0fT5cblx0XHRcdFx0XHRcdDxwIGNsYXNzTmFtZT1cInByZS13cmFwXCI+e2Jsb2NrZWRNZXNzYWdlfTwvcD5cblx0XHRcdFx0XHQ8L0FsZXJ0V2l0aEljb24+XG5cdFx0XHRcdCl9XG5cdFx0XHRcdHshIWZhaWxNZXNzYWdlICYmIChcblx0XHRcdFx0XHQ8QWxlcnRXaXRoSWNvblxuXHRcdFx0XHRcdFx0aWQ9XCJmYWlsTWVzc2FnZUFsZXJ0XCJcblx0XHRcdFx0XHRcdHZhcmlhbnQ9XCJ3YXJuaW5nXCJcblx0XHRcdFx0XHRcdGRpc21pc3NpYmxlXG5cdFx0XHRcdFx0XHRvbkNsb3NlPXsoKSA9PlxuXHRcdFx0XHRcdFx0XHR0aGlzLnNldFN0YXRlKHtcblx0XHRcdFx0XHRcdFx0XHRmYWlsTWVzc2FnZTogdW5kZWZpbmVkXG5cdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHR9PlxuXHRcdFx0XHRcdFx0PHAgY2xhc3NOYW1lPVwicHJlLXdyYXBcIj57ZmFpbE1lc3NhZ2V9PC9wPlxuXHRcdFx0XHRcdDwvQWxlcnRXaXRoSWNvbj5cblx0XHRcdFx0KX1cblx0XHRcdFx0e3Nob3VsZFJlbmRlckFzTXV0YWJsZSAmJiAoXG5cdFx0XHRcdFx0PFVzZXJSb2xlc0FkZFxuXHRcdFx0XHRcdFx0aWQ9XCJlbnRpdHlVc2VyUm9sZXNBZGRcIlxuXHRcdFx0XHRcdFx0ZGlzYWJsZWQ9e2lzQWRkRGlzYWJsZWR9XG5cdFx0XHRcdFx0XHRlbnRpdHlOYW1lPXtlbnRpdHlOYW1lfVxuXHRcdFx0XHRcdFx0ZGVmYXVsdFJvbGU9e2RlZmF1bHRSb2xlfVxuXHRcdFx0XHRcdFx0cm9sZURlc2NyaXB0aW9ucz17YWRkYWJsZVJvbGVEZXNjcmlwdGlvbnN9XG5cdFx0XHRcdFx0XHRyZW5kZXJBZGREZXNjcmlwdGlvbj17cmVuZGVyQWRkRGVzY3JpcHRpb259XG5cdFx0XHRcdFx0XHR0ZXh0Rm9yUm9sZT17dGhpcy50ZXh0Rm9yUm9sZX1cblx0XHRcdFx0XHRcdGlzQWRkaW5nVXNlcnNUb1JvbGU9e2lzQWRkaW5nfVxuXHRcdFx0XHRcdFx0c2hvdWxkUmVzZXQ9e3Nob3VsZFJlc2V0QWRkRm9ybX1cblx0XHRcdFx0XHRcdGFkZFVzZXJSb2xlcz17dGhpcy5hZGRVc2VyUm9sZXN9XG5cdFx0XHRcdFx0Lz5cblx0XHRcdFx0KX1cblx0XHRcdFx0eyEhcmVuZGVyVGFibGVEZXNjcmlwdGlvbiAmJiByZW5kZXJUYWJsZURlc2NyaXB0aW9uKHNob3VsZFJlbmRlckFzTXV0YWJsZSl9XG5cdFx0XHRcdDxSb3cgY2xhc3NOYW1lPVwibXQzXCI+XG5cdFx0XHRcdFx0PENvbCB4cz17MTJ9PlxuXHRcdFx0XHRcdFx0e21vZGVsU3RhdHVzID09PSBNT0RFTF9TVEFUVVMuTE9BRElORyA/IChcblx0XHRcdFx0XHRcdFx0PExvYWRpbmcgLz5cblx0XHRcdFx0XHRcdCkgOiBzb3J0ZWRVc2Vycy5sZW5ndGggPiAwID8gKFxuXHRcdFx0XHRcdFx0XHQ8VXNlclJvbGVzQ29udGV4dC5Qcm92aWRlclxuXHRcdFx0XHRcdFx0XHRcdHZhbHVlPXt7XG5cdFx0XHRcdFx0XHRcdFx0XHRpc1VwZGF0ZURpc2FibGVkOiBpc1VwZGF0ZURpc2FibGVkIHx8IHJlYWRPbmx5LFxuXHRcdFx0XHRcdFx0XHRcdFx0aXNEZWxldGVEaXNhYmxlZDogaXNEZWxldGVEaXNhYmxlZCB8fCByZWFkT25seSxcblx0XHRcdFx0XHRcdFx0XHRcdGNhbk1vZGlmeTogc2hvdWxkUmVuZGVyQXNNdXRhYmxlLFxuXHRcdFx0XHRcdFx0XHRcdFx0Y2FuRGVsZXRlU2VsZixcblx0XHRcdFx0XHRcdFx0XHRcdGFsbG93TXVsdGlwbGVSb2xlcyxcblx0XHRcdFx0XHRcdFx0XHRcdHJvbGVzLFxuXHRcdFx0XHRcdFx0XHRcdFx0cmVxdWlyZWRSb2xlLFxuXHRcdFx0XHRcdFx0XHRcdFx0dGV4dEZvclJvbGU6IHRoaXMudGV4dEZvclJvbGUsXG5cdFx0XHRcdFx0XHRcdFx0XHR1c2VyUm9sZVRvVXBkYXRlLFxuXHRcdFx0XHRcdFx0XHRcdFx0aXNVcGRhdGluZyxcblx0XHRcdFx0XHRcdFx0XHRcdHVwZGF0ZVVzZXJSb2xlOiB0aGlzLnVwZGF0ZVVzZXJSb2xlLFxuXHRcdFx0XHRcdFx0XHRcdFx0dXNlclJvbGVUb1JlbW92ZSxcblx0XHRcdFx0XHRcdFx0XHRcdGlzUmVtb3ZpbmcsXG5cdFx0XHRcdFx0XHRcdFx0XHRyZW1vdmVVc2VyUm9sZTogdGhpcy5hbGVydFJlbW92ZVVzZXJSb2xlXG5cdFx0XHRcdFx0XHRcdFx0fX0+XG5cdFx0XHRcdFx0XHRcdFx0PFVzZXJSb2xlc1RhYmxlIGlkPVwiZW50aXR5VXNlclJvbGVzVGFibGVcIiB1c2Vycz17c29ydGVkVXNlcnN9IC8+XG5cdFx0XHRcdFx0XHRcdDwvVXNlclJvbGVzQ29udGV4dC5Qcm92aWRlcj5cblx0XHRcdFx0XHRcdCkgOiBudWxsfVxuXHRcdFx0XHRcdDwvQ29sPlxuXHRcdFx0XHQ8L1Jvdz5cblx0XHRcdFx0eyEhdXNlclJvbGVUb1JlbW92ZSAmJiAoXG5cdFx0XHRcdFx0PEFsZXJ0RGlhbG9nXG5cdFx0XHRcdFx0XHRpZD1cInJlbW92ZVVzZXJBbGVydFwiXG5cdFx0XHRcdFx0XHRpc09wZW49e3Nob3VsZFNob3dSZW1vdmVEaWFsb2d9XG5cdFx0XHRcdFx0XHR0aXRsZT17dGhpcy5yZW1vdmVVc2VyUm9sZVRpdGxlKHVzZXJSb2xlVG9SZW1vdmUucm9sZSl9XG5cdFx0XHRcdFx0XHRkZXNjcmlwdGlvbj17dGhpcy5yZW5kZXJSZW1vdmVVc2VyUm9sZURlc2NyaXB0aW9uKHVzZXJSb2xlVG9SZW1vdmUpfVxuXHRcdFx0XHRcdFx0b25EZXN0cm95PXsoKSA9PiB0aGlzLnJlbW92ZVVzZXJSb2xlKHRydWUpfVxuXHRcdFx0XHRcdFx0ZGVzdHJveVRleHQ9XCJZZXMsIHJlbW92ZSB0aGUgdXNlclwiXG5cdFx0XHRcdFx0XHRvbkNhbmNlbD17KCkgPT4gdGhpcy5yZW1vdmVVc2VyUm9sZShmYWxzZSl9XG5cdFx0XHRcdFx0XHRjYW5jZWxUZXh0PVwiTm8sIEkgY2hhbmdlZCBteSBtaW5kXCJcblx0XHRcdFx0XHQvPlxuXHRcdFx0XHQpfVxuXHRcdFx0PC8+XG5cdFx0KVxuXHR9XG59XG5cbmV4cG9ydCBjb25zdCBtYXBTdGF0ZVRvUHJvcHMgPSAoc3RhdGU6IEJhc2VSZWR1eFN0YXRlLCBvd25Qcm9wczogVXNlclJvbGVzT3duUHJvcHMpOiBVc2VyUm9sZXNSZWR1eFByb3BzID0+IHtcblx0Y29uc3QgY2FuTW9kaWZ5R2xvYmFsbHkgPSBjYW5QZXJmb3JtQWN0aXZpdHlHbG9iYWxseShvd25Qcm9wcy5tb2RpZnlVc2VyUm9sZUFjdGl2aXR5TmFtZSwgZGVmYXVsdE9wdGlvbnMoc3RhdGUpKVxuXG5cdGNvbnN0IGNhbk1vZGlmeSA9XG5cdFx0Y2FuTW9kaWZ5R2xvYmFsbHkgfHxcblx0XHQob3duUHJvcHMuZW50aXR5XG5cdFx0XHQ/IGNhblBlcmZvcm1BY3Rpdml0eU9uRW50aXR5KG93blByb3BzLm1vZGlmeVVzZXJSb2xlQWN0aXZpdHlOYW1lLCBkZWZhdWx0T3B0aW9ucyhzdGF0ZSwgb3duUHJvcHMsICdlbnRpdHknKSlcblx0XHRcdDogZmFsc2UpXG5cblx0cmV0dXJuIHtcblx0XHRjYW5Nb2RpZnksXG5cdFx0Y2FuRGVsZXRlU2VsZjpcblx0XHRcdGNhbk1vZGlmeSB8fFxuXHRcdFx0KG93blByb3BzLmVudGl0eSAmJiBvd25Qcm9wcy5kZWxldGVPd25Vc2VyUm9sZUFjdGl2aXR5TmFtZVxuXHRcdFx0XHQ/IGNhblBlcmZvcm1BY3Rpdml0eU9uRW50aXR5KFxuXHRcdFx0XHRcdFx0b3duUHJvcHMuZGVsZXRlT3duVXNlclJvbGVBY3Rpdml0eU5hbWUsXG5cdFx0XHRcdFx0XHRkZWZhdWx0T3B0aW9ucyhzdGF0ZSwgb3duUHJvcHMsICdlbnRpdHknKVxuXHRcdFx0XHRcdClcblx0XHRcdFx0OiBmYWxzZSlcblx0fVxufVxuXG5leHBvcnQgZGVmYXVsdCBjb25uZWN0KG1hcFN0YXRlVG9Qcm9wcykoVXNlclJvbGVzKVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLE9BQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLGVBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLFdBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLEtBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLFlBQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLFFBQUEsR0FBQVAsT0FBQTtBQUNBLElBQUFRLElBQUEsR0FBQVIsT0FBQTtBQUNBLElBQUFTLE1BQUEsR0FBQVQsT0FBQTtBQUNBLElBQUFVLFVBQUEsR0FBQVYsT0FBQTtBQUNBLElBQUFXLFNBQUEsR0FBQVgsT0FBQTtBQUNBLElBQUFZLFlBQUEsR0FBQVosT0FBQTtBQUNBLElBQUFhLGNBQUEsR0FBQWIsT0FBQTtBQUNBLElBQUFjLFFBQUEsR0FBQWQsT0FBQTtBQUtBLElBQUFlLFlBQUEsR0FBQWYsT0FBQTtBQWNBLElBQUFnQixhQUFBLEdBQUFoQixPQUFBO0FBQ0EsSUFBQWlCLFVBQUEsR0FBQWpCLE9BQUE7QUFDQSxJQUFBa0IsaUJBQUEsR0FBQWxCLE9BQUE7QUFDQSxJQUFBbUIsZUFBQSxHQUFBbkIsT0FBQTtBQUNBLElBQUFvQixNQUFBLEdBQUFwQixPQUFBO0FBQ0EsSUFBQXFCLEtBQUEsR0FBQXJCLE9BQUE7QUFDQSxJQUFBc0IsS0FBQSxHQUFBdEIsT0FBQTtBQUNBLElBQUF1QixTQUFBLEdBQUF2QixPQUFBO0FBQ0EsSUFBQXdCLGNBQUEsR0FBQXhCLE9BQUE7QUFFQSxJQUFBeUIsUUFBQSxHQUFBekIsT0FBQTtBQUE0QyxJQUFBMEIs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RUFBRTFMLHNCQUF1QjtRQUMvQjJMLEtBQUssRUFBRSxJQUFJLENBQUNDLG1CQUFtQixDQUFDdEYsZ0JBQWdCLENBQUNsRixJQUFJLENBQUU7UUFDdkRxRyxXQUFXLEVBQUUsSUFBSSxDQUFDb0UsK0JBQStCLENBQUN2RixnQkFBZ0IsQ0FBRTtRQUNwRXdGLFNBQVMsRUFBRUEsQ0FBQSxLQUFNLElBQUksQ0FBQ1QsY0FBYyxDQUFDLElBQUksQ0FBRTtRQUMzQ1UsV0FBVyxFQUFDLHNCQUFzQjtRQUNsQ0MsUUFBUSxFQUFFQSxDQUFBLEtBQU0sSUFBSSxDQUFDWCxjQUFjLENBQUMsS0FBSyxDQUFFO1FBQzNDWSxVQUFVLEVBQUM7TUFBdUIsQ0FDbEMsQ0FDRDtJQUFBLENBQ0EsQ0FBQztFQUVMO0FBQ0Q7QUFBQ0MsT0FBQSxDQUFBaE4sU0FBQSxHQUFBQSxTQUFBO0FBRU0sTUFBTWlOLGVBQWUsR0FBR0EsQ0FBQzVKLEtBQXFCLEVBQUU2SixRQUEyQixLQUEwQjtFQUMzRyxNQUFNQyxpQkFBaUIsR0FBRyxJQUFBQyx3Q0FBMEIsRUFBQ0YsUUFBUSxDQUFDRywwQkFBMEIsRUFBRSxJQUFBQyw0QkFBYyxFQUFDakssS0FBSyxDQUFDLENBQUM7RUFFaEgsTUFBTXdHLFNBQVMsR0FDZHNELGlCQUFpQixLQUNoQkQsUUFBUSxDQUFDcEssTUFBTSxHQUNiLElBQUF5Syx3Q0FBMEIsRUFBQ0wsUUFBUSxDQUFDRywwQkFBMEIsRUFBRSxJQUFBQyw0QkFBYyxFQUFDakssS0FBSyxFQUFFNkosUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDLEdBQzFHLEtBQUssQ0FBQztFQUVWLE9BQU87SUFDTnJELFNBQVM7SUFDVEUsYUFBYSxFQUNaRixTQUFTLEtBQ1JxRCxRQUFRLENBQUNwSyxNQUFNLElBQUlvSyxRQUFRLENBQUNNLDZCQUE2QixHQUN2RCxJQUFBRCx3Q0FBMEIsRUFDMUJMLFFBQVEsQ0FBQ00sNkJBQTZCLEVBQ3RDLElBQUFGLDRCQUFjLEVBQUNqSyxLQUFLLEVBQUU2SixRQUFRLEVBQUUsUUFBUSxDQUN6QyxDQUFDLEdBQ0EsS0FBSztFQUNWLENBQUM7QUFDRixDQUFDO0FBQUFGLE9BQUEsQ0FBQUMsZUFBQSxHQUFBQSxlQUFBO0FBQUEsSUFBQVEsUUFBQSxHQUFBVCxPQUFBLENBQUF6TixPQUFBLEdBRWMsSUFBQW1PLG1CQUFPLEVBQUNULGVBQWUsQ0FBQyxDQUFDak4sU0FBUyxDQUFDIiwiaWdub3JlTGlzdCI6W119
@@ -1,4 +1,5 @@
1
1
  import { Action, AnyAction } from 'redux';
2
+ import { FetchCancelledData } from '../../types/net/FetchCancelledData';
2
3
  import { FetchErrorData } from '../../types/net/FetchErrorData';
3
4
  import { HTTPMethod } from '../../types/net/HTTPMethod';
4
5
  export declare enum MODEL_FETCH_REQUEST_ACTION_TYPE {
@@ -97,6 +98,17 @@ export interface ModelFetchResultAction extends Action<MODEL_FETCH_RESULT_ACTION
97
98
  }
98
99
  export declare const isModelFetchResultAction: (action: AnyAction) => action is ModelFetchResultAction;
99
100
  export declare const isTransientModelFetchResultAction: (action: AnyAction) => action is ModelFetchResultAction;
101
+ export declare enum MODEL_FETCH_CANCELLED_ACTION_TYPE {
102
+ FETCH_CANCELLED = "models/FETCH_CANCELLED",
103
+ TRANSIENT_FETCH_CANCELLED = "models/TRANSIENT_FETCH_CANCELLED"
104
+ }
105
+ /**
106
+ * Action used to update the target redux `modelPath` `_metadata` when a fetch is cancelled.
107
+ */
108
+ export interface ModelFetchCancelledAction extends Action<MODEL_FETCH_CANCELLED_ACTION_TYPE>, BaseModelStoreAction {
109
+ /** The data returned for a cancelled request. */
110
+ cancelledData: FetchCancelledData;
111
+ }
100
112
  export declare enum MODEL_FETCH_ERROR_ACTION_TYPE {
101
113
  FETCH_FAILED = "models/FETCH_FAILED",
102
114
  TRANSIENT_FETCH_FAILED = "models/TRANSIENT_FETCH_FAILED",
@@ -115,5 +127,5 @@ export declare const isModelTryFetchErrorAction: (action: AnyAction) => action i
115
127
  /**
116
128
  * A redux action related to a model fetch request, result, error, or remove key action. To be used by `modelsReducer`.
117
129
  */
118
- export type ModelStoreAction = ModelFetchStartAction | ModelFetchResultAction | ModelFetchErrorAction | ModelRemoveKeyAction;
130
+ export type ModelStoreAction = ModelFetchStartAction | ModelFetchResultAction | ModelFetchCancelledAction | ModelFetchErrorAction | ModelRemoveKeyAction;
119
131
  export {};