@kontur.candy/tools 2.183.0 → 2.184.0
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.
- package/CHANGELOG.md +3 -0
- package/distr/Common/ExtractGFVPath/ExtractGFVPath.js +31 -0
- package/distr/Common/ModelPath/Map/Map2.js +7 -2
- package/distr/Common/ModelPath/ModelPath.js +6 -1
- package/distr/Common/PathConstants.js +4 -2
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerLocalSourcesEngineController.js +13 -4
- package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/sugar/index.sugar.xml +1 -1
- package/distr/Tools/src/FormWebpackConfiguration/createFormWebpackConfiguration.js +4 -1
- package/distr/Tools/src/LocalServerFrontEndDist/index.js +1 -1
- package/distr/Tools/src/LocalServerFrontEndDist/index.js.map +1 -1
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.js +6 -1
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.js.map +1 -1
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.min.js +15 -10
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.min.js.map +1 -1
- package/package.json +1 -1
|
@@ -1414,6 +1414,11 @@
|
|
|
1414
1414
|
value: function (e) {
|
|
1415
1415
|
throw new Error("not implemented");
|
|
1416
1416
|
}
|
|
1417
|
+
}, {
|
|
1418
|
+
key: "addRelative",
|
|
1419
|
+
value: function () {
|
|
1420
|
+
throw new Error("not implemented");
|
|
1421
|
+
}
|
|
1417
1422
|
}, {
|
|
1418
1423
|
key: "reloadInner",
|
|
1419
1424
|
value: (_reloadInner = _asyncToGenerator(_regeneratorRuntime().mark(function e() {
|
|
@@ -1688,4 +1693,4 @@
|
|
|
1688
1693
|
};
|
|
1689
1694
|
var __webpack_exports__ = __webpack_require__(133);
|
|
1690
1695
|
})();
|
|
1691
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJuIiwiaSIsImEiLCJlIiwiY29uY2F0IiwibnMiLCJkcmFmdElkIiwidCIsImQiLCJyIiwibSIsImhtZCIsIm8iLCJyZWFjdEhvdExvYWRlckdsb2JhbCIsImVudGVyTW9kdWxlIiwiZGVmYXVsdCIsInNpZ25hdHVyZSIsInJlZ2lzdGVyIiwibGVhdmVNb2R1bGUiLCJtb2R1bGUiLCJfX3dlYnBhY2tfZXhwb3J0c19fIiwiX193ZWJwYWNrX3JlcXVpcmVfXyIsIl90eXBlb2YiLCJTeW1ib2wiLCJpdGVyYXRvciIsImNvbnN0cnVjdG9yIiwicHJvdG90eXBlIiwiX2NsYXNzQ2FsbENoZWNrIiwiVHlwZUVycm9yIiwiX2RlZmluZVByb3BlcnRpZXMiLCJsZW5ndGgiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsIl90b1Byb3BlcnR5S2V5Iiwia2V5IiwiX2NyZWF0ZUNsYXNzIiwiX3RvUHJpbWl0aXZlIiwiU3RyaW5nIiwidG9QcmltaXRpdmUiLCJjYWxsIiwiTnVtYmVyIiwiX2luaGVyaXRzIiwiY3JlYXRlIiwidmFsdWUiLCJfc2V0UHJvdG90eXBlT2YiLCJfY3JlYXRlU3VwZXIiLCJfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0IiwiX2dldFByb3RvdHlwZU9mIiwiUmVmbGVjdCIsImNvbnN0cnVjdCIsImFyZ3VtZW50cyIsImFwcGx5IiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4iLCJfYXNzZXJ0VGhpc0luaXRpYWxpemVkIiwiUmVmZXJlbmNlRXJyb3IiLCJfd3JhcE5hdGl2ZVN1cGVyIiwiTWFwIiwiX2lzTmF0aXZlRnVuY3Rpb24iLCJoYXMiLCJnZXQiLCJzZXQiLCJfY29uc3RydWN0IiwiYmluZCIsInB1c2giLCJGdW5jdGlvbiIsInNoYW0iLCJQcm94eSIsIkJvb2xlYW4iLCJ2YWx1ZU9mIiwidG9TdHJpbmciLCJpbmRleE9mIiwic2V0UHJvdG90eXBlT2YiLCJfX3Byb3RvX18iLCJnZXRQcm90b3R5cGVPZiIsIm5qIiwiTm90SW1wbGVtZW50ZWRFcnJvciIsIl9fc2lnbmF0dXJlX18iLCJBcHBsaWNhdGlvbkVycm9yIiwiX0Vycm9yIiwiX3N1cGVyIiwibmFtZSIsIl9fcmVhY3RzdGFuZGluX19yZWdlbmVyYXRlQnlFdmFsIiwiY29kZSIsImV2YWwiLCJFcnJvciIsIl9BcHBsaWNhdGlvbkVycm9yIiwiX3N1cGVyMiIsIk5vdFN1cHBvcnRlZEVycm9yIiwiX0FwcGxpY2F0aW9uRXJyb3IyIiwiX3N1cGVyMyIsIkludmFsaWRQcm9ncmFtU3RhdGVFcnJvciIsIl9BcHBsaWNhdGlvbkVycm9yMyIsIl9zdXBlcjQiLCJJbnZhbGlkQXJndW1lbnRFcnJvciIsIl9BcHBsaWNhdGlvbkVycm9yNCIsIl9zdXBlcjUiLCJUeXBpbmdFcnJvciIsIl9BcHBsaWNhdGlvbkVycm9yNSIsIl9zdXBlcjYiLCJyZWFjdEhvdExvYWRlciIsInUiLCJzIiwibCIsImMiLCJmIiwiZDEiLCJtZXNzYWdlIiwidHJpbSIsInNsaWNlIiwiZ2xvYmFsVGhpcyIsInNlbGYiLCJzZWFyY2hQYXJhbXMiLCJpdGVyYWJsZSIsImJsb2IiLCJCbG9iIiwiZm9ybURhdGEiLCJhcnJheUJ1ZmZlciIsIkFycmF5QnVmZmVyIiwiaXNWaWV3IiwidGVzdCIsInRvTG93ZXJDYXNlIiwibmV4dCIsInNoaWZ0IiwiZG9uZSIsIm1hcCIsImZvckVhY2giLCJhcHBlbmQiLCJBcnJheSIsImlzQXJyYXkiLCJnZXRPd25Qcm9wZXJ0eU5hbWVzIiwiYm9keVVzZWQiLCJQcm9taXNlIiwicmVqZWN0Iiwib25sb2FkIiwicmVzdWx0Iiwib25lcnJvciIsImVycm9yIiwicCIsIkZpbGVSZWFkZXIiLCJyZWFkQXNBcnJheUJ1ZmZlciIsInkiLCJVaW50OEFycmF5IiwiYnl0ZUxlbmd0aCIsImJ1ZmZlciIsIl9pbml0Qm9keSIsIl9ib2R5SW5pdCIsIl9ib2R5VGV4dCIsImlzUHJvdG90eXBlT2YiLCJfYm9keUJsb2IiLCJGb3JtRGF0YSIsIl9ib2R5Rm9ybURhdGEiLCJVUkxTZWFyY2hQYXJhbXMiLCJEYXRhVmlldyIsIl9ib2R5QXJyYXlCdWZmZXIiLCJoZWFkZXJzIiwidHlwZSIsInJlc29sdmUiLCJieXRlT2Zmc2V0IiwidGhlbiIsInRleHQiLCJyZWFkQXNUZXh0IiwiZnJvbUNoYXJDb2RlIiwiam9pbiIsIl8iLCJqc29uIiwiSlNPTiIsInBhcnNlIiwiZGVsZXRlIiwiaGFzT3duUHJvcGVydHkiLCJrZXlzIiwidmFsdWVzIiwiZW50cmllcyIsImgiLCJnIiwiYm9keSIsInVybCIsImNyZWRlbnRpYWxzIiwibWV0aG9kIiwibW9kZSIsInNpZ25hbCIsInRvVXBwZXJDYXNlIiwicmVmZXJyZXIiLCJjYWNoZSIsInJlcGxhY2UiLCJEYXRlIiwiZ2V0VGltZSIsInNwbGl0IiwiZGVjb2RlVVJJQ29tcG9uZW50IiwidiIsInN0YXR1cyIsIm9rIiwic3RhdHVzVGV4dCIsImNsb25lIiwiYiIsInJlZGlyZWN0IiwiUmFuZ2VFcnJvciIsImxvY2F0aW9uIiwidyIsIkRPTUV4Y2VwdGlvbiIsInN0YWNrIiwiRSIsImFib3J0ZWQiLCJYTUxIdHRwUmVxdWVzdCIsImFib3J0IiwiZ2V0QWxsUmVzcG9uc2VIZWFkZXJzIiwic3Vic3RyIiwicmVzcG9uc2VVUkwiLCJyZXNwb25zZSIsInJlc3BvbnNlVGV4dCIsInNldFRpbWVvdXQiLCJvbnRpbWVvdXQiLCJvbmFib3J0Iiwib3BlbiIsImhyZWYiLCJ3aXRoQ3JlZGVudGlhbHMiLCJyZXNwb25zZVR5cGUiLCJzZXRSZXF1ZXN0SGVhZGVyIiwiYWRkRXZlbnRMaXN0ZW5lciIsIm9ucmVhZHlzdGF0ZWNoYW5nZSIsInJlYWR5U3RhdGUiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwic2VuZCIsInBvbHlmaWxsIiwiZmV0Y2giLCJIZWFkZXJzIiwiUmVxdWVzdCIsIlJlc3BvbnNlIiwiayIsIkMiLCJQIiwiQSIsIk8iLCJMIiwiUyIsIkIiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJUIiwiaiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiSSIsIkYiLCJNIiwiVSIsIkNGIiwia2Vmb3Jtc1VybCIsIkQiLCJlbmNvZGVVUklDb21wb25lbnQiLCJIIiwiUmVnRXhwIiwiaG9zdCIsIkciLCJzZWFyY2giLCJmaW5kIiwicmV0dXJuIiwiZnJvbSIsIngiLCJOIiwiZ2Z2IiwiZW5naW5lVmVyc2lvbiIsInJlc291cmNlc1ZlcnNpb24iLCJlbnRyeVBvaW50IiwicmVzb3VyY2Vab25lIiwic3R5bGVTaGVldCIsInNjcmlwdCIsIlIiLCJwdWJsaWNGb3JtIiwiY2F0Y2giLCJWIiwicSIsIloiLCJrb250dXJEb21haW5zIiwiYXV0aG9yaXplZCIsImF1dGhlbnRpY2F0aW9uIiwiYXV0aFNpZCIsIkF1dGhvcml6YXRpb24iLCJjYXVsZHJvbkFwaVVybCIsImlzVGVzdFNlcnZlciIsInJlbmRlckNhY2hpbmdGb3JJRTgiLCJub3JtYWxpemF0aW9uT25TZXJ2ZXIiLCJub3JtYXRpdmVVcmwiLCJzaG93TmF2aWdhdGlvblNpZGViYXIiLCJvblJlbW92ZUF0dGFjaG1lbnQiLCJmZWVkYmFja0VuYWJsZWQiLCJpc0Rpc2FibGVkQ2xlYW5Gb3JtIiwiaXNEaXNhYmxlZENsb3NlQnV0dG9uIiwiaXNEaXNhYmxlZENsb3NlQW5kU2F2ZUJ1dHRvbiIsInRoZW1lIiwidGVtcGxhdGVzQXBpIiwicmVuZGVyRm9ybSIsIksiLCJXIiwic3RhcnQiLCJwYXJ0aWFsUmVuZGVyaW5nRm9ySUU4IiwicGFyc2VJbnQiLCJjcmVhdGVMZWdhY3lQdWJsaWNGb3JtIiwiX0NvbW1vbl9FcnJvcnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJhc3luY0l0ZXJhdG9yIiwidG9TdHJpbmdUYWciLCJkZWZpbmUiLCJhcmciLCJ3cmFwIiwiX2ludm9rZSIsIl9fYXdhaXQiLCJkZWxlZ2F0ZSIsInNlbnQiLCJfc2VudCIsImRpc3BhdGNoRXhjZXB0aW9uIiwiYWJydXB0IiwicmVzdWx0TmFtZSIsIm5leHRMb2MiLCJ0cnlMb2MiLCJjYXRjaExvYyIsImZpbmFsbHlMb2MiLCJhZnRlckxvYyIsInRyeUVudHJpZXMiLCJjb21wbGV0aW9uIiwicmVzZXQiLCJpc05hTiIsImRpc3BsYXlOYW1lIiwiaXNHZW5lcmF0b3JGdW5jdGlvbiIsIm1hcmsiLCJhd3JhcCIsIkFzeW5jSXRlcmF0b3IiLCJhc3luYyIsInJldmVyc2UiLCJwb3AiLCJwcmV2IiwiY2hhckF0Iiwic3RvcCIsInJ2YWwiLCJjb21wbGV0ZSIsImZpbmlzaCIsImRlbGVnYXRlWWllbGQiLCJhc3luY0dlbmVyYXRvclN0ZXAiLCJfYXN5bmNUb0dlbmVyYXRvciIsIm93bktleXMiLCJfb2JqZWN0U3ByZWFkIiwiX2RlZmluZVByb3BlcnR5IiwibW9kZWxDaGFuZ2VFdmVudFBhdGgiLCJtYXBDaHVua1ZhbHVlcyIsInJlZHVjZUNodW5rVmFsdWVzIiwicmVkdWNlIiwiTGVnYWN5UHVibGljRm9ybSIsImZvcm0iLCJfcmVsb2FkSW5uZXIiLCJfSU5URVJOQUxfX2dldFNlbGVjdEZ1bmN0aW9uRm9yRGlzYWJsZUVtcGxveWVlSW5TUyIsIl92YWxpZGF0ZUNoaWxkcmVuQnlQYXRoIiwicGlja2xpc3RzUHJvdmlkZXIiLCJnZXREaWdlc3RBcGlQaWNrbGlzdCIsInF1ZXJ5IiwiZXZlbnRNYW5hZ2VyIiwib24iLCJvZmYiLCJjaGFuZ2VTZXQiLCJzdG9wQXV0b3NlbmQiLCJ1bm1vdW50IiwibW9kZWwiLCJnZXRDaHVuayIsInNldHRpbmdzIiwiZm9ybVJvb3QiLCJ2YWxpZGF0b3IiLCJ2YWxpZGF0ZUFsbCIsImZpbGwiLCJkb2N1bWVudCIsImdldEVsZW1lbnRzQnlUYWdOYW1lIiwiZG9jdW1lbnRFbGVtZW50IiwiY3JlYXRlRWxlbWVudCIsInBhcmVudE5vZGUiLCJyZW1vdmVDaGlsZCIsInNyYyIsInNldEF0dHJpYnV0ZSIsImFwcGVuZENoaWxkIiwiX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fIiwiZXhwb3J0cyIsImlkIiwibG9hZGVkIiwiX193ZWJwYWNrX21vZHVsZXNfXyIsIndpbmRvdyIsImNoaWxkcmVuIl0sInNvdXJjZXMiOlsid2VicGFjazovL0Brb250dXIuY2FuZHkvd29ya3NwYWNlL0NvbW1vbi9DYW5keUFwaUNsaWVudC9DbGllbnREcmFmdEluZm8vR2V0Q2xpZW50RHJhZnRJbmZvVXJsLnRzIiwid2VicGFjazovL0Brb250dXIuY2FuZHkvd29ya3NwYWNlL0NvbW1vbi9FcnJvcnMudHMiLCJ3ZWJwYWNrOi8vQGtvbnR1ci5jYW5keS93b3Jrc3BhY2UvQ29tbW9uL1R5cGluZ1V0aWxzLnRzIiwid2VicGFjazovL0Brb250dXIuY2FuZHkvd29ya3NwYWNlL25vZGVfbW9kdWxlcy93aGF0d2ctZmV0Y2gvZmV0Y2guanMiLCJ3ZWJwYWNrOi8vQGtvbnR1ci5jYW5keS93b3Jrc3BhY2UvRW5naW5lL3NyYy9Gb3Jtcy9DbGllbnQvQ2xpZW50LnRzIiwid2VicGFjazovL0Brb250dXIuY2FuZHkvd29ya3NwYWNlL0VuZ2luZS9zcmMvRm9ybXMvQ2xpZW50L0NsaWVudFNldHRpbmdzLnRzIiwid2VicGFjazovL0Brb250dXIuY2FuZHkvd29ya3NwYWNlL0VuZ2luZS9zcmMvRm9ybXMvQ2xpZW50L0xlZ2FjeVB1YmxpY0Zvcm0vQ3JlYXRlTGVnYWN5UHVibGljRm9ybS50cyIsIndlYnBhY2s6Ly9Aa29udHVyLmNhbmR5L3dvcmtzcGFjZS9FbmdpbmUvc3JjL0hlbHBlcnMvTG9hZEludG9Eb2N1bWVudC50cyIsIndlYnBhY2s6Ly9Aa29udHVyLmNhbmR5L3dvcmtzcGFjZS93ZWJwYWNrL2Jvb3RzdHJhcCIsIndlYnBhY2s6Ly9Aa29udHVyLmNhbmR5L3dvcmtzcGFjZS93ZWJwYWNrL3J1bnRpbWUvZGVmaW5lIHByb3BlcnR5IGdldHRlcnMiLCJ3ZWJwYWNrOi8vQGtvbnR1ci5jYW5keS93b3Jrc3BhY2Uvd2VicGFjay9ydW50aW1lL2dsb2JhbCIsIndlYnBhY2s6Ly9Aa29udHVyLmNhbmR5L3dvcmtzcGFjZS93ZWJwYWNrL3J1bnRpbWUvaGFybW9ueSBtb2R1bGUgZGVjb3JhdG9yIiwid2VicGFjazovL0Brb250dXIuY2FuZHkvd29ya3NwYWNlL3dlYnBhY2svcnVudGltZS9oYXNPd25Qcm9wZXJ0eSBzaG9ydGhhbmQiLCJ3ZWJwYWNrOi8vQGtvbnR1ci5jYW5keS93b3Jrc3BhY2Uvd2VicGFjay9zdGFydHVwIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERyYWZ0RnVsbElkIH0gZnJvbSBcIi4uL1R5cGVzL0RyYWZ0RnVsbElkXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDbGllbnREcmFmdEluZm9VcmwoZHJhZnRJZDogRHJhZnRGdWxsSWQpIHtcbiAgICAvLyBOT1RFINCt0YLQsCDRhNGD0L3QutGG0LjRjyDQvtCx0YrRj9Cy0LvQtdC90LAg0L7RgtC00LXQu9GM0L3Qviwg0LjQsdC+INC+0L3QsCDQstGF0L7QtNC40YIg0LIg0YHQvtGB0YLQsNCyIGNsaWVudC5qcyDQuFxuICAgIC8vINC90LUg0LTQvtC70LbQvdC+INC/0YDQvtC40YHRhdC+0LTQuNGC0Ywg0YPRgtC10LbQtdC70LXQvdC40Y8gY2xpZW50LmpzLdCwXG4gICAgcmV0dXJuIGB2MS9ucy8ke2RyYWZ0SWQubnN9L2RyYWZ0cy8ke2RyYWZ0SWQuZHJhZnRJZH0vY2xpZW50LWRyYWZ0LWluZm9gO1xufVxuIiwiZXhwb3J0IGNsYXNzIEFwcGxpY2F0aW9uRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gICAgcHVibGljIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZykge1xuICAgICAgICBzdXBlcihtZXNzYWdlKTtcbiAgICAgICAgdGhpcy5uYW1lID0gdGhpcy5jb25zdHJ1Y3Rvci5uYW1lO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIE5vdEltcGxlbWVudGVkRXJyb3IgZXh0ZW5kcyBBcHBsaWNhdGlvbkVycm9yIHtcbiAgICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKFwiT3BlcmF0aW9uIG5vdCBpbXBsZW1lbnRlZFwiKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBOb3RTdXBwb3J0ZWRFcnJvciBleHRlbmRzIEFwcGxpY2F0aW9uRXJyb3Ige1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihtZXNzYWdlPzogc3RyaW5nKSB7XG4gICAgICAgIHN1cGVyKG1lc3NhZ2UgPz8gXCJPcGVyYXRpb24gbm90IHN1cHBvcnRlZFwiKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBJbnZhbGlkUHJvZ3JhbVN0YXRlRXJyb3IgZXh0ZW5kcyBBcHBsaWNhdGlvbkVycm9yIHtcbiAgICBwdWJsaWMgY29uc3RydWN0b3IobWVzc2FnZT86IHN0cmluZykge1xuICAgICAgICBzdXBlcihcIkludmFsaWQgcHJvZ3JhbSBzdGF0ZVwiICsgKG1lc3NhZ2UgIT0gdW5kZWZpbmVkID8gXCI6IFwiICsgbWVzc2FnZSA6IFwiXCIpKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBJbnZhbGlkQXJndW1lbnRFcnJvciBleHRlbmRzIEFwcGxpY2F0aW9uRXJyb3Ige1xuICAgIHB1YmxpYyBjb25zdHJ1Y3Rvcihhcmd1bWVudE5hbWU6IHN0cmluZywgbWVzc2FnZT86IHN0cmluZykge1xuICAgICAgICBzdXBlcihcbiAgICAgICAgICAgIG1lc3NhZ2UgIT0gdW5kZWZpbmVkID8gYCR7bWVzc2FnZX0gKGFyZ3VtZW50OiAke2FyZ3VtZW50TmFtZX0pYCA6IGBJbnZhbGlkIGFyZ3VtZW50IHZhbHVlOiAke2FyZ3VtZW50TmFtZX1gXG4gICAgICAgICk7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVHlwaW5nRXJyb3IgZXh0ZW5kcyBBcHBsaWNhdGlvbkVycm9yIHtcbiAgICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKFwiSW52YWxpZCB0eXBpbmdcIik7XG4gICAgfVxufVxuIiwiLyoqKlxuICog0KHRgtGA0L7Qs9C+0YLQuNC/0LjQt9C40YDQvtCy0LDQvdC90LDRjyDQt9Cw0LzQtdC90LAg0LTQu9GPIEJvb2xlYW4oLi4uKVxuICog0J7QsdGL0YfQvdC+INC40YHQv9C+0LvRjNC30YPQtdGC0YHRjyDQtNC70Y8gWy4uLl0uZmlsdGVyKGlzTm90TnVsbE9yVW5kZWZpbmVkKVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNOb3ROdWxsT3JVbmRlZmluZWQ8VD4oaW5wdXQ6IFQpOiBpbnB1dCBpcyBOb25OdWxsYWJsZTxUPiB7XG4gICAgcmV0dXJuIGlucHV0ICE9IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ2lmeVVua25vd25FcnJvcihlcnJvcjogdW5rbm93bik6IHVuZGVmaW5lZCB8IHN0cmluZyB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtcmV0dXJuXG4gICAgcmV0dXJuIHR5cGVvZiBlcnJvciA9PT0gXCJvYmplY3RcIiAmJiBlcnJvcj8uW1wibWVzc2FnZVwiXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVuc3VyZU5vdE51bGxPclVuZGVmaW5lZDxUPihpbnB1dDogVCk6IGFzc2VydHMgaW5wdXQgaXMgTm9uTnVsbGFibGU8VD4ge1xuICAgIGlmICghaXNOb3ROdWxsT3JVbmRlZmluZWQoaW5wdXQpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVmFsdWUgbXVzdCBiZSBkZWZpbmVkYCk7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbm9vcCgpOiB2b2lkIHtcbiAgICAvLyBub29wXG59XG5cbmV4cG9ydCB0eXBlIEVycm9yRmlyc3RDYWxsYmFjazxUPiA9ICguLi5hcmdzOiBbRXJyb3IsIG51bGwgfCB1bmRlZmluZWRdIHwgW251bGwgfCB1bmRlZmluZWQsIFRdIHwgW0Vycm9yXSkgPT4gdm9pZDtcblxuZXhwb3J0IGZ1bmN0aW9uIHJlamVjdChtZXNzYWdlPzogc3RyaW5nIHwgRXJyb3IpOiBuZXZlciB7XG4gICAgaWYgKHR5cGVvZiBtZXNzYWdlID09PSBcInN0cmluZ1wiIHx8IG1lc3NhZ2UgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlID8/IFwiVW5kZWZpbmVkIGlzIG5vdCBhbGxvd2VkXCIpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG1lc3NhZ2U7XG4gICAgfVxufVxuXG50eXBlIEFycmF5T2ZMZW5ndGg8VEl0ZW0sIFRMZW5ndGggZXh0ZW5kcyBudW1iZXIsIFRSZXN0IGV4dGVuZHMgVEl0ZW1bXSA9IFtdPiA9IFRSZXN0IGV4dGVuZHMgeyBsZW5ndGg6IFRMZW5ndGggfVxuICAgID8gVFJlc3RcbiAgICA6IEFycmF5T2ZMZW5ndGg8VEl0ZW0sIFRMZW5ndGgsIFtUSXRlbSwgLi4uVFJlc3RdPjtcblxuZXhwb3J0IHR5cGUgTWluTGVuZ3RoQXJyYXk8VEl0ZW0sIFRMZW5ndGggZXh0ZW5kcyBudW1iZXIsIFRSZXN0IGV4dGVuZHMgVEl0ZW1bXSA9IFtdPiA9IFRSZXN0IGV4dGVuZHMge1xuICAgIGxlbmd0aDogVExlbmd0aDtcbn1cbiAgICA/IFsuLi5UUmVzdCwgLi4uVEl0ZW1bXV1cbiAgICA6IE1pbkxlbmd0aEFycmF5PFRJdGVtLCBUTGVuZ3RoLCBbLi4uVFJlc3QsIFRJdGVtXT47XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0xlbmd0aEdyZWF0ZXJUaGVuT3JFcXVhbDxULCBUTnVtIGV4dGVuZHMgbnVtYmVyPihcbiAgICBpdGVtczogcmVhZG9ubHkgVFtdLFxuICAgIG1pbkxlbmd0aDogVE51bVxuKTogaXRlbXMgaXMgTWluTGVuZ3RoQXJyYXk8VCwgVE51bT4ge1xuICAgIHJldHVybiBpdGVtcy5sZW5ndGggPj0gbWluTGVuZ3RoO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWluTGVuZ3RoT3JVbmRlZmluZWQ8VCwgVE51bSBleHRlbmRzIG51bWJlcj4oXG4gICAgaXRlbXM6IFRbXSxcbiAgICBtaW5MZW5ndGg6IFROdW1cbik6IHVuZGVmaW5lZCB8IE1pbkxlbmd0aEFycmF5PFQsIFROdW0+IHtcbiAgICBpZiAoaXNMZW5ndGhHcmVhdGVyVGhlbk9yRXF1YWwoaXRlbXMsIG1pbkxlbmd0aCkpIHtcbiAgICAgICAgcmV0dXJuIGl0ZW1zO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXJyYXlIYXNMZW5ndGg8VCwgVE51bSBleHRlbmRzIG51bWJlcj4oXG4gICAgaXRlbXM6IHJlYWRvbmx5IFRbXSxcbiAgICBsZW5ndGg6IFROdW1cbik6IGl0ZW1zIGlzIEFycmF5T2ZMZW5ndGg8VCwgVE51bT4ge1xuICAgIHJldHVybiBpdGVtcy5sZW5ndGggPT09IGxlbmd0aDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFycmF5SXNOb3RFbXB0eTxUPihpdGVtczogcmVhZG9ubHkgVFtdKTogaXRlbXMgaXMgTWluTGVuZ3RoQXJyYXk8VCwgMT4ge1xuICAgIHJldHVybiBpdGVtcy5sZW5ndGggPiAwO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXJyYXlIYXNBdExlYXN0T25lSXRlbTxUPihpdGVtczogcmVhZG9ubHkgVFtdKTogaXRlbXMgaXMgTWluTGVuZ3RoQXJyYXk8VCwgMT4ge1xuICAgIHJldHVybiBpdGVtcy5sZW5ndGggPiAwO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZW5zdXJlQXJyYXlJc05vdEVtcHR5PFQ+KGl0ZW1zOiByZWFkb25seSBUW10pOiBhc3NlcnRzIGl0ZW1zIGlzIE1pbkxlbmd0aEFycmF5PFQsIDE+IHtcbiAgICBpZiAoIWFycmF5SXNOb3RFbXB0eShpdGVtcykpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBBcnJheSBtdXN0IGJlIG5vdCBlbXB0eWApO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVuc3VyZUFycmF5SGFzTGVuZ3RoPFQsIFROdW0gZXh0ZW5kcyBudW1iZXI+KFxuICAgIGl0ZW1zOiByZWFkb25seSBUW10sXG4gICAgbGVuZ3RoOiBUTnVtXG4pOiBhc3NlcnRzIGl0ZW1zIGlzIEFycmF5T2ZMZW5ndGg8VCwgVE51bT4ge1xuICAgIGlmICghYXJyYXlIYXNMZW5ndGgoaXRlbXMsIGxlbmd0aCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBBcnJheSBzaG91bGQgaGFzIGxlbmd0aCAke2xlbmd0aH1gKTtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbnN1cmVBcnJheUxlbmd0aEdyZWF0ZXJUaGVuT3JFcXVhbDxULCBUTnVtIGV4dGVuZHMgbnVtYmVyPihcbiAgICBpdGVtczogcmVhZG9ubHkgVFtdLFxuICAgIGxlbmd0aDogVE51bVxuKTogYXNzZXJ0cyBpdGVtcyBpcyBBcnJheU9mTGVuZ3RoPFQsIFROdW0+IHtcbiAgICBpZiAoIWlzTGVuZ3RoR3JlYXRlclRoZW5PckVxdWFsKGl0ZW1zLCBsZW5ndGgpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgQXJyYXkgbXVzdCBoYXZlIG1pbmltYWwgbGVuZ3RoICR7bGVuZ3RofWApO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVuc3VyZU5ldmVyKG5ldmVyQXJndW1lbnQ6IG5ldmVyKTogdm9pZCB7XG4gICAgLy8gbm9vcFxufVxuXG5leHBvcnQgZnVuY3Rpb24gZW5zdXJlQW5kR2V0U3RyaW5nKG5ldmVyQXJndW1lbnQ6IG5ldmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7bmV2ZXJBcmd1bWVudH1gO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcnVuQXN5bmNBY3Rpb24oYWN0aW9uOiAoKSA9PiBQcm9taXNlPHZvaWQ+KTogdm9pZCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1mbG9hdGluZy1wcm9taXNlc1xuICAgIGFjdGlvbigpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNOdWxsT3JFbXB0eShpbnB1dDogc3RyaW5nIHwgdW5kZWZpbmVkKTogaW5wdXQgaXMgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gaW5wdXQgPT0gdW5kZWZpbmVkIHx8IGlucHV0ID09PSBcIlwiO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNOb3ROdWxsT3JFbXB0eShpbnB1dDogc3RyaW5nIHwgdW5kZWZpbmVkKTogaW5wdXQgaXMgc3RyaW5nIHtcbiAgICByZXR1cm4gIWlzTnVsbE9yRW1wdHkoaW5wdXQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNOdWxsT3JXaGl0ZVNwYWNlKGlucHV0OiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsKTogaW5wdXQgaXMgdW5kZWZpbmVkIHwgbnVsbCB7XG4gICAgcmV0dXJuIGlucHV0ID09IHVuZGVmaW5lZCB8fCBpbnB1dC50cmltKCkgPT09IFwiXCI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmltTGFzdFNsYXNoKHVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdXJsLnNsaWNlKC0xKSA9PT0gXCIvXCIgPyB1cmwuc2xpY2UoMCwgLTEpIDogdXJsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0SXM8VD4odmFsdWU6IFQpOiB2b2lkIHtcbiAgICAvLyBub29wXG59XG4iLCJ2YXIgZ2xvYmFsID1cbiAgKHR5cGVvZiBnbG9iYWxUaGlzICE9PSAndW5kZWZpbmVkJyAmJiBnbG9iYWxUaGlzKSB8fFxuICAodHlwZW9mIHNlbGYgIT09ICd1bmRlZmluZWQnICYmIHNlbGYpIHx8XG4gICh0eXBlb2YgZ2xvYmFsICE9PSAndW5kZWZpbmVkJyAmJiBnbG9iYWwpXG5cbnZhciBzdXBwb3J0ID0ge1xuICBzZWFyY2hQYXJhbXM6ICdVUkxTZWFyY2hQYXJhbXMnIGluIGdsb2JhbCxcbiAgaXRlcmFibGU6ICdTeW1ib2wnIGluIGdsb2JhbCAmJiAnaXRlcmF0b3InIGluIFN5bWJvbCxcbiAgYmxvYjpcbiAgICAnRmlsZVJlYWRlcicgaW4gZ2xvYmFsICYmXG4gICAgJ0Jsb2InIGluIGdsb2JhbCAmJlxuICAgIChmdW5jdGlvbigpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIG5ldyBCbG9iKClcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICB9XG4gICAgfSkoKSxcbiAgZm9ybURhdGE6ICdGb3JtRGF0YScgaW4gZ2xvYmFsLFxuICBhcnJheUJ1ZmZlcjogJ0FycmF5QnVmZmVyJyBpbiBnbG9iYWxcbn1cblxuZnVuY3Rpb24gaXNEYXRhVmlldyhvYmopIHtcbiAgcmV0dXJuIG9iaiAmJiBEYXRhVmlldy5wcm90b3R5cGUuaXNQcm90b3R5cGVPZihvYmopXG59XG5cbmlmIChzdXBwb3J0LmFycmF5QnVmZmVyKSB7XG4gIHZhciB2aWV3Q2xhc3NlcyA9IFtcbiAgICAnW29iamVjdCBJbnQ4QXJyYXldJyxcbiAgICAnW29iamVjdCBVaW50OEFycmF5XScsXG4gICAgJ1tvYmplY3QgVWludDhDbGFtcGVkQXJyYXldJyxcbiAgICAnW29iamVjdCBJbnQxNkFycmF5XScsXG4gICAgJ1tvYmplY3QgVWludDE2QXJyYXldJyxcbiAgICAnW29iamVjdCBJbnQzMkFycmF5XScsXG4gICAgJ1tvYmplY3QgVWludDMyQXJyYXldJyxcbiAgICAnW29iamVjdCBGbG9hdDMyQXJyYXldJyxcbiAgICAnW29iamVjdCBGbG9hdDY0QXJyYXldJ1xuICBdXG5cbiAgdmFyIGlzQXJyYXlCdWZmZXJWaWV3ID1cbiAgICBBcnJheUJ1ZmZlci5pc1ZpZXcgfHxcbiAgICBmdW5jdGlvbihvYmopIHtcbiAgICAgIHJldHVybiBvYmogJiYgdmlld0NsYXNzZXMuaW5kZXhPZihPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqKSkgPiAtMVxuICAgIH1cbn1cblxuZnVuY3Rpb24gbm9ybWFsaXplTmFtZShuYW1lKSB7XG4gIGlmICh0eXBlb2YgbmFtZSAhPT0gJ3N0cmluZycpIHtcbiAgICBuYW1lID0gU3RyaW5nKG5hbWUpXG4gIH1cbiAgaWYgKC9bXmEtejAtOVxcLSMkJSYnKisuXl9gfH4hXS9pLnRlc3QobmFtZSkgfHwgbmFtZSA9PT0gJycpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdJbnZhbGlkIGNoYXJhY3RlciBpbiBoZWFkZXIgZmllbGQgbmFtZTogXCInICsgbmFtZSArICdcIicpXG4gIH1cbiAgcmV0dXJuIG5hbWUudG9Mb3dlckNhc2UoKVxufVxuXG5mdW5jdGlvbiBub3JtYWxpemVWYWx1ZSh2YWx1ZSkge1xuICBpZiAodHlwZW9mIHZhbHVlICE9PSAnc3RyaW5nJykge1xuICAgIHZhbHVlID0gU3RyaW5nKHZhbHVlKVxuICB9XG4gIHJldHVybiB2YWx1ZVxufVxuXG4vLyBCdWlsZCBhIGRlc3RydWN0aXZlIGl0ZXJhdG9yIGZvciB0aGUgdmFsdWUgbGlzdFxuZnVuY3Rpb24gaXRlcmF0b3JGb3IoaXRlbXMpIHtcbiAgdmFyIGl0ZXJhdG9yID0ge1xuICAgIG5leHQ6IGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIHZhbHVlID0gaXRlbXMuc2hpZnQoKVxuICAgICAgcmV0dXJuIHtkb25lOiB2YWx1ZSA9PT0gdW5kZWZpbmVkLCB2YWx1ZTogdmFsdWV9XG4gICAgfVxuICB9XG5cbiAgaWYgKHN1cHBvcnQuaXRlcmFibGUpIHtcbiAgICBpdGVyYXRvcltTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gaXRlcmF0b3JcbiAgICB9XG4gIH1cblxuICByZXR1cm4gaXRlcmF0b3Jcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIEhlYWRlcnMoaGVhZGVycykge1xuICB0aGlzLm1hcCA9IHt9XG5cbiAgaWYgKGhlYWRlcnMgaW5zdGFuY2VvZiBIZWFkZXJzKSB7XG4gICAgaGVhZGVycy5mb3JFYWNoKGZ1bmN0aW9uKHZhbHVlLCBuYW1lKSB7XG4gICAgICB0aGlzLmFwcGVuZChuYW1lLCB2YWx1ZSlcbiAgICB9LCB0aGlzKVxuICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoaGVhZGVycykpIHtcbiAgICBoZWFkZXJzLmZvckVhY2goZnVuY3Rpb24oaGVhZGVyKSB7XG4gICAgICB0aGlzLmFwcGVuZChoZWFkZXJbMF0sIGhlYWRlclsxXSlcbiAgICB9LCB0aGlzKVxuICB9IGVsc2UgaWYgKGhlYWRlcnMpIHtcbiAgICBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhoZWFkZXJzKS5mb3JFYWNoKGZ1bmN0aW9uKG5hbWUpIHtcbiAgICAgIHRoaXMuYXBwZW5kKG5hbWUsIGhlYWRlcnNbbmFtZV0pXG4gICAgfSwgdGhpcylcbiAgfVxufVxuXG5IZWFkZXJzLnByb3RvdHlwZS5hcHBlbmQgPSBmdW5jdGlvbihuYW1lLCB2YWx1ZSkge1xuICBuYW1lID0gbm9ybWFsaXplTmFtZShuYW1lKVxuICB2YWx1ZSA9IG5vcm1hbGl6ZVZhbHVlKHZhbHVlKVxuICB2YXIgb2xkVmFsdWUgPSB0aGlzLm1hcFtuYW1lXVxuICB0aGlzLm1hcFtuYW1lXSA9IG9sZFZhbHVlID8gb2xkVmFsdWUgKyAnLCAnICsgdmFsdWUgOiB2YWx1ZVxufVxuXG5IZWFkZXJzLnByb3RvdHlwZVsnZGVsZXRlJ10gPSBmdW5jdGlvbihuYW1lKSB7XG4gIGRlbGV0ZSB0aGlzLm1hcFtub3JtYWxpemVOYW1lKG5hbWUpXVxufVxuXG5IZWFkZXJzLnByb3RvdHlwZS5nZXQgPSBmdW5jdGlvbihuYW1lKSB7XG4gIG5hbWUgPSBub3JtYWxpemVOYW1lKG5hbWUpXG4gIHJldHVybiB0aGlzLmhhcyhuYW1lKSA/IHRoaXMubWFwW25hbWVdIDogbnVsbFxufVxuXG5IZWFkZXJzLnByb3RvdHlwZS5oYXMgPSBmdW5jdGlvbihuYW1lKSB7XG4gIHJldHVybiB0aGlzLm1hcC5oYXNPd25Qcm9wZXJ0eShub3JtYWxpemVOYW1lKG5hbWUpKVxufVxuXG5IZWFkZXJzLnByb3RvdHlwZS5zZXQgPSBmdW5jdGlvbihuYW1lLCB2YWx1ZSkge1xuICB0aGlzLm1hcFtub3JtYWxpemVOYW1lKG5hbWUpXSA9IG5vcm1hbGl6ZVZhbHVlKHZhbHVlKVxufVxuXG5IZWFkZXJzLnByb3RvdHlwZS5mb3JFYWNoID0gZnVuY3Rpb24oY2FsbGJhY2ssIHRoaXNBcmcpIHtcbiAgZm9yICh2YXIgbmFtZSBpbiB0aGlzLm1hcCkge1xuICAgIGlmICh0aGlzLm1hcC5oYXNPd25Qcm9wZXJ0eShuYW1lKSkge1xuICAgICAgY2FsbGJhY2suY2FsbCh0aGlzQXJnLCB0aGlzLm1hcFtuYW1lXSwgbmFtZSwgdGhpcylcbiAgICB9XG4gIH1cbn1cblxuSGVhZGVycy5wcm90b3R5cGUua2V5cyA9IGZ1bmN0aW9uKCkge1xuICB2YXIgaXRlbXMgPSBbXVxuICB0aGlzLmZvckVhY2goZnVuY3Rpb24odmFsdWUsIG5hbWUpIHtcbiAgICBpdGVtcy5wdXNoKG5hbWUpXG4gIH0pXG4gIHJldHVybiBpdGVyYXRvckZvcihpdGVtcylcbn1cblxuSGVhZGVycy5wcm90b3R5cGUudmFsdWVzID0gZnVuY3Rpb24oKSB7XG4gIHZhciBpdGVtcyA9IFtdXG4gIHRoaXMuZm9yRWFjaChmdW5jdGlvbih2YWx1ZSkge1xuICAgIGl0ZW1zLnB1c2godmFsdWUpXG4gIH0pXG4gIHJldHVybiBpdGVyYXRvckZvcihpdGVtcylcbn1cblxuSGVhZGVycy5wcm90b3R5cGUuZW50cmllcyA9IGZ1bmN0aW9uKCkge1xuICB2YXIgaXRlbXMgPSBbXVxuICB0aGlzLmZvckVhY2goZnVuY3Rpb24odmFsdWUsIG5hbWUpIHtcbiAgICBpdGVtcy5wdXNoKFtuYW1lLCB2YWx1ZV0pXG4gIH0pXG4gIHJldHVybiBpdGVyYXRvckZvcihpdGVtcylcbn1cblxuaWYgKHN1cHBvcnQuaXRlcmFibGUpIHtcbiAgSGVhZGVycy5wcm90b3R5cGVbU3ltYm9sLml0ZXJhdG9yXSA9IEhlYWRlcnMucHJvdG90eXBlLmVudHJpZXNcbn1cblxuZnVuY3Rpb24gY29uc3VtZWQoYm9keSkge1xuICBpZiAoYm9keS5ib2R5VXNlZCkge1xuICAgIHJldHVybiBQcm9taXNlLnJlamVjdChuZXcgVHlwZUVycm9yKCdBbHJlYWR5IHJlYWQnKSlcbiAgfVxuICBib2R5LmJvZHlVc2VkID0gdHJ1ZVxufVxuXG5mdW5jdGlvbiBmaWxlUmVhZGVyUmVhZHkocmVhZGVyKSB7XG4gIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHtcbiAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXNvbHZlKHJlYWRlci5yZXN1bHQpXG4gICAgfVxuICAgIHJlYWRlci5vbmVycm9yID0gZnVuY3Rpb24oKSB7XG4gICAgICByZWplY3QocmVhZGVyLmVycm9yKVxuICAgIH1cbiAgfSlcbn1cblxuZnVuY3Rpb24gcmVhZEJsb2JBc0FycmF5QnVmZmVyKGJsb2IpIHtcbiAgdmFyIHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKClcbiAgdmFyIHByb21pc2UgPSBmaWxlUmVhZGVyUmVhZHkocmVhZGVyKVxuICByZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIoYmxvYilcbiAgcmV0dXJuIHByb21pc2Vcbn1cblxuZnVuY3Rpb24gcmVhZEJsb2JBc1RleHQoYmxvYikge1xuICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKVxuICB2YXIgcHJvbWlzZSA9IGZpbGVSZWFkZXJSZWFkeShyZWFkZXIpXG4gIHJlYWRlci5yZWFkQXNUZXh0KGJsb2IpXG4gIHJldHVybiBwcm9taXNlXG59XG5cbmZ1bmN0aW9uIHJlYWRBcnJheUJ1ZmZlckFzVGV4dChidWYpIHtcbiAgdmFyIHZpZXcgPSBuZXcgVWludDhBcnJheShidWYpXG4gIHZhciBjaGFycyA9IG5ldyBBcnJheSh2aWV3Lmxlbmd0aClcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IHZpZXcubGVuZ3RoOyBpKyspIHtcbiAgICBjaGFyc1tpXSA9IFN0cmluZy5mcm9tQ2hhckNvZGUodmlld1tpXSlcbiAgfVxuICByZXR1cm4gY2hhcnMuam9pbignJylcbn1cblxuZnVuY3Rpb24gYnVmZmVyQ2xvbmUoYnVmKSB7XG4gIGlmIChidWYuc2xpY2UpIHtcbiAgICByZXR1cm4gYnVmLnNsaWNlKDApXG4gIH0gZWxzZSB7XG4gICAgdmFyIHZpZXcgPSBuZXcgVWludDhBcnJheShidWYuYnl0ZUxlbmd0aClcbiAgICB2aWV3LnNldChuZXcgVWludDhBcnJheShidWYpKVxuICAgIHJldHVybiB2aWV3LmJ1ZmZlclxuICB9XG59XG5cbmZ1bmN0aW9uIEJvZHkoKSB7XG4gIHRoaXMuYm9keVVzZWQgPSBmYWxzZVxuXG4gIHRoaXMuX2luaXRCb2R5ID0gZnVuY3Rpb24oYm9keSkge1xuICAgIC8qXG4gICAgICBmZXRjaC1tb2NrIHdyYXBzIHRoZSBSZXNwb25zZSBvYmplY3QgaW4gYW4gRVM2IFByb3h5IHRvXG4gICAgICBwcm92aWRlIHVzZWZ1bCB0ZXN0IGhhcm5lc3MgZmVhdHVyZXMgc3VjaCBhcyBmbHVzaC4gSG93ZXZlciwgb25cbiAgICAgIEVTNSBicm93c2VycyB3aXRob3V0IGZldGNoIG9yIFByb3h5IHN1cHBvcnQgcG9sbHlmaWxscyBtdXN0IGJlIHVzZWQ7XG4gICAgICB0aGUgcHJveHktcG9sbHlmaWxsIGlzIHVuYWJsZSB0byBwcm94eSBhbiBhdHRyaWJ1dGUgdW5sZXNzIGl0IGV4aXN0c1xuICAgICAgb24gdGhlIG9iamVjdCBiZWZvcmUgdGhlIFByb3h5IGlzIGNyZWF0ZWQuIFRoaXMgY2hhbmdlIGVuc3VyZXNcbiAgICAgIFJlc3BvbnNlLmJvZHlVc2VkIGV4aXN0cyBvbiB0aGUgaW5zdGFuY2UsIHdoaWxlIG1haW50YWluaW5nIHRoZVxuICAgICAgc2VtYW50aWMgb2Ygc2V0dGluZyBSZXF1ZXN0LmJvZHlVc2VkIGluIHRoZSBjb25zdHJ1Y3RvciBiZWZvcmVcbiAgICAgIF9pbml0Qm9keSBpcyBjYWxsZWQuXG4gICAgKi9cbiAgICB0aGlzLmJvZHlVc2VkID0gdGhpcy5ib2R5VXNlZFxuICAgIHRoaXMuX2JvZHlJbml0ID0gYm9keVxuICAgIGlmICghYm9keSkge1xuICAgICAgdGhpcy5fYm9keVRleHQgPSAnJ1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIGJvZHkgPT09ICdzdHJpbmcnKSB7XG4gICAgICB0aGlzLl9ib2R5VGV4dCA9IGJvZHlcbiAgICB9IGVsc2UgaWYgKHN1cHBvcnQuYmxvYiAmJiBCbG9iLnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKGJvZHkpKSB7XG4gICAgICB0aGlzLl9ib2R5QmxvYiA9IGJvZHlcbiAgICB9IGVsc2UgaWYgKHN1cHBvcnQuZm9ybURhdGEgJiYgRm9ybURhdGEucHJvdG90eXBlLmlzUHJvdG90eXBlT2YoYm9keSkpIHtcbiAgICAgIHRoaXMuX2JvZHlGb3JtRGF0YSA9IGJvZHlcbiAgICB9IGVsc2UgaWYgKHN1cHBvcnQuc2VhcmNoUGFyYW1zICYmIFVSTFNlYXJjaFBhcmFtcy5wcm90b3R5cGUuaXNQcm90b3R5cGVPZihib2R5KSkge1xuICAgICAgdGhpcy5fYm9keVRleHQgPSBib2R5LnRvU3RyaW5nKClcbiAgICB9IGVsc2UgaWYgKHN1cHBvcnQuYXJyYXlCdWZmZXIgJiYgc3VwcG9ydC5ibG9iICYmIGlzRGF0YVZpZXcoYm9keSkpIHtcbiAgICAgIHRoaXMuX2JvZHlBcnJheUJ1ZmZlciA9IGJ1ZmZlckNsb25lKGJvZHkuYnVmZmVyKVxuICAgICAgLy8gSUUgMTAtMTEgY2FuJ3QgaGFuZGxlIGEgRGF0YVZpZXcgYm9keS5cbiAgICAgIHRoaXMuX2JvZHlJbml0ID0gbmV3IEJsb2IoW3RoaXMuX2JvZHlBcnJheUJ1ZmZlcl0pXG4gICAgfSBlbHNlIGlmIChzdXBwb3J0LmFycmF5QnVmZmVyICYmIChBcnJheUJ1ZmZlci5wcm90b3R5cGUuaXNQcm90b3R5cGVPZihib2R5KSB8fCBpc0FycmF5QnVmZmVyVmlldyhib2R5KSkpIHtcbiAgICAgIHRoaXMuX2JvZHlBcnJheUJ1ZmZlciA9IGJ1ZmZlckNsb25lKGJvZHkpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2JvZHlUZXh0ID0gYm9keSA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChib2R5KVxuICAgIH1cblxuICAgIGlmICghdGhpcy5oZWFkZXJzLmdldCgnY29udGVudC10eXBlJykpIHtcbiAgICAgIGlmICh0eXBlb2YgYm9keSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgdGhpcy5oZWFkZXJzLnNldCgnY29udGVudC10eXBlJywgJ3RleHQvcGxhaW47Y2hhcnNldD1VVEYtOCcpXG4gICAgICB9IGVsc2UgaWYgKHRoaXMuX2JvZHlCbG9iICYmIHRoaXMuX2JvZHlCbG9iLnR5cGUpIHtcbiAgICAgICAgdGhpcy5oZWFkZXJzLnNldCgnY29udGVudC10eXBlJywgdGhpcy5fYm9keUJsb2IudHlwZSlcbiAgICAgIH0gZWxzZSBpZiAoc3VwcG9ydC5zZWFyY2hQYXJhbXMgJiYgVVJMU2VhcmNoUGFyYW1zLnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKGJvZHkpKSB7XG4gICAgICAgIHRoaXMuaGVhZGVycy5zZXQoJ2NvbnRlbnQtdHlwZScsICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD1VVEYtOCcpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKHN1cHBvcnQuYmxvYikge1xuICAgIHRoaXMuYmxvYiA9IGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIHJlamVjdGVkID0gY29uc3VtZWQodGhpcylcbiAgICAgIGlmIChyZWplY3RlZCkge1xuICAgICAgICByZXR1cm4gcmVqZWN0ZWRcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuX2JvZHlCbG9iKSB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5fYm9keUJsb2IpXG4gICAgICB9IGVsc2UgaWYgKHRoaXMuX2JvZHlBcnJheUJ1ZmZlcikge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG5ldyBCbG9iKFt0aGlzLl9ib2R5QXJyYXlCdWZmZXJdKSlcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5fYm9keUZvcm1EYXRhKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignY291bGQgbm90IHJlYWQgRm9ybURhdGEgYm9keSBhcyBibG9iJylcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUobmV3IEJsb2IoW3RoaXMuX2JvZHlUZXh0XSkpXG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5hcnJheUJ1ZmZlciA9IGZ1bmN0aW9uKCkge1xuICAgICAgaWYgKHRoaXMuX2JvZHlBcnJheUJ1ZmZlcikge1xuICAgICAgICB2YXIgaXNDb25zdW1lZCA9IGNvbnN1bWVkKHRoaXMpXG4gICAgICAgIGlmIChpc0NvbnN1bWVkKSB7XG4gICAgICAgICAgcmV0dXJuIGlzQ29uc3VtZWRcbiAgICAgICAgfVxuICAgICAgICBpZiAoQXJyYXlCdWZmZXIuaXNWaWV3KHRoaXMuX2JvZHlBcnJheUJ1ZmZlcikpIHtcbiAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKFxuICAgICAgICAgICAgdGhpcy5fYm9keUFycmF5QnVmZmVyLmJ1ZmZlci5zbGljZShcbiAgICAgICAgICAgICAgdGhpcy5fYm9keUFycmF5QnVmZmVyLmJ5dGVPZmZzZXQsXG4gICAgICAgICAgICAgIHRoaXMuX2JvZHlBcnJheUJ1ZmZlci5ieXRlT2Zmc2V0ICsgdGhpcy5fYm9keUFycmF5QnVmZmVyLmJ5dGVMZW5ndGhcbiAgICAgICAgICAgIClcbiAgICAgICAgICApXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLl9ib2R5QXJyYXlCdWZmZXIpXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0aGlzLmJsb2IoKS50aGVuKHJlYWRCbG9iQXNBcnJheUJ1ZmZlcilcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB0aGlzLnRleHQgPSBmdW5jdGlvbigpIHtcbiAgICB2YXIgcmVqZWN0ZWQgPSBjb25zdW1lZCh0aGlzKVxuICAgIGlmIChyZWplY3RlZCkge1xuICAgICAgcmV0dXJuIHJlamVjdGVkXG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX2JvZHlCbG9iKSB7XG4gICAgICByZXR1cm4gcmVhZEJsb2JBc1RleHQodGhpcy5fYm9keUJsb2IpXG4gICAgfSBlbHNlIGlmICh0aGlzLl9ib2R5QXJyYXlCdWZmZXIpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUocmVhZEFycmF5QnVmZmVyQXNUZXh0KHRoaXMuX2JvZHlBcnJheUJ1ZmZlcikpXG4gICAgfSBlbHNlIGlmICh0aGlzLl9ib2R5Rm9ybURhdGEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignY291bGQgbm90IHJlYWQgRm9ybURhdGEgYm9keSBhcyB0ZXh0JylcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLl9ib2R5VGV4dClcbiAgICB9XG4gIH1cblxuICBpZiAoc3VwcG9ydC5mb3JtRGF0YSkge1xuICAgIHRoaXMuZm9ybURhdGEgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiB0aGlzLnRleHQoKS50aGVuKGRlY29kZSlcbiAgICB9XG4gIH1cblxuICB0aGlzLmpzb24gPSBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy50ZXh0KCkudGhlbihKU09OLnBhcnNlKVxuICB9XG5cbiAgcmV0dXJuIHRoaXNcbn1cblxuLy8gSFRUUCBtZXRob2RzIHdob3NlIGNhcGl0YWxpemF0aW9uIHNob3VsZCBiZSBub3JtYWxpemVkXG52YXIgbWV0aG9kcyA9IFsnREVMRVRFJywgJ0dFVCcsICdIRUFEJywgJ09QVElPTlMnLCAnUE9TVCcsICdQVVQnXVxuXG5mdW5jdGlvbiBub3JtYWxpemVNZXRob2QobWV0aG9kKSB7XG4gIHZhciB1cGNhc2VkID0gbWV0aG9kLnRvVXBwZXJDYXNlKClcbiAgcmV0dXJuIG1ldGhvZHMuaW5kZXhPZih1cGNhc2VkKSA+IC0xID8gdXBjYXNlZCA6IG1ldGhvZFxufVxuXG5leHBvcnQgZnVuY3Rpb24gUmVxdWVzdChpbnB1dCwgb3B0aW9ucykge1xuICBpZiAoISh0aGlzIGluc3RhbmNlb2YgUmVxdWVzdCkpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdQbGVhc2UgdXNlIHRoZSBcIm5ld1wiIG9wZXJhdG9yLCB0aGlzIERPTSBvYmplY3QgY29uc3RydWN0b3IgY2Fubm90IGJlIGNhbGxlZCBhcyBhIGZ1bmN0aW9uLicpXG4gIH1cblxuICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fVxuICB2YXIgYm9keSA9IG9wdGlvbnMuYm9keVxuXG4gIGlmIChpbnB1dCBpbnN0YW5jZW9mIFJlcXVlc3QpIHtcbiAgICBpZiAoaW5wdXQuYm9keVVzZWQpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0FscmVhZHkgcmVhZCcpXG4gICAgfVxuICAgIHRoaXMudXJsID0gaW5wdXQudXJsXG4gICAgdGhpcy5jcmVkZW50aWFscyA9IGlucHV0LmNyZWRlbnRpYWxzXG4gICAgaWYgKCFvcHRpb25zLmhlYWRlcnMpIHtcbiAgICAgIHRoaXMuaGVhZGVycyA9IG5ldyBIZWFkZXJzKGlucHV0LmhlYWRlcnMpXG4gICAgfVxuICAgIHRoaXMubWV0aG9kID0gaW5wdXQubWV0aG9kXG4gICAgdGhpcy5tb2RlID0gaW5wdXQubW9kZVxuICAgIHRoaXMuc2lnbmFsID0gaW5wdXQuc2lnbmFsXG4gICAgaWYgKCFib2R5ICYmIGlucHV0Ll9ib2R5SW5pdCAhPSBudWxsKSB7XG4gICAgICBib2R5ID0gaW5wdXQuX2JvZHlJbml0XG4gICAgICBpbnB1dC5ib2R5VXNlZCA9IHRydWVcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdGhpcy51cmwgPSBTdHJpbmcoaW5wdXQpXG4gIH1cblxuICB0aGlzLmNyZWRlbnRpYWxzID0gb3B0aW9ucy5jcmVkZW50aWFscyB8fCB0aGlzLmNyZWRlbnRpYWxzIHx8ICdzYW1lLW9yaWdpbidcbiAgaWYgKG9wdGlvbnMuaGVhZGVycyB8fCAhdGhpcy5oZWFkZXJzKSB7XG4gICAgdGhpcy5oZWFkZXJzID0gbmV3IEhlYWRlcnMob3B0aW9ucy5oZWFkZXJzKVxuICB9XG4gIHRoaXMubWV0aG9kID0gbm9ybWFsaXplTWV0aG9kKG9wdGlvbnMubWV0aG9kIHx8IHRoaXMubWV0aG9kIHx8ICdHRVQnKVxuICB0aGlzLm1vZGUgPSBvcHRpb25zLm1vZGUgfHwgdGhpcy5tb2RlIHx8IG51bGxcbiAgdGhpcy5zaWduYWwgPSBvcHRpb25zLnNpZ25hbCB8fCB0aGlzLnNpZ25hbFxuICB0aGlzLnJlZmVycmVyID0gbnVsbFxuXG4gIGlmICgodGhpcy5tZXRob2QgPT09ICdHRVQnIHx8IHRoaXMubWV0aG9kID09PSAnSEVBRCcpICYmIGJvZHkpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdCb2R5IG5vdCBhbGxvd2VkIGZvciBHRVQgb3IgSEVBRCByZXF1ZXN0cycpXG4gIH1cbiAgdGhpcy5faW5pdEJvZHkoYm9keSlcblxuICBpZiAodGhpcy5tZXRob2QgPT09ICdHRVQnIHx8IHRoaXMubWV0aG9kID09PSAnSEVBRCcpIHtcbiAgICBpZiAob3B0aW9ucy5jYWNoZSA9PT0gJ25vLXN0b3JlJyB8fCBvcHRpb25zLmNhY2hlID09PSAnbm8tY2FjaGUnKSB7XG4gICAgICAvLyBTZWFyY2ggZm9yIGEgJ18nIHBhcmFtZXRlciBpbiB0aGUgcXVlcnkgc3RyaW5nXG4gICAgICB2YXIgcmVQYXJhbVNlYXJjaCA9IC8oWz8mXSlfPVteJl0qL1xuICAgICAgaWYgKHJlUGFyYW1TZWFyY2gudGVzdCh0aGlzLnVybCkpIHtcbiAgICAgICAgLy8gSWYgaXQgYWxyZWFkeSBleGlzdHMgdGhlbiBzZXQgdGhlIHZhbHVlIHdpdGggdGhlIGN1cnJlbnQgdGltZVxuICAgICAgICB0aGlzLnVybCA9IHRoaXMudXJsLnJlcGxhY2UocmVQYXJhbVNlYXJjaCwgJyQxXz0nICsgbmV3IERhdGUoKS5nZXRUaW1lKCkpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBPdGhlcndpc2UgYWRkIGEgbmV3ICdfJyBwYXJhbWV0ZXIgdG8gdGhlIGVuZCB3aXRoIHRoZSBjdXJyZW50IHRpbWVcbiAgICAgICAgdmFyIHJlUXVlcnlTdHJpbmcgPSAvXFw/L1xuICAgICAgICB0aGlzLnVybCArPSAocmVRdWVyeVN0cmluZy50ZXN0KHRoaXMudXJsKSA/ICcmJyA6ICc/JykgKyAnXz0nICsgbmV3IERhdGUoKS5nZXRUaW1lKClcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuUmVxdWVzdC5wcm90b3R5cGUuY2xvbmUgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIG5ldyBSZXF1ZXN0KHRoaXMsIHtib2R5OiB0aGlzLl9ib2R5SW5pdH0pXG59XG5cbmZ1bmN0aW9uIGRlY29kZShib2R5KSB7XG4gIHZhciBmb3JtID0gbmV3IEZvcm1EYXRhKClcbiAgYm9keVxuICAgIC50cmltKClcbiAgICAuc3BsaXQoJyYnKVxuICAgIC5mb3JFYWNoKGZ1bmN0aW9uKGJ5dGVzKSB7XG4gICAgICBpZiAoYnl0ZXMpIHtcbiAgICAgICAgdmFyIHNwbGl0ID0gYnl0ZXMuc3BsaXQoJz0nKVxuICAgICAgICB2YXIgbmFtZSA9IHNwbGl0LnNoaWZ0KCkucmVwbGFjZSgvXFwrL2csICcgJylcbiAgICAgICAgdmFyIHZhbHVlID0gc3BsaXQuam9pbignPScpLnJlcGxhY2UoL1xcKy9nLCAnICcpXG4gICAgICAgIGZvcm0uYXBwZW5kKGRlY29kZVVSSUNvbXBvbmVudChuYW1lKSwgZGVjb2RlVVJJQ29tcG9uZW50KHZhbHVlKSlcbiAgICAgIH1cbiAgICB9KVxuICByZXR1cm4gZm9ybVxufVxuXG5mdW5jdGlvbiBwYXJzZUhlYWRlcnMocmF3SGVhZGVycykge1xuICB2YXIgaGVhZGVycyA9IG5ldyBIZWFkZXJzKClcbiAgLy8gUmVwbGFjZSBpbnN0YW5jZXMgb2YgXFxyXFxuIGFuZCBcXG4gZm9sbG93ZWQgYnkgYXQgbGVhc3Qgb25lIHNwYWNlIG9yIGhvcml6b250YWwgdGFiIHdpdGggYSBzcGFjZVxuICAvLyBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNzIzMCNzZWN0aW9uLTMuMlxuICB2YXIgcHJlUHJvY2Vzc2VkSGVhZGVycyA9IHJhd0hlYWRlcnMucmVwbGFjZSgvXFxyP1xcbltcXHQgXSsvZywgJyAnKVxuICAvLyBBdm9pZGluZyBzcGxpdCB2aWEgcmVnZXggdG8gd29yayBhcm91bmQgYSBjb21tb24gSUUxMSBidWcgd2l0aCB0aGUgY29yZS1qcyAzLjYuMCByZWdleCBwb2x5ZmlsbFxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vZ2l0aHViL2ZldGNoL2lzc3Vlcy83NDhcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvaXNzdWVzLzc1MVxuICBwcmVQcm9jZXNzZWRIZWFkZXJzXG4gICAgLnNwbGl0KCdcXHInKVxuICAgIC5tYXAoZnVuY3Rpb24oaGVhZGVyKSB7XG4gICAgICByZXR1cm4gaGVhZGVyLmluZGV4T2YoJ1xcbicpID09PSAwID8gaGVhZGVyLnN1YnN0cigxLCBoZWFkZXIubGVuZ3RoKSA6IGhlYWRlclxuICAgIH0pXG4gICAgLmZvckVhY2goZnVuY3Rpb24obGluZSkge1xuICAgICAgdmFyIHBhcnRzID0gbGluZS5zcGxpdCgnOicpXG4gICAgICB2YXIga2V5ID0gcGFydHMuc2hpZnQoKS50cmltKClcbiAgICAgIGlmIChrZXkpIHtcbiAgICAgICAgdmFyIHZhbHVlID0gcGFydHMuam9pbignOicpLnRyaW0oKVxuICAgICAgICBoZWFkZXJzLmFwcGVuZChrZXksIHZhbHVlKVxuICAgICAgfVxuICAgIH0pXG4gIHJldHVybiBoZWFkZXJzXG59XG5cbkJvZHkuY2FsbChSZXF1ZXN0LnByb3RvdHlwZSlcblxuZXhwb3J0IGZ1bmN0aW9uIFJlc3BvbnNlKGJvZHlJbml0LCBvcHRpb25zKSB7XG4gIGlmICghKHRoaXMgaW5zdGFuY2VvZiBSZXNwb25zZSkpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdQbGVhc2UgdXNlIHRoZSBcIm5ld1wiIG9wZXJhdG9yLCB0aGlzIERPTSBvYmplY3QgY29uc3RydWN0b3IgY2Fubm90IGJlIGNhbGxlZCBhcyBhIGZ1bmN0aW9uLicpXG4gIH1cbiAgaWYgKCFvcHRpb25zKSB7XG4gICAgb3B0aW9ucyA9IHt9XG4gIH1cblxuICB0aGlzLnR5cGUgPSAnZGVmYXVsdCdcbiAgdGhpcy5zdGF0dXMgPSBvcHRpb25zLnN0YXR1cyA9PT0gdW5kZWZpbmVkID8gMjAwIDogb3B0aW9ucy5zdGF0dXNcbiAgdGhpcy5vayA9IHRoaXMuc3RhdHVzID49IDIwMCAmJiB0aGlzLnN0YXR1cyA8IDMwMFxuICB0aGlzLnN0YXR1c1RleHQgPSBvcHRpb25zLnN0YXR1c1RleHQgPT09IHVuZGVmaW5lZCA/ICcnIDogJycgKyBvcHRpb25zLnN0YXR1c1RleHRcbiAgdGhpcy5oZWFkZXJzID0gbmV3IEhlYWRlcnMob3B0aW9ucy5oZWFkZXJzKVxuICB0aGlzLnVybCA9IG9wdGlvbnMudXJsIHx8ICcnXG4gIHRoaXMuX2luaXRCb2R5KGJvZHlJbml0KVxufVxuXG5Cb2R5LmNhbGwoUmVzcG9uc2UucHJvdG90eXBlKVxuXG5SZXNwb25zZS5wcm90b3R5cGUuY2xvbmUgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIG5ldyBSZXNwb25zZSh0aGlzLl9ib2R5SW5pdCwge1xuICAgIHN0YXR1czogdGhpcy5zdGF0dXMsXG4gICAgc3RhdHVzVGV4dDogdGhpcy5zdGF0dXNUZXh0LFxuICAgIGhlYWRlcnM6IG5ldyBIZWFkZXJzKHRoaXMuaGVhZGVycyksXG4gICAgdXJsOiB0aGlzLnVybFxuICB9KVxufVxuXG5SZXNwb25zZS5lcnJvciA9IGZ1bmN0aW9uKCkge1xuICB2YXIgcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UobnVsbCwge3N0YXR1czogMCwgc3RhdHVzVGV4dDogJyd9KVxuICByZXNwb25zZS50eXBlID0gJ2Vycm9yJ1xuICByZXR1cm4gcmVzcG9uc2Vcbn1cblxudmFyIHJlZGlyZWN0U3RhdHVzZXMgPSBbMzAxLCAzMDIsIDMwMywgMzA3LCAzMDhdXG5cblJlc3BvbnNlLnJlZGlyZWN0ID0gZnVuY3Rpb24odXJsLCBzdGF0dXMpIHtcbiAgaWYgKHJlZGlyZWN0U3RhdHVzZXMuaW5kZXhPZihzdGF0dXMpID09PSAtMSkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdJbnZhbGlkIHN0YXR1cyBjb2RlJylcbiAgfVxuXG4gIHJldHVybiBuZXcgUmVzcG9uc2UobnVsbCwge3N0YXR1czogc3RhdHVzLCBoZWFkZXJzOiB7bG9jYXRpb246IHVybH19KVxufVxuXG5leHBvcnQgdmFyIERPTUV4Y2VwdGlvbiA9IGdsb2JhbC5ET01FeGNlcHRpb25cbnRyeSB7XG4gIG5ldyBET01FeGNlcHRpb24oKVxufSBjYXRjaCAoZXJyKSB7XG4gIERPTUV4Y2VwdGlvbiA9IGZ1bmN0aW9uKG1lc3NhZ2UsIG5hbWUpIHtcbiAgICB0aGlzLm1lc3NhZ2UgPSBtZXNzYWdlXG4gICAgdGhpcy5uYW1lID0gbmFtZVxuICAgIHZhciBlcnJvciA9IEVycm9yKG1lc3NhZ2UpXG4gICAgdGhpcy5zdGFjayA9IGVycm9yLnN0YWNrXG4gIH1cbiAgRE9NRXhjZXB0aW9uLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoRXJyb3IucHJvdG90eXBlKVxuICBET01FeGNlcHRpb24ucHJvdG90eXBlLmNvbnN0cnVjdG9yID0gRE9NRXhjZXB0aW9uXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmZXRjaChpbnB1dCwgaW5pdCkge1xuICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgdmFyIHJlcXVlc3QgPSBuZXcgUmVxdWVzdChpbnB1dCwgaW5pdClcblxuICAgIGlmIChyZXF1ZXN0LnNpZ25hbCAmJiByZXF1ZXN0LnNpZ25hbC5hYm9ydGVkKSB7XG4gICAgICByZXR1cm4gcmVqZWN0KG5ldyBET01FeGNlcHRpb24oJ0Fib3J0ZWQnLCAnQWJvcnRFcnJvcicpKVxuICAgIH1cblxuICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKVxuXG4gICAgZnVuY3Rpb24gYWJvcnRYaHIoKSB7XG4gICAgICB4aHIuYWJvcnQoKVxuICAgIH1cblxuICAgIHhoci5vbmxvYWQgPSBmdW5jdGlvbigpIHtcbiAgICAgIHZhciBvcHRpb25zID0ge1xuICAgICAgICBzdGF0dXM6IHhoci5zdGF0dXMsXG4gICAgICAgIHN0YXR1c1RleHQ6IHhoci5zdGF0dXNUZXh0LFxuICAgICAgICBoZWFkZXJzOiBwYXJzZUhlYWRlcnMoeGhyLmdldEFsbFJlc3BvbnNlSGVhZGVycygpIHx8ICcnKVxuICAgICAgfVxuICAgICAgb3B0aW9ucy51cmwgPSAncmVzcG9uc2VVUkwnIGluIHhociA/IHhoci5yZXNwb25zZVVSTCA6IG9wdGlvbnMuaGVhZGVycy5nZXQoJ1gtUmVxdWVzdC1VUkwnKVxuICAgICAgdmFyIGJvZHkgPSAncmVzcG9uc2UnIGluIHhociA/IHhoci5yZXNwb25zZSA6IHhoci5yZXNwb25zZVRleHRcbiAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG4gICAgICAgIHJlc29sdmUobmV3IFJlc3BvbnNlKGJvZHksIG9wdGlvbnMpKVxuICAgICAgfSwgMClcbiAgICB9XG5cbiAgICB4aHIub25lcnJvciA9IGZ1bmN0aW9uKCkge1xuICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHtcbiAgICAgICAgcmVqZWN0KG5ldyBUeXBlRXJyb3IoJ05ldHdvcmsgcmVxdWVzdCBmYWlsZWQnKSlcbiAgICAgIH0sIDApXG4gICAgfVxuXG4gICAgeGhyLm9udGltZW91dCA9IGZ1bmN0aW9uKCkge1xuICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHtcbiAgICAgICAgcmVqZWN0KG5ldyBUeXBlRXJyb3IoJ05ldHdvcmsgcmVxdWVzdCBmYWlsZWQnKSlcbiAgICAgIH0sIDApXG4gICAgfVxuXG4gICAgeGhyLm9uYWJvcnQgPSBmdW5jdGlvbigpIHtcbiAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG4gICAgICAgIHJlamVjdChuZXcgRE9NRXhjZXB0aW9uKCdBYm9ydGVkJywgJ0Fib3J0RXJyb3InKSlcbiAgICAgIH0sIDApXG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZml4VXJsKHVybCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIHVybCA9PT0gJycgJiYgZ2xvYmFsLmxvY2F0aW9uLmhyZWYgPyBnbG9iYWwubG9jYXRpb24uaHJlZiA6IHVybFxuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICByZXR1cm4gdXJsXG4gICAgICB9XG4gICAgfVxuXG4gICAgeGhyLm9wZW4ocmVxdWVzdC5tZXRob2QsIGZpeFVybChyZXF1ZXN0LnVybCksIHRydWUpXG5cbiAgICBpZiAocmVxdWVzdC5jcmVkZW50aWFscyA9PT0gJ2luY2x1ZGUnKSB7XG4gICAgICB4aHIud2l0aENyZWRlbnRpYWxzID0gdHJ1ZVxuICAgIH0gZWxzZSBpZiAocmVxdWVzdC5jcmVkZW50aWFscyA9PT0gJ29taXQnKSB7XG4gICAgICB4aHIud2l0aENyZWRlbnRpYWxzID0gZmFsc2VcbiAgICB9XG5cbiAgICBpZiAoJ3Jlc3BvbnNlVHlwZScgaW4geGhyKSB7XG4gICAgICBpZiAoc3VwcG9ydC5ibG9iKSB7XG4gICAgICAgIHhoci5yZXNwb25zZVR5cGUgPSAnYmxvYidcbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgIHN1cHBvcnQuYXJyYXlCdWZmZXIgJiZcbiAgICAgICAgcmVxdWVzdC5oZWFkZXJzLmdldCgnQ29udGVudC1UeXBlJykgJiZcbiAgICAgICAgcmVxdWVzdC5oZWFkZXJzLmdldCgnQ29udGVudC1UeXBlJykuaW5kZXhPZignYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJykgIT09IC0xXG4gICAgICApIHtcbiAgICAgICAgeGhyLnJlc3BvbnNlVHlwZSA9ICdhcnJheWJ1ZmZlcidcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoaW5pdCAmJiB0eXBlb2YgaW5pdC5oZWFkZXJzID09PSAnb2JqZWN0JyAmJiAhKGluaXQuaGVhZGVycyBpbnN0YW5jZW9mIEhlYWRlcnMpKSB7XG4gICAgICBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhpbml0LmhlYWRlcnMpLmZvckVhY2goZnVuY3Rpb24obmFtZSkge1xuICAgICAgICB4aHIuc2V0UmVxdWVzdEhlYWRlcihuYW1lLCBub3JtYWxpemVWYWx1ZShpbml0LmhlYWRlcnNbbmFtZV0pKVxuICAgICAgfSlcbiAgICB9IGVsc2Uge1xuICAgICAgcmVxdWVzdC5oZWFkZXJzLmZvckVhY2goZnVuY3Rpb24odmFsdWUsIG5hbWUpIHtcbiAgICAgICAgeGhyLnNldFJlcXVlc3RIZWFkZXIobmFtZSwgdmFsdWUpXG4gICAgICB9KVxuICAgIH1cblxuICAgIGlmIChyZXF1ZXN0LnNpZ25hbCkge1xuICAgICAgcmVxdWVzdC5zaWduYWwuYWRkRXZlbnRMaXN0ZW5lcignYWJvcnQnLCBhYm9ydFhocilcblxuICAgICAgeGhyLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAvLyBET05FIChzdWNjZXNzIG9yIGZhaWx1cmUpXG4gICAgICAgIGlmICh4aHIucmVhZHlTdGF0ZSA9PT0gNCkge1xuICAgICAgICAgIHJlcXVlc3Quc2lnbmFsLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2Fib3J0JywgYWJvcnRYaHIpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICB4aHIuc2VuZCh0eXBlb2YgcmVxdWVzdC5fYm9keUluaXQgPT09ICd1bmRlZmluZWQnID8gbnVsbCA6IHJlcXVlc3QuX2JvZHlJbml0KVxuICB9KVxufVxuXG5mZXRjaC5wb2x5ZmlsbCA9IHRydWVcblxuaWYgKCFnbG9iYWwuZmV0Y2gpIHtcbiAgZ2xvYmFsLmZldGNoID0gZmV0Y2hcbiAgZ2xvYmFsLkhlYWRlcnMgPSBIZWFkZXJzXG4gIGdsb2JhbC5SZXF1ZXN0ID0gUmVxdWVzdFxuICBnbG9iYWwuUmVzcG9uc2UgPSBSZXNwb25zZVxufVxuIiwiLyogdHNsaW50OmRpc2FibGU6bm8tbnVsbC1rZXl3b3JkIG5vLWFueSBuby11bnNhZmUtYW55ICovXG5pbXBvcnQgeyBmZXRjaCB9IGZyb20gXCJ3aGF0d2ctZmV0Y2hcIjtcbmltcG9ydCB7IEFsbEljb25OYW1lcyB9IGZyb20gXCJyZWFjdC11aVwiO1xuXG5pbXBvcnQgeyBFcnJvckZpcnN0Q2FsbGJhY2ssIHJlamVjdCB9IGZyb20gXCIuLi8uLi8uLi8uLi9Db21tb24vVHlwaW5nVXRpbHNcIjtcbmltcG9ydCB0eXBlIHsgSUZvcm0gfSBmcm9tIFwiLi4vLi4vRW5naW5lL0Zvcm0vSUZvcm1cIjtcbmltcG9ydCB7IExvYWRJbnRvRG9jdW1lbnQgfSBmcm9tIFwiLi4vLi4vSGVscGVycy9Mb2FkSW50b0RvY3VtZW50XCI7XG5pbXBvcnQgdHlwZSB7IElQdWJsaWNGb3JtIH0gZnJvbSBcIi4uL1B1YmxpY0Zvcm0vSVB1YmxpY0Zvcm1cIjtcbmltcG9ydCB0eXBlIHsgSUtlV2ViVGVtcGxhdGVzQXBpQ2xpZW50IH0gZnJvbSBcIi4uL1R5cGVzL0lLZVdlYlRlbXBsYXRlc0FwaUNsaWVudFwiO1xuaW1wb3J0IHR5cGUgeyBDbGllbnREcmFmdEluZm9SZXNwb25zZSB9IGZyb20gXCIuLi8uLi8uLi8uLi9Db21tb24vQ2FuZHlBcGlDbGllbnQvQ2xpZW50RHJhZnRJbmZvL0NsaWVudERyYWZ0SW5mb1Jlc3BvbnNlXCI7XG5pbXBvcnQgeyBnZXRDbGllbnREcmFmdEluZm9VcmwgfSBmcm9tIFwiLi4vLi4vLi4vLi4vQ29tbW9uL0NhbmR5QXBpQ2xpZW50L0NsaWVudERyYWZ0SW5mby9HZXRDbGllbnREcmFmdEluZm9VcmxcIjtcbmltcG9ydCB7IEFVT09wdGlvbnMgfSBmcm9tIFwiLi4vVHlwZXMvQVVPT3B0aW9uc1wiO1xuaW1wb3J0IHR5cGUgeyBMYXlvdXRFdmVudHNTdGF0aWMgfSBmcm9tIFwiLi4vLi4vQ29udHJvbHMvSW50ZXJuYWxzL0xheW91dEV2ZW50cy9MYXlvdXRFdmVudHNcIjtcblxuaW1wb3J0IHsgY2xpZW50U2V0dGluZ3MgfSBmcm9tIFwiLi9DbGllbnRTZXR0aW5nc1wiO1xuaW1wb3J0IHsgY3JlYXRlTGVnYWN5UHVibGljRm9ybSB9IGZyb20gXCIuL0xlZ2FjeVB1YmxpY0Zvcm0vQ3JlYXRlTGVnYWN5UHVibGljRm9ybVwiO1xuXG50eXBlIEZvcm1Db250YWluZXIgPSBzdHJpbmcgfCBIVE1MRWxlbWVudDtcblxudHlwZSBFbmdpbmVFbnRyeVBvaW50ID0gKCkgPT4gdm9pZDtcblxuZXhwb3J0IGludGVyZmFjZSBBY3Rpb25EZXNjcmlwdGlvbiB7XG4gICAgaWNvbjogQWxsSWNvbk5hbWVzO1xuICAgIHRleHQ/OiBzdHJpbmcgfCAoKCkgPT4gc3RyaW5nKTtcbiAgICBvbkNsaWNrOiAoKSA9PiB2b2lkO1xuICAgIGhpbnQ/OiB1bmRlZmluZWQgfCBzdHJpbmc7XG4gICAgaWQ6IHN0cmluZztcbiAgICB0aWQ/OiBzdHJpbmc7XG4gICAgd2VpZ2h0OiBudW1iZXI7XG59XG5cbmludGVyZmFjZSBSZW5kZXJGb3JtU2V0dGluZ3Mge1xuICAgIGdmdjogc3RyaW5nO1xuICAgIGVuZ2luZVZlcnNpb24/OiB1bmRlZmluZWQgfCBudWxsIHwgc3RyaW5nO1xuICAgIHJlc291cmNlc1ZlcnNpb246IHN0cmluZztcbiAgICB0aGVtZT86IHVuZGVmaW5lZCB8IG51bGwgfCBzdHJpbmc7XG4gICAgcmVzb3VyY2Vab25lPzogc3RyaW5nO1xuICAgIHJlbmRlckZvcm06IHVuZGVmaW5lZCB8IEVuZ2luZUVudHJ5UG9pbnQ7XG4gICAgdGVtcGxhdGVzQXBpPzogSUtlV2ViVGVtcGxhdGVzQXBpQ2xpZW50O1xuICAgIHBhbmVsQWN0aW9ucz86IEFjdGlvbkRlc2NyaXB0aW9uW107XG59XG5cbnR5cGUgU3RhcnRGb3JtRnVuYyA9IChwYWdlQ29udGVudDogRm9ybUNvbnRhaW5lciwgZXh0ZW5kZWRTZXR0aW5nczogUmVuZGVyRm9ybVNldHRpbmdzKSA9PiBQcm9taXNlPElGb3JtPjtcblxuaW50ZXJmYWNlIENhbmR5R2xvYmFsSW5qZWN0ZWRWYXIge1xuICAgIHN0YXJ0OiAocGFnZUNvbnRlbnQ6IEZvcm1Db250YWluZXIsIG9wdGlvbnM6IFN0YXJ0Rm9ybU9wdGlvbnMsIGNhbGxiYWNrPzogRXJyb3JGaXJzdENhbGxiYWNrPElQdWJsaWNGb3JtPikgPT4gdm9pZDtcbiAgICBrZWZvcm1zVXJsPzogc3RyaW5nO1xuICAgIHBhcnRpYWxSZW5kZXJpbmdGb3JJRTg6IGJvb2xlYW47XG4gICAgZW50cnlQb2ludDogeyBba2V5OiBzdHJpbmddOiBTdGFydEZvcm1GdW5jIH07XG4gICAgbG9hZEVycm9yPzogdW5rbm93bjtcbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICAgIGludGVyZmFjZSBXaW5kb3cge1xuICAgICAgICBDRjogQ2FuZHlHbG9iYWxJbmplY3RlZFZhcjtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5hbWVzcGFjZVxuICAgIG5hbWVzcGFjZSBOb2RlSlMge1xuICAgICAgICBpbnRlcmZhY2UgR2xvYmFsIHtcbiAgICAgICAgICAgIENGOiBDYW5keUdsb2JhbEluamVjdGVkVmFyO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5kZWNsYXJlIGNvbnN0IGdsb2JhbDogV2luZG93O1xuXG5mdW5jdGlvbiBkZWZhdWx0Q2FsbGJhY2soKTogdm9pZCB7XG4gICAgLyogZW1wdHkgKi9cbn1cblxuZnVuY3Rpb24gcGFyc2VCb29sKHZhbHVlOiB1bmtub3duKTogYm9vbGVhbiB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICBpZiAodmFsdWUgPT09IFwiZmFsc2VcIikge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gXCJ0cnVlXCIpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIEJvb2xlYW4odmFsdWUpO1xufVxuXG5mdW5jdGlvbiB1cmwocmVsYXRpdmVVcmw6IHN0cmluZyA9IFwiXCIpOiBzdHJpbmcge1xuICAgIGNvbnN0IGJhc2VVcmwgPSBnbG9iYWwuQ0Yua2Vmb3Jtc1VybCB8fCBcIlwiO1xuXG4gICAgcmV0dXJuIGAke2Jhc2VVcmx9LyR7cmVsYXRpdmVVcmx9YC5yZXBsYWNlKC8oW146XSlcXC97Mix9L2csIFwiJDEvXCIpO1xufVxuXG5mdW5jdGlvbiBidWlsZFVybChwYXRoOiBzdHJpbmcsIHBhcmFtczogeyBbcGFyYW1OYW1lOiBzdHJpbmddOiB1bmRlZmluZWQgfCBzdHJpbmcgfSk6IHN0cmluZyB7XG4gICAgaWYgKHBhcmFtcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiBwYXRoO1xuICAgIH1cbiAgICBjb25zdCBxdWVyeVBhcnRzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGZvciAoY29uc3QgcGFyYW1OYW1lIG9mIE9iamVjdC5rZXlzKHBhcmFtcykpIHtcbiAgICAgICAgY29uc3QgcGFyYW1WYWx1ZSA9IHBhcmFtc1twYXJhbU5hbWVdO1xuICAgICAgICBpZiAocGFyYW1WYWx1ZSAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHF1ZXJ5UGFydHMucHVzaChgJHtwYXJhbU5hbWV9PSR7ZW5jb2RlVVJJQ29tcG9uZW50KHBhcmFtVmFsdWUpfWApO1xuICAgICAgICB9XG4gICAgfVxuICAgIGlmIChxdWVyeVBhcnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gcGF0aDtcbiAgICB9XG4gICAgcmV0dXJuIHBhdGggKyBcIj9cIiArIHF1ZXJ5UGFydHMuam9pbihcIiZcIik7XG59XG5cbmZ1bmN0aW9uIGlzQWxsb3dlZChkb21haW5zOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gbmV3IFJlZ0V4cChgXig/OiR7ZG9tYWlucy5yZXBsYWNlKC9cXC4vZywgXCJcXFxcLlwiKS5yZXBsYWNlKC9cXCovZywgXCJbYS16MC05LS5fXStcIil9KSRgKS50ZXN0KFxuICAgICAgICBnbG9iYWwubG9jYXRpb24uaG9zdFxuICAgICk7XG59XG5cbmZ1bmN0aW9uIGdldFBhcmFtZXRlckJ5TmFtZShuYW1lOiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiAoXG4gICAgICAgIChnbG9iYWwubG9jYXRpb24uc2VhcmNoXG4gICAgICAgICAgICAudHJpbSgpXG4gICAgICAgICAgICAucmVwbGFjZSgvXihcXD98I3wmKS8sIFwiXCIpXG4gICAgICAgICAgICAuc3BsaXQoXCImXCIpXG4gICAgICAgICAgICAubWFwKHBhcmFtID0+IHBhcmFtLnJlcGxhY2UoL1xcKy9nLCBcIiBcIikuc3BsaXQoXCI9XCIpLm1hcChkZWNvZGVVUklDb21wb25lbnQpKVxuICAgICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnRyaXBsZS1lcXVhbHNcbiAgICAgICAgICAgIC5maW5kKChba2V5XSkgPT4ga2V5ID09IG5hbWUpIHx8IFtdKVsxXVxuICAgICk7XG59XG5cbnR5cGUgVGFzayA9IChjYWxsYmFjazogKGVycm9yPzogRXJyb3IpID0+IHZvaWQpID0+IHZvaWQ7XG5cbmZ1bmN0aW9uIHJ1blBhcmFsbGVsKHRhc2tzOiBUYXNrW10sIGNhbGxiYWNrOiAoZXJyb3I/OiBFcnJvcikgPT4gdm9pZCk6IHZvaWQge1xuICAgIGxldCBjb21wbGV0ZWQgPSAwO1xuXG4gICAgdGFza3MuZm9yRWFjaCh0YXNrID0+IHtcbiAgICAgICAgdGFzayhlcnJvciA9PiB7XG4gICAgICAgICAgICBpZiAoY29tcGxldGVkID09PSB0YXNrcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICBjb21wbGV0ZWQgPSB0YXNrcy5sZW5ndGg7XG4gICAgICAgICAgICAgICAgY2FsbGJhY2soZXJyb3IpO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29tcGxldGVkICs9IDE7XG4gICAgICAgICAgICBpZiAoY29tcGxldGVkID09PSB0YXNrcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBjYWxsYmFjaygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9KTtcbn1cblxuaW50ZXJmYWNlIFN0YXJ0Rm9ybVNldHRpbmcge1xuICAgIGdmdjogc3RyaW5nO1xuICAgIGVuZ2luZVZlcnNpb24/OiB1bmRlZmluZWQgfCBudWxsIHwgc3RyaW5nO1xuICAgIHJlc291cmNlWm9uZT86IHN0cmluZztcbiAgICByZXNvdXJjZXNWZXJzaW9uOiBzdHJpbmc7XG4gICAgdGhlbWU/OiB1bmRlZmluZWQgfCBudWxsIHwgc3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNFbmdpbmVWZXJzaW9uR3JlYXRlclRoYW5PckVxdWFsKGxlZnQ6IHN0cmluZywgcmlnaHQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGxlZnROdW1iZXJzID0gbGVmdFxuICAgICAgICAgICAgLnNwbGl0KFwiLlwiKVxuICAgICAgICAgICAgLnNsaWNlKDAsIDMpXG4gICAgICAgICAgICAubWFwKHggPT4gcGFyc2VJbnQoeCwgMTApKTtcbiAgICAgICAgY29uc3QgcmlnaHROdW1iZXJzID0gcmlnaHRcbiAgICAgICAgICAgIC5zcGxpdChcIi5cIilcbiAgICAgICAgICAgIC5zbGljZSgwLCAzKVxuICAgICAgICAgICAgLm1hcCh4ID0+IHBhcnNlSW50KHgsIDEwKSk7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAobGVmdE51bWJlcnNbMF0gPz8gMCkgPiAocmlnaHROdW1iZXJzWzBdID8/IDApIHx8XG4gICAgICAgICAgICAoKGxlZnROdW1iZXJzWzBdID8/IDApID09PSAocmlnaHROdW1iZXJzWzBdID8/IDApICYmXG4gICAgICAgICAgICAgICAgKChsZWZ0TnVtYmVyc1sxXSA/PyAwKSA+IChyaWdodE51bWJlcnNbMV0gPz8gMCkgfHxcbiAgICAgICAgICAgICAgICAgICAgKChsZWZ0TnVtYmVyc1sxXSA/PyAwKSA9PT0gKHJpZ2h0TnVtYmVyc1sxXSA/PyAwKSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgKGxlZnROdW1iZXJzWzJdID8/IDApID49IChyaWdodE51bWJlcnNbMl0gPz8gMCkpKSlcbiAgICAgICAgKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gbG9hZEZvcm0oc2V0dGluZ3M6IFN0YXJ0Rm9ybVNldHRpbmcsIGNhbGxiYWNrOiAoZXJyb3I/OiBudWxsIHwgdW5kZWZpbmVkIHwgRXJyb3IpID0+IHZvaWQpOiB2b2lkIHtcbiAgICBjb25zdCB7IGdmdiwgZW5naW5lVmVyc2lvbiwgcmVzb3VyY2VzVmVyc2lvbiB9ID0gc2V0dGluZ3M7XG5cbiAgICBpZiAoZ2xvYmFsLkNGLmVudHJ5UG9pbnRbZ2Z2XSkge1xuICAgICAgICBjYWxsYmFjaygpO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGlzTmVlZEVuZ2luZSA9IGVuZ2luZVZlcnNpb24gJiYgIWdsb2JhbFtlbmdpbmVWZXJzaW9uXTtcbiAgICBjb25zdCBub1N0eWxlc0ZvckdmdiA9IGZhbHNlOyAvLyBlbmdpbmVWZXJzaW9uICE9IHVuZGVmaW5lZCAmJiAoaXNFbmdpbmVWZXJzaW9uR3JlYXRlclRoYW5PckVxdWFsKGVuZ2luZVZlcnNpb24sIFwiNC4yMTQuMFwiKSB8fCBlbmdpbmVWZXJzaW9uID09PSBcImxvY2FsXCIpO1xuICAgIGNvbnN0IG5lZWRMb2FkU3R5bGVzRm9yR2Z2ID0gIW5vU3R5bGVzRm9yR2Z2O1xuICAgIGNvbnN0IG1pbiA9IGdldFBhcmFtZXRlckJ5TmFtZShcImRlYnVnXCIpID09PSBcInRydWVcIiA/IFwiXCIgOiBcIi5taW5cIjtcbiAgICBjb25zdCB0YXNrczogVGFza1tdID0gW107XG5cbiAgICBjb25zdCBwYXJhbXMgPSB7IHY6IHJlc291cmNlc1ZlcnNpb24sIHJlc291cmNlWm9uZTogc2V0dGluZ3MucmVzb3VyY2Vab25lIH07XG4gICAgaWYgKG5lZWRMb2FkU3R5bGVzRm9yR2Z2KSB7XG4gICAgICAgIHRhc2tzLnB1c2goY2IgPT5cbiAgICAgICAgICAgIExvYWRJbnRvRG9jdW1lbnQuc3R5bGVTaGVldCh1cmwoYnVpbGRVcmwoYHN0YXRpYy9wdWJsaWMvc3R5bGVzLyR7Z2Z2fSR7bWlufS5jc3NgLCBwYXJhbXMpKSwgdHJ1ZSwgY2IpXG4gICAgICAgICk7XG4gICAgfVxuICAgIHRhc2tzLnB1c2goY2IgPT4gTG9hZEludG9Eb2N1bWVudC5zY3JpcHQodXJsKGJ1aWxkVXJsKGBzdGF0aWMvcHVibGljL3NjcmlwdHMvJHtnZnZ9JHttaW59LmpzYCwgcGFyYW1zKSksIGNiKSk7XG5cbiAgICBpZiAoaXNOZWVkRW5naW5lKSB7XG4gICAgICAgIHRhc2tzLnB1c2goXG4gICAgICAgICAgICBjYiA9PlxuICAgICAgICAgICAgICAgIExvYWRJbnRvRG9jdW1lbnQuc3R5bGVTaGVldChcbiAgICAgICAgICAgICAgICAgICAgdXJsKGJ1aWxkVXJsKGBzdGF0aWMvcHVibGljL3N0eWxlcy9jYW5keV8ke2VuZ2luZVZlcnNpb259JHttaW59LmNzc2AsIHBhcmFtcykpLFxuICAgICAgICAgICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgY2JcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgY2IgPT5cbiAgICAgICAgICAgICAgICBMb2FkSW50b0RvY3VtZW50LnNjcmlwdChcbiAgICAgICAgICAgICAgICAgICAgdXJsKGJ1aWxkVXJsKGBzdGF0aWMvcHVibGljL3NjcmlwdHMvY2FuZHlfJHtlbmdpbmVWZXJzaW9ufSR7bWlufS5qc2AsIHBhcmFtcykpLFxuICAgICAgICAgICAgICAgICAgICBjYlxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBydW5QYXJhbGxlbCh0YXNrcywgY2FsbGJhY2spO1xufVxuXG5mdW5jdGlvbiByZW5kZXJGb3JtKFxuICAgIHBhZ2VDb250ZW50OiBGb3JtQ29udGFpbmVyLFxuICAgIGV4dGVuZGVkU2V0dGluZ3M6IFJlbmRlckZvcm1TZXR0aW5ncyxcbiAgICBjYWxsYmFjazogRXJyb3JGaXJzdENhbGxiYWNrPElQdWJsaWNGb3JtPlxuKTogdm9pZCB7XG4gICAgY29uc3QgZm9ybUVudHJ5UG9pbnQgPVxuICAgICAgICBnbG9iYWwuQ0YuZW50cnlQb2ludFtleHRlbmRlZFNldHRpbmdzLmdmdl0gPz8gcmVqZWN0KGBGb3JtIGVudHJ5IHBvaW50ICR7ZXh0ZW5kZWRTZXR0aW5ncy5nZnZ9IG5vdCBmb3VuZC5gKTtcbiAgICBmb3JtRW50cnlQb2ludChwYWdlQ29udGVudCwgZXh0ZW5kZWRTZXR0aW5ncylcbiAgICAgICAgLnRoZW4oZm9ybSA9PiB7XG4gICAgICAgICAgICBjb25zdCBwdWJsaWNGb3JtID0gZm9ybS5wdWJsaWNGb3JtIHx8IGNyZWF0ZUxlZ2FjeVB1YmxpY0Zvcm0oZm9ybSk7XG5cbiAgICAgICAgICAgIGNhbGxiYWNrKG51bGwsIHB1YmxpY0Zvcm0pO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goY2FsbGJhY2spO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0YXJ0Rm9ybU9wdGlvbnMgZXh0ZW5kcyBQYXJ0aWFsPEFVT09wdGlvbnM+IHtcbiAgICBuczogc3RyaW5nO1xuICAgIGRyYWZ0SWQ6IHN0cmluZztcbiAgICBnZnY/OiBzdHJpbmc7XG4gICAgcmVzb3VyY2Vab25lPzogc3RyaW5nO1xuICAgIHRlbXBsYXRlc0FwaT86IElLZVdlYlRlbXBsYXRlc0FwaUNsaWVudDtcbiAgICBmZWVkYmFja0VuYWJsZWQ/OiBib29sZWFuO1xuICAgIGlzRGlzYWJsZWRDbG9zZUJ1dHRvbj86IGJvb2xlYW47XG4gICAgaXNEaXNhYmxlZENsb3NlQW5kU2F2ZUJ1dHRvbj86IGJvb2xlYW47XG4gICAgaXNEaXNhYmxlZENsZWFuRm9ybT86IGJvb2xlYW47XG4gICAgdGhlbWU/OiB1bmRlZmluZWQgfCBudWxsIHwgc3RyaW5nO1xuICAgIGF1dGhlbnRpY2F0aW9uPzogXCJicm93c2VyLWNyZWRlbnRpYWxzLWluY2x1ZGVcIiB8IHsgYXV0aFNpZDogc3RyaW5nIH07XG4gICAgZmV0Y2g/OiB0eXBlb2YgZmV0Y2g7XG4gICAgbW9kZWw/OiB7IFtwYXRoOiBzdHJpbmddOiB1bmtub3duIH07XG4gICAgcGFuZWxBY3Rpb25zPzogQWN0aW9uRGVzY3JpcHRpb25bXTtcbiAgICBldmVudEVtaXR0ZXI/OiBMYXlvdXRFdmVudHNTdGF0aWM7XG4gICAgZW1wbG95ZXJJZD86IHN0cmluZztcbiAgICBzaG93TmF2aWdhdGlvblNpZGViYXI/OiBib29sZWFuO1xuICAgIG9uUmVtb3ZlQXR0YWNobWVudD86ICgpID0+IHZvaWQ7XG59XG5cbmZ1bmN0aW9uIGdldEVuZ2luZUVudHJ5UG9pbnQoZW5naW5lVmVyc2lvbjogdW5kZWZpbmVkIHwgbnVsbCB8IHN0cmluZyk6IHVuZGVmaW5lZCB8IEVuZ2luZUVudHJ5UG9pbnQge1xuICAgIGlmIChlbmdpbmVWZXJzaW9uID09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1yZXR1cm5cbiAgICByZXR1cm4gZ2xvYmFsW2VuZ2luZVZlcnNpb25dICYmIGdsb2JhbFtlbmdpbmVWZXJzaW9uXS5kZWZhdWx0O1xufVxuXG5mdW5jdGlvbiBzdGFydChcbiAgICBwYWdlQ29udGVudDogRm9ybUNvbnRhaW5lcixcbiAgICBvcHRpb25zOiBTdGFydEZvcm1PcHRpb25zLFxuICAgIGNhbGxiYWNrOiBFcnJvckZpcnN0Q2FsbGJhY2s8SVB1YmxpY0Zvcm0+ID0gZGVmYXVsdENhbGxiYWNrXG4pOiB2b2lkIHtcbiAgICBsZXQgZXJyb3IgPSBudWxsO1xuICAgIGNvbnN0IHsgbnMsIGRyYWZ0SWQgfSA9IG9wdGlvbnM7XG5cbiAgICBpZiAoIWlzQWxsb3dlZChjbGllbnRTZXR0aW5ncy5rb250dXJEb21haW5zKSkge1xuICAgICAgICBlcnJvciA9IG5ldyBFcnJvcihcImRvbWFpbi51bnRydXN0ZWRcIik7XG4gICAgfSBlbHNlIGlmICghY2xpZW50U2V0dGluZ3MuYXV0aG9yaXplZCkge1xuICAgICAgICBlcnJvciA9IG5ldyBFcnJvcihcInVzZXIudW5hdXRoZW50aWNhdGVkXCIpO1xuICAgIH0gZWxzZSBpZiAoIWRyYWZ0SWQpIHtcbiAgICAgICAgZXJyb3IgPSBuZXcgRXJyb3IoXCJvcHRpb25zLmRyYWZ0SWQgaXMgcmVxdWlyZWRcIik7XG4gICAgfSBlbHNlIGlmICghbnMpIHtcbiAgICAgICAgZXJyb3IgPSBuZXcgRXJyb3IoXCJvcHRpb25zLm5zIGlzIHJlcXVpcmVkXCIpO1xuICAgIH1cblxuICAgIGlmIChlcnJvcikge1xuICAgICAgICBjYWxsYmFjayhlcnJvcik7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCByZXNvdXJjZVpvbmUgPSBvcHRpb25zLnJlc291cmNlWm9uZSA/PyBnZXRQYXJhbWV0ZXJCeU5hbWUoXCJyZXNvdXJjZVpvbmVcIik7XG4gICAgY29uc3QgY2xpZW50RHJhZnRVcmwgPSBidWlsZFVybCh1cmwoZ2V0Q2xpZW50RHJhZnRJbmZvVXJsKHsgbnM6IG5zLCBkcmFmdElkOiBkcmFmdElkIH0pKSwge1xuICAgICAgICByZXNvdXJjZVpvbmU6IHJlc291cmNlWm9uZSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHJlcXVlc3RPcHRpb25zOiBSZXF1ZXN0SW5pdCA9IHsgbWV0aG9kOiBcIkdFVFwiIH07XG4gICAgaWYgKG9wdGlvbnMuYXV0aGVudGljYXRpb24gPT0gdW5kZWZpbmVkIHx8IG9wdGlvbnMuYXV0aGVudGljYXRpb24gPT09IFwiYnJvd3Nlci1jcmVkZW50aWFscy1pbmNsdWRlXCIpIHtcbiAgICAgICAgcmVxdWVzdE9wdGlvbnMuY3JlZGVudGlhbHMgPSBcImluY2x1ZGVcIjtcbiAgICB9IGVsc2UgaWYgKFwiYXV0aFNpZFwiIGluIG9wdGlvbnMuYXV0aGVudGljYXRpb24gJiYgb3B0aW9ucy5hdXRoZW50aWNhdGlvbi5hdXRoU2lkICE9IHVuZGVmaW5lZCkge1xuICAgICAgICByZXF1ZXN0T3B0aW9ucy5jcmVkZW50aWFscyA9IFwib21pdFwiO1xuICAgICAgICByZXF1ZXN0T3B0aW9ucy5oZWFkZXJzID0gcmVxdWVzdE9wdGlvbnMuaGVhZGVycyA/PyB7fTtcbiAgICAgICAgcmVxdWVzdE9wdGlvbnMuaGVhZGVyc1tcIkF1dGhvcml6YXRpb25cIl0gPSBgQVVUSC5TSUQgJHtvcHRpb25zLmF1dGhlbnRpY2F0aW9uLmF1dGhTaWR9YDtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXF1ZXN0T3B0aW9ucy5jcmVkZW50aWFscyA9IFwib21pdFwiO1xuICAgIH1cbiAgICBjb25zdCBmZXRjaEltcGwgPSBvcHRpb25zLmZldGNoID8/IGZldGNoO1xuXG4gICAgZmV0Y2hJbXBsKGNsaWVudERyYWZ0VXJsLCByZXF1ZXN0T3B0aW9ucylcbiAgICAgICAgLnRoZW4oeCA9PiB4Lmpzb24oKSlcbiAgICAgICAgLnRoZW4oKGNsaWVudERyYWZ0SW5mbzogQ2xpZW50RHJhZnRJbmZvUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGdmdiA9IGNsaWVudERyYWZ0SW5mby5nZnY7XG4gICAgICAgICAgICBjb25zdCBlbmdpbmVWZXJzaW9uID0gY2xpZW50RHJhZnRJbmZvLmVuZ2luZVZlcnNpb247XG4gICAgICAgICAgICBjb25zdCBleHRlbmRlZFNldHRpbmdzID0ge1xuICAgICAgICAgICAgICAgIGF1dGhvcml6ZWQ6IGNsaWVudFNldHRpbmdzLmF1dGhvcml6ZWQsXG4gICAgICAgICAgICAgICAgY2F1bGRyb25BcGlVcmw6IGNsaWVudFNldHRpbmdzLmNhdWxkcm9uQXBpVXJsLFxuICAgICAgICAgICAgICAgIGlzVGVzdFNlcnZlcjogY2xpZW50U2V0dGluZ3MuaXNUZXN0U2VydmVyLFxuICAgICAgICAgICAgICAgIHJlbmRlckNhY2hpbmdGb3JJRTg6IGNsaWVudFNldHRpbmdzLnJlbmRlckNhY2hpbmdGb3JJRTgsXG4gICAgICAgICAgICAgICAgbm9ybWFsaXphdGlvbk9uU2VydmVyOiBjbGllbnRTZXR0aW5ncy5ub3JtYWxpemF0aW9uT25TZXJ2ZXIsXG4gICAgICAgICAgICAgICAgbm9ybWF0aXZlVXJsOiBjbGllbnRTZXR0aW5ncy5ub3JtYXRpdmVVcmwsXG4gICAgICAgICAgICAgICAgcmVzb3VyY2VzVmVyc2lvbjogY2xpZW50U2V0dGluZ3MucmVzb3VyY2VzVmVyc2lvbixcbiAgICAgICAgICAgICAgICBrb250dXJEb21haW5zOiBjbGllbnRTZXR0aW5ncy5rb250dXJEb21haW5zLFxuICAgICAgICAgICAgICAgIHNob3dOYXZpZ2F0aW9uU2lkZWJhcjogb3B0aW9ucy5zaG93TmF2aWdhdGlvblNpZGViYXIgPz8gdHJ1ZSxcbiAgICAgICAgICAgICAgICBvblJlbW92ZUF0dGFjaG1lbnQ6IG9wdGlvbnMub25SZW1vdmVBdHRhY2htZW50LFxuICAgICAgICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgICAgICAgICAgLi4uY2xpZW50RHJhZnRJbmZvLFxuICAgICAgICAgICAgICAgIGdmdjogZ2Z2LFxuICAgICAgICAgICAgICAgIGVuZ2luZVZlcnNpb246IGVuZ2luZVZlcnNpb24sXG4gICAgICAgICAgICAgICAgZmVlZGJhY2tFbmFibGVkOiBvcHRpb25zLmZlZWRiYWNrRW5hYmxlZCA/PyBjbGllbnREcmFmdEluZm8uZmVlZGJhY2tFbmFibGVkLFxuICAgICAgICAgICAgICAgIGlzRGlzYWJsZWRDbGVhbkZvcm06IG9wdGlvbnMuaXNEaXNhYmxlZENsZWFuRm9ybSA/PyBmYWxzZSxcbiAgICAgICAgICAgICAgICBpc0Rpc2FibGVkQ2xvc2VCdXR0b246IG9wdGlvbnMuaXNEaXNhYmxlZENsb3NlQnV0dG9uID8/IGZhbHNlLFxuICAgICAgICAgICAgICAgIGlzRGlzYWJsZWRDbG9zZUFuZFNhdmVCdXR0b246IG9wdGlvbnMuaXNEaXNhYmxlZENsb3NlQW5kU2F2ZUJ1dHRvbiA/PyBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXNvdXJjZVpvbmU6IHJlc291cmNlWm9uZSxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGxvYWRGb3JtKFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZ2Z2OiBleHRlbmRlZFNldHRpbmdzLmdmdixcbiAgICAgICAgICAgICAgICAgICAgZW5naW5lVmVyc2lvbjogZXh0ZW5kZWRTZXR0aW5ncy5lbmdpbmVWZXJzaW9uLFxuICAgICAgICAgICAgICAgICAgICByZXNvdXJjZVpvbmU6IGV4dGVuZGVkU2V0dGluZ3MucmVzb3VyY2Vab25lLFxuICAgICAgICAgICAgICAgICAgICByZXNvdXJjZXNWZXJzaW9uOiBleHRlbmRlZFNldHRpbmdzLnJlc291cmNlc1ZlcnNpb24sXG4gICAgICAgICAgICAgICAgICAgIHRoZW1lOiBleHRlbmRlZFNldHRpbmdzLnRoZW1lLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgbG9hZEVycm9yID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGxvYWRFcnJvciB8fCAhZ2xvYmFsLkNGLmVudHJ5UG9pbnRbZ2Z2XSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2sobmV3IEVycm9yKGBkeW5hbWljIGxvYWRpbmcgaXMgbm90IHN1cHBvcnRlZCBmb3IgZ2Z2ICR7Z2Z2fWApKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCByZW5kZXIgPSBnZXRFbmdpbmVFbnRyeVBvaW50KGVuZ2luZVZlcnNpb24pO1xuXG4gICAgICAgICAgICAgICAgICAgIHJlbmRlckZvcm0oXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWdlQ29udGVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5leHRlbmRlZFNldHRpbmdzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlc0FwaTogb3B0aW9ucy50ZW1wbGF0ZXNBcGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVuZGVyRm9ybTogcmVuZGVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKGNhbGxiYWNrKTtcbn1cblxuY29uc3QgQ2FuZHlDbGllbnRFeHBvcnRzOiBDYW5keUdsb2JhbEluamVjdGVkVmFyID0ge1xuICAgIHN0YXJ0OiBzdGFydCxcbiAgICBlbnRyeVBvaW50OiB7fSxcbiAgICBwYXJ0aWFsUmVuZGVyaW5nRm9ySUU4OiBwYXJzZUJvb2woXCJ7cGFydGlhbFJlbmRlcmluZ0ZvcklFOH1cIiksXG4gICAga2Vmb3Jtc1VybDogXCJ7a2Vmb3Jtc1VybH1cIixcbn07XG5cbmdsb2JhbC5DRiA9IENhbmR5Q2xpZW50RXhwb3J0cztcblxuZXhwb3J0IHsgQ2FuZHlDbGllbnRFeHBvcnRzIH07XG4iLCJmdW5jdGlvbiBwYXJzZUJvb2wodmFsdWU6IHVua25vd24pOiBib29sZWFuIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gXCJmYWxzZVwiKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbHVlID09PSBcInRydWVcIikge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gQm9vbGVhbih2YWx1ZSk7XG59XG5cbmV4cG9ydCBjb25zdCBjbGllbnRTZXR0aW5ncyA9IHtcbiAgICBhdXRob3JpemVkOiBwYXJzZUJvb2woXCJ7YXV0aG9yaXplZH1cIiksXG4gICAgY2F1bGRyb25BcGlVcmw6IFwie2NhdWxkcm9uQXBpVXJsfVwiLFxuICAgIGlzVGVzdFNlcnZlcjogcGFyc2VCb29sKFwie2lzVGVzdFNlcnZlcn1cIiksXG4gICAgcmVuZGVyQ2FjaGluZ0ZvcklFODogcGFyc2VCb29sKFwie3JlbmRlckNhY2hpbmdGb3JJRTh9XCIpLFxuICAgIG5vcm1hbGl6YXRpb25PblNlcnZlcjogcGFyc2VCb29sKFwie25vcm1hbGl6YXRpb25PblNlcnZlcn1cIiksXG4gICAgbm9ybWF0aXZlVXJsOiBcIntub3JtYXRpdmVVcmx9XCIsXG4gICAgcmVzb3VyY2VzVmVyc2lvbjogXCJ7cmVzb3VyY2VzVmVyc2lvbn1cIixcbiAgICBrb250dXJEb21haW5zOiBcIntrb250dXJEb21haW5zfVwiLFxufTtcbiIsImltcG9ydCB7XG4gICAgRW1wbG95ZWUsXG4gICAgRW1wbG95ZWVMaXN0LFxuICAgIEdldEVtcGxveWVlTGlzdFJlcXVlc3QsXG4gICAgR2V0V29ya2luZ0V2ZW50TGlzdFJlcXVlc3QsXG4gICAgV29ya2luZ0V2ZW50TGlzdCxcbn0gZnJvbSBcIkBza2Jrb250dXIvc3RhZmYtc2VsZWN0b3Itd2lkZ2V0XCI7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tIFwiRW5naW5lL3NyYy9FbmdpbmUvRm9ybS9Nb2RlbENoYW5nZUV2ZW50TGlzdGVuZXJcIjtcblxuaW1wb3J0IHsgTm90SW1wbGVtZW50ZWRFcnJvciB9IGZyb20gXCIuLi8uLi8uLi8uLi8uLi9Db21tb24vRXJyb3JzXCI7XG5pbXBvcnQgdHlwZSB7IFN0ZXAgfSBmcm9tIFwiLi4vLi4vLi4vQ29udHJvbHMvRm9ybVBhcnRzL1RvdXIvVG91clR5cGVzXCI7XG5pbXBvcnQgdHlwZSB7IFNlcnZlckVycm9yTG9nIH0gZnJvbSBcIi4uLy4uLy4uLy4uLy4uL0NvbW1vbi9DYW5keUFwaUNsaWVudC9UeXBlcy9FcnJvckxvZy9TZXJ2ZXJFcnJvckxvZ1wiO1xuaW1wb3J0IHR5cGUgeyBCaW5kaW5nUGF0aCwgTW9kZWxWYWx1ZSB9IGZyb20gXCIuLi8uLi8uLi9FbmdpbmUvQ29yZS9Db3JlVHlwZXNcIjtcbmltcG9ydCB0eXBlIHsgRXh0ZXJuYWxIb29rRnVuY3Rpb24gfSBmcm9tIFwiLi4vLi4vLi4vRW5naW5lL0NvcmUvRXZlbnRNYW5hZ2VtZW50L0V4dGVybmFsRXZlbnRzL0V4dGVybmFsSG9va0Z1bmN0aW9uXCI7XG5pbXBvcnQgdHlwZSB7IFJlYWRvbmx5TW9kZWxDaHVuayB9IGZyb20gXCIuLi8uLi8uLi9FbmdpbmUvQ29yZS9Nb2RlbFN0b3JpbmcvTW9kZWxDaHVua1wiO1xuaW1wb3J0IHR5cGUgeyBQaWNrbGlzdFF1ZXJ5UmVzcG9uc2UgfSBmcm9tIFwiLi4vLi4vLi4vRW5naW5lL0NvcmUvUGlja2xpc3RzL1BpY2tsaXN0VHlwZXNcIjtcbmltcG9ydCB0eXBlIHsgSUZvcm0gfSBmcm9tIFwiLi4vLi4vLi4vRW5naW5lL0Zvcm0vSUZvcm1cIjtcbmltcG9ydCB0eXBlIHsgSVB1YmxpY0Zvcm0gfSBmcm9tIFwiLi4vLi4vUHVibGljRm9ybS9JUHVibGljRm9ybVwiO1xuaW1wb3J0IHsgTW9kZWxFdmVudHNMaXN0ZW5lciB9IGZyb20gXCIuLi8uLi8uLi9FbmdpbmUvQ29yZS9FdmVudE1hbmFnZW1lbnQvTW9kZWxFdmVudHMvTW9kZWxFdmVudFwiO1xuaW1wb3J0IHsgRGlnZXN0UXVlcnlGaWx0ZXIgfSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vQ29tbW9uL0NhbmR5QXBpQ2xpZW50L0RpZ2VzdEFwaUNsaWVudC9UeXBlcy9EaWdlc3RRdWVyeUZpbHRlclwiO1xuaW1wb3J0IHsgSVVwZGF0ZUZvcm1Nb2RlbEFjY2Vzc29yIH0gZnJvbSBcIi4uLy4uLy4uL0VuZ2luZS9Gb3JtL0lGb3JtTW9kZWxBY2Nlc3NvclwiO1xuaW1wb3J0IHsgTW9kYWxPcHRpb25zIH0gZnJvbSBcIi4uLy4uLy4uL0VuZ2luZS9Db3JlL01vZGFsTWFuYWdlci9JTW9kYWxTdGF0ZVwiO1xuaW1wb3J0IHsgQWJzb2x1dGVSZXNvbHZlZE1vZGVsUGF0aCB9IGZyb20gXCIuLi8uLi8uLi8uLi8uLi9Db21tb24vTW9kZWxQYXRoL01vZGVsUGF0aFwiO1xuaW1wb3J0IHsgQ2FsbEluaXRTZWN0aW9uTGlnaHRib3hQcm9wcywgSW5pdFNlY3Rpb25Gb3JtTGlnaHRib3hPcHRpb25zIH0gZnJvbSBcIi4uLy4uL1B1YmxpY0Zvcm0vSW5pdFNlY3Rpb25MaWdodGJveFwiO1xuaW1wb3J0IHsgTWFzc0FjdGlvblBhcmFtZXRlcnMgfSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vQ29tbW9uL0NhbmR5QXBpQ2xpZW50L1R5cGVzL01hc3NBY3Rpb25zL01hc3NBY3Rpb25QYXJhbWV0ZXJzXCI7XG5pbXBvcnQgeyBQcmludFR5cGUgfSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vQ29tbW9uL0NhbmR5QXBpQ2xpZW50L1R5cGVzL1ByaW50L1ByaW50VHlwZVwiO1xuaW1wb3J0IHsgRmlhc0FwaSwgRmlhc0NsaWVudEluaXRPcHRpb25zIH0gZnJvbSBcIi4uLy4uLy4uL0NvbnRyb2xzL1ZhbHVlRWRpdG9ycy9GaWFzL0ZpYXNJbnB1dC9GaWFzQXBpXCI7XG5pbXBvcnQgeyBJbnN0YW5jZXNEZWxldGluZ1J1bGUgfSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vQ29tbW9uL0NhbmR5QXBpQ2xpZW50L1R5cGVzL0luc3RhbmNlc0RlbGV0aW5nL0luc3RhbmNlc0RlbGV0aW5nUnVsZVwiO1xuaW1wb3J0IHsgQ29tYmluZUZ1ZlJlc3VsdCB9IGZyb20gXCIuLi8uLi8uLi8uLi8uLi9Db21tb24vQ2FuZHlBcGlDbGllbnQvVHlwZXMvRHJhZnRBY3Rpb25zL0NvbWJpbmVGdWZSZXN1bHRcIjtcbmltcG9ydCB7IElDYW5keUNvbXBvbmVudEhhbmRsZSB9IGZyb20gXCIuLi8uLi8uLi9FbmdpbmUvQ29yZS9Db21wb25lbnRIYW5kbGVSZWdpc3RyeS9JQ2FuZHlDb21wb25lbnRIYW5kbGVcIjtcbmltcG9ydCB7IE5hdmlnYXRpb25QYXRoTWFwcGVyIH0gZnJvbSBcIi4uLy4uL0luamVjdGFibGVNb2R1bGVzL0luamVjdGFibGVFbmdpbmVNb2R1bGVzXCI7XG5pbXBvcnQgeyBJbXBvcnRFbXBsb3llckRvY3VtZW50c09wdGlvbnMgfSBmcm9tIFwiLi4vLi4vLi4vU3RhZmZTZXJ2aWNlSW50ZWdyYXRpb24vRW1wbG95ZWVTZXJ2aWNlVHlwZXNcIjtcbmltcG9ydCB7IFRhYkluZm9zU3RhdGUgfSBmcm9tIFwiLi4vLi4vLi4vQ29udHJvbHMvTXVsdGlDb250cm9scy9UYWJzL1N0b3JlL1RhYkluZm9zU3RhdGVcIjtcblxuaW1wb3J0IHsgSUxlZ2FjeUZvcm0gfSBmcm9tIFwiLi9JTGVnYWN5Rm9ybVwiO1xuXG5leHBvcnQgdHlwZSBNb2RlbEV2ZW50UGF0aCA9XG4gICAgfCBbXCJtb2RlbFwiLCBcImNoYW5nZVwiLCBzdHJpbmcsIHN0cmluZ11cbiAgICB8IFtcIm1vZGVsXCIsIFwicmVtb3ZlXCIsIHN0cmluZywgc3RyaW5nXVxuICAgIHwgW1wibW9kZWxcIiwgXCJjaGFuZ2VcIiwgc3RyaW5nXVxuICAgIHwgW1wibW9kZWxcIiwgXCJyZW1vdmVcIiwgc3RyaW5nXVxuICAgIHwgW1wibW9kZWxcIiwgXCJjaGFuZ2VcIl1cbiAgICB8IFtcIm1vZGVsXCIsIFwicmVtb3ZlXCJdO1xuXG5leHBvcnQgZnVuY3Rpb24gbW9kZWxDaGFuZ2VFdmVudFBhdGgocGF0aD86IHN0cmluZywgZmllbGROYW1lPzogc3RyaW5nKTogTW9kZWxFdmVudFBhdGgge1xuICAgIGlmIChmaWVsZE5hbWUgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmIChwYXRoID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiUGF0aCBtdXN0IGJlIGRlZmluZWRcIik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFtcIm1vZGVsXCIsIFwiY2hhbmdlXCIsIHBhdGgsIGZpZWxkTmFtZV07XG4gICAgfVxuICAgIGlmIChwYXRoICE9IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gW1wibW9kZWxcIiwgXCJjaGFuZ2VcIiwgcGF0aF07XG4gICAgfVxuICAgIHJldHVybiBbXCJtb2RlbFwiLCBcImNoYW5nZVwiXTtcbn1cblxuZnVuY3Rpb24gbWFwQ2h1bmtWYWx1ZXMoY2h1bms6IFJlYWRvbmx5TW9kZWxDaHVuayk6IEFycmF5PHsgW3BhdGg6IHN0cmluZ106IE1vZGVsVmFsdWUgfT4ge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyhjaHVuaylcbiAgICAgICAgLmZpbHRlcihwYXRoID0+IGNodW5rW3BhdGhdICYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChjaHVua1twYXRoXSwgXCJ2YWx1ZVwiKSlcbiAgICAgICAgLm1hcChwYXRoID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGNodW5rW3BhdGhdO1xuICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge307XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4geyBbcGF0aF06IHJlc3VsdC52YWx1ZSB9O1xuICAgICAgICB9KTtcbn1cblxuZnVuY3Rpb24gcmVkdWNlQ2h1bmtWYWx1ZXMoY2h1bmtzOiBBcnJheTx7IFtwYXRoOiBzdHJpbmddOiBNb2RlbFZhbHVlIH0+KTogeyBbcGF0aDogc3RyaW5nXTogTW9kZWxWYWx1ZSB9IHtcbiAgICByZXR1cm4gY2h1bmtzLnJlZHVjZShcbiAgICAgICAgKHJlc3VsdCwgY2h1bmspID0+ICh7XG4gICAgICAgICAgICAuLi5yZXN1bHQsXG4gICAgICAgICAgICAuLi5jaHVuayxcbiAgICAgICAgfSksXG4gICAgICAgIHt9XG4gICAgKTtcbn1cblxuY2xhc3MgTGVnYWN5UHVibGljRm9ybSBpbXBsZW1lbnRzIElQdWJsaWNGb3JtIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZvcm06IElMZWdhY3lGb3JtO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKGZvcm06IElMZWdhY3lGb3JtKSB7XG4gICAgICAgIHRoaXMuZm9ybSA9IGZvcm07XG4gICAgfVxuXG4gICAgcHVibGljIG5hdmlnYXRlQnlIaWdobGFuZGVyUGF0aHMocGF0aHM6IHN0cmluZ1tdKTogUHJvbWlzZTxJQ2FuZHlDb21wb25lbnRIYW5kbGUgfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC5cIik7XG4gICAgfVxuXG4gICAgcHVibGljIGdldE5hdmlnYXRpb25QYXRoTWFwcGVyKCk6IE5hdmlnYXRpb25QYXRoTWFwcGVyIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC5cIik7XG4gICAgfVxuXG4gICAgcHVibGljIGJhdGNoVXBkYXRlKHVwZGF0ZVByb2M6ICh1cGRhdGVBY2Nlc3NvcjogSVVwZGF0ZUZvcm1Nb2RlbEFjY2Vzc29yKSA9PiB2b2lkKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIk1ldGhvZCBub3QgaW1wbGVtZW50ZWQuXCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBydW5DaGVjaygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC5cIik7XG4gICAgfVxuXG4gICAgcHVibGljIHNldEVycm9yTG9nKGVycm9yTG9nOiBQYXJ0aWFsPFNlcnZlckVycm9yTG9nPik6IHZvaWQge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNZXRob2Qgbm90IGltcGxlbWVudGVkLlwiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgdmFsaWRhdGVDaGlsZHJlbkJ5UGF0aChwYXRoOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC5cIik7XG4gICAgfVxuXG4gICAgcHVibGljIF9fSU5URVJOQUxfX2ltcG9ydEZyb21FbXBsb3llZVNlcnZpY2UoKTogUHJvbWlzZTxFbXBsb3llZVtdIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIk1ldGhvZCBub3QgaW1wbGVtZW50ZWQuXCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBfX0lOVEVSTkFMX19nZXRTZWxlY3RGdW5jdGlvbkZvckRpc2FibGVFbXBsb3llZUluU1MoXG4gICAgICAgIHBhdGhTcGVjOiBzdHJpbmdcbiAgICApOiBQcm9taXNlPChlbXBsb3llZTogRW1wbG95ZWUpID0+IGJvb2xlYW4+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC5cIik7XG4gICAgfVxuXG4gICAgcHVibGljIGdldE1vZGFsVW5pdE9wZW5lZEluc3RhbmNlKHBhZ2VJZDogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbCB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIk1ldGhvZCBub3QgaW1wbGVtZW50ZWQuXCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRUYWJzU3RhdGUoKTogVGFiSW5mb3NTdGF0ZSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIk1ldGhvZCBub3QgaW1wbGVtZW50ZWQuXCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuYXZpZ2F0ZShuYXZpZ2F0aW9uUGF0aDogc3RyaW5nKTogUHJvbWlzZTxJQ2FuZHlDb21wb25lbnRIYW5kbGUgfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC5cIik7XG4gICAgfVxuXG4gICAgcHVibGljIGltcG9ydEVtcGxveWVyRG9jdW1lbnRzKG9wdGlvbnM6IEltcG9ydEVtcGxveWVyRG9jdW1lbnRzT3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNZXRob2Qgbm90IGltcGxlbWVudGVkLlwiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaW1wb3J0RW1wbG95ZWVzKGVtcGxveWVlczogRW1wbG95ZWVbXSwgb3B0aW9ucz86IHsgc2NlbmFyaW8/OiBzdHJpbmcgfSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNZXRob2Qgbm90IGltcGxlbWVudGVkLlwiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcHJpbnQocHJpbnRUeXBlOiBQcmludFR5cGUsIGJvZHk/OiBzdHJpbmdbXSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNZXRob2Qgbm90IGltcGxlbWVudGVkLlwiKTtcbiAgICB9XG4gICAgcHVibGljIHJ1bk1hc3NBY3Rpb24oYWN0aW9uSWQ6IHN0cmluZywgcGFyYW1ldGVycz86IE1hc3NBY3Rpb25QYXJhbWV0ZXJzKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIk1ldGhvZCBub3QgaW1wbGVtZW50ZWQuXCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRCeUdJZChnSWQ6IHN0cmluZywgZmlsdGVyPzogRGlnZXN0UXVlcnlGaWx0ZXIpOiBQcm9taXNlPFBpY2tsaXN0UXVlcnlSZXNwb25zZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtLnBpY2tsaXN0c1Byb3ZpZGVyLmdldERpZ2VzdEFwaVBpY2tsaXN0KGdJZCkucXVlcnkoZmlsdGVyKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb24oZXZlbnROYW1lOiBzdHJpbmcsIGxpc3RlbmVyOiBFeHRlcm5hbEhvb2tGdW5jdGlvbik6IHZvaWQge1xuICAgICAgICB0aGlzLmZvcm0uZXZlbnRNYW5hZ2VyLm9uKFtcImZvcm1cIiwgZXZlbnROYW1lXSwgbGlzdGVuZXIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvZmYoZXZlbnROYW1lOiBzdHJpbmcsIGxpc3RlbmVyOiBFeHRlcm5hbEhvb2tGdW5jdGlvbik6IHZvaWQge1xuICAgICAgICB0aGlzLmZvcm0uZXZlbnRNYW5hZ2VyLm9mZihbXCJmb3JtXCIsIGV2ZW50TmFtZV0sIGxpc3RlbmVyKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25Nb2RlbENoYW5nZShwYXRoOiBzdHJpbmcgfCBzdHJpbmdbXSwgbGlzdGVuZXI6IHVua25vd24pOiBTdWJzY3JpcHRpb24ge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgICB0aHJvdyBFcnJvcihcImZvcm0ub25Nb2RlbENoYW5nZSgpIGlzIG5vdCBzdXBwb3J0ZWQgeWV0XCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzYXZlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtLmNoYW5nZVNldC5zZW5kKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNsb3NlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aGlzLmZvcm0uY2hhbmdlU2V0LnN0b3BBdXRvc2VuZCgpO1xuICAgICAgICBpZiAodGhpcy5mb3JtLnVubW91bnQpIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybS51bm1vdW50KCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5mb3JtLmNoYW5nZVNldC5zZW5kKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFRvdXJTdGVwcygpOiBTdGVwW10ge1xuICAgICAgICAvLyBGb3Igb2xkIGtld2ViXG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdmFsaWRhdGUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyh0aGlzLmZvcm0ubW9kZWwuZ2V0Q2h1bmsodGhpcy5mb3JtLnNldHRpbmdzLmZvcm1Sb290KSk7XG4gICAgICAgIC8vIEB0cy1pZ25vcmUg0K3RgtC+INCyINGB0YLQsNGA0YvRhSDQtNCy0LjQttC60LDRhSDRgtGD0YIg0YLQsNC60L7QuSDQstGL0LfQvtCyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLXJldHVyblxuICAgICAgICByZXR1cm4gdGhpcy5mb3JtLnZhbGlkYXRvci52YWxpZGF0ZUFsbChrZXlzKTtcbiAgICB9XG4gICAgcHVibGljIGdldEFkZGl0aW9uYWxFbXBsb3llZUluZm8oZmlsdGVyczogR2V0RW1wbG95ZWVMaXN0UmVxdWVzdCk6IFByb21pc2U8RW1wbG95ZWVMaXN0IHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIm5vdCBpbXBsZW1lbnRlZFwiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgcmVsb2FkSW5uZXIoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIm5vdCBpbXBsZW1lbnRlZFwiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0V29ya2luZ0V2ZW50c0ZvckVtcGxveWVlKGZpbHRlcnM6IEdldFdvcmtpbmdFdmVudExpc3RSZXF1ZXN0KTogUHJvbWlzZTxXb3JraW5nRXZlbnRMaXN0IHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIm5vdCBpbXBsZW1lbnRlZFwiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaGFzRXJyb3JzKCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBlcnJvckNvdW50ID0gdGhpcy5mb3JtLm1vZGVsLmdldCh0aGlzLmZvcm0uc2V0dGluZ3MuZm9ybVJvb3QsIFwiZXJyb3JzQ291bnRcIik7XG4gICAgICAgIHJldHVybiBlcnJvckNvdW50ICE9IHVuZGVmaW5lZCAmJiBlcnJvckNvdW50ID4gMDtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25FcnJvcnNDb3VudENoYW5nZWQobGlzdGVuZXI6IE1vZGVsRXZlbnRzTGlzdGVuZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mb3JtLmV2ZW50TWFuYWdlci5vbihtb2RlbENoYW5nZUV2ZW50UGF0aCh0aGlzLmZvcm0uc2V0dGluZ3MuZm9ybVJvb3QsIFwiZXJyb3JzQ291bnRcIiksIGxpc3RlbmVyKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb2ZmRXJyb3JzQ291bnRDaGFuZ2VkKGxpc3RlbmVyOiBNb2RlbEV2ZW50c0xpc3RlbmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9ybS5ldmVudE1hbmFnZXIub2ZmKG1vZGVsQ2hhbmdlRXZlbnRQYXRoKHRoaXMuZm9ybS5zZXR0aW5ncy5mb3JtUm9vdCwgXCJlcnJvcnNDb3VudFwiKSwgbGlzdGVuZXIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQocGF0aE9yTW9kZWxDaHVuazogeyBbcGF0aDogc3RyaW5nXTogc3RyaW5nIHwgdW5kZWZpbmVkIH0pOiB2b2lkIHwgUHJvbWlzZTx2b2lkPjtcbiAgICBwdWJsaWMgc2V0KHBhdGhPck1vZGVsQ2h1bms6IHN0cmluZywgdmFsdWU6IE1vZGVsVmFsdWUpOiB2b2lkIHwgUHJvbWlzZTx2b2lkPjtcbiAgICBwdWJsaWMgc2V0KFxuICAgICAgICBwYXRoT3JNb2RlbENodW5rOiBzdHJpbmcgfCB7IFtwYXRoOiBzdHJpbmddOiBzdHJpbmcgfCB1bmRlZmluZWQgfSxcbiAgICAgICAgdmFsdWU/OiBNb2RlbFZhbHVlXG4gICAgKTogdm9pZCB8IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICBwYXRoT3JNb2RlbENodW5rICE9PSBudWxsICYmXG4gICAgICAgICAgICB0eXBlb2YgcGF0aE9yTW9kZWxDaHVuayAhPT0gXCJzdHJpbmdcIiAmJlxuICAgICAgICAgICAgdHlwZW9mIHBhdGhPck1vZGVsQ2h1bmsgPT09IFwib2JqZWN0XCIgJiZcbiAgICAgICAgICAgICFBcnJheS5pc0FycmF5KHBhdGhPck1vZGVsQ2h1bmspXG4gICAgICAgICkge1xuICAgICAgICAgICAgY29uc3QgaW5uZXJDaHVuayA9IE9iamVjdC5rZXlzKHBhdGhPck1vZGVsQ2h1bmspLnJlZHVjZTxSZWFkb25seU1vZGVsQ2h1bms+KFxuICAgICAgICAgICAgICAgIChyZXN1bHQsIHBhdGgpID0+ICh7IFtwYXRoXTogeyB2YWx1ZTogcGF0aE9yTW9kZWxDaHVua1twYXRoXSB9LCAuLi5yZXN1bHQgfSksXG4gICAgICAgICAgICAgICAge31cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIHRoaXMuZm9ybS5tb2RlbC5maWxsKGlubmVyQ2h1bmspO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHR5cGVvZiBwYXRoT3JNb2RlbENodW5rID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm0ubW9kZWwuc2V0KHBhdGhPck1vZGVsQ2h1bmssIFwidmFsdWVcIiwgdmFsdWUpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiZm9ybS5zZXQoKSBwYXJhbWV0ZXIgc2hvdWxkIGJlIHN0cmluZyBwYXRoIG9yIG9iamVjdCB3aXRoIHBhdGgtdmFsdWUgcGFpcnNcIik7XG4gICAgfVxuXG4gICAgcHVibGljIGdldChwYXRoT3JBcnJheTogc3RyaW5nIHwgc3RyaW5nW10pOiB7IFtwYXRoOiBzdHJpbmddOiBNb2RlbFZhbHVlIH0ge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShwYXRoT3JBcnJheSkpIHtcbiAgICAgICAgICAgIHJldHVybiByZWR1Y2VDaHVua1ZhbHVlcyhcbiAgICAgICAgICAgICAgICBwYXRoT3JBcnJheVxuICAgICAgICAgICAgICAgICAgICAubWFwKHBhdGggPT4gbWFwQ2h1bmtWYWx1ZXModGhpcy5mb3JtLm1vZGVsLmdldENodW5rKHBhdGgpKSlcbiAgICAgICAgICAgICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWFueVxuICAgICAgICAgICAgICAgICAgICAucmVkdWNlPEFycmF5PHsgW3BhdGg6IHN0cmluZ106IE1vZGVsVmFsdWUgfT4+KChyZXN1bHQsIGFycmF5KSA9PiByZXN1bHQuY29uY2F0KGFycmF5KSwgW10pXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHR5cGVvZiBwYXRoT3JBcnJheSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgcmV0dXJuIHJlZHVjZUNodW5rVmFsdWVzKG1hcENodW5rVmFsdWVzKHRoaXMuZm9ybS5tb2RlbC5nZXRDaHVuayhwYXRoT3JBcnJheSkpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwYXRoT3JBcnJheSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVkdWNlQ2h1bmtWYWx1ZXMobWFwQ2h1bmtWYWx1ZXModGhpcy5mb3JtLm1vZGVsLmdldENodW5rKHRoaXMuZm9ybS5zZXR0aW5ncy5mb3JtUm9vdCkpKTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJmb3JtLmdldCgpIHBhcmFtZXRlciBzaG91bGQgYmUgc3RyaW5nIHBhdGggb3IgYXJyYXkgb2YgcGF0aHNcIik7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFZhbHVlKHBhdGg6IHN0cmluZyk6IE1vZGVsVmFsdWUge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1yZXR1cm5cbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybS5tb2RlbC5nZXQocGF0aCwgXCJ2YWx1ZVwiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY29weVN1YnRyZWUoXG4gICAgICAgIHNvdXJjZUJpbmRpbmdQYXRoOiBCaW5kaW5nUGF0aCB8IEFic29sdXRlUmVzb2x2ZWRNb2RlbFBhdGgsXG4gICAgICAgIHRhcmdldEJpbmRpbmdQYXRoOiBCaW5kaW5nUGF0aCB8IEFic29sdXRlUmVzb2x2ZWRNb2RlbFBhdGgsXG4gICAgICAgIGRvTm90Q29weVBhdGhzPzogc3RyaW5nW11cbiAgICApOiB2b2lkIHtcbiAgICAgICAgdGhyb3cgbmV3IE5vdEltcGxlbWVudGVkRXJyb3IoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkSW5zdGFuY2UocGF0aDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICAgICAgdGhyb3cgbmV3IE5vdEltcGxlbWVudGVkRXJyb3IoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q2hpbGRyZW4ocGF0aDogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgICAgICB0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFcnJvcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyB1dWlkR2VuZXJhdGUoKTogc3RyaW5nIHtcbiAgICAgICAgdGhyb3cgbmV3IE5vdEltcGxlbWVudGVkRXJyb3IoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2hvd01vZGFsKG9wdGlvbnM6IE1vZGFsT3B0aW9ucyk6IHZvaWQge1xuICAgICAgICB0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFcnJvcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGRTZWN0aW9uKG9wdGlvbnM6IEluaXRTZWN0aW9uRm9ybUxpZ2h0Ym94T3B0aW9ucyk6IHZvaWQge1xuICAgICAgICB0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFcnJvcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjYWxsSW5pdFNlY3Rpb24ob3B0aW9uczogQ2FsbEluaXRTZWN0aW9uTGlnaHRib3hQcm9wcyk6IHZvaWQge1xuICAgICAgICB0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFcnJvcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjcmVhdGVGaWFzQXBpQ2xpZW50KG9wdGlvbnM6IEZpYXNDbGllbnRJbml0T3B0aW9ucyk6IEZpYXNBcGkge1xuICAgICAgICB0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFcnJvcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvcGVuRW1wbG95ZWVFZGl0b3IoZW1wbG95ZWVJZDogc3RyaW5nKSB7XG4gICAgICAgIHRocm93IG5ldyBOb3RJbXBsZW1lbnRlZEVycm9yKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlbW92ZUluc3RhbmNlKHBhdGg6IHN0cmluZywgaW5zdGFuY2U6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFcnJvcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZW1vdmVJbnN0YW5jZXMocGF0aDogc3RyaW5nLCBpbnN0YW5jZXM6IHN0cmluZ1tdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRocm93IG5ldyBOb3RJbXBsZW1lbnRlZEVycm9yKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGZvY3VzT25Db250cm9sSWZFeGlzdChwYXRoOiBCaW5kaW5nUGF0aCk6IHZvaWQge1xuICAgICAgICB0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFcnJvcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRBdXRvRmllbGRzVG9BdXRvVmFsdWUocGF0aFByZWZpeGVzOiBzdHJpbmdbXSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHVuZGVmaW5lZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGVuc3VyZUluc3RhbmNlRnVsbHlMb2FkZWQoXG4gICAgICAgIGJpbmRpbmdQYXRoOiBzdHJpbmcgfCBBYnNvbHV0ZVJlc29sdmVkTW9kZWxQYXRoLFxuICAgICAgICAuLi5pbnN0YW5jZXM6IHN0cmluZ1tdXG4gICAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIk1ldGhvZCBub3QgaW1wbGVtZW50ZWQuXCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjdXN0b21Ob3JtYWxpemUobm9ybWFsaXplcklkOiBzdHJpbmcsIHBhdGhQcmVmaXhlczogc3RyaW5nW10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhyb3cgbmV3IE5vdEltcGxlbWVudGVkRXJyb3IoKTtcbiAgICB9XG4gICAgcHVibGljIHJlbW92ZUluc3RhbmNlc0J5UnVsZXMocnVsZXM6IEluc3RhbmNlc0RlbGV0aW5nUnVsZVtdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRocm93IG5ldyBOb3RJbXBsZW1lbnRlZEVycm9yKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNyZWF0ZURucCgpOiBQcm9taXNlPENvbWJpbmVGdWZSZXN1bHQgfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgdGhyb3cgbmV3IE5vdEltcGxlbWVudGVkRXJyb3IoKTtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVMZWdhY3lQdWJsaWNGb3JtKGZvcm06IElGb3JtKTogSVB1YmxpY0Zvcm0ge1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICByZXR1cm4gbmV3IExlZ2FjeVB1YmxpY0Zvcm0oZm9ybSBhcyBJTGVnYWN5Rm9ybSk7XG59XG4iLCIvLyB0c2xpbnQ6ZGlzYWJsZSBuby11bnNhZmUtYW55XG5leHBvcnQgY2xhc3MgTG9hZEludG9Eb2N1bWVudCB7XG4gICAgcHVibGljIHN0YXRpYyBzY3JpcHQodXJpOiBzdHJpbmcsIGNhbGxiYWNrOiAoZXJyb3I/OiBFcnJvcikgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICBsZXQgc2NyaXB0TG9hZGVkID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IGhlYWQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShcImhlYWRcIilbMF0gfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICBjb25zdCBzY3JpcHQ6IGFueSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzY3JpcHRcIik7XG5cbiAgICAgICAgZnVuY3Rpb24gbG9hZEhhbmRsZXIoKTogdm9pZCB7XG4gICAgICAgICAgICBpZiAoc2NyaXB0TG9hZGVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIXNjcmlwdC5yZWFkeVN0YXRlIHx8IHNjcmlwdC5yZWFkeVN0YXRlID09PSBcImxvYWRlZFwiIHx8IHNjcmlwdC5yZWFkeVN0YXRlID09PSBcImNvbXBsZXRlXCIpIHtcbiAgICAgICAgICAgICAgICBzY3JpcHRMb2FkZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBIYW5nIHRoZSB1c2VyIGNhbGxiYWNrIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSBzY3JpcHQgY29tcGxldGVzIHRvIGxvYWQuXG4gICAgICAgIC8vIE5PVEUodXNlcik6IFRoaXMgY2FsbGJhY2sgd2lsbCBiZSBjYWxsZWQgaW4gSUUgZXZlbiB1cG9uIGVycm9yLiBJbiBhbnlcbiAgICAgICAgLy8gY2FzZSBpdCBpcyB0aGUgY2xpZW50J3MgcmVzcG9uc2liaWxpdHkgdG8gdmVyaWZ5IHRoYXQgdGhlIHNjcmlwdCByYW5cbiAgICAgICAgLy8gc3VjY2Vzc2Z1bGx5LlxuICAgICAgICBzY3JpcHQub25sb2FkID0gbG9hZEhhbmRsZXI7XG4gICAgICAgIHNjcmlwdC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBsb2FkSGFuZGxlcjtcblxuICAgICAgICAvLyBBZGQgYW4gZXJyb3IgY2FsbGJhY2suXG4gICAgICAgIC8vIE5PVEUodXNlcik6IE5vdCBzdXBwb3J0ZWQgaW4gSUUuXG4gICAgICAgIHNjcmlwdC5vbmVycm9yID0gKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHNjcmlwdC5wYXJlbnROb2RlKSB7XG4gICAgICAgICAgICAgICAgc2NyaXB0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoc2NyaXB0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhbGxiYWNrKG5ldyBFcnJvcihcIkVycm9yIHdoaWxlIGxvYWRpbmcgc2NyaXB0LlwiKSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gQWRkIHRoZSBzY3JpcHQgZWxlbWVudCB0byB0aGUgZG9jdW1lbnQuXG4gICAgICAgIC8vIE5PVEUodXNlcik6IFNhZmFyaSBuZXZlciBsb2FkcyB0aGUgc2NyaXB0IGlmIHdlIGRvbid0IHNldFxuICAgICAgICAvLyB0aGUgc3JjIGF0dHJpYnV0ZSBiZWZvcmUgYXBwZW5kaW5nLlxuICAgICAgICBzY3JpcHQuc3JjID0gdXJpO1xuICAgICAgICBzY3JpcHQuc2V0QXR0cmlidXRlKFwiY3Jvc3NvcmlnaW5cIiwgXCJ1c2UtY3JlZGVudGlhbHNcIik7XG4gICAgICAgIGhlYWQuYXBwZW5kQ2hpbGQoc2NyaXB0KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIHN0eWxlU2hlZXQodXJpOiBzdHJpbmcsIGlnbm9yZUVycm9yOiBib29sZWFuLCBjYWxsYmFjazogKGVycm9yPzogRXJyb3IpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcmVzb2x2ZSA9ICgpID0+IGNhbGxiYWNrKHVuZGVmaW5lZCk7XG4gICAgICAgIGNvbnN0IHJlamVjdCA9ICgpID0+IHtcbiAgICAgICAgICAgIGlmIChpZ25vcmVFcnJvcikge1xuICAgICAgICAgICAgICAgIGNhbGxiYWNrKHVuZGVmaW5lZCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNhbGxiYWNrKG5ldyBFcnJvcihcIkVycm9yIHdoaWxlIGxvYWRpbmcgc3R5bGVzaGVldC5cIikpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IGhlYWQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShcImhlYWRcIilbMF0gPz8gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuICAgICAgICBjb25zdCBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImxpbmtcIik7XG5cbiAgICAgICAgbGluay5zZXRBdHRyaWJ1dGUoXCJyZWxcIiwgXCJzdHlsZXNoZWV0XCIpO1xuICAgICAgICBsaW5rLnNldEF0dHJpYnV0ZShcInR5cGVcIiwgXCJ0ZXh0L2Nzc1wiKTtcbiAgICAgICAgbGluay5hZGRFdmVudExpc3RlbmVyKFwibG9hZFwiLCByZXNvbHZlKTtcbiAgICAgICAgbGluay5hZGRFdmVudExpc3RlbmVyKFwiZXJyb3JcIiwgcmVqZWN0KTtcbiAgICAgICAgaGVhZC5hcHBlbmRDaGlsZChsaW5rKTtcbiAgICAgICAgbGluay5zZXRBdHRyaWJ1dGUoXCJocmVmXCIsIHVyaSk7XG4gICAgfVxufVxuIiwiLy8gVGhlIG1vZHVsZSBjYWNoZVxudmFyIF9fd2VicGFja19tb2R1bGVfY2FjaGVfXyA9IHt9O1xuXG4vLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcblx0dmFyIGNhY2hlZE1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF07XG5cdGlmIChjYWNoZWRNb2R1bGUgIT09IHVuZGVmaW5lZCkge1xuXHRcdHJldHVybiBjYWNoZWRNb2R1bGUuZXhwb3J0cztcblx0fVxuXHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuXHR2YXIgbW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXSA9IHtcblx0XHRpZDogbW9kdWxlSWQsXG5cdFx0bG9hZGVkOiBmYWxzZSxcblx0XHRleHBvcnRzOiB7fVxuXHR9O1xuXG5cdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuXHRfX3dlYnBhY2tfbW9kdWxlc19fW21vZHVsZUlkXShtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuXHQvLyBGbGFnIHRoZSBtb2R1bGUgYXMgbG9hZGVkXG5cdG1vZHVsZS5sb2FkZWQgPSB0cnVlO1xuXG5cdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG5cdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbn1cblxuIiwiLy8gZGVmaW5lIGdldHRlciBmdW5jdGlvbnMgZm9yIGhhcm1vbnkgZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5kID0gZnVuY3Rpb24oZXhwb3J0cywgZGVmaW5pdGlvbikge1xuXHRmb3IodmFyIGtleSBpbiBkZWZpbml0aW9uKSB7XG5cdFx0aWYoX193ZWJwYWNrX3JlcXVpcmVfXy5vKGRlZmluaXRpb24sIGtleSkgJiYgIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBrZXkpKSB7XG5cdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywga2V5LCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZGVmaW5pdGlvbltrZXldIH0pO1xuXHRcdH1cblx0fVxufTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLmcgPSAoZnVuY3Rpb24oKSB7XG5cdGlmICh0eXBlb2YgZ2xvYmFsVGhpcyA9PT0gJ29iamVjdCcpIHJldHVybiBnbG9iYWxUaGlzO1xuXHR0cnkge1xuXHRcdHJldHVybiB0aGlzIHx8IG5ldyBGdW5jdGlvbigncmV0dXJuIHRoaXMnKSgpO1xuXHR9IGNhdGNoIChlKSB7XG5cdFx0aWYgKHR5cGVvZiB3aW5kb3cgPT09ICdvYmplY3QnKSByZXR1cm4gd2luZG93O1xuXHR9XG59KSgpOyIsIl9fd2VicGFja19yZXF1aXJlX18uaG1kID0gZnVuY3Rpb24obW9kdWxlKSB7XG5cdG1vZHVsZSA9IE9iamVjdC5jcmVhdGUobW9kdWxlKTtcblx0aWYgKCFtb2R1bGUuY2hpbGRyZW4pIG1vZHVsZS5jaGlsZHJlbiA9IFtdO1xuXHRPYmplY3QuZGVmaW5lUHJvcGVydHkobW9kdWxlLCAnZXhwb3J0cycsIHtcblx0XHRlbnVtZXJhYmxlOiB0cnVlLFxuXHRcdHNldDogZnVuY3Rpb24oKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoJ0VTIE1vZHVsZXMgbWF5IG5vdCBhc3NpZ24gbW9kdWxlLmV4cG9ydHMgb3IgZXhwb3J0cy4qLCBVc2UgRVNNIGV4cG9ydCBzeW50YXgsIGluc3RlYWQ6ICcgKyBtb2R1bGUuaWQpO1xuXHRcdH1cblx0fSk7XG5cdHJldHVybiBtb2R1bGU7XG59OyIsIl9fd2VicGFja19yZXF1aXJlX18ubyA9IGZ1bmN0aW9uKG9iaiwgcHJvcCkgeyByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCk7IH0iLCIvLyBzdGFydHVwXG4vLyBMb2FkIGVudHJ5IG1vZHVsZSBhbmQgcmV0dXJuIGV4cG9ydHNcbi8vIFRoaXMgZW50cnkgbW9kdWxlIGlzIHJlZmVyZW5jZWQgYnkgb3RoZXIgbW9kdWxlcyBzbyBpdCBjYW4ndCBiZSBpbmxpbmVkXG52YXIgX193ZWJwYWNrX2V4cG9ydHNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMTMzKTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7ZUFNQ0EsQ0FBQSxFQUpvQ0MsQ0FBQTtRQUE5QixTQUFTQyxFQUFzQkMsQ0FBQTtVQUdsQyxPQUFPLFNBQVBDLE1BQUEsQ0FBZ0JELENBQUEsQ0FBUUUsRUFBQSxFQUFFLFlBQUFELE1BQUEsQ0FBV0QsQ0FBQSxDQUFRRyxPQUFBLEVBQU8scUJBQ3hEO1FBQUE7UUFBQUMsQ0FBQSxDQUFBQyxDQUFBLENBQUFDLENBQUE7VUFBQUMsQ0FBQSxXQUFBQSxDQUFBO1lBQUEsT0FBQVIsQ0FBQTtVQUFBO1FBQUEsSUFBQUMsQ0FBQSxHQUFBSSxDQUFBLENBQUFJLEdBQUEsQ0FBQVIsQ0FBQSxJQUFBUyxDQUFBLHlCQUFBQyxvQkFBQSxHQUFBQSxvQkFBQSxDQUFBQyxXQUFBLGNBQUFGLENBQUEsQ0FBQVQsQ0FBQSx5QkFBQVUsb0JBQUEsSUFBQUEsb0JBQUEsQ0FBQUUsT0FBQSxDQUFBQyxTQUFBLEdBQUNoQixDQUFBLHlCQUFBYSxvQkFBQSxHQUFBQSxvQkFBQSxDQUFBRSxPQUFBLGNBQUFmLENBQUEsQ0FBQWlCLFFBQUEsQ0FKZWYsQ0FBQSxFQUFxQix3SkFB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
|
|
1696
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJuIiwiaSIsImEiLCJlIiwiY29uY2F0IiwibnMiLCJkcmFmdElkIiwidCIsImQiLCJyIiwibSIsImhtZCIsIm8iLCJyZWFjdEhvdExvYWRlckdsb2JhbCIsImVudGVyTW9kdWxlIiwiZGVmYXVsdCIsInNpZ25hdHVyZSIsInJlZ2lzdGVyIiwibGVhdmVNb2R1bGUiLCJtb2R1bGUiLCJfX3dlYnBhY2tfZXhwb3J0c19fIiwiX193ZWJwYWNrX3JlcXVpcmVfXyIsIl90eXBlb2YiLCJTeW1ib2wiLCJpdGVyYXRvciIsImNvbnN0cnVjdG9yIiwicHJvdG90eXBlIiwiX2NsYXNzQ2FsbENoZWNrIiwiVHlwZUVycm9yIiwiX2RlZmluZVByb3BlcnRpZXMiLCJsZW5ndGgiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsIl90b1Byb3BlcnR5S2V5Iiwia2V5IiwiX2NyZWF0ZUNsYXNzIiwiX3RvUHJpbWl0aXZlIiwiU3RyaW5nIiwidG9QcmltaXRpdmUiLCJjYWxsIiwiTnVtYmVyIiwiX2luaGVyaXRzIiwiY3JlYXRlIiwidmFsdWUiLCJfc2V0UHJvdG90eXBlT2YiLCJfY3JlYXRlU3VwZXIiLCJfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0IiwiX2dldFByb3RvdHlwZU9mIiwiUmVmbGVjdCIsImNvbnN0cnVjdCIsImFyZ3VtZW50cyIsImFwcGx5IiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4iLCJfYXNzZXJ0VGhpc0luaXRpYWxpemVkIiwiUmVmZXJlbmNlRXJyb3IiLCJfd3JhcE5hdGl2ZVN1cGVyIiwiTWFwIiwiX2lzTmF0aXZlRnVuY3Rpb24iLCJoYXMiLCJnZXQiLCJzZXQiLCJfY29uc3RydWN0IiwiYmluZCIsInB1c2giLCJGdW5jdGlvbiIsInNoYW0iLCJQcm94eSIsIkJvb2xlYW4iLCJ2YWx1ZU9mIiwidG9TdHJpbmciLCJpbmRleE9mIiwic2V0UHJvdG90eXBlT2YiLCJfX3Byb3RvX18iLCJnZXRQcm90b3R5cGVPZiIsIm5qIiwiTm90SW1wbGVtZW50ZWRFcnJvciIsIl9fc2lnbmF0dXJlX18iLCJBcHBsaWNhdGlvbkVycm9yIiwiX0Vycm9yIiwiX3N1cGVyIiwibmFtZSIsIl9fcmVhY3RzdGFuZGluX19yZWdlbmVyYXRlQnlFdmFsIiwiY29kZSIsImV2YWwiLCJFcnJvciIsIl9BcHBsaWNhdGlvbkVycm9yIiwiX3N1cGVyMiIsIk5vdFN1cHBvcnRlZEVycm9yIiwiX0FwcGxpY2F0aW9uRXJyb3IyIiwiX3N1cGVyMyIsIkludmFsaWRQcm9ncmFtU3RhdGVFcnJvciIsIl9BcHBsaWNhdGlvbkVycm9yMyIsIl9zdXBlcjQiLCJJbnZhbGlkQXJndW1lbnRFcnJvciIsIl9BcHBsaWNhdGlvbkVycm9yNCIsIl9zdXBlcjUiLCJUeXBpbmdFcnJvciIsIl9BcHBsaWNhdGlvbkVycm9yNSIsIl9zdXBlcjYiLCJyZWFjdEhvdExvYWRlciIsInUiLCJzIiwibCIsImMiLCJmIiwiZDEiLCJtZXNzYWdlIiwidHJpbSIsInNsaWNlIiwiZ2xvYmFsVGhpcyIsInNlbGYiLCJzZWFyY2hQYXJhbXMiLCJpdGVyYWJsZSIsImJsb2IiLCJCbG9iIiwiZm9ybURhdGEiLCJhcnJheUJ1ZmZlciIsIkFycmF5QnVmZmVyIiwiaXNWaWV3IiwidGVzdCIsInRvTG93ZXJDYXNlIiwibmV4dCIsInNoaWZ0IiwiZG9uZSIsIm1hcCIsImZvckVhY2giLCJhcHBlbmQiLCJBcnJheSIsImlzQXJyYXkiLCJnZXRPd25Qcm9wZXJ0eU5hbWVzIiwiYm9keVVzZWQiLCJQcm9taXNlIiwicmVqZWN0Iiwib25sb2FkIiwicmVzdWx0Iiwib25lcnJvciIsImVycm9yIiwicCIsIkZpbGVSZWFkZXIiLCJyZWFkQXNBcnJheUJ1ZmZlciIsInkiLCJVaW50OEFycmF5IiwiYnl0ZUxlbmd0aCIsImJ1ZmZlciIsIl9pbml0Qm9keSIsIl9ib2R5SW5pdCIsIl9ib2R5VGV4dCIsImlzUHJvdG90eXBlT2YiLCJfYm9keUJsb2IiLCJGb3JtRGF0YSIsIl9ib2R5Rm9ybURhdGEiLCJVUkxTZWFyY2hQYXJhbXMiLCJEYXRhVmlldyIsIl9ib2R5QXJyYXlCdWZmZXIiLCJoZWFkZXJzIiwidHlwZSIsInJlc29sdmUiLCJieXRlT2Zmc2V0IiwidGhlbiIsInRleHQiLCJyZWFkQXNUZXh0IiwiZnJvbUNoYXJDb2RlIiwiam9pbiIsIl8iLCJqc29uIiwiSlNPTiIsInBhcnNlIiwiZGVsZXRlIiwiaGFzT3duUHJvcGVydHkiLCJrZXlzIiwidmFsdWVzIiwiZW50cmllcyIsImgiLCJnIiwiYm9keSIsInVybCIsImNyZWRlbnRpYWxzIiwibWV0aG9kIiwibW9kZSIsInNpZ25hbCIsInRvVXBwZXJDYXNlIiwicmVmZXJyZXIiLCJjYWNoZSIsInJlcGxhY2UiLCJEYXRlIiwiZ2V0VGltZSIsInNwbGl0IiwiZGVjb2RlVVJJQ29tcG9uZW50IiwidiIsInN0YXR1cyIsIm9rIiwic3RhdHVzVGV4dCIsImNsb25lIiwiYiIsInJlZGlyZWN0IiwiUmFuZ2VFcnJvciIsImxvY2F0aW9uIiwidyIsIkRPTUV4Y2VwdGlvbiIsInN0YWNrIiwiRSIsImFib3J0ZWQiLCJYTUxIdHRwUmVxdWVzdCIsImFib3J0IiwiZ2V0QWxsUmVzcG9uc2VIZWFkZXJzIiwic3Vic3RyIiwicmVzcG9uc2VVUkwiLCJyZXNwb25zZSIsInJlc3BvbnNlVGV4dCIsInNldFRpbWVvdXQiLCJvbnRpbWVvdXQiLCJvbmFib3J0Iiwib3BlbiIsImhyZWYiLCJ3aXRoQ3JlZGVudGlhbHMiLCJyZXNwb25zZVR5cGUiLCJzZXRSZXF1ZXN0SGVhZGVyIiwiYWRkRXZlbnRMaXN0ZW5lciIsIm9ucmVhZHlzdGF0ZWNoYW5nZSIsInJlYWR5U3RhdGUiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwic2VuZCIsInBvbHlmaWxsIiwiZmV0Y2giLCJIZWFkZXJzIiwiUmVxdWVzdCIsIlJlc3BvbnNlIiwiayIsIkMiLCJQIiwiQSIsIk8iLCJMIiwiUyIsIkIiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJUIiwiaiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiSSIsIkYiLCJNIiwiVSIsIkNGIiwia2Vmb3Jtc1VybCIsIkQiLCJlbmNvZGVVUklDb21wb25lbnQiLCJIIiwiUmVnRXhwIiwiaG9zdCIsIkciLCJzZWFyY2giLCJmaW5kIiwicmV0dXJuIiwiZnJvbSIsIngiLCJOIiwiZ2Z2IiwiZW5naW5lVmVyc2lvbiIsInJlc291cmNlc1ZlcnNpb24iLCJlbnRyeVBvaW50IiwicmVzb3VyY2Vab25lIiwic3R5bGVTaGVldCIsInNjcmlwdCIsIlIiLCJwdWJsaWNGb3JtIiwiY2F0Y2giLCJWIiwicSIsIloiLCJrb250dXJEb21haW5zIiwiYXV0aG9yaXplZCIsImF1dGhlbnRpY2F0aW9uIiwiYXV0aFNpZCIsIkF1dGhvcml6YXRpb24iLCJjYXVsZHJvbkFwaVVybCIsImlzVGVzdFNlcnZlciIsInJlbmRlckNhY2hpbmdGb3JJRTgiLCJub3JtYWxpemF0aW9uT25TZXJ2ZXIiLCJub3JtYXRpdmVVcmwiLCJzaG93TmF2aWdhdGlvblNpZGViYXIiLCJvblJlbW92ZUF0dGFjaG1lbnQiLCJmZWVkYmFja0VuYWJsZWQiLCJpc0Rpc2FibGVkQ2xlYW5Gb3JtIiwiaXNEaXNhYmxlZENsb3NlQnV0dG9uIiwiaXNEaXNhYmxlZENsb3NlQW5kU2F2ZUJ1dHRvbiIsInRoZW1lIiwidGVtcGxhdGVzQXBpIiwicmVuZGVyRm9ybSIsIksiLCJXIiwic3RhcnQiLCJwYXJ0aWFsUmVuZGVyaW5nRm9ySUU4IiwicGFyc2VJbnQiLCJjcmVhdGVMZWdhY3lQdWJsaWNGb3JtIiwiX0NvbW1vbl9FcnJvcnNfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfXyIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJhc3luY0l0ZXJhdG9yIiwidG9TdHJpbmdUYWciLCJkZWZpbmUiLCJhcmciLCJ3cmFwIiwiX2ludm9rZSIsIl9fYXdhaXQiLCJkZWxlZ2F0ZSIsInNlbnQiLCJfc2VudCIsImRpc3BhdGNoRXhjZXB0aW9uIiwiYWJydXB0IiwicmVzdWx0TmFtZSIsIm5leHRMb2MiLCJ0cnlMb2MiLCJjYXRjaExvYyIsImZpbmFsbHlMb2MiLCJhZnRlckxvYyIsInRyeUVudHJpZXMiLCJjb21wbGV0aW9uIiwicmVzZXQiLCJpc05hTiIsImRpc3BsYXlOYW1lIiwiaXNHZW5lcmF0b3JGdW5jdGlvbiIsIm1hcmsiLCJhd3JhcCIsIkFzeW5jSXRlcmF0b3IiLCJhc3luYyIsInJldmVyc2UiLCJwb3AiLCJwcmV2IiwiY2hhckF0Iiwic3RvcCIsInJ2YWwiLCJjb21wbGV0ZSIsImZpbmlzaCIsImRlbGVnYXRlWWllbGQiLCJhc3luY0dlbmVyYXRvclN0ZXAiLCJfYXN5bmNUb0dlbmVyYXRvciIsIm93bktleXMiLCJfb2JqZWN0U3ByZWFkIiwiX2RlZmluZVByb3BlcnR5IiwibW9kZWxDaGFuZ2VFdmVudFBhdGgiLCJtYXBDaHVua1ZhbHVlcyIsInJlZHVjZUNodW5rVmFsdWVzIiwicmVkdWNlIiwiTGVnYWN5UHVibGljRm9ybSIsImZvcm0iLCJfcmVsb2FkSW5uZXIiLCJfSU5URVJOQUxfX2dldFNlbGVjdEZ1bmN0aW9uRm9yRGlzYWJsZUVtcGxveWVlSW5TUyIsIl92YWxpZGF0ZUNoaWxkcmVuQnlQYXRoIiwicGlja2xpc3RzUHJvdmlkZXIiLCJnZXREaWdlc3RBcGlQaWNrbGlzdCIsInF1ZXJ5IiwiZXZlbnRNYW5hZ2VyIiwib24iLCJvZmYiLCJjaGFuZ2VTZXQiLCJzdG9wQXV0b3NlbmQiLCJ1bm1vdW50IiwibW9kZWwiLCJnZXRDaHVuayIsInNldHRpbmdzIiwiZm9ybVJvb3QiLCJ2YWxpZGF0b3IiLCJ2YWxpZGF0ZUFsbCIsImZpbGwiLCJkb2N1bWVudCIsImdldEVsZW1lbnRzQnlUYWdOYW1lIiwiZG9jdW1lbnRFbGVtZW50IiwiY3JlYXRlRWxlbWVudCIsInBhcmVudE5vZGUiLCJyZW1vdmVDaGlsZCIsInNyYyIsInNldEF0dHJpYnV0ZSIsImFwcGVuZENoaWxkIiwiX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fIiwiZXhwb3J0cyIsImlkIiwibG9hZGVkIiwiX193ZWJwYWNrX21vZHVsZXNfXyIsIndpbmRvdyIsImNoaWxkcmVuIl0sInNvdXJjZXMiOlsid2VicGFjazovL0Brb250dXIuY2FuZHkvd29ya3NwYWNlL0NvbW1vbi9DYW5keUFwaUNsaWVudC9DbGllbnREcmFmdEluZm8vR2V0Q2xpZW50RHJhZnRJbmZvVXJsLnRzIiwid2VicGFjazovL0Brb250dXIuY2FuZHkvd29ya3NwYWNlL0NvbW1vbi9FcnJvcnMudHMiLCJ3ZWJwYWNrOi8vQGtvbnR1ci5jYW5keS93b3Jrc3BhY2UvQ29tbW9uL1R5cGluZ1V0aWxzLnRzIiwid2VicGFjazovL0Brb250dXIuY2FuZHkvd29ya3NwYWNlL25vZGVfbW9kdWxlcy93aGF0d2ctZmV0Y2gvZmV0Y2guanMiLCJ3ZWJwYWNrOi8vQGtvbnR1ci5jYW5keS93b3Jrc3BhY2UvRW5naW5lL3NyYy9Gb3Jtcy9DbGllbnQvQ2xpZW50LnRzIiwid2VicGFjazovL0Brb250dXIuY2FuZHkvd29ya3NwYWNlL0VuZ2luZS9zcmMvRm9ybXMvQ2xpZW50L0NsaWVudFNldHRpbmdzLnRzIiwid2VicGFjazovL0Brb250dXIuY2FuZHkvd29ya3NwYWNlL0VuZ2luZS9zcmMvRm9ybXMvQ2xpZW50L0xlZ2FjeVB1YmxpY0Zvcm0vQ3JlYXRlTGVnYWN5UHVibGljRm9ybS50cyIsIndlYnBhY2s6Ly9Aa29udHVyLmNhbmR5L3dvcmtzcGFjZS9FbmdpbmUvc3JjL0hlbHBlcnMvTG9hZEludG9Eb2N1bWVudC50cyIsIndlYnBhY2s6Ly9Aa29udHVyLmNhbmR5L3dvcmtzcGFjZS93ZWJwYWNrL2Jvb3RzdHJhcCIsIndlYnBhY2s6Ly9Aa29udHVyLmNhbmR5L3dvcmtzcGFjZS93ZWJwYWNrL3J1bnRpbWUvZGVmaW5lIHByb3BlcnR5IGdldHRlcnMiLCJ3ZWJwYWNrOi8vQGtvbnR1ci5jYW5keS93b3Jrc3BhY2Uvd2VicGFjay9ydW50aW1lL2dsb2JhbCIsIndlYnBhY2s6Ly9Aa29udHVyLmNhbmR5L3dvcmtzcGFjZS93ZWJwYWNrL3J1bnRpbWUvaGFybW9ueSBtb2R1bGUgZGVjb3JhdG9yIiwid2VicGFjazovL0Brb250dXIuY2FuZHkvd29ya3NwYWNlL3dlYnBhY2svcnVudGltZS9oYXNPd25Qcm9wZXJ0eSBzaG9ydGhhbmQiLCJ3ZWJwYWNrOi8vQGtvbnR1ci5jYW5keS93b3Jrc3BhY2Uvd2VicGFjay9zdGFydHVwIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERyYWZ0RnVsbElkIH0gZnJvbSBcIi4uL1R5cGVzL0RyYWZ0RnVsbElkXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDbGllbnREcmFmdEluZm9VcmwoZHJhZnRJZDogRHJhZnRGdWxsSWQpIHtcbiAgICAvLyBOT1RFINCt0YLQsCDRhNGD0L3QutGG0LjRjyDQvtCx0YrRj9Cy0LvQtdC90LAg0L7RgtC00LXQu9GM0L3Qviwg0LjQsdC+INC+0L3QsCDQstGF0L7QtNC40YIg0LIg0YHQvtGB0YLQsNCyIGNsaWVudC5qcyDQuFxuICAgIC8vINC90LUg0LTQvtC70LbQvdC+INC/0YDQvtC40YHRhdC+0LTQuNGC0Ywg0YPRgtC10LbQtdC70LXQvdC40Y8gY2xpZW50LmpzLdCwXG4gICAgcmV0dXJuIGB2MS9ucy8ke2RyYWZ0SWQubnN9L2RyYWZ0cy8ke2RyYWZ0SWQuZHJhZnRJZH0vY2xpZW50LWRyYWZ0LWluZm9gO1xufVxuIiwiZXhwb3J0IGNsYXNzIEFwcGxpY2F0aW9uRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gICAgcHVibGljIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZykge1xuICAgICAgICBzdXBlcihtZXNzYWdlKTtcbiAgICAgICAgdGhpcy5uYW1lID0gdGhpcy5jb25zdHJ1Y3Rvci5uYW1lO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIE5vdEltcGxlbWVudGVkRXJyb3IgZXh0ZW5kcyBBcHBsaWNhdGlvbkVycm9yIHtcbiAgICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKFwiT3BlcmF0aW9uIG5vdCBpbXBsZW1lbnRlZFwiKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBOb3RTdXBwb3J0ZWRFcnJvciBleHRlbmRzIEFwcGxpY2F0aW9uRXJyb3Ige1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihtZXNzYWdlPzogc3RyaW5nKSB7XG4gICAgICAgIHN1cGVyKG1lc3NhZ2UgPz8gXCJPcGVyYXRpb24gbm90IHN1cHBvcnRlZFwiKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBJbnZhbGlkUHJvZ3JhbVN0YXRlRXJyb3IgZXh0ZW5kcyBBcHBsaWNhdGlvbkVycm9yIHtcbiAgICBwdWJsaWMgY29uc3RydWN0b3IobWVzc2FnZT86IHN0cmluZykge1xuICAgICAgICBzdXBlcihcIkludmFsaWQgcHJvZ3JhbSBzdGF0ZVwiICsgKG1lc3NhZ2UgIT0gdW5kZWZpbmVkID8gXCI6IFwiICsgbWVzc2FnZSA6IFwiXCIpKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBJbnZhbGlkQXJndW1lbnRFcnJvciBleHRlbmRzIEFwcGxpY2F0aW9uRXJyb3Ige1xuICAgIHB1YmxpYyBjb25zdHJ1Y3Rvcihhcmd1bWVudE5hbWU6IHN0cmluZywgbWVzc2FnZT86IHN0cmluZykge1xuICAgICAgICBzdXBlcihcbiAgICAgICAgICAgIG1lc3NhZ2UgIT0gdW5kZWZpbmVkID8gYCR7bWVzc2FnZX0gKGFyZ3VtZW50OiAke2FyZ3VtZW50TmFtZX0pYCA6IGBJbnZhbGlkIGFyZ3VtZW50IHZhbHVlOiAke2FyZ3VtZW50TmFtZX1gXG4gICAgICAgICk7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVHlwaW5nRXJyb3IgZXh0ZW5kcyBBcHBsaWNhdGlvbkVycm9yIHtcbiAgICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKFwiSW52YWxpZCB0eXBpbmdcIik7XG4gICAgfVxufVxuIiwiLyoqKlxuICog0KHRgtGA0L7Qs9C+0YLQuNC/0LjQt9C40YDQvtCy0LDQvdC90LDRjyDQt9Cw0LzQtdC90LAg0LTQu9GPIEJvb2xlYW4oLi4uKVxuICog0J7QsdGL0YfQvdC+INC40YHQv9C+0LvRjNC30YPQtdGC0YHRjyDQtNC70Y8gWy4uLl0uZmlsdGVyKGlzTm90TnVsbE9yVW5kZWZpbmVkKVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNOb3ROdWxsT3JVbmRlZmluZWQ8VD4oaW5wdXQ6IFQpOiBpbnB1dCBpcyBOb25OdWxsYWJsZTxUPiB7XG4gICAgcmV0dXJuIGlucHV0ICE9IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ2lmeVVua25vd25FcnJvcihlcnJvcjogdW5rbm93bik6IHVuZGVmaW5lZCB8IHN0cmluZyB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtcmV0dXJuXG4gICAgcmV0dXJuIHR5cGVvZiBlcnJvciA9PT0gXCJvYmplY3RcIiAmJiBlcnJvcj8uW1wibWVzc2FnZVwiXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVuc3VyZU5vdE51bGxPclVuZGVmaW5lZDxUPihpbnB1dDogVCk6IGFzc2VydHMgaW5wdXQgaXMgTm9uTnVsbGFibGU8VD4ge1xuICAgIGlmICghaXNOb3ROdWxsT3JVbmRlZmluZWQoaW5wdXQpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVmFsdWUgbXVzdCBiZSBkZWZpbmVkYCk7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbm9vcCgpOiB2b2lkIHtcbiAgICAvLyBub29wXG59XG5cbmV4cG9ydCB0eXBlIEVycm9yRmlyc3RDYWxsYmFjazxUPiA9ICguLi5hcmdzOiBbRXJyb3IsIG51bGwgfCB1bmRlZmluZWRdIHwgW251bGwgfCB1bmRlZmluZWQsIFRdIHwgW0Vycm9yXSkgPT4gdm9pZDtcblxuZXhwb3J0IGZ1bmN0aW9uIHJlamVjdChtZXNzYWdlPzogc3RyaW5nIHwgRXJyb3IpOiBuZXZlciB7XG4gICAgaWYgKHR5cGVvZiBtZXNzYWdlID09PSBcInN0cmluZ1wiIHx8IG1lc3NhZ2UgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlID8/IFwiVW5kZWZpbmVkIGlzIG5vdCBhbGxvd2VkXCIpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG1lc3NhZ2U7XG4gICAgfVxufVxuXG50eXBlIEFycmF5T2ZMZW5ndGg8VEl0ZW0sIFRMZW5ndGggZXh0ZW5kcyBudW1iZXIsIFRSZXN0IGV4dGVuZHMgVEl0ZW1bXSA9IFtdPiA9IFRSZXN0IGV4dGVuZHMgeyBsZW5ndGg6IFRMZW5ndGggfVxuICAgID8gVFJlc3RcbiAgICA6IEFycmF5T2ZMZW5ndGg8VEl0ZW0sIFRMZW5ndGgsIFtUSXRlbSwgLi4uVFJlc3RdPjtcblxuZXhwb3J0IHR5cGUgTWluTGVuZ3RoQXJyYXk8VEl0ZW0sIFRMZW5ndGggZXh0ZW5kcyBudW1iZXIsIFRSZXN0IGV4dGVuZHMgVEl0ZW1bXSA9IFtdPiA9IFRSZXN0IGV4dGVuZHMge1xuICAgIGxlbmd0aDogVExlbmd0aDtcbn1cbiAgICA/IFsuLi5UUmVzdCwgLi4uVEl0ZW1bXV1cbiAgICA6IE1pbkxlbmd0aEFycmF5PFRJdGVtLCBUTGVuZ3RoLCBbLi4uVFJlc3QsIFRJdGVtXT47XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0xlbmd0aEdyZWF0ZXJUaGVuT3JFcXVhbDxULCBUTnVtIGV4dGVuZHMgbnVtYmVyPihcbiAgICBpdGVtczogcmVhZG9ubHkgVFtdLFxuICAgIG1pbkxlbmd0aDogVE51bVxuKTogaXRlbXMgaXMgTWluTGVuZ3RoQXJyYXk8VCwgVE51bT4ge1xuICAgIHJldHVybiBpdGVtcy5sZW5ndGggPj0gbWluTGVuZ3RoO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWluTGVuZ3RoT3JVbmRlZmluZWQ8VCwgVE51bSBleHRlbmRzIG51bWJlcj4oXG4gICAgaXRlbXM6IFRbXSxcbiAgICBtaW5MZW5ndGg6IFROdW1cbik6IHVuZGVmaW5lZCB8IE1pbkxlbmd0aEFycmF5PFQsIFROdW0+IHtcbiAgICBpZiAoaXNMZW5ndGhHcmVhdGVyVGhlbk9yRXF1YWwoaXRlbXMsIG1pbkxlbmd0aCkpIHtcbiAgICAgICAgcmV0dXJuIGl0ZW1zO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXJyYXlIYXNMZW5ndGg8VCwgVE51bSBleHRlbmRzIG51bWJlcj4oXG4gICAgaXRlbXM6IHJlYWRvbmx5IFRbXSxcbiAgICBsZW5ndGg6IFROdW1cbik6IGl0ZW1zIGlzIEFycmF5T2ZMZW5ndGg8VCwgVE51bT4ge1xuICAgIHJldHVybiBpdGVtcy5sZW5ndGggPT09IGxlbmd0aDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFycmF5SXNOb3RFbXB0eTxUPihpdGVtczogcmVhZG9ubHkgVFtdKTogaXRlbXMgaXMgTWluTGVuZ3RoQXJyYXk8VCwgMT4ge1xuICAgIHJldHVybiBpdGVtcy5sZW5ndGggPiAwO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXJyYXlIYXNBdExlYXN0T25lSXRlbTxUPihpdGVtczogcmVhZG9ubHkgVFtdKTogaXRlbXMgaXMgTWluTGVuZ3RoQXJyYXk8VCwgMT4ge1xuICAgIHJldHVybiBpdGVtcy5sZW5ndGggPiAwO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZW5zdXJlQXJyYXlJc05vdEVtcHR5PFQ+KGl0ZW1zOiByZWFkb25seSBUW10pOiBhc3NlcnRzIGl0ZW1zIGlzIE1pbkxlbmd0aEFycmF5PFQsIDE+IHtcbiAgICBpZiAoIWFycmF5SXNOb3RFbXB0eShpdGVtcykpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBBcnJheSBtdXN0IGJlIG5vdCBlbXB0eWApO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVuc3VyZUFycmF5SGFzTGVuZ3RoPFQsIFROdW0gZXh0ZW5kcyBudW1iZXI+KFxuICAgIGl0ZW1zOiByZWFkb25seSBUW10sXG4gICAgbGVuZ3RoOiBUTnVtXG4pOiBhc3NlcnRzIGl0ZW1zIGlzIEFycmF5T2ZMZW5ndGg8VCwgVE51bT4ge1xuICAgIGlmICghYXJyYXlIYXNMZW5ndGgoaXRlbXMsIGxlbmd0aCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBBcnJheSBzaG91bGQgaGFzIGxlbmd0aCAke2xlbmd0aH1gKTtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbnN1cmVBcnJheUxlbmd0aEdyZWF0ZXJUaGVuT3JFcXVhbDxULCBUTnVtIGV4dGVuZHMgbnVtYmVyPihcbiAgICBpdGVtczogcmVhZG9ubHkgVFtdLFxuICAgIGxlbmd0aDogVE51bVxuKTogYXNzZXJ0cyBpdGVtcyBpcyBBcnJheU9mTGVuZ3RoPFQsIFROdW0+IHtcbiAgICBpZiAoIWlzTGVuZ3RoR3JlYXRlclRoZW5PckVxdWFsKGl0ZW1zLCBsZW5ndGgpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgQXJyYXkgbXVzdCBoYXZlIG1pbmltYWwgbGVuZ3RoICR7bGVuZ3RofWApO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVuc3VyZU5ldmVyKG5ldmVyQXJndW1lbnQ6IG5ldmVyKTogdm9pZCB7XG4gICAgLy8gbm9vcFxufVxuXG5leHBvcnQgZnVuY3Rpb24gZW5zdXJlQW5kR2V0U3RyaW5nKG5ldmVyQXJndW1lbnQ6IG5ldmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7bmV2ZXJBcmd1bWVudH1gO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcnVuQXN5bmNBY3Rpb24oYWN0aW9uOiAoKSA9PiBQcm9taXNlPHZvaWQ+KTogdm9pZCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1mbG9hdGluZy1wcm9taXNlc1xuICAgIGFjdGlvbigpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNOdWxsT3JFbXB0eShpbnB1dDogc3RyaW5nIHwgdW5kZWZpbmVkKTogaW5wdXQgaXMgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gaW5wdXQgPT0gdW5kZWZpbmVkIHx8IGlucHV0ID09PSBcIlwiO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNOb3ROdWxsT3JFbXB0eShpbnB1dDogc3RyaW5nIHwgdW5kZWZpbmVkKTogaW5wdXQgaXMgc3RyaW5nIHtcbiAgICByZXR1cm4gIWlzTnVsbE9yRW1wdHkoaW5wdXQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNOdWxsT3JXaGl0ZVNwYWNlKGlucHV0OiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsKTogaW5wdXQgaXMgdW5kZWZpbmVkIHwgbnVsbCB7XG4gICAgcmV0dXJuIGlucHV0ID09IHVuZGVmaW5lZCB8fCBpbnB1dC50cmltKCkgPT09IFwiXCI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmltTGFzdFNsYXNoKHVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdXJsLnNsaWNlKC0xKSA9PT0gXCIvXCIgPyB1cmwuc2xpY2UoMCwgLTEpIDogdXJsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0SXM8VD4odmFsdWU6IFQpOiB2b2lkIHtcbiAgICAvLyBub29wXG59XG4iLCJ2YXIgZ2xvYmFsID1cbiAgKHR5cGVvZiBnbG9iYWxUaGlzICE9PSAndW5kZWZpbmVkJyAmJiBnbG9iYWxUaGlzKSB8fFxuICAodHlwZW9mIHNlbGYgIT09ICd1bmRlZmluZWQnICYmIHNlbGYpIHx8XG4gICh0eXBlb2YgZ2xvYmFsICE9PSAndW5kZWZpbmVkJyAmJiBnbG9iYWwpXG5cbnZhciBzdXBwb3J0ID0ge1xuICBzZWFyY2hQYXJhbXM6ICdVUkxTZWFyY2hQYXJhbXMnIGluIGdsb2JhbCxcbiAgaXRlcmFibGU6ICdTeW1ib2wnIGluIGdsb2JhbCAmJiAnaXRlcmF0b3InIGluIFN5bWJvbCxcbiAgYmxvYjpcbiAgICAnRmlsZVJlYWRlcicgaW4gZ2xvYmFsICYmXG4gICAgJ0Jsb2InIGluIGdsb2JhbCAmJlxuICAgIChmdW5jdGlvbigpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIG5ldyBCbG9iKClcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICB9XG4gICAgfSkoKSxcbiAgZm9ybURhdGE6ICdGb3JtRGF0YScgaW4gZ2xvYmFsLFxuICBhcnJheUJ1ZmZlcjogJ0FycmF5QnVmZmVyJyBpbiBnbG9iYWxcbn1cblxuZnVuY3Rpb24gaXNEYXRhVmlldyhvYmopIHtcbiAgcmV0dXJuIG9iaiAmJiBEYXRhVmlldy5wcm90b3R5cGUuaXNQcm90b3R5cGVPZihvYmopXG59XG5cbmlmIChzdXBwb3J0LmFycmF5QnVmZmVyKSB7XG4gIHZhciB2aWV3Q2xhc3NlcyA9IFtcbiAgICAnW29iamVjdCBJbnQ4QXJyYXldJyxcbiAgICAnW29iamVjdCBVaW50OEFycmF5XScsXG4gICAgJ1tvYmplY3QgVWludDhDbGFtcGVkQXJyYXldJyxcbiAgICAnW29iamVjdCBJbnQxNkFycmF5XScsXG4gICAgJ1tvYmplY3QgVWludDE2QXJyYXldJyxcbiAgICAnW29iamVjdCBJbnQzMkFycmF5XScsXG4gICAgJ1tvYmplY3QgVWludDMyQXJyYXldJyxcbiAgICAnW29iamVjdCBGbG9hdDMyQXJyYXldJyxcbiAgICAnW29iamVjdCBGbG9hdDY0QXJyYXldJ1xuICBdXG5cbiAgdmFyIGlzQXJyYXlCdWZmZXJWaWV3ID1cbiAgICBBcnJheUJ1ZmZlci5pc1ZpZXcgfHxcbiAgICBmdW5jdGlvbihvYmopIHtcbiAgICAgIHJldHVybiBvYmogJiYgdmlld0NsYXNzZXMuaW5kZXhPZihPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqKSkgPiAtMVxuICAgIH1cbn1cblxuZnVuY3Rpb24gbm9ybWFsaXplTmFtZShuYW1lKSB7XG4gIGlmICh0eXBlb2YgbmFtZSAhPT0gJ3N0cmluZycpIHtcbiAgICBuYW1lID0gU3RyaW5nKG5hbWUpXG4gIH1cbiAgaWYgKC9bXmEtejAtOVxcLSMkJSYnKisuXl9gfH4hXS9pLnRlc3QobmFtZSkgfHwgbmFtZSA9PT0gJycpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdJbnZhbGlkIGNoYXJhY3RlciBpbiBoZWFkZXIgZmllbGQgbmFtZTogXCInICsgbmFtZSArICdcIicpXG4gIH1cbiAgcmV0dXJuIG5hbWUudG9Mb3dlckNhc2UoKVxufVxuXG5mdW5jdGlvbiBub3JtYWxpemVWYWx1ZSh2YWx1ZSkge1xuICBpZiAodHlwZW9mIHZhbHVlICE9PSAnc3RyaW5nJykge1xuICAgIHZhbHVlID0gU3RyaW5nKHZhbHVlKVxuICB9XG4gIHJldHVybiB2YWx1ZVxufVxuXG4vLyBCdWlsZCBhIGRlc3RydWN0aXZlIGl0ZXJhdG9yIGZvciB0aGUgdmFsdWUgbGlzdFxuZnVuY3Rpb24gaXRlcmF0b3JGb3IoaXRlbXMpIHtcbiAgdmFyIGl0ZXJhdG9yID0ge1xuICAgIG5leHQ6IGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIHZhbHVlID0gaXRlbXMuc2hpZnQoKVxuICAgICAgcmV0dXJuIHtkb25lOiB2YWx1ZSA9PT0gdW5kZWZpbmVkLCB2YWx1ZTogdmFsdWV9XG4gICAgfVxuICB9XG5cbiAgaWYgKHN1cHBvcnQuaXRlcmFibGUpIHtcbiAgICBpdGVyYXRvcltTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gaXRlcmF0b3JcbiAgICB9XG4gIH1cblxuICByZXR1cm4gaXRlcmF0b3Jcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIEhlYWRlcnMoaGVhZGVycykge1xuICB0aGlzLm1hcCA9IHt9XG5cbiAgaWYgKGhlYWRlcnMgaW5zdGFuY2VvZiBIZWFkZXJzKSB7XG4gICAgaGVhZGVycy5mb3JFYWNoKGZ1bmN0aW9uKHZhbHVlLCBuYW1lKSB7XG4gICAgICB0aGlzLmFwcGVuZChuYW1lLCB2YWx1ZSlcbiAgICB9LCB0aGlzKVxuICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoaGVhZGVycykpIHtcbiAgICBoZWFkZXJzLmZvckVhY2goZnVuY3Rpb24oaGVhZGVyKSB7XG4gICAgICB0aGlzLmFwcGVuZChoZWFkZXJbMF0sIGhlYWRlclsxXSlcbiAgICB9LCB0aGlzKVxuICB9IGVsc2UgaWYgKGhlYWRlcnMpIHtcbiAgICBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhoZWFkZXJzKS5mb3JFYWNoKGZ1bmN0aW9uKG5hbWUpIHtcbiAgICAgIHRoaXMuYXBwZW5kKG5hbWUsIGhlYWRlcnNbbmFtZV0pXG4gICAgfSwgdGhpcylcbiAgfVxufVxuXG5IZWFkZXJzLnByb3RvdHlwZS5hcHBlbmQgPSBmdW5jdGlvbihuYW1lLCB2YWx1ZSkge1xuICBuYW1lID0gbm9ybWFsaXplTmFtZShuYW1lKVxuICB2YWx1ZSA9IG5vcm1hbGl6ZVZhbHVlKHZhbHVlKVxuICB2YXIgb2xkVmFsdWUgPSB0aGlzLm1hcFtuYW1lXVxuICB0aGlzLm1hcFtuYW1lXSA9IG9sZFZhbHVlID8gb2xkVmFsdWUgKyAnLCAnICsgdmFsdWUgOiB2YWx1ZVxufVxuXG5IZWFkZXJzLnByb3RvdHlwZVsnZGVsZXRlJ10gPSBmdW5jdGlvbihuYW1lKSB7XG4gIGRlbGV0ZSB0aGlzLm1hcFtub3JtYWxpemVOYW1lKG5hbWUpXVxufVxuXG5IZWFkZXJzLnByb3RvdHlwZS5nZXQgPSBmdW5jdGlvbihuYW1lKSB7XG4gIG5hbWUgPSBub3JtYWxpemVOYW1lKG5hbWUpXG4gIHJldHVybiB0aGlzLmhhcyhuYW1lKSA/IHRoaXMubWFwW25hbWVdIDogbnVsbFxufVxuXG5IZWFkZXJzLnByb3RvdHlwZS5oYXMgPSBmdW5jdGlvbihuYW1lKSB7XG4gIHJldHVybiB0aGlzLm1hcC5oYXNPd25Qcm9wZXJ0eShub3JtYWxpemVOYW1lKG5hbWUpKVxufVxuXG5IZWFkZXJzLnByb3RvdHlwZS5zZXQgPSBmdW5jdGlvbihuYW1lLCB2YWx1ZSkge1xuICB0aGlzLm1hcFtub3JtYWxpemVOYW1lKG5hbWUpXSA9IG5vcm1hbGl6ZVZhbHVlKHZhbHVlKVxufVxuXG5IZWFkZXJzLnByb3RvdHlwZS5mb3JFYWNoID0gZnVuY3Rpb24oY2FsbGJhY2ssIHRoaXNBcmcpIHtcbiAgZm9yICh2YXIgbmFtZSBpbiB0aGlzLm1hcCkge1xuICAgIGlmICh0aGlzLm1hcC5oYXNPd25Qcm9wZXJ0eShuYW1lKSkge1xuICAgICAgY2FsbGJhY2suY2FsbCh0aGlzQXJnLCB0aGlzLm1hcFtuYW1lXSwgbmFtZSwgdGhpcylcbiAgICB9XG4gIH1cbn1cblxuSGVhZGVycy5wcm90b3R5cGUua2V5cyA9IGZ1bmN0aW9uKCkge1xuICB2YXIgaXRlbXMgPSBbXVxuICB0aGlzLmZvckVhY2goZnVuY3Rpb24odmFsdWUsIG5hbWUpIHtcbiAgICBpdGVtcy5wdXNoKG5hbWUpXG4gIH0pXG4gIHJldHVybiBpdGVyYXRvckZvcihpdGVtcylcbn1cblxuSGVhZGVycy5wcm90b3R5cGUudmFsdWVzID0gZnVuY3Rpb24oKSB7XG4gIHZhciBpdGVtcyA9IFtdXG4gIHRoaXMuZm9yRWFjaChmdW5jdGlvbih2YWx1ZSkge1xuICAgIGl0ZW1zLnB1c2godmFsdWUpXG4gIH0pXG4gIHJldHVybiBpdGVyYXRvckZvcihpdGVtcylcbn1cblxuSGVhZGVycy5wcm90b3R5cGUuZW50cmllcyA9IGZ1bmN0aW9uKCkge1xuICB2YXIgaXRlbXMgPSBbXVxuICB0aGlzLmZvckVhY2goZnVuY3Rpb24odmFsdWUsIG5hbWUpIHtcbiAgICBpdGVtcy5wdXNoKFtuYW1lLCB2YWx1ZV0pXG4gIH0pXG4gIHJldHVybiBpdGVyYXRvckZvcihpdGVtcylcbn1cblxuaWYgKHN1cHBvcnQuaXRlcmFibGUpIHtcbiAgSGVhZGVycy5wcm90b3R5cGVbU3ltYm9sLml0ZXJhdG9yXSA9IEhlYWRlcnMucHJvdG90eXBlLmVudHJpZXNcbn1cblxuZnVuY3Rpb24gY29uc3VtZWQoYm9keSkge1xuICBpZiAoYm9keS5ib2R5VXNlZCkge1xuICAgIHJldHVybiBQcm9taXNlLnJlamVjdChuZXcgVHlwZUVycm9yKCdBbHJlYWR5IHJlYWQnKSlcbiAgfVxuICBib2R5LmJvZHlVc2VkID0gdHJ1ZVxufVxuXG5mdW5jdGlvbiBmaWxlUmVhZGVyUmVhZHkocmVhZGVyKSB7XG4gIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHtcbiAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXNvbHZlKHJlYWRlci5yZXN1bHQpXG4gICAgfVxuICAgIHJlYWRlci5vbmVycm9yID0gZnVuY3Rpb24oKSB7XG4gICAgICByZWplY3QocmVhZGVyLmVycm9yKVxuICAgIH1cbiAgfSlcbn1cblxuZnVuY3Rpb24gcmVhZEJsb2JBc0FycmF5QnVmZmVyKGJsb2IpIHtcbiAgdmFyIHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKClcbiAgdmFyIHByb21pc2UgPSBmaWxlUmVhZGVyUmVhZHkocmVhZGVyKVxuICByZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIoYmxvYilcbiAgcmV0dXJuIHByb21pc2Vcbn1cblxuZnVuY3Rpb24gcmVhZEJsb2JBc1RleHQoYmxvYikge1xuICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKVxuICB2YXIgcHJvbWlzZSA9IGZpbGVSZWFkZXJSZWFkeShyZWFkZXIpXG4gIHJlYWRlci5yZWFkQXNUZXh0KGJsb2IpXG4gIHJldHVybiBwcm9taXNlXG59XG5cbmZ1bmN0aW9uIHJlYWRBcnJheUJ1ZmZlckFzVGV4dChidWYpIHtcbiAgdmFyIHZpZXcgPSBuZXcgVWludDhBcnJheShidWYpXG4gIHZhciBjaGFycyA9IG5ldyBBcnJheSh2aWV3Lmxlbmd0aClcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IHZpZXcubGVuZ3RoOyBpKyspIHtcbiAgICBjaGFyc1tpXSA9IFN0cmluZy5mcm9tQ2hhckNvZGUodmlld1tpXSlcbiAgfVxuICByZXR1cm4gY2hhcnMuam9pbignJylcbn1cblxuZnVuY3Rpb24gYnVmZmVyQ2xvbmUoYnVmKSB7XG4gIGlmIChidWYuc2xpY2UpIHtcbiAgICByZXR1cm4gYnVmLnNsaWNlKDApXG4gIH0gZWxzZSB7XG4gICAgdmFyIHZpZXcgPSBuZXcgVWludDhBcnJheShidWYuYnl0ZUxlbmd0aClcbiAgICB2aWV3LnNldChuZXcgVWludDhBcnJheShidWYpKVxuICAgIHJldHVybiB2aWV3LmJ1ZmZlclxuICB9XG59XG5cbmZ1bmN0aW9uIEJvZHkoKSB7XG4gIHRoaXMuYm9keVVzZWQgPSBmYWxzZVxuXG4gIHRoaXMuX2luaXRCb2R5ID0gZnVuY3Rpb24oYm9keSkge1xuICAgIC8qXG4gICAgICBmZXRjaC1tb2NrIHdyYXBzIHRoZSBSZXNwb25zZSBvYmplY3QgaW4gYW4gRVM2IFByb3h5IHRvXG4gICAgICBwcm92aWRlIHVzZWZ1bCB0ZXN0IGhhcm5lc3MgZmVhdHVyZXMgc3VjaCBhcyBmbHVzaC4gSG93ZXZlciwgb25cbiAgICAgIEVTNSBicm93c2VycyB3aXRob3V0IGZldGNoIG9yIFByb3h5IHN1cHBvcnQgcG9sbHlmaWxscyBtdXN0IGJlIHVzZWQ7XG4gICAgICB0aGUgcHJveHktcG9sbHlmaWxsIGlzIHVuYWJsZSB0byBwcm94eSBhbiBhdHRyaWJ1dGUgdW5sZXNzIGl0IGV4aXN0c1xuICAgICAgb24gdGhlIG9iamVjdCBiZWZvcmUgdGhlIFByb3h5IGlzIGNyZWF0ZWQuIFRoaXMgY2hhbmdlIGVuc3VyZXNcbiAgICAgIFJlc3BvbnNlLmJvZHlVc2VkIGV4aXN0cyBvbiB0aGUgaW5zdGFuY2UsIHdoaWxlIG1haW50YWluaW5nIHRoZVxuICAgICAgc2VtYW50aWMgb2Ygc2V0dGluZyBSZXF1ZXN0LmJvZHlVc2VkIGluIHRoZSBjb25zdHJ1Y3RvciBiZWZvcmVcbiAgICAgIF9pbml0Qm9keSBpcyBjYWxsZWQuXG4gICAgKi9cbiAgICB0aGlzLmJvZHlVc2VkID0gdGhpcy5ib2R5VXNlZFxuICAgIHRoaXMuX2JvZHlJbml0ID0gYm9keVxuICAgIGlmICghYm9keSkge1xuICAgICAgdGhpcy5fYm9keVRleHQgPSAnJ1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIGJvZHkgPT09ICdzdHJpbmcnKSB7XG4gICAgICB0aGlzLl9ib2R5VGV4dCA9IGJvZHlcbiAgICB9IGVsc2UgaWYgKHN1cHBvcnQuYmxvYiAmJiBCbG9iLnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKGJvZHkpKSB7XG4gICAgICB0aGlzLl9ib2R5QmxvYiA9IGJvZHlcbiAgICB9IGVsc2UgaWYgKHN1cHBvcnQuZm9ybURhdGEgJiYgRm9ybURhdGEucHJvdG90eXBlLmlzUHJvdG90eXBlT2YoYm9keSkpIHtcbiAgICAgIHRoaXMuX2JvZHlGb3JtRGF0YSA9IGJvZHlcbiAgICB9IGVsc2UgaWYgKHN1cHBvcnQuc2VhcmNoUGFyYW1zICYmIFVSTFNlYXJjaFBhcmFtcy5wcm90b3R5cGUuaXNQcm90b3R5cGVPZihib2R5KSkge1xuICAgICAgdGhpcy5fYm9keVRleHQgPSBib2R5LnRvU3RyaW5nKClcbiAgICB9IGVsc2UgaWYgKHN1cHBvcnQuYXJyYXlCdWZmZXIgJiYgc3VwcG9ydC5ibG9iICYmIGlzRGF0YVZpZXcoYm9keSkpIHtcbiAgICAgIHRoaXMuX2JvZHlBcnJheUJ1ZmZlciA9IGJ1ZmZlckNsb25lKGJvZHkuYnVmZmVyKVxuICAgICAgLy8gSUUgMTAtMTEgY2FuJ3QgaGFuZGxlIGEgRGF0YVZpZXcgYm9keS5cbiAgICAgIHRoaXMuX2JvZHlJbml0ID0gbmV3IEJsb2IoW3RoaXMuX2JvZHlBcnJheUJ1ZmZlcl0pXG4gICAgfSBlbHNlIGlmIChzdXBwb3J0LmFycmF5QnVmZmVyICYmIChBcnJheUJ1ZmZlci5wcm90b3R5cGUuaXNQcm90b3R5cGVPZihib2R5KSB8fCBpc0FycmF5QnVmZmVyVmlldyhib2R5KSkpIHtcbiAgICAgIHRoaXMuX2JvZHlBcnJheUJ1ZmZlciA9IGJ1ZmZlckNsb25lKGJvZHkpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2JvZHlUZXh0ID0gYm9keSA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChib2R5KVxuICAgIH1cblxuICAgIGlmICghdGhpcy5oZWFkZXJzLmdldCgnY29udGVudC10eXBlJykpIHtcbiAgICAgIGlmICh0eXBlb2YgYm9keSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgdGhpcy5oZWFkZXJzLnNldCgnY29udGVudC10eXBlJywgJ3RleHQvcGxhaW47Y2hhcnNldD1VVEYtOCcpXG4gICAgICB9IGVsc2UgaWYgKHRoaXMuX2JvZHlCbG9iICYmIHRoaXMuX2JvZHlCbG9iLnR5cGUpIHtcbiAgICAgICAgdGhpcy5oZWFkZXJzLnNldCgnY29udGVudC10eXBlJywgdGhpcy5fYm9keUJsb2IudHlwZSlcbiAgICAgIH0gZWxzZSBpZiAoc3VwcG9ydC5zZWFyY2hQYXJhbXMgJiYgVVJMU2VhcmNoUGFyYW1zLnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKGJvZHkpKSB7XG4gICAgICAgIHRoaXMuaGVhZGVycy5zZXQoJ2NvbnRlbnQtdHlwZScsICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD1VVEYtOCcpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKHN1cHBvcnQuYmxvYikge1xuICAgIHRoaXMuYmxvYiA9IGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIHJlamVjdGVkID0gY29uc3VtZWQodGhpcylcbiAgICAgIGlmIChyZWplY3RlZCkge1xuICAgICAgICByZXR1cm4gcmVqZWN0ZWRcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuX2JvZHlCbG9iKSB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5fYm9keUJsb2IpXG4gICAgICB9IGVsc2UgaWYgKHRoaXMuX2JvZHlBcnJheUJ1ZmZlcikge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG5ldyBCbG9iKFt0aGlzLl9ib2R5QXJyYXlCdWZmZXJdKSlcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5fYm9keUZvcm1EYXRhKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignY291bGQgbm90IHJlYWQgRm9ybURhdGEgYm9keSBhcyBibG9iJylcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUobmV3IEJsb2IoW3RoaXMuX2JvZHlUZXh0XSkpXG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5hcnJheUJ1ZmZlciA9IGZ1bmN0aW9uKCkge1xuICAgICAgaWYgKHRoaXMuX2JvZHlBcnJheUJ1ZmZlcikge1xuICAgICAgICB2YXIgaXNDb25zdW1lZCA9IGNvbnN1bWVkKHRoaXMpXG4gICAgICAgIGlmIChpc0NvbnN1bWVkKSB7XG4gICAgICAgICAgcmV0dXJuIGlzQ29uc3VtZWRcbiAgICAgICAgfVxuICAgICAgICBpZiAoQXJyYXlCdWZmZXIuaXNWaWV3KHRoaXMuX2JvZHlBcnJheUJ1ZmZlcikpIHtcbiAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKFxuICAgICAgICAgICAgdGhpcy5fYm9keUFycmF5QnVmZmVyLmJ1ZmZlci5zbGljZShcbiAgICAgICAgICAgICAgdGhpcy5fYm9keUFycmF5QnVmZmVyLmJ5dGVPZmZzZXQsXG4gICAgICAgICAgICAgIHRoaXMuX2JvZHlBcnJheUJ1ZmZlci5ieXRlT2Zmc2V0ICsgdGhpcy5fYm9keUFycmF5QnVmZmVyLmJ5dGVMZW5ndGhcbiAgICAgICAgICAgIClcbiAgICAgICAgICApXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLl9ib2R5QXJyYXlCdWZmZXIpXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0aGlzLmJsb2IoKS50aGVuKHJlYWRCbG9iQXNBcnJheUJ1ZmZlcilcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB0aGlzLnRleHQgPSBmdW5jdGlvbigpIHtcbiAgICB2YXIgcmVqZWN0ZWQgPSBjb25zdW1lZCh0aGlzKVxuICAgIGlmIChyZWplY3RlZCkge1xuICAgICAgcmV0dXJuIHJlamVjdGVkXG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX2JvZHlCbG9iKSB7XG4gICAgICByZXR1cm4gcmVhZEJsb2JBc1RleHQodGhpcy5fYm9keUJsb2IpXG4gICAgfSBlbHNlIGlmICh0aGlzLl9ib2R5QXJyYXlCdWZmZXIpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUocmVhZEFycmF5QnVmZmVyQXNUZXh0KHRoaXMuX2JvZHlBcnJheUJ1ZmZlcikpXG4gICAgfSBlbHNlIGlmICh0aGlzLl9ib2R5Rm9ybURhdGEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignY291bGQgbm90IHJlYWQgRm9ybURhdGEgYm9keSBhcyB0ZXh0JylcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLl9ib2R5VGV4dClcbiAgICB9XG4gIH1cblxuICBpZiAoc3VwcG9ydC5mb3JtRGF0YSkge1xuICAgIHRoaXMuZm9ybURhdGEgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiB0aGlzLnRleHQoKS50aGVuKGRlY29kZSlcbiAgICB9XG4gIH1cblxuICB0aGlzLmpzb24gPSBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy50ZXh0KCkudGhlbihKU09OLnBhcnNlKVxuICB9XG5cbiAgcmV0dXJuIHRoaXNcbn1cblxuLy8gSFRUUCBtZXRob2RzIHdob3NlIGNhcGl0YWxpemF0aW9uIHNob3VsZCBiZSBub3JtYWxpemVkXG52YXIgbWV0aG9kcyA9IFsnREVMRVRFJywgJ0dFVCcsICdIRUFEJywgJ09QVElPTlMnLCAnUE9TVCcsICdQVVQnXVxuXG5mdW5jdGlvbiBub3JtYWxpemVNZXRob2QobWV0aG9kKSB7XG4gIHZhciB1cGNhc2VkID0gbWV0aG9kLnRvVXBwZXJDYXNlKClcbiAgcmV0dXJuIG1ldGhvZHMuaW5kZXhPZih1cGNhc2VkKSA+IC0xID8gdXBjYXNlZCA6IG1ldGhvZFxufVxuXG5leHBvcnQgZnVuY3Rpb24gUmVxdWVzdChpbnB1dCwgb3B0aW9ucykge1xuICBpZiAoISh0aGlzIGluc3RhbmNlb2YgUmVxdWVzdCkpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdQbGVhc2UgdXNlIHRoZSBcIm5ld1wiIG9wZXJhdG9yLCB0aGlzIERPTSBvYmplY3QgY29uc3RydWN0b3IgY2Fubm90IGJlIGNhbGxlZCBhcyBhIGZ1bmN0aW9uLicpXG4gIH1cblxuICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fVxuICB2YXIgYm9keSA9IG9wdGlvbnMuYm9keVxuXG4gIGlmIChpbnB1dCBpbnN0YW5jZW9mIFJlcXVlc3QpIHtcbiAgICBpZiAoaW5wdXQuYm9keVVzZWQpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0FscmVhZHkgcmVhZCcpXG4gICAgfVxuICAgIHRoaXMudXJsID0gaW5wdXQudXJsXG4gICAgdGhpcy5jcmVkZW50aWFscyA9IGlucHV0LmNyZWRlbnRpYWxzXG4gICAgaWYgKCFvcHRpb25zLmhlYWRlcnMpIHtcbiAgICAgIHRoaXMuaGVhZGVycyA9IG5ldyBIZWFkZXJzKGlucHV0LmhlYWRlcnMpXG4gICAgfVxuICAgIHRoaXMubWV0aG9kID0gaW5wdXQubWV0aG9kXG4gICAgdGhpcy5tb2RlID0gaW5wdXQubW9kZVxuICAgIHRoaXMuc2lnbmFsID0gaW5wdXQuc2lnbmFsXG4gICAgaWYgKCFib2R5ICYmIGlucHV0Ll9ib2R5SW5pdCAhPSBudWxsKSB7XG4gICAgICBib2R5ID0gaW5wdXQuX2JvZHlJbml0XG4gICAgICBpbnB1dC5ib2R5VXNlZCA9IHRydWVcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdGhpcy51cmwgPSBTdHJpbmcoaW5wdXQpXG4gIH1cblxuICB0aGlzLmNyZWRlbnRpYWxzID0gb3B0aW9ucy5jcmVkZW50aWFscyB8fCB0aGlzLmNyZWRlbnRpYWxzIHx8ICdzYW1lLW9yaWdpbidcbiAgaWYgKG9wdGlvbnMuaGVhZGVycyB8fCAhdGhpcy5oZWFkZXJzKSB7XG4gICAgdGhpcy5oZWFkZXJzID0gbmV3IEhlYWRlcnMob3B0aW9ucy5oZWFkZXJzKVxuICB9XG4gIHRoaXMubWV0aG9kID0gbm9ybWFsaXplTWV0aG9kKG9wdGlvbnMubWV0aG9kIHx8IHRoaXMubWV0aG9kIHx8ICdHRVQnKVxuICB0aGlzLm1vZGUgPSBvcHRpb25zLm1vZGUgfHwgdGhpcy5tb2RlIHx8IG51bGxcbiAgdGhpcy5zaWduYWwgPSBvcHRpb25zLnNpZ25hbCB8fCB0aGlzLnNpZ25hbFxuICB0aGlzLnJlZmVycmVyID0gbnVsbFxuXG4gIGlmICgodGhpcy5tZXRob2QgPT09ICdHRVQnIHx8IHRoaXMubWV0aG9kID09PSAnSEVBRCcpICYmIGJvZHkpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdCb2R5IG5vdCBhbGxvd2VkIGZvciBHRVQgb3IgSEVBRCByZXF1ZXN0cycpXG4gIH1cbiAgdGhpcy5faW5pdEJvZHkoYm9keSlcblxuICBpZiAodGhpcy5tZXRob2QgPT09ICdHRVQnIHx8IHRoaXMubWV0aG9kID09PSAnSEVBRCcpIHtcbiAgICBpZiAob3B0aW9ucy5jYWNoZSA9PT0gJ25vLXN0b3JlJyB8fCBvcHRpb25zLmNhY2hlID09PSAnbm8tY2FjaGUnKSB7XG4gICAgICAvLyBTZWFyY2ggZm9yIGEgJ18nIHBhcmFtZXRlciBpbiB0aGUgcXVlcnkgc3RyaW5nXG4gICAgICB2YXIgcmVQYXJhbVNlYXJjaCA9IC8oWz8mXSlfPVteJl0qL1xuICAgICAgaWYgKHJlUGFyYW1TZWFyY2gudGVzdCh0aGlzLnVybCkpIHtcbiAgICAgICAgLy8gSWYgaXQgYWxyZWFkeSBleGlzdHMgdGhlbiBzZXQgdGhlIHZhbHVlIHdpdGggdGhlIGN1cnJlbnQgdGltZVxuICAgICAgICB0aGlzLnVybCA9IHRoaXMudXJsLnJlcGxhY2UocmVQYXJhbVNlYXJjaCwgJyQxXz0nICsgbmV3IERhdGUoKS5nZXRUaW1lKCkpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBPdGhlcndpc2UgYWRkIGEgbmV3ICdfJyBwYXJhbWV0ZXIgdG8gdGhlIGVuZCB3aXRoIHRoZSBjdXJyZW50IHRpbWVcbiAgICAgICAgdmFyIHJlUXVlcnlTdHJpbmcgPSAvXFw/L1xuICAgICAgICB0aGlzLnVybCArPSAocmVRdWVyeVN0cmluZy50ZXN0KHRoaXMudXJsKSA/ICcmJyA6ICc/JykgKyAnXz0nICsgbmV3IERhdGUoKS5nZXRUaW1lKClcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuUmVxdWVzdC5wcm90b3R5cGUuY2xvbmUgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIG5ldyBSZXF1ZXN0KHRoaXMsIHtib2R5OiB0aGlzLl9ib2R5SW5pdH0pXG59XG5cbmZ1bmN0aW9uIGRlY29kZShib2R5KSB7XG4gIHZhciBmb3JtID0gbmV3IEZvcm1EYXRhKClcbiAgYm9keVxuICAgIC50cmltKClcbiAgICAuc3BsaXQoJyYnKVxuICAgIC5mb3JFYWNoKGZ1bmN0aW9uKGJ5dGVzKSB7XG4gICAgICBpZiAoYnl0ZXMpIHtcbiAgICAgICAgdmFyIHNwbGl0ID0gYnl0ZXMuc3BsaXQoJz0nKVxuICAgICAgICB2YXIgbmFtZSA9IHNwbGl0LnNoaWZ0KCkucmVwbGFjZSgvXFwrL2csICcgJylcbiAgICAgICAgdmFyIHZhbHVlID0gc3BsaXQuam9pbignPScpLnJlcGxhY2UoL1xcKy9nLCAnICcpXG4gICAgICAgIGZvcm0uYXBwZW5kKGRlY29kZVVSSUNvbXBvbmVudChuYW1lKSwgZGVjb2RlVVJJQ29tcG9uZW50KHZhbHVlKSlcbiAgICAgIH1cbiAgICB9KVxuICByZXR1cm4gZm9ybVxufVxuXG5mdW5jdGlvbiBwYXJzZUhlYWRlcnMocmF3SGVhZGVycykge1xuICB2YXIgaGVhZGVycyA9IG5ldyBIZWFkZXJzKClcbiAgLy8gUmVwbGFjZSBpbnN0YW5jZXMgb2YgXFxyXFxuIGFuZCBcXG4gZm9sbG93ZWQgYnkgYXQgbGVhc3Qgb25lIHNwYWNlIG9yIGhvcml6b250YWwgdGFiIHdpdGggYSBzcGFjZVxuICAvLyBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNzIzMCNzZWN0aW9uLTMuMlxuICB2YXIgcHJlUHJvY2Vzc2VkSGVhZGVycyA9IHJhd0hlYWRlcnMucmVwbGFjZSgvXFxyP1xcbltcXHQgXSsvZywgJyAnKVxuICAvLyBBdm9pZGluZyBzcGxpdCB2aWEgcmVnZXggdG8gd29yayBhcm91bmQgYSBjb21tb24gSUUxMSBidWcgd2l0aCB0aGUgY29yZS1qcyAzLjYuMCByZWdleCBwb2x5ZmlsbFxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vZ2l0aHViL2ZldGNoL2lzc3Vlcy83NDhcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvaXNzdWVzLzc1MVxuICBwcmVQcm9jZXNzZWRIZWFkZXJzXG4gICAgLnNwbGl0KCdcXHInKVxuICAgIC5tYXAoZnVuY3Rpb24oaGVhZGVyKSB7XG4gICAgICByZXR1cm4gaGVhZGVyLmluZGV4T2YoJ1xcbicpID09PSAwID8gaGVhZGVyLnN1YnN0cigxLCBoZWFkZXIubGVuZ3RoKSA6IGhlYWRlclxuICAgIH0pXG4gICAgLmZvckVhY2goZnVuY3Rpb24obGluZSkge1xuICAgICAgdmFyIHBhcnRzID0gbGluZS5zcGxpdCgnOicpXG4gICAgICB2YXIga2V5ID0gcGFydHMuc2hpZnQoKS50cmltKClcbiAgICAgIGlmIChrZXkpIHtcbiAgICAgICAgdmFyIHZhbHVlID0gcGFydHMuam9pbignOicpLnRyaW0oKVxuICAgICAgICBoZWFkZXJzLmFwcGVuZChrZXksIHZhbHVlKVxuICAgICAgfVxuICAgIH0pXG4gIHJldHVybiBoZWFkZXJzXG59XG5cbkJvZHkuY2FsbChSZXF1ZXN0LnByb3RvdHlwZSlcblxuZXhwb3J0IGZ1bmN0aW9uIFJlc3BvbnNlKGJvZHlJbml0LCBvcHRpb25zKSB7XG4gIGlmICghKHRoaXMgaW5zdGFuY2VvZiBSZXNwb25zZSkpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdQbGVhc2UgdXNlIHRoZSBcIm5ld1wiIG9wZXJhdG9yLCB0aGlzIERPTSBvYmplY3QgY29uc3RydWN0b3IgY2Fubm90IGJlIGNhbGxlZCBhcyBhIGZ1bmN0aW9uLicpXG4gIH1cbiAgaWYgKCFvcHRpb25zKSB7XG4gICAgb3B0aW9ucyA9IHt9XG4gIH1cblxuICB0aGlzLnR5cGUgPSAnZGVmYXVsdCdcbiAgdGhpcy5zdGF0dXMgPSBvcHRpb25zLnN0YXR1cyA9PT0gdW5kZWZpbmVkID8gMjAwIDogb3B0aW9ucy5zdGF0dXNcbiAgdGhpcy5vayA9IHRoaXMuc3RhdHVzID49IDIwMCAmJiB0aGlzLnN0YXR1cyA8IDMwMFxuICB0aGlzLnN0YXR1c1RleHQgPSBvcHRpb25zLnN0YXR1c1RleHQgPT09IHVuZGVmaW5lZCA/ICcnIDogJycgKyBvcHRpb25zLnN0YXR1c1RleHRcbiAgdGhpcy5oZWFkZXJzID0gbmV3IEhlYWRlcnMob3B0aW9ucy5oZWFkZXJzKVxuICB0aGlzLnVybCA9IG9wdGlvbnMudXJsIHx8ICcnXG4gIHRoaXMuX2luaXRCb2R5KGJvZHlJbml0KVxufVxuXG5Cb2R5LmNhbGwoUmVzcG9uc2UucHJvdG90eXBlKVxuXG5SZXNwb25zZS5wcm90b3R5cGUuY2xvbmUgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIG5ldyBSZXNwb25zZSh0aGlzLl9ib2R5SW5pdCwge1xuICAgIHN0YXR1czogdGhpcy5zdGF0dXMsXG4gICAgc3RhdHVzVGV4dDogdGhpcy5zdGF0dXNUZXh0LFxuICAgIGhlYWRlcnM6IG5ldyBIZWFkZXJzKHRoaXMuaGVhZGVycyksXG4gICAgdXJsOiB0aGlzLnVybFxuICB9KVxufVxuXG5SZXNwb25zZS5lcnJvciA9IGZ1bmN0aW9uKCkge1xuICB2YXIgcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UobnVsbCwge3N0YXR1czogMCwgc3RhdHVzVGV4dDogJyd9KVxuICByZXNwb25zZS50eXBlID0gJ2Vycm9yJ1xuICByZXR1cm4gcmVzcG9uc2Vcbn1cblxudmFyIHJlZGlyZWN0U3RhdHVzZXMgPSBbMzAxLCAzMDIsIDMwMywgMzA3LCAzMDhdXG5cblJlc3BvbnNlLnJlZGlyZWN0ID0gZnVuY3Rpb24odXJsLCBzdGF0dXMpIHtcbiAgaWYgKHJlZGlyZWN0U3RhdHVzZXMuaW5kZXhPZihzdGF0dXMpID09PSAtMSkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdJbnZhbGlkIHN0YXR1cyBjb2RlJylcbiAgfVxuXG4gIHJldHVybiBuZXcgUmVzcG9uc2UobnVsbCwge3N0YXR1czogc3RhdHVzLCBoZWFkZXJzOiB7bG9jYXRpb246IHVybH19KVxufVxuXG5leHBvcnQgdmFyIERPTUV4Y2VwdGlvbiA9IGdsb2JhbC5ET01FeGNlcHRpb25cbnRyeSB7XG4gIG5ldyBET01FeGNlcHRpb24oKVxufSBjYXRjaCAoZXJyKSB7XG4gIERPTUV4Y2VwdGlvbiA9IGZ1bmN0aW9uKG1lc3NhZ2UsIG5hbWUpIHtcbiAgICB0aGlzLm1lc3NhZ2UgPSBtZXNzYWdlXG4gICAgdGhpcy5uYW1lID0gbmFtZVxuICAgIHZhciBlcnJvciA9IEVycm9yKG1lc3NhZ2UpXG4gICAgdGhpcy5zdGFjayA9IGVycm9yLnN0YWNrXG4gIH1cbiAgRE9NRXhjZXB0aW9uLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoRXJyb3IucHJvdG90eXBlKVxuICBET01FeGNlcHRpb24ucHJvdG90eXBlLmNvbnN0cnVjdG9yID0gRE9NRXhjZXB0aW9uXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmZXRjaChpbnB1dCwgaW5pdCkge1xuICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgdmFyIHJlcXVlc3QgPSBuZXcgUmVxdWVzdChpbnB1dCwgaW5pdClcblxuICAgIGlmIChyZXF1ZXN0LnNpZ25hbCAmJiByZXF1ZXN0LnNpZ25hbC5hYm9ydGVkKSB7XG4gICAgICByZXR1cm4gcmVqZWN0KG5ldyBET01FeGNlcHRpb24oJ0Fib3J0ZWQnLCAnQWJvcnRFcnJvcicpKVxuICAgIH1cblxuICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKVxuXG4gICAgZnVuY3Rpb24gYWJvcnRYaHIoKSB7XG4gICAgICB4aHIuYWJvcnQoKVxuICAgIH1cblxuICAgIHhoci5vbmxvYWQgPSBmdW5jdGlvbigpIHtcbiAgICAgIHZhciBvcHRpb25zID0ge1xuICAgICAgICBzdGF0dXM6IHhoci5zdGF0dXMsXG4gICAgICAgIHN0YXR1c1RleHQ6IHhoci5zdGF0dXNUZXh0LFxuICAgICAgICBoZWFkZXJzOiBwYXJzZUhlYWRlcnMoeGhyLmdldEFsbFJlc3BvbnNlSGVhZGVycygpIHx8ICcnKVxuICAgICAgfVxuICAgICAgb3B0aW9ucy51cmwgPSAncmVzcG9uc2VVUkwnIGluIHhociA/IHhoci5yZXNwb25zZVVSTCA6IG9wdGlvbnMuaGVhZGVycy5nZXQoJ1gtUmVxdWVzdC1VUkwnKVxuICAgICAgdmFyIGJvZHkgPSAncmVzcG9uc2UnIGluIHhociA/IHhoci5yZXNwb25zZSA6IHhoci5yZXNwb25zZVRleHRcbiAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG4gICAgICAgIHJlc29sdmUobmV3IFJlc3BvbnNlKGJvZHksIG9wdGlvbnMpKVxuICAgICAgfSwgMClcbiAgICB9XG5cbiAgICB4aHIub25lcnJvciA9IGZ1bmN0aW9uKCkge1xuICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHtcbiAgICAgICAgcmVqZWN0KG5ldyBUeXBlRXJyb3IoJ05ldHdvcmsgcmVxdWVzdCBmYWlsZWQnKSlcbiAgICAgIH0sIDApXG4gICAgfVxuXG4gICAgeGhyLm9udGltZW91dCA9IGZ1bmN0aW9uKCkge1xuICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHtcbiAgICAgICAgcmVqZWN0KG5ldyBUeXBlRXJyb3IoJ05ldHdvcmsgcmVxdWVzdCBmYWlsZWQnKSlcbiAgICAgIH0sIDApXG4gICAgfVxuXG4gICAgeGhyLm9uYWJvcnQgPSBmdW5jdGlvbigpIHtcbiAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG4gICAgICAgIHJlamVjdChuZXcgRE9NRXhjZXB0aW9uKCdBYm9ydGVkJywgJ0Fib3J0RXJyb3InKSlcbiAgICAgIH0sIDApXG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZml4VXJsKHVybCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIHVybCA9PT0gJycgJiYgZ2xvYmFsLmxvY2F0aW9uLmhyZWYgPyBnbG9iYWwubG9jYXRpb24uaHJlZiA6IHVybFxuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICByZXR1cm4gdXJsXG4gICAgICB9XG4gICAgfVxuXG4gICAgeGhyLm9wZW4ocmVxdWVzdC5tZXRob2QsIGZpeFVybChyZXF1ZXN0LnVybCksIHRydWUpXG5cbiAgICBpZiAocmVxdWVzdC5jcmVkZW50aWFscyA9PT0gJ2luY2x1ZGUnKSB7XG4gICAgICB4aHIud2l0aENyZWRlbnRpYWxzID0gdHJ1ZVxuICAgIH0gZWxzZSBpZiAocmVxdWVzdC5jcmVkZW50aWFscyA9PT0gJ29taXQnKSB7XG4gICAgICB4aHIud2l0aENyZWRlbnRpYWxzID0gZmFsc2VcbiAgICB9XG5cbiAgICBpZiAoJ3Jlc3BvbnNlVHlwZScgaW4geGhyKSB7XG4gICAgICBpZiAoc3VwcG9ydC5ibG9iKSB7XG4gICAgICAgIHhoci5yZXNwb25zZVR5cGUgPSAnYmxvYidcbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgIHN1cHBvcnQuYXJyYXlCdWZmZXIgJiZcbiAgICAgICAgcmVxdWVzdC5oZWFkZXJzLmdldCgnQ29udGVudC1UeXBlJykgJiZcbiAgICAgICAgcmVxdWVzdC5oZWFkZXJzLmdldCgnQ29udGVudC1UeXBlJykuaW5kZXhPZignYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJykgIT09IC0xXG4gICAgICApIHtcbiAgICAgICAgeGhyLnJlc3BvbnNlVHlwZSA9ICdhcnJheWJ1ZmZlcidcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoaW5pdCAmJiB0eXBlb2YgaW5pdC5oZWFkZXJzID09PSAnb2JqZWN0JyAmJiAhKGluaXQuaGVhZGVycyBpbnN0YW5jZW9mIEhlYWRlcnMpKSB7XG4gICAgICBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhpbml0LmhlYWRlcnMpLmZvckVhY2goZnVuY3Rpb24obmFtZSkge1xuICAgICAgICB4aHIuc2V0UmVxdWVzdEhlYWRlcihuYW1lLCBub3JtYWxpemVWYWx1ZShpbml0LmhlYWRlcnNbbmFtZV0pKVxuICAgICAgfSlcbiAgICB9IGVsc2Uge1xuICAgICAgcmVxdWVzdC5oZWFkZXJzLmZvckVhY2goZnVuY3Rpb24odmFsdWUsIG5hbWUpIHtcbiAgICAgICAgeGhyLnNldFJlcXVlc3RIZWFkZXIobmFtZSwgdmFsdWUpXG4gICAgICB9KVxuICAgIH1cblxuICAgIGlmIChyZXF1ZXN0LnNpZ25hbCkge1xuICAgICAgcmVxdWVzdC5zaWduYWwuYWRkRXZlbnRMaXN0ZW5lcignYWJvcnQnLCBhYm9ydFhocilcblxuICAgICAgeGhyLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAvLyBET05FIChzdWNjZXNzIG9yIGZhaWx1cmUpXG4gICAgICAgIGlmICh4aHIucmVhZHlTdGF0ZSA9PT0gNCkge1xuICAgICAgICAgIHJlcXVlc3Quc2lnbmFsLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2Fib3J0JywgYWJvcnRYaHIpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICB4aHIuc2VuZCh0eXBlb2YgcmVxdWVzdC5fYm9keUluaXQgPT09ICd1bmRlZmluZWQnID8gbnVsbCA6IHJlcXVlc3QuX2JvZHlJbml0KVxuICB9KVxufVxuXG5mZXRjaC5wb2x5ZmlsbCA9IHRydWVcblxuaWYgKCFnbG9iYWwuZmV0Y2gpIHtcbiAgZ2xvYmFsLmZldGNoID0gZmV0Y2hcbiAgZ2xvYmFsLkhlYWRlcnMgPSBIZWFkZXJzXG4gIGdsb2JhbC5SZXF1ZXN0ID0gUmVxdWVzdFxuICBnbG9iYWwuUmVzcG9uc2UgPSBSZXNwb25zZVxufVxuIiwiLyogdHNsaW50OmRpc2FibGU6bm8tbnVsbC1rZXl3b3JkIG5vLWFueSBuby11bnNhZmUtYW55ICovXG5pbXBvcnQgeyBmZXRjaCB9IGZyb20gXCJ3aGF0d2ctZmV0Y2hcIjtcbmltcG9ydCB7IEFsbEljb25OYW1lcyB9IGZyb20gXCJyZWFjdC11aVwiO1xuXG5pbXBvcnQgeyBFcnJvckZpcnN0Q2FsbGJhY2ssIHJlamVjdCB9IGZyb20gXCIuLi8uLi8uLi8uLi9Db21tb24vVHlwaW5nVXRpbHNcIjtcbmltcG9ydCB0eXBlIHsgSUZvcm0gfSBmcm9tIFwiLi4vLi4vRW5naW5lL0Zvcm0vSUZvcm1cIjtcbmltcG9ydCB7IExvYWRJbnRvRG9jdW1lbnQgfSBmcm9tIFwiLi4vLi4vSGVscGVycy9Mb2FkSW50b0RvY3VtZW50XCI7XG5pbXBvcnQgdHlwZSB7IElQdWJsaWNGb3JtIH0gZnJvbSBcIi4uL1B1YmxpY0Zvcm0vSVB1YmxpY0Zvcm1cIjtcbmltcG9ydCB0eXBlIHsgSUtlV2ViVGVtcGxhdGVzQXBpQ2xpZW50IH0gZnJvbSBcIi4uL1R5cGVzL0lLZVdlYlRlbXBsYXRlc0FwaUNsaWVudFwiO1xuaW1wb3J0IHR5cGUgeyBDbGllbnREcmFmdEluZm9SZXNwb25zZSB9IGZyb20gXCIuLi8uLi8uLi8uLi9Db21tb24vQ2FuZHlBcGlDbGllbnQvQ2xpZW50RHJhZnRJbmZvL0NsaWVudERyYWZ0SW5mb1Jlc3BvbnNlXCI7XG5pbXBvcnQgeyBnZXRDbGllbnREcmFmdEluZm9VcmwgfSBmcm9tIFwiLi4vLi4vLi4vLi4vQ29tbW9uL0NhbmR5QXBpQ2xpZW50L0NsaWVudERyYWZ0SW5mby9HZXRDbGllbnREcmFmdEluZm9VcmxcIjtcbmltcG9ydCB7IEFVT09wdGlvbnMgfSBmcm9tIFwiLi4vVHlwZXMvQVVPT3B0aW9uc1wiO1xuaW1wb3J0IHR5cGUgeyBMYXlvdXRFdmVudHNTdGF0aWMgfSBmcm9tIFwiLi4vLi4vQ29udHJvbHMvSW50ZXJuYWxzL0xheW91dEV2ZW50cy9MYXlvdXRFdmVudHNcIjtcblxuaW1wb3J0IHsgY2xpZW50U2V0dGluZ3MgfSBmcm9tIFwiLi9DbGllbnRTZXR0aW5nc1wiO1xuaW1wb3J0IHsgY3JlYXRlTGVnYWN5UHVibGljRm9ybSB9IGZyb20gXCIuL0xlZ2FjeVB1YmxpY0Zvcm0vQ3JlYXRlTGVnYWN5UHVibGljRm9ybVwiO1xuXG50eXBlIEZvcm1Db250YWluZXIgPSBzdHJpbmcgfCBIVE1MRWxlbWVudDtcblxudHlwZSBFbmdpbmVFbnRyeVBvaW50ID0gKCkgPT4gdm9pZDtcblxuZXhwb3J0IGludGVyZmFjZSBBY3Rpb25EZXNjcmlwdGlvbiB7XG4gICAgaWNvbjogQWxsSWNvbk5hbWVzO1xuICAgIHRleHQ/OiBzdHJpbmcgfCAoKCkgPT4gc3RyaW5nKTtcbiAgICBvbkNsaWNrOiAoKSA9PiB2b2lkO1xuICAgIGhpbnQ/OiB1bmRlZmluZWQgfCBzdHJpbmc7XG4gICAgaWQ6IHN0cmluZztcbiAgICB0aWQ/OiBzdHJpbmc7XG4gICAgd2VpZ2h0OiBudW1iZXI7XG59XG5cbmludGVyZmFjZSBSZW5kZXJGb3JtU2V0dGluZ3Mge1xuICAgIGdmdjogc3RyaW5nO1xuICAgIGVuZ2luZVZlcnNpb24/OiB1bmRlZmluZWQgfCBudWxsIHwgc3RyaW5nO1xuICAgIHJlc291cmNlc1ZlcnNpb246IHN0cmluZztcbiAgICB0aGVtZT86IHVuZGVmaW5lZCB8IG51bGwgfCBzdHJpbmc7XG4gICAgcmVzb3VyY2Vab25lPzogc3RyaW5nO1xuICAgIHJlbmRlckZvcm06IHVuZGVmaW5lZCB8IEVuZ2luZUVudHJ5UG9pbnQ7XG4gICAgdGVtcGxhdGVzQXBpPzogSUtlV2ViVGVtcGxhdGVzQXBpQ2xpZW50O1xuICAgIHBhbmVsQWN0aW9ucz86IEFjdGlvbkRlc2NyaXB0aW9uW107XG59XG5cbnR5cGUgU3RhcnRGb3JtRnVuYyA9IChwYWdlQ29udGVudDogRm9ybUNvbnRhaW5lciwgZXh0ZW5kZWRTZXR0aW5nczogUmVuZGVyRm9ybVNldHRpbmdzKSA9PiBQcm9taXNlPElGb3JtPjtcblxuaW50ZXJmYWNlIENhbmR5R2xvYmFsSW5qZWN0ZWRWYXIge1xuICAgIHN0YXJ0OiAocGFnZUNvbnRlbnQ6IEZvcm1Db250YWluZXIsIG9wdGlvbnM6IFN0YXJ0Rm9ybU9wdGlvbnMsIGNhbGxiYWNrPzogRXJyb3JGaXJzdENhbGxiYWNrPElQdWJsaWNGb3JtPikgPT4gdm9pZDtcbiAgICBrZWZvcm1zVXJsPzogc3RyaW5nO1xuICAgIHBhcnRpYWxSZW5kZXJpbmdGb3JJRTg6IGJvb2xlYW47XG4gICAgZW50cnlQb2ludDogeyBba2V5OiBzdHJpbmddOiBTdGFydEZvcm1GdW5jIH07XG4gICAgbG9hZEVycm9yPzogdW5rbm93bjtcbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICAgIGludGVyZmFjZSBXaW5kb3cge1xuICAgICAgICBDRjogQ2FuZHlHbG9iYWxJbmplY3RlZFZhcjtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5hbWVzcGFjZVxuICAgIG5hbWVzcGFjZSBOb2RlSlMge1xuICAgICAgICBpbnRlcmZhY2UgR2xvYmFsIHtcbiAgICAgICAgICAgIENGOiBDYW5keUdsb2JhbEluamVjdGVkVmFyO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5kZWNsYXJlIGNvbnN0IGdsb2JhbDogV2luZG93O1xuXG5mdW5jdGlvbiBkZWZhdWx0Q2FsbGJhY2soKTogdm9pZCB7XG4gICAgLyogZW1wdHkgKi9cbn1cblxuZnVuY3Rpb24gcGFyc2VCb29sKHZhbHVlOiB1bmtub3duKTogYm9vbGVhbiB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICBpZiAodmFsdWUgPT09IFwiZmFsc2VcIikge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gXCJ0cnVlXCIpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIEJvb2xlYW4odmFsdWUpO1xufVxuXG5mdW5jdGlvbiB1cmwocmVsYXRpdmVVcmw6IHN0cmluZyA9IFwiXCIpOiBzdHJpbmcge1xuICAgIGNvbnN0IGJhc2VVcmwgPSBnbG9iYWwuQ0Yua2Vmb3Jtc1VybCB8fCBcIlwiO1xuXG4gICAgcmV0dXJuIGAke2Jhc2VVcmx9LyR7cmVsYXRpdmVVcmx9YC5yZXBsYWNlKC8oW146XSlcXC97Mix9L2csIFwiJDEvXCIpO1xufVxuXG5mdW5jdGlvbiBidWlsZFVybChwYXRoOiBzdHJpbmcsIHBhcmFtczogeyBbcGFyYW1OYW1lOiBzdHJpbmddOiB1bmRlZmluZWQgfCBzdHJpbmcgfSk6IHN0cmluZyB7XG4gICAgaWYgKHBhcmFtcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiBwYXRoO1xuICAgIH1cbiAgICBjb25zdCBxdWVyeVBhcnRzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGZvciAoY29uc3QgcGFyYW1OYW1lIG9mIE9iamVjdC5rZXlzKHBhcmFtcykpIHtcbiAgICAgICAgY29uc3QgcGFyYW1WYWx1ZSA9IHBhcmFtc1twYXJhbU5hbWVdO1xuICAgICAgICBpZiAocGFyYW1WYWx1ZSAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHF1ZXJ5UGFydHMucHVzaChgJHtwYXJhbU5hbWV9PSR7ZW5jb2RlVVJJQ29tcG9uZW50KHBhcmFtVmFsdWUpfWApO1xuICAgICAgICB9XG4gICAgfVxuICAgIGlmIChxdWVyeVBhcnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gcGF0aDtcbiAgICB9XG4gICAgcmV0dXJuIHBhdGggKyBcIj9cIiArIHF1ZXJ5UGFydHMuam9pbihcIiZcIik7XG59XG5cbmZ1bmN0aW9uIGlzQWxsb3dlZChkb21haW5zOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gbmV3IFJlZ0V4cChgXig/OiR7ZG9tYWlucy5yZXBsYWNlKC9cXC4vZywgXCJcXFxcLlwiKS5yZXBsYWNlKC9cXCovZywgXCJbYS16MC05LS5fXStcIil9KSRgKS50ZXN0KFxuICAgICAgICBnbG9iYWwubG9jYXRpb24uaG9zdFxuICAgICk7XG59XG5cbmZ1bmN0aW9uIGdldFBhcmFtZXRlckJ5TmFtZShuYW1lOiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiAoXG4gICAgICAgIChnbG9iYWwubG9jYXRpb24uc2VhcmNoXG4gICAgICAgICAgICAudHJpbSgpXG4gICAgICAgICAgICAucmVwbGFjZSgvXihcXD98I3wmKS8sIFwiXCIpXG4gICAgICAgICAgICAuc3BsaXQoXCImXCIpXG4gICAgICAgICAgICAubWFwKHBhcmFtID0+IHBhcmFtLnJlcGxhY2UoL1xcKy9nLCBcIiBcIikuc3BsaXQoXCI9XCIpLm1hcChkZWNvZGVVUklDb21wb25lbnQpKVxuICAgICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnRyaXBsZS1lcXVhbHNcbiAgICAgICAgICAgIC5maW5kKChba2V5XSkgPT4ga2V5ID09IG5hbWUpIHx8IFtdKVsxXVxuICAgICk7XG59XG5cbnR5cGUgVGFzayA9IChjYWxsYmFjazogKGVycm9yPzogRXJyb3IpID0+IHZvaWQpID0+IHZvaWQ7XG5cbmZ1bmN0aW9uIHJ1blBhcmFsbGVsKHRhc2tzOiBUYXNrW10sIGNhbGxiYWNrOiAoZXJyb3I/OiBFcnJvcikgPT4gdm9pZCk6IHZvaWQge1xuICAgIGxldCBjb21wbGV0ZWQgPSAwO1xuXG4gICAgdGFza3MuZm9yRWFjaCh0YXNrID0+IHtcbiAgICAgICAgdGFzayhlcnJvciA9PiB7XG4gICAgICAgICAgICBpZiAoY29tcGxldGVkID09PSB0YXNrcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICBjb21wbGV0ZWQgPSB0YXNrcy5sZW5ndGg7XG4gICAgICAgICAgICAgICAgY2FsbGJhY2soZXJyb3IpO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29tcGxldGVkICs9IDE7XG4gICAgICAgICAgICBpZiAoY29tcGxldGVkID09PSB0YXNrcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBjYWxsYmFjaygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9KTtcbn1cblxuaW50ZXJmYWNlIFN0YXJ0Rm9ybVNldHRpbmcge1xuICAgIGdmdjogc3RyaW5nO1xuICAgIGVuZ2luZVZlcnNpb24/OiB1bmRlZmluZWQgfCBudWxsIHwgc3RyaW5nO1xuICAgIHJlc291cmNlWm9uZT86IHN0cmluZztcbiAgICByZXNvdXJjZXNWZXJzaW9uOiBzdHJpbmc7XG4gICAgdGhlbWU/OiB1bmRlZmluZWQgfCBudWxsIHwgc3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNFbmdpbmVWZXJzaW9uR3JlYXRlclRoYW5PckVxdWFsKGxlZnQ6IHN0cmluZywgcmlnaHQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGxlZnROdW1iZXJzID0gbGVmdFxuICAgICAgICAgICAgLnNwbGl0KFwiLlwiKVxuICAgICAgICAgICAgLnNsaWNlKDAsIDMpXG4gICAgICAgICAgICAubWFwKHggPT4gcGFyc2VJbnQoeCwgMTApKTtcbiAgICAgICAgY29uc3QgcmlnaHROdW1iZXJzID0gcmlnaHRcbiAgICAgICAgICAgIC5zcGxpdChcIi5cIilcbiAgICAgICAgICAgIC5zbGljZSgwLCAzKVxuICAgICAgICAgICAgLm1hcCh4ID0+IHBhcnNlSW50KHgsIDEwKSk7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAobGVmdE51bWJlcnNbMF0gPz8gMCkgPiAocmlnaHROdW1iZXJzWzBdID8/IDApIHx8XG4gICAgICAgICAgICAoKGxlZnROdW1iZXJzWzBdID8/IDApID09PSAocmlnaHROdW1iZXJzWzBdID8/IDApICYmXG4gICAgICAgICAgICAgICAgKChsZWZ0TnVtYmVyc1sxXSA/PyAwKSA+IChyaWdodE51bWJlcnNbMV0gPz8gMCkgfHxcbiAgICAgICAgICAgICAgICAgICAgKChsZWZ0TnVtYmVyc1sxXSA/PyAwKSA9PT0gKHJpZ2h0TnVtYmVyc1sxXSA/PyAwKSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgKGxlZnROdW1iZXJzWzJdID8/IDApID49IChyaWdodE51bWJlcnNbMl0gPz8gMCkpKSlcbiAgICAgICAgKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gbG9hZEZvcm0oc2V0dGluZ3M6IFN0YXJ0Rm9ybVNldHRpbmcsIGNhbGxiYWNrOiAoZXJyb3I/OiBudWxsIHwgdW5kZWZpbmVkIHwgRXJyb3IpID0+IHZvaWQpOiB2b2lkIHtcbiAgICBjb25zdCB7IGdmdiwgZW5naW5lVmVyc2lvbiwgcmVzb3VyY2VzVmVyc2lvbiB9ID0gc2V0dGluZ3M7XG5cbiAgICBpZiAoZ2xvYmFsLkNGLmVudHJ5UG9pbnRbZ2Z2XSkge1xuICAgICAgICBjYWxsYmFjaygpO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGlzTmVlZEVuZ2luZSA9IGVuZ2luZVZlcnNpb24gJiYgIWdsb2JhbFtlbmdpbmVWZXJzaW9uXTtcbiAgICBjb25zdCBub1N0eWxlc0ZvckdmdiA9IGZhbHNlOyAvLyBlbmdpbmVWZXJzaW9uICE9IHVuZGVmaW5lZCAmJiAoaXNFbmdpbmVWZXJzaW9uR3JlYXRlclRoYW5PckVxdWFsKGVuZ2luZVZlcnNpb24sIFwiNC4yMTQuMFwiKSB8fCBlbmdpbmVWZXJzaW9uID09PSBcImxvY2FsXCIpO1xuICAgIGNvbnN0IG5lZWRMb2FkU3R5bGVzRm9yR2Z2ID0gIW5vU3R5bGVzRm9yR2Z2O1xuICAgIGNvbnN0IG1pbiA9IGdldFBhcmFtZXRlckJ5TmFtZShcImRlYnVnXCIpID09PSBcInRydWVcIiA/IFwiXCIgOiBcIi5taW5cIjtcbiAgICBjb25zdCB0YXNrczogVGFza1tdID0gW107XG5cbiAgICBjb25zdCBwYXJhbXMgPSB7IHY6IHJlc291cmNlc1ZlcnNpb24sIHJlc291cmNlWm9uZTogc2V0dGluZ3MucmVzb3VyY2Vab25lIH07XG4gICAgaWYgKG5lZWRMb2FkU3R5bGVzRm9yR2Z2KSB7XG4gICAgICAgIHRhc2tzLnB1c2goY2IgPT5cbiAgICAgICAgICAgIExvYWRJbnRvRG9jdW1lbnQuc3R5bGVTaGVldCh1cmwoYnVpbGRVcmwoYHN0YXRpYy9wdWJsaWMvc3R5bGVzLyR7Z2Z2fSR7bWlufS5jc3NgLCBwYXJhbXMpKSwgdHJ1ZSwgY2IpXG4gICAgICAgICk7XG4gICAgfVxuICAgIHRhc2tzLnB1c2goY2IgPT4gTG9hZEludG9Eb2N1bWVudC5zY3JpcHQodXJsKGJ1aWxkVXJsKGBzdGF0aWMvcHVibGljL3NjcmlwdHMvJHtnZnZ9JHttaW59LmpzYCwgcGFyYW1zKSksIGNiKSk7XG5cbiAgICBpZiAoaXNOZWVkRW5naW5lKSB7XG4gICAgICAgIHRhc2tzLnB1c2goXG4gICAgICAgICAgICBjYiA9PlxuICAgICAgICAgICAgICAgIExvYWRJbnRvRG9jdW1lbnQuc3R5bGVTaGVldChcbiAgICAgICAgICAgICAgICAgICAgdXJsKGJ1aWxkVXJsKGBzdGF0aWMvcHVibGljL3N0eWxlcy9jYW5keV8ke2VuZ2luZVZlcnNpb259JHttaW59LmNzc2AsIHBhcmFtcykpLFxuICAgICAgICAgICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgY2JcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgY2IgPT5cbiAgICAgICAgICAgICAgICBMb2FkSW50b0RvY3VtZW50LnNjcmlwdChcbiAgICAgICAgICAgICAgICAgICAgdXJsKGJ1aWxkVXJsKGBzdGF0aWMvcHVibGljL3NjcmlwdHMvY2FuZHlfJHtlbmdpbmVWZXJzaW9ufSR7bWlufS5qc2AsIHBhcmFtcykpLFxuICAgICAgICAgICAgICAgICAgICBjYlxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBydW5QYXJhbGxlbCh0YXNrcywgY2FsbGJhY2spO1xufVxuXG5mdW5jdGlvbiByZW5kZXJGb3JtKFxuICAgIHBhZ2VDb250ZW50OiBGb3JtQ29udGFpbmVyLFxuICAgIGV4dGVuZGVkU2V0dGluZ3M6IFJlbmRlckZvcm1TZXR0aW5ncyxcbiAgICBjYWxsYmFjazogRXJyb3JGaXJzdENhbGxiYWNrPElQdWJsaWNGb3JtPlxuKTogdm9pZCB7XG4gICAgY29uc3QgZm9ybUVudHJ5UG9pbnQgPVxuICAgICAgICBnbG9iYWwuQ0YuZW50cnlQb2ludFtleHRlbmRlZFNldHRpbmdzLmdmdl0gPz8gcmVqZWN0KGBGb3JtIGVudHJ5IHBvaW50ICR7ZXh0ZW5kZWRTZXR0aW5ncy5nZnZ9IG5vdCBmb3VuZC5gKTtcbiAgICBmb3JtRW50cnlQb2ludChwYWdlQ29udGVudCwgZXh0ZW5kZWRTZXR0aW5ncylcbiAgICAgICAgLnRoZW4oZm9ybSA9PiB7XG4gICAgICAgICAgICBjb25zdCBwdWJsaWNGb3JtID0gZm9ybS5wdWJsaWNGb3JtIHx8IGNyZWF0ZUxlZ2FjeVB1YmxpY0Zvcm0oZm9ybSk7XG5cbiAgICAgICAgICAgIGNhbGxiYWNrKG51bGwsIHB1YmxpY0Zvcm0pO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goY2FsbGJhY2spO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0YXJ0Rm9ybU9wdGlvbnMgZXh0ZW5kcyBQYXJ0aWFsPEFVT09wdGlvbnM+IHtcbiAgICBuczogc3RyaW5nO1xuICAgIGRyYWZ0SWQ6IHN0cmluZztcbiAgICBnZnY/OiBzdHJpbmc7XG4gICAgcmVzb3VyY2Vab25lPzogc3RyaW5nO1xuICAgIHRlbXBsYXRlc0FwaT86IElLZVdlYlRlbXBsYXRlc0FwaUNsaWVudDtcbiAgICBmZWVkYmFja0VuYWJsZWQ/OiBib29sZWFuO1xuICAgIGlzRGlzYWJsZWRDbG9zZUJ1dHRvbj86IGJvb2xlYW47XG4gICAgaXNEaXNhYmxlZENsb3NlQW5kU2F2ZUJ1dHRvbj86IGJvb2xlYW47XG4gICAgaXNEaXNhYmxlZENsZWFuRm9ybT86IGJvb2xlYW47XG4gICAgdGhlbWU/OiB1bmRlZmluZWQgfCBudWxsIHwgc3RyaW5nO1xuICAgIGF1dGhlbnRpY2F0aW9uPzogXCJicm93c2VyLWNyZWRlbnRpYWxzLWluY2x1ZGVcIiB8IHsgYXV0aFNpZDogc3RyaW5nIH07XG4gICAgZmV0Y2g/OiB0eXBlb2YgZmV0Y2g7XG4gICAgbW9kZWw/OiB7IFtwYXRoOiBzdHJpbmddOiB1bmtub3duIH07XG4gICAgcGFuZWxBY3Rpb25zPzogQWN0aW9uRGVzY3JpcHRpb25bXTtcbiAgICBldmVudEVtaXR0ZXI/OiBMYXlvdXRFdmVudHNTdGF0aWM7XG4gICAgZW1wbG95ZXJJZD86IHN0cmluZztcbiAgICBzaG93TmF2aWdhdGlvblNpZGViYXI/OiBib29sZWFuO1xuICAgIG9uUmVtb3ZlQXR0YWNobWVudD86ICgpID0+IHZvaWQ7XG59XG5cbmZ1bmN0aW9uIGdldEVuZ2luZUVudHJ5UG9pbnQoZW5naW5lVmVyc2lvbjogdW5kZWZpbmVkIHwgbnVsbCB8IHN0cmluZyk6IHVuZGVmaW5lZCB8IEVuZ2luZUVudHJ5UG9pbnQge1xuICAgIGlmIChlbmdpbmVWZXJzaW9uID09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1yZXR1cm5cbiAgICByZXR1cm4gZ2xvYmFsW2VuZ2luZVZlcnNpb25dICYmIGdsb2JhbFtlbmdpbmVWZXJzaW9uXS5kZWZhdWx0O1xufVxuXG5mdW5jdGlvbiBzdGFydChcbiAgICBwYWdlQ29udGVudDogRm9ybUNvbnRhaW5lcixcbiAgICBvcHRpb25zOiBTdGFydEZvcm1PcHRpb25zLFxuICAgIGNhbGxiYWNrOiBFcnJvckZpcnN0Q2FsbGJhY2s8SVB1YmxpY0Zvcm0+ID0gZGVmYXVsdENhbGxiYWNrXG4pOiB2b2lkIHtcbiAgICBsZXQgZXJyb3IgPSBudWxsO1xuICAgIGNvbnN0IHsgbnMsIGRyYWZ0SWQgfSA9IG9wdGlvbnM7XG5cbiAgICBpZiAoIWlzQWxsb3dlZChjbGllbnRTZXR0aW5ncy5rb250dXJEb21haW5zKSkge1xuICAgICAgICBlcnJvciA9IG5ldyBFcnJvcihcImRvbWFpbi51bnRydXN0ZWRcIik7XG4gICAgfSBlbHNlIGlmICghY2xpZW50U2V0dGluZ3MuYXV0aG9yaXplZCkge1xuICAgICAgICBlcnJvciA9IG5ldyBFcnJvcihcInVzZXIudW5hdXRoZW50aWNhdGVkXCIpO1xuICAgIH0gZWxzZSBpZiAoIWRyYWZ0SWQpIHtcbiAgICAgICAgZXJyb3IgPSBuZXcgRXJyb3IoXCJvcHRpb25zLmRyYWZ0SWQgaXMgcmVxdWlyZWRcIik7XG4gICAgfSBlbHNlIGlmICghbnMpIHtcbiAgICAgICAgZXJyb3IgPSBuZXcgRXJyb3IoXCJvcHRpb25zLm5zIGlzIHJlcXVpcmVkXCIpO1xuICAgIH1cblxuICAgIGlmIChlcnJvcikge1xuICAgICAgICBjYWxsYmFjayhlcnJvcik7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCByZXNvdXJjZVpvbmUgPSBvcHRpb25zLnJlc291cmNlWm9uZSA/PyBnZXRQYXJhbWV0ZXJCeU5hbWUoXCJyZXNvdXJjZVpvbmVcIik7XG4gICAgY29uc3QgY2xpZW50RHJhZnRVcmwgPSBidWlsZFVybCh1cmwoZ2V0Q2xpZW50RHJhZnRJbmZvVXJsKHsgbnM6IG5zLCBkcmFmdElkOiBkcmFmdElkIH0pKSwge1xuICAgICAgICByZXNvdXJjZVpvbmU6IHJlc291cmNlWm9uZSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHJlcXVlc3RPcHRpb25zOiBSZXF1ZXN0SW5pdCA9IHsgbWV0aG9kOiBcIkdFVFwiIH07XG4gICAgaWYgKG9wdGlvbnMuYXV0aGVudGljYXRpb24gPT0gdW5kZWZpbmVkIHx8IG9wdGlvbnMuYXV0aGVudGljYXRpb24gPT09IFwiYnJvd3Nlci1jcmVkZW50aWFscy1pbmNsdWRlXCIpIHtcbiAgICAgICAgcmVxdWVzdE9wdGlvbnMuY3JlZGVudGlhbHMgPSBcImluY2x1ZGVcIjtcbiAgICB9IGVsc2UgaWYgKFwiYXV0aFNpZFwiIGluIG9wdGlvbnMuYXV0aGVudGljYXRpb24gJiYgb3B0aW9ucy5hdXRoZW50aWNhdGlvbi5hdXRoU2lkICE9IHVuZGVmaW5lZCkge1xuICAgICAgICByZXF1ZXN0T3B0aW9ucy5jcmVkZW50aWFscyA9IFwib21pdFwiO1xuICAgICAgICByZXF1ZXN0T3B0aW9ucy5oZWFkZXJzID0gcmVxdWVzdE9wdGlvbnMuaGVhZGVycyA/PyB7fTtcbiAgICAgICAgcmVxdWVzdE9wdGlvbnMuaGVhZGVyc1tcIkF1dGhvcml6YXRpb25cIl0gPSBgQVVUSC5TSUQgJHtvcHRpb25zLmF1dGhlbnRpY2F0aW9uLmF1dGhTaWR9YDtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXF1ZXN0T3B0aW9ucy5jcmVkZW50aWFscyA9IFwib21pdFwiO1xuICAgIH1cbiAgICBjb25zdCBmZXRjaEltcGwgPSBvcHRpb25zLmZldGNoID8/IGZldGNoO1xuXG4gICAgZmV0Y2hJbXBsKGNsaWVudERyYWZ0VXJsLCByZXF1ZXN0T3B0aW9ucylcbiAgICAgICAgLnRoZW4oeCA9PiB4Lmpzb24oKSlcbiAgICAgICAgLnRoZW4oKGNsaWVudERyYWZ0SW5mbzogQ2xpZW50RHJhZnRJbmZvUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGdmdiA9IGNsaWVudERyYWZ0SW5mby5nZnY7XG4gICAgICAgICAgICBjb25zdCBlbmdpbmVWZXJzaW9uID0gY2xpZW50RHJhZnRJbmZvLmVuZ2luZVZlcnNpb247XG4gICAgICAgICAgICBjb25zdCBleHRlbmRlZFNldHRpbmdzID0ge1xuICAgICAgICAgICAgICAgIGF1dGhvcml6ZWQ6IGNsaWVudFNldHRpbmdzLmF1dGhvcml6ZWQsXG4gICAgICAgICAgICAgICAgY2F1bGRyb25BcGlVcmw6IGNsaWVudFNldHRpbmdzLmNhdWxkcm9uQXBpVXJsLFxuICAgICAgICAgICAgICAgIGlzVGVzdFNlcnZlcjogY2xpZW50U2V0dGluZ3MuaXNUZXN0U2VydmVyLFxuICAgICAgICAgICAgICAgIHJlbmRlckNhY2hpbmdGb3JJRTg6IGNsaWVudFNldHRpbmdzLnJlbmRlckNhY2hpbmdGb3JJRTgsXG4gICAgICAgICAgICAgICAgbm9ybWFsaXphdGlvbk9uU2VydmVyOiBjbGllbnRTZXR0aW5ncy5ub3JtYWxpemF0aW9uT25TZXJ2ZXIsXG4gICAgICAgICAgICAgICAgbm9ybWF0aXZlVXJsOiBjbGllbnRTZXR0aW5ncy5ub3JtYXRpdmVVcmwsXG4gICAgICAgICAgICAgICAgcmVzb3VyY2VzVmVyc2lvbjogY2xpZW50U2V0dGluZ3MucmVzb3VyY2VzVmVyc2lvbixcbiAgICAgICAgICAgICAgICBrb250dXJEb21haW5zOiBjbGllbnRTZXR0aW5ncy5rb250dXJEb21haW5zLFxuICAgICAgICAgICAgICAgIHNob3dOYXZpZ2F0aW9uU2lkZWJhcjogb3B0aW9ucy5zaG93TmF2aWdhdGlvblNpZGViYXIgPz8gdHJ1ZSxcbiAgICAgICAgICAgICAgICBvblJlbW92ZUF0dGFjaG1lbnQ6IG9wdGlvbnMub25SZW1vdmVBdHRhY2htZW50LFxuICAgICAgICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgICAgICAgICAgLi4uY2xpZW50RHJhZnRJbmZvLFxuICAgICAgICAgICAgICAgIGdmdjogZ2Z2LFxuICAgICAgICAgICAgICAgIGVuZ2luZVZlcnNpb246IGVuZ2luZVZlcnNpb24sXG4gICAgICAgICAgICAgICAgZmVlZGJhY2tFbmFibGVkOiBvcHRpb25zLmZlZWRiYWNrRW5hYmxlZCA/PyBjbGllbnREcmFmdEluZm8uZmVlZGJhY2tFbmFibGVkLFxuICAgICAgICAgICAgICAgIGlzRGlzYWJsZWRDbGVhbkZvcm06IG9wdGlvbnMuaXNEaXNhYmxlZENsZWFuRm9ybSA/PyBmYWxzZSxcbiAgICAgICAgICAgICAgICBpc0Rpc2FibGVkQ2xvc2VCdXR0b246IG9wdGlvbnMuaXNEaXNhYmxlZENsb3NlQnV0dG9uID8/IGZhbHNlLFxuICAgICAgICAgICAgICAgIGlzRGlzYWJsZWRDbG9zZUFuZFNhdmVCdXR0b246IG9wdGlvbnMuaXNEaXNhYmxlZENsb3NlQW5kU2F2ZUJ1dHRvbiA/PyBmYWxzZSxcbiAgICAgICAgICAgICAgICByZXNvdXJjZVpvbmU6IHJlc291cmNlWm9uZSxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGxvYWRGb3JtKFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZ2Z2OiBleHRlbmRlZFNldHRpbmdzLmdmdixcbiAgICAgICAgICAgICAgICAgICAgZW5naW5lVmVyc2lvbjogZXh0ZW5kZWRTZXR0aW5ncy5lbmdpbmVWZXJzaW9uLFxuICAgICAgICAgICAgICAgICAgICByZXNvdXJjZVpvbmU6IGV4dGVuZGVkU2V0dGluZ3MucmVzb3VyY2Vab25lLFxuICAgICAgICAgICAgICAgICAgICByZXNvdXJjZXNWZXJzaW9uOiBleHRlbmRlZFNldHRpbmdzLnJlc291cmNlc1ZlcnNpb24sXG4gICAgICAgICAgICAgICAgICAgIHRoZW1lOiBleHRlbmRlZFNldHRpbmdzLnRoZW1lLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgbG9hZEVycm9yID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGxvYWRFcnJvciB8fCAhZ2xvYmFsLkNGLmVudHJ5UG9pbnRbZ2Z2XSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2sobmV3IEVycm9yKGBkeW5hbWljIGxvYWRpbmcgaXMgbm90IHN1cHBvcnRlZCBmb3IgZ2Z2ICR7Z2Z2fWApKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCByZW5kZXIgPSBnZXRFbmdpbmVFbnRyeVBvaW50KGVuZ2luZVZlcnNpb24pO1xuXG4gICAgICAgICAgICAgICAgICAgIHJlbmRlckZvcm0oXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWdlQ29udGVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5leHRlbmRlZFNldHRpbmdzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlc0FwaTogb3B0aW9ucy50ZW1wbGF0ZXNBcGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVuZGVyRm9ybTogcmVuZGVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKGNhbGxiYWNrKTtcbn1cblxuY29uc3QgQ2FuZHlDbGllbnRFeHBvcnRzOiBDYW5keUdsb2JhbEluamVjdGVkVmFyID0ge1xuICAgIHN0YXJ0OiBzdGFydCxcbiAgICBlbnRyeVBvaW50OiB7fSxcbiAgICBwYXJ0aWFsUmVuZGVyaW5nRm9ySUU4OiBwYXJzZUJvb2woXCJ7cGFydGlhbFJlbmRlcmluZ0ZvcklFOH1cIiksXG4gICAga2Vmb3Jtc1VybDogXCJ7a2Vmb3Jtc1VybH1cIixcbn07XG5cbmdsb2JhbC5DRiA9IENhbmR5Q2xpZW50RXhwb3J0cztcblxuZXhwb3J0IHsgQ2FuZHlDbGllbnRFeHBvcnRzIH07XG4iLCJmdW5jdGlvbiBwYXJzZUJvb2wodmFsdWU6IHVua25vd24pOiBib29sZWFuIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gXCJmYWxzZVwiKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbHVlID09PSBcInRydWVcIikge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gQm9vbGVhbih2YWx1ZSk7XG59XG5cbmV4cG9ydCBjb25zdCBjbGllbnRTZXR0aW5ncyA9IHtcbiAgICBhdXRob3JpemVkOiBwYXJzZUJvb2woXCJ7YXV0aG9yaXplZH1cIiksXG4gICAgY2F1bGRyb25BcGlVcmw6IFwie2NhdWxkcm9uQXBpVXJsfVwiLFxuICAgIGlzVGVzdFNlcnZlcjogcGFyc2VCb29sKFwie2lzVGVzdFNlcnZlcn1cIiksXG4gICAgcmVuZGVyQ2FjaGluZ0ZvcklFODogcGFyc2VCb29sKFwie3JlbmRlckNhY2hpbmdGb3JJRTh9XCIpLFxuICAgIG5vcm1hbGl6YXRpb25PblNlcnZlcjogcGFyc2VCb29sKFwie25vcm1hbGl6YXRpb25PblNlcnZlcn1cIiksXG4gICAgbm9ybWF0aXZlVXJsOiBcIntub3JtYXRpdmVVcmx9XCIsXG4gICAgcmVzb3VyY2VzVmVyc2lvbjogXCJ7cmVzb3VyY2VzVmVyc2lvbn1cIixcbiAgICBrb250dXJEb21haW5zOiBcIntrb250dXJEb21haW5zfVwiLFxufTtcbiIsImltcG9ydCB7XG4gICAgRW1wbG95ZWUsXG4gICAgRW1wbG95ZWVMaXN0LFxuICAgIEdldEVtcGxveWVlc1dpdGhBY3RpdmVQZXJpb2RRdWVyeSxcbiAgICBHZXRXb3JraW5nRXZlbnRMaXN0UmVxdWVzdCxcbiAgICBXb3JraW5nRXZlbnRMaXN0LFxufSBmcm9tIFwiQHNrYmtvbnR1ci9zdGFmZi1zZWxlY3Rvci13aWRnZXRcIjtcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gXCJFbmdpbmUvc3JjL0VuZ2luZS9Gb3JtL01vZGVsQ2hhbmdlRXZlbnRMaXN0ZW5lclwiO1xuXG5pbXBvcnQgeyBOb3RJbXBsZW1lbnRlZEVycm9yIH0gZnJvbSBcIi4uLy4uLy4uLy4uLy4uL0NvbW1vbi9FcnJvcnNcIjtcbmltcG9ydCB0eXBlIHsgU3RlcCB9IGZyb20gXCIuLi8uLi8uLi9Db250cm9scy9Gb3JtUGFydHMvVG91ci9Ub3VyVHlwZXNcIjtcbmltcG9ydCB0eXBlIHsgU2VydmVyRXJyb3JMb2cgfSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vQ29tbW9uL0NhbmR5QXBpQ2xpZW50L1R5cGVzL0Vycm9yTG9nL1NlcnZlckVycm9yTG9nXCI7XG5pbXBvcnQgdHlwZSB7IEJpbmRpbmdQYXRoLCBNb2RlbFZhbHVlIH0gZnJvbSBcIi4uLy4uLy4uL0VuZ2luZS9Db3JlL0NvcmVUeXBlc1wiO1xuaW1wb3J0IHR5cGUgeyBFeHRlcm5hbEhvb2tGdW5jdGlvbiB9IGZyb20gXCIuLi8uLi8uLi9FbmdpbmUvQ29yZS9FdmVudE1hbmFnZW1lbnQvRXh0ZXJuYWxFdmVudHMvRXh0ZXJuYWxIb29rRnVuY3Rpb25cIjtcbmltcG9ydCB0eXBlIHsgUmVhZG9ubHlNb2RlbENodW5rIH0gZnJvbSBcIi4uLy4uLy4uL0VuZ2luZS9Db3JlL01vZGVsU3RvcmluZy9Nb2RlbENodW5rXCI7XG5pbXBvcnQgdHlwZSB7IFBpY2tsaXN0UXVlcnlSZXNwb25zZSB9IGZyb20gXCIuLi8uLi8uLi9FbmdpbmUvQ29yZS9QaWNrbGlzdHMvUGlja2xpc3RUeXBlc1wiO1xuaW1wb3J0IHR5cGUgeyBJRm9ybSB9IGZyb20gXCIuLi8uLi8uLi9FbmdpbmUvRm9ybS9JRm9ybVwiO1xuaW1wb3J0IHR5cGUgeyBJUHVibGljRm9ybSB9IGZyb20gXCIuLi8uLi9QdWJsaWNGb3JtL0lQdWJsaWNGb3JtXCI7XG5pbXBvcnQgeyBNb2RlbEV2ZW50c0xpc3RlbmVyIH0gZnJvbSBcIi4uLy4uLy4uL0VuZ2luZS9Db3JlL0V2ZW50TWFuYWdlbWVudC9Nb2RlbEV2ZW50cy9Nb2RlbEV2ZW50XCI7XG5pbXBvcnQgeyBEaWdlc3RRdWVyeUZpbHRlciB9IGZyb20gXCIuLi8uLi8uLi8uLi8uLi9Db21tb24vQ2FuZHlBcGlDbGllbnQvRGlnZXN0QXBpQ2xpZW50L1R5cGVzL0RpZ2VzdFF1ZXJ5RmlsdGVyXCI7XG5pbXBvcnQgeyBJVXBkYXRlRm9ybU1vZGVsQWNjZXNzb3IgfSBmcm9tIFwiLi4vLi4vLi4vRW5naW5lL0Zvcm0vSUZvcm1Nb2RlbEFjY2Vzc29yXCI7XG5pbXBvcnQgeyBNb2RhbE9wdGlvbnMgfSBmcm9tIFwiLi4vLi4vLi4vRW5naW5lL0NvcmUvTW9kYWxNYW5hZ2VyL0lNb2RhbFN0YXRlXCI7XG5pbXBvcnQgeyBBYnNvbHV0ZVJlc29sdmVkTW9kZWxQYXRoIH0gZnJvbSBcIi4uLy4uLy4uLy4uLy4uL0NvbW1vbi9Nb2RlbFBhdGgvTW9kZWxQYXRoXCI7XG5pbXBvcnQgeyBDYWxsSW5pdFNlY3Rpb25MaWdodGJveFByb3BzLCBJbml0U2VjdGlvbkZvcm1MaWdodGJveE9wdGlvbnMgfSBmcm9tIFwiLi4vLi4vUHVibGljRm9ybS9Jbml0U2VjdGlvbkxpZ2h0Ym94XCI7XG5pbXBvcnQgeyBNYXNzQWN0aW9uUGFyYW1ldGVycyB9IGZyb20gXCIuLi8uLi8uLi8uLi8uLi9Db21tb24vQ2FuZHlBcGlDbGllbnQvVHlwZXMvTWFzc0FjdGlvbnMvTWFzc0FjdGlvblBhcmFtZXRlcnNcIjtcbmltcG9ydCB7IFByaW50VHlwZSB9IGZyb20gXCIuLi8uLi8uLi8uLi8uLi9Db21tb24vQ2FuZHlBcGlDbGllbnQvVHlwZXMvUHJpbnQvUHJpbnRUeXBlXCI7XG5pbXBvcnQgeyBGaWFzQXBpLCBGaWFzQ2xpZW50SW5pdE9wdGlvbnMgfSBmcm9tIFwiLi4vLi4vLi4vQ29udHJvbHMvVmFsdWVFZGl0b3JzL0ZpYXMvRmlhc0lucHV0L0ZpYXNBcGlcIjtcbmltcG9ydCB7IEluc3RhbmNlc0RlbGV0aW5nUnVsZSB9IGZyb20gXCIuLi8uLi8uLi8uLi8uLi9Db21tb24vQ2FuZHlBcGlDbGllbnQvVHlwZXMvSW5zdGFuY2VzRGVsZXRpbmcvSW5zdGFuY2VzRGVsZXRpbmdSdWxlXCI7XG5pbXBvcnQgeyBDb21iaW5lRnVmUmVzdWx0IH0gZnJvbSBcIi4uLy4uLy4uLy4uLy4uL0NvbW1vbi9DYW5keUFwaUNsaWVudC9UeXBlcy9EcmFmdEFjdGlvbnMvQ29tYmluZUZ1ZlJlc3VsdFwiO1xuaW1wb3J0IHsgSUNhbmR5Q29tcG9uZW50SGFuZGxlIH0gZnJvbSBcIi4uLy4uLy4uL0VuZ2luZS9Db3JlL0NvbXBvbmVudEhhbmRsZVJlZ2lzdHJ5L0lDYW5keUNvbXBvbmVudEhhbmRsZVwiO1xuaW1wb3J0IHsgTmF2aWdhdGlvblBhdGhNYXBwZXIgfSBmcm9tIFwiLi4vLi4vSW5qZWN0YWJsZU1vZHVsZXMvSW5qZWN0YWJsZUVuZ2luZU1vZHVsZXNcIjtcbmltcG9ydCB7IEltcG9ydEVtcGxveWVyRG9jdW1lbnRzT3B0aW9ucyB9IGZyb20gXCIuLi8uLi8uLi9TdGFmZlNlcnZpY2VJbnRlZ3JhdGlvbi9FbXBsb3llZVNlcnZpY2VUeXBlc1wiO1xuaW1wb3J0IHsgVGFiSW5mb3NTdGF0ZSB9IGZyb20gXCIuLi8uLi8uLi9Db250cm9scy9NdWx0aUNvbnRyb2xzL1RhYnMvU3RvcmUvVGFiSW5mb3NTdGF0ZVwiO1xuXG5pbXBvcnQgeyBJTGVnYWN5Rm9ybSB9IGZyb20gXCIuL0lMZWdhY3lGb3JtXCI7XG5cbmV4cG9ydCB0eXBlIE1vZGVsRXZlbnRQYXRoID1cbiAgICB8IFtcIm1vZGVsXCIsIFwiY2hhbmdlXCIsIHN0cmluZywgc3RyaW5nXVxuICAgIHwgW1wibW9kZWxcIiwgXCJyZW1vdmVcIiwgc3RyaW5nLCBzdHJpbmddXG4gICAgfCBbXCJtb2RlbFwiLCBcImNoYW5nZVwiLCBzdHJpbmddXG4gICAgfCBbXCJtb2RlbFwiLCBcInJlbW92ZVwiLCBzdHJpbmddXG4gICAgfCBbXCJtb2RlbFwiLCBcImNoYW5nZVwiXVxuICAgIHwgW1wibW9kZWxcIiwgXCJyZW1vdmVcIl07XG5cbmV4cG9ydCBmdW5jdGlvbiBtb2RlbENoYW5nZUV2ZW50UGF0aChwYXRoPzogc3RyaW5nLCBmaWVsZE5hbWU/OiBzdHJpbmcpOiBNb2RlbEV2ZW50UGF0aCB7XG4gICAgaWYgKGZpZWxkTmFtZSAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKHBhdGggPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJQYXRoIG11c3QgYmUgZGVmaW5lZFwiKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gW1wibW9kZWxcIiwgXCJjaGFuZ2VcIiwgcGF0aCwgZmllbGROYW1lXTtcbiAgICB9XG4gICAgaWYgKHBhdGggIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiBbXCJtb2RlbFwiLCBcImNoYW5nZVwiLCBwYXRoXTtcbiAgICB9XG4gICAgcmV0dXJuIFtcIm1vZGVsXCIsIFwiY2hhbmdlXCJdO1xufVxuXG5mdW5jdGlvbiBtYXBDaHVua1ZhbHVlcyhjaHVuazogUmVhZG9ubHlNb2RlbENodW5rKTogQXJyYXk8eyBbcGF0aDogc3RyaW5nXTogTW9kZWxWYWx1ZSB9PiB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKGNodW5rKVxuICAgICAgICAuZmlsdGVyKHBhdGggPT4gY2h1bmtbcGF0aF0gJiYgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGNodW5rW3BhdGhdLCBcInZhbHVlXCIpKVxuICAgICAgICAubWFwKHBhdGggPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gY2h1bmtbcGF0aF07XG4gICAgICAgICAgICBpZiAocmVzdWx0ID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7fTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB7IFtwYXRoXTogcmVzdWx0LnZhbHVlIH07XG4gICAgICAgIH0pO1xufVxuXG5mdW5jdGlvbiByZWR1Y2VDaHVua1ZhbHVlcyhjaHVua3M6IEFycmF5PHsgW3BhdGg6IHN0cmluZ106IE1vZGVsVmFsdWUgfT4pOiB7IFtwYXRoOiBzdHJpbmddOiBNb2RlbFZhbHVlIH0ge1xuICAgIHJldHVybiBjaHVua3MucmVkdWNlKFxuICAgICAgICAocmVzdWx0LCBjaHVuaykgPT4gKHtcbiAgICAgICAgICAgIC4uLnJlc3VsdCxcbiAgICAgICAgICAgIC4uLmNodW5rLFxuICAgICAgICB9KSxcbiAgICAgICAge31cbiAgICApO1xufVxuXG5jbGFzcyBMZWdhY3lQdWJsaWNGb3JtIGltcGxlbWVudHMgSVB1YmxpY0Zvcm0ge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZm9ybTogSUxlZ2FjeUZvcm07XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoZm9ybTogSUxlZ2FjeUZvcm0pIHtcbiAgICAgICAgdGhpcy5mb3JtID0gZm9ybTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmF2aWdhdGVCeUhpZ2hsYW5kZXJQYXRocyhwYXRoczogc3RyaW5nW10pOiBQcm9taXNlPElDYW5keUNvbXBvbmVudEhhbmRsZSB8IHVuZGVmaW5lZD4ge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNZXRob2Qgbm90IGltcGxlbWVudGVkLlwiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0TmF2aWdhdGlvblBhdGhNYXBwZXIoKTogTmF2aWdhdGlvblBhdGhNYXBwZXIge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNZXRob2Qgbm90IGltcGxlbWVudGVkLlwiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYmF0Y2hVcGRhdGUodXBkYXRlUHJvYzogKHVwZGF0ZUFjY2Vzc29yOiBJVXBkYXRlRm9ybU1vZGVsQWNjZXNzb3IpID0+IHZvaWQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC5cIik7XG4gICAgfVxuXG4gICAgcHVibGljIHJ1bkNoZWNrKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNZXRob2Qgbm90IGltcGxlbWVudGVkLlwiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0RXJyb3JMb2coZXJyb3JMb2c6IFBhcnRpYWw8U2VydmVyRXJyb3JMb2c+KTogdm9pZCB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIk1ldGhvZCBub3QgaW1wbGVtZW50ZWQuXCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyB2YWxpZGF0ZUNoaWxkcmVuQnlQYXRoKHBhdGg6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNZXRob2Qgbm90IGltcGxlbWVudGVkLlwiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgX19JTlRFUk5BTF9faW1wb3J0RnJvbUVtcGxveWVlU2VydmljZSgpOiBQcm9taXNlPEVtcGxveWVlW10gfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC5cIik7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIF9fSU5URVJOQUxfX2dldFNlbGVjdEZ1bmN0aW9uRm9yRGlzYWJsZUVtcGxveWVlSW5TUyhcbiAgICAgICAgcGF0aFNwZWM6IHN0cmluZ1xuICAgICk6IFByb21pc2U8KGVtcGxveWVlOiBFbXBsb3llZSkgPT4gYm9vbGVhbj4ge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNZXRob2Qgbm90IGltcGxlbWVudGVkLlwiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0TW9kYWxVbml0T3BlbmVkSW5zdGFuY2UocGFnZUlkOiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC5cIik7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFRhYnNTdGF0ZSgpOiBUYWJJbmZvc1N0YXRlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC5cIik7XG4gICAgfVxuXG4gICAgcHVibGljIG5hdmlnYXRlKG5hdmlnYXRpb25QYXRoOiBzdHJpbmcpOiBQcm9taXNlPElDYW5keUNvbXBvbmVudEhhbmRsZSB8IHVuZGVmaW5lZD4ge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNZXRob2Qgbm90IGltcGxlbWVudGVkLlwiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaW1wb3J0RW1wbG95ZXJEb2N1bWVudHMob3B0aW9uczogSW1wb3J0RW1wbG95ZXJEb2N1bWVudHNPcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIk1ldGhvZCBub3QgaW1wbGVtZW50ZWQuXCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBpbXBvcnRFbXBsb3llZXMoZW1wbG95ZWVzOiBFbXBsb3llZVtdLCBvcHRpb25zPzogeyBzY2VuYXJpbz86IHN0cmluZyB9KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIk1ldGhvZCBub3QgaW1wbGVtZW50ZWQuXCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBwcmludChwcmludFR5cGU6IFByaW50VHlwZSwgYm9keT86IHN0cmluZ1tdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIk1ldGhvZCBub3QgaW1wbGVtZW50ZWQuXCIpO1xuICAgIH1cbiAgICBwdWJsaWMgcnVuTWFzc0FjdGlvbihhY3Rpb25JZDogc3RyaW5nLCBwYXJhbWV0ZXJzPzogTWFzc0FjdGlvblBhcmFtZXRlcnMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC5cIik7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEJ5R0lkKGdJZDogc3RyaW5nLCBmaWx0ZXI/OiBEaWdlc3RRdWVyeUZpbHRlcik6IFByb21pc2U8UGlja2xpc3RRdWVyeVJlc3BvbnNlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm0ucGlja2xpc3RzUHJvdmlkZXIuZ2V0RGlnZXN0QXBpUGlja2xpc3QoZ0lkKS5xdWVyeShmaWx0ZXIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbihldmVudE5hbWU6IHN0cmluZywgbGlzdGVuZXI6IEV4dGVybmFsSG9va0Z1bmN0aW9uKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9ybS5ldmVudE1hbmFnZXIub24oW1wiZm9ybVwiLCBldmVudE5hbWVdLCBsaXN0ZW5lcik7XG4gICAgfVxuXG4gICAgcHVibGljIG9mZihldmVudE5hbWU6IHN0cmluZywgbGlzdGVuZXI6IEV4dGVybmFsSG9va0Z1bmN0aW9uKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9ybS5ldmVudE1hbmFnZXIub2ZmKFtcImZvcm1cIiwgZXZlbnROYW1lXSwgbGlzdGVuZXIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbk1vZGVsQ2hhbmdlKHBhdGg6IHN0cmluZyB8IHN0cmluZ1tdLCBsaXN0ZW5lcjogdW5rbm93bik6IFN1YnNjcmlwdGlvbiB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgIHRocm93IEVycm9yKFwiZm9ybS5vbk1vZGVsQ2hhbmdlKCkgaXMgbm90IHN1cHBvcnRlZCB5ZXRcIik7XG4gICAgfVxuXG4gICAgcHVibGljIHNhdmUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm0uY2hhbmdlU2V0LnNlbmQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xvc2UoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMuZm9ybS5jaGFuZ2VTZXQuc3RvcEF1dG9zZW5kKCk7XG4gICAgICAgIGlmICh0aGlzLmZvcm0udW5tb3VudCkge1xuICAgICAgICAgICAgdGhpcy5mb3JtLnVubW91bnQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmZvcm0uY2hhbmdlU2V0LnNlbmQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0VG91clN0ZXBzKCk6IFN0ZXBbXSB7XG4gICAgICAgIC8vIEZvciBvbGQga2V3ZWJcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIHB1YmxpYyB2YWxpZGF0ZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKHRoaXMuZm9ybS5tb2RlbC5nZXRDaHVuayh0aGlzLmZvcm0uc2V0dGluZ3MuZm9ybVJvb3QpKTtcbiAgICAgICAgLy8gQHRzLWlnbm9yZSDQrdGC0L4g0LIg0YHRgtCw0YDRi9GFINC00LLQuNC20LrQsNGFINGC0YPRgiDRgtCw0LrQvtC5INCy0YvQt9C+0LJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtcmV0dXJuXG4gICAgICAgIHJldHVybiB0aGlzLmZvcm0udmFsaWRhdG9yLnZhbGlkYXRlQWxsKGtleXMpO1xuICAgIH1cbiAgICBwdWJsaWMgZ2V0QWRkaXRpb25hbEVtcGxveWVlSW5mbyhmaWx0ZXJzOiBHZXRFbXBsb3llZXNXaXRoQWN0aXZlUGVyaW9kUXVlcnkpOiBQcm9taXNlPEVtcGxveWVlTGlzdCB8IHVuZGVmaW5lZD4ge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJub3QgaW1wbGVtZW50ZWRcIik7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZFJlbGF0aXZlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJub3QgaW1wbGVtZW50ZWRcIik7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHJlbG9hZElubmVyKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJub3QgaW1wbGVtZW50ZWRcIik7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFdvcmtpbmdFdmVudHNGb3JFbXBsb3llZShmaWx0ZXJzOiBHZXRXb3JraW5nRXZlbnRMaXN0UmVxdWVzdCk6IFByb21pc2U8V29ya2luZ0V2ZW50TGlzdCB8IHVuZGVmaW5lZD4ge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJub3QgaW1wbGVtZW50ZWRcIik7XG4gICAgfVxuXG4gICAgcHVibGljIGhhc0Vycm9ycygpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgZXJyb3JDb3VudCA9IHRoaXMuZm9ybS5tb2RlbC5nZXQodGhpcy5mb3JtLnNldHRpbmdzLmZvcm1Sb290LCBcImVycm9yc0NvdW50XCIpO1xuICAgICAgICByZXR1cm4gZXJyb3JDb3VudCAhPSB1bmRlZmluZWQgJiYgZXJyb3JDb3VudCA+IDA7XG4gICAgfVxuXG4gICAgcHVibGljIG9uRXJyb3JzQ291bnRDaGFuZ2VkKGxpc3RlbmVyOiBNb2RlbEV2ZW50c0xpc3RlbmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9ybS5ldmVudE1hbmFnZXIub24obW9kZWxDaGFuZ2VFdmVudFBhdGgodGhpcy5mb3JtLnNldHRpbmdzLmZvcm1Sb290LCBcImVycm9yc0NvdW50XCIpLCBsaXN0ZW5lcik7XG4gICAgfVxuXG4gICAgcHVibGljIG9mZkVycm9yc0NvdW50Q2hhbmdlZChsaXN0ZW5lcjogTW9kZWxFdmVudHNMaXN0ZW5lcik6IHZvaWQge1xuICAgICAgICB0aGlzLmZvcm0uZXZlbnRNYW5hZ2VyLm9mZihtb2RlbENoYW5nZUV2ZW50UGF0aCh0aGlzLmZvcm0uc2V0dGluZ3MuZm9ybVJvb3QsIFwiZXJyb3JzQ291bnRcIiksIGxpc3RlbmVyKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0KHBhdGhPck1vZGVsQ2h1bms6IHsgW3BhdGg6IHN0cmluZ106IHN0cmluZyB8IHVuZGVmaW5lZCB9KTogdm9pZCB8IFByb21pc2U8dm9pZD47XG4gICAgcHVibGljIHNldChwYXRoT3JNb2RlbENodW5rOiBzdHJpbmcsIHZhbHVlOiBNb2RlbFZhbHVlKTogdm9pZCB8IFByb21pc2U8dm9pZD47XG4gICAgcHVibGljIHNldChcbiAgICAgICAgcGF0aE9yTW9kZWxDaHVuazogc3RyaW5nIHwgeyBbcGF0aDogc3RyaW5nXTogc3RyaW5nIHwgdW5kZWZpbmVkIH0sXG4gICAgICAgIHZhbHVlPzogTW9kZWxWYWx1ZVxuICAgICk6IHZvaWQgfCBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgcGF0aE9yTW9kZWxDaHVuayAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgdHlwZW9mIHBhdGhPck1vZGVsQ2h1bmsgIT09IFwic3RyaW5nXCIgJiZcbiAgICAgICAgICAgIHR5cGVvZiBwYXRoT3JNb2RlbENodW5rID09PSBcIm9iamVjdFwiICYmXG4gICAgICAgICAgICAhQXJyYXkuaXNBcnJheShwYXRoT3JNb2RlbENodW5rKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IGlubmVyQ2h1bmsgPSBPYmplY3Qua2V5cyhwYXRoT3JNb2RlbENodW5rKS5yZWR1Y2U8UmVhZG9ubHlNb2RlbENodW5rPihcbiAgICAgICAgICAgICAgICAocmVzdWx0LCBwYXRoKSA9PiAoeyBbcGF0aF06IHsgdmFsdWU6IHBhdGhPck1vZGVsQ2h1bmtbcGF0aF0gfSwgLi4ucmVzdWx0IH0pLFxuICAgICAgICAgICAgICAgIHt9XG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICB0aGlzLmZvcm0ubW9kZWwuZmlsbChpbm5lckNodW5rKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2YgcGF0aE9yTW9kZWxDaHVuayA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgdGhpcy5mb3JtLm1vZGVsLnNldChwYXRoT3JNb2RlbENodW5rLCBcInZhbHVlXCIsIHZhbHVlKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcImZvcm0uc2V0KCkgcGFyYW1ldGVyIHNob3VsZCBiZSBzdHJpbmcgcGF0aCBvciBvYmplY3Qgd2l0aCBwYXRoLXZhbHVlIHBhaXJzXCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQocGF0aE9yQXJyYXk6IHN0cmluZyB8IHN0cmluZ1tdKTogeyBbcGF0aDogc3RyaW5nXTogTW9kZWxWYWx1ZSB9IHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkocGF0aE9yQXJyYXkpKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVkdWNlQ2h1bmtWYWx1ZXMoXG4gICAgICAgICAgICAgICAgcGF0aE9yQXJyYXlcbiAgICAgICAgICAgICAgICAgICAgLm1hcChwYXRoID0+IG1hcENodW5rVmFsdWVzKHRoaXMuZm9ybS5tb2RlbC5nZXRDaHVuayhwYXRoKSkpXG4gICAgICAgICAgICAgICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1hbnlcbiAgICAgICAgICAgICAgICAgICAgLnJlZHVjZTxBcnJheTx7IFtwYXRoOiBzdHJpbmddOiBNb2RlbFZhbHVlIH0+PigocmVzdWx0LCBhcnJheSkgPT4gcmVzdWx0LmNvbmNhdChhcnJheSksIFtdKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2YgcGF0aE9yQXJyYXkgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIHJldHVybiByZWR1Y2VDaHVua1ZhbHVlcyhtYXBDaHVua1ZhbHVlcyh0aGlzLmZvcm0ubW9kZWwuZ2V0Q2h1bmsocGF0aE9yQXJyYXkpKSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocGF0aE9yQXJyYXkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHJlZHVjZUNodW5rVmFsdWVzKG1hcENodW5rVmFsdWVzKHRoaXMuZm9ybS5tb2RlbC5nZXRDaHVuayh0aGlzLmZvcm0uc2V0dGluZ3MuZm9ybVJvb3QpKSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiZm9ybS5nZXQoKSBwYXJhbWV0ZXIgc2hvdWxkIGJlIHN0cmluZyBwYXRoIG9yIGFycmF5IG9mIHBhdGhzXCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRWYWx1ZShwYXRoOiBzdHJpbmcpOiBNb2RlbFZhbHVlIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtcmV0dXJuXG4gICAgICAgIHJldHVybiB0aGlzLmZvcm0ubW9kZWwuZ2V0KHBhdGgsIFwidmFsdWVcIik7XG4gICAgfVxuXG4gICAgcHVibGljIGNvcHlTdWJ0cmVlKFxuICAgICAgICBzb3VyY2VCaW5kaW5nUGF0aDogQmluZGluZ1BhdGggfCBBYnNvbHV0ZVJlc29sdmVkTW9kZWxQYXRoLFxuICAgICAgICB0YXJnZXRCaW5kaW5nUGF0aDogQmluZGluZ1BhdGggfCBBYnNvbHV0ZVJlc29sdmVkTW9kZWxQYXRoLFxuICAgICAgICBkb05vdENvcHlQYXRocz86IHN0cmluZ1tdXG4gICAgKTogdm9pZCB7XG4gICAgICAgIHRocm93IG5ldyBOb3RJbXBsZW1lbnRlZEVycm9yKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZEluc3RhbmNlKHBhdGg6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICAgIHRocm93IG5ldyBOb3RJbXBsZW1lbnRlZEVycm9yKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldENoaWxkcmVuKHBhdGg6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICAgICAgdGhyb3cgbmV3IE5vdEltcGxlbWVudGVkRXJyb3IoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdXVpZEdlbmVyYXRlKCk6IHN0cmluZyB7XG4gICAgICAgIHRocm93IG5ldyBOb3RJbXBsZW1lbnRlZEVycm9yKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHNob3dNb2RhbChvcHRpb25zOiBNb2RhbE9wdGlvbnMpOiB2b2lkIHtcbiAgICAgICAgdGhyb3cgbmV3IE5vdEltcGxlbWVudGVkRXJyb3IoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkU2VjdGlvbihvcHRpb25zOiBJbml0U2VjdGlvbkZvcm1MaWdodGJveE9wdGlvbnMpOiB2b2lkIHtcbiAgICAgICAgdGhyb3cgbmV3IE5vdEltcGxlbWVudGVkRXJyb3IoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2FsbEluaXRTZWN0aW9uKG9wdGlvbnM6IENhbGxJbml0U2VjdGlvbkxpZ2h0Ym94UHJvcHMpOiB2b2lkIHtcbiAgICAgICAgdGhyb3cgbmV3IE5vdEltcGxlbWVudGVkRXJyb3IoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY3JlYXRlRmlhc0FwaUNsaWVudChvcHRpb25zOiBGaWFzQ2xpZW50SW5pdE9wdGlvbnMpOiBGaWFzQXBpIHtcbiAgICAgICAgdGhyb3cgbmV3IE5vdEltcGxlbWVudGVkRXJyb3IoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3BlbkVtcGxveWVlRWRpdG9yKGVtcGxveWVlSWQ6IHN0cmluZykge1xuICAgICAgICB0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFcnJvcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZW1vdmVJbnN0YW5jZShwYXRoOiBzdHJpbmcsIGluc3RhbmNlOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhyb3cgbmV3IE5vdEltcGxlbWVudGVkRXJyb3IoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVtb3ZlSW5zdGFuY2VzKHBhdGg6IHN0cmluZywgaW5zdGFuY2VzOiBzdHJpbmdbXSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFcnJvcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBmb2N1c09uQ29udHJvbElmRXhpc3QocGF0aDogQmluZGluZ1BhdGgpOiB2b2lkIHtcbiAgICAgICAgdGhyb3cgbmV3IE5vdEltcGxlbWVudGVkRXJyb3IoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0QXV0b0ZpZWxkc1RvQXV0b1ZhbHVlKHBhdGhQcmVmaXhlczogc3RyaW5nW10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh1bmRlZmluZWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBlbnN1cmVJbnN0YW5jZUZ1bGx5TG9hZGVkKFxuICAgICAgICBiaW5kaW5nUGF0aDogc3RyaW5nIHwgQWJzb2x1dGVSZXNvbHZlZE1vZGVsUGF0aCxcbiAgICAgICAgLi4uaW5zdGFuY2VzOiBzdHJpbmdbXVxuICAgICk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNZXRob2Qgbm90IGltcGxlbWVudGVkLlwiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY3VzdG9tTm9ybWFsaXplKG5vcm1hbGl6ZXJJZDogc3RyaW5nLCBwYXRoUHJlZml4ZXM6IHN0cmluZ1tdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRocm93IG5ldyBOb3RJbXBsZW1lbnRlZEVycm9yKCk7XG4gICAgfVxuICAgIHB1YmxpYyByZW1vdmVJbnN0YW5jZXNCeVJ1bGVzKHJ1bGVzOiBJbnN0YW5jZXNEZWxldGluZ1J1bGVbXSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFcnJvcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjcmVhdGVEbnAoKTogUHJvbWlzZTxDb21iaW5lRnVmUmVzdWx0IHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIHRocm93IG5ldyBOb3RJbXBsZW1lbnRlZEVycm9yKCk7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTGVnYWN5UHVibGljRm9ybShmb3JtOiBJRm9ybSk6IElQdWJsaWNGb3JtIHtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgcmV0dXJuIG5ldyBMZWdhY3lQdWJsaWNGb3JtKGZvcm0gYXMgSUxlZ2FjeUZvcm0pO1xufVxuIiwiLy8gdHNsaW50OmRpc2FibGUgbm8tdW5zYWZlLWFueVxuZXhwb3J0IGNsYXNzIExvYWRJbnRvRG9jdW1lbnQge1xuICAgIHB1YmxpYyBzdGF0aWMgc2NyaXB0KHVyaTogc3RyaW5nLCBjYWxsYmFjazogKGVycm9yPzogRXJyb3IpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgbGV0IHNjcmlwdExvYWRlZCA9IGZhbHNlO1xuICAgICAgICBjb25zdCBoZWFkID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJoZWFkXCIpWzBdIHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgICAgY29uc3Qgc2NyaXB0OiBhbnkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic2NyaXB0XCIpO1xuXG4gICAgICAgIGZ1bmN0aW9uIGxvYWRIYW5kbGVyKCk6IHZvaWQge1xuICAgICAgICAgICAgaWYgKHNjcmlwdExvYWRlZCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFzY3JpcHQucmVhZHlTdGF0ZSB8fCBzY3JpcHQucmVhZHlTdGF0ZSA9PT0gXCJsb2FkZWRcIiB8fCBzY3JpcHQucmVhZHlTdGF0ZSA9PT0gXCJjb21wbGV0ZVwiKSB7XG4gICAgICAgICAgICAgICAgc2NyaXB0TG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBjYWxsYmFjaygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gSGFuZyB0aGUgdXNlciBjYWxsYmFjayB0byBiZSBjYWxsZWQgd2hlbiB0aGUgc2NyaXB0IGNvbXBsZXRlcyB0byBsb2FkLlxuICAgICAgICAvLyBOT1RFKHVzZXIpOiBUaGlzIGNhbGxiYWNrIHdpbGwgYmUgY2FsbGVkIGluIElFIGV2ZW4gdXBvbiBlcnJvci4gSW4gYW55XG4gICAgICAgIC8vIGNhc2UgaXQgaXMgdGhlIGNsaWVudCdzIHJlc3BvbnNpYmlsaXR5IHRvIHZlcmlmeSB0aGF0IHRoZSBzY3JpcHQgcmFuXG4gICAgICAgIC8vIHN1Y2Nlc3NmdWxseS5cbiAgICAgICAgc2NyaXB0Lm9ubG9hZCA9IGxvYWRIYW5kbGVyO1xuICAgICAgICBzY3JpcHQub25yZWFkeXN0YXRlY2hhbmdlID0gbG9hZEhhbmRsZXI7XG5cbiAgICAgICAgLy8gQWRkIGFuIGVycm9yIGNhbGxiYWNrLlxuICAgICAgICAvLyBOT1RFKHVzZXIpOiBOb3Qgc3VwcG9ydGVkIGluIElFLlxuICAgICAgICBzY3JpcHQub25lcnJvciA9ICgpID0+IHtcbiAgICAgICAgICAgIGlmIChzY3JpcHQucGFyZW50Tm9kZSkge1xuICAgICAgICAgICAgICAgIHNjcmlwdC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHNjcmlwdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYWxsYmFjayhuZXcgRXJyb3IoXCJFcnJvciB3aGlsZSBsb2FkaW5nIHNjcmlwdC5cIikpO1xuICAgICAgICB9O1xuXG4gICAgICAgIC8vIEFkZCB0aGUgc2NyaXB0IGVsZW1lbnQgdG8gdGhlIGRvY3VtZW50LlxuICAgICAgICAvLyBOT1RFKHVzZXIpOiBTYWZhcmkgbmV2ZXIgbG9hZHMgdGhlIHNjcmlwdCBpZiB3ZSBkb24ndCBzZXRcbiAgICAgICAgLy8gdGhlIHNyYyBhdHRyaWJ1dGUgYmVmb3JlIGFwcGVuZGluZy5cbiAgICAgICAgc2NyaXB0LnNyYyA9IHVyaTtcbiAgICAgICAgc2NyaXB0LnNldEF0dHJpYnV0ZShcImNyb3Nzb3JpZ2luXCIsIFwidXNlLWNyZWRlbnRpYWxzXCIpO1xuICAgICAgICBoZWFkLmFwcGVuZENoaWxkKHNjcmlwdCk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBzdHlsZVNoZWV0KHVyaTogc3RyaW5nLCBpZ25vcmVFcnJvcjogYm9vbGVhbiwgY2FsbGJhY2s6IChlcnJvcj86IEVycm9yKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHJlc29sdmUgPSAoKSA9PiBjYWxsYmFjayh1bmRlZmluZWQpO1xuICAgICAgICBjb25zdCByZWplY3QgPSAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoaWdub3JlRXJyb3IpIHtcbiAgICAgICAgICAgICAgICBjYWxsYmFjayh1bmRlZmluZWQpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjYWxsYmFjayhuZXcgRXJyb3IoXCJFcnJvciB3aGlsZSBsb2FkaW5nIHN0eWxlc2hlZXQuXCIpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBoZWFkID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJoZWFkXCIpWzBdID8/IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcbiAgICAgICAgY29uc3QgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJsaW5rXCIpO1xuXG4gICAgICAgIGxpbmsuc2V0QXR0cmlidXRlKFwicmVsXCIsIFwic3R5bGVzaGVldFwiKTtcbiAgICAgICAgbGluay5zZXRBdHRyaWJ1dGUoXCJ0eXBlXCIsIFwidGV4dC9jc3NcIik7XG4gICAgICAgIGxpbmsuYWRkRXZlbnRMaXN0ZW5lcihcImxvYWRcIiwgcmVzb2x2ZSk7XG4gICAgICAgIGxpbmsuYWRkRXZlbnRMaXN0ZW5lcihcImVycm9yXCIsIHJlamVjdCk7XG4gICAgICAgIGhlYWQuYXBwZW5kQ2hpbGQobGluayk7XG4gICAgICAgIGxpbmsuc2V0QXR0cmlidXRlKFwiaHJlZlwiLCB1cmkpO1xuICAgIH1cbn1cbiIsIi8vIFRoZSBtb2R1bGUgY2FjaGVcbnZhciBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX18gPSB7fTtcblxuLy8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbmZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG5cdHZhciBjYWNoZWRNb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdO1xuXHRpZiAoY2FjaGVkTW9kdWxlICE9PSB1bmRlZmluZWQpIHtcblx0XHRyZXR1cm4gY2FjaGVkTW9kdWxlLmV4cG9ydHM7XG5cdH1cblx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcblx0dmFyIG1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF0gPSB7XG5cdFx0aWQ6IG1vZHVsZUlkLFxuXHRcdGxvYWRlZDogZmFsc2UsXG5cdFx0ZXhwb3J0czoge31cblx0fTtcblxuXHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cblx0X193ZWJwYWNrX21vZHVsZXNfX1ttb2R1bGVJZF0obW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cblx0Ly8gRmxhZyB0aGUgbW9kdWxlIGFzIGxvYWRlZFxuXHRtb2R1bGUubG9hZGVkID0gdHJ1ZTtcblxuXHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuXHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG59XG5cbiIsIi8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb25zIGZvciBoYXJtb255IGV4cG9ydHNcbl9fd2VicGFja19yZXF1aXJlX18uZCA9IGZ1bmN0aW9uKGV4cG9ydHMsIGRlZmluaXRpb24pIHtcblx0Zm9yKHZhciBrZXkgaW4gZGVmaW5pdGlvbikge1xuXHRcdGlmKF9fd2VicGFja19yZXF1aXJlX18ubyhkZWZpbml0aW9uLCBrZXkpICYmICFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywga2V5KSkge1xuXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIGtleSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGRlZmluaXRpb25ba2V5XSB9KTtcblx0XHR9XG5cdH1cbn07IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5nID0gKGZ1bmN0aW9uKCkge1xuXHRpZiAodHlwZW9mIGdsb2JhbFRoaXMgPT09ICdvYmplY3QnKSByZXR1cm4gZ2xvYmFsVGhpcztcblx0dHJ5IHtcblx0XHRyZXR1cm4gdGhpcyB8fCBuZXcgRnVuY3Rpb24oJ3JldHVybiB0aGlzJykoKTtcblx0fSBjYXRjaCAoZSkge1xuXHRcdGlmICh0eXBlb2Ygd2luZG93ID09PSAnb2JqZWN0JykgcmV0dXJuIHdpbmRvdztcblx0fVxufSkoKTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLmhtZCA9IGZ1bmN0aW9uKG1vZHVsZSkge1xuXHRtb2R1bGUgPSBPYmplY3QuY3JlYXRlKG1vZHVsZSk7XG5cdGlmICghbW9kdWxlLmNoaWxkcmVuKSBtb2R1bGUuY2hpbGRyZW4gPSBbXTtcblx0T2JqZWN0LmRlZmluZVByb3BlcnR5KG1vZHVsZSwgJ2V4cG9ydHMnLCB7XG5cdFx0ZW51bWVyYWJsZTogdHJ1ZSxcblx0XHRzZXQ6IGZ1bmN0aW9uKCkge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKCdFUyBNb2R1bGVzIG1heSBub3QgYXNzaWduIG1vZHVsZS5leHBvcnRzIG9yIGV4cG9ydHMuKiwgVXNlIEVTTSBleHBvcnQgc3ludGF4LCBpbnN0ZWFkOiAnICsgbW9kdWxlLmlkKTtcblx0XHR9XG5cdH0pO1xuXHRyZXR1cm4gbW9kdWxlO1xufTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSBmdW5jdGlvbihvYmosIHByb3ApIHsgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIHByb3ApOyB9IiwiLy8gc3RhcnR1cFxuLy8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzXG4vLyBUaGlzIGVudHJ5IG1vZHVsZSBpcyByZWZlcmVuY2VkIGJ5IG90aGVyIG1vZHVsZXMgc28gaXQgY2FuJ3QgYmUgaW5saW5lZFxudmFyIF9fd2VicGFja19leHBvcnRzX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEzMyk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O2VBTUNBLENBQUEsRUFKb0NDLENBQUE7UUFBOUIsU0FBU0MsRUFBc0JDLENBQUE7VUFHbEMsT0FBTyxTQUFQQyxNQUFBLENBQWdCRCxDQUFBLENBQVFFLEVBQUEsRUFBRSxZQUFBRCxNQUFBLENBQVdELENBQUEsQ0FBUUcsT0FBQSxFQUFPLHFCQUN4RDtRQUFBO1FBQUFDLENBQUEsQ0FBQUMsQ0FBQSxDQUFBQyxDQUFBO1VBQUFDLENBQUEsV0FBQUEsQ0FBQTtZQUFBLE9BQUFSLENBQUE7VUFBQTtRQUFBLElBQUFDLENBQUEsR0FBQUksQ0FBQSxDQUFBSSxHQUFBLENBQUFSLENBQUEsSUFBQVMsQ0FBQSx5QkFBQUMsb0JBQUEsR0FBQUEsb0JBQUEsQ0FBQUMsV0FBQSxjQUFBRixDQUFBLENBQUFULENBQUEseUJBQUFVLG9CQUFBLElBQUFBLG9CQUFBLENBQUFFLE9BQUEsQ0FBQUMsU0FBQSxHQUFDaEIsQ0FBQSx5QkFBQWEsb0JBQUEsR0FBQUEsb0JBQUEsQ0FBQUUsT0FBQSxjQUFBZixDQUFBLENBQUFpQixRQUFBLENBSmVmLENBQUEsRUFBcUIsd0pBQUFELENBQUEseUJBQUFZLG9CQUFBLEdBQUFBLG9CQUFBLENBQUFLLFdBQUEsY0FBQWpCLENBQUEsQ0FBQUUsQ0FBQTtNQUFBO01BQUEsZUFBQWdCLE1BQUEsRUFBQUMsbUJBQUEsRUFBQUMsbUJBQUE7UUFBQSxTQUFBQyxRQUFBbkIsQ0FBQTtVQUFBLE9BQUFtQixPQUFBLHdCQUFBQyxNQUFBLHVCQUFBQSxNQUFBLENBQUFDLFFBQUEsYUFBQXJCLENBQUE7WUFBQSxjQUFBQSxDQUFBO1VBQUEsY0FBQUEsQ0FBQTtZQUFBLE9BQUFBLENBQUEseUJBQUFvQixNQUFBLElBQUFwQixDQUFBLENBQUFzQixXQUFBLEtBQUFGLE1BQUEsSUFBQXBCLENBQUEsS0FBQW9CLE1BQUEsQ0FBQUcsU0FBQSxxQkFBQXZCLENBQUE7VUFBQSxHQUFBbUIsT0FBQSxDQUFBbkIsQ0FBQTtRQUFBO1FBQUEsSUFBQVcsV0FBQTtRQUFBLFNBQUFhLGdCQUFBeEIsQ0FBQSxFQUFBTSxDQUFBO1VBQUEsTUFBQU4sQ0FBQSxZQUFBTSxDQUFBLGFBQUFtQixTQUFBO1FBQUE7UUFBQSxTQUFBQyxrQkFBQTFCLENBQUEsRUFBQU0sQ0FBQTtVQUFBLFNBQUFGLENBQUEsTUFBQUEsQ0FBQSxHQUFBRSxDQUFBLENBQUFxQixNQUFBLEVBQUF2QixDQUFBO1lBQUEsSUFBQUssQ0FBQSxHQUFBSCxDQUFBLENBQUFGLENBQUE7WUFBQUssQ0FBQSxDQUFBbUIsVUFBQSxHQUFBbkIsQ0FBQSxDQUFBbUIsVUFBQSxRQUFBbkIsQ0FBQSxDQUFBb0IsWUFBQSxrQkFBQXBCLENBQUEsS0FBQUEsQ0FBQSxDQUFBcUIsUUFBQSxRQUFBQyxNQUFBLENBQUFDLGNBQUEsQ0FBQWhDLENBQUEsRUFBQWlDLGNBQUEsQ0FBQXhCLENBQUEsQ0FBQXlCLEdBQUEsR0FBQXpCLENBQUE7VUFBQTtRQUFBO1FBQUEsU0FBQTBCLGFBQUFuQyxDQUFBLEVBQUFNLENBQUEsRUFBQUYsQ0FBQTtVQUFBLE9BQUFFLENBQUEsSUFBQW9CLGlCQUFBLENBQUExQixDQUFBLENBQUF1QixTQUFBLEVBQUFqQixDQUFBLEdBQUFGLENBQUEsSUFBQXNCLGlCQUFBLENBQUExQixDQUFBLEVBQUFJLENBQUEsR0FBQTJCLE1BQUEsQ0FBQUMsY0FBQSxDQUFBaEMsQ0FBQTtZQUFBOEIsUUFBQTtVQUFBLElBQUE5QixDQUFBO1FBQUE7UUFBQSxTQUFBaUMsZUFBQWpDLENBQUE7VUFBQSxJQUFBTSxDQUFBLEdBQUE4QixZQUFBLENBQUFwQyxDQUFBO1VBQUEsb0JBQUFtQixPQUFBLENBQUFiLENBQUEsSUFBQUEsQ0FBQSxHQUFBK0IsTUFBQSxDQUFBL0IsQ0FBQTtRQUFBO1FBQUEsU0FBQThCLGFBQUFwQyxDQUFBLEVBQUFNLENBQUE7VUFBQSxpQkFBQWEsT0FBQSxDQUFBbkIsQ0FBQSxjQUFBQSxDQUFBLFNBQUFBLENBQUE7VUFBQSxJQUFBSSxDQUFBLEdBQUFKLENBQUEsQ0FBQW9CLE1BQUEsQ0FBQWtCLFdBQUE7VUFBQSxlQUFBbEMsQ0FBQTtZQUFBLElBQUFLLENBQUEsR0FBQUwsQ0FBQSxDQUFBbUMsSUFBQSxDQUFBdkMsQ0FBQSxFQUFBTSxDQUFBO1lBQUEsaUJBQUFhLE9BQUEsQ0FBQVYsQ0FBQSxVQUFBQSxDQUFBO1lBQUEsVUFBQWdCLFNBQUE7VUFBQTtVQUFBLHFCQUFBbkIsQ0FBQSxHQUFBK0IsTUFBQSxHQUFBRyxNQUFBLEVBQUF4QyxDQUFBO1FBQUE7UUFBQSxTQUFBeUMsVUFBQXpDLENBQUEsRUFBQU0sQ0FBQTtVQUFBLHlCQUFBQSxDQUFBLGFBQUFBLENBQUEsWUFBQW1CLFNBQUE7VUFBQXpCLENBQUEsQ0FBQXVCLFNBQUEsR0FBQVEsTUFBQSxDQUFBVyxNQUFBLENBQUFwQyxDQUFBLElBQUFBLENBQUEsQ0FBQWlCLFNBQUE7WUFBQUQsV0FBQTtjQUFBcUIsS0FBQSxFQUFBM0MsQ0FBQTtjQUFBOEIsUUFBQTtjQUFBRCxZQUFBO1lBQUE7VUFBQSxJQUFBRSxNQUFBLENBQUFDLGNBQUEsQ0FBQWhDLENBQUE7WUFBQThCLFFBQUE7VUFBQSxJQUFBeEIsQ0FBQSxJQUFBc0MsZUFBQSxDQUFBNUMsQ0FBQSxFQUFBTSxDQUFBO1FBQUE7UUFBQSxTQUFBdUMsYUFBQTdDLENBQUE7VUFBQSxJQUFBTSxDQUFBLEdBQUF3Qyx5QkFBQTtVQUFBO1lBQUEsSUFBQTFDLENBQUE7Y0FBQUssQ0FBQSxHQUFBc0MsZUFBQSxDQUFBL0MsQ0FBQTtZQUFBLElBQUFNLENBQUE7Y0FBQSxJQUFBVCxDQUFBLEdBQUFrRCxlQUFBLE9BQUF6QixXQUFBO2NBQUFsQixDQUFBLEdBQUE0QyxPQUFBLENBQUFDLFNBQUEsQ0FBQXhDLENBQUEsRUFBQXlDLFNBQUEsRUFBQXJELENBQUE7WUFBQSxPQUFBTyxDQUFBLEdBQUFLLENBQUEsQ0FBQTBDLEtBQUEsT0FBQUQsU0FBQTtZQUFBLE9BQUFFLDBCQUFBLE9BQUFoRCxDQUFBO1VBQUE7UUFBQTtRQUFBLFNBQUFnRCwyQkFBQXBELENBQUEsRUFBQU0sQ0FBQTtVQUFBLElBQUFBLENBQUEsa0JBQUFhLE9BQUEsQ0FBQWIsQ0FBQSwwQkFBQUEsQ0FBQSxVQUFBQSxDQUFBO1VBQUEsZUFBQUEsQ0FBQSxZQUFBbUIsU0FBQTtVQUFBLE9BQUE0QixzQkFBQSxDQUFBckQsQ0FBQTtRQUFBO1FBQUEsU0FBQXFELHVCQUFBckQsQ0FBQTtVQUFBLGVBQUFBLENBQUEsWUFBQXNELGNBQUE7VUFBQSxPQUFBdEQsQ0FBQTtRQUFBO1FBQUEsU0FBQXVELGlCQUFBdkQsQ0FBQTtVQUFBLElBQUFNLENBQUEsd0JBQUFrRCxHQUFBLE9BQUFBLEdBQUE7VUFBQSxPQUFBRCxnQkFBQSxZQUFBQSxDQUFBdkQsQ0FBQTtZQUFBLGFBQUFBLENBQUEsS0FBQXlELGlCQUFBLENBQUF6RCxDQUFBLFVBQUFBLENBQUE7WUFBQSx5QkFBQUEsQ0FBQSxZQUFBeUIsU0FBQTtZQUFBLGVBQUFuQixDQUFBO2NBQUEsSUFBQUEsQ0FBQSxDQUFBb0QsR0FBQSxDQUFBMUQsQ0FBQSxVQUFBTSxDQUFBLENBQUFxRCxHQUFBLENBQUEzRCxDQUFBO2NBQUFNLENBQUEsQ0FBQXNELEdBQUEsQ0FBQTVELENBQUEsRUFBQUksQ0FBQTtZQUFBO1lBQUEsU0FBQUEsRUFBQTtjQUFBLE9BQUF5RCxVQUFBLENBQUE3RCxDQUFBLEVBQUFrRCxTQUFBLEVBQUFILGVBQUEsT0FBQXpCLFdBQUE7WUFBQTtZQUFBLE9BQUFsQixDQUFBLENBQUFtQixTQUFBLEdBQUFRLE1BQUEsQ0FBQVcsTUFBQSxDQUFBMUMsQ0FBQSxDQUFBdUIsU0FBQTtjQUFBRCxXQUFBO2dCQUFBcUIsS0FBQSxFQUFBdkMsQ0FBQTtnQkFBQXdCLFVBQUE7Z0JBQUFFLFFBQUE7Z0JBQUFELFlBQUE7Y0FBQTtZQUFBLElBQUFlLGVBQUEsQ0FBQXhDLENBQUEsRUFBQUosQ0FBQTtVQUFBLEdBQUF1RCxnQkFBQSxDQUFBdkQsQ0FBQTtRQUFBO1FBQUEsU0FBQTZELFdBQUE3RCxDQUFBLEVBQUFNLENBQUEsRUFBQUYsQ0FBQTtVQUFBLE9BQUF5RCxVQUFBLEdBQUFmLHlCQUFBLEtBQUFFLE9BQUEsQ0FBQUMsU0FBQSxDQUFBYSxJQUFBLGVBQUE5RCxDQUFBLEVBQUFNLENBQUEsRUFBQUYsQ0FBQTtZQUFBLElBQUFLLENBQUE7WUFBQUEsQ0FBQSxDQUFBc0QsSUFBQSxDQUFBWixLQUFBLENBQUExQyxDQUFBLEVBQUFILENBQUE7WUFBQSxJQUFBVCxDQUFBLFFBQUFtRSxRQUFBLENBQUFGLElBQUEsQ0FBQVgsS0FBQSxDQUFBbkQsQ0FBQSxFQUFBUyxDQUFBO1lBQUEsT0FBQUwsQ0FBQSxJQUFBd0MsZUFBQSxDQUFBL0MsQ0FBQSxFQUFBTyxDQUFBLENBQUFtQixTQUFBLEdBQUExQixDQUFBO1VBQUEsR0FBQWdFLFVBQUEsQ0FBQVYsS0FBQSxPQUFBRCxTQUFBO1FBQUE7UUFBQSxTQUFBSiwwQkFBQTtVQUFBLDBCQUFBRSxPQUFBLEtBQUFBLE9BQUEsQ0FBQUMsU0FBQTtVQUFBLElBQUFELE9BQUEsQ0FBQUMsU0FBQSxDQUFBZ0IsSUFBQTtVQUFBLHlCQUFBQyxLQUFBO1VBQUE7WUFBQSxPQUFBQyxPQUFBLENBQUE1QyxTQUFBLENBQUE2QyxPQUFBLENBQUE3QixJQUFBLENBQUFTLE9BQUEsQ0FBQUMsU0FBQSxDQUFBa0IsT0FBQTtVQUFBLFNBQUFuRSxDQUFBO1lBQUE7VUFBQTtRQUFBO1FBQUEsU0FBQXlELGtCQUFBekQsQ0FBQTtVQUFBLGNBQUFnRSxRQUFBLENBQUFLLFFBQUEsQ0FBQTlCLElBQUEsQ0FBQXZDLENBQUEsRUFBQXNFLE9BQUE7UUFBQTtRQUFBLFNBQUExQixnQkFBQTVDLENBQUEsRUFBQU0sQ0FBQTtVQUFBLE9BQUFzQyxlQUFBLEdBQUFiLE1BQUEsQ0FBQXdDLGNBQUEsR0FBQXhDLE1BQUEsQ0FBQXdDLGNBQUEsQ0FBQVQsSUFBQSxlQUFBOUQsQ0FBQSxFQUFBTSxDQUFBO1lBQUEsT0FBQU4sQ0FBQSxDQUFBd0UsU0FBQSxHQUFBbEUsQ0FBQSxFQUFBTixDQUFBO1VBQUEsR0FBQTRDLGVBQUEsQ0FBQTVDLENBQUEsRUFBQU0sQ0FBQTtRQUFBO1FBQUEsU0FBQXlDLGdCQUFBL0MsQ0FBQTtVQUFBLE9BQUErQyxlQUFBLEdBQUFoQixNQUFBLENBQUF3QyxjQUFBLEdBQUF4QyxNQUFBLENBQUEwQyxjQUFBLENBQUFYLElBQUEsZUFBQTlELENBQUE7WUFBQSxPQUFBQSxDQUFBLENBQUF3RSxTQUFBLElBQUF6QyxNQUFBLENBQUEwQyxjQUFBLENBQUF6RSxDQUFBO1VBQUEsR0FBQStDLGVBQUEsQ0FBQS9DLENBQUE7UUFBQTtRQUFBa0IsbUJBQUEsQ0FBQWIsQ0FBQSxDQUFBWSxtQkFBQTtVQUFBeUQsRUFBQSxXQUFBQSxDQUFBO1lBQUEsT0FBQUMsbUJBQUE7VUFBQTtRQUFBLElBQUEzRCxNQUFBLEdBQUFFLG1CQUFBLENBQUFWLEdBQUEsQ0FBQVEsTUFBQSxHQUFBTCxXQUFBLHlCQUFBRCxvQkFBQSxHQUFBQSxvQkFBQSxDQUFBQyxXQUFBLFdBQUFBLFdBQUEsSUFBQUEsV0FBQSxDQUFBSyxNQUFBO1FBQUEsSUFBQTRELGFBQUEseUJBQUFsRSxvQkFBQSxHQUFBQSxvQkFBQSxDQUFBRSxPQUFBLENBQUFDLFNBQUEsYUFBQWIsQ0FBQTtZQUFBLE9BQUFBLENBQUE7VUFBQTtVQ0Z4QjZFLGdCQUFBLEdBQWdCLFVBQUFDLE1BQUE7WUFBQXJDLFNBQUEsQ0FBQW9DLGdCQUFBLEVBQUFDLE1BQUE7WUFBQSxJQUFBQyxNQUFBLEdBQUFsQyxZQUFBLENBQUFnQyxnQkFBQTtZQUN6QixTQUFBQSxpQkFBbUI3RSxDQUFBO2NBQWlCLElBQUFNLENBQUE7Y0FFRSxPQUZGa0IsZUFBQSxPQUFBcUQsZ0JBQUEsSUFDaEN2RSxDQUFBLEdBQUF5RSxNQUFBLENBQUF4QyxJQUFBLE9BQU12QyxDQUFBLEdBQ0RnRixJQUFBLEdBQU8xRSxDQUFBLENBQUtnQixXQUFBLENBQVkwRCxJQUFBLEVBQUsxRSxDQUN0QztZQUFBO1lBQUMsT0FBQTZCLFlBQUEsQ0FBQTBDLGdCQUFBO2NBQUEzQyxHQUFBO2NBQUFTLEtBQUEsV0FBQXNDLGlDQUFBL0MsR0FBQSxFQUFBZ0QsSUFBQTtnQkFBQSxLQUFBaEQsR0FBQSxJQUFBaUQsSUFBQSxDQUFBRCxJQUFBO2NBQUE7WUFBQSxLQUFBTCxnQkFBQTtVQUFBLENBSndCLENBSXhCdEIsZ0JBQUEsQ0FKaUM2QixLQUFBO1VBT3pCVCxtQkFBQSxHQUFtQixVQUFBVSxpQkFBQTtZQUFBNUMsU0FBQSxDQUFBa0MsbUJBQUEsRUFBQVUsaUJBQUE7WUFBQSxJQUFBQyxPQUFBLEdBQUF6QyxZQUFBLENBQUE4QixtQkFBQTtZQUM1QixTQUFBQSxvQkFBQTtjQUFxQixPQUFBbkQsZUFBQSxPQUFBbUQsbUJBQUEsR0FBQVcsT0FBQSxDQUFBL0MsSUFBQSxPQUNYLDRCQUNWO1lBQUE7WUFBQyxPQUFBSixZQUFBLENBQUF3QyxtQkFBQTtjQUFBekMsR0FBQTtjQUFBUyxLQUFBLFdBQUFzQyxpQ0FBQS9DLEdBQUEsRUFBQWdELElBQUE7Z0JBQUEsS0FBQWhELEdBQUEsSUFBQWlELElBQUEsQ0FBQUQsSUFBQTtjQUFBO1lBQUEsS0FBQVAsbUJBQUE7VUFBQSxDQUgyQixDQUFTRSxnQkFBQTtVQU01QlUsaUJBQUEsR0FBaUIsVUFBQUMsa0JBQUE7WUFBQS9DLFNBQUEsQ0FBQThDLGlCQUFBLEVBQUFDLGtCQUFBO1lBQUEsSUFBQUMsT0FBQSxHQUFBNUMsWUFBQSxDQUFBMEMsaUJBQUE7WUFDMUIsU0FBQUEsa0JBQW1CdkYsQ0FBQTtjQUFrQixPQUFBd0IsZUFBQSxPQUFBK0QsaUJBQUEsR0FBQUUsT0FBQSxDQUFBbEQsSUFBQSxPQUMzQixRQUFBdkMsQ0FBQSxHQUFBQSxDQUFBLEdBQVcsMEJBQ3JCO1lBQUE7WUFBQyxPQUFBbUMsWUFBQSxDQUFBb0QsaUJBQUE7Y0FBQXJELEdBQUE7Y0FBQVMsS0FBQSxXQUFBc0MsaUNBQUEvQyxHQUFBLEVBQUFnRCxJQUFBO2dCQUFBLEtBQUFoRCxHQUFBLElBQUFpRCxJQUFBLENBQUFELElBQUE7Y0FBQTtZQUFBLEtBQUFLLGlCQUFBO1VBQUEsQ0FIeUIsQ0FBU1YsZ0JBQUE7VUFNMUJhLHdCQUFBLEdBQXdCLFVBQUFDLGtCQUFBO1lBQUFsRCxTQUFBLENBQUFpRCx3QkFBQSxFQUFBQyxrQkFBQTtZQUFBLElBQUFDLE9BQUEsR0FBQS9DLFlBQUEsQ0FBQTZDLHdCQUFBO1lBQ2pDLFNBQUFBLHlCQUFtQjFGLENBQUE7Y0FBa0IsT0FBQXdCLGVBQUEsT0FBQWtFLHdCQUFBLEdBQUFFLE9BQUEsQ0FBQXJELElBQUEsT0FDM0IsMkJBQXNDLFFBQVh2QyxDQUFBLEdBQXVCLE9BQU9BLENBQUEsR0FBVSxJQUM3RTtZQUFBO1lBQUMsT0FBQW1DLFlBQUEsQ0FBQXVELHdCQUFBO2NBQUF4RCxHQUFBO2NBQUFTLEtBQUEsV0FBQXNDLGlDQUFBL0MsR0FBQSxFQUFBZ0QsSUFBQTtnQkFBQSxLQUFBaEQsR0FBQSxJQUFBaUQsSUFBQSxDQUFBRCxJQUFBO2NBQUE7WUFBQSxLQUFBUSx3QkFBQTtVQUFBLENBSGdDLENBQVNiLGdCQUFBO1VBTWpDZ0Isb0JBQUEsR0FBb0IsVUFBQUMsa0JBQUE7WUFBQXJELFNBQUEsQ0FBQW9ELG9CQUFBLEVBQUFDLGtCQUFBO1lBQUEsSUFBQUMsT0FBQSxHQUFBbEQsWUFBQSxDQUFBZ0Qsb0JBQUE7WUFDN0IsU0FBQUEscUJBQW1CN0YsQ0FBQSxFQUFzQk0sQ0FBQTtjQUFrQixPQUFBa0IsZUFBQSxPQUFBcUUsb0JBQUEsR0FBQUUsT0FBQSxDQUFBeEQsSUFBQSxPQUV4QyxRQUFYakMsQ0FBQSxHQUF1QixHQUFITCxNQUFBLENBQU1LLENBQUEsRUFBTyxnQkFBQUwsTUFBQSxDQUFlRCxDQUFBLEVBQVksa0NBQUFDLE1BQUEsQ0FBaUNELENBQUEsRUFFckc7WUFBQTtZQUFDLE9BQUFtQyxZQUFBLENBQUEwRCxvQkFBQTtjQUFBM0QsR0FBQTtjQUFBUyxLQUFBLFdBQUFzQyxpQ0FBQS9DLEdBQUEsRUFBQWdELElBQUE7Z0JBQUEsS0FBQWhELEdBQUEsSUFBQWlELElBQUEsQ0FBQUQsSUFBQTtjQUFBO1lBQUEsS0FBQVcsb0JBQUE7VUFBQSxDQUw0QixDQUFTaEIsZ0JBQUE7VUFRN0JtQixXQUFBLEdBQVcsVUFBQUMsa0JBQUE7WUFBQXhELFNBQUEsQ0FBQXVELFdBQUEsRUFBQUMsa0JBQUE7WUFBQSxJQUFBQyxPQUFBLEdBQUFyRCxZQUFBLENBQUFtRCxXQUFBO1lBQ3BCLFNBQUFBLFlBQUE7Y0FBcUIsT0FBQXhFLGVBQUEsT0FBQXdFLFdBQUEsR0FBQUUsT0FBQSxDQUFBM0QsSUFBQSxPQUNYLGlCQUNWO1lBQUE7WUFBQyxPQUFBSixZQUFBLENBQUE2RCxXQUFBO2NBQUE5RCxHQUFBO2NBQUFTLEtBQUEsV0FBQXNDLGlDQUFBL0MsR0FBQSxFQUFBZ0QsSUFBQTtnQkFBQSxLQUFBaEQsR0FBQSxJQUFBaUQsSUFBQSxDQUFBRCxJQUFBO2NBQUE7WUFBQSxLQUFBYyxXQUFBO1VBQUEsQ0FIbUIsQ0FBU25CLGdCQUFBO1VBSWhDc0IsY0FBQTtVQUp1QnBGLFdBQUE7UUFJdkJvRixjQUFBLHlCQUFBekYsb0JBQUEsR0FBQUEsb0JBQUEsQ0FBQUUsT0FBQSxXQUFBdUYsY0FBQSxLQUFBQSxjQUFBLENBQUFyRixRQUFBLENBckNZK0QsZ0JBQUEsRUFBZ0Isa0dBQUFzQixjQUFBLENBQUFyRixRQUFBLENBT2hCNkQsbUJBQUEsRUFBbUIscUdBQUF3QixjQUFBLENBQUFyRixRQUFBLENBTW5CeUUsaUJBQUEsRUFBaUIsbUdBQUFZLGNBQUEsQ0FBQXJGLFFBQUEsQ0FNakI0RSx3QkFBQSxFQUF3QiwwR0FBQVMsY0FBQSxDQUFBckYsUUFBQSxDQU14QitFLG9CQUFBLEVBQW9CLHNHQUFBTSxjQUFBLENBQUFyRixRQUFBLENBUXBCa0YsV0FBQSxFQUFXLDhGQUFBakYsV0FBQSx5QkFBQUwsb0JBQUEsR0FBQUEsb0JBQUEsQ0FBQUssV0FBQSxXQUFBQSxXQUFBLElBQUFBLFdBQUEsQ0FBQUMsTUFBQTtNQUFBO01BQUEsZUFBQWhCLENBQUEsRUFBQU0sQ0FBQSxFQUFBRixDQUFBO1FBQUEsSUFBQUssQ0FBQSxFQ2lHdkJaLENBQUEsRUFGdUJDLENBQUE7UUFBQSxTQUFBQyxFQUFBQyxDQUFBO1VBQUEsT0FBQUQsQ0FBQSx3QkFBQXFCLE1BQUEsdUJBQUFBLE1BQUEsQ0FBQUMsUUFBQSxhQUFBckIsQ0FBQTtZQUFBLGNBQUFBLENBQUE7VUFBQSxjQUFBQSxDQUFBO1lBQUEsT0FBQUEsQ0FBQSx5QkFBQW9CLE1BQUEsSUFBQXBCLENBQUEsQ0FBQXNCLFdBQUEsS0FBQUYsTUFBQSxJQUFBcEIsQ0FBQSxLQUFBb0IsTUFBQSxDQUFBRyxTQUFBLHFCQUFBdkIsQ0FBQTtVQUFBLEdBQUFELENBQUEsQ0FBQUMsQ0FBQTtRQUFBO1FBNUhqQixTQUFTb0csRUFBd0JwRyxDQUFBO1VBQ3BDLE9BQWdCLFFBQVRBLENBQ1g7UUFBQTtRQW1CTyxTQUFTcUcsRUFBT3JHLENBQUE7VUFDbkIsTUFBdUIsbUJBQVpBLENBQUEsSUFBbUMsUUFBWEEsQ0FBQSxHQUN6QixJQUFJb0YsS0FBQSxDQUFNLFFBQUFwRixDQUFBLEdBQUFBLENBQUEsR0FBVyw4QkFFckJBLENBRWQ7UUFBQTtRQVlPLFNBQVNzRyxFQUNadEcsQ0FBQSxFQUNBTSxDQUFBO1VBRUEsT0FBT04sQ0FBQSxDQUFNMkIsTUFBQSxJQUFVckIsQ0FDM0I7UUFBQTtRQVlPLFNBQVNpRyxFQUNadkcsQ0FBQSxFQUNBTSxDQUFBO1VBRUEsT0FBT04sQ0FBQSxDQUFNMkIsTUFBQSxLQUFXckIsQ0FDNUI7UUFBQTtRQUVPLFNBQVNrRyxFQUFtQnhHLENBQUE7VUFDL0IsT0FBT0EsQ0FBQSxDQUFNMkIsTUFBQSxHQUFTLENBQzFCO1FBQUE7UUEyQ08sU0FBU3RCLEVBQWNMLENBQUE7VUFDMUIsT0FBZ0IsUUFBVEEsQ0FBQSxJQUFnQyxPQUFWQSxDQUNqQztRQUFBO1FBQUFJLENBQUEsQ0FBQUMsQ0FBQSxDQUFBQyxDQUFBO1VBQUFtRyxFQUFBLFdBQUFBLENBQUE7WUFBQSxPQUFBSixDQUFBO1VBQUE7UUFBQSxJQUFBckcsQ0FBQSxHQUFBSSxDQUFBLENBQUFJLEdBQUEsQ0FBQVIsQ0FBQSxJQUFBUyxDQUFBLHlCQUFBQyxvQkFBQSxHQUFBQSxvQkFBQSxDQUFBQyxXQUFBLGNBQUFGLENBQUEsQ0FBQVQsQ0FBQSx5QkFBQVUsb0JBQUEsSUFBQUEsb0JBQUEsQ0FBQUUsT0FBQSxDQUFBQyxTQUFBLEdBZ0JDaEIsQ0FBQSx5QkFBQWEsb0JBQUEsR0FBQUEsb0JBQUEsQ0FBQUUsT0FBQSxlQUFBZixDQUFBLENBQUFpQixRQUFBLENBOUhlc0YsQ0FBQSxFQUFvQiwyR0FBQXZHLENBQUEsQ0FBQWlCLFFBQUEsQ0FJN0IsVUFBK0JkLENBQUE7VUFFbEMsT0FBd0IsYUFBakJELENBQUEsQ0FBT0MsQ0FBQSxNQUFzQixRQUFBQSxDQUFBLFFBQUssSUFBTEEsQ0FBQSxDQUFpQjBHLE9BQUEsQ0FDekQ7UUFBQSxHQUhxQyw0R0FBQTdHLENBQUEsQ0FBQWlCLFFBQUEsQ0FLOUIsVUFBcUNkLENBQUE7VUFDeEMsS0FBS29HLENBQUEsQ0FBcUJwRyxDQUFBLEdBQ3RCLE1BQU0sSUFBSW9GLEtBQUEsQ0FBTSx3QkFFeEI7UUFBQSxHQUp3QywrR0FBQXZGLENBQUEsQ0FBQWlCLFFBQUEsQ0FNakMsYUFDSCxHQURnQiwyRkFBQWpCLENBQUEsQ0FBQWlCLFFBQUEsQ0FNSnVGLENBQUEsRUFBTSw2RkFBQXhHLENBQUEsQ0FBQWlCLFFBQUEsQ0FrQk53RixDQUFBLEVBQTBCLGlIQUFBekcsQ0FBQSxDQUFBaUIsUUFBQSxDQU9uQyxVQUNIZCxDQUFBLEVBQ0FNLENBQUE7VUFFQSxJQUFJZ0csQ0FBQSxDQUEyQnRHLENBQUEsRUFBT00sQ0FBQSxHQUNsQyxPQUFPTixDQUdmO1FBQUEsR0FSb0MsMkdBQUFILENBQUEsQ0FBQWlCLFFBQUEsQ0FVcEJ5RixDQUFBLEVBQWMscUdBQUExRyxDQUFBLENBQUFpQixRQUFBLENBT2QwRixDQUFBLEVBQWUsc0dBQUEzRyxDQUFBLENBQUFpQixRQUFBLENBSXhCLFVBQW1DZCxDQUFBO1VBQ3RDLE9BQU9BLENBQUEsQ0FBTTJCLE1BQUEsR0FBUyxDQUMxQjtRQUFBLEdBRnNDLDZHQUFBOUIsQ0FBQSxDQUFBaUIsUUFBQSxDQUkvQixVQUFrQ2QsQ0FBQTtVQUNyQyxLQUFLd0csQ0FBQSxDQUFnQnhHLENBQUEsR0FDakIsTUFBTSxJQUFJb0YsS0FBQSxDQUFNLDBCQUV4QjtRQUFBLEdBSnFDLDRHQUFBdkYsQ0FBQSxDQUFBaUIsUUFBQSxDQU05QixVQUNIZCxDQUFBLEVBQ0FNLENBQUE7VUFFQSxLQUFLaUcsQ0FBQSxDQUFldkcsQ0FBQSxFQUFPTSxDQUFBLEdBQ3ZCLE1BQU0sSUFBSThFLEtBQUEsQ0FBTSwyQkFBRG5GLE1BQUEsQ0FBNEJLLENBQUEsRUFFbkQ7UUFBQSxHQVBvQywyR0FBQVQsQ0FBQSxDQUFBaUIsUUFBQSxDQVM3QixVQUNIZCxDQUFBLEVBQ0FNLENBQUE7VUFFQSxLQUFLZ0csQ0FBQSxDQUEyQnRHLENBQUEsRUFBT00sQ0FBQSxHQUNuQyxNQUFNLElBQUk4RSxLQUFBLENBQU0sa0NBQURuRixNQUFBLENBQW1DSyxDQUFBLEVBRTFEO1FBQUEsR0FQbUQsMEhBQUFULENBQUEsQ0FBQWlCLFFBQUEsQ0FTNUMsVUFBcUJkLENBQUEsR0FDeEIsR0FEdUIsa0dBQUFILENBQUEsQ0FBQWlCLFFBQUEsQ0FJcEIsVUFBNEJkLENBQUE7VUFDL0IsT0FBTyxHQUFQQyxNQUFBLENBQVVELENBQUEsQ0FDZDtRQUFBLEdBRmtDLHlHQUFBSCxDQUFBLENBQUFpQixRQUFBLENBSTNCLFVBQXdCZCxDQUFBO1VBRTNCQSxDQUFBLEVBQ0o7UUFBQSxHQUg4QixxR0FBQUgsQ0FBQSxDQUFBaUIsUUFBQSxDQUtkVCxDQUFBLEVBQWEsb0dBQUFSLENBQUEsQ0FBQWlCLFFBQUEsQ0FJdEIsVUFBMEJkLENBQUE7VUFDN0IsUUFBUUssQ0FBQSxDQUFjTCxDQUFBLENBQzFCO1FBQUEsR0FGZ0MsdUdBQUFILENBQUEsQ0FBQWlCLFFBQUEsQ0FJekIsVUFBNEJkLENBQUE7VUFDL0IsT0FBZ0IsUUFBVEEsQ0FBQSxJQUF1QyxPQUFqQkEsQ0FBQSxDQUFNMkcsSUFBQSxFQUN2QztRQUFBLEdBRmtDLHlHQUFBOUcsQ0FBQSxDQUFBaUIsUUFBQSxDQUkzQixVQUF1QmQsQ0FBQTtVQUMxQixPQUF5QixRQUFsQkEsQ0FBQSxDQUFJNEcsS0FBQSxFQUFPLEtBQWE1RyxDQUFBLENBQUk0RyxLQUFBLENBQU0sSUFBSSxLQUFLNUcsQ0FDdEQ7UUFBQSxHQUY2QixvR0FBQUgsQ0FBQSxDQUFBaUIsUUFBQSxDQUl0QixVQUFxQmQsQ0FBQSxHQUN4QixHQURvQixpR0FBQUYsQ0FBQSx5QkFBQVksb0JBQUEsR0FBQUEsb0JBQUEsQ0FBQUssV0FBQSxjQUFBakIsQ0FBQSxDQUFBRSxDQUFBO01BQUE7TUFBQSxlQUFBQSxDQUFBLEVBQUFNLENBQUEsRUFBQUYsQ0FBQTtRQ2hJeEIsSUFBSUssQ0FBQSxHQUNxQixzQkFBZm9HLFVBQUEsSUFBOEJBLFVBQUEsSUFDckIsc0JBQVRDLElBQUEsSUFBd0JBLElBQUEsU0FDYixNQUFYckcsQ0FBQSxJQUEwQkEsQ0FBQTtVQUVoQ1osQ0FBQSxHQUFVO1lBQ1prSCxZQUFBLEVBQWMscUJBQXFCdEcsQ0FBQTtZQUNuQ3VHLFFBQUEsRUFBVSxZQUFZdkcsQ0FBQSxJQUFVLGNBQWNXLE1BQUE7WUFDOUM2RixJQUFBLEVBQ0UsZ0JBQWdCeEcsQ0FBQSxJQUNoQixVQUFVQSxDQUFBLElBQ1Y7Y0FDRTtnQkFFRSxPQURBLElBQUl5RyxJQUFBLEtBQ0csQ0FDVDtjQUFBLENBQUUsUUFBT2xILENBQUE7Z0JBQ1AsUUFBTyxDQUNUO2NBQUE7WUFDRCxDQVBEO1lBUUZtSCxRQUFBLEVBQVUsY0FBYzFHLENBQUE7WUFDeEIyRyxXQUFBLEVBQWEsaUJBQWlCM0c7VUFBQTtRQU9oQyxJQUFJWixDQUFBLENBQVF1SCxXQUFBLEVBQ1YsSUFBSXRILENBQUEsR0FBYyxDQUNoQixzQkFDQSx1QkFDQSw4QkFDQSx1QkFDQSx3QkFDQSx1QkFDQSx3QkFDQSx5QkFDQTtVQUdFQyxDQUFBLEdBQ0ZzSCxXQUFBLENBQVlDLE1BQUEsSUFDWixVQUFTdEgsQ0FBQTtZQUNQLE9BQU9BLENBQUEsSUFBT0YsQ0FBQSxDQUFZd0UsT0FBQSxDQUFRdkMsTUFBQSxDQUFPUixTQUFBLENBQVU4QyxRQUFBLENBQVM5QixJQUFBLENBQUt2QyxDQUFBLE1BQVMsQ0FDNUU7VUFBQTtRQUdKLFNBQVNvRyxFQUFjcEcsQ0FBQTtVQUlyQixJQUhvQixtQkFBVEEsQ0FBQSxLQUNUQSxDQUFBLEdBQU9xQyxNQUFBLENBQU9yQyxDQUFBLElBRVosNkJBQTZCdUgsSUFBQSxDQUFLdkgsQ0FBQSxLQUFrQixPQUFUQSxDQUFBLEVBQzdDLE1BQU0sSUFBSXlCLFNBQUEsQ0FBVSw4Q0FBOEN6QixDQUFBLEdBQU87VUFFM0UsT0FBT0EsQ0FBQSxDQUFLd0gsV0FBQSxFQUNkO1FBQUE7UUFFQSxTQUFTbkIsRUFBZXJHLENBQUE7VUFJdEIsT0FIcUIsbUJBQVZBLENBQUEsS0FDVEEsQ0FBQSxHQUFRcUMsTUFBQSxDQUFPckMsQ0FBQSxJQUVWQSxDQUNUO1FBQUE7UUFHQSxTQUFTc0csRUFBWXRHLENBQUE7VUFDbkIsSUFBSU0sQ0FBQSxHQUFXO1lBQ2JtSCxJQUFBLEVBQU0sU0FBQUEsQ0FBQTtjQUNKLElBQUluSCxDQUFBLEdBQVFOLENBQUEsQ0FBTTBILEtBQUE7Y0FDbEIsT0FBTztnQkFBQ0MsSUFBQSxPQUFnQixNQUFWckgsQ0FBQTtnQkFBcUJxQyxLQUFBLEVBQU9yQztjQUFBLENBQzVDO1lBQUE7VUFBQTtVQVNGLE9BTklULENBQUEsQ0FBUW1ILFFBQUEsS0FDVjFHLENBQUEsQ0FBU2MsTUFBQSxDQUFPQyxRQUFBLElBQVk7WUFDMUIsT0FBT2YsQ0FDVDtVQUFBLElBR0tBLENBQ1Q7UUFBQTtRQUVPLFNBQVNpRyxFQUFRdkcsQ0FBQTtVQUN0QixLQUFLNEgsR0FBQSxHQUFNLENBQUMsR0FFUjVILENBQUEsWUFBbUJ1RyxDQUFBLEdBQ3JCdkcsQ0FBQSxDQUFRNkgsT0FBQSxDQUFRLFVBQVM3SCxDQUFBLEVBQU9NLENBQUE7WUFDOUIsS0FBS3dILE1BQUEsQ0FBT3hILENBQUEsRUFBTU4sQ0FBQSxDQUNwQjtVQUFBLEdBQUcsUUFDTStILEtBQUEsQ0FBTUMsT0FBQSxDQUFRaEksQ0FBQSxJQUN2QkEsQ0FBQSxDQUFRNkgsT0FBQSxDQUFRLFVBQVM3SCxDQUFBO1lBQ3ZCLEtBQUs4SCxNQUFBLENBQU85SCxDQUFBLENBQU8sSUFBSUEsQ0FBQSxDQUFPLEdBQ2hDO1VBQUEsR0FBRyxRQUNNQSxDQUFBLElBQ1QrQixNQUFBLENBQU9rRyxtQkFBQSxDQUFvQmpJLENBQUEsRUFBUzZILE9BQUEsQ0FBUSxVQUFTdkgsQ0FBQTtZQUNuRCxLQUFLd0gsTUFBQSxDQUFPeEgsQ0FBQSxFQUFNTixDQUFBLENBQVFNLENBQUEsRUFDNUI7VUFBQSxHQUFHLEtBRVA7UUFBQTtRQThEQSxTQUFTa0csRUFBU3hHLENBQUE7VUFDaEIsSUFBSUEsQ0FBQSxDQUFLa0ksUUFBQSxFQUNQLE9BQU9DLE9BQUEsQ0FBUUMsTUFBQSxDQUFPLElBQUkzRyxTQUFBLENBQVU7VUFFdEN6QixDQUFBLENBQUtrSSxRQUFBLElBQVcsQ0FDbEI7UUFBQTtRQUVBLFNBQVM3SCxFQUFnQkwsQ0FBQTtVQUN2QixPQUFPLElBQUltSSxPQUFBLENBQVEsVUFBUzdILENBQUEsRUFBU0YsQ0FBQTtZQUNuQ0osQ0FBQSxDQUFPcUksTUFBQSxHQUFTO2NBQ2QvSCxDQUFBLENBQVFOLENBQUEsQ0FBT3NJLE1BQUEsQ0FDakI7WUFBQSxHQUNBdEksQ0FBQSxDQUFPdUksT0FBQSxHQUFVO2NBQ2ZuSSxDQUFBLENBQU9KLENBQUEsQ0FBT3dJLEtBQUEsQ0FDaEI7WUFBQSxDQUNGO1VBQUEsRUFDRjtRQUFBO1FBRUEsU0FBU0MsRUFBc0J6SSxDQUFBO1VBQzdCLElBQUlNLENBQUEsR0FBUyxJQUFJb0ksVUFBQTtZQUNidEksQ0FBQSxHQUFVQyxDQUFBLENBQWdCQyxDQUFBO1VBRTlCLE9BREFBLENBQUEsQ0FBT3FJLGlCQUFBLENBQWtCM0ksQ0FBQSxHQUNsQkksQ0FDVDtRQUFBO1FBbUJBLFNBQVN3SSxFQUFZNUksQ0FBQTtVQUNuQixJQUFJQSxDQUFBLENBQUk0RyxLQUFBLEVBQ04sT0FBTzVHLENBQUEsQ0FBSTRHLEtBQUEsQ0FBTTtVQUVqQixJQUFJdEcsQ0FBQSxHQUFPLElBQUl1SSxVQUFBLENBQVc3SSxDQUFBLENBQUk4SSxVQUFBO1VBRTlCLE9BREF4SSxDQUFBLENBQUtzRCxHQUFBLENBQUksSUFBSWlGLFVBQUEsQ0FBVzdJLENBQUEsSUFDakJNLENBQUEsQ0FBS3lJLE1BRWhCO1FBQUE7UUFFQSxTQUFTeEksRUFBQTtVQWtIUCxPQWpIQSxLQUFLMkgsUUFBQSxJQUFXLEdBRWhCLEtBQUtjLFNBQUEsR0FBWSxVQUFTaEosQ0FBQTtZQWhNNUIsSUFBb0JNLENBQUE7WUEyTWhCLEtBQUs0SCxRQUFBLEdBQVcsS0FBS0EsUUFBQSxFQUNyQixLQUFLZSxTQUFBLEdBQVlqSixDQUFBLEVBQ1pBLENBQUEsR0FFc0IsbUJBQVRBLENBQUEsR0FDaEIsS0FBS2tKLFNBQUEsR0FBWWxKLENBQUEsR0FDUkgsQ0FBQSxDQUFRb0gsSUFBQSxJQUFRQyxJQUFBLENBQUszRixTQUFBLENBQVU0SCxhQUFBLENBQWNuSixDQUFBLElBQ3RELEtBQUtvSixTQUFBLEdBQVlwSixDQUFBLEdBQ1JILENBQUEsQ0FBUXNILFFBQUEsSUFBWWtDLFFBQUEsQ0FBUzlILFNBQUEsQ0FBVTRILGFBQUEsQ0FBY25KLENBQUEsSUFDOUQsS0FBS3NKLGFBQUEsR0FBZ0J0SixDQUFBLEdBQ1pILENBQUEsQ0FBUWtILFlBQUEsSUFBZ0J3QyxlQUFBLENBQWdCaEksU0FBQSxDQUFVNEgsYUFBQSxDQUFjbkosQ0FBQSxJQUN6RSxLQUFLa0osU0FBQSxHQUFZbEosQ0FBQSxDQUFLcUUsUUFBQSxLQUNieEUsQ0FBQSxDQUFRdUgsV0FBQSxJQUFldkgsQ0FBQSxDQUFRb0gsSUFBQSxLQXZOMUIzRyxDQUFBLEdBdU42Q04sQ0FBQSxLQXROakR3SixRQUFBLENBQVNqSSxTQUFBLENBQVU0SCxhQUFBLENBQWM3SSxDQUFBLEtBdU4zQyxLQUFLbUosZ0JBQUEsR0FBbUJiLENBQUEsQ0FBWTVJLENBQUEsQ0FBSytJLE1BQUEsR0FFekMsS0FBS0UsU0FBQSxHQUFZLElBQUkvQixJQUFBLENBQUssQ0FBQyxLQUFLdUMsZ0JBQUEsTUFDdkI1SixDQUFBLENBQVF1SCxXQUFBLEtBQWdCQyxXQUFBLENBQVk5RixTQUFBLENBQVU0SCxhQUFBLENBQWNuSixDQUFBLEtBQVNELENBQUEsQ0FBa0JDLENBQUEsS0FDaEcsS0FBS3lKLGdCQUFBLEdBQW1CYixDQUFBLENBQVk1SSxDQUFBLElBRXBDLEtBQUtrSixTQUFBLEdBQVlsSixDQUFBLEdBQU8rQixNQUFBLENBQU9SLFNBQUEsQ0FBVThDLFFBQUEsQ0FBUzlCLElBQUEsQ0FBS3ZDLENBQUEsSUFoQnZELEtBQUtrSixTQUFBLEdBQVksSUFtQmQsS0FBS1EsT0FBQSxDQUFRL0YsR0FBQSxDQUFJLG9CQUNBLG1CQUFUM0QsQ0FBQSxHQUNULEtBQUswSixPQUFBLENBQVE5RixHQUFBLENBQUksZ0JBQWdCLDhCQUN4QixLQUFLd0YsU0FBQSxJQUFhLEtBQUtBLFNBQUEsQ0FBVU8sSUFBQSxHQUMxQyxLQUFLRCxPQUFBLENBQVE5RixHQUFBLENBQUksZ0JBQWdCLEtBQUt3RixTQUFBLENBQVVPLElBQUEsSUFDdkM5SixDQUFBLENBQVFrSCxZQUFBLElBQWdCd0MsZUFBQSxDQUFnQmhJLFNBQUEsQ0FBVTRILGFBQUEsQ0FBY25KLENBQUEsS0FDekUsS0FBSzBKLE9BQUEsQ0FBUTlGLEdBQUEsQ0FBSSxnQkFBZ0IsbURBR3ZDO1VBQUEsR0FFSS9ELENBQUEsQ0FBUW9ILElBQUEsS0FDVixLQUFLQSxJQUFBLEdBQU87WUFDVixJQUFJakgsQ0FBQSxHQUFXd0csQ0FBQSxDQUFTO1lBQ3hCLElBQUl4RyxDQUFBLEVBQ0YsT0FBT0EsQ0FBQTtZQUdULElBQUksS0FBS29KLFNBQUEsRUFDUCxPQUFPakIsT0FBQSxDQUFReUIsT0FBQSxDQUFRLEtBQUtSLFNBQUE7WUFDdkIsSUFBSSxLQUFLSyxnQkFBQSxFQUNkLE9BQU90QixPQUFBLENBQVF5QixPQUFBLENBQVEsSUFBSTFDLElBQUEsQ0FBSyxDQUFDLEtBQUt1QyxnQkFBQTtZQUNqQyxJQUFJLEtBQUtILGFBQUEsRUFDZCxNQUFNLElBQUlsRSxLQUFBLENBQU07WUFFaEIsT0FBTytDLE9BQUEsQ0FBUXlCLE9BQUEsQ0FBUSxJQUFJMUMsSUFBQSxDQUFLLENBQUMsS0FBS2dDLFNBQUEsR0FFMUM7VUFBQSxHQUVBLEtBQUs5QixXQUFBLEdBQWM7WUFDakIsT0FBSSxLQUFLcUMsZ0JBQUEsR0FDVWpELENBQUEsQ0FBUyxVQUl0QmEsV0FBQSxDQUFZQyxNQUFBLENBQU8sS0FBS21DLGdCQUFBLElBQ25CdEIsT0FBQSxDQUFReUIsT0FBQSxDQUNiLEtBQUtILGdCQUFBLENBQWlCVixNQUFBLENBQU9uQyxLQUFBLENBQzNCLEtBQUs2QyxnQkFBQSxDQUFpQkksVUFBQSxFQUN0QixLQUFLSixnQkFBQSxDQUFpQkksVUFBQSxHQUFhLEtBQUtKLGdCQUFBLENBQWlCWCxVQUFBLEtBSXREWCxPQUFBLENBQVF5QixPQUFBLENBQVEsS0FBS0gsZ0JBQUEsS0FHdkIsS0FBS3hDLElBQUEsR0FBTzZDLElBQUEsQ0FBS3JCLENBQUEsQ0FFNUI7VUFBQSxJQUdGLEtBQUtzQixJQUFBLEdBQU87WUFDVixJQW5Ib0IvSixDQUFBO2NBQ2xCTSxDQUFBO2NBQ0FGLENBQUE7Y0FpSEVLLENBQUEsR0FBVytGLENBQUEsQ0FBUztZQUN4QixJQUFJL0YsQ0FBQSxFQUNGLE9BQU9BLENBQUE7WUFHVCxJQUFJLEtBQUsySSxTQUFBLEVBQ1AsT0F6SGtCcEosQ0FBQSxHQXlISSxLQUFLb0osU0FBQSxFQXZIM0JoSixDQUFBLEdBQVVDLENBQUEsQ0FEVkMsQ0FBQSxHQUFTLElBQUlvSSxVQUFBLEtBRWpCcEksQ0FBQSxDQUFPMEosVUFBQSxDQUFXaEssQ0FBQSxHQUNYSSxDQUFBO1lBc0hFLElBQUksS0FBS3FKLGdCQUFBLEVBQ2QsT0FBT3RCLE9BQUEsQ0FBUXlCLE9BQUEsQ0FwSHJCLFVBQStCNUosQ0FBQTtjQUk3QixLQUhBLElBQUlNLENBQUEsR0FBTyxJQUFJdUksVUFBQSxDQUFXN0ksQ0FBQSxHQUN0QkksQ0FBQSxHQUFRLElBQUkySCxLQUFBLENBQU16SCxDQUFBLENBQUtxQixNQUFBLEdBRWxCbEIsQ0FBQSxHQUFJLEdBQUdBLENBQUEsR0FBSUgsQ0FBQSxDQUFLcUIsTUFBQSxFQUFRbEIsQ0FBQSxJQUMvQkwsQ0FBQSxDQUFNSyxDQUFBLElBQUs0QixNQUFBLENBQU80SCxZQUFBLENBQWEzSixDQUFBLENBQUtHLENBQUE7Y0FFdEMsT0FBT0wsQ0FBQSxDQUFNOEosSUFBQSxDQUFLLEdBQ3BCO1lBQUEsQ0E0RzZCLENBQXNCLEtBQUtULGdCQUFBO1lBQzdDLElBQUksS0FBS0gsYUFBQSxFQUNkLE1BQU0sSUFBSWxFLEtBQUEsQ0FBTTtZQUVoQixPQUFPK0MsT0FBQSxDQUFReUIsT0FBQSxDQUFRLEtBQUtWLFNBQUEsQ0FFaEM7VUFBQSxHQUVJckosQ0FBQSxDQUFRc0gsUUFBQSxLQUNWLEtBQUtBLFFBQUEsR0FBVztZQUNkLE9BQU8sS0FBSzRDLElBQUEsR0FBT0QsSUFBQSxDQUFLSyxDQUFBLENBQzFCO1VBQUEsSUFHRixLQUFLQyxJQUFBLEdBQU87WUFDVixPQUFPLEtBQUtMLElBQUEsR0FBT0QsSUFBQSxDQUFLTyxJQUFBLENBQUtDLEtBQUEsQ0FDL0I7VUFBQSxHQUVPLElBQ1Q7UUFBQTtRQW5PQS9ELENBQUEsQ0FBUWhGLFNBQUEsQ0FBVXVHLE1BQUEsR0FBUyxVQUFTOUgsQ0FBQSxFQUFNTSxDQUFBO1VBQ3hDTixDQUFBLEdBQU9vRyxDQUFBLENBQWNwRyxDQUFBLEdBQ3JCTSxDQUFBLEdBQVErRixDQUFBLENBQWUvRixDQUFBO1VBQ3ZCLElBQUlGLENBQUEsR0FBVyxLQUFLd0gsR0FBQSxDQUFJNUgsQ0FBQTtVQUN4QixLQUFLNEgsR0FBQSxDQUFJNUgsQ0FBQSxJQUFRSSxDQUFBLEdBQVdBLENBQUEsR0FBVyxPQUFPRSxDQUFBLEdBQVFBLENBQ3hEO1FBQUEsR0FFQWlHLENBQUEsQ0FBUWhGLFNBQUEsQ0FBa0JnSixNQUFBLEdBQUksVUFBU3ZLLENBQUE7VUFBQSxPQUM5QixLQUFLNEgsR0FBQSxDQUFJeEIsQ0FBQSxDQUFjcEcsQ0FBQSxFQUNoQztRQUFBLEdBRUF1RyxDQUFBLENBQVFoRixTQUFBLENBQVVvQyxHQUFBLEdBQU0sVUFBUzNELENBQUE7VUFFL0IsT0FEQUEsQ0FBQSxHQUFPb0csQ0FBQSxDQUFjcEcsQ0FBQSxHQUNkLEtBQUswRCxHQUFBLENBQUkxRCxDQUFBLElBQVEsS0FBSzRILEdBQUEsQ0FBSTVILENBQUEsSUFBUSxJQUMzQztRQUFBLEdBRUF1RyxDQUFBLENBQVFoRixTQUFBLENBQVVtQyxHQUFBLEdBQU0sVUFBUzFELENBQUE7VUFDL0IsT0FBTyxLQUFLNEgsR0FBQSxDQUFJNEMsY0FBQSxDQUFlcEUsQ0FBQSxDQUFjcEcsQ0FBQSxFQUMvQztRQUFBLEdBRUF1RyxDQUFBLENBQVFoRixTQUFBLENBQVVxQyxHQUFBLEdBQU0sVUFBUzVELENBQUEsRUFBTU0sQ0FBQTtVQUNyQyxLQUFLc0gsR0FBQSxDQUFJeEIsQ0FBQSxDQUFjcEcsQ0FBQSxLQUFTcUcsQ0FBQSxDQUFlL0YsQ0FBQSxDQUNqRDtRQUFBLEdBRUFpRyxDQUFBLENBQVFoRixTQUFBLENBQVVzRyxPQUFBLEdBQVUsVUFBUzdILENBQUEsRUFBVU0sQ0FBQTtVQUM3QyxLQUFLLElBQUlGLENBQUEsSUFBUSxLQUFLd0gsR0FBQSxFQUNoQixLQUFLQSxHQUFBLENBQUk0QyxjQUFBLENBQWVwSyxDQUFBLEtBQzFCSixDQUFBLENBQVN1QyxJQUFBLENBQUtqQyxDQUFBLEVBQVMsS0FBS3NILEdBQUEsQ0FBSXhILENBQUEsR0FBT0EsQ0FBQSxFQUFNLEtBR25EO1FBQUEsR0FFQW1HLENBQUEsQ0FBUWhGLFNBQUEsQ0FBVWtKLElBQUEsR0FBTztVQUN2QixJQUFJekssQ0FBQSxHQUFRO1VBSVosT0FIQSxLQUFLNkgsT0FBQSxDQUFRLFVBQVN2SCxDQUFBLEVBQU9GLENBQUE7WUFDM0JKLENBQUEsQ0FBTStELElBQUEsQ0FBSzNELENBQUEsQ0FDYjtVQUFBLElBQ09rRyxDQUFBLENBQVl0RyxDQUFBLENBQ3JCO1FBQUEsR0FFQXVHLENBQUEsQ0FBUWhGLFNBQUEsQ0FBVW1KLE1BQUEsR0FBUztVQUN6QixJQUFJMUssQ0FBQSxHQUFRO1VBSVosT0FIQSxLQUFLNkgsT0FBQSxDQUFRLFVBQVN2SCxDQUFBO1lBQ3BCTixDQUFBLENBQU0rRCxJQUFBLENBQUt6RCxDQUFBLENBQ2I7VUFBQSxJQUNPZ0csQ0FBQSxDQUFZdEcsQ0FBQSxDQUNyQjtRQUFBLEdBRUF1RyxDQUFBLENBQVFoRixTQUFBLENBQVVvSixPQUFBLEdBQVU7VUFDMUIsSUFBSTNLLENBQUEsR0FBUTtVQUlaLE9BSEEsS0FBSzZILE9BQUEsQ0FBUSxVQUFTdkgsQ0FBQSxFQUFPRixDQUFBO1lBQzNCSixDQUFBLENBQU0rRCxJQUFBLENBQUssQ0FBQzNELENBQUEsRUFBTUUsQ0FBQSxFQUNwQjtVQUFBLElBQ09nRyxDQUFBLENBQVl0RyxDQUFBLENBQ3JCO1FBQUEsR0FFSUgsQ0FBQSxDQUFRbUgsUUFBQSxLQUNWVCxDQUFBLENBQVFoRixTQUFBLENBQVVILE1BQUEsQ0FBT0MsUUFBQSxJQUFZa0YsQ0FBQSxDQUFRaEYsU0FBQSxDQUFVb0osT0FBQTtRQTZLekQsSUFBSUMsQ0FBQSxHQUFVLENBQUMsVUFBVSxPQUFPLFFBQVEsV0FBVyxRQUFRO1FBT3BELFNBQVNDLEVBQVE3SyxDQUFBLEVBQU9NLENBQUE7VUFDN0IsTUFBTSxnQkFBZ0J1SyxDQUFBLEdBQ3BCLE1BQU0sSUFBSXBKLFNBQUEsQ0FBVTtVQUl0QixJQVh1QnJCLENBQUE7WUFDbkJLLENBQUE7WUFVQVosQ0FBQSxJQURKUyxDQUFBLEdBQVVBLENBQUEsSUFBVyxDQUFDLEdBQ0h3SyxJQUFBO1VBRW5CLElBQUk5SyxDQUFBLFlBQWlCNkssQ0FBQSxFQUFTO1lBQzVCLElBQUk3SyxDQUFBLENBQU1rSSxRQUFBLEVBQ1IsTUFBTSxJQUFJekcsU0FBQSxDQUFVO1lBRXRCLEtBQUtzSixHQUFBLEdBQU0vSyxDQUFBLENBQU0rSyxHQUFBLEVBQ2pCLEtBQUtDLFdBQUEsR0FBY2hMLENBQUEsQ0FBTWdMLFdBQUEsRUFDcEIxSyxDQUFBLENBQVFvSixPQUFBLEtBQ1gsS0FBS0EsT0FBQSxHQUFVLElBQUluRCxDQUFBLENBQVF2RyxDQUFBLENBQU0wSixPQUFBLElBRW5DLEtBQUt1QixNQUFBLEdBQVNqTCxDQUFBLENBQU1pTCxNQUFBLEVBQ3BCLEtBQUtDLElBQUEsR0FBT2xMLENBQUEsQ0FBTWtMLElBQUEsRUFDbEIsS0FBS0MsTUFBQSxHQUFTbkwsQ0FBQSxDQUFNbUwsTUFBQSxFQUNmdEwsQ0FBQSxJQUEyQixRQUFuQkcsQ0FBQSxDQUFNaUosU0FBQSxLQUNqQnBKLENBQUEsR0FBT0csQ0FBQSxDQUFNaUosU0FBQSxFQUNiakosQ0FBQSxDQUFNa0ksUUFBQSxJQUFXLEVBRXJCO1VBQUEsT0FDRSxLQUFLNkMsR0FBQSxHQUFNMUksTUFBQSxDQUFPckMsQ0FBQTtVQVlwQixJQVRBLEtBQUtnTCxXQUFBLEdBQWMxSyxDQUFBLENBQVEwSyxXQUFBLElBQWUsS0FBS0EsV0FBQSxJQUFlLGdCQUMxRDFLLENBQUEsQ0FBUW9KLE9BQUEsSUFBWSxLQUFLQSxPQUFBLEtBQzNCLEtBQUtBLE9BQUEsR0FBVSxJQUFJbkQsQ0FBQSxDQUFRakcsQ0FBQSxDQUFRb0osT0FBQSxJQUVyQyxLQUFLdUIsTUFBQSxJQXBDRHhLLENBQUEsSUFEbUJMLENBQUEsR0FxQ09FLENBQUEsQ0FBUTJLLE1BQUEsSUFBVSxLQUFLQSxNQUFBLElBQVUsT0FwQzFDRyxXQUFBLElBQ2RSLENBQUEsQ0FBUXRHLE9BQUEsQ0FBUTdELENBQUEsS0FBWSxJQUFJQSxDQUFBLEdBQVVMLENBQUEsR0FvQ2pELEtBQUs4SyxJQUFBLEdBQU81SyxDQUFBLENBQVE0SyxJQUFBLElBQVEsS0FBS0EsSUFBQSxJQUFRLE1BQ3pDLEtBQUtDLE1BQUEsR0FBUzdLLENBQUEsQ0FBUTZLLE1BQUEsSUFBVSxLQUFLQSxNQUFBLEVBQ3JDLEtBQUtFLFFBQUEsR0FBVyxPQUVLLFVBQWhCLEtBQUtKLE1BQUEsSUFBb0MsV0FBaEIsS0FBS0EsTUFBQSxLQUFzQnBMLENBQUEsRUFDdkQsTUFBTSxJQUFJNEIsU0FBQSxDQUFVO1VBSXRCLElBRkEsS0FBS3VILFNBQUEsQ0FBVW5KLENBQUEsS0FFSyxVQUFoQixLQUFLb0wsTUFBQSxJQUFvQyxXQUFoQixLQUFLQSxNQUFBLElBQ1YsZUFBbEIzSyxDQUFBLENBQVFnTCxLQUFBLElBQTBDLGVBQWxCaEwsQ0FBQSxDQUFRZ0wsS0FBQSxHQUFzQjtZQUVoRSxJQUFJeEwsQ0FBQSxHQUFnQjtZQUNoQkEsQ0FBQSxDQUFjeUgsSUFBQSxDQUFLLEtBQUt3RCxHQUFBLElBRTFCLEtBQUtBLEdBQUEsR0FBTSxLQUFLQSxHQUFBLENBQUlRLE9BQUEsQ0FBUXpMLENBQUEsRUFBZSxTQUFTLElBQUkwTCxJQUFBLEdBQU9DLE9BQUEsTUFJL0QsS0FBS1YsR0FBQSxLQURlLEtBQ094RCxJQUFBLENBQUssS0FBS3dELEdBQUEsSUFBTyxNQUFNLE9BQU8sT0FBTyxJQUFJUyxJQUFBLEdBQU9DLE9BQUEsRUFFL0U7VUFBQTtRQUVKO1FBTUEsU0FBU3RCLEVBQU9uSyxDQUFBO1VBQ2QsSUFBSU0sQ0FBQSxHQUFPLElBQUkrSSxRQUFBO1VBWWYsT0FYQXJKLENBQUEsQ0FDRzJHLElBQUEsR0FDQStFLEtBQUEsQ0FBTSxLQUNON0QsT0FBQSxDQUFRLFVBQVM3SCxDQUFBO1lBQ2hCLElBQUlBLENBQUEsRUFBTztjQUNULElBQUlJLENBQUEsR0FBUUosQ0FBQSxDQUFNMEwsS0FBQSxDQUFNO2dCQUNwQmpMLENBQUEsR0FBT0wsQ0FBQSxDQUFNc0gsS0FBQSxHQUFRNkQsT0FBQSxDQUFRLE9BQU87Z0JBQ3BDMUwsQ0FBQSxHQUFRTyxDQUFBLENBQU04SixJQUFBLENBQUssS0FBS3FCLE9BQUEsQ0FBUSxPQUFPO2NBQzNDakwsQ0FBQSxDQUFLd0gsTUFBQSxDQUFPNkQsa0JBQUEsQ0FBbUJsTCxDQUFBLEdBQU9rTCxrQkFBQSxDQUFtQjlMLENBQUEsRUFDM0Q7WUFBQTtVQUNGLElBQ0tTLENBQ1Q7UUFBQTtRQTRCTyxTQUFTc0wsRUFBUzVMLENBQUEsRUFBVU0sQ0FBQTtVQUNqQyxNQUFNLGdCQUFnQnNMLENBQUEsR0FDcEIsTUFBTSxJQUFJbkssU0FBQSxDQUFVO1VBRWpCbkIsQ0FBQSxLQUNIQSxDQUFBLEdBQVUsQ0FBQyxJQUdiLEtBQUtxSixJQUFBLEdBQU8sV0FDWixLQUFLa0MsTUFBQSxRQUE0QixNQUFuQnZMLENBQUEsQ0FBUXVMLE1BQUEsR0FBdUIsTUFBTXZMLENBQUEsQ0FBUXVMLE1BQUEsRUFDM0QsS0FBS0MsRUFBQSxHQUFLLEtBQUtELE1BQUEsSUFBVSxPQUFPLEtBQUtBLE1BQUEsR0FBUyxLQUM5QyxLQUFLRSxVQUFBLFFBQW9DLE1BQXZCekwsQ0FBQSxDQUFReUwsVUFBQSxHQUEyQixLQUFLLEtBQUt6TCxDQUFBLENBQVF5TCxVQUFBLEVBQ3ZFLEtBQUtyQyxPQUFBLEdBQVUsSUFBSW5ELENBQUEsQ0FBUWpHLENBQUEsQ0FBUW9KLE9BQUEsR0FDbkMsS0FBS3FCLEdBQUEsR0FBTXpLLENBQUEsQ0FBUXlLLEdBQUEsSUFBTyxJQUMxQixLQUFLL0IsU0FBQSxDQUFVaEosQ0FBQSxDQUNqQjtRQUFBO1FBN0RBNkssQ0FBQSxDQUFRdEosU0FBQSxDQUFVeUssS0FBQSxHQUFRO1VBQ3hCLE9BQU8sSUFBSW5CLENBQUEsQ0FBUSxNQUFNO1lBQUNDLElBQUEsRUFBTSxLQUFLN0I7VUFBQSxFQUN2QztRQUFBLEdBMENBMUksQ0FBQSxDQUFLZ0MsSUFBQSxDQUFLc0ksQ0FBQSxDQUFRdEosU0FBQSxHQW1CbEJoQixDQUFBLENBQUtnQyxJQUFBLENBQUtxSixDQUFBLENBQVNySyxTQUFBLEdBRW5CcUssQ0FBQSxDQUFTckssU0FBQSxDQUFVeUssS0FBQSxHQUFRO1VBQ3pCLE9BQU8sSUFBSUosQ0FBQSxDQUFTLEtBQUszQyxTQUFBLEVBQVc7WUFDbEM0QyxNQUFBLEVBQVEsS0FBS0EsTUFBQTtZQUNiRSxVQUFBLEVBQVksS0FBS0EsVUFBQTtZQUNqQnJDLE9BQUEsRUFBUyxJQUFJbkQsQ0FBQSxDQUFRLEtBQUttRCxPQUFBO1lBQzFCcUIsR0FBQSxFQUFLLEtBQUtBO1VBQUEsRUFFZDtRQUFBLEdBRUFhLENBQUEsQ0FBU3BELEtBQUEsR0FBUTtVQUNmLElBQUl4SSxDQUFBLEdBQVcsSUFBSTRMLENBQUEsQ0FBUyxNQUFNO1lBQUNDLE1BQUEsRUFBUTtZQUFHRSxVQUFBLEVBQVk7VUFBQTtVQUUxRCxPQURBL0wsQ0FBQSxDQUFTMkosSUFBQSxHQUFPLFNBQ1QzSixDQUNUO1FBQUE7UUFFQSxJQUFJaU0sQ0FBQSxHQUFtQixDQUFDLEtBQUssS0FBSyxLQUFLLEtBQUs7UUFFNUNMLENBQUEsQ0FBU00sUUFBQSxHQUFXLFVBQVNsTSxDQUFBLEVBQUtNLENBQUE7VUFDaEMsS0FBMEMsTUFBdEMyTCxDQUFBLENBQWlCM0gsT0FBQSxDQUFRaEUsQ0FBQSxHQUMzQixNQUFNLElBQUk2TCxVQUFBLENBQVc7VUFHdkIsT0FBTyxJQUFJUCxDQUFBLENBQVMsTUFBTTtZQUFDQyxNQUFBLEVBQVF2TCxDQUFBO1lBQVFvSixPQUFBLEVBQVM7Y0FBQzBDLFFBQUEsRUFBVXBNO1lBQUE7VUFBQSxFQUNqRTtRQUFBO1FBRU8sSUFBSXFNLENBQUEsR0FBZTVMLENBQUEsQ0FBTzZMLFlBQUE7UUFDakM7VUFDRSxJQUFJRCxDQUNOLENBRE0sQ0FDTjtRQUFBLENBQUUsUUFBT3JNLENBQUE7VUFBQSxDQUNQcU0sQ0FBQSxHQUFlLFNBQUFDLENBQVN0TSxDQUFBLEVBQVNNLENBQUE7WUFDL0IsS0FBS29HLE9BQUEsR0FBVTFHLENBQUEsRUFDZixLQUFLZ0YsSUFBQSxHQUFPMUUsQ0FBQTtZQUNaLElBQUlGLENBQUEsR0FBUWdGLEtBQUEsQ0FBTXBGLENBQUE7WUFDbEIsS0FBS3VNLEtBQUEsR0FBUW5NLENBQUEsQ0FBTW1NLEtBQ3JCO1VBQUEsR0FDYWhMLFNBQUEsR0FBWVEsTUFBQSxDQUFPVyxNQUFBLENBQU8wQyxLQUFBLENBQU03RCxTQUFBLEdBQzdDOEssQ0FBQSxDQUFhOUssU0FBQSxDQUFVRCxXQUFBLEdBQWMrSyxDQUN2QztRQUFBO1FBRU8sU0FBU0csRUFBTXhNLENBQUEsRUFBT00sQ0FBQTtVQUMzQixPQUFPLElBQUk2SCxPQUFBLENBQVEsVUFBUy9ILENBQUEsRUFBU04sQ0FBQTtZQUNuQyxJQUFJQyxDQUFBLEdBQVUsSUFBSThLLENBQUEsQ0FBUTdLLENBQUEsRUFBT00sQ0FBQTtZQUVqQyxJQUFJUCxDQUFBLENBQVFvTCxNQUFBLElBQVVwTCxDQUFBLENBQVFvTCxNQUFBLENBQU9zQixPQUFBLEVBQ25DLE9BQU8zTSxDQUFBLENBQU8sSUFBSXVNLENBQUEsQ0FBYSxXQUFXO1lBRzVDLElBQUlqRyxDQUFBLEdBQU0sSUFBSXNHLGNBQUE7WUFFZCxTQUFTcEcsRUFBQTtjQUNQRixDQUFBLENBQUl1RyxLQUFBLEVBQ047WUFBQTtZQUVBdkcsQ0FBQSxDQUFJaUMsTUFBQSxHQUFTO2NBQ1gsSUFuR2dCckksQ0FBQTtnQkFDaEJNLENBQUE7Z0JBa0dJRyxDQUFBLEdBQVU7a0JBQ1pvTCxNQUFBLEVBQVF6RixDQUFBLENBQUl5RixNQUFBO2tCQUNaRSxVQUFBLEVBQVkzRixDQUFBLENBQUkyRixVQUFBO2tCQUNoQnJDLE9BQUEsR0F0R2MxSixDQUFBLEdBc0dRb0csQ0FBQSxDQUFJd0cscUJBQUEsTUFBMkIsSUFyR3ZEdE0sQ0FBQSxHQUFVLElBQUlpRyxDQUFBLElBR1F2RyxDQUFBLENBQVd1TCxPQUFBLENBQVEsZ0JBQWdCLEtBSzFERyxLQUFBLENBQU0sTUFDTjlELEdBQUEsQ0FBSSxVQUFTNUgsQ0FBQTtvQkFDWixPQUFnQyxNQUF6QkEsQ0FBQSxDQUFPc0UsT0FBQSxDQUFRLFFBQWN0RSxDQUFBLENBQU82TSxNQUFBLENBQU8sR0FBRzdNLENBQUEsQ0FBTzJCLE1BQUEsSUFBVTNCLENBQ3hFO2tCQUFBLEdBQ0M2SCxPQUFBLENBQVEsVUFBUzdILENBQUE7b0JBQ2hCLElBQUlJLENBQUEsR0FBUUosQ0FBQSxDQUFLMEwsS0FBQSxDQUFNO3NCQUNuQmpMLENBQUEsR0FBTUwsQ0FBQSxDQUFNc0gsS0FBQSxHQUFRZixJQUFBO29CQUN4QixJQUFJbEcsQ0FBQSxFQUFLO3NCQUNQLElBQUlaLENBQUEsR0FBUU8sQ0FBQSxDQUFNOEosSUFBQSxDQUFLLEtBQUt2RCxJQUFBO3NCQUM1QnJHLENBQUEsQ0FBUXdILE1BQUEsQ0FBT3JILENBQUEsRUFBS1osQ0FBQSxDQUN0QjtvQkFBQTtrQkFDRixJQUNLUyxDQUFBO2dCQUFBO2NBbUZIRyxDQUFBLENBQVFzSyxHQUFBLEdBQU0saUJBQWlCM0UsQ0FBQSxHQUFNQSxDQUFBLENBQUkwRyxXQUFBLEdBQWNyTSxDQUFBLENBQVFpSixPQUFBLENBQVEvRixHQUFBLENBQUk7Y0FDM0UsSUFBSTlELENBQUEsR0FBTyxjQUFjdUcsQ0FBQSxHQUFNQSxDQUFBLENBQUkyRyxRQUFBLEdBQVczRyxDQUFBLENBQUk0RyxZQUFBO2NBQ2xEQyxVQUFBLENBQVc7Z0JBQ1Q3TSxDQUFBLENBQVEsSUFBSXdMLENBQUEsQ0FBUy9MLENBQUEsRUFBTVksQ0FBQSxFQUM3QjtjQUFBLEdBQUcsRUFDTDtZQUFBLEdBRUEyRixDQUFBLENBQUltQyxPQUFBLEdBQVU7Y0FDWjBFLFVBQUEsQ0FBVztnQkFDVG5OLENBQUEsQ0FBTyxJQUFJMkIsU0FBQSxDQUFVLDBCQUN2QjtjQUFBLEdBQUcsRUFDTDtZQUFBLEdBRUEyRSxDQUFBLENBQUk4RyxTQUFBLEdBQVk7Y0FDZEQsVUFBQSxDQUFXO2dCQUNUbk4sQ0FBQSxDQUFPLElBQUkyQixTQUFBLENBQVUsMEJBQ3ZCO2NBQUEsR0FBRyxFQUNMO1lBQUEsR0FFQTJFLENBQUEsQ0FBSStHLE9BQUEsR0FBVTtjQUNaRixVQUFBLENBQVc7Z0JBQ1RuTixDQUFBLENBQU8sSUFBSXVNLENBQUEsQ0FBYSxXQUFXLGNBQ3JDO2NBQUEsR0FBRyxFQUNMO1lBQUEsR0FVQWpHLENBQUEsQ0FBSWdILElBQUEsQ0FBS3JOLENBQUEsQ0FBUWtMLE1BQUEsRUFSakIsVUFBZ0JqTCxDQUFBO2NBQ2Q7Z0JBQ0UsT0FBZSxPQUFSQSxDQUFBLElBQWNTLENBQUEsQ0FBTzJMLFFBQUEsQ0FBU2lCLElBQUEsR0FBTzVNLENBQUEsQ0FBTzJMLFFBQUEsQ0FBU2lCLElBQUEsR0FBT3JOLENBQ3JFO2NBQUEsQ0FBRSxRQUFPTSxDQUFBO2dCQUNQLE9BQU9OLENBQ1Q7Y0FBQTtZQUNGLENBRXlCLENBQU9ELENBQUEsQ0FBUWdMLEdBQUEsSUFBTSxJQUVsQixjQUF4QmhMLENBQUEsQ0FBUWlMLFdBQUEsR0FDVjVFLENBQUEsQ0FBSWtILGVBQUEsSUFBa0IsSUFDVyxXQUF4QnZOLENBQUEsQ0FBUWlMLFdBQUEsS0FDakI1RSxDQUFBLENBQUlrSCxlQUFBLElBQWtCLElBR3BCLGtCQUFrQmxILENBQUEsS0FDaEJ2RyxDQUFBLENBQVFvSCxJQUFBLEdBQ1ZiLENBQUEsQ0FBSW1ILFlBQUEsR0FBZSxTQUVuQjFOLENBQUEsQ0FBUXVILFdBQUEsSUFDUnJILENBQUEsQ0FBUTJKLE9BQUEsQ0FBUS9GLEdBQUEsQ0FBSSxvQkFDeUQsTUFBN0U1RCxDQUFBLENBQVEySixPQUFBLENBQVEvRixHQUFBLENBQUksZ0JBQWdCVyxPQUFBLENBQVEsZ0NBRTVDOEIsQ0FBQSxDQUFJbUgsWUFBQSxHQUFlLGtCQUluQmpOLENBQUEsSUFBZ0MsbUJBQWpCQSxDQUFBLENBQUtvSixPQUFBLElBQTBCcEosQ0FBQSxDQUFLb0osT0FBQSxZQUFtQm5ELENBQUEsR0FLeEV4RyxDQUFBLENBQVEySixPQUFBLENBQVE3QixPQUFBLENBQVEsVUFBUzdILENBQUEsRUFBT00sQ0FBQTtjQUN0QzhGLENBQUEsQ0FBSW9ILGdCQUFBLENBQWlCbE4sQ0FBQSxFQUFNTixDQUFBLENBQzdCO1lBQUEsS0FOQStCLE1BQUEsQ0FBT2tHLG1CQUFBLENBQW9CM0gsQ0FBQSxDQUFLb0osT0FBQSxFQUFTN0IsT0FBQSxDQUFRLFVBQVM3SCxDQUFBO2NBQ3hEb0csQ0FBQSxDQUFJb0gsZ0JBQUEsQ0FBaUJ4TixDQUFBLEVBQU1xRyxDQUFBLENBQWUvRixDQUFBLENBQUtvSixPQUFBLENBQVExSixDQUFBLEdBQ3pEO1lBQUEsSUFPRUQsQ0FBQSxDQUFRb0wsTUFBQSxLQUNWcEwsQ0FBQSxDQUFRb0wsTUFBQSxDQUFPc0MsZ0JBQUEsQ0FBaUIsU0FBU25ILENBQUEsR0FFekNGLENBQUEsQ0FBSXNILGtCQUFBLEdBQXFCO2NBRUEsTUFBbkJ0SCxDQUFBLENBQUl1SCxVQUFBLElBQ041TixDQUFBLENBQVFvTCxNQUFBLENBQU95QyxtQkFBQSxDQUFvQixTQUFTdEgsQ0FBQSxDQUVoRDtZQUFBLElBR0ZGLENBQUEsQ0FBSXlILElBQUEsTUFBa0MsTUFBdEI5TixDQUFBLENBQVFrSixTQUFBLEdBQTRCLE9BQU9sSixDQUFBLENBQVFrSixTQUFBLENBQ3JFO1VBQUEsRUFDRjtRQUFBO1FBRUF1RCxDQUFBLENBQU1zQixRQUFBLElBQVcsR0FFWnJOLENBQUEsQ0FBT3NOLEtBQUEsS0FDVnROLENBQUEsQ0FBT3NOLEtBQUEsR0FBUXZCLENBQUEsRUFDZi9MLENBQUEsQ0FBT3VOLE9BQUEsR0FBVXpILENBQUEsRUFDakI5RixDQUFBLENBQU93TixPQUFBLEdBQVVwRCxDQUFBLEVBQ2pCcEssQ0FBQSxDQUFPeU4sUUFBQSxHQUFXdEMsQ0FBQTtRQUFBLElBQUF1QyxDQUFBO1VBQUFDLENBQUEsR0FBQWhPLENBQUE7VUFBQWlPLENBQUEsR0FBQWpPLENBQUE7VUFBQWtPLENBQUEsR0FBQWxPLENBQUE7VUFBQW1PLENBQUEsR0FBQW5PLENBQUE7VUFBQW9PLENBQUEsR0FBQXBPLENBQUE7UUFBQSxTQUFBcU8sRUFBQXpPLENBQUE7VUFBQSxPQUFBeU8sQ0FBQSx3QkFBQXJOLE1BQUEsdUJBQUFBLE1BQUEsQ0FBQUMsUUFBQSxhQUFBckIsQ0FBQTtZQUFBLGNBQUFBLENBQUE7VUFBQSxjQUFBQSxDQUFBO1lBQUEsT0FBQUEsQ0FBQSx5QkFBQW9CLE1BQUEsSUFBQXBCLENBQUEsQ0FBQXNCLFdBQUEsS0FBQUYsTUFBQSxJQUFBcEIsQ0FBQSxLQUFBb0IsTUFBQSxDQUFBRyxTQUFBLHFCQUFBdkIsQ0FBQTtVQUFBLEdBQUF5TyxDQUFBLENBQUF6TyxDQUFBO1FBQUE7UUFBQSxTQUFBME8sRUFBQTFPLENBQUEsRUFBQU0sQ0FBQTtVQUFBLElBQUFGLENBQUEsR0FBQTJCLE1BQUEsQ0FBQTBJLElBQUEsQ0FBQXpLLENBQUE7VUFBQSxJQUFBK0IsTUFBQSxDQUFBNE0scUJBQUE7WUFBQSxJQUFBbE8sQ0FBQSxHQUFBc0IsTUFBQSxDQUFBNE0scUJBQUEsQ0FBQTNPLENBQUE7WUFBQU0sQ0FBQSxLQUFBRyxDQUFBLEdBQUFBLENBQUEsQ0FBQW1PLE1BQUEsV0FBQXRPLENBQUE7Y0FBQSxPQUFBeUIsTUFBQSxDQUFBOE0sd0JBQUEsQ0FBQTdPLENBQUEsRUFBQU0sQ0FBQSxFQUFBc0IsVUFBQTtZQUFBLEtBQUF4QixDQUFBLENBQUEyRCxJQUFBLENBQUFaLEtBQUEsQ0FBQS9DLENBQUEsRUFBQUssQ0FBQTtVQUFBO1VBQUEsT0FBQUwsQ0FBQTtRQUFBO1FBQUEsU0FBQTBPLEVBQUE5TyxDQUFBO1VBQUEsU0FBQU0sQ0FBQSxNQUFBQSxDQUFBLEdBQUE0QyxTQUFBLENBQUF2QixNQUFBLEVBQUFyQixDQUFBO1lBQUEsSUFBQUYsQ0FBQSxXQUFBOEMsU0FBQSxDQUFBNUMsQ0FBQSxJQUFBNEMsU0FBQSxDQUFBNUMsQ0FBQTtZQUFBQSxDQUFBLE9BQUFvTyxDQUFBLENBQUEzTSxNQUFBLENBQUEzQixDQUFBLE9BQUF5SCxPQUFBLFdBQUF2SCxDQUFBO2NBQUF5TyxDQUFBLENBQUEvTyxDQUFBLEVBQUFNLENBQUEsRUFBQUYsQ0FBQSxDQUFBRSxDQUFBO1lBQUEsS0FBQXlCLE1BQUEsQ0FBQWlOLHlCQUFBLEdBQUFqTixNQUFBLENBQUFrTixnQkFBQSxDQUFBalAsQ0FBQSxFQUFBK0IsTUFBQSxDQUFBaU4seUJBQUEsQ0FBQTVPLENBQUEsS0FBQXNPLENBQUEsQ0FBQTNNLE1BQUEsQ0FBQTNCLENBQUEsR0FBQXlILE9BQUEsV0FBQXZILENBQUE7Y0FBQXlCLE1BQUEsQ0FBQUMsY0FBQSxDQUFBaEMsQ0FBQSxFQUFBTSxDQUFBLEVBQUF5QixNQUFBLENBQUE4TSx3QkFBQSxDQUFBek8sQ0FBQSxFQUFBRSxDQUFBO1lBQUE7VUFBQTtVQUFBLE9BQUFOLENBQUE7UUFBQTtRQUFBLFNBQUErTyxFQUFBL08sQ0FBQSxFQUFBTSxDQUFBLEVBQUFGLENBQUE7VUFBQSxRQUFBRSxDQUFBLGFBQUFOLENBQUE7WUFBQSxJQUFBTSxDQUFBLGFBQUFOLENBQUEsRUFBQU0sQ0FBQTtjQUFBLGlCQUFBbU8sQ0FBQSxDQUFBek8sQ0FBQSxjQUFBQSxDQUFBLFNBQUFBLENBQUE7Y0FBQSxJQUFBSSxDQUFBLEdBQUFKLENBQUEsQ0FBQW9CLE1BQUEsQ0FBQWtCLFdBQUE7Y0FBQSxlQUFBbEMsQ0FBQTtnQkFBQSxJQUFBSyxDQUFBLEdBQUFMLENBQUEsQ0FBQW1DLElBQUEsQ0FBQXZDLENBQUE7Z0JBQUEsaUJBQUF5TyxDQUFBLENBQUFoTyxDQUFBLFVBQUFBLENBQUE7Z0JBQUEsVUFBQWdCLFNBQUE7Y0FBQTtjQUFBLE9BQUFZLE1BQUEsQ0FBQXJDLENBQUE7WUFBQSxFQUFBQSxDQUFBO1lBQUEsb0JBQUF5TyxDQUFBLENBQUFuTyxDQUFBLElBQUFBLENBQUEsR0FBQStCLE1BQUEsQ0FBQS9CLENBQUE7VUFBQSxFQUFBQSxDQUFBLE1BQUFOLENBQUEsR0FBQStCLE1BQUEsQ0FBQUMsY0FBQSxDQUFBaEMsQ0FBQSxFQUFBTSxDQUFBO1lBQUFxQyxLQUFBLEVBQUF2QyxDQUFBO1lBQUF3QixVQUFBO1lBQUFDLFlBQUE7WUFBQUMsUUFBQTtVQUFBLEtBQUE5QixDQUFBLENBQUFNLENBQUEsSUFBQUYsQ0FBQSxFQUFBSixDQUFBO1FBQUE7UUFBQSxTQUFBa1AsRUFBQWxQLENBQUEsRUFBQU0sQ0FBQTtVQUFBLFNBQUFBLENBQUEsSUFBQUEsQ0FBQSxHQUFBTixDQUFBLENBQUEyQixNQUFBLE1BQUFyQixDQUFBLEdBQUFOLENBQUEsQ0FBQTJCLE1BQUE7VUFBQSxTQUFBdkIsQ0FBQSxNQUFBSyxDQUFBLE9BQUFzSCxLQUFBLENBQUF6SCxDQUFBLEdBQUFGLENBQUEsR0FBQUUsQ0FBQSxFQUFBRixDQUFBLElBQUFLLENBQUEsQ0FBQUwsQ0FBQSxJQUFBSixDQUFBLENBQUFJLENBQUE7VUFBQSxPQUFBSyxDQUFBO1FBQUE7UUN4aEJwQixTQUFTME8sRUFBQSxHQUNMO1FBR0osU0FBU0MsRUFBVXBQLENBQUE7VUFDZixPQUFxQixtQkFBVkEsQ0FBQSxHQUNPLFlBQVZBLENBQUEsSUFHVSxXQUFWQSxDQUFBLEdBS0RtRSxPQUFBLENBQVFuRSxDQUFBLENBQ25CO1FBQUE7UUFFQSxTQUFTcVAsRUFBQTtVQUFzQyxJQUFsQ3JQLENBQUEsR0FBbUJrRCxTQUFBLENBQUF2QixNQUFBLG1CQUFBdUIsU0FBQSxNQUFBQSxTQUFBLE1BQUc7WUFDekI1QyxDQUFBLEdBQVVGLENBQUEsQ0FBQXlLLENBQUEsQ0FBT3lFLEVBQUEsQ0FBR0MsVUFBQSxJQUFjO1VBRXhDLE9BQU8sR0FBQXRQLE1BQUEsQ0FBR0ssQ0FBQSxFQUFPLEtBQUFMLE1BQUEsQ0FBSUQsQ0FBQSxFQUFjdUwsT0FBQSxDQUFRLGlCQUFpQixNQUNoRTtRQUFBO1FBRUEsU0FBU2lFLEVBQVN4UCxDQUFBLEVBQWNNLENBQUE7VUFDNUIsU0FBZSxNQUFYQSxDQUFBLEVBQ0EsT0FBT04sQ0FBQTtVQUdYLEtBREEsSUFBTUksQ0FBQSxHQUF1QixJQUM3QkssQ0FBQSxNQUFBWixDQUFBLEdBQXdCa0MsTUFBQSxDQUFPMEksSUFBQSxDQUFLbkssQ0FBQSxHQUFPRyxDQUFBLEdBQUFaLENBQUEsQ0FBQThCLE1BQUEsRUFBQWxCLENBQUEsSUFBRTtZQUF4QyxJQUFNWCxDQUFBLEdBQVNELENBQUEsQ0FBQVksQ0FBQTtjQUNWVixDQUFBLEdBQWFPLENBQUEsQ0FBT1IsQ0FBQTtZQUNSLFFBQWRDLENBQUEsSUFDQUssQ0FBQSxDQUFXMkQsSUFBQSxDQUFLLEdBQUQ5RCxNQUFBLENBQUlILENBQUEsRUFBUyxLQUFBRyxNQUFBLENBQUl3UCxrQkFBQSxDQUFtQjFQLENBQUEsR0FFM0Q7VUFBQTtVQUNBLE9BQTBCLE1BQXRCSyxDQUFBLENBQVd1QixNQUFBLEdBQ0ozQixDQUFBLEdBRUpBLENBQUEsR0FBTyxNQUFNSSxDQUFBLENBQVc4SixJQUFBLENBQUssSUFDeEM7UUFBQTtRQUVBLFNBQVN3RixFQUFVMVAsQ0FBQTtVQUNmLE9BQU8sSUFBSTJQLE1BQUEsQ0FBTyxPQUFEMVAsTUFBQSxDQUFRRCxDQUFBLENBQVF1TCxPQUFBLENBQVEsT0FBTyxPQUFPQSxPQUFBLENBQVEsT0FBTyxpQkFBZSxPQUFNaEUsSUFBQSxDQUN2Rm5ILENBQUEsQ0FBQXlLLENBQUEsQ0FBT3VCLFFBQUEsQ0FBU3dELElBQUEsQ0FFeEI7UUFBQTtRQUVBLFNBQVNDLEVBQW1CN1AsQ0FBQTtVQUN4QixRQUNLSSxDQUFBLENBQUF5SyxDQUFBLENBQU91QixRQUFBLENBQVMwRCxNQUFBLENBQ1puSixJQUFBLEdBQ0E0RSxPQUFBLENBQVEsYUFBYSxJQUNyQkcsS0FBQSxDQUFNLEtBQ045RCxHQUFBLENBQUksVUFBQTVILENBQUE7WUFBSyxPQUFJQSxDQUFBLENBQU11TCxPQUFBLENBQVEsT0FBTyxLQUFLRyxLQUFBLENBQU0sS0FBSzlELEdBQUEsQ0FBSStELGtCQUFBLENBQW1CO1VBQUEsR0FFekVvRSxJQUFBLENBQUssVUFBQXpQLENBQUE7WUFBSyxRQUFBRixDQUFBLEdBQUxFLENBQUEsRUFBQUcsQ0FBQSxnQkFBQVQsQ0FBQTtjQUFBLElBQUErSCxLQUFBLENBQUFDLE9BQUEsQ0FBQWhJLENBQUEsVUFBQUEsQ0FBQTtZQUFBLEVBQUFJLENBQUEsZUFBQUosQ0FBQSxFQUFBTSxDQUFBO2NBQUEsSUFBQUYsQ0FBQSxXQUFBSixDQUFBLGdDQUFBb0IsTUFBQSxJQUFBcEIsQ0FBQSxDQUFBb0IsTUFBQSxDQUFBQyxRQUFBLEtBQUFyQixDQUFBO2NBQUEsWUFBQUksQ0FBQTtnQkFBQSxJQUFBSyxDQUFBO2tCQUFBWixDQUFBO2tCQUFBQyxDQUFBO2tCQUFBQyxDQUFBO2tCQUFBcUcsQ0FBQTtrQkFBQUMsQ0FBQTtrQkFBQUMsQ0FBQTtnQkFBQTtrQkFBQSxJQUFBeEcsQ0FBQSxJQUFBTSxDQUFBLEdBQUFBLENBQUEsQ0FBQW1DLElBQUEsQ0FBQXZDLENBQUEsR0FBQXlILElBQUEsUUFBQW5ILENBQUE7b0JBQUEsSUFBQXlCLE1BQUEsQ0FBQTNCLENBQUEsTUFBQUEsQ0FBQTtvQkFBQWlHLENBQUE7a0JBQUEsZ0JBQUFBLENBQUEsSUFBQTVGLENBQUEsR0FBQVgsQ0FBQSxDQUFBeUMsSUFBQSxDQUFBbkMsQ0FBQSxHQUFBdUgsSUFBQSxNQUFBdkIsQ0FBQSxDQUFBckMsSUFBQSxDQUFBdEQsQ0FBQSxDQUFBa0MsS0FBQSxHQUFBeUQsQ0FBQSxDQUFBekUsTUFBQSxLQUFBckIsQ0FBQSxHQUFBK0YsQ0FBQTtnQkFBQSxTQUFBckcsQ0FBQTtrQkFBQXNHLENBQUEsT0FBQXpHLENBQUEsR0FBQUcsQ0FBQTtnQkFBQTtrQkFBQTtvQkFBQSxLQUFBcUcsQ0FBQSxZQUFBakcsQ0FBQSxDQUFBNFAsTUFBQSxLQUFBalEsQ0FBQSxHQUFBSyxDQUFBLENBQUE0UCxNQUFBLElBQUFqTyxNQUFBLENBQUFoQyxDQUFBLE1BQUFBLENBQUE7a0JBQUE7b0JBQUEsSUFBQXVHLENBQUEsUUFBQXpHLENBQUE7a0JBQUE7Z0JBQUE7Z0JBQUEsT0FBQXVHLENBQUE7Y0FBQTtZQUFBLEVBQUFoRyxDQUFBLEVBQUFLLENBQUEsZUFBQVQsQ0FBQSxFQUFBTSxDQUFBO2NBQUEsSUFBQU4sQ0FBQTtnQkFBQSx1QkFBQUEsQ0FBQSxTQUFBa1AsQ0FBQSxDQUFBbFAsQ0FBQSxFQUFBTSxDQUFBO2dCQUFBLElBQUFGLENBQUEsR0FBQTJCLE1BQUEsQ0FBQVIsU0FBQSxDQUFBOEMsUUFBQSxDQUFBOUIsSUFBQSxDQUFBdkMsQ0FBQSxFQUFBNEcsS0FBQTtnQkFBQSxvQkFBQXhHLENBQUEsSUFBQUosQ0FBQSxDQUFBc0IsV0FBQSxLQUFBbEIsQ0FBQSxHQUFBSixDQUFBLENBQUFzQixXQUFBLENBQUEwRCxJQUFBLGFBQUE1RSxDQUFBLGNBQUFBLENBQUEsR0FBQTJILEtBQUEsQ0FBQWtJLElBQUEsQ0FBQWpRLENBQUEsb0JBQUFJLENBQUEsK0NBQUFtSCxJQUFBLENBQUFuSCxDQUFBLElBQUE4TyxDQUFBLENBQUFsUCxDQUFBLEVBQUFNLENBQUE7Y0FBQTtZQUFBLEVBQUFGLENBQUEsRUFBQUssQ0FBQTtjQUFBLFVBQUFnQixTQUFBO1lBQUEsS0FBSyxNQUFhekIsQ0FBQTtZQUFBLElBQUFJLENBQUEsRUFBQUssQ0FBSTtVQUFBLE1BQUssSUFBSSxFQUVqRDtRQUFBO1FBSUEsU0FBU3lQLEVBQVlsUSxDQUFBLEVBQWVNLENBQUE7VUFDaEMsSUFBSUYsQ0FBQSxHQUFZO1VBRWhCSixDQUFBLENBQU02SCxPQUFBLENBQVEsVUFBQXBILENBQUE7WUFDVkEsQ0FBQSxDQUFLLFVBQUFBLENBQUE7Y0FDRCxJQUFJTCxDQUFBLEtBQWNKLENBQUEsQ0FBTTJCLE1BQUEsRUFBeEI7Z0JBR0EsSUFBSWxCLENBQUEsRUFJQSxPQUhBTCxDQUFBLEdBQVlKLENBQUEsQ0FBTTJCLE1BQUEsT0FDbEJyQixDQUFBLENBQVNHLENBQUE7Z0JBQUEsQ0FJYkwsQ0FBQSxJQUFhLE9BQ0tKLENBQUEsQ0FBTTJCLE1BQUEsSUFDcEJyQixDQUFBLEVBVEo7Y0FBQTtZQVdKLEVBQ0o7VUFBQSxFQUNKO1FBQUE7UUFnQ0EsU0FBUzZQLEVBQVNuUSxDQUFBLEVBQTRCTSxDQUFBO1VBQzFDLElBQVFHLENBQUEsR0FBeUNULENBQUEsQ0FBekNvUSxHQUFBO1lBQUt2USxDQUFBLEdBQW9DRyxDQUFBLENBQXBDcVEsYUFBQTtZQUFldlEsQ0FBQSxHQUFxQkUsQ0FBQSxDQUFyQnNRLGdCQUFBO1VBRTVCLElBQUlsUSxDQUFBLENBQUF5SyxDQUFBLENBQU95RSxFQUFBLENBQUdpQixVQUFBLENBQVc5UCxDQUFBLEdBQ3JCSCxDQUFBLFFBREo7WUFJQSxJQUFNUCxDQUFBLEdBQWVGLENBQUEsS0FBa0JPLENBQUEsQ0FBQXlLLENBQUEsQ0FBT2hMLENBQUE7Y0FHeEN1RyxDQUFBLEdBQXNDLFdBQWhDeUosQ0FBQSxDQUFtQixXQUFzQixLQUFLO2NBQ3BEeEosQ0FBQSxHQUFnQjtjQUVoQkMsQ0FBQSxHQUFTO2dCQUFFc0YsQ0FBQSxFQUFHOUwsQ0FBQTtnQkFBa0IwUSxZQUFBLEVBQWN4USxDQUFBLENBQVN3UTtjQUFBO1lBRXpEbkssQ0FBQSxDQUFNdEMsSUFBQSxDQUFLLFVBQUEvRCxDQUFBO2NBQUUsT0FDVHFPLENBQUEsQ0FBQXJPLENBQUEsQ0FBaUJ5USxVQUFBLENBQVdwQixDQUFBLENBQUlHLENBQUEsQ0FBUyx3QkFBRHZQLE1BQUEsQ0FBeUJRLENBQUEsRUFBR1IsTUFBQSxDQUFHbUcsQ0FBQSxFQUFHLFNBQVFFLENBQUEsS0FBVSxHQUFNdEcsQ0FBQSxDQUFHO1lBQUEsSUFHN0dxRyxDQUFBLENBQU10QyxJQUFBLENBQUssVUFBQS9ELENBQUE7Y0FBRSxPQUFJcU8sQ0FBQSxDQUFBck8sQ0FBQSxDQUFpQjBRLE1BQUEsQ0FBT3JCLENBQUEsQ0FBSUcsQ0FBQSxDQUFTLHlCQUFEdlAsTUFBQSxDQUEwQlEsQ0FBQSxFQUFHUixNQUFBLENBQUdtRyxDQUFBLEVBQUcsUUFBT0UsQ0FBQSxJQUFVdEcsQ0FBQSxDQUFHO1lBQUEsSUFFeEdELENBQUEsSUFDQXNHLENBQUEsQ0FBTXRDLElBQUEsQ0FDRixVQUFBL0QsQ0FBQTtjQUFFLE9BQ0VxTyxDQUFBLENBQUFyTyxDQUFBLENBQWlCeVEsVUFBQSxDQUNicEIsQ0FBQSxDQUFJRyxDQUFBLENBQVMsOEJBQUR2UCxNQUFBLENBQStCSixDQUFBLEVBQWFJLE1BQUEsQ0FBR21HLENBQUEsRUFBRyxTQUFRRSxDQUFBLEtBQ3RFLEdBQ0F0RyxDQUFBLENBQ0g7WUFBQSxHQUNMLFVBQUFBLENBQUE7Y0FBRSxPQUNFcU8sQ0FBQSxDQUFBck8sQ0FBQSxDQUFpQjBRLE1BQUEsQ0FDYnJCLENBQUEsQ0FBSUcsQ0FBQSxDQUFTLCtCQUFEdlAsTUFBQSxDQUFnQ0osQ0FBQSxFQUFhSSxNQUFBLENBQUdtRyxDQUFBLEVBQUcsUUFBT0UsQ0FBQSxJQUN0RXRHLENBQUEsQ0FDSDtZQUFBLElBSWJrUSxDQUFBLENBQVk3SixDQUFBLEVBQU8vRixDQUFBLENBL0JuQjtVQUFBO1FBZ0NKO1FBRUEsU0FBU3FRLEVBQ0wzUSxDQUFBLEVBQ0FNLENBQUEsRUFDQUcsQ0FBQTtVQUNJLElBQUFaLENBQUE7VUFBQSxDQUUwQyxVQUQxQkEsQ0FBQSxHQUNoQk8sQ0FBQSxDQUFBeUssQ0FBQSxDQUFPeUUsRUFBQSxDQUFHaUIsVUFBQSxDQUFXalEsQ0FBQSxDQUFpQjhQLEdBQUEsV0FBSSxNQUFBdlEsQ0FBQSxHQUFBQSxDQUFBLElBQUksR0FBQXVPLENBQUEsQ0FBQTNILEVBQUEsRUFBTyxvQkFBRHhHLE1BQUEsQ0FBcUJLLENBQUEsQ0FBaUI4UCxHQUFBLEVBQUcsaUJBQ2xGcFEsQ0FBQSxFQUFhTSxDQUFBLEVBQ3ZCd0osSUFBQSxDQUFLLFVBQUE5SixDQUFBO1lBQ0YsSUFBTU0sQ0FBQSxHQUFhTixDQUFBLENBQUs0USxVQUFBLEtBQWMsR0FBQXBDLENBQUEsQ0FBQUgsQ0FBQSxFQUF1QnJPLENBQUE7WUFFN0RTLENBQUEsQ0FBUyxNQUFNSCxDQUFBLENBQ25CO1VBQUEsR0FBRXVRLEtBQUEsQ0FDS3BRLENBQUEsQ0FDZjtRQUFBO1FBdUJBLFNBQVNxUSxFQUFvQjlRLENBQUE7VUFDekIsSUFBcUIsUUFBakJBLENBQUEsRUFJSixPQUFPSSxDQUFBLENBQUF5SyxDQUFBLENBQU83SyxDQUFBLEtBQWtCSSxDQUFBLENBQUF5SyxDQUFBLENBQU83SyxDQUFBLEVBQWNZLE9BQ3pEO1FBQUE7UUFFQSxTQUFTbVEsRUFDTC9RLENBQUEsRUFDQU0sQ0FBQTtVQUVJLElBQUFHLENBQUE7WUFBQVosQ0FBQTtZQURKQyxDQUFBLEdBQXlDb0QsU0FBQSxDQUFBdkIsTUFBQSxtQkFBQXVCLFNBQUEsTUFBQUEsU0FBQSxNQUFHaU0sQ0FBQTtZQUV4Q3BQLENBQUEsR0FBUTtZQUNKcUcsQ0FBQSxHQUFnQjlGLENBQUEsQ0FBaEJKLEVBQUE7WUFBSW1HLENBQUEsR0FBWS9GLENBQUEsQ0FBWkgsT0FBQTtVQVlaLElBVkt1UCxDQUFBLENBQVVuQixDQUFBLENBQUF5QyxDQUFBLENBQWVDLGFBQUEsSUFFbEIxQyxDQUFBLENBQUF5QyxDQUFBLENBQWVFLFVBQUEsR0FFZjdLLENBQUEsR0FFQUQsQ0FBQSxLQUNSckcsQ0FBQSxHQUFRLElBQUlxRixLQUFBLENBQU0sNkJBRmxCckYsQ0FBQSxHQUFRLElBQUlxRixLQUFBLENBQU0saUNBRmxCckYsQ0FBQSxHQUFRLElBQUlxRixLQUFBLENBQU0sMEJBRmxCckYsQ0FBQSxHQUFRLElBQUlxRixLQUFBLENBQU0scUJBU2xCckYsQ0FBQSxFQUNBRCxDQUFBLENBQVNDLENBQUEsT0FEYjtZQUtBLElBQU11RyxDQUFBLEdBQW1DLFVBQXZCN0YsQ0FBQSxHQUFHSCxDQUFBLENBQVFrUSxZQUFBLFVBQVksTUFBQS9QLENBQUEsR0FBQUEsQ0FBQSxHQUFJb1AsQ0FBQSxDQUFtQjtjQUMxRHRKLENBQUEsR0FBaUJpSixDQUFBLENBQVNILENBQUEsRUFBSSxHQUFBZixDQUFBLENBQUEvTixDQUFBLEVBQXNCO2dCQUFFTCxFQUFBLEVBQUlrRyxDQUFBO2dCQUFJakcsT0FBQSxFQUFTa0c7Y0FBQSxLQUFhO2dCQUN0Rm1LLFlBQUEsRUFBY2xLO2NBQUE7Y0FHWkUsQ0FBQSxHQUE4QjtnQkFBRXlFLE1BQUEsRUFBUTtjQUFBO1lBQzlDLElBQThCLFFBQTFCM0ssQ0FBQSxDQUFRNlEsY0FBQSxJQUEwRCxrQ0FBM0I3USxDQUFBLENBQVE2USxjQUFBLEVBQy9DM0ssQ0FBQSxDQUFld0UsV0FBQSxHQUFjLGVBQzFCLElBQUksYUFBYTFLLENBQUEsQ0FBUTZRLGNBQUEsSUFBb0QsUUFBbEM3USxDQUFBLENBQVE2USxjQUFBLENBQWVDLE9BQUEsRUFBc0I7Y0FBQSxJQUFBL1EsQ0FBQTtjQUMzRm1HLENBQUEsQ0FBZXdFLFdBQUEsR0FBYyxRQUM3QnhFLENBQUEsQ0FBZWtELE9BQUEsR0FBZ0MsVUFBekJySixDQUFBLEdBQUdtRyxDQUFBLENBQWVrRCxPQUFBLFVBQU8sTUFBQXJKLENBQUEsR0FBQUEsQ0FBQSxHQUFJLENBQUMsR0FDcERtRyxDQUFBLENBQWVrRCxPQUFBLENBQXVCMkgsYUFBQSxHQUFJLFlBQUhwUixNQUFBLENBQWVLLENBQUEsQ0FBUTZRLGNBQUEsQ0FBZUMsT0FBQSxDQUNqRjtZQUFBLE9BQ0k1SyxDQUFBLENBQWV3RSxXQUFBLEdBQWM7WUFBQSxDQUVGLFVBQWhCbkwsQ0FBQSxHQUFHUyxDQUFBLENBQVF5TixLQUFBLFVBQUssTUFBQWxPLENBQUEsR0FBQUEsQ0FBQSxHQUFJMk0sQ0FBQSxFQUV6QmpHLENBQUEsRUFBZ0JDLENBQUEsRUFDckJzRCxJQUFBLENBQUssVUFBQTlKLENBQUE7Y0FBQyxPQUFJQSxDQUFBLENBQUVvSyxJQUFBLEVBQU07WUFBQSxHQUNsQk4sSUFBQSxDQUFLLFVBQUNySixDQUFBO2NBQTZDLElBQUFaLENBQUE7Z0JBQUFFLENBQUE7Z0JBQUFxRyxDQUFBO2dCQUFBQyxDQUFBO2dCQUFBRSxDQUFBO2dCQUMxQ0MsQ0FBQSxHQUFNL0YsQ0FBQSxDQUFnQjJQLEdBQUE7Z0JBQ3RCL1AsQ0FBQSxHQUFnQkksQ0FBQSxDQUFnQjRQLGFBQUE7Z0JBQ2hDNUgsQ0FBQSxHQUFnQnFHLENBQUEsQ0FBQUEsQ0FBQSxDQUFBQSxDQUFBO2tCQUNsQm9DLFVBQUEsRUFBWTNDLENBQUEsQ0FBQXlDLENBQUEsQ0FBZUUsVUFBQTtrQkFDM0JJLGNBQUEsRUFBZ0IvQyxDQUFBLENBQUF5QyxDQUFBLENBQWVNLGNBQUE7a0JBQy9CQyxZQUFBLEVBQWNoRCxDQUFBLENBQUF5QyxDQUFBLENBQWVPLFlBQUE7a0JBQzdCQyxtQkFBQSxFQUFxQmpELENBQUEsQ0FBQXlDLENBQUEsQ0FBZVEsbUJBQUE7a0JBQ3BDQyxxQkFBQSxFQUF1QmxELENBQUEsQ0FBQXlDLENBQUEsQ0FBZVMscUJBQUE7a0JBQ3RDQyxZQUFBLEVBQWNuRCxDQUFBLENBQUF5QyxDQUFBLENBQWVVLFlBQUE7a0JBQzdCcEIsZ0JBQUEsRUFBa0IvQixDQUFBLENBQUF5QyxDQUFBLENBQWVWLGdCQUFBO2tCQUNqQ1csYUFBQSxFQUFlMUMsQ0FBQSxDQUFBeUMsQ0FBQSxDQUFlQyxhQUFBO2tCQUM5QlUscUJBQUEsRUFBb0QsVUFBL0I5UixDQUFBLEdBQUVTLENBQUEsQ0FBUXFSLHFCQUFBLFVBQXFCLE1BQUE5UixDQUFBLElBQUFBLENBQUE7a0JBQ3BEK1Isa0JBQUEsRUFBb0J0UixDQUFBLENBQVFzUjtnQkFBQSxHQUN6QnRSLENBQUEsR0FDQUcsQ0FBQSxHQUFlO2tCQUNsQjJQLEdBQUEsRUFBSzVKLENBQUE7a0JBQ0w2SixhQUFBLEVBQWVoUSxDQUFBO2tCQUNmd1IsZUFBQSxFQUF3QyxVQUF6QjlSLENBQUEsR0FBRU8sQ0FBQSxDQUFRdVIsZUFBQSxVQUFlLE1BQUE5UixDQUFBLEdBQUFBLENBQUEsR0FBSVUsQ0FBQSxDQUFnQm9SLGVBQUE7a0JBQzVEQyxtQkFBQSxFQUFnRCxVQUE3QjFMLENBQUEsR0FBRTlGLENBQUEsQ0FBUXdSLG1CQUFBLFVBQW1CLE1BQUExTCxDQUFBLElBQUFBLENBQUE7a0JBQ2hEMkwscUJBQUEsRUFBb0QsVUFBL0IxTCxDQUFBLEdBQUUvRixDQUFBLENBQVF5UixxQkFBQSxVQUFxQixNQUFBMUwsQ0FBQSxJQUFBQSxDQUFBO2tCQUNwRDJMLDRCQUFBLEVBQWtFLFVBQXRDekwsQ0FBQSxHQUFFakcsQ0FBQSxDQUFRMFIsNEJBQUEsVUFBNEIsTUFBQXpMLENBQUEsSUFBQUEsQ0FBQTtrQkFDbEVpSyxZQUFBLEVBQWNsSztnQkFBQTtjQUdsQjZKLENBQUEsQ0FDSTtnQkFDSUMsR0FBQSxFQUFLM0gsQ0FBQSxDQUFpQjJILEdBQUE7Z0JBQ3RCQyxhQUFBLEVBQWU1SCxDQUFBLENBQWlCNEgsYUFBQTtnQkFDaENHLFlBQUEsRUFBYy9ILENBQUEsQ0FBaUIrSCxZQUFBO2dCQUMvQkYsZ0JBQUEsRUFBa0I3SCxDQUFBLENBQWlCNkgsZ0JBQUE7Z0JBQ25DMkIsS0FBQSxFQUFPeEosQ0FBQSxDQUFpQndKO2NBQUEsR0FFNUIsVUFBQXhSLENBQUE7Z0JBQ0ksS0FBSUEsQ0FBQSxJQUFjTCxDQUFBLENBQUF5SyxDQUFBLENBQU95RSxFQUFBLENBQUdpQixVQUFBLENBQVcvSixDQUFBLEdBQXZDO2tCQUlBLElBQU0zRyxDQUFBLEdBQVNpUixDQUFBLENBQW9CelEsQ0FBQTtrQkFFbkNzUSxDQUFBLENBQ0kzUSxDQUFBLEVBQVc4TyxDQUFBLENBQUFBLENBQUEsS0FFSnJHLENBQUEsR0FBZ0I7b0JBQ25CeUosWUFBQSxFQUFjNVIsQ0FBQSxDQUFRNFIsWUFBQTtvQkFDdEJDLFVBQUEsRUFBWXRTO2tCQUFBLElBRWhCQyxDQUFBLENBVko7Z0JBQUEsT0FGSUEsQ0FBQSxDQUFTLElBQUlzRixLQUFBLENBQU0sNENBQURuRixNQUFBLENBQTZDdUcsQ0FBQSxHQWN2RTtjQUFBLEVBRVI7WUFBQSxHQUFFcUssS0FBQSxDQUNLL1EsQ0FBQSxDQXpFWDtVQUFBO1FBMEVKO1FBQUFFLENBQUEsR0FBQUksQ0FBQSxDQUFBSSxHQUFBLENBQUFSLENBQUEsSUFBQW1PLENBQUEseUJBQUF6TixvQkFBQSxHQUFBQSxvQkFBQSxDQUFBQyxXQUFBLGNBQUF3TixDQUFBLENBQUFuTyxDQUFBLHlCQUFBVSxvQkFBQSxJQUFBQSxvQkFBQSxDQUFBRSxPQUFBLENBQUFDLFNBQUE7UUFFQSxJQVM4QnVSLENBQUE7VUFUa0JwQixDQUFBO1VBQTFDcUIsQ0FBQSxHQUE2QztZQUMvQ0MsS0FBQSxFQUFPdkIsQ0FBQTtZQUNQUixVQUFBLEVBQVksQ0FBQztZQUNiZ0Msc0JBQUEsRUFBd0JuRCxDQUFBLENBQVU7WUFDbENHLFVBQUEsRUFBWTtVQUFBO1FBR2hCblAsQ0FBQSxDQUFBeUssQ0FBQSxDQUFPeUUsRUFBQSxHQUFLK0MsQ0FBQSxHQUVrQkQsQ0FBQSx5QkFBQTFSLG9CQUFBLEdBQUFBLG9CQUFBLENBQUFFLE9BQUEsZUFBQXdSLENBQUEsQ0FBQXRSLFFBQUEsQ0EvU3JCcU8sQ0FBQSxFQUFlLHFIQUFBaUQsQ0FBQSxDQUFBdFIsUUFBQSxDQUlmc08sQ0FBQSxFQUFTLCtHQUFBZ0QsQ0FBQSxDQUFBdFIsUUFBQSxDQWFUdU8sQ0FBQSxFQUFHLHlHQUFBK0MsQ0FBQSxDQUFBdFIsUUFBQSxDQU1IME8sQ0FBQSxFQUFRLDhHQUFBNEMsQ0FBQSxDQUFBdFIsUUFBQSxDQWlCUjRPLENBQUEsRUFBUywrR0FBQTBDLENBQUEsQ0FBQXRSLFFBQUEsQ0FNVCtPLENBQUEsRUFBa0Isd0hBQUF1QyxDQUFBLENBQUF0UixRQUFBLENBY2xCb1AsQ0FBQSxFQUFXLGlIQUFBa0MsQ0FBQSxDQUFBdFIsUUFBQSxDQThCYixVQUEyQ2QsQ0FBQSxFQUFjTSxDQUFBO1VBQzVEO1lBQUksSUFBQUYsQ0FBQTtjQUFBSyxDQUFBO2NBQUFaLENBQUE7Y0FBQUMsQ0FBQTtjQUFBQyxDQUFBO2NBQUFxRyxDQUFBO2NBQUFDLENBQUE7Y0FBQUMsQ0FBQTtjQUFBQyxDQUFBO2NBQUFDLENBQUE7Y0FDTW5HLENBQUEsR0FBY0wsQ0FBQSxDQUNmMEwsS0FBQSxDQUFNLEtBQ045RSxLQUFBLENBQU0sR0FBRyxHQUNUZ0IsR0FBQSxDQUFJLFVBQUE1SCxDQUFBO2dCQUFDLE9BQUl3UyxRQUFBLENBQVN4UyxDQUFBLEVBQUcsR0FBRztjQUFBO2NBQ3ZCeUksQ0FBQSxHQUFlbkksQ0FBQSxDQUNoQm9MLEtBQUEsQ0FBTSxLQUNOOUUsS0FBQSxDQUFNLEdBQUcsR0FDVGdCLEdBQUEsQ0FBSSxVQUFBNUgsQ0FBQTtnQkFBQyxPQUFJd1MsUUFBQSxDQUFTeFMsQ0FBQSxFQUFHLEdBQUc7Y0FBQTtZQUM3QixRQUNtQixVQUFmSSxDQUFBLEdBQUNDLENBQUEsQ0FBWSxZQUFFLE1BQUFELENBQUEsR0FBQUEsQ0FBQSxHQUFJLE1BQXFCLFVBQXBCSyxDQUFBLEdBQUtnSSxDQUFBLENBQWEsWUFBRSxNQUFBaEksQ0FBQSxHQUFBQSxDQUFBLEdBQUksT0FDNUIsVUFBZlosQ0FBQSxHQUFDUSxDQUFBLENBQVksWUFBRSxNQUFBUixDQUFBLEdBQUFBLENBQUEsR0FBSSxRQUF1QixVQUF0QkMsQ0FBQSxHQUFPMkksQ0FBQSxDQUFhLFlBQUUsTUFBQTNJLENBQUEsR0FBQUEsQ0FBQSxHQUFJLFFBQzNCLFVBQWZDLENBQUEsR0FBQ00sQ0FBQSxDQUFZLFlBQUUsTUFBQU4sQ0FBQSxHQUFBQSxDQUFBLEdBQUksTUFBcUIsVUFBcEJxRyxDQUFBLEdBQUtxQyxDQUFBLENBQWEsWUFBRSxNQUFBckMsQ0FBQSxHQUFBQSxDQUFBLEdBQUksT0FDekIsVUFBZkMsQ0FBQSxHQUFDaEcsQ0FBQSxDQUFZLFlBQUUsTUFBQWdHLENBQUEsR0FBQUEsQ0FBQSxHQUFJLFFBQXVCLFVBQXRCQyxDQUFBLEdBQU9tQyxDQUFBLENBQWEsWUFBRSxNQUFBbkMsQ0FBQSxHQUFBQSxDQUFBLEdBQUksT0FDNUIsVUFBZkMsQ0FBQSxHQUFDbEcsQ0FBQSxDQUFZLFlBQUUsTUFBQWtHLENBQUEsR0FBQUEsQ0FBQSxHQUFJLE9BQXNCLFVBQXJCQyxDQUFBLEdBQU1pQyxDQUFBLENBQWEsWUFBRSxNQUFBakMsQ0FBQSxHQUFBQSxDQUFBLEdBQUksR0FFakU7VUFBQSxDQUFFLFFBQUF4RyxDQUFBO1lBQ0UsUUFBTyxDQUNYO1VBQUE7UUFDSixHQXBCaUQsdUlBQUFvUyxDQUFBLENBQUF0UixRQUFBLENBc0J4Q3FQLENBQUEsRUFBUSw4R0FBQWlDLENBQUEsQ0FBQXRSLFFBQUEsQ0F3Q1I2UCxDQUFBLEVBQVUsZ0hBQUF5QixDQUFBLENBQUF0UixRQUFBLENBcUNWZ1EsQ0FBQSxFQUFtQix5SEFBQXNCLENBQUEsQ0FBQXRSLFFBQUEsQ0FRbkJpUSxDQUFBLEVBQUssMkdBQUFxQixDQUFBLENBQUF0UixRQUFBLENBaUdSdVIsQ0FBQSxFQUEwQywwSEFBQXJCLENBQUEseUJBQUF0USxvQkFBQSxHQUFBQSxvQkFBQSxDQUFBSyxXQUFBLGNBQUFpUSxDQUFBLENBQUFoUixDQUFBO01BQUE7TUFBQSxjQUFBQSxDQUFBLEVBQUFNLENBQUEsRUFBQUYsQ0FBQTtRQUFBLElBQUFLLENBQUE7UUN6V2hELFNBQVNaLEVBQVVHLENBQUE7VUFDZixPQUFxQixtQkFBVkEsQ0FBQSxHQUNPLFlBQVZBLENBQUEsSUFHVSxXQUFWQSxDQUFBLEdBS0RtRSxPQUFBLENBQVFuRSxDQUFBLENBQ25CO1FBQUE7UUFBQUksQ0FBQSxDQUFBQyxDQUFBLENBQUFDLENBQUE7VUFBQTBRLENBQUEsV0FBQUEsQ0FBQTtZQUFBLE9BQUE1SyxDQUFBO1VBQUE7UUFBQSxJQUFBcEcsQ0FBQSxHQUFBSSxDQUFBLENBQUFJLEdBQUEsQ0FBQVIsQ0FBQSxJQUFBUyxDQUFBLHlCQUFBQyxvQkFBQSxHQUFBQSxvQkFBQSxDQUFBQyxXQUFBLGNBQUFGLENBQUEsQ0FBQVQsQ0FBQSx5QkFBQVUsb0JBQUEsSUFBQUEsb0JBQUEsQ0FBQUUsT0FBQSxDQUFBQyxTQUFBO1FBRU8sSUFTTGYsQ0FBQTtVQVR5QkMsQ0FBQTtVQUFkcUcsQ0FBQSxHQUFpQjtZQUMxQjhLLFVBQUEsRUFBWXJSLENBQUEsQ0FBVTtZQUN0QnlSLGNBQUEsRUFBZ0I7WUFDaEJDLFlBQUEsRUFBYzFSLENBQUEsQ0FBVTtZQUN4QjJSLG1CQUFBLEVBQXFCM1IsQ0FBQSxDQUFVO1lBQy9CNFIscUJBQUEsRUFBdUI1UixDQUFBLENBQVU7WUFDakM2UixZQUFBLEVBQWM7WUFDZHBCLGdCQUFBLEVBQWtCO1lBQ2xCVyxhQUFBLEVBQWU7VUFBQTtRQUFBLENBQ2pCblIsQ0FBQSx5QkFBQVksb0JBQUEsR0FBQUEsb0JBQUEsQ0FBQUUsT0FBQSxlQUFBZCxDQUFBLENBQUFnQixRQUFBLENBdEJPakIsQ0FBQSxFQUFTLHVIQUFBQyxDQUFBLENBQUFnQixRQUFBLENBYUxzRixDQUFBLEVBQWMsOEhBQUFyRyxDQUFBLHlCQUFBVyxvQkFBQSxHQUFBQSxvQkFBQSxDQUFBSyxXQUFBLGNBQUFoQixDQUFBLENBQUFDLENBQUE7TUFBQTtNQUFBLGVBQUFnQixNQUFBLEVBQUFDLG1CQUFBLEVBQUFDLG1CQUFBO1FBQUFBLG1CQUFBLENBQUFiLENBQUEsQ0FBQVksbUJBQUE7VUFBQW9OLENBQUEsV0FBQUEsQ0FBQTtZQUFBLE9BQUFvRSxzQkFBQTtVQUFBO1FBQUE7UUFBQSxJQUFBQywyQ0FBQSxHQUFBeFIsbUJBQUE7VUFBQVAsV0FBQTtRQUFBLFNBQUFRLFFBQUFuQixDQUFBO1VBQUEsT0FBQW1CLE9BQUEsd0JBQUFDLE1BQUEsdUJBQUFBLE1BQUEsQ0FBQUMsUUFBQSxhQUFBckIsQ0FBQTtZQUFBLGNBQUFBLENBQUE7VUFBQSxjQUFBQSxDQUFBO1lBQUEsT0FBQUEsQ0FBQSx5QkFBQW9CLE1BQUEsSUFBQXBCLENBQUEsQ0FBQXNCLFdBQUEsS0FBQUYsTUFBQSxJQUFBcEIsQ0FBQSxLQUFBb0IsTUFBQSxDQUFBRyxTQUFBLHFCQUFBdkIsQ0FBQTtVQUFBLEdBQUFtQixPQUFBLENBQUFuQixDQUFBO1FBQUE7UUFBQSxTQUFBMlMsb0JBQUE7VUNaM0JBLG1CQUFBLFlBQUFBLENBQUE7WUFBQSxPQUFBM1MsQ0FBQTtVQUFBO1VBQUEsSUFBQUEsQ0FBQTtZQUFBTSxDQUFBLEdBQUF5QixNQUFBLENBQUFSLFNBQUE7WUFBQW5CLENBQUEsR0FBQUUsQ0FBQSxDQUFBa0ssY0FBQTtZQUFBL0osQ0FBQSxHQUFBc0IsTUFBQSxDQUFBQyxjQUFBLGNBQUFoQyxDQUFBLEVBQUFNLENBQUEsRUFBQUYsQ0FBQTtjQUFBSixDQUFBLENBQUFNLENBQUEsSUFBQUYsQ0FBQSxDQUFBdUMsS0FBQTtZQUFBO1lBQUE5QyxDQUFBLHdCQUFBdUIsTUFBQSxHQUFBQSxNQUFBO1lBQUF0QixDQUFBLEdBQUFELENBQUEsQ0FBQXdCLFFBQUE7WUFBQXRCLENBQUEsR0FBQUYsQ0FBQSxDQUFBK1MsYUFBQTtZQUFBeE0sQ0FBQSxHQUFBdkcsQ0FBQSxDQUFBZ1QsV0FBQTtVQUFBLFNBQUF4TSxFQUFBckcsQ0FBQSxFQUFBTSxDQUFBLEVBQUFGLENBQUE7WUFBQSxPQUFBMkIsTUFBQSxDQUFBQyxjQUFBLENBQUFoQyxDQUFBLEVBQUFNLENBQUE7Y0FBQXFDLEtBQUEsRUFBQXZDLENBQUE7Y0FBQXdCLFVBQUE7Y0FBQUMsWUFBQTtjQUFBQyxRQUFBO1lBQUEsSUFBQTlCLENBQUEsQ0FBQU0sQ0FBQTtVQUFBO1VBQUE7WUFBQStGLENBQUE7VUFBQSxTQUFBckcsQ0FBQTtZQUFBcUcsQ0FBQSxZQUFBeU0sQ0FBQTlTLENBQUEsRUFBQU0sQ0FBQSxFQUFBRixDQUFBO2NBQUEsT0FBQUosQ0FBQSxDQUFBTSxDQUFBLElBQUFGLENBQUE7WUFBQTtVQUFBO1VBQUEsU0FBQWtHLEVBQUF0RyxDQUFBLEVBQUFNLENBQUEsRUFBQUYsQ0FBQSxFQUFBUCxDQUFBO1lBQUEsSUFBQUMsQ0FBQSxHQUFBUSxDQUFBLElBQUFBLENBQUEsQ0FBQWlCLFNBQUEsWUFBQWxCLENBQUEsR0FBQUMsQ0FBQSxHQUFBRCxDQUFBO2NBQUFOLENBQUEsR0FBQWdDLE1BQUEsQ0FBQVcsTUFBQSxDQUFBNUMsQ0FBQSxDQUFBeUIsU0FBQTtjQUFBNkUsQ0FBQSxPQUFBaUksQ0FBQSxDQUFBeE8sQ0FBQTtZQUFBLE9BQUFZLENBQUEsQ0FBQVYsQ0FBQTtjQUFBNEMsS0FBQSxFQUFBMEosQ0FBQSxDQUFBck0sQ0FBQSxFQUFBSSxDQUFBLEVBQUFnRyxDQUFBO1lBQUEsSUFBQXJHLENBQUE7VUFBQTtVQUFBLFNBQUF3RyxFQUFBdkcsQ0FBQSxFQUFBTSxDQUFBLEVBQUFGLENBQUE7WUFBQTtjQUFBO2dCQUFBdUosSUFBQTtnQkFBQW9KLEdBQUEsRUFBQS9TLENBQUEsQ0FBQXVDLElBQUEsQ0FBQWpDLENBQUEsRUFBQUYsQ0FBQTtjQUFBO1lBQUEsU0FBQUosQ0FBQTtjQUFBO2dCQUFBMkosSUFBQTtnQkFBQW9KLEdBQUEsRUFBQS9TO2NBQUE7WUFBQTtVQUFBO1VBQUFBLENBQUEsQ0FBQWdULElBQUEsR0FBQTFNLENBQUE7VUFBQSxJQUFBRSxDQUFBO1VBQUEsU0FBQW5HLEVBQUE7VUFBQSxTQUFBb0ksRUFBQTtVQUFBLFNBQUFHLEVBQUE7VUFBQSxJQUFBckksQ0FBQTtVQUFBOEYsQ0FBQSxDQUFBOUYsQ0FBQSxFQUFBVCxDQUFBO1lBQUE7VUFBQTtVQUFBLElBQUE4SyxDQUFBLEdBQUE3SSxNQUFBLENBQUEwQyxjQUFBO1lBQUFvRyxDQUFBLEdBQUFELENBQUEsSUFBQUEsQ0FBQSxDQUFBQSxDQUFBLENBQUEwRCxDQUFBO1VBQUF6RCxDQUFBLElBQUFBLENBQUEsS0FBQXZLLENBQUEsSUFBQUYsQ0FBQSxDQUFBbUMsSUFBQSxDQUFBc0ksQ0FBQSxFQUFBL0ssQ0FBQSxNQUFBUyxDQUFBLEdBQUFzSyxDQUFBO1VBQUEsSUFBQVYsQ0FBQSxHQUFBdkIsQ0FBQSxDQUFBckgsU0FBQSxHQUFBbEIsQ0FBQSxDQUFBa0IsU0FBQSxHQUFBUSxNQUFBLENBQUFXLE1BQUEsQ0FBQW5DLENBQUE7VUFBQSxTQUFBcUwsRUFBQTVMLENBQUE7WUFBQSw0QkFBQTZILE9BQUEsV0FBQXZILENBQUE7Y0FBQStGLENBQUEsQ0FBQXJHLENBQUEsRUFBQU0sQ0FBQSxZQUFBTixDQUFBO2dCQUFBLFlBQUFpVCxPQUFBLENBQUEzUyxDQUFBLEVBQUFOLENBQUE7Y0FBQTtZQUFBO1VBQUE7VUFBQSxTQUFBaU0sRUFBQWpNLENBQUEsRUFBQU0sQ0FBQTtZQUFBLFNBQUFULEVBQUFZLENBQUEsRUFBQVgsQ0FBQSxFQUFBQyxDQUFBLEVBQUFxRyxDQUFBO2NBQUEsSUFBQUMsQ0FBQSxHQUFBRSxDQUFBLENBQUF2RyxDQUFBLENBQUFTLENBQUEsR0FBQVQsQ0FBQSxFQUFBRixDQUFBO2NBQUEsZ0JBQUF1RyxDQUFBLENBQUFzRCxJQUFBO2dCQUFBLElBQUFyRCxDQUFBLEdBQUFELENBQUEsQ0FBQTBNLEdBQUE7a0JBQUF2TSxDQUFBLEdBQUFGLENBQUEsQ0FBQTNELEtBQUE7Z0JBQUEsT0FBQTZELENBQUEsZ0JBQUFyRixPQUFBLENBQUFxRixDQUFBLEtBQUFwRyxDQUFBLENBQUFtQyxJQUFBLENBQUFpRSxDQUFBLGVBQUFsRyxDQUFBLENBQUFzSixPQUFBLENBQUFwRCxDQUFBLENBQUEwTSxPQUFBLEVBQUFwSixJQUFBLFdBQUE5SixDQUFBO2tCQUFBSCxDQUFBLFNBQUFHLENBQUEsRUFBQUQsQ0FBQSxFQUFBcUcsQ0FBQTtnQkFBQSxhQUFBcEcsQ0FBQTtrQkFBQUgsQ0FBQSxVQUFBRyxDQUFBLEVBQUFELENBQUEsRUFBQXFHLENBQUE7Z0JBQUEsS0FBQTlGLENBQUEsQ0FBQXNKLE9BQUEsQ0FBQXBELENBQUEsRUFBQXNELElBQUEsV0FBQTlKLENBQUE7a0JBQUFzRyxDQUFBLENBQUEzRCxLQUFBLEdBQUEzQyxDQUFBLEVBQUFELENBQUEsQ0FBQXVHLENBQUE7Z0JBQUEsYUFBQXRHLENBQUE7a0JBQUEsT0FBQUgsQ0FBQSxVQUFBRyxDQUFBLEVBQUFELENBQUEsRUFBQXFHLENBQUE7Z0JBQUE7Y0FBQTtjQUFBQSxDQUFBLENBQUFDLENBQUEsQ0FBQTBNLEdBQUE7WUFBQTtZQUFBLElBQUFqVCxDQUFBO1lBQUFXLENBQUE7Y0FBQWtDLEtBQUEsV0FBQUEsQ0FBQTNDLENBQUEsRUFBQUksQ0FBQTtnQkFBQSxTQUFBSyxFQUFBO2tCQUFBLFdBQUFILENBQUEsV0FBQUEsQ0FBQSxFQUFBRyxDQUFBO29CQUFBWixDQUFBLENBQUFHLENBQUEsRUFBQUksQ0FBQSxFQUFBRSxDQUFBLEVBQUFHLENBQUE7a0JBQUE7Z0JBQUE7Z0JBQUEsT0FBQVgsQ0FBQSxHQUFBQSxDQUFBLEdBQUFBLENBQUEsQ0FBQWdLLElBQUEsQ0FBQXJKLENBQUEsRUFBQUEsQ0FBQSxJQUFBQSxDQUFBO2NBQUE7WUFBQTtVQUFBO1VBQUEsU0FBQTRMLEVBQUFyTSxDQUFBLEVBQUFNLENBQUEsRUFBQUYsQ0FBQTtZQUFBLElBQUFLLENBQUE7WUFBQSxpQkFBQVosQ0FBQSxFQUFBQyxDQUFBO2NBQUEsb0JBQUFXLENBQUEsWUFBQTJFLEtBQUE7Y0FBQSxvQkFBQTNFLENBQUE7Z0JBQUEsZ0JBQUFaLENBQUEsUUFBQUMsQ0FBQTtnQkFBQTtrQkFBQTZDLEtBQUE7a0JBQUFnRixJQUFBO2dCQUFBO2NBQUE7Y0FBQSxLQUFBdkgsQ0FBQSxDQUFBNkssTUFBQSxHQUFBcEwsQ0FBQSxFQUFBTyxDQUFBLENBQUEyUyxHQUFBLEdBQUFqVCxDQUFBO2dCQUFBLElBQUFDLENBQUEsR0FBQUssQ0FBQSxDQUFBK1MsUUFBQTtnQkFBQSxJQUFBcFQsQ0FBQTtrQkFBQSxJQUFBcUcsQ0FBQSxHQUFBb0csQ0FBQSxDQUFBek0sQ0FBQSxFQUFBSyxDQUFBO2tCQUFBLElBQUFnRyxDQUFBO29CQUFBLElBQUFBLENBQUEsS0FBQUksQ0FBQTtvQkFBQSxPQUFBSixDQUFBO2tCQUFBO2dCQUFBO2dCQUFBLGVBQUFoRyxDQUFBLENBQUE2SyxNQUFBLEVBQUE3SyxDQUFBLENBQUFnVCxJQUFBLEdBQUFoVCxDQUFBLENBQUFpVCxLQUFBLEdBQUFqVCxDQUFBLENBQUEyUyxHQUFBLHNCQUFBM1MsQ0FBQSxDQUFBNkssTUFBQTtrQkFBQSx5QkFBQXhLLENBQUEsUUFBQUEsQ0FBQSxnQkFBQUwsQ0FBQSxDQUFBMlMsR0FBQTtrQkFBQTNTLENBQUEsQ0FBQWtULGlCQUFBLENBQUFsVCxDQUFBLENBQUEyUyxHQUFBO2dCQUFBLG9CQUFBM1MsQ0FBQSxDQUFBNkssTUFBQSxJQUFBN0ssQ0FBQSxDQUFBbVQsTUFBQSxXQUFBblQsQ0FBQSxDQUFBMlMsR0FBQTtnQkFBQXRTLENBQUE7Z0JBQUEsSUFBQTRGLENBQUEsR0FBQUUsQ0FBQSxDQUFBdkcsQ0FBQSxFQUFBTSxDQUFBLEVBQUFGLENBQUE7Z0JBQUEsaUJBQUFpRyxDQUFBLENBQUFzRCxJQUFBO2tCQUFBLElBQUFsSixDQUFBLEdBQUFMLENBQUEsQ0FBQXVILElBQUEsbUNBQUF0QixDQUFBLENBQUEwTSxHQUFBLEtBQUF2TSxDQUFBO2tCQUFBO29CQUFBN0QsS0FBQSxFQUFBMEQsQ0FBQSxDQUFBME0sR0FBQTtvQkFBQXBMLElBQUEsRUFBQXZILENBQUEsQ0FBQXVIO2tCQUFBO2dCQUFBO2dCQUFBLFlBQUF0QixDQUFBLENBQUFzRCxJQUFBLEtBQUFsSixDQUFBLGdCQUFBTCxDQUFBLENBQUE2SyxNQUFBLFlBQUE3SyxDQUFBLENBQUEyUyxHQUFBLEdBQUExTSxDQUFBLENBQUEwTSxHQUFBO2NBQUE7WUFBQTtVQUFBO1VBQUEsU0FBQXZHLEVBQUF4TSxDQUFBLEVBQUFNLENBQUE7WUFBQSxJQUFBRixDQUFBLEdBQUFFLENBQUEsQ0FBQTJLLE1BQUE7Y0FBQXhLLENBQUEsR0FBQVQsQ0FBQSxDQUFBcUIsUUFBQSxDQUFBakIsQ0FBQTtZQUFBLGVBQUFLLENBQUEsU0FBQUgsQ0FBQSxDQUFBNlMsUUFBQSxxQkFBQS9TLENBQUEsSUFBQUosQ0FBQSxDQUFBcUIsUUFBQSxDQUFBMk8sTUFBQSxLQUFBMVAsQ0FBQSxDQUFBMkssTUFBQSxhQUFBM0ssQ0FBQSxDQUFBeVMsR0FBQSxXQUFBdkcsQ0FBQSxDQUFBeE0sQ0FBQSxFQUFBTSxDQUFBLGVBQUFBLENBQUEsQ0FBQTJLLE1BQUEsa0JBQUE3SyxDQUFBLEtBQUFFLENBQUEsQ0FBQTJLLE1BQUEsWUFBQTNLLENBQUEsQ0FBQXlTLEdBQUEsT0FBQXRSLFNBQUEsdUNBQUFyQixDQUFBLGlCQUFBb0csQ0FBQTtZQUFBLElBQUEzRyxDQUFBLEdBQUEwRyxDQUFBLENBQUE5RixDQUFBLEVBQUFULENBQUEsQ0FBQXFCLFFBQUEsRUFBQWYsQ0FBQSxDQUFBeVMsR0FBQTtZQUFBLGdCQUFBbFQsQ0FBQSxDQUFBOEosSUFBQSxTQUFBckosQ0FBQSxDQUFBMkssTUFBQSxZQUFBM0ssQ0FBQSxDQUFBeVMsR0FBQSxHQUFBbFQsQ0FBQSxDQUFBa1QsR0FBQSxFQUFBelMsQ0FBQSxDQUFBNlMsUUFBQSxTQUFBM00sQ0FBQTtZQUFBLElBQUExRyxDQUFBLEdBQUFELENBQUEsQ0FBQWtULEdBQUE7WUFBQSxPQUFBalQsQ0FBQSxHQUFBQSxDQUFBLENBQUE2SCxJQUFBLElBQUFySCxDQUFBLENBQUFOLENBQUEsQ0FBQXdULFVBQUEsSUFBQTFULENBQUEsQ0FBQTZDLEtBQUEsRUFBQXJDLENBQUEsQ0FBQW1ILElBQUEsR0FBQXpILENBQUEsQ0FBQXlULE9BQUEsZUFBQW5ULENBQUEsQ0FBQTJLLE1BQUEsS0FBQTNLLENBQUEsQ0FBQTJLLE1BQUEsV0FBQTNLLENBQUEsQ0FBQXlTLEdBQUEsWUFBQXpTLENBQUEsQ0FBQTZTLFFBQUEsU0FBQTNNLENBQUEsSUFBQTFHLENBQUEsSUFBQVEsQ0FBQSxDQUFBMkssTUFBQSxZQUFBM0ssQ0FBQSxDQUFBeVMsR0FBQSxPQUFBdFIsU0FBQSxzQ0FBQW5CLENBQUEsQ0FBQTZTLFFBQUEsU0FBQTNNLENBQUE7VUFBQTtVQUFBLFNBQUEySCxFQUFBbk8sQ0FBQTtZQUFBLElBQUFNLENBQUE7Y0FBQW9ULE1BQUEsRUFBQTFULENBQUE7WUFBQTtZQUFBLEtBQUFBLENBQUEsS0FBQU0sQ0FBQSxDQUFBcVQsUUFBQSxHQUFBM1QsQ0FBQSxXQUFBQSxDQUFBLEtBQUFNLENBQUEsQ0FBQXNULFVBQUEsR0FBQTVULENBQUEsS0FBQU0sQ0FBQSxDQUFBdVQsUUFBQSxHQUFBN1QsQ0FBQSxXQUFBOFQsVUFBQSxDQUFBL1AsSUFBQSxDQUFBekQsQ0FBQTtVQUFBO1VBQUEsU0FBQThOLEVBQUFwTyxDQUFBO1lBQUEsSUFBQU0sQ0FBQSxHQUFBTixDQUFBLENBQUErVCxVQUFBO1lBQUF6VCxDQUFBLENBQUFxSixJQUFBLG9CQUFBckosQ0FBQSxDQUFBeVMsR0FBQSxFQUFBL1MsQ0FBQSxDQUFBK1QsVUFBQSxHQUFBelQsQ0FBQTtVQUFBO1VBQUEsU0FBQStOLEVBQUFyTyxDQUFBO1lBQUEsS0FBQThULFVBQUE7Y0FBQUosTUFBQTtZQUFBLElBQUExVCxDQUFBLENBQUE2SCxPQUFBLENBQUFzRyxDQUFBLGNBQUE2RixLQUFBO1VBQUE7VUFBQSxTQUFBMUYsRUFBQXRPLENBQUE7WUFBQSxJQUFBQSxDQUFBO2NBQUEsSUFBQU0sQ0FBQSxHQUFBTixDQUFBLENBQUFGLENBQUE7Y0FBQSxJQUFBUSxDQUFBLFNBQUFBLENBQUEsQ0FBQWlDLElBQUEsQ0FBQXZDLENBQUE7Y0FBQSx5QkFBQUEsQ0FBQSxDQUFBeUgsSUFBQSxTQUFBekgsQ0FBQTtjQUFBLEtBQUFpVSxLQUFBLENBQUFqVSxDQUFBLENBQUEyQixNQUFBO2dCQUFBLElBQUFsQixDQUFBO2tCQUFBWixDQUFBLFlBQUFTLEVBQUE7b0JBQUEsU0FBQUcsQ0FBQSxHQUFBVCxDQUFBLENBQUEyQixNQUFBLE9BQUF2QixDQUFBLENBQUFtQyxJQUFBLENBQUF2QyxDQUFBLEVBQUFTLENBQUEsVUFBQUgsQ0FBQSxDQUFBcUMsS0FBQSxHQUFBM0MsQ0FBQSxDQUFBUyxDQUFBLEdBQUFILENBQUEsQ0FBQXFILElBQUEsT0FBQXJILENBQUE7b0JBQUEsT0FBQUEsQ0FBQSxDQUFBcUMsS0FBQSxXQUFBckMsQ0FBQSxDQUFBcUgsSUFBQSxPQUFBckgsQ0FBQTtrQkFBQTtnQkFBQSxPQUFBVCxDQUFBLENBQUE0SCxJQUFBLEdBQUE1SCxDQUFBO2NBQUE7WUFBQTtZQUFBO2NBQUE0SCxJQUFBLEVBQUE4RztZQUFBO1VBQUE7VUFBQSxTQUFBQSxFQUFBO1lBQUE7Y0FBQTVMLEtBQUE7Y0FBQWdGLElBQUE7WUFBQTtVQUFBO1VBQUEsT0FBQWMsQ0FBQSxDQUFBbEgsU0FBQSxHQUFBcUgsQ0FBQSxFQUFBbkksQ0FBQSxDQUFBMEosQ0FBQTtZQUFBeEgsS0FBQSxFQUFBaUcsQ0FBQTtZQUFBL0csWUFBQTtVQUFBLElBQUFwQixDQUFBLENBQUFtSSxDQUFBO1lBQUFqRyxLQUFBLEVBQUE4RixDQUFBO1lBQUE1RyxZQUFBO1VBQUEsSUFBQTRHLENBQUEsQ0FBQXlMLFdBQUEsR0FBQTdOLENBQUEsQ0FBQXVDLENBQUEsRUFBQXhDLENBQUEsd0JBQUFwRyxDQUFBLENBQUFtVSxtQkFBQSxhQUFBblUsQ0FBQTtZQUFBLElBQUFNLENBQUEsd0JBQUFOLENBQUEsSUFBQUEsQ0FBQSxDQUFBc0IsV0FBQTtZQUFBLFNBQUFoQixDQUFBLEtBQUFBLENBQUEsS0FBQW1JLENBQUEsNkJBQUFuSSxDQUFBLENBQUE0VCxXQUFBLElBQUE1VCxDQUFBLENBQUEwRSxJQUFBO1VBQUEsR0FBQWhGLENBQUEsQ0FBQW9VLElBQUEsYUFBQXBVLENBQUE7WUFBQSxPQUFBK0IsTUFBQSxDQUFBd0MsY0FBQSxHQUFBeEMsTUFBQSxDQUFBd0MsY0FBQSxDQUFBdkUsQ0FBQSxFQUFBNEksQ0FBQSxLQUFBNUksQ0FBQSxDQUFBd0UsU0FBQSxHQUFBb0UsQ0FBQSxFQUFBdkMsQ0FBQSxDQUFBckcsQ0FBQSxFQUFBb0csQ0FBQSx5QkFBQXBHLENBQUEsQ0FBQXVCLFNBQUEsR0FBQVEsTUFBQSxDQUFBVyxNQUFBLENBQUF5SCxDQUFBLEdBQUFuSyxDQUFBO1VBQUEsR0FBQUEsQ0FBQSxDQUFBcVUsS0FBQSxhQUFBclUsQ0FBQTtZQUFBO2NBQUFrVCxPQUFBLEVBQUFsVDtZQUFBO1VBQUEsR0FBQTRMLENBQUEsQ0FBQUssQ0FBQSxDQUFBMUssU0FBQSxHQUFBOEUsQ0FBQSxDQUFBNEYsQ0FBQSxDQUFBMUssU0FBQSxFQUFBeEIsQ0FBQTtZQUFBO1VBQUEsSUFBQUMsQ0FBQSxDQUFBc1UsYUFBQSxHQUFBckksQ0FBQSxFQUFBak0sQ0FBQSxDQUFBdVUsS0FBQSxhQUFBalUsQ0FBQSxFQUFBRixDQUFBLEVBQUFLLENBQUEsRUFBQVosQ0FBQSxFQUFBQyxDQUFBO1lBQUEsV0FBQUEsQ0FBQSxLQUFBQSxDQUFBLEdBQUFxSSxPQUFBO1lBQUEsSUFBQXBJLENBQUEsT0FBQWtNLENBQUEsQ0FBQTNGLENBQUEsQ0FBQWhHLENBQUEsRUFBQUYsQ0FBQSxFQUFBSyxDQUFBLEVBQUFaLENBQUEsR0FBQUMsQ0FBQTtZQUFBLE9BQUFFLENBQUEsQ0FBQW1VLG1CQUFBLENBQUEvVCxDQUFBLElBQUFMLENBQUEsR0FBQUEsQ0FBQSxDQUFBMEgsSUFBQSxHQUFBcUMsSUFBQSxXQUFBOUosQ0FBQTtjQUFBLE9BQUFBLENBQUEsQ0FBQTJILElBQUEsR0FBQTNILENBQUEsQ0FBQTJDLEtBQUEsR0FBQTVDLENBQUEsQ0FBQTBILElBQUE7WUFBQTtVQUFBLEdBQUFtRSxDQUFBLENBQUF6QixDQUFBLEdBQUE5RCxDQUFBLENBQUE4RCxDQUFBLEVBQUEvRCxDQUFBLGdCQUFBQyxDQUFBLENBQUE4RCxDQUFBLEVBQUFySyxDQUFBO1lBQUE7VUFBQSxJQUFBdUcsQ0FBQSxDQUFBOEQsQ0FBQTtZQUFBO1VBQUEsSUFBQW5LLENBQUEsQ0FBQXlLLElBQUEsYUFBQXpLLENBQUE7WUFBQSxJQUFBTSxDQUFBLEdBQUF5QixNQUFBLENBQUEvQixDQUFBO2NBQUFJLENBQUE7WUFBQSxTQUFBSyxDQUFBLElBQUFILENBQUEsRUFBQUYsQ0FBQSxDQUFBMkQsSUFBQSxDQUFBdEQsQ0FBQTtZQUFBLE9BQUFMLENBQUEsQ0FBQW9VLE9BQUEsYUFBQXhVLEVBQUE7Y0FBQSxPQUFBSSxDQUFBLENBQUF1QixNQUFBO2dCQUFBLElBQUFsQixDQUFBLEdBQUFMLENBQUEsQ0FBQXFVLEdBQUE7Z0JBQUEsSUFBQWhVLENBQUEsSUFBQUgsQ0FBQSxTQUFBTixDQUFBLENBQUEyQyxLQUFBLEdBQUFsQyxDQUFBLEVBQUFULENBQUEsQ0FBQTJILElBQUEsT0FBQTNILENBQUE7Y0FBQTtjQUFBLE9BQUFBLENBQUEsQ0FBQTJILElBQUEsT0FBQTNILENBQUE7WUFBQTtVQUFBLEdBQUFBLENBQUEsQ0FBQTBLLE1BQUEsR0FBQTRELENBQUEsRUFBQUQsQ0FBQSxDQUFBOU0sU0FBQTtZQUFBRCxXQUFBLEVBQUErTSxDQUFBO1lBQUEyRixLQUFBLFdBQUFBLENBQUFoVSxDQUFBO2NBQUEsU0FBQTBVLElBQUEsV0FBQWpOLElBQUEsV0FBQTJMLElBQUEsUUFBQUMsS0FBQSxnQkFBQTFMLElBQUEsWUFBQXdMLFFBQUEsY0FBQWxJLE1BQUEsZ0JBQUE4SCxHQUFBLGdCQUFBZSxVQUFBLENBQUFqTSxPQUFBLENBQUF1RyxDQUFBLElBQUFwTyxDQUFBLFdBQUFNLENBQUEsa0JBQUFBLENBQUEsQ0FBQXFVLE1BQUEsT0FBQXZVLENBQUEsQ0FBQW1DLElBQUEsT0FBQWpDLENBQUEsTUFBQTJULEtBQUEsRUFBQTNULENBQUEsQ0FBQXNHLEtBQUEsY0FBQXRHLENBQUE7WUFBQTtZQUFBc1UsSUFBQSxXQUFBQSxDQUFBO2NBQUEsS0FBQWpOLElBQUE7Y0FBQSxJQUFBM0gsQ0FBQSxRQUFBOFQsVUFBQSxJQUFBQyxVQUFBO2NBQUEsZ0JBQUEvVCxDQUFBLENBQUEySixJQUFBLFFBQUEzSixDQUFBLENBQUErUyxHQUFBO2NBQUEsWUFBQThCLElBQUE7WUFBQTtZQUFBdkIsaUJBQUEsV0FBQUEsQ0FBQXRULENBQUE7Y0FBQSxTQUFBMkgsSUFBQSxRQUFBM0gsQ0FBQTtjQUFBLElBQUFNLENBQUE7Y0FBQSxTQUFBRyxFQUFBTCxDQUFBLEVBQUFLLENBQUE7Z0JBQUEsT0FBQVYsQ0FBQSxDQUFBNEosSUFBQSxZQUFBNUosQ0FBQSxDQUFBZ1QsR0FBQSxHQUFBL1MsQ0FBQSxFQUFBTSxDQUFBLENBQUFtSCxJQUFBLEdBQUFySCxDQUFBLEVBQUFLLENBQUEsS0FBQUgsQ0FBQSxDQUFBMkssTUFBQSxXQUFBM0ssQ0FBQSxDQUFBeVMsR0FBQSxjQUFBdFMsQ0FBQTtjQUFBO2NBQUEsU0FBQVosQ0FBQSxRQUFBaVUsVUFBQSxDQUFBblMsTUFBQSxNQUFBOUIsQ0FBQSxTQUFBQSxDQUFBO2dCQUFBLElBQUFDLENBQUEsUUFBQWdVLFVBQUEsQ0FBQWpVLENBQUE7a0JBQUFFLENBQUEsR0FBQUQsQ0FBQSxDQUFBaVUsVUFBQTtnQkFBQSxlQUFBalUsQ0FBQSxDQUFBNFQsTUFBQSxTQUFBalQsQ0FBQTtnQkFBQSxJQUFBWCxDQUFBLENBQUE0VCxNQUFBLFNBQUFnQixJQUFBO2tCQUFBLElBQUF0TyxDQUFBLEdBQUFoRyxDQUFBLENBQUFtQyxJQUFBLENBQUF6QyxDQUFBO29CQUFBdUcsQ0FBQSxHQUFBakcsQ0FBQSxDQUFBbUMsSUFBQSxDQUFBekMsQ0FBQTtrQkFBQSxJQUFBc0csQ0FBQSxJQUFBQyxDQUFBO29CQUFBLFNBQUFxTyxJQUFBLEdBQUE1VSxDQUFBLENBQUE2VCxRQUFBLFNBQUFsVCxDQUFBLENBQUFYLENBQUEsQ0FBQTZULFFBQUE7b0JBQUEsU0FBQWUsSUFBQSxHQUFBNVUsQ0FBQSxDQUFBOFQsVUFBQSxTQUFBblQsQ0FBQSxDQUFBWCxDQUFBLENBQUE4VCxVQUFBO2tCQUFBLFdBQUF4TixDQUFBO29CQUFBLFNBQUFzTyxJQUFBLEdBQUE1VSxDQUFBLENBQUE2VCxRQUFBLFNBQUFsVCxDQUFBLENBQUFYLENBQUEsQ0FBQTZULFFBQUE7a0JBQUE7b0JBQUEsS0FBQXROLENBQUEsWUFBQWpCLEtBQUE7b0JBQUEsU0FBQXNQLElBQUEsR0FBQTVVLENBQUEsQ0FBQThULFVBQUEsU0FBQW5ULENBQUEsQ0FBQVgsQ0FBQSxDQUFBOFQsVUFBQTtrQkFBQTtnQkFBQTtjQUFBO1lBQUE7WUFBQUwsTUFBQSxXQUFBQSxDQUFBdlQsQ0FBQSxFQUFBTSxDQUFBO2NBQUEsU0FBQUcsQ0FBQSxRQUFBcVQsVUFBQSxDQUFBblMsTUFBQSxNQUFBbEIsQ0FBQSxTQUFBQSxDQUFBO2dCQUFBLElBQUFaLENBQUEsUUFBQWlVLFVBQUEsQ0FBQXJULENBQUE7Z0JBQUEsSUFBQVosQ0FBQSxDQUFBNlQsTUFBQSxTQUFBZ0IsSUFBQSxJQUFBdFUsQ0FBQSxDQUFBbUMsSUFBQSxDQUFBMUMsQ0FBQSx3QkFBQTZVLElBQUEsR0FBQTdVLENBQUEsQ0FBQStULFVBQUE7a0JBQUEsSUFBQTlULENBQUEsR0FBQUQsQ0FBQTtrQkFBQTtnQkFBQTtjQUFBO2NBQUFDLENBQUEsaUJBQUFFLENBQUEsbUJBQUFBLENBQUEsS0FBQUYsQ0FBQSxDQUFBNFQsTUFBQSxJQUFBcFQsQ0FBQSxJQUFBQSxDQUFBLElBQUFSLENBQUEsQ0FBQThULFVBQUEsS0FBQTlULENBQUE7Y0FBQSxJQUFBQyxDQUFBLEdBQUFELENBQUEsR0FBQUEsQ0FBQSxDQUFBaVUsVUFBQTtjQUFBLE9BQUFoVSxDQUFBLENBQUE0SixJQUFBLEdBQUEzSixDQUFBLEVBQUFELENBQUEsQ0FBQWdULEdBQUEsR0FBQXpTLENBQUEsRUFBQVIsQ0FBQSxTQUFBbUwsTUFBQSxnQkFBQXhELElBQUEsR0FBQTNILENBQUEsQ0FBQThULFVBQUEsRUFBQXBOLENBQUEsU0FBQXNPLFFBQUEsQ0FBQS9VLENBQUE7WUFBQTtZQUFBK1UsUUFBQSxXQUFBQSxDQUFBOVUsQ0FBQSxFQUFBTSxDQUFBO2NBQUEsZ0JBQUFOLENBQUEsQ0FBQTJKLElBQUEsUUFBQTNKLENBQUEsQ0FBQStTLEdBQUE7Y0FBQSxtQkFBQS9TLENBQUEsQ0FBQTJKLElBQUEsbUJBQUEzSixDQUFBLENBQUEySixJQUFBLFFBQUFsQyxJQUFBLEdBQUF6SCxDQUFBLENBQUErUyxHQUFBLGdCQUFBL1MsQ0FBQSxDQUFBMkosSUFBQSxTQUFBa0wsSUFBQSxRQUFBOUIsR0FBQSxHQUFBL1MsQ0FBQSxDQUFBK1MsR0FBQSxPQUFBOUgsTUFBQSxrQkFBQXhELElBQUEseUJBQUF6SCxDQUFBLENBQUEySixJQUFBLElBQUFySixDQUFBLFVBQUFtSCxJQUFBLEdBQUFuSCxDQUFBLEdBQUFrRyxDQUFBO1lBQUE7WUFBQXVPLE1BQUEsV0FBQUEsQ0FBQS9VLENBQUE7Y0FBQSxTQUFBTSxDQUFBLFFBQUF3VCxVQUFBLENBQUFuUyxNQUFBLE1BQUFyQixDQUFBLFNBQUFBLENBQUE7Z0JBQUEsSUFBQUYsQ0FBQSxRQUFBMFQsVUFBQSxDQUFBeFQsQ0FBQTtnQkFBQSxJQUFBRixDQUFBLENBQUF3VCxVQUFBLEtBQUE1VCxDQUFBLGNBQUE4VSxRQUFBLENBQUExVSxDQUFBLENBQUEyVCxVQUFBLEVBQUEzVCxDQUFBLENBQUF5VCxRQUFBLEdBQUF6RixDQUFBLENBQUFoTyxDQUFBLEdBQUFvRyxDQUFBO2NBQUE7WUFBQTtZQUFBcUssS0FBQSxXQUFBQSxDQUFBN1EsQ0FBQTtjQUFBLFNBQUFNLENBQUEsUUFBQXdULFVBQUEsQ0FBQW5TLE1BQUEsTUFBQXJCLENBQUEsU0FBQUEsQ0FBQTtnQkFBQSxJQUFBRixDQUFBLFFBQUEwVCxVQUFBLENBQUF4VCxDQUFBO2dCQUFBLElBQUFGLENBQUEsQ0FBQXNULE1BQUEsS0FBQTFULENBQUE7a0JBQUEsSUFBQVMsQ0FBQSxHQUFBTCxDQUFBLENBQUEyVCxVQUFBO2tCQUFBLGdCQUFBdFQsQ0FBQSxDQUFBa0osSUFBQTtvQkFBQSxJQUFBOUosQ0FBQSxHQUFBWSxDQUFBLENBQUFzUyxHQUFBO29CQUFBM0UsQ0FBQSxDQUFBaE8sQ0FBQTtrQkFBQTtrQkFBQSxPQUFBUCxDQUFBO2dCQUFBO2NBQUE7Y0FBQSxVQUFBdUYsS0FBQTtZQUFBO1lBQUE0UCxhQUFBLFdBQUFBLENBQUFoVixDQUFBLEVBQUFNLENBQUEsRUFBQUYsQ0FBQTtjQUFBLFlBQUErUyxRQUFBO2dCQUFBOVIsUUFBQSxFQUFBaU4sQ0FBQSxDQUFBdE8sQ0FBQTtnQkFBQXdULFVBQUEsRUFBQWxULENBQUE7Z0JBQUFtVCxPQUFBLEVBQUFyVDtjQUFBLG1CQUFBNkssTUFBQSxVQUFBOEgsR0FBQSxZQUFBdk0sQ0FBQTtZQUFBO1VBQUEsR0FBQXhHLENBQUE7UUFBQTtRQUFBLFNBQUFpVixtQkFBQWpWLENBQUEsRUFBQU0sQ0FBQSxFQUFBRixDQUFBLEVBQUFLLENBQUEsRUFBQVosQ0FBQSxFQUFBQyxDQUFBLEVBQUFDLENBQUE7VUFBQTtZQUFBLElBQUFxRyxDQUFBLEdBQUFwRyxDQUFBLENBQUFGLENBQUEsRUFBQUMsQ0FBQTtjQUFBc0csQ0FBQSxHQUFBRCxDQUFBLENBQUF6RCxLQUFBO1VBQUEsU0FBQTNDLENBQUE7WUFBQSxZQUFBSSxDQUFBLENBQUFKLENBQUE7VUFBQTtVQUFBb0csQ0FBQSxDQUFBdUIsSUFBQSxHQUFBckgsQ0FBQSxDQUFBK0YsQ0FBQSxJQUFBOEIsT0FBQSxDQUFBeUIsT0FBQSxDQUFBdkQsQ0FBQSxFQUFBeUQsSUFBQSxDQUFBckosQ0FBQSxFQUFBWixDQUFBO1FBQUE7UUFBQSxTQUFBcVYsa0JBQUFsVixDQUFBO1VBQUE7WUFBQSxJQUFBTSxDQUFBO2NBQUFGLENBQUEsR0FBQThDLFNBQUE7WUFBQSxXQUFBaUYsT0FBQSxXQUFBMUgsQ0FBQSxFQUFBWixDQUFBO2NBQUEsSUFBQUMsQ0FBQSxHQUFBRSxDQUFBLENBQUFtRCxLQUFBLENBQUE3QyxDQUFBLEVBQUFGLENBQUE7Y0FBQSxTQUFBTCxFQUFBQyxDQUFBO2dCQUFBaVYsa0JBQUEsQ0FBQW5WLENBQUEsRUFBQVcsQ0FBQSxFQUFBWixDQUFBLEVBQUFFLENBQUEsRUFBQXFHLENBQUEsVUFBQXBHLENBQUE7Y0FBQTtjQUFBLFNBQUFvRyxFQUFBcEcsQ0FBQTtnQkFBQWlWLGtCQUFBLENBQUFuVixDQUFBLEVBQUFXLENBQUEsRUFBQVosQ0FBQSxFQUFBRSxDQUFBLEVBQUFxRyxDQUFBLFdBQUFwRyxDQUFBO2NBQUE7Y0FBQUQsQ0FBQTtZQUFBO1VBQUE7UUFBQTtRQUFBLFNBQUF5QixnQkFBQXhCLENBQUEsRUFBQU0sQ0FBQTtVQUFBLE1BQUFOLENBQUEsWUFBQU0sQ0FBQSxhQUFBbUIsU0FBQTtRQUFBO1FBQUEsU0FBQUMsa0JBQUExQixDQUFBLEVBQUFNLENBQUE7VUFBQSxTQUFBRixDQUFBLE1BQUFBLENBQUEsR0FBQUUsQ0FBQSxDQUFBcUIsTUFBQSxFQUFBdkIsQ0FBQTtZQUFBLElBQUFLLENBQUEsR0FBQUgsQ0FBQSxDQUFBRixDQUFBO1lBQUFLLENBQUEsQ0FBQW1CLFVBQUEsR0FBQW5CLENBQUEsQ0FBQW1CLFVBQUEsUUFBQW5CLENBQUEsQ0FBQW9CLFlBQUEsa0JBQUFwQixDQUFBLEtBQUFBLENBQUEsQ0FBQXFCLFFBQUEsUUFBQUMsTUFBQSxDQUFBQyxjQUFBLENBQUFoQyxDQUFBLEVBQUFpQyxjQUFBLENBQUF4QixDQUFBLENBQUF5QixHQUFBLEdBQUF6QixDQUFBO1VBQUE7UUFBQTtRQUFBLFNBQUEwQixhQUFBbkMsQ0FBQSxFQUFBTSxDQUFBLEVBQUFGLENBQUE7VUFBQSxPQUFBRSxDQUFBLElBQUFvQixpQkFBQSxDQUFBMUIsQ0FBQSxDQUFBdUIsU0FBQSxFQUFBakIsQ0FBQSxHQUFBRixDQUFBLElBQUFzQixpQkFBQSxDQUFBMUIsQ0FBQSxFQUFBSSxDQUFBLEdBQUEyQixNQUFBLENBQUFDLGNBQUEsQ0FBQWhDLENBQUE7WUFBQThCLFFBQUE7VUFBQSxJQUFBOUIsQ0FBQTtRQUFBO1FBQUEsU0FBQW1WLFFBQUFuVixDQUFBLEVBQUFNLENBQUE7VUFBQSxJQUFBRixDQUFBLEdBQUEyQixNQUFBLENBQUEwSSxJQUFBLENBQUF6SyxDQUFBO1VBQUEsSUFBQStCLE1BQUEsQ0FBQTRNLHFCQUFBO1lBQUEsSUFBQWxPLENBQUEsR0FBQXNCLE1BQUEsQ0FBQTRNLHFCQUFBLENBQUEzTyxDQUFBO1lBQUFNLENBQUEsS0FBQUcsQ0FBQSxHQUFBQSxDQUFBLENBQUFtTyxNQUFBLFdBQUF0TyxDQUFBO2NBQUEsT0FBQXlCLE1BQUEsQ0FBQThNLHdCQUFBLENBQUE3TyxDQUFBLEVBQUFNLENBQUEsRUFBQXNCLFVBQUE7WUFBQSxLQUFBeEIsQ0FBQSxDQUFBMkQsSUFBQSxDQUFBWixLQUFBLENBQUEvQyxDQUFBLEVBQUFLLENBQUE7VUFBQTtVQUFBLE9BQUFMLENBQUE7UUFBQTtRQUFBLFNBQUFnVixjQUFBcFYsQ0FBQTtVQUFBLFNBQUFNLENBQUEsTUFBQUEsQ0FBQSxHQUFBNEMsU0FBQSxDQUFBdkIsTUFBQSxFQUFBckIsQ0FBQTtZQUFBLElBQUFGLENBQUEsV0FBQThDLFNBQUEsQ0FBQTVDLENBQUEsSUFBQTRDLFNBQUEsQ0FBQTVDLENBQUE7WUFBQUEsQ0FBQSxPQUFBNlUsT0FBQSxDQUFBcFQsTUFBQSxDQUFBM0IsQ0FBQSxPQUFBeUgsT0FBQSxXQUFBdkgsQ0FBQTtjQUFBK1UsZUFBQSxDQUFBclYsQ0FBQSxFQUFBTSxDQUFBLEVBQUFGLENBQUEsQ0FBQUUsQ0FBQTtZQUFBLEtBQUF5QixNQUFBLENBQUFpTix5QkFBQSxHQUFBak4sTUFBQSxDQUFBa04sZ0JBQUEsQ0FBQWpQLENBQUEsRUFBQStCLE1BQUEsQ0FBQWlOLHlCQUFBLENBQUE1TyxDQUFBLEtBQUErVSxPQUFBLENBQUFwVCxNQUFBLENBQUEzQixDQUFBLEdBQUF5SCxPQUFBLFdBQUF2SCxDQUFBO2NBQUF5QixNQUFBLENBQUFDLGNBQUEsQ0FBQWhDLENBQUEsRUFBQU0sQ0FBQSxFQUFBeUIsTUFBQSxDQUFBOE0sd0JBQUEsQ0FBQXpPLENBQUEsRUFBQUUsQ0FBQTtZQUFBO1VBQUE7VUFBQSxPQUFBTixDQUFBO1FBQUE7UUFBQSxTQUFBcVYsZ0JBQUFyVixDQUFBLEVBQUFNLENBQUEsRUFBQUYsQ0FBQTtVQUFBLFFBQUFFLENBQUEsR0FBQTJCLGNBQUEsQ0FBQTNCLENBQUEsTUFBQU4sQ0FBQSxHQUFBK0IsTUFBQSxDQUFBQyxjQUFBLENBQUFoQyxDQUFBLEVBQUFNLENBQUE7WUFBQXFDLEtBQUEsRUFBQXZDLENBQUE7WUFBQXdCLFVBQUE7WUFBQUMsWUFBQTtZQUFBQyxRQUFBO1VBQUEsS0FBQTlCLENBQUEsQ0FBQU0sQ0FBQSxJQUFBRixDQUFBLEVBQUFKLENBQUE7UUFBQTtRQUFBLFNBQUFpQyxlQUFBakMsQ0FBQTtVQUFBLElBQUFNLENBQUEsR0FBQThCLFlBQUEsQ0FBQXBDLENBQUE7VUFBQSxvQkFBQW1CLE9BQUEsQ0FBQWIsQ0FBQSxJQUFBQSxDQUFBLEdBQUErQixNQUFBLENBQUEvQixDQUFBO1FBQUE7UUFBQSxTQUFBOEIsYUFBQXBDLENBQUEsRUFBQU0sQ0FBQTtVQUFBLGlCQUFBYSxPQUFBLENBQUFuQixDQUFBLGNBQUFBLENBQUEsU0FBQUEsQ0FBQTtVQUFBLElBQUFJLENBQUEsR0FBQUosQ0FBQSxDQUFBb0IsTUFBQSxDQUFBa0IsV0FBQTtVQUFBLGVBQUFsQyxDQUFBO1lBQUEsSUFBQUssQ0FBQSxHQUFBTCxDQUFBLENBQUFtQyxJQUFBLENBQUF2QyxDQUFBLEVBQUFNLENBQUE7WUFBQSxpQkFBQWEsT0FBQSxDQUFBVixDQUFBLFVBQUFBLENBQUE7WUFBQSxVQUFBZ0IsU0FBQTtVQUFBO1VBQUEscUJBQUFuQixDQUFBLEdBQUErQixNQUFBLEdBQUFHLE1BQUEsRUFBQXhDLENBQUE7UUFBQTtRQUFBZ0IsTUFBQSxHQUFBRSxtQkFBQSxDQUFBVixHQUFBLENBQUFRLE1BQUEsR0FBQUwsV0FBQSx5QkFBQUQsb0JBQUEsR0FBQUEsb0JBQUEsQ0FBQUMsV0FBQSxXQUFBQSxXQUFBLElBQUFBLFdBQUEsQ0FBQUssTUFBQTtRQUFBLElBQUE0RCxhQUFBLHlCQUFBbEUsb0JBQUEsR0FBQUEsb0JBQUEsQ0FBQUUsT0FBQSxDQUFBQyxTQUFBLGFBQUFiLENBQUE7VUFBQSxPQUFBQSxDQUFBO1FBQUE7UUEyQ08sU0FBU3NWLHFCQUFxQnRWLENBQUEsRUFBZU0sQ0FBQTtVQUNoRCxJQUFpQixRQUFiQSxDQUFBLEVBQXdCO1lBQ3hCLElBQVksUUFBUk4sQ0FBQSxFQUNBLE1BQU0sSUFBSW9GLEtBQUEsQ0FBTTtZQUVwQixPQUFPLENBQUMsU0FBUyxVQUFVcEYsQ0FBQSxFQUFNTSxDQUFBLENBQ3JDO1VBQUE7VUFDQSxPQUFZLFFBQVJOLENBQUEsR0FDTyxDQUFDLFNBQVMsVUFBVUEsQ0FBQSxJQUV4QixDQUFDLFNBQVMsU0FDckI7UUFBQTtRQUVBLFNBQVN1VixlQUFldlYsQ0FBQTtVQUNwQixPQUFPK0IsTUFBQSxDQUFPMEksSUFBQSxDQUFLekssQ0FBQSxFQUNkNE8sTUFBQSxDQUFPLFVBQUF0TyxDQUFBO1lBQUksT0FBSU4sQ0FBQSxDQUFNTSxDQUFBLEtBQVN5QixNQUFBLENBQU9SLFNBQUEsQ0FBVWlKLGNBQUEsQ0FBZWpJLElBQUEsQ0FBS3ZDLENBQUEsQ0FBTU0sQ0FBQSxHQUFPLFFBQVE7VUFBQSxHQUN4RnNILEdBQUEsQ0FBSSxVQUFBdEgsQ0FBQTtZQUNELElBQU1GLENBQUEsR0FBU0osQ0FBQSxDQUFNTSxDQUFBO1lBQ3JCLE9BQWMsUUFBVkYsQ0FBQSxHQUNPLENBQUMsSUFFWmlWLGVBQUEsS0FBVS9VLENBQUEsRUFBT0YsQ0FBQSxDQUFPdUMsS0FBQSxDQUM1QjtVQUFBLEVBQ1I7UUFBQTtRQUVBLFNBQVM2UyxrQkFBa0J4VixDQUFBO1VBQ3ZCLE9BQU9BLENBQUEsQ0FBT3lWLE1BQUEsQ0FDVixVQUFDelYsQ0FBQSxFQUFRTSxDQUFBO1lBQUssT0FBQThVLGFBQUEsQ0FBQUEsYUFBQSxLQUNQcFYsQ0FBQSxHQUNBTSxDQUFBLENBQUs7VUFBQSxHQUVaLENBQUMsRUFFVDtRQUFBO1FBQUMsSUFFS29WLGdCQUFBLEdBQWdCO1lBR2xCLFNBQUFBLGlCQUFtQjFWLENBQUE7Y0FBbUJ3QixlQUFBLE9BQUFrVSxnQkFBQSxRQUZyQkMsSUFBQSxRQUFJLEdBR2pCLEtBQUtBLElBQUEsR0FBTzNWLENBQ2hCO1lBQUE7WUE4R0MsSUFBQTRWLFlBQUEsRUFsRkFDLGtEQUFBLEVBUkFDLHVCQUFBO1lBK09BLE9BblFBM1QsWUFBQSxDQUFBdVQsZ0JBQUE7Y0FBQXhULEdBQUE7Y0FBQVMsS0FBQSxFQUVELFNBQUFBLENBQWlDM0MsQ0FBQTtnQkFDN0IsTUFBTSxJQUFJb0YsS0FBQSxDQUFNLDBCQUNwQjtjQUFBO1lBQUEsR0FBQztjQUFBbEQsR0FBQTtjQUFBUyxLQUFBLEVBRUQsU0FBQUEsQ0FBQTtnQkFDSSxNQUFNLElBQUl5QyxLQUFBLENBQU0sMEJBQ3BCO2NBQUE7WUFBQSxHQUFDO2NBQUFsRCxHQUFBO2NBQUFTLEtBQUEsRUFFRCxTQUFBQSxDQUFtQjNDLENBQUE7Z0JBQ2YsTUFBTSxJQUFJb0YsS0FBQSxDQUFNLDBCQUNwQjtjQUFBO1lBQUEsR0FBQztjQUFBbEQsR0FBQTtjQUFBUyxLQUFBLEVBRUQsU0FBQUEsQ0FBQTtnQkFDSSxNQUFNLElBQUl5QyxLQUFBLENBQU0sMEJBQ3BCO2NBQUE7WUFBQSxHQUFDO2NBQUFsRCxHQUFBO2NBQUFTLEtBQUEsRUFFRCxTQUFBQSxDQUFtQjNDLENBQUE7Z0JBQ2YsTUFBTSxJQUFJb0YsS0FBQSxDQUFNLDBCQUNwQjtjQUFBO1lBQUEsR0FBQztjQUFBbEQsR0FBQTtjQUFBUyxLQUFBLEdBQUFtVCx1QkFBQSxHQUFBWixpQkFBQSxDQUFBdkMsbUJBQUEsR0FBQXlCLElBQUEsQ0FFRCxTQUFBcFUsRUFBb0NNLENBQUE7Z0JBQVksT0FBQXFTLG1CQUFBLEdBQUFLLElBQUEsV0FBQWhULENBQUE7a0JBQUEsaUJBQUFBLENBQUEsQ0FBQTBVLElBQUEsR0FBQTFVLENBQUEsQ0FBQXlILElBQUE7b0JBQUE7c0JBQUEsTUFDdEMsSUFBSXJDLEtBQUEsQ0FBTTtvQkFBMEI7b0JBQUE7c0JBQUEsT0FBQXBGLENBQUEsQ0FBQTRVLElBQUE7a0JBQUE7Z0JBQUEsR0FBQTVVLENBQUE7Y0FBQSxLQUM3QyxVQUFBQSxDQUFBO2dCQUFBLE9BQUE4Vix1QkFBQSxDQUFBM1MsS0FBQSxPQUFBRCxTQUFBO2NBQUE7WUFBQTtjQUFBaEIsR0FBQTtjQUFBUyxLQUFBLEVBRUQsU0FBQUEsQ0FBQTtnQkFDSSxNQUFNLElBQUl5QyxLQUFBLENBQU0sMEJBQ3BCO2NBQUE7WUFBQSxHQUFDO2NBQUFsRCxHQUFBO2NBQUFTLEtBQUEsR0FBQWtULGtEQUFBLEdBQUFYLGlCQUFBLENBQUF2QyxtQkFBQSxHQUFBeUIsSUFBQSxDQUVELFNBQUFwVSxFQUNJTSxDQUFBO2dCQUFnQixPQUFBcVMsbUJBQUEsR0FBQUssSUFBQSxXQUFBaFQsQ0FBQTtrQkFBQSxpQkFBQUEsQ0FBQSxDQUFBMFUsSUFBQSxHQUFBMVUsQ0FBQSxDQUFBeUgsSUFBQTtvQkFBQTtzQkFBQSxNQUVWLElBQUlyQyxLQUFBLENBQU07b0JBQTBCO29CQUFBO3NCQUFBLE9BQUFwRixDQUFBLENBQUE0VSxJQUFBO2tCQUFBO2dCQUFBLEdBQUE1VSxDQUFBO2NBQUEsS0FDN0MsVUFBQUEsQ0FBQTtnQkFBQSxPQUFBNlYsa0RBQUEsQ0FBQTFTLEtBQUEsT0FBQUQsU0FBQTtjQUFBO1lBQUE7Y0FBQWhCLEdBQUE7Y0FBQVMsS0FBQSxFQUVELFNBQUFBLENBQWtDM0MsQ0FBQTtnQkFDOUIsTUFBTSxJQUFJb0YsS0FBQSxDQUFNLDBCQUNwQjtjQUFBO1lBQUEsR0FBQztjQUFBbEQsR0FBQTtjQUFBUyxLQUFBLEVBRUQsU0FBQUEsQ0FBQTtnQkFDSSxNQUFNLElBQUl5QyxLQUFBLENBQU0sMEJBQ3BCO2NBQUE7WUFBQSxHQUFDO2NBQUFsRCxHQUFBO2NBQUFTLEtBQUEsRUFFRCxTQUFBQSxDQUFnQjNDLENBQUE7Z0JBQ1osTUFBTSxJQUFJb0YsS0FBQSxDQUFNLDBCQUNwQjtjQUFBO1lBQUEsR0FBQztjQUFBbEQsR0FBQTtjQUFBUyxLQUFBLEVBRUQsU0FBQUEsQ0FBK0IzQyxDQUFBO2dCQUMzQixNQUFNLElBQUlvRixLQUFBLENBQU0sMEJBQ3BCO2NBQUE7WUFBQSxHQUFDO2NBQUFsRCxHQUFBO2NBQUFTLEtBQUEsRUFFRCxTQUFBQSxDQUF1QjNDLENBQUEsRUFBdUJNLENBQUE7Z0JBQzFDLE1BQU0sSUFBSThFLEtBQUEsQ0FBTSwwQkFDcEI7Y0FBQTtZQUFBLEdBQUM7Y0FBQWxELEdBQUE7Y0FBQVMsS0FBQSxFQUVELFNBQUFBLENBQWEzQyxDQUFBLEVBQXNCTSxDQUFBO2dCQUMvQixNQUFNLElBQUk4RSxLQUFBLENBQU0sMEJBQ3BCO2NBQUE7WUFBQSxHQUFDO2NBQUFsRCxHQUFBO2NBQUFTLEtBQUEsRUFDRCxTQUFBQSxDQUFxQjNDLENBQUEsRUFBa0JNLENBQUE7Z0JBQ25DLE1BQU0sSUFBSThFLEtBQUEsQ0FBTSwwQkFDcEI7Y0FBQTtZQUFBLEdBQUM7Y0FBQWxELEdBQUE7Y0FBQVMsS0FBQSxFQUVELFNBQUFBLENBQWdCM0MsQ0FBQSxFQUFhTSxDQUFBO2dCQUN6QixPQUFPLEtBQUtxVixJQUFBLENBQUtJLGlCQUFBLENBQWtCQyxvQkFBQSxDQUFxQmhXLENBQUEsRUFBS2lXLEtBQUEsQ0FBTTNWLENBQUEsQ0FDdkU7Y0FBQTtZQUFBLEdBQUM7Y0FBQTRCLEdBQUE7Y0FBQVMsS0FBQSxFQUVELFNBQUFBLENBQVUzQyxDQUFBLEVBQW1CTSxDQUFBO2dCQUN6QixLQUFLcVYsSUFBQSxDQUFLTyxZQUFBLENBQWFDLEVBQUEsQ0FBRyxDQUFDLFFBQVFuVyxDQUFBLEdBQVlNLENBQUEsQ0FDbkQ7Y0FBQTtZQUFBLEdBQUM7Y0FBQTRCLEdBQUE7Y0FBQVMsS0FBQSxFQUVELFNBQUFBLENBQVczQyxDQUFBLEVBQW1CTSxDQUFBO2dCQUMxQixLQUFLcVYsSUFBQSxDQUFLTyxZQUFBLENBQWFFLEdBQUEsQ0FBSSxDQUFDLFFBQVFwVyxDQUFBLEdBQVlNLENBQUEsQ0FDcEQ7Y0FBQTtZQUFBLEdBQUM7Y0FBQTRCLEdBQUE7Y0FBQVMsS0FBQSxFQUVELFNBQUFBLENBQXFCM0MsQ0FBQSxFQUF5Qk0sQ0FBQTtnQkFFMUMsTUFBTThFLEtBQUEsQ0FBTSw0Q0FDaEI7Y0FBQTtZQUFBLEdBQUM7Y0FBQWxELEdBQUE7Y0FBQVMsS0FBQSxFQUVELFNBQUFBLENBQUE7Z0JBQ0ksT0FBTyxLQUFLZ1QsSUFBQSxDQUFLVSxTQUFBLENBQVV4SSxJQUFBLEVBQy9CO2NBQUE7WUFBQSxHQUFDO2NBQUEzTCxHQUFBO2NBQUFTLEtBQUEsRUFFRCxTQUFBQSxDQUFBO2dCQU1JLE9BTEEsS0FBS2dULElBQUEsQ0FBS1UsU0FBQSxDQUFVQyxZQUFBLElBQ2hCLEtBQUtYLElBQUEsQ0FBS1ksT0FBQSxJQUNWLEtBQUtaLElBQUEsQ0FBS1ksT0FBQSxJQUdQLEtBQUtaLElBQUEsQ0FBS1UsU0FBQSxDQUFVeEksSUFBQSxFQUMvQjtjQUFBO1lBQUEsR0FBQztjQUFBM0wsR0FBQTtjQUFBUyxLQUFBLEVBRUQsU0FBQUEsQ0FBQTtnQkFFSSxPQUFPLEVBQ1g7Y0FBQTtZQUFBLEdBQUM7Y0FBQVQsR0FBQTtjQUFBUyxLQUFBLEVBRUQsU0FBQUEsQ0FBQTtnQkFDSSxJQUFNM0MsQ0FBQSxHQUFPK0IsTUFBQSxDQUFPMEksSUFBQSxDQUFLLEtBQUtrTCxJQUFBLENBQUthLEtBQUEsQ0FBTUMsUUFBQSxDQUFTLEtBQUtkLElBQUEsQ0FBS2UsUUFBQSxDQUFTQyxRQUFBO2dCQUdyRSxPQUFPLEtBQUtoQixJQUFBLENBQUtpQixTQUFBLENBQVVDLFdBQUEsQ0FBWTdXLENBQUEsQ0FDM0M7Y0FBQTtZQUFBLEdBQUM7Y0FBQWtDLEdBQUE7Y0FBQVMsS0FBQSxFQUNELFNBQUFBLENBQWlDM0MsQ0FBQTtnQkFDN0IsTUFBTSxJQUFJb0YsS0FBQSxDQUFNLGtCQUNwQjtjQUFBO1lBQUEsR0FBQztjQUFBbEQsR0FBQTtjQUFBUyxLQUFBLEVBRUQsU0FBQUEsQ0FBQTtnQkFDSSxNQUFNLElBQUl5QyxLQUFBLENBQU0sa0JBQ3BCO2NBQUE7WUFBQSxHQUFDO2NBQUFsRCxHQUFBO2NBQUFTLEtBQUEsR0FBQWlULFlBQUEsR0FBQVYsaUJBQUEsQ0FBQXZDLG1CQUFBLEdBQUF5QixJQUFBLENBRUQsU0FBQXBVLEVBQUE7Z0JBQUEsT0FBQTJTLG1CQUFBLEdBQUFLLElBQUEsV0FBQWhULENBQUE7a0JBQUEsaUJBQUFBLENBQUEsQ0FBQTBVLElBQUEsR0FBQTFVLENBQUEsQ0FBQXlILElBQUE7b0JBQUE7c0JBQUEsTUFDVSxJQUFJckMsS0FBQSxDQUFNO29CQUFrQjtvQkFBQTtzQkFBQSxPQUFBcEYsQ0FBQSxDQUFBNFUsSUFBQTtrQkFBQTtnQkFBQSxHQUFBNVUsQ0FBQTtjQUFBLEtBQ3JDO2dCQUFBLE9BQUE0VixZQUFBLENBQUF6UyxLQUFBLE9BQUFELFNBQUE7Y0FBQTtZQUFBO2NBQUFoQixHQUFBO2NBQUFTLEtBQUEsRUFFRCxTQUFBQSxDQUFtQzNDLENBQUE7Z0JBQy9CLE1BQU0sSUFBSW9GLEtBQUEsQ0FBTSxrQkFDcEI7Y0FBQTtZQUFBLEdBQUM7Y0FBQWxELEdBQUE7Y0FBQVMsS0FBQSxFQUVELFNBQUFBLENBQUE7Z0JBQ0ksSUFBTTNDLENBQUEsR0FBYSxLQUFLMlYsSUFBQSxDQUFLYSxLQUFBLENBQU03UyxHQUFBLENBQUksS0FBS2dTLElBQUEsQ0FBS2UsUUFBQSxDQUFTQyxRQUFBLEVBQVU7Z0JBQ3BFLE9BQXFCLFFBQWQzVyxDQUFBLElBQTJCQSxDQUFBLEdBQWEsQ0FDbkQ7Y0FBQTtZQUFBLEdBQUM7Y0FBQWtDLEdBQUE7Y0FBQVMsS0FBQSxFQUVELFNBQUFBLENBQTRCM0MsQ0FBQTtnQkFDeEIsS0FBSzJWLElBQUEsQ0FBS08sWUFBQSxDQUFhQyxFQUFBLENBQUdiLG9CQUFBLENBQXFCLEtBQUtLLElBQUEsQ0FBS2UsUUFBQSxDQUFTQyxRQUFBLEVBQVUsZ0JBQWdCM1csQ0FBQSxDQUNoRztjQUFBO1lBQUEsR0FBQztjQUFBa0MsR0FBQTtjQUFBUyxLQUFBLEVBRUQsU0FBQUEsQ0FBNkIzQyxDQUFBO2dCQUN6QixLQUFLMlYsSUFBQSxDQUFLTyxZQUFBLENBQWFFLEdBQUEsQ0FBSWQsb0JBQUEsQ0FBcUIsS0FBS0ssSUFBQSxDQUFLZSxRQUFBLENBQVNDLFFBQUEsRUFBVSxnQkFBZ0IzVyxDQUFBLENBQ2pHO2NBQUE7WUFBQSxHQUFDO2NBQUFrQyxHQUFBO2NBQUFTLEtBQUEsRUFJRCxTQUFBQSxDQUNJM0MsQ0FBQSxFQUNBTSxDQUFBO2dCQUVBLElBQ3lCLFNBQXJCTixDQUFBLElBQzRCLG1CQUFyQkEsQ0FBQSxJQUNxQixhQUE1Qm1CLE9BQUEsQ0FBT25CLENBQUEsS0FDTitILEtBQUEsQ0FBTUMsT0FBQSxDQUFRaEksQ0FBQSxHQUpuQjtrQkFlQSxJQUFnQyxtQkFBckJBLENBQUEsRUFLWCxNQUFNLElBQUlvRixLQUFBLENBQU07a0JBSlosS0FBS3VRLElBQUEsQ0FBS2EsS0FBQSxDQUFNNVMsR0FBQSxDQUFJNUQsQ0FBQSxFQUFrQixTQUFTTSxDQUFBLENBSG5EO2dCQUFBLE9BYkE7a0JBTUksSUFBTUYsQ0FBQSxHQUFhMkIsTUFBQSxDQUFPMEksSUFBQSxDQUFLekssQ0FBQSxFQUFrQnlWLE1BQUEsQ0FDN0MsVUFBQ25WLENBQUEsRUFBUUYsQ0FBQTtvQkFBSSxPQUFBZ1YsYUFBQSxDQUFBQyxlQUFBLEtBQVNqVixDQUFBLEVBQU87c0JBQUV1QyxLQUFBLEVBQU8zQyxDQUFBLENBQWlCSSxDQUFBO29CQUFBLElBQVlFLENBQUEsQ0FBTTtrQkFBQSxHQUN6RSxDQUFDO2tCQUdMLEtBQUtxVixJQUFBLENBQUthLEtBQUEsQ0FBTU0sSUFBQSxDQUFLMVcsQ0FBQSxDQUV6QjtnQkFBQTtjQVFKO1lBQUEsR0FBQztjQUFBOEIsR0FBQTtjQUFBUyxLQUFBLEVBRUQsU0FBQUEsQ0FBVzNDLENBQUE7Z0JBQWdFLElBQUFNLENBQUE7Z0JBQ3ZFLElBQUl5SCxLQUFBLENBQU1DLE9BQUEsQ0FBUWhJLENBQUEsR0FDZCxPQUFPd1YsaUJBQUEsQ0FDSHhWLENBQUEsQ0FDSzRILEdBQUEsQ0FBSSxVQUFBNUgsQ0FBQTtrQkFBSSxPQUFJdVYsY0FBQSxDQUFlalYsQ0FBQSxDQUFLcVYsSUFBQSxDQUFLYSxLQUFBLENBQU1DLFFBQUEsQ0FBU3pXLENBQUEsRUFBTTtnQkFBQSxHQUUxRHlWLE1BQUEsQ0FBOEMsVUFBQ3pWLENBQUEsRUFBUU0sQ0FBQTtrQkFBSyxPQUFLTixDQUFBLENBQU9DLE1BQUEsQ0FBT0ssQ0FBQSxDQUFNO2dCQUFBLEdBQUU7Z0JBSXBHLElBQTJCLG1CQUFoQk4sQ0FBQSxFQUNQLE9BQU93VixpQkFBQSxDQUFrQkQsY0FBQSxDQUFlLEtBQUtJLElBQUEsQ0FBS2EsS0FBQSxDQUFNQyxRQUFBLENBQVN6VyxDQUFBO2dCQUdyRSxTQUFvQixNQUFoQkEsQ0FBQSxFQUNBLE9BQU93VixpQkFBQSxDQUFrQkQsY0FBQSxDQUFlLEtBQUtJLElBQUEsQ0FBS2EsS0FBQSxDQUFNQyxRQUFBLENBQVMsS0FBS2QsSUFBQSxDQUFLZSxRQUFBLENBQVNDLFFBQUE7Z0JBRXhGLE1BQU0sSUFBSXZSLEtBQUEsQ0FBTSwrREFDcEI7Y0FBQTtZQUFBLEdBQUM7Y0FBQWxELEdBQUE7Y0FBQVMsS0FBQSxFQUVELFNBQUFBLENBQWdCM0MsQ0FBQTtnQkFFWixPQUFPLEtBQUsyVixJQUFBLENBQUthLEtBQUEsQ0FBTTdTLEdBQUEsQ0FBSTNELENBQUEsRUFBTSxRQUNyQztjQUFBO1lBQUEsR0FBQztjQUFBa0MsR0FBQTtjQUFBUyxLQUFBLEVBRUQsU0FBQUEsQ0FDSTNDLENBQUEsRUFDQU0sQ0FBQSxFQUNBRixDQUFBO2dCQUVBLE1BQU0sSUFBSXNTLDJDQUFBLENBQUFoTyxFQUNkLENBRGMsQ0FDZDtjQUFBO1lBQUEsR0FBQztjQUFBeEMsR0FBQTtjQUFBUyxLQUFBLEVBRUQsU0FBQUEsQ0FBbUIzQyxDQUFBO2dCQUNmLE1BQU0sSUFBSTBTLDJDQUFBLENBQUFoTyxFQUNkLENBRGMsQ0FDZDtjQUFBO1lBQUEsR0FBQztjQUFBeEMsR0FBQTtjQUFBUyxLQUFBLEVBRUQsU0FBQUEsQ0FBbUIzQyxDQUFBO2dCQUNmLE1BQU0sSUFBSTBTLDJDQUFBLENBQUFoTyxFQUNkLENBRGMsQ0FDZDtjQUFBO1lBQUEsR0FBQztjQUFBeEMsR0FBQTtjQUFBUyxLQUFBLEVBRUQsU0FBQUEsQ0FBQTtnQkFDSSxNQUFNLElBQUkrUCwyQ0FBQSxDQUFBaE8sRUFDZCxDQURjLENBQ2Q7Y0FBQTtZQUFBLEdBQUM7Y0FBQXhDLEdBQUE7Y0FBQVMsS0FBQSxFQUVELFNBQUFBLENBQWlCM0MsQ0FBQTtnQkFDYixNQUFNLElBQUkwUywyQ0FBQSxDQUFBaE8sRUFDZCxDQURjLENBQ2Q7Y0FBQTtZQUFBLEdBQUM7Y0FBQXhDLEdBQUE7Y0FBQVMsS0FBQSxFQUVELFNBQUFBLENBQWtCM0MsQ0FBQTtnQkFDZCxNQUFNLElBQUkwUywyQ0FBQSxDQUFBaE8sRUFDZCxDQURjLENBQ2Q7Y0FBQTtZQUFBLEdBQUM7Y0FBQXhDLEdBQUE7Y0FBQVMsS0FBQSxFQUVELFNBQUFBLENBQXVCM0MsQ0FBQTtnQkFDbkIsTUFBTSxJQUFJMFMsMkNBQUEsQ0FBQWhPLEVBQ2QsQ0FEYyxDQUNkO2NBQUE7WUFBQSxHQUFDO2NBQUF4QyxHQUFBO2NBQUFTLEtBQUEsRUFFRCxTQUFBQSxDQUEyQjNDLENBQUE7Z0JBQ3ZCLE1BQU0sSUFBSTBTLDJDQUFBLENBQUFoTyxFQUNkLENBRGMsQ0FDZDtjQUFBO1lBQUEsR0FBQztjQUFBeEMsR0FBQTtjQUFBUyxLQUFBLEVBRUQsU0FBQUEsQ0FBMEIzQyxDQUFBO2dCQUN0QixNQUFNLElBQUkwUywyQ0FBQSxDQUFBaE8sRUFDZCxDQURjLENBQ2Q7Y0FBQTtZQUFBLEdBQUM7Y0FBQXhDLEdBQUE7Y0FBQVMsS0FBQSxFQUVELFNBQUFBLENBQXNCM0MsQ0FBQSxFQUFjTSxDQUFBO2dCQUNoQyxNQUFNLElBQUlvUywyQ0FBQSxDQUFBaE8sRUFDZCxDQURjLENBQ2Q7Y0FBQTtZQUFBLEdBQUM7Y0FBQXhDLEdBQUE7Y0FBQVMsS0FBQSxFQUVELFNBQUFBLENBQXVCM0MsQ0FBQSxFQUFjTSxDQUFBO2dCQUNqQyxNQUFNLElBQUlvUywyQ0FBQSxDQUFBaE8sRUFDZCxDQURjLENBQ2Q7Y0FBQTtZQUFBLEdBQUM7Y0FBQXhDLEdBQUE7Y0FBQVMsS0FBQSxFQUVELFNBQUFBLENBQTZCM0MsQ0FBQTtnQkFDekIsTUFBTSxJQUFJMFMsMkNBQUEsQ0FBQWhPLEVBQ2QsQ0FEYyxDQUNkO2NBQUE7WUFBQSxHQUFDO2NBQUF4QyxHQUFBO2NBQUFTLEtBQUEsRUFFRCxTQUFBQSxDQUFnQzNDLENBQUE7Z0JBQzVCLE9BQU9tSSxPQUFBLENBQVF5QixPQUFBLE1BQVEsRUFDM0I7Y0FBQTtZQUFBLEdBQUM7Y0FBQTFILEdBQUE7Y0FBQVMsS0FBQSxFQUVELFNBQUFBLENBQ0kzQyxDQUFBO2dCQUdBLE1BQU0sSUFBSW9GLEtBQUEsQ0FBTSwwQkFDcEI7Y0FBQTtZQUFBLEdBQUM7Y0FBQWxELEdBQUE7Y0FBQVMsS0FBQSxFQUVELFNBQUFBLENBQXVCM0MsQ0FBQSxFQUFzQk0sQ0FBQTtnQkFDekMsTUFBTSxJQUFJb1MsMkNBQUEsQ0FBQWhPLEVBQ2QsQ0FEYyxDQUNkO2NBQUE7WUFBQSxHQUFDO2NBQUF4QyxHQUFBO2NBQUFTLEtBQUEsRUFDRCxTQUFBQSxDQUE4QjNDLENBQUE7Z0JBQzFCLE1BQU0sSUFBSTBTLDJDQUFBLENBQUFoTyxFQUNkLENBRGMsQ0FDZDtjQUFBO1lBQUEsR0FBQztjQUFBeEMsR0FBQTtjQUFBUyxLQUFBLEVBRUQsU0FBQUEsQ0FBQTtnQkFDSSxNQUFNLElBQUkrUCwyQ0FBQSxDQUFBaE8sRUFDZCxDQURjLENBQ2Q7Y0FBQTtZQUFBLEdBQUM7Y0FBQXhDLEdBQUE7Y0FBQVMsS0FBQSxXQUFBc0MsaUNBQUEvQyxHQUFBLEVBQUFnRCxJQUFBO2dCQUFBLEtBQUFoRCxHQUFBLElBQUFpRCxJQUFBLENBQUFELElBQUE7Y0FBQTtZQUFBLEtBQUF3USxnQkFBQTtVQUFBLENBeFFpQjtVQThRckJ2UCxjQUFBO1VBSHFDcEYsV0FBQTtRQUEvQixTQUFTMFIsdUJBQXVCelMsQ0FBQTtVQUVuQyxPQUFPLElBQUkwVixnQkFBQSxDQUFpQjFWLENBQUEsQ0FDaEM7UUFBQTtRQUFDbUcsY0FBQSx5QkFBQXpGLG9CQUFBLEdBQUFBLG9CQUFBLENBQUFFLE9BQUEsV0FBQXVGLGNBQUEsS0FBQUEsY0FBQSxDQUFBckYsUUFBQSxDQWpUZXdVLG9CQUFBLEVBQW9CLDRKQUFBblAsY0FBQSxDQUFBckYsUUFBQSxDQWEzQnlVLGNBQUEsRUFBYyxzSkFBQXBQLGNBQUEsQ0FBQXJGLFFBQUEsQ0FZZDBVLGlCQUFBLEVBQWlCLHlKQUFBclAsY0FBQSxDQUFBckYsUUFBQSxDQVVwQjRVLGdCQUFBLEVBQWdCLHdKQUFBdlAsY0FBQSxDQUFBckYsUUFBQSxDQTJRTjJSLHNCQUFBLEVBQXNCLCtKQUFBMVIsV0FBQSx5QkFBQUwsb0JBQUEsR0FBQUEsb0JBQUEsQ0FBQUssV0FBQSxXQUFBQSxXQUFBLElBQUFBLFdBQUEsQ0FBQUMsTUFBQTtNQUFBO01BQUEsZUFBQWhCLENBQUEsRUFBQU0sQ0FBQSxFQUFBRixDQUFBO1FBQUEsSUFBQUssQ0FBQTtRQUFBLFNBQUFaLEVBQUFHLENBQUE7VUFBQSxPQUFBSCxDQUFBLHdCQUFBdUIsTUFBQSx1QkFBQUEsTUFBQSxDQUFBQyxRQUFBLGFBQUFyQixDQUFBO1lBQUEsY0FBQUEsQ0FBQTtVQUFBLGNBQUFBLENBQUE7WUFBQSxPQUFBQSxDQUFBLHlCQUFBb0IsTUFBQSxJQUFBcEIsQ0FBQSxDQUFBc0IsV0FBQSxLQUFBRixNQUFBLElBQUFwQixDQUFBLEtBQUFvQixNQUFBLENBQUFHLFNBQUEscUJBQUF2QixDQUFBO1VBQUEsR0FBQUgsQ0FBQSxDQUFBRyxDQUFBO1FBQUE7UUFBQSxTQUFBRixFQUFBRSxDQUFBLEVBQUFNLENBQUE7VUFBQSxTQUFBRixDQUFBLE1BQUFBLENBQUEsR0FBQUUsQ0FBQSxDQUFBcUIsTUFBQSxFQUFBdkIsQ0FBQTtZQUFBLElBQUFLLENBQUEsR0FBQUgsQ0FBQSxDQUFBRixDQUFBO1lBQUFLLENBQUEsQ0FBQW1CLFVBQUEsR0FBQW5CLENBQUEsQ0FBQW1CLFVBQUEsUUFBQW5CLENBQUEsQ0FBQW9CLFlBQUEsa0JBQUFwQixDQUFBLEtBQUFBLENBQUEsQ0FBQXFCLFFBQUEsUUFBQUMsTUFBQSxDQUFBQyxjQUFBLENBQUFoQyxDQUFBLFdBQUFGLENBQUEsYUFBQUUsQ0FBQSxFQUFBTSxDQUFBO2NBQUEsaUJBQUFULENBQUEsQ0FBQUcsQ0FBQSxjQUFBQSxDQUFBLFNBQUFBLENBQUE7Y0FBQSxJQUFBSSxDQUFBLEdBQUFKLENBQUEsQ0FBQW9CLE1BQUEsQ0FBQWtCLFdBQUE7Y0FBQSxlQUFBbEMsQ0FBQTtnQkFBQSxJQUFBSyxDQUFBLEdBQUFMLENBQUEsQ0FBQW1DLElBQUEsQ0FBQXZDLENBQUE7Z0JBQUEsaUJBQUFILENBQUEsQ0FBQVksQ0FBQSxVQUFBQSxDQUFBO2dCQUFBLFVBQUFnQixTQUFBO2NBQUE7Y0FBQSxPQUFBWSxNQUFBLENBQUFyQyxDQUFBO1lBQUEsRUFBQVMsQ0FBQSxDQUFBeUIsR0FBQSxnQkFBQXJDLENBQUEsQ0FBQUMsQ0FBQSxJQUFBQSxDQUFBLEdBQUF1QyxNQUFBLENBQUF2QyxDQUFBLElBQUFXLENBQUE7VUFBQTtVQUFBLElBQUFYLENBQUE7UUFBQTtRQUFBTSxDQUFBLENBQUFDLENBQUEsQ0FBQUMsQ0FBQTtVQUFBTixDQUFBLFdBQUFBLENBQUE7WUFBQSxPQUFBcUcsQ0FBQTtVQUFBO1FBQUEsSUFBQXJHLENBQUEsR0FBQUksQ0FBQSxDQUFBSSxHQUFBLENBQUFSLENBQUEsSUFBQVMsQ0FBQSx5QkFBQUMsb0JBQUEsR0FBQUEsb0JBQUEsQ0FBQUMsV0FBQSxjQUFBRixDQUFBLENBQUFULENBQUEseUJBQUFVLG9CQUFBLElBQUFBLG9CQUFBLENBQUFFLE9BQUEsQ0FBQUMsU0FBQTtRQUFBLElDM1JyQ2QsQ0FBQTtVQTlENEJxRyxDQUFBO1VBQWhCQyxDQUFBLEdBQWdCO1lBQUEsU0FBQXJHLEVBQUE7Y0FBQSxXQUFBQSxDQUFBLEVBQUFNLENBQUE7Z0JBQUEsTUFBQU4sQ0FBQSxZQUFBTSxDQUFBLGFBQUFtQixTQUFBO2NBQUEsUUFBQXpCLENBQUE7WUFBQTtZQUFBLElBQUFNLENBQUEsRUFBQUYsQ0FBQTtZQTZEeEIsT0FBQUUsQ0FBQSxHQTdEd0JOLENBQUEsRUFBQUksQ0FBQTtjQUFBOEIsR0FBQTtjQUFBUyxLQUFBLEVBQ3pCLFNBQUFBLENBQXFCM0MsQ0FBQSxFQUFhTSxDQUFBO2dCQUM5QixJQUFJRixDQUFBLElBQWU7a0JBQ2JLLENBQUEsR0FBT3NXLFFBQUEsQ0FBU0Msb0JBQUEsQ0FBcUIsUUFBUSxNQUFNRCxRQUFBLENBQVNFLGVBQUE7a0JBRTVEcFgsQ0FBQSxHQUFja1gsUUFBQSxDQUFTRyxhQUFBLENBQWM7Z0JBRTNDLFNBQVNwWCxFQUFBO2tCQUNETSxDQUFBLElBSUNQLENBQUEsQ0FBTzhOLFVBQUEsSUFBb0MsYUFBdEI5TixDQUFBLENBQU84TixVQUFBLElBQWlELGVBQXRCOU4sQ0FBQSxDQUFPOE4sVUFBQSxLQUMvRHZOLENBQUEsSUFBZSxHQUNmRSxDQUFBLEdBRVI7Z0JBQUE7Z0JBTUFULENBQUEsQ0FBT3dJLE1BQUEsR0FBU3ZJLENBQUEsRUFDaEJELENBQUEsQ0FBTzZOLGtCQUFBLEdBQXFCNU4sQ0FBQSxFQUk1QkQsQ0FBQSxDQUFPMEksT0FBQSxHQUFVO2tCQUNUMUksQ0FBQSxDQUFPc1gsVUFBQSxJQUNQdFgsQ0FBQSxDQUFPc1gsVUFBQSxDQUFXQyxXQUFBLENBQVl2WCxDQUFBLEdBRWxDUyxDQUFBLENBQVMsSUFBSThFLEtBQUEsQ0FBTSwrQkFDdkI7Z0JBQUEsR0FLQXZGLENBQUEsQ0FBT3dYLEdBQUEsR0FBTXJYLENBQUEsRUFDYkgsQ0FBQSxDQUFPeVgsWUFBQSxDQUFhLGVBQWUsb0JBQ25DN1csQ0FBQSxDQUFLOFcsV0FBQSxDQUFZMVgsQ0FBQSxDQUNyQjtjQUFBO1lBQUEsR0FBQztjQUFBcUMsR0FBQTtjQUFBUyxLQUFBLEVBRUQsU0FBQUEsQ0FBeUIzQyxDQUFBLEVBQWFNLENBQUEsRUFBc0JGLENBQUE7Z0JBQXlDLElBQUFLLENBQUE7a0JBVTNGWixDQUFBLEdBQStDLFVBQTNDWSxDQUFBLEdBQUdzVyxRQUFBLENBQVNDLG9CQUFBLENBQXFCLFFBQVEsWUFBRSxNQUFBdlcsQ0FBQSxHQUFBQSxDQUFBLEdBQUlzVyxRQUFBLENBQVNFLGVBQUE7a0JBQzVEblgsQ0FBQSxHQUFPaVgsUUFBQSxDQUFTRyxhQUFBLENBQWM7Z0JBRXBDcFgsQ0FBQSxDQUFLd1gsWUFBQSxDQUFhLE9BQU8sZUFDekJ4WCxDQUFBLENBQUt3WCxZQUFBLENBQWEsUUFBUSxhQUMxQnhYLENBQUEsQ0FBSzJOLGdCQUFBLENBQWlCLFFBZE47a0JBQUgsT0FBU3JOLENBQUEsTUFBUyxFQUFVO2dCQUFBLElBZXpDTixDQUFBLENBQUsyTixnQkFBQSxDQUFpQixTQWRQO2tCQUVQck4sQ0FBQSxDQURBRSxDQUFBLFFBQ1MsSUFFQSxJQUFJOEUsS0FBQSxDQUFNLG1DQUUzQjtnQkFBQSxJQVNBdkYsQ0FBQSxDQUFLMFgsV0FBQSxDQUFZelgsQ0FBQSxHQUNqQkEsQ0FBQSxDQUFLd1gsWUFBQSxDQUFhLFFBQVF0WCxDQUFBLENBQzlCO2NBQUE7WUFBQSxJQTdEeUIsUUFBQUYsQ0FBQSxDQUFBUSxDQUFBLENBQUFpQixTQUFBLFNBQUFuQixDQUFBLElBQUFOLENBQUEsQ0FBQVEsQ0FBQSxFQUFBRixDQUFBLEdBQUEyQixNQUFBLENBQUFDLGNBQUEsQ0FBQTFCLENBQUE7Y0FBQXdCLFFBQUE7WUFBQSxJQTZEeEI5QixDQUFBO1VBQUEsQ0E3RHdCO1FBQUEsQ0E4RDVCRCxDQUFBLHlCQUFBVyxvQkFBQSxHQUFBQSxvQkFBQSxDQUFBRSxPQUFBLGNBQUFiLENBQUEsQ0FBQWUsUUFBQSxDQTlEWXVGLENBQUEsRUFBZ0IsMkhBQUFELENBQUEseUJBQUExRixvQkFBQSxHQUFBQSxvQkFBQSxDQUFBSyxXQUFBLGNBQUFxRixDQUFBLENBQUFwRyxDQUFBO01BQUE7SUFBQTtJQ0F6QndYLHdCQUFBLEdBQTJCLENBQUM7RUFHaEMsU0FBU3RXLG9CQUFvQmxCLENBQUE7SUFFNUIsSUFBSU0sQ0FBQSxHQUFla1gsd0JBQUEsQ0FBeUJ4WCxDQUFBO0lBQzVDLFNBQXFCLE1BQWpCTSxDQUFBLEVBQ0gsT0FBT0EsQ0FBQSxDQUFhbVgsT0FBQTtJQUdyQixJQUFJclgsQ0FBQSxHQUFTb1gsd0JBQUEsQ0FBeUJ4WCxDQUFBLElBQVk7TUFDakQwWCxFQUFBLEVBQUkxWCxDQUFBO01BQ0oyWCxNQUFBLEdBQVE7TUFDUkYsT0FBQSxFQUFTLENBQUM7SUFBQTtJQVVYLE9BTkFHLG1CQUFBLENBQW9CNVgsQ0FBQSxFQUFVSSxDQUFBLEVBQVFBLENBQUEsQ0FBT3FYLE9BQUEsRUFBU3ZXLG1CQUFBLEdBR3REZCxDQUFBLENBQU91WCxNQUFBLElBQVMsR0FHVHZYLENBQUEsQ0FBT3FYLE9BQ2Y7RUFBQTtFQ3hCQXZXLG1CQUFBLENBQW9CYixDQUFBLEdBQUksVUFBU0wsQ0FBQSxFQUFTTSxDQUFBO0lBQ3pDLEtBQUksSUFBSUYsQ0FBQSxJQUFPRSxDQUFBLEVBQ1hZLG1CQUFBLENBQW9CVCxDQUFBLENBQUVILENBQUEsRUFBWUYsQ0FBQSxNQUFTYyxtQkFBQSxDQUFvQlQsQ0FBQSxDQUFFVCxDQUFBLEVBQVNJLENBQUEsS0FDNUUyQixNQUFBLENBQU9DLGNBQUEsQ0FBZWhDLENBQUEsRUFBU0ksQ0FBQSxFQUFLO01BQUV3QixVQUFBLEdBQVk7TUFBTStCLEdBQUEsRUFBS3JELENBQUEsQ0FBV0YsQ0FBQTtJQUFBLEVBRzNFO0VBQUEsR0NQQWMsbUJBQUEsQ0FBb0IySixDQUFBLEdBQUk7SUFDdkIsSUFBMEIsbUJBQWZoRSxVQUFBLEVBQXlCLE9BQU9BLFVBQUE7SUFDM0M7TUFDQyxPQUFPLFFBQVEsSUFBSTdDLFFBQUEsQ0FBUyxjQUFiLEVBQ2hCO0lBQUEsQ0FBRSxRQUFPaEUsQ0FBQTtNQUNSLElBQXNCLG1CQUFYNlgsTUFBQSxFQUFxQixPQUFPQSxNQUN4QztJQUFBO0VBQ0EsQ0FQdUIsSUNBeEIzVyxtQkFBQSxDQUFvQlYsR0FBQSxHQUFNLFVBQVNSLENBQUE7SUFTbEMsUUFSQUEsQ0FBQSxHQUFTK0IsTUFBQSxDQUFPVyxNQUFBLENBQU8xQyxDQUFBLEdBQ1g4WCxRQUFBLEtBQVU5WCxDQUFBLENBQU84WCxRQUFBLEdBQVcsS0FDeEMvVixNQUFBLENBQU9DLGNBQUEsQ0FBZWhDLENBQUEsRUFBUSxXQUFXO01BQ3hDNEIsVUFBQSxHQUFZO01BQ1pnQyxHQUFBLEVBQUssU0FBQUEsQ0FBQTtRQUNKLE1BQU0sSUFBSXdCLEtBQUEsQ0FBTSw0RkFBNEZwRixDQUFBLENBQU8wWCxFQUFBLENBQ3BIO01BQUE7SUFBQSxJQUVNMVgsQ0FDUjtFQUFBLEdDVkFrQixtQkFBQSxDQUFvQlQsQ0FBQSxHQUFJLFVBQVNULENBQUEsRUFBS00sQ0FBQTtJQUFRLE9BQU95QixNQUFBLENBQU9SLFNBQUEsQ0FBVWlKLGNBQUEsQ0FBZWpJLElBQUEsQ0FBS3ZDLENBQUEsRUFBS00sQ0FBQSxDQUFPO0VBQUE7RUNHdEcsSUFBSVcsbUJBQUEsR0FBc0JDLG1CQUFBLENBQW9CO0FBQUEifQ==
|